138 lines
3.6 KiB
PHP
138 lines
3.6 KiB
PHP
<?php
|
|
error_reporting(E_ERROR);
|
|
ini_set('display_errors', 1);
|
|
|
|
if (!defined('sugarEntry')) define('sugarEntry', true);
|
|
|
|
if (PHP_SAPI !== 'cli') {
|
|
die("");
|
|
}
|
|
chdir(realpath(dirname(__FILE__)));
|
|
|
|
require_once('include/entryPoint.php');
|
|
require_once("include/database/MysqliManager.php");
|
|
|
|
global $suger_config;
|
|
$config = $sugar_config['dbconfig'];
|
|
|
|
$GLOBALS['db']->connect($config, true, $config['db_name']);
|
|
|
|
//require_once ('modules/EcmSales/bimit_importEdiOrders.php');
|
|
|
|
checkEDISales();
|
|
|
|
return;
|
|
|
|
function checkEDISales()
|
|
{
|
|
require_once('modules/EcmSales/EcmSale.php');
|
|
require_once('modules/EcmSales/readXML.php');
|
|
|
|
require_once 'include/phpMailer2/class.phpmailer.php';
|
|
require_once 'include/phpMailer2/class.smtp.php';
|
|
|
|
$path = '/var/edi/e5/orders';
|
|
$folders = array(
|
|
'archive',
|
|
'temp',
|
|
'confirm'
|
|
); // do not read this folders
|
|
|
|
$orders = array();
|
|
if (is_dir($path)) {
|
|
if ($dh = opendir($path)) {
|
|
while (($file = readdir($dh)) !== false) {
|
|
if (!is_dir($file) && !in_array($file, $folders)) {
|
|
$orders[] = $file;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// add orders
|
|
$mail_msg = array();
|
|
foreach ($orders as $order) {
|
|
$s = new EcmSale();
|
|
$reader = new readXML();
|
|
$reader->loadXMLFile($order);
|
|
$reader->loader($s);
|
|
$s->position_list = $reader->getPositionList(true);
|
|
$missedProducts = $reader->checkProducts($s->position_list);
|
|
$number = $s->generateNumber();
|
|
$s->number = $number;
|
|
$s->document_no = $s->formatNumber($number);
|
|
$s->edi_file = $order;
|
|
$s->type = 'sales_order';
|
|
$s->status = 's60';
|
|
$s->ecmlanguage = 'pl_pl';
|
|
$a = new Account();
|
|
$a->retrieve($s->parent_id);
|
|
$s->assigned_user_id = $a->assigned_user_id;
|
|
$s->assigned_user_name = $a->assigned_user_name;
|
|
// calculate totals
|
|
$sum_netto = 0;
|
|
$sum_brutto = 0;
|
|
foreach ($s->position_list as $p) {
|
|
$sum_netto += $p['total_netto'];
|
|
$sum_brutto += $p['total_brutto'];
|
|
}
|
|
$s->total_netto = $sum_netto;
|
|
|
|
if ($s->parent_id == 134 || $s->parent_id == '134') {
|
|
$s->shop_number = null;
|
|
}
|
|
|
|
$s->total_brutto = $sum_brutto;
|
|
$s->save ();
|
|
|
|
if (!is_array($mail_msg[$a->assigned_user_id]))
|
|
$mail_msg[$a->assigned_user_id] = array();
|
|
if (!$s->parent_name || $s->parent_name == "")
|
|
$s->parent_name = 'Błąd! Brak kontrahenta!';
|
|
$msg =
|
|
'<b>Plik: ' . $order . '</b><br>' . $s->document_no . ', ' . $s->parent_document_no . ', ' . $s->parent_name . '<br>';
|
|
if (count($missedProducts) == 0) {
|
|
$msg .= 'Status produktów: <b>OK</b>';
|
|
} else {
|
|
$msg .= '<b>Zamówienie niekompletne: ' . implode(', ', $missedProducts);
|
|
}
|
|
$msg .= '<br><br><br>';
|
|
$mail_msg[$a->assigned_user_id][] = $msg;
|
|
unset($a);
|
|
// move files
|
|
rename($path . '/' . $order, $path . '/archive/' . $order);
|
|
}
|
|
//send messages
|
|
// require_once 'modules/Schedulers/phpMailer.php';
|
|
foreach ($mail_msg as $user => $msg) {
|
|
$u = new User();
|
|
$u->retrieve($user);
|
|
|
|
$message = $date = date('Y-m-d H:i:s') . ' dodano zamówienie(a):<br>';
|
|
foreach ($msg as $m) {
|
|
$message .= $m . '<br>';
|
|
}
|
|
|
|
$mail = new PHPMailer2();
|
|
$mail->isSMTP();
|
|
$mail->setFrom('system@e5.pl', 'Usługa importu EDI');
|
|
$mail->Host = 'smtp.gmail.com';
|
|
$mail->SMTPAuth = true;
|
|
$mail->Username = 'system@e5.pl';
|
|
$mail->Password = 'upkb sxxb pmxw lsaj';
|
|
$mail->SMTPSecure = 'tls';
|
|
$mail->Port = 587;
|
|
$mail->CharSet = 'UTF-8';
|
|
$mail->addAddress('mz@bim-it.pl', 'Michał Zieliński');
|
|
$mail->addAddress('rl@e5.pl', 'Ryszard Lisiecki');
|
|
$mail->addAddress('mf@e5.pl', 'Małgorzata Franiewska');
|
|
$mail->isHTML(true);
|
|
$mail->Subject = "Import zamówienia EDI - E5";
|
|
$mail->Body = $message;
|
|
$mail->send();
|
|
|
|
unset($mS); // cleaning
|
|
}
|
|
|
|
return true;
|
|
}
|