diff --git a/modules/EcmReports/BimIT-Reports/productsBySales/productsBySales.js b/modules/EcmReports/BimIT-Reports/productsBySales/productsBySales.js index 7d96cd88..bf1e15c4 100644 --- a/modules/EcmReports/BimIT-Reports/productsBySales/productsBySales.js +++ b/modules/EcmReports/BimIT-Reports/productsBySales/productsBySales.js @@ -206,19 +206,14 @@ function drawComponents(data) { tr.append("" + el.productCode + ""); tr.append("" + el.productName + ""); tr.append("" + el.productQty + ""); - tr.append("" + el.productUnit + ""); tr.append("" + el.productStockState + ""); - tr.append("" + el.productOrdered + ""); - tr.append("" + el.productVendorName + ""); - var orders = ""; - el.orders.forEach((o) => { - orders += "" + o.orderNr + ""; - if (o.orderDeliveryDate.length) { - orders += " (" + o.orderDeliveryDate + ") "; - } - }); - orders += ""; - tr.append(orders); + tr.append("" + el.orderNo + ""); + tr.append("" + el.orderType + ""); + tr.append("" + el.orderStatus + ""); + tr.append("" + el.orderParent + ""); + tr.append("" + el.productKind + ""); + tr.append("" + el.productBrand + ""); + tr.append("" + el.orderSendDate + ""); $("#componentsTable > tbody").append(tr); }); $("#componentsTable").tablesorter({ @@ -484,7 +479,7 @@ function updateRawMaterialsPositions() { $("#rawMaterialsTableSum").html(Math.ceil(sum)); } function componentsTablePrototype() { - return '
PozycjaIndeksNazwaIlośćJM.StanZamówionoDostawcaZamówienie
0
' + return '
PozycjaIndeksNazwaIlośćStanZS E5TypStatusOdbiorcaFormaMarkaData wysyłki
0
' } function rawMaterialsTablePrototype() { return '
PozycjaIndeksNazwaIlośćJM.StanZamówionoDostawcaZamówienie
0
' diff --git a/modules/EcmReports/BimIT-Reports/productsBySales/productsBySales.php b/modules/EcmReports/BimIT-Reports/productsBySales/productsBySales.php index 012e360d..10649a94 100644 --- a/modules/EcmReports/BimIT-Reports/productsBySales/productsBySales.php +++ b/modules/EcmReports/BimIT-Reports/productsBySales/productsBySales.php @@ -133,7 +133,7 @@ if (!isset($_GET['ajaxAction'])) { } else { switch ($_GET['ajaxAction']) { case 'getComponents': - echo getComponents($_POST['ids'], $dateFrom, $dateTo); + echo getComponents2($_POST['ids']); break; case 'getRawMaterials': echo getRawMaterials($_POST['ids'], $_POST['cids']); @@ -343,7 +343,6 @@ function getProductRawMaterials($productId, $quantity) return $response; } } - function addToProductionScheduler($orderItemId) { $db = $GLOBALS['db']; global $current_user; @@ -378,6 +377,84 @@ function addComponentToProductionScheduler($productId, $qty) { generateUuidV4(), $qty, $current_user->id, $current_user->id, $productId); $db->query($query); } +function getComponents2($ids) { + $db = $GLOBALS['db']; + global $app_list_strings; + $idsString = join("','", $ids); + $productsQuery = "SELECT si.ecmproduct_id, SUM(si.quantity) as quantity, s.document_no, s.parent_id, s.parent_name, + s.id, s.type, s.status, s.send_date + FROM ecmsaleitems AS si + INNER JOIN ecmsales AS s + ON s.id = si.ecmsale_id + WHERE si.id IN ('" . $idsString . "') + GROUP BY si.ecmproduct_id"; + $rows = $db->query($productsQuery); + + $componentsData = array(); + while ($r = $db->fetchByAssoc($rows)) { + $products = getProductComponents($r['ecmproduct_id'], $r['quantity']); + foreach ($products as $product) { + $prodQuery = sprintf("SELECT p.id, p.code, p.name, p.shape, p.brand, p.ems_qty_in_stock, + p.vendor_part_no as kind + FROM ecmproducts AS p WHERE p.id = '%s' AND p.deleted = 0", $product['ecmproduct_id']); + $p = $db->fetchByAssoc($db->query($prodQuery)); + $row = array(); + $row['productId'] = $p['id']; + $row['productName'] = strlen($p['name']) > 55 ? substr($p['name'], 0, 55) . "..." : $p['name']; + $row['productFullName'] = $p['name']; + $row['productCode'] = strlen($p['code']) > 20 ? substr($p['code'], 0, 20) . "..." : $p['code']; + $row['productFullCode'] = $p['code']; + $row['productKind'] = $p['kind'] != null ? $p['kind'] : ""; + $row['productSize'] = $p['size']; + $row['productShape'] = $app_list_strings['ecmproducts_shape_dom'][$p['shape']]; + $row['productBrand'] = $app_list_strings['ecmproducts_brand_dom'][$p['brand']]; + $row['productQty'] = $product['quantity']; + $row['productStockState'] = $p['ems_qty_in_stock'] | 0; + $row['orderNo'] = $r['document_no']; + $row['orderId'] = $r['id']; + $row['orderStatus'] = $app_list_strings['ecmsales_status_dom'][$r['status']]; + $row['orderType'] = $app_list_strings['ecmsales_type_dom'][$r['type']]; + $row['orderParent'] = $r['parent_name']; + $row['orderParentId'] = $r['parent_id']; + $row['orderSendDate'] = $r['send_date']; + $componentsData[] = $row; + } + } + + return json_encode($componentsData); + + /* + * $row['position'] = $i; + $row['id'] = $r['id']; + $row['productName'] = strlen($r['name']) > 55 ? substr($r['name'], 0, 55) . "..." : $r['name']; + $row['productFullName'] = $r['name']; + $row['productCode'] = strlen($r['code']) > 20 ? substr($r['code'], 0, 20) . "..." : $r['code']; + $row['productFullCode'] = $r['code']; + $row['productId'] = $r['ecmproduct_id']; + $row['productQty'] = $r['quantity']; + $row['qty'] = $r['scheduledQuantity']; + $row['productKind'] = $r['kind']; + $row['productSize'] = $r['size']; + $row['productShape'] = $app_list_strings['ecmproducts_shape_dom'][$r['shape']]; + $row['productBrand'] = $app_list_strings['ecmproducts_brand_dom'][$r['brand']]; + $row['orderNo'] = $r['document_no']; + $row['orderId'] = $r['orderId']; + $row['orderStatus'] = $app_list_strings['ecmsales_status_dom'][$r['status']]; + $row['orderType'] = $app_list_strings['ecmsales_type_dom'][$r['type']]; + $row['orderParent'] = $r['parent_name']; + $row['orderParentId'] = $r['parent_id']; + $row['orderSendDate'] = $r['send_date']; + $row['orderItemId'] = $r['item_id']; + $row['description'] = strlen($r['description']) > 0 ? substr($r['description'], 0, 30) : ''; + $row['fullDescription'] = $r['description']; + $row['shippingTo'] = ($r['shipping_address_name'] == 'Adres korespondencyjny' ? '' : $r['shipping_address_name']); + $row['productionDate'] = $r['production_date'] == '0000-00-00' ? '' : $r['production_date']; + $row['productStockState'] = $r['stockState'] | 0; + $row['mainProductId'] = $r['main_product_id']; + $row['mainProductCode'] = $r['main_product_code']; + * + */ +} function getProductComponents($productId, $quantity) { $db = $GLOBALS['db']; $response = array();