/** * Ist für den Abgleich der Bestellungen im Cronjob. */ public function update() { global $selectline, $oxid, $ftp; $this->set_log('Cronjob: ' . date('d.m.Y H:i:s') . "\r\n"); try { $ftp = new Ftp(); $ftp->connect($oxid['ftp_host']); $ftp->login($oxid['ftp_user'], $oxid['ftp_password']); $ftp->close(); } catch (Exception $e) { $this->set_log('SelectConnect konnte keine Verbindung zum FTP-Server herstellen!'); exit; } if (!oxid_userlogin()) { $this->set_log('SelectConnect konnte sich nicht bei Oxid einloggen!'); exit; } if (!$this->is_current_update_process()) { $this->set_log("Cronjob wurde gestartet \r\n"); $this->set_lock_file(); $last_update = $this->get_last_update(); $this->set_log("Bestellungen werden in Selectline importiert \r\n"); $orders = $oxid['db']->get_results("SELECT * FROM " . $oxid['table_order'] . " WHERE OXFOLDER = '" . $oxid['get_order_status'] . "' ORDER BY OXORDERNR"); if ($orders) { foreach ($orders as $order) { $order_products = $oxid['db']->get_results("SELECT * FROM " . $oxid['table_orderarticles'] . " WHERE OXORDERID = '" . $order->OXID . "' "); $order->products = $order_products; $order_payment = $oxid['db']->get_row("SELECT * FROM " . $oxid['table_payments'] . " WHERE ('" . $order->OXPAYMENTTYPE . "' = OXID)"); $order->payment = $order_payment; $this->set_order_to_selectline($order, true); $oxid['db']->query("UPDATE " . $oxid['table_order'] . " SET OXFOLDER = '" . $oxid['set_order_status'] . "', OXEXPORT = 1 WHERE `OXID` = '" . $order->OXID . "' "); } } $this->set_log("Bestellungstatus wird abgeglichen \r\n"); $orders = $selectline['db']->get_results("SELECT * FROM " . $selectline['table_orders'] . " WHERE [Belegtyp] = '" . $selectline['filter_order_invoice'] . "' AND [BearbeitetAm] >= CONVERT(datetime, '" . $last_update->format('d.m.Y H:i:s') . "',104)"); if ($orders) { foreach ($orders as $order) { $tracking_id = $this->get_tracking_id_from_selectline($order); $updateArray = array('OXBILLNR' => $order->Belegnummer, 'OXBILLDATE' => $order->Datum->format('Y-m-d'), 'OXSENDDATE' => $order->Datum->format('Y-m-d H:i:s'), 'OXFOLDER' => $oxid['order_status_finish']); if ($tracking_id !== NULL) { $updateArray['OXTRACKCODE'] = $tracking_id; } //print_r($this->format_update_query($oxid['table_order'], $updateArray, array('OXORDERNR' => str_replace('OX', '', $order->IhrAuftrag)))); $oxid['db']->query($this->format_update_query($oxid['table_order'], $updateArray, array('OXORDERNR' => str_replace('OX', '', $order->IhrAuftrag)))); $this->set_log("Bestellung " . $order->IhrAuftrag . "/" . $order->Belegnummer . " - Status: FINISHED - Tracking: " . $tracking_id . " \r\n"); } } $this->set_last_update(); $this->remove_lock_file(); $this->set_log("Cron wurde beendet \r\n"); $this->set_log("\r\n##################################\r\n\r\n"); } else { print_r('Error: Es läuft bereits Update-Prozess.'); } }
</head> <body class="<?php echo $action; ?> "> <?php try { $ftp = new Ftp(); $ftp->connect($oxid['ftp_host']); $ftp->login($oxid['ftp_user'], $oxid['ftp_password']); $ftp->close(); } catch (Exception $e) { print_r('<p class="alert alert-danger">SelectConnect konnte keine Verbindung zum FTP-Server herstellen!</p>'); $action = 'error'; } if (!oxid_userlogin()) { print_r('<p class="alert alert-danger">SelectConnect konnte sich nicht bei Oxid einloggen!</p>'); $action = 'error'; } switch ($action) { case 'orders': $orders = new Orders(); $items = $orders->import(); ?> <h1>SelectConnect | Bestellungen</h1> <p>Es wurden <?php echo $items['items']; ?> Produkte abgeglichen und <?php echo $items['imports']; ?>