} else {
    $cron_result[] = "Connected and logged in to ftp";
    $order_file_exist = false;
    $contents = ftp_nlist($conn_id, $ftp_file_path);
    if (is_array($contents) && count($contents) > 0) {
        $downloaded = array();
        foreach ($contents as $server_file) {
            $filename = basename($server_file);
            if ($filename != '.' && $filename != '..' && substr($filename, 0, 6) != '_done_') {
                $order_file_exist = true;
                $download = ftp_get($conn_id, $download_path . $filename, $ftp_file_path . $filename, FTP_BINARY);
                if ($download) {
                    $downloaded[] = $filename;
                    $download_type = strpos(strtolower($filename), 'pcl') !== false ? 'PCL' : 'ORDERS';
                    ftp_rename($conn_id, $ftp_file_path . $filename, $ftp_file_path . '_done_' . $filename);
                    $class_jd->addDownload($jng_sp_id, $download_type, $filename, $download_status_to_decrypt);
                }
            }
        }
    }
    ftp_close($conn_id);
    if (!$order_file_exist) {
        $cron_result[] = "No file to download";
    } else {
        $cron_result[] = count($downloaded) . " files downloaded:";
        foreach ($downloaded as $d) {
            $cron_result[] = '- ' . $d;
        }
    }
}
////////////////////////////
Exemplo n.º 2
0
 }
 function generateCustomerIDManually($postcode, $phone, $lastname, $firstname)
 {
     if ($phone != '') {
         $id = $postcode . $phone;
     } else {
         $id = $postcode . str_replace(' ', '', strtolower($lastname)) . str_replace(' ', '', strtolower($firstname));
     }
     return $id;
 }
 $jng_sp_id = tep_db_prepare_input($_POST['jng_sp_id']);
 $sp_detail = $class_sp->retrieveDetail($jng_sp_id);
 $file = $_FILES['orders_file'];
 if (isFileTypeCSV($file['type'])) {
     $import_date = date('Y-m-d H:i:s');
     $download_id = $class_jd->addDownload($jng_sp_id, 'ORDERS', $file['name'], 'R', $session_userinfo['username']);
     $file_handler = fopen($file['tmp_name'], "r");
     $error_shipping_ward = false;
     $error_shipping_region = false;
     $error_billing_name = false;
     $error_billing_ward = false;
     $error_billing_region = false;
     $error_product = false;
     $prev_order_no = '';
     $order_id = false;
     $order_created = 0;
     $item_count = 0;
     $total_price = 0;
     $first_row = true;
     while ($columns = fgetcsv($file_handler, 0, $csv_seperator, $csv_data_wrapper)) {
         if ($first_row) {
            $filename = basename($server_file);
            if ($filename != '.' && $filename != '..' && substr($filename, 0, 6) != '_done_') {
                $order_file_exist = true;
                $fullpath = $download_path . $filename;
                $download = ftp_get($conn_id, $fullpath, $ftp_file_path . $filename, FTP_BINARY);
                if ($download && is_file($fullpath)) {
                    $archive_path_raw = $archived_path . 'raw/' . date('Y') . '/';
                    if (!file_exists($archive_path_raw)) {
                        mkdir($archive_path_raw);
                    }
                    $fullpath_archive = $archive_path_raw . $filename;
                    copy($fullpath, $fullpath_archive);
                    $fullpath_ready = $ready_path . $filename;
                    rename($fullpath, $fullpath_ready);
                    ftp_rename($conn_id, $ftp_file_path . $filename, $ftp_file_path . '_done_' . $filename);
                    $class_jd->addDownload($jng_sp_id, 'ORDERS', $filename, $download_status_to_generate);
                    $downloaded[] = $filename;
                }
            }
        }
    }
    ftp_close($conn_id);
    if (!$order_file_exist) {
        $cron_result[] = "No file to download";
    } else {
        $cron_result[] = count($downloaded) . " files downloaded:";
        foreach ($downloaded as $d) {
            $cron_result[] = '- ' . $d;
        }
    }
}
function getAmazonNewOrders($with_header_message = true)
{
    global $files;
    use_class('jng_sp_download');
    $class_jd = new jng_sp_download();
    $ready_path = SP_AMAZONEDE_DECRYPT_PATH;
    $archived_path = SP_AMAZONEDE_ARCHIVE_PATH;
    use_class('amazon/MarketplaceWebService/Client');
    //MANDATORY CLASS
    use_class('amazon/MarketplaceWebService/Model/ErrorResponse');
    //MANDATORY CLASS
    use_class('amazon/MarketplaceWebService/Model/GetReportRequest');
    //FEED USED CLASS
    use_class('amazon/MarketplaceWebService/Model/GetReportResponse');
    //FEED USED CLASS
    use_class('amazon/MarketplaceWebService/Model/GetReportListRequest');
    //FEED USED CLASS
    use_class('amazon/MarketplaceWebService/Model/GetReportListResponse');
    //FEED USED CLASS
    use_class('amazon/MarketplaceWebService/Model/TypeList');
    //TYPE LIST CLASS
    $serviceUrl = "https://mws.amazonservices.de";
    $aws_config = array('ServiceURL' => $serviceUrl, 'ProxyHost' => null, 'ProxyPort' => -1, 'MaxErrorRetry' => 3);
    $service = new MarketplaceWebService_Client(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, $aws_config, APPLICATION_NAME, APPLICATION_VERSION);
    $list = new MarketplaceWebService_Model_TypeList();
    $list->setType('_GET_ORDERS_DATA_');
    $report_from_date = new DateTime('-3 months', new DateTimeZone('UTC'));
    $report_to_date = new DateTime('now', new DateTimeZone('UTC'));
    $request = new MarketplaceWebService_Model_GetReportListRequest();
    $request->setMerchant(MERCHANT_ID);
    $request->setMarketplace(MARKETPLACE_ID);
    $request->setAvailableToDate($report_to_date);
    $request->setAvailableFromDate($report_from_date);
    $request->setReportTypeList($list);
    $request->setAcknowledged(false);
    //    echo"<pre>";var_dump($request);die();
    $response = $service->getReportList($request);
    //    echo"<pre>";var_dump($response);die();
    if ($response->isSetGetReportListResult()) {
        if ($with_header_message) {
            echo "START DOWNLOADING NEW ORDERS FROM AMAZON PERIODE " . $report_from_date->format(DATE_ISO8601) . " TO " . $report_to_date->format(DATE_ISO8601) . "<br/>";
        }
        $getReportListResult = $response->getGetReportListResult();
        $reportInfoList = $getReportListResult->getReportInfoList();
        if (count($reportInfoList) > 0) {
            $download_message = ' --- NO NEW ORDERS AVAILABLE ---<br/>';
            foreach ($reportInfoList as $reportInfo) {
                if ($reportInfo->isSetReportId()) {
                    $report_id = $reportInfo->getReportId();
                    $filename = date('Ymd') . '-' . $report_id . '.XML';
                    if (!$class_jd->isAlreadyDownloaded("jng_sp_id = 4 AND SUBSTRING_INDEX(filename, '-',-1) = '{$report_id}.XML'")) {
                        $download_message = '';
                        echo "  >> DOWNLOADING REPORT_ID: {$report_id} ... ";
                        $fullpath_ready = $ready_path . $filename;
                        $handle = fopen($fullpath_ready, 'w');
                        $request_report = new MarketplaceWebService_Model_GetReportRequest();
                        $request_report->setMarketplace(MARKETPLACE_ID);
                        $request_report->setMerchant(MERCHANT_ID);
                        $request_report->setReport($handle);
                        $request_report->setReportId($report_id);
                        $response_report = $service->getReport($request_report);
                        echo "STREAMING XML {$filename} ... ";
                        $archive_path_raw = $archived_path . 'raw/' . date('Y') . '/';
                        if (!file_exists($archive_path_raw)) {
                            mkdir($archive_path_raw);
                        }
                        $fullpath_archive = $archive_path_raw . $filename;
                        $class_jd->addDownload('4', 'ORDERS', $filename, 'R');
                        $files[] = $filename;
                        fclose($handle);
                        echo "PROCESS DONE<br/>";
                    }
                }
            }
            echo $download_message;
        } else {
            echo ' --- NO NEW ORDERS AVAILABLE ---<br/>';
        }
        //LOOP MORE IF HAS NEXT NEW ORDERS
        if ($getReportListResult->isSetHasNext() && $getReportListResult->getHasNext()) {
            getAmazonNewOrders(false);
        } else {
            echo "DONE DOWNLOADING NEW ORDERS FROM AMAZON <br/>";
        }
    }
}
     mkdir($backup_path);
 }
 //Give raw name also with $amazon_id to help cron order importer choose correct lastname
 $backup_name = "{$amazon_id}-{$file['name']}";
 while (is_file($backup_path . $backup_name)) {
     $bn_split = explode('.', $backup_name);
     $bn_split_total = count($bn_split);
     $bn_split_ext = $bn_split_total - 1;
     $bn_split[$bn_split_total] = $bn_split[$bn_split_ext];
     $bn_split[$bn_split_ext] = time();
     $backup_name = implode('.', $bn_split);
 }
 $success_upload = false;
 if (move_uploaded_file($file['tmp_name'], SP_AMAZONVD_ARCHIVE_PATH . $backup_name)) {
     copy(SP_AMAZONVD_ARCHIVE_PATH . $backup_name, $backup_path . $backup_name);
     $class_jd->addDownload($jng_sp_id, 'ORDERS', $backup_name, $download_status_to_generate);
     $success_upload = true;
 }
 /* !!! MOVED THIS TO CRON sp-amazon-orders-downloader.php TO AVOID HALTED WHEN UPLOADING LARGE PO FILE !!!
    $download_id = $class_jd->addDownload($jng_sp_id, 'ORDERS', $backup_name, 'I', $session_userinfo['username']);
    $ean_detail_info = ($amazon_id==$amazon_sample_id) ? null : $class_jo->getAMVD_AutoCancelSupportingData($po_pid_collection, $sp_specsets);
    $line_counter = $items_starting_rows_in_excel;
    foreach($orders as $o) {
        $line_counter++;
        $logger->write("Processing Line $line_counter PO=$o[order_id] / EAN=$o[products_ean] / Qty=$o[order_quantity]");
        $auto_cancel_rule = ($amazon_id==$amazon_sample_id) ? false : $class_jo->checkAMVD_AutoCancelRule($o['products_ean'], $ean_detail_info, $sp_specsets);
        if($o['order_quantity']>0 && !$auto_cancel_rule) {
            $dateonly = date('Y-m-d', $o['order_date']);
            if(!in_array($o['customer_shipping_id'], $amazon_shipment_id)) {
                if(!in_array($o['order_id'], $new_shipping_id_orders)) {
                    $subjet = 'AM.VD New Shipping ID';
Exemplo n.º 6
0
 /**
  * Download order files from tb server
  * @return Array of String contain filename that available on tb out folder
  */
 public function downloadOrders()
 {
     use_class('jng_sp_download');
     $class_jd = new jng_sp_download();
     $result = false;
     $target_dir = TRADEBYTE_FTP_OUT_PATH;
     $local_dir = TRADEBYTE_DOWNLOAD_ORDERS_PATH;
     $dir_handle = $this->openDir($target_dir);
     $jng_sp_id = 0;
     //ALL DOWNLOADED ORDERS VIA TRADEBYTE WE USE 0 AS jng_sp_id "ONLY" ON TABLE jng_sp_download
     $download_status_to_generate = 'R';
     while (($file = readdir($dir_handle)) !== false) {
         if ($file != '.' && $file != '..') {
             $downloaded_file = $this->downloadFile($target_dir . $file, $local_dir . $file);
             if ($downloaded_file !== false && $downloaded_file != -1) {
                 $files[] = $downloaded_file;
                 $class_jd->addDownload($jng_sp_id, 'ORDERS', basename($downloaded_file), $download_status_to_generate);
                 $order_done_filename = TRADEBYTE_FTP_ARCHIVE_PATH . $this->getFilePrefixDone() . $file;
                 ssh2_sftp_rename($this->sftp, $target_dir . $file, $order_done_filename);
             }
         }
     }
     if (is_array($files) && count($files) > 0) {
         $result = $files;
     }
     return $result;
 }