Get stock states from all stocks

This commit is contained in:
Michał Zieliński
2025-07-09 19:49:38 +02:00
parent dffb65ffcf
commit 2fc198bc8e
2 changed files with 5 additions and 15 deletions

View File

@@ -60,7 +60,7 @@ function loadSchedulers($dateFrom = null, $dateTo = null, $ids = null)
$query = "SELECT s.id as orderId, s.document_no, s.status, s.parent_name, s.parent_id, s.send_date, s.type, $query = "SELECT s.id as orderId, s.document_no, s.status, s.parent_name, s.parent_id, s.send_date, s.type,
p.code, p.name, ps.ecmproduct_id, ps.description, p.code, p.name, ps.ecmproduct_id, ps.description,
si.quantity, p.vendor_part_no as kind, p.brand, p.part_no as size, p.shape, si.quantity, p.vendor_part_no as kind, p.brand, p.part_no as size, p.shape,
ss.quantity as stockState, si.id as item_id, s.shipping_address_name, ps.production_date, p.ems_qty_in_stock as stockState, si.id as item_id, s.shipping_address_name, ps.production_date,
ps.quantity as scheduledQuantity, ps.id as id, ps.quantity as scheduledQuantity, ps.id as id,
ps.main_id, ps.main_id,
ps_main.ecmproduct_id as main_product_id, ps_main.ecmproduct_id as main_product_id,
@@ -72,8 +72,6 @@ function loadSchedulers($dateFrom = null, $dateTo = null, $ids = null)
ON ps.ecmsale_id = s.id ON ps.ecmsale_id = s.id
INNER JOIN ecmproducts AS p INNER JOIN ecmproducts AS p
ON ps.ecmproduct_id = p.id ON ps.ecmproduct_id = p.id
LEFT JOIN ecmstockstates AS ss
ON ss.product_id = ps.ecmproduct_id AND ss.stock_id = 'c7afd71a-4c3a-bde4-138d-4acaee1644e4'
LEFT JOIN productionScheduler AS ps_main LEFT JOIN productionScheduler AS ps_main
ON ps.main_id = ps_main.id ON ps.main_id = ps_main.id
LEFT JOIN ecmproducts AS p_main LEFT JOIN ecmproducts AS p_main
@@ -168,11 +166,9 @@ function getRawMaterials($ids)
global $app_list_strings; global $app_list_strings;
foreach ($rawMaterials as $raw) { foreach ($rawMaterials as $raw) {
$product = $db->fetchByAssoc($db->query(" $product = $db->fetchByAssoc($db->query("
SELECT p.id, p.code, p.name, p.group_ks, p.unit_id, ss.quantity as stockState, SELECT p.id, p.code, p.name, p.group_ks, p.unit_id, p.ems_qty_in_stock as stockState,
GROUP_CONCAT(s.stock_address SEPARATOR ', ') AS stock_addresses GROUP_CONCAT(s.stock_address SEPARATOR ', ') AS stock_addresses
FROM ecmproducts AS p FROM ecmproducts AS p
LEFT JOIN ecmstockstates AS ss
ON ss.product_id = p.id AND ss.stock_id = '368479db-22c5-0220-3a14-4bc426b1c709'
LEFT JOIN ecmproducts_stock_addresses s ON p.id = s.ecmproduct_id LEFT JOIN ecmproducts_stock_addresses s ON p.id = s.ecmproduct_id
WHERE p.id='" . $raw['ecmproduct_id'] . "' WHERE p.id='" . $raw['ecmproduct_id'] . "'
GROUP BY p.id GROUP BY p.id

View File

@@ -29,15 +29,13 @@ if (!isset($_GET['ajaxAction'])) {
$allQuery = "SELECT s.id, s.document_no, s.status, s.parent_name, s.parent_id, s.send_date, s.type, $allQuery = "SELECT s.id, s.document_no, s.status, s.parent_name, s.parent_id, s.send_date, s.type,
s.register_date, s.delivery_date, si.code, si.name, si.ecmproduct_id, si.description, s.register_date, s.delivery_date, si.code, si.name, si.ecmproduct_id, si.description,
si.quantity, p.vendor_part_no as kind, p.brand, p.part_no as size, p.shape, si.quantity, p.vendor_part_no as kind, p.brand, p.part_no as size, p.shape,
ss.quantity as stockState, si.id as item_id, s.shipping_address_name, si.production_date, p.ems_qty_in_stock as stockState, si.id as item_id, s.shipping_address_name, si.production_date,
COUNT(ps.id) AS scheduled COUNT(ps.id) AS scheduled
FROM ecmsaleitems AS si FROM ecmsaleitems AS si
INNER JOIN ecmsales AS s INNER JOIN ecmsales AS s
ON s.id = si.ecmsale_id ON s.id = si.ecmsale_id
INNER JOIN ecmproducts AS p INNER JOIN ecmproducts AS p
ON si.ecmproduct_id = p.id ON si.ecmproduct_id = p.id
LEFT JOIN ecmstockstates AS ss
ON ss.product_id = si.ecmproduct_id AND ss.stock_id = 'c7afd71a-4c3a-bde4-138d-4acaee1644e4'
LEFT JOIN productionScheduler AS ps LEFT JOIN productionScheduler AS ps
ON si.id = ps.ecmsaleitem_id AND ps.deleted=0 ON si.id = ps.ecmsaleitem_id AND ps.deleted=0
WHERE s.delivery_date > '$dateFrom'"; WHERE s.delivery_date > '$dateFrom'";
@@ -177,13 +175,11 @@ function getComponents($ids, $dateFrom, $dateTo)
$rows = $db->query($productsQuery); $rows = $db->query($productsQuery);
$componentsData = array(); $componentsData = array();
while ($r = $db->fetchByAssoc($rows)) { while ($r = $db->fetchByAssoc($rows)) {
$componentsQuery = "SELECT p.code, p.name, c.quantity, p.unit_id, c.ecmcomponent_id, ss.quantity as stockState, $componentsQuery = "SELECT p.code, p.name, c.quantity, p.unit_id, c.ecmcomponent_id, p.ems_qty_in_stock as stockState,
p.group_ks, COUNT(ps.id) AS scheduled p.group_ks, COUNT(ps.id) AS scheduled
FROM ecmproductcomponents as c FROM ecmproductcomponents as c
INNER JOIN ecmproducts AS p INNER JOIN ecmproducts AS p
ON p.id = c.ecmcomponent_id ON p.id = c.ecmcomponent_id
LEFT JOIN ecmstockstates AS ss
ON ss.product_id = p.id AND ss.stock_id = '368479db-22c5-0220-3a14-4bc426b1c709'
LEFT JOIN productionScheduler AS ps LEFT JOIN productionScheduler AS ps
ON p.id = ps.ecmproduct_id AND ps.is_component = 1 AND ps.deleted=0 ON p.id = ps.ecmproduct_id AND ps.is_component = 1 AND ps.deleted=0
WHERE c.ecmproduct_id = '" . $r['ecmproduct_id'] . "' GROUP BY p.id"; WHERE c.ecmproduct_id = '" . $r['ecmproduct_id'] . "' GROUP BY p.id";
@@ -264,10 +260,8 @@ function getRawMaterials($ids, $cids)
$componentRawMaterials = getProductRawMaterials($c['ecmcomponent_id'], $c['quantity']); $componentRawMaterials = getProductRawMaterials($c['ecmcomponent_id'], $c['quantity']);
foreach ($componentRawMaterials as $material) { foreach ($componentRawMaterials as $material) {
$product = $db->fetchByAssoc($db->query(" $product = $db->fetchByAssoc($db->query("
SELECT p.id, p.code, p.name, p.group_ks, p.unit_id, ss.quantity as stockState SELECT p.id, p.code, p.name, p.group_ks, p.unit_id, p.ems_qty_in_stock as stockState
FROM ecmproducts AS p FROM ecmproducts AS p
LEFT JOIN ecmstockstates AS ss
ON ss.product_id = p.id AND ss.stock_id = '368479db-22c5-0220-3a14-4bc426b1c709'
WHERE p.id='" . $material['ecmproduct_id'] . "' WHERE p.id='" . $material['ecmproduct_id'] . "'
")); "));
$ordered = $db->fetchByAssoc($db->query("SELECT SUM(poi.quantity) as ordered, GROUP_CONCAT(poi.ecmpurchaseorder_id SEPARATOR '|') AS orders $ordered = $db->fetchByAssoc($db->query("SELECT SUM(poi.quantity) as ordered, GROUP_CONCAT(poi.ecmpurchaseorder_id SEPARATOR '|') AS orders