'; echo ''; echo ''; // $cq=$current_user->getPreference('confirm_quotes'); $new_number = false; $duplicate = false; $focus = new EcmStockDocCorrect(); require_once('include/MVC/View/SugarView.php'); require_once('modules/EcmStockDocCorrects/views/EditView/view.edit.ecmstockdoccorrects.php'); $edit = new ViewEditEcmStockDocCorrects(); $edit->ss = new Sugar_Smarty(); if (isset($_REQUEST['record']) && $_REQUEST['isDuplicate'] == "false") { $focus->retrieve($_REQUEST['record']); if (isset($focus->id) && $focus->id != '') { $focus->format_all_fields(); } } else if ($_REQUEST['isDuplicate'] == "true") { $new_number = true; $duplicate = true; //get data $focus->retrieve($_REQUEST['return_id']); } else if (isset($_REQUEST['ecommerceKS'])) { $new_number = true; $focus->stock_id = 'cf16804e-f698-5e09-2da3-6553588446ae'; $focus->register_date = date("d.m.Y"); $focus->type = '8a6b804b-fac7-5cc2-de19-54c209116b19'; $focus->name = 'Zwrot allegro'; $db = $GLOBALS['db']; $invoiceIds = $_SESSION[$_REQUEST['ecommerceKS']]; $query = " SELECT ip.ecmproduct_id, SUM(ip.quantity) AS quantity, ip.price_netto, p.code, p.name, p.unit_id FROM ecommerce_invoices_products AS ip INNER JOIN ecmproducts AS p ON ip.ecmproduct_id = p.id WHERE invoice_id IN ('" . implode('\',\'', $invoiceIds) . "') AND ip.ecmproduct_id NOT IN ('', '165f364e-9301-25ac-5906-58e38f1de4ca') AND ip.quantity > 0 GROUP BY ip.ecmproduct_id, ip.price_netto; "; $res = $db->query($query); $products = array(); $productIds = array(); while ($row = $db->fetchByAssoc($res)) { $products[$row['ecmproduct_id']] = $row; $productIds[] = $row['ecmproduct_id']; } $prices = array(); if (!empty($productIds)) { $priceQuery = " SELECT sdi.ecmproduct_id, sdi.price, sd.register_date FROM ecmstockdocinitems sdi INNER JOIN ecmstockdocins sd ON sdi.ecmstockdocin_id = sd.id WHERE sd.parent_id = 'f084e64a-4e63-a3d1-6417-58cbf730df3f' AND sdi.ecmproduct_id IN ('" . implode('\',\'', $productIds) . "') AND sdi.deleted = 0 AND sd.deleted = 0 ORDER BY sdi.ecmproduct_id, sd.register_date DESC "; $priceRes = $db->query($priceQuery); while ($row = $db->fetchByAssoc($priceRes)) { if (!isset($prices[$row['ecmproduct_id']])) { $prices[$row['ecmproduct_id']] = $row['price']; } } } $finalProducts = array(); $position = 1; foreach ($products as $productId => $product) { $finalPrice = isset($prices[$productId]) ? $prices[$productId] : $product['price_netto']; $finalProducts[] = array( 'position' => $position++, 'product_id' => $productId, 'product_code' => $product['code'], 'name' => $product['name'], 'quantity' => $product['quantity'], 'price' => $finalPrice, 'unit_id' => $product['unit_id'], 'unit_name' => $app_list_strings['ecmproducts_unit_dom'][$product['unit_id']], 'ecmvat_name' => '23%', 'ecmvat_value' => 23, 'ecmvat_id' => '28079566-b825-e38f-9993-4ccc7b781de5', ); } $finalProducts = array_values(array_reduce($finalProducts, function ($carry, $item) { $key = $item['product_id'] . '-' . $item['price']; if (!isset($carry[$key])) { $carry[$key] = $item; } else { $carry[$key]['quantity'] += $item['quantity']; } return $carry; }, array())); $edit->ss->assign('ECOMMERCE_PRODUCTS', json_encode($finalProducts)); $edit->ss->assign('ECOMMERCE_INVOICES', json_encode($invoiceIds)); $focus->ecommerce_invoices = $invoiceIds; $query = "SELECT document_no FROM ecommerce_invoices WHERE id IN ('" . implode('\',\'', $invoiceIds) . "')"; $res = $db->query($query); $documentNos = array(); while ($row = $db->fetchByAssoc($res)) { $documentNos[] = $row['document_no']; } $focus->pdf_text = "Dotyczy faktur: " . implode(', ', $documentNos); } else if (isset($_REQUEST['liquidation'])) { $new_number = true; $focus->stock_id = 'cf16804e-f698-5e09-2da3-6553588446ae'; $focus->register_date = date("d.m.Y"); $focus->type = '7bb903d0-c296-7d1b-6e50-54c209e30850'; $focus->name = 'Likwidacja allegro'; $db = $GLOBALS['db']; $ks = new EcmStockDocCorrect(); $ks->retrieve($_REQUEST['liquidation']); $products = $ks->getPositionList(true); foreach ($products as &$item) { $item['quantity'] = -$item['quantity']; } unset($item); $edit->ss->assign('ECOMMERCE_PRODUCTS', json_encode($products)); } else { $new_number = true; //dates $focus->stock_id = $current_user->stock_id; $focus->register_date = date("d.m.Y"); $OPT['check_parent_id'] = false; } //get stocks $res = $db->query("SELECT id, name FROM ecmstocks WHERE deleted = '0' ORDER BY name"); $stock = ''; $edit->module = 'EcmStockDocCorrects'; $edit->bean = $focus; $edit->tplFile = 'include/ECM/EcmViews/EditView/Tabs/EditView.tpl'; $edit->preDisplay(); $edit->ss->assign("NEW_NUMBER", $new_number); $edit->ss->assign("DUPLICATE", $duplicate); $edit->ss->assign("STOCK", $stock); echo $edit->display(); //loading view echo '
';