2024-04-27 09:23:34 +02:00
|
|
|
<?php
|
2025-08-11 21:08:03 +02:00
|
|
|
global $sugar_config;
|
2024-04-27 09:23:34 +02:00
|
|
|
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");
|
|
|
|
|
|
|
|
|
|
$config = $sugar_config['dbconfig'];
|
|
|
|
|
|
|
|
|
|
$GLOBALS['db']->connect($config, true, $config['db_name']);
|
|
|
|
|
|
|
|
|
|
//require_once ('modules/EcmSales/bimit_importEdiOrders.php');
|
|
|
|
|
|
|
|
|
|
checkEDISales();
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
function checkEDISales()
|
|
|
|
|
{
|
2025-08-11 21:08:03 +02:00
|
|
|
global $sugar_config;
|
|
|
|
|
require_once('modules/EcmSales/EcmSale.php');
|
2024-04-27 09:23:34 +02:00
|
|
|
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;
|
2025-08-26 19:42:19 +02:00
|
|
|
$s->type = 'abf8f342-13de-bb9f-7848-687897a3b953';
|
|
|
|
|
$s->status = 's30';
|
2024-04-27 09:23:34 +02:00
|
|
|
$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;
|
|
|
|
|
|
2025-08-26 19:42:19 +02:00
|
|
|
if ($s->parent_id == 134 || $s->parent_id == '134') { // carrefour
|
2024-04-27 09:23:34 +02:00
|
|
|
$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();
|
2025-08-11 21:08:03 +02:00
|
|
|
$mail->setFrom($sugar_config['GMail_address'], 'Usługa importu EDI');
|
|
|
|
|
$mail->Host = $sugar_config['GMail_host'];
|
2025-08-12 16:16:00 +02:00
|
|
|
$mail->SMTPAuth = $sugar_config['GMail_SMTPAuth'];
|
2025-08-11 21:08:03 +02:00
|
|
|
$mail->Username = $sugar_config['GMail_address'];
|
2025-08-12 16:16:00 +02:00
|
|
|
$mail->Password = $sugar_config['GMail_password'];
|
|
|
|
|
$mail->SMTPSecure = $sugar_config['GMail_SMTPSecure'];
|
|
|
|
|
$mail->Port = $sugar_config['GMail_port'];
|
|
|
|
|
$mail->CharSet = $sugar_config['GMail_CharSet'];
|
2024-04-27 09:23:34 +02:00
|
|
|
$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;
|
|
|
|
|
}
|