$invoice) { if (checkInvoice($invoiceNo)) { echo 'Invoice already exists' . PHP_EOL; continue; } $totalNetto = 0; $totalVat = 0; $totalBrutto = 0; foreach ($invoice as $item) { $totalNetto += str_replace(',', '.', $item[17]); $totalVat += str_replace(',', '.', $item[18]); $totalBrutto += str_replace(',', '.', $item[19]); } $db = $GLOBALS['db']; $db->query("SET NAMES utf8mb4"); $i = $invoice[0]; $type = ''; foreach ($invoice as $item) { if ($item[6] == 'Sprzedaz - Produkt') { $type = 'normal'; break; } else if ($item[6] == 'Zwrot - Produkt') { $type = 'correcting'; break; } } $invoiceId = getId(); $query = sprintf("INSERT INTO ecommerce_invoices VALUES ('%s', '%s', '%s', '%s', '%s', 'amazon vat local', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%f', '%f', '%f', null, null, null, null, null, null);", $invoiceId, $i[21], $type, formatDate($i[5]), formatDate($i[5]), null, 'AmazonCustomer', $i[22], null, null, '', '', null, 'PLN', $totalNetto, $totalBrutto, $totalVat); $res = $db->query($query); if (!$res) { echo "Query error: ".$query.PHP_EOL; } foreach ($invoice as $p) { // if last character is dot, remove it if (substr($p[10], -1) == '.') { $p[10] = substr($p[10], 0, -1); } if (checkProduct($p[10])) { echo 'Cannot find product: '. $p[10] . PHP_EOL; continue; } $productId = $db->fetchByAssoc($db->query(sprintf("SELECT id FROM ecmproducts WHERE code='%s' OR amazon_code='%s' AND deleted=0", $p[10], $p[10])))['id']; $quantity = str_replace(',', '.', $p[11]); $vatValue = str_replace(',', '.', $p[12]) * 100; $netto = str_replace(',', '.', $p[17]) / $quantity; $vat = str_replace(',', '.', $p[18]) / $quantity; $brutto = str_replace(',', '.', $p[19]) / $quantity; $query = sprintf("INSERT INTO ecommerce_invoices_products VALUES('%s', '%s', '%s', null, '%f', '%f', '%f', '%f', '%f', '%s')", getId(), $productId, $invoiceId, $quantity, $netto, $brutto, $vat, $vatValue, $p[10]); $res = $db->query($query); if (!$res) { echo "Query error: ".$query.PHP_EOL; } } } echo 'Koniec. Smutne.'; function checkProduct($code) { $db = $GLOBALS['db']; $res = $db->query(sprintf("SELECT id FROM ecmproducts WHERE code='%s' OR amazon_code='%s' AND deleted=0", $code, $code)); return $res->num_rows > 0 ? false : true; } function checkInvoice($number) { $db = $GLOBALS['db']; $res = $db->query(sprintf("SELECT id FROM ecommerce_invoices WHERE document_no = '%s'", $number)); return $res->num_rows > 0; } function formatDate($date) { $dateTime = DateTime::createFromFormat('d-m-Y', $date); return $dateTime ? $dateTime->format('Y-m-d') : false; } function getId() { $db = $GLOBALS['db']; $res = $db->fetchByAssoc($db->query("SELECT UUID() as id;")); return $res['id']; }