%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/self/root/home/bitrix/www/bitrix/modules/sale/lib/exchange/onec/
Upload File :
Create Path :
Current File : //proc/self/root/home/bitrix/www/bitrix/modules/sale/lib/exchange/onec/paymentdocument.php

<?php
namespace Bitrix\Sale\Exchange\OneC;

class PaymentDocument extends DocumentBase
{
	protected static $FIELD_INFOS = null;

    /**
     * @return array
     */
	static public function getFieldsInfo()
    {
        if(!self::$FIELD_INFOS)
        {
            self::$FIELD_INFOS = array(
				//region export fields
				/*'XML_1C_DOCUMENT_ID' => array(
					'TYPE' => 'string'
				),*/
				'DATE' => array(
					'TYPE' => 'date'
				),
				'TIME' => array(
					'TYPE' => 'time'
				),
				'ROLE' => array(
					'TYPE' => 'string'
				),
				'CURRENCY' => array(
				    'TYPE' => 'string'
				),
				'CURRENCY_RATE' => array(
				    'TYPE' => 'string'
				),
				'VERSION' => array(
					'TYPE' => 'string'
				),
				'NUMBER_BASE' => array(
					'TYPE' => 'string'
				),
				'NUMBER' => array(
					'TYPE' => 'int'
				),
				//endregion
                'ID' => array(
                    'TYPE' => 'string'
                ),
                //'XML_1C_DOCUMENT_ID' => array(
                //    'TYPE' => 'string'
                //),
                'OPERATION' => array(
                    'TYPE' => 'string'
                ),
                'ORDER_ID' => array(
                    'TYPE' => 'string'
                ),
                'AMOUNT' => array(
                    'TYPE' => 'float'
                ),
                'COMMENT' => array(
                    'TYPE' => 'string'
                ),
                'CANCELED' => array(
                    'TYPE' => 'bool'
                ),
                'VERSION_1C' => array(
                    'TYPE' => 'string'
                ),
                'ID_1C' => array(
                    'TYPE' => 'string'
                ),
				'CASH_BOX_CHECKS' => array(
					'ID' => array(
						'TYPE' => 'string'
					),

					'PROPERTIES' => array(
						'TYPE' => 'array',
						'FIELDS' => array(
							'CASHBOX_URL' => array(
								'TYPE' => 'string'
							),
							'CASHBOX_FISCAL_SIGN' => array(
								'TYPE' => 'int'
							),
							'CASHBOX_REG_NUMBER_KKT' => array(
								'TYPE' => 'int'
							),
							'CASHBOX_PRINT_CHECK' => array(
								'TYPE' => 'bool'
							)
						)
					),
					//region export checks.fields
					'PROP_VALUES' => array(
						'TYPE'=>'array',
						'FIELDS'=>array(
							'ID'=> array(
								'TYPE'=>'string'
							),
							'VALUE'=> array(
								'TYPE'=>'bool'
							)
						)
					)
					//endregion
				),
                'REK_VALUES' => array(
                    'TYPE' => 'array',
                    'FIELDS' => array(
						//region export fields
                    	'PAYED_DATE' => array(
							'TYPE' => 'array',
							'FIELDS' => array(
								'NAME' => array(
									'TYPE' => 'string'
								),
								'VALUE' => array(
									'TYPE' => 'datetime'
								)
							)
						),
						'PAY_SYSTEM' => array(
							'TYPE' => 'array',
							'FIELDS' => array(
								'NAME' => array(
									'TYPE' => 'string'
								),
								'VALUE' => array(
									'TYPE' => 'string'
								)
							)
						),
						'PAY_PAID' => array(
							'TYPE' => 'array',
							'FIELDS' => array(
								'NAME' => array(
									'TYPE' => 'string'
								),
								'VALUE' => array(
									'TYPE' => 'bool'
								)
							)
						),
						'PAY_RETURN' => array(
							'TYPE' => 'array',
							'FIELDS' => array(
								'NAME' => array(
									'TYPE' => 'string'
								),
								'VALUE' => array(
									'TYPE' => 'bool'
								)
							)
						),
						'PAY_RETURN_REASON' => array(
							'TYPE' => 'array',
							'FIELDS' => array(
								'NAME' => array(
									'TYPE' => 'string'
								),
								'VALUE' => array(
									'TYPE' => 'string'
								)
							)
						),
						'SITE_NAME' => array(
							'TYPE' => 'array',
							'FIELDS' => array(
								'NAME' => array(
									'TYPE' => 'string'
								),
								'VALUE' => array(
									'TYPE' => 'string'
								)
							)
						),
						'REKV' => array(
							'TYPE' => 'array',
							'FIELDS' => array(
								'NAME' => array(
									'TYPE' => 'string'
								),
								'VALUE' => array(
									'TYPE' => 'string'
								)
							)
						),
						//endregion
                    	'1C_PAYED_DATE' => array(
							'TYPE' => 'array',
							'FIELDS' => array(
								'NAME' => array(
									'TYPE' => 'string'
								),
								'VALUE' => array(
									'TYPE' => 'datetime'
								)
							)
                        ),
                        '1C_PAYED_NUM' => array(
							'TYPE' => 'array',
							'FIELDS' => array(
								'NAME' => array(
									'TYPE' => 'string'
								),
								'VALUE' => array(
									'TYPE' => 'string'
								)
							)
                        ),
                        'CANCEL' => array(
							'TYPE' => 'array',
							'FIELDS' => array(
								'NAME' => array(
									'TYPE' => 'string'
								),
								'VALUE' => array(
									'TYPE' => 'bool'
								)
							)
                        ),
                        '1C_RETURN' => array(
							'TYPE' => 'array',
							'FIELDS' => array(
								'NAME' => array(
									'TYPE' => 'string'
								),
								'VALUE' => array(
									'TYPE' => 'bool'
								)
							)
                        ),
                        '1C_RETURN_REASON' => array(
							'TYPE' => 'array',
							'FIELDS' => array(
								'NAME' => array(
									'TYPE' => 'string'
								),
								'VALUE' => array(
									'TYPE' => 'string'
								)
							)
                        ),
                        '1C_PAYED' => array(
							'TYPE' => 'array',
							'FIELDS' => array(
								'NAME' => array(
									'TYPE' => 'string'
								),
								'VALUE' => array(
									'TYPE' => 'bool'
								)
							)
                        ),
						'PAY_SYSTEM_ID' => array(
							'TYPE' => 'array',
							'FIELDS' => array(
								'NAME' => array(
									'TYPE' => 'string'
								),
								'VALUE' => array(
									'TYPE' => 'int'
								)
							)
						),
                    )
                )
            );
        }
        return self::$FIELD_INFOS;
    }

	/**
	 * @param int $level
	 * @return string
	 */
	public function output($level=0)
	{
		$fields = $this->getFieldValues();
		$xml = parent::outputXml($fields, $level);

		foreach ($fields as $name=>$value)
		{
			if(is_array($value))
			{
				switch ($name)
				{
					case 'CASH_BOX_CHECKS':
						$xml .= $this->outputXmlCashBoxChecks($level+0, $name, array($value));
						break;
				}
			}
		}

		return $xml;
	}

	protected function outputXmlCashBoxChecks($level, $name, $checks)
	{
		$result ='';
		$result .= $this->openNodeDirectory($level+0, 'CASHBOX_CHECKS');

		foreach ($checks as $check)
		{
			$result .= $this->openNodeDirectory($level+1, 'CASHBOX_CHECK');
			foreach ($check as $code=>$value)
			{
				if(is_array($value))
				{
					switch ($code)
					{
						case 'PROP_VALUES':
							$result .= $this->openNodeDirectory($level+2, $code);
							$result .= $this->openNodeDirectory($level+3, 'PROP_VALUE');
							foreach ($value as $k=>$v)
								$result .= $this->formatXMLNode($level+4, $k, $v);
							$result .= $this->closeNodeDirectory($level+3, 'PROP_VALUE');
							$result .= $this->closeNodeDirectory($level+2, $code);
							break;
					}
				}
				else
					$result .= $this->formatXMLNode($level+2, $code, $value);
			}
			$result .= $this->closeNodeDirectory($level+1, 'CASHBOX_CHECK');
		}
		$result .= $this->closeNodeDirectory($level+0, 'CASHBOX_CHECKS');
		return $result;
	}
}

class PaymentCashDocument extends PaymentDocument
{
    /**
     * @return int
     */
    public function getTypeId()
    {
        return DocumentType::PAYMENT_CASH;
    }
}

class PaymentCashLessDocument extends PaymentDocument
{
    /**
     * @return int
     */
    public function getTypeId()
    {
        return DocumentType::PAYMENT_CASH_LESS;
    }
}

class PaymentCardDocument extends PaymentDocument
{

    /**
     * @return int
     */
    public function getTypeId()
    {
        return DocumentType::PAYMENT_CARD_TRANSACTION;
    }

}

Zerion Mini Shell 1.0