function processXMLFile($xml_file) { global $timestamp, $logger; $xmlt = new xml_tools(); $xml = $xmlt->loadFile($xml_file); $order_date = $timestamp; $segments_id = (int) $xml->LOCAL_INFO->SEGMENT_ID; $group_name = (string) $xml->LOCAL_INFO->GROUP_NAME; $refill_orders = $xml->REFILL_ORDERS->ORDER; $counter = 0; foreach ($refill_orders as $ro) { $products_id = (int) $ro->PRODUCTS_ID; $articles_id = (int) $ro->ARTICLES_ID; $products_ean = $ro->PRODUCTS_EAN; $quantity = (int) $ro->QUANTITY; $trans_type = (string) (strtoupper($ro->TRANS_TYPE) == 'NULL' ? '' : $ro->TRANS_TYPE); $trans_id = (int) $ro->TRANS_ID; //CREATE DEPOT ORDERS $q_check = "SELECT depot_orders_id FROM depot_orders " . " WHERE segments_id = {$segments_id}" . " AND trans_type = '' AND trans_id = {$trans_id}"; $r_check = tep_db_query($q_check); //ONLY CREATE ORDER WHICH NOT IMPORTED if (tep_db_num_rows($r_check) == 0) { $class_do = new depot_orders(); $class_do->newOrder($segments_id, $products_id, $articles_id, $products_ean, $quantity, $order_date, $trans_type, $trans_id, $group_name); $counter++; } } $logger->write("{$counter} orders imported"); unlink($xml_file); $logger->write("xml deleted"); return $counter; }
require_once '../functions-xml.php'; require_once DIR_WS_FUNCTIONS . 'html_output.php'; tep_db_connect(); use_class('logger'); $logger = new logger('cron', 'tradebyte-orders-downloader'); use_class('Order'); use_class('tradebyte'); use_class('xml_tools'); use_class('products_ean'); use_class('jng_sp'); use_class('jng_sp_download'); use_class('jng_sp_orders'); use_class('jng_sp_customers'); use_class('logger'); $tb = new tradebyte(); $xmlt = new xml_tools(); $class_ean = new products_ean(); $class_sp = new jng_sp(); $class_jd = new jng_sp_download(); $class_jo = new jng_sp_orders(); $class_jcust = new jng_sp_customers(); $zade_prepayment_need_refreshed = false; function logThis($logdata) { global $logger; $logger->write($logdata); echo "{$logdata}<br />\n"; } ///////////////////////////// // STEP 1: DOWNLOAD ORDERS // /////////////////////////////
<?php global $db; require_once '../confy.php'; require_once '../functions.php'; require_once '../functions-2.php'; require_once DIR_WS_FUNCTIONS . 'html_output.php'; tep_db_connect(); use_class('xml_tools'); $xmlt = new xml_tools(); $otto_local_path = 'D:/Data Dewa/Data Kantor/Bonofactum/otto/'; $tb_local_path = 'D:/Data Dewa/Data Kantor/Bonofactum/Tradebyte/'; $exchange_local_open_folder = EXCHANGE_LOCAL_OPEN_PATH; $exchange_local_arch_folder = EXCHANGE_LOCAL_ARCHIVE_PATH; $exchange_central_open_folder = EXCHANGE_CENTRAL_OPEN_PATH; $exchange_central_arch_folder = EXCHANGE_CENTRAL_ARCHIVE_PATH; $xmlfiles[] = $exchange_local_arch_folder . '2015/DEPOT_REFILL_LOCAL_ID_20150129_161425.xml'; //CAT foreach ($xmlfiles as $xmlfile) { echo "<h3>{$xmlfile}</h3>"; $xml = $xmlt->loadFile($xmlfile); $orders = $xml->REFILL_ORDERS->ORDER; echo "<table>"; echo "<tr>"; echo "<th>No</th>"; echo "<th>Products ID</th>"; echo "<th>EAN</th>"; echo "<th>Quantity</th>"; echo "</tr>"; foreach ($orders as $o) { $counter++;
tep_db_query($q); } else { //now we should give tradebyte server some time to process it if ($hour >= $config_upload_hour && $hour < $config_upload_wait_until) { $logger->write('Skip upload so tradebyte has enough time to' . ' process last full upload'); $logger->close(); die('Skipped!'); } } } $reported_products = array(); //GET ALL PRODUCTS STOCK CONNECTED TO TRADEBYTE AND FLAG AS NEED STOCK UPDATE $q = "SELECT ps.products_id, ps.articles_id" . ", ps.stock, ps.booking_active, p.products_model, p.active_status" . ", IFNULL(pa.active_status, p.active_status) AS article_status" . ", IF(ps.articles_id=0, pnc.products_length, pa.length) AS length" . ", jc.jng_sp_id, jc.active_status AS catalog_status" . ", jc.price, jc.price_old" . " FROM products_stock ps" . " INNER JOIN jng_sp_catalog jc" . " ON jc.jng_sp_id in ({$sp_use_tb_ids_filter})" . " AND jc.products_id=ps.products_id" . " INNER JOIN products p ON p.products_id=ps.products_id" . " LEFT JOIN products_non_configurator pnc" . " ON pnc.products_id=ps.products_id" . " LEFT JOIN products_articles pa" . " ON pa.products_articles_id=ps.articles_id" . " WHERE p.tb_status IN (1, 2, 3) AND ps.tb_need_update = 1" . " ORDER BY ps.products_id, ps.articles_id"; $dbq = tep_db_query($q); if (tep_db_num_rows($dbq) > 0) { $xmlt = new xml_tools('1.0', 'UTF-8'); $xml_articledata = $xmlt->drawTag($xmlt, 'ARTICLEDATA'); $pri_data = array(); while ($p = tep_db_fetch_array($dbq)) { $pid = $p['products_id']; $aid = $p['articles_id']; $a_nr = getANR($p['products_model'], $p['length']); //ACTIVE STATUS if ($p['active_status'] == '0' || $p['article_status'] == '0') { //Set inactive if either product / article is killed $active_status = '0'; } else { //Otherwise use catalog active status $active_status = $p['catalog_status']; } if (!isset($pri_data[$a_nr])) {
//RETURNS $returns_data = $class_jo->getUnconfirmedReturns($jng_sp_id); if (count($returns_data['orders']) > 0) { $data[$jng_sp_id]['R'] = $returns_data; } //REMOVE SP IF NO CONFIRMATION IS NEEDED if (count($data[$jng_sp_id]) == 0) { unset($data[$jng_sp_id]); } } $messages_list_added = false; $items_confirmed = array(); $orders_canceled = array(); if (count($data) > 0) { //START PREPARING XML MESSAGE $xmlt = new xml_tools('1.0', 'UTF-8'); foreach ($data as $jng_sp_id => $messages_types) { $jng_sp_name = $sp_detail[$jng_sp_id]['name']; $jng_sp_tb_channel = strtoupper($sp_detail[$jng_sp_id]['tb_channel']); foreach ($messages_types as $msg_type => $data_sp) { $orders = $data_sp['orders']; if (count($orders > 0)) { if (!$messages_list_added) { //MESSAGES_LIST $xml_messages_list = $xmlt->drawTag($xmlt, 'MESSAGES_LIST'); $messages_list_added = true; } //ORDERS foreach ($orders as $counter => $o) { //ITEMS $items = $data_sp['items'][$o['jng_sp_orders_id']];
use_class('Product'); use_class('bins'); $logger = new logger('cron', 'depot-refill-local-xml-generator'); $class_do = new depot_orders(); $class_bins = new bins(); $today_datetime = date('Y-m-d H:i:s'); $today = date('Y-m-d', strtotime($today_datetime)); $country_name = getCountryName($server_local_code); $logger->write("PREPARE XML DEPOT REFILL - START"); //GET TODAYS DEPOT REFILL CREATED $q = "SELECT * FROM depot_orders" . " WHERE segments_id = {$segment_id_default} " . " AND trans_type = 'AR' AND trans_id = " . depot_orders::AUTO_REFILL_ID_DAILYCRON . " AND order_date >= '{$today} 00:00:00' AND order_date <= '{$today} 23:59:59'"; $r = tep_db_query($q); if (tep_db_num_rows($r) > 0) { $segment = $class_bins->retrieveSegmentDetail($segment_id_default); //PREPARE FOR CREATE XML DEPOT REFILL LOCAL $xmlt = new xml_tools('1.0', 'UTF-8'); //DEPOT_REFILL_LOCAL $depot_refill_local = $xmlt->drawTag($xmlt, 'DEPOT_REFILL_LOCAL'); //LOCAL_INFO $local_info = $xmlt->drawTag($depot_refill_local, 'LOCAL_INFO'); $xmlt->drawTag($local_info, 'SEGMENT_ID', $segment_id_default); $xmlt->drawTag($local_info, 'CREATED_DATE', date('Y-m-d H:i:s')); $group_name = "Manobo Local Orders ({$country_name})"; $xmlt->drawTag($local_info, 'GROUP_NAME', $group_name); //REFILL_ORDERS $refill_orders = $xmlt->drawTag($depot_refill_local, 'REFILL_ORDERS'); $counter = 0; while ($row = tep_db_fetch_array($r)) { $products_id = $row['products_id']; $obj_product = new Product($products_id); //Take only product which "category top" same with "category top" of segment used
} else { $query .= " tb_status IN (2, 3)"; } } $query .= " GROUP BY family_id"; $dbq = tep_db_query($query); $messages = array(); $products_uploaded = array(); $images_uploaded = array(); $last_active_status_need_update = array(); $invalid_family_messages = array(); $total_family = 0; $total_family_uploaded = 0; //STARTING CAT PROCESS if (tep_db_num_rows($dbq) > 0) { $xmlt = new xml_tools('1.0', 'UTF-8'); //TBCATALOG $xml_tbcatalog = $xmlt->drawTag($xmlt, 'TBCATALOG', '', array('version' => '1.2', 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance', 'xsi:noNamespaceSchemaLocation' => 'http://api.trade-server.net/' . 'schema/all_in_one/tb-cat_1_2_import.xsd')); //SUPPLIER $xml_supplier = $xmlt->drawTag($xml_tbcatalog, 'SUPPLIER'); $xmlt->drawTag($xml_supplier, 'NAME', JNG_ADDRESS_NAME); $xmlt->drawTag($xml_supplier, 'CONTACT', EMAIL_NAME_PETERN); $xmlt->drawTag($xml_supplier, 'STREET', JNG_ADDRESS_STREET); $xmlt->drawTag($xml_supplier, 'ZIP', JNG_ADDRESS_ZIPCODE); $xmlt->drawTag($xml_supplier, 'CITY', JNG_ADDRESS_CITY); $xmlt->drawTag($xml_supplier, 'PHONE', JNG_PHONENO_INT); $xmlt->drawTag($xml_supplier, 'EMAIL', EMAIL_ADDERSS_TECHNICAL); //PRODUCTDATA $xml_productdata = $xmlt->drawTag($xml_tbcatalog, 'PRODUCTDATA'); //LOOPING FOR FAMILY THAT NEED UPLOAD/REUPLOAD TO TB $tb_sp_ids = array();