<commit_before><?php
/**
 * @author		<NAME>
 * @brief		Classes relacionadas ao webservice da Cielo
 * @package		dso.cielo.nodes
 */

require_once 'dso/cielo/nodes/XMLNode.php';

/**
 * @brief		Nó dados-pedido
 * @details		Implementação do nó dados-pedido que contém os dados da afiliação, nome da empresa, chave
 * e todas as informações referentes à empresa.
 * @ingroup		Cielo
 * @class		OrderDataNode
 */
class OrderDataNode implements XMLNode {
	/**
	 * Data hora do pedido.
	 * @var		string
	 */
	private $dateTime;

	/**
	 * Idioma do pedido:
	 * @li PT - português
	 * @li EN - inglês
	 * @li ES - espanhol
	 * @var		string
	 */
	private $language = 'PT';

	/**
	 * Código numérico da moeda na ISO 4217. Para o Real, o código é 986.
	 * @var		integer
	 */
	private $currency;

	/**
	 * Número do pedido da loja.
	 * @var		string
	 */
	private $orderNumber;

	/**
	 * Valor do pedido
	 * @var		integer
	 */
	private $orderValue;

	/**
	 * Constroi o objeto que representa os dados do pedido
	 * @param	integer $orderNumber Número do pedido
	 * @param	float $orderValue Valor do pedido
	 * @param	integer $currency Moeda usada no pedido (<b>986</b> para Real R$)
	 * @param	string $dateTime Data e hora do pedido
	 * @param	string $language Idioma do pedido:
	 * @li PT - português
	 * @li EN - inglês
	 * @li ES - espanhol
	 * Com base nessa informação é definida a língua a ser utilizada nas telas da Cielo. <b>Caso não preenchido, assume-se PT</b>.
	 */
	public function __construct( $orderNumber , $orderValue , $currency = 986 , $dateTime = null , $language = 'PT' ) {
		$this->orderNumber = $orderNumber;
		$this->orderValue = (int) $orderValue;
		$this->currency = $currency;

		if ( is_null( $dateTime ) ) {
			$dateTime = strftime( '%Y-%m-%dT%H:%M:%S' );
		} else {
			$dateTime = strftime( '%Y-%m-%d %H:%M:%S' , strtotime( $dateTime ) );
		}

		$this->language = $language;
		$this->dateTime = $dateTime;
	}

	/**
	 * Cria o nó XML referente ao objeto.
	 * @return	string
	 * @see		XMLNode::createXMLNode()
	 */
	public function createXMLNode() {
		$node = '<dados-pedido>';

		if (  !empty( $this->orderNumber ) ) {
			$node .= sprintf( '<numero>%s</numero>' , $this->orderNumber );
		}

		if (  !empty( $this->orderValue ) ) {
			$node .= sprintf( '<valor>%s</valor>' , $this->orderValue );
		}

		if (  !empty( $this->currency ) ) {<commit_msg>Ajuste na geração da data do pedido para incluir a diferença de timezone<commit_after><?php
/**
 * @author		<NAME>
 * @brief		Classes relacionadas ao webservice da Cielo
 * @package		dso.cielo.nodes
 */

require_once 'dso/cielo/nodes/XMLNode.php';

/**
 * @brief		Nó dados-pedido
 * @details		Implementação do nó dados-pedido que contém os dados da afiliação, nome da empresa, chave
 * e todas as informações referentes à empresa.
 * @ingroup		Cielo
 * @class		OrderDataNode
 */
class OrderDataNode implements XMLNode {
	/**
	 * Data hora do pedido.
	 * @var		string
	 */
	private $dateTime;

	/**
	 * Idioma do pedido:
	 * @li PT - português
	 * @li EN - inglês
	 * @li ES - espanhol
	 * @var		string
	 */
	private $language = 'PT';

	/**
	 * Código numérico da moeda na ISO 4217. Para o Real, o código é 986.
	 * @var		integer
	 */
	private $currency;

	/**
	 * Número do pedido da loja.
	 * @var		string
	 */
	private $orderNumber;

	/**
	 * Valor do pedido
	 * @var		integer
	 */
	private $orderValue;

	/**
	 * Constroi o objeto que representa os dados do pedido
	 * @param	integer $orderNumber Número do pedido
	 * @param	float $orderValue Valor do pedido
	 * @param	integer $currency Moeda usada no pedido (<b>986</b> para Real R$)
	 * @param	string $dateTime Data e hora do pedido
	 * @param	string $language Idioma do pedido:
	 * @li PT - português
	 * @li EN - inglês
	 * @li ES - espanhol
	 * Com base nessa informação é definida a língua a ser utilizada nas telas da Cielo. <b>Caso não preenchido, assume-se PT</b>.
	 */
	public function __construct( $orderNumber , $orderValue , $currency = 986 , $dateTime = null , $language = 'PT' ) {
		$this->orderNumber = $orderNumber;
		$this->orderValue = (int) $orderValue;
		$this->currency = $currency;

		if ( is_null( $dateTime ) ) {
			$dateTime = date( 'c' );
		} else {
			$dateTime = date( 'c' , strtotime( $dateTime ) );
		}

		$this->language = $language;
		$this->dateTime = $dateTime;
	}

	/**
	 * Cria o nó XML referente ao objeto.
	 * @return	string
	 * @see		XMLNode::createXMLNode()
	 */
	public function createXMLNode() {
		$node = '<dados-pedido>';

		if (  !empty( $this->orderNumber ) ) {
			$node .= sprintf( '<numero>%s</numero>' , $this->orderNumber );
		}

		if (  !empty( $this->orderValue ) ) {
			$node .= sprintf( '<valor>%s</valor>' , $this->orderValue );
		}

		if (  !empty( $this->currency ) ) {
{'fraction_non_alphanumeric': 0.1442125237191651, 'fraction_numerical': 0.005481762597512123, 'mean_word_length': 3.0616438356164384, 'pattern_counts': {'":': 0, '<': 25, '<?xml version=': 0, '>': 43, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6794307', 'n_tokens_mistral': 1895, 'n_tokens_neox': 1756, 'n_words': 509}