Пните меня в правильном направлении, пожалуйста. Есть следующая задача:
На фтп на протяжении дня падают зип архивы вида GUID.mbsu, GUID на данный момент две штуки (айдишники торговых). Нужно этот архив распаковать, достать оттуда xml - с этим я вроде разобрался.
XML содержит информацию о заказах/оплатах в следующем виде:
CODE ( text):
скопировать код в буфер обмена
<T_ORDER_TITLE> <N_CARRY>true</N_CARRY> <N_CHECK_NUMBER></N_CHECK_NUMBER> <N_CLIENTID>198785</N_CLIENTID> <N_COMMENT></N_COMMENT> <N_CONTRACTID>81</N_CONTRACTID> <N_CREATE_DATE>1478604069724</N_CREATE_DATE> <N_DATE>1478604594096</N_DATE> <N_DELAY>true</N_DELAY> <N_FORMID>1</N_FORMID> <N_GEOADDRESS>проспект Грушевського, Коломия, Івано-Франківська область, Украина</N_GEOADDRESS> <N_HAVE_DISCOUNT>false</N_HAVE_DISCOUNT> <N_ID>70ebca18-fa1c-4ab3-a93b-b762ad81138d</N_ID> <N_LAT>48.5259135</N_LAT> <N_LNG>25.0280832</N_LNG> <N_MESSAGE_NUMBER>0</N_MESSAGE_NUMBER> <N_PARENTID>198785</N_PARENTID> <N_PRICEID>22</N_PRICEID> <N_SHIPMENT_DATE>0</N_SHIPMENT_DATE> <N_SUM>358.0</N_SUM> <N_WAREHOUSE_ID>ALL</N_WAREHOUSE_ID> </T_ORDER_TITLE> <T_ORDER_TABLE> <N_DATE>1478604594096</N_DATE> <N_DISCOUNT_PERCENT>0.0</N_DISCOUNT_PERCENT> <N_FACTOR>1.0</N_FACTOR> <N_ID>70ebca18-fa1c-4ab3-a93b-b762ad81138d1000004215</N_ID> <N_LINE_NUMBER>1</N_LINE_NUMBER> <N_MANUAL_PRICE>false</N_MANUAL_PRICE> <N_NOMENID>1000004215</N_NOMENID> <N_NUMBER>1.0</N_NUMBER> <N_PRICE>37.0</N_PRICE> <N_SUM>37.0</N_SUM> <N_TITLEID>70ebca18-fa1c-4ab3-a93b-b762ad81138d</N_TITLEID> <N_UNIT_ID>ALL</N_UNIT_ID> </T_ORDER_TABLE> <T_CASH_ORDERS> <N_BASE_ID>51137cff-f8ca-4c08-88dd-062cf3602fc9</N_BASE_ID> <N_CARRY>true</N_CARRY> <N_CHECK_NUMBER></N_CHECK_NUMBER> <N_COMMENT></N_COMMENT> <N_CONTRACTID>162</N_CONTRACTID> <N_CREATE_DATE>1478764605513</N_CREATE_DATE> <N_DATE>1478764607794</N_DATE> <N_DEBT_NUMBER>Новый 433,80 $ 10.11.2016 07:56:19</N_DEBT_NUMBER> <N_DEBT_TYPE>Заказ</N_DEBT_TYPE> <N_FORMID>1</N_FORMID> <N_GEOADDRESS>М06, Закарпатська область, Украина</N_GEOADDRESS> <N_ID>f7670019-df2d-4d1a-b097-afe8502dbba1</N_ID> <N_LAT>48.4681651</N_LAT> <N_LNG>22.6181861</N_LNG> <N_MESSAGE_NUMBER>0</N_MESSAGE_NUMBER> <N_PARENTID>198594</N_PARENTID> <N_SUM>433.8</N_SUM> </T_CASH_ORDERS>
T_ORDER_TITLE - общая информация о заказе
T_ORDER_TABLE - информация по каждой позиции заказа
T_CASH_ORDERS - оплата по заказу
Этих элементов может быть много, типа несколько заказов сразу. Мне нужно для каждого заказа/оплаты получить xml вида:
CODE ( text):
скопировать код в буфер обмена
<DocID xmlns="Documents" CodeSpace="my" DocID="57614" VersionID="1" BranID="101" BranName="PCH"> <CreID xmlns="Subjects" SubjID="159"> <SubjName>Склад Машина</SubjName> </CreID> <DebID xmlns="Subjects" SubjID="1083"> <SubjName>Склад Хмельницький</SubjName> </DebID> <TemplID xmlns="Templates" TemplID="41" TemplName="Товар на склад"/> <PriceID xmlns="PriceHeads" PriceID="22" PriceName="Базова"/> <DocCode>43585518</DocCode> <ExtraDoc> </ExtraDoc> <Comments/> <GDS>-1</GDS> <DocDate>20161205</DocDate> <DocTax>0</DocTax> <DocSum>440</DocSum> <DocTaxSum>0</DocTaxSum> <AddrID/> <RateLimit>0</RateLimit> <Patterns xmlns="Patterns"> <Item GlobID="1000002707" ItemID="16149471" ItemName="Dekomarin 65cm A 20" ItemExt="" ItemShort="65cm A 20" ExtraCode="A 20" PerPack="1" PerCase="1" PerPall="1" Weight="8.7" Volume="0.063" SUF="" BaseTax="0" EAN="8690552310065" GDS="-1" AlcTax="" TAR="0" UnitFactor="1" UnitName="штука" UnitShort="шт." WGT="0" ProdID="1000000007" ProdName="On Grup" MarkID="1000000033" MarkName="D65m"> <BasePrice>38</BasePrice> <Price>38</Price> <Ordered>0</Ordered> <Quantity>2</Quantity> <Discount>0</Discount> </Item> </Patterns> </DocID>
Пока получил общую информацию по заказам:
CODE ( text):
скопировать код в буфер обмена
<?php /** * @author new_bember * @copyright 2016 */ $dir = 'C:\in'; $files = scandir($dir); $filename = $files[2]; print_r($filename); $xml = simplexml_load_file("C:\\in\\".$filename) or die ("Error. Cannot create object"); foreach ($xml->T_ORDER_TITLE as $element) { echo "Order number: ".$element->N_ID . ", "; echo "SubjID: ".$element->N_PARENTID . ", "; echo "OrderSum: ".$element->N_SUM . "<br>"; } ?>
А вот чего дальше делать, что-то не догоняю.. Я конечно курю все эти доки, но пинок в правильном направлении будет хорошим подспорьем. Заранее благодарен.
|