Files
crm.e5.pl/importE5EDISales.php
2024-04-27 09:23:34 +02:00

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 = 's30';
$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 = 'eT4U>hyJe';
$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;
}