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 ''
+ return ''
}
function rawMaterialsTablePrototype() {
return ''
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();