Production improvements
This commit is contained in:
@@ -12,7 +12,7 @@ chdir(realpath(dirname(__FILE__)));
|
||||
require_once('include/entryPoint.php');
|
||||
require_once("include/database/MysqliManager.php");
|
||||
|
||||
global $suger_config;
|
||||
global $sugar_config;
|
||||
$config = $sugar_config['dbconfig'];
|
||||
|
||||
$GLOBALS['db']->connect($config, true, $config['db_name']);
|
||||
|
||||
@@ -57,15 +57,17 @@ function loadSchedulers($dateFrom = null, $dateTo = null, $ids = null)
|
||||
$db = $GLOBALS['db'];
|
||||
global $app_list_strings;
|
||||
|
||||
$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,
|
||||
si.quantity, p.vendor_part_no as kind, p.brand, p.part_no as size, p.shape,
|
||||
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.main_id,
|
||||
ps_main.ecmproduct_id as main_product_id,
|
||||
p_main.code as main_product_code
|
||||
FROM productionScheduler AS ps
|
||||
p_main.code as main_product_code,
|
||||
GROUP_CONCAT(a.name SEPARATOR ', ') as actions
|
||||
FROM productionScheduler AS ps
|
||||
LEFT JOIN ecmsaleitems AS si
|
||||
ON ps.ecmsaleitem_id = si.id
|
||||
LEFT JOIN ecmsales AS s
|
||||
@@ -76,7 +78,12 @@ function loadSchedulers($dateFrom = null, $dateTo = null, $ids = null)
|
||||
ON ps.main_id = ps_main.id
|
||||
LEFT JOIN ecmproducts AS p_main
|
||||
ON ps_main.ecmproduct_id = p_main.id
|
||||
WHERE ps.deleted = 0 ";
|
||||
LEFT JOIN ecmproductactions pa
|
||||
ON p.id = pa.ecmproduct_id
|
||||
LEFT JOIN ecmactions a
|
||||
ON pa.ecmaction_id = a.id
|
||||
WHERE ps.deleted = 0
|
||||
GROUP BY ps.id, s.id, si.id, p.id, ps_main.id, p_main.id";
|
||||
|
||||
if ($dateFrom != null && $dateTo != null) {
|
||||
$query .= " AND (
|
||||
@@ -123,8 +130,9 @@ function loadSchedulers($dateFrom = null, $dateTo = null, $ids = null)
|
||||
$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'];
|
||||
|
||||
$row['mainProductCode'] = strlen($r['main_product_code']) > 20 ? substr($r['main_product_code'], 0, 20) . "..." : $r['main_product_code'];
|
||||
$row['mainProductFullCode'] = $r['main_product_code'];
|
||||
$row['actions'] = $r['actions'];
|
||||
$data[] = $row;
|
||||
}
|
||||
return $data;
|
||||
|
||||
@@ -151,6 +151,7 @@
|
||||
<th>Forma</th>
|
||||
<th>Marka</th>
|
||||
<th>Data wysyłki</th>
|
||||
<th>Czynność</th>
|
||||
<th>Uwagi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -177,7 +178,8 @@
|
||||
</td>
|
||||
<td>
|
||||
<input id="production-date-{$ROW.id}" name="production-date-{$ROW.id}" type="text"
|
||||
maxlength="10" size="11" tabindex="" title="" value="{$ROW.productionDate}" autocomplete="off"
|
||||
maxlength="10" size="11" tabindex="" title="" value="{$ROW.productionDate}"
|
||||
autocomplete="off"
|
||||
id="production-date-{$ROW.id}" onchange="saveProductionDate('{$ROW.id}')">
|
||||
<img id="production-date-trigger-{$ROW.id}" src="themes/default/images/jscalendar.gif"
|
||||
style="width: 13px;">
|
||||
@@ -200,7 +202,8 @@
|
||||
onclick="saveQty('{$ROW.id}')" style="display: none;"></div>
|
||||
<div id="qty-{$ROW.id}" style="display: inline; width: 300px;">{$ROW.qty}
|
||||
</div>
|
||||
<input id="qtyInput-{$ROW.id}" value="{$ROW.qty}" style="width: 50px; display: none;" type="number"/>
|
||||
<input id="qtyInput-{$ROW.id}" value="{$ROW.qty}" style="width: 50px; display: none;"
|
||||
type="number"/>
|
||||
</td>
|
||||
<td>
|
||||
{$ROW.productQty}
|
||||
@@ -220,7 +223,8 @@
|
||||
{$ROW.orderStatus}
|
||||
</td>
|
||||
<td>
|
||||
<a target="_blank" href="index.php?module=EcmProducts&action=DetailView&record={$ROW.mainProductId}">
|
||||
<a target="_blank" href="index.php?module=EcmProducts&action=DetailView&record={$ROW.mainProductId}"
|
||||
title="{$ROW.mainProductFullCode}">
|
||||
{$ROW.mainProductCode}
|
||||
</a>
|
||||
</td>
|
||||
@@ -236,6 +240,9 @@
|
||||
<td>
|
||||
{$ROW.orderSendDate}
|
||||
</td>
|
||||
<td>
|
||||
{$ROW.actions}
|
||||
</td>
|
||||
<td>
|
||||
<div id="edit-description-{$ROW.id}" class="ui-icon ui-icon-pencil"
|
||||
onclick="editDescription('{$ROW.id}')" style="display: inline-block;"></div>
|
||||
|
||||
@@ -331,6 +331,7 @@ function drawRawMaterials(data) {
|
||||
});
|
||||
orders += "</td>";
|
||||
tr.append(orders);
|
||||
tr.append("<td>" + el.stockAddress + "</td>");
|
||||
$("#rawMaterialsTable > tbody").append(tr);
|
||||
});
|
||||
|
||||
@@ -492,7 +493,7 @@ function componentsTablePrototype() {
|
||||
return '<table id="componentsTable"><thead><tr><th class="filter-false"><input type="checkbox" id="selectAllComponents" /></th><th>Pozycja</th><th>Indeks</th><th>Nazwa</th><th>Ilość</th><th>Stan</th><th>ZS E5</th><th>Typ</th><th>Status</th><th>Produkt główny</th><th>Odbiorca</th><th>Forma</th><th>Marka</th><th>Data wysyłki</th></tr></thead><tbody aria-live="polite" aria-relevant="all"></tbody><tfoot><tr><td colspan=4></td><td id="componentsTableSum">0</td><td colspan="9"></td></tr></tfoot></table>'
|
||||
}
|
||||
function rawMaterialsTablePrototype() {
|
||||
return '<table id="rawMaterialsTable"><thead><tr><th class="filter-false"><input type="checkbox" id="selectAllRawMaterials" /></th><th>Pozycja</th><th>Indeks</th><th>Nazwa</th><th>Ilość</th><th>JM.</th><th>Stan</th><th>Zamówiono</th><th>Dostawca</th><th>Zamówienie</th></tr></thead><tbody aria-live="polite" aria-relevant="all"></tbody><tfoot><tr><td colspan=4></td><td id="rawMaterialsTableSum">0</td><td colspan="5"></td></tr></tfoot></table>'
|
||||
return '<table id="rawMaterialsTable"><thead><tr><th class="filter-false"><input type="checkbox" id="selectAllRawMaterials" /></th><th>Pozycja</th><th>Indeks</th><th>Nazwa</th><th>Ilość</th><th>JM.</th><th>Stan</th><th>Zamówiono</th><th>Dostawca</th><th>Zamówienie</th><th>Adres magazynowy</th></tr></thead><tbody aria-live="polite" aria-relevant="all"></tbody><tfoot><tr><td colspan=4></td><td id="rawMaterialsTableSum">0</td><td colspan="6"></td></tr></tfoot></table>'
|
||||
}
|
||||
function addToProductionScheduler(orderItemId) {
|
||||
showLoader("Trwa dodawanie elementu do harmonogramu produkcji...");
|
||||
|
||||
@@ -99,6 +99,8 @@ if (!isset($_GET['ajaxAction'])) {
|
||||
$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['shippingToFull'] = $row['shippingTo'];
|
||||
$row['shippingTo'] = strlen($row['shippingTo']) > 55 ? substr($row['shippingTo'], 0, 55) . "..." : $row['shippingTo'];
|
||||
$row['productionDate'] = $r['production_date'];
|
||||
$row['productStockState'] = $r['stockState'] | 0;
|
||||
$row['scheduled'] = $r['scheduled'];
|
||||
@@ -160,7 +162,6 @@ function findProduct($array, $value)
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
function getComponents($ids, $dateFrom, $dateTo)
|
||||
{
|
||||
$db = $GLOBALS['db'];
|
||||
@@ -235,7 +236,6 @@ function getComponents($ids, $dateFrom, $dateTo)
|
||||
}
|
||||
echo json_encode($componentsData);
|
||||
}
|
||||
|
||||
function getRawMaterials2($ids, $type)
|
||||
{
|
||||
global $app_list_strings;
|
||||
@@ -287,9 +287,12 @@ function getRawMaterials2($ids, $type)
|
||||
|
||||
foreach ($grouppedRawMaterials as $material) {
|
||||
$product = $db->fetchByAssoc($db->query("
|
||||
SELECT p.id, p.code, p.name, p.group_ks, p.unit_id, p.ems_qty_in_stock 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
|
||||
FROM ecmproducts AS p
|
||||
LEFT JOIN ecmproducts_stock_addresses s ON p.id = s.ecmproduct_id
|
||||
WHERE p.id='" . $material['ecmproduct_id'] . "'
|
||||
GROUP BY p.id
|
||||
"));
|
||||
$ordered = $db->fetchByAssoc($db->query("SELECT SUM(poi.quantity) as ordered, GROUP_CONCAT(poi.ecmpurchaseorder_id SEPARATOR '|') AS orders
|
||||
FROM ecmpurchaseorderitems as poi
|
||||
@@ -329,11 +332,11 @@ function getRawMaterials2($ids, $type)
|
||||
$row['productGroupKS'] = $product['group_ks'];
|
||||
$row['orders'] = $orders;
|
||||
$row['productStockState'] = (!empty($product['stockState'])) ? $product['stockState'] : 0;
|
||||
$row['stockAddress'] = (!empty($product['stock_addresses'])) ? $product['stock_addresses'] : "";
|
||||
$response[] = $row;
|
||||
}
|
||||
return json_encode($response);
|
||||
}
|
||||
|
||||
function getRawMaterials($ids, $cids)
|
||||
{
|
||||
$db = $GLOBALS['db'];
|
||||
@@ -419,7 +422,6 @@ function getRawMaterials($ids, $cids)
|
||||
|
||||
echo json_encode($rawMaterialsData);
|
||||
}
|
||||
|
||||
function getProductRawMaterials($productId, $quantity)
|
||||
{
|
||||
$db = $GLOBALS['db'];
|
||||
@@ -454,7 +456,6 @@ WHERE
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
|
||||
function addToProductionScheduler($orderItemId)
|
||||
{
|
||||
$db = $GLOBALS['db'];
|
||||
@@ -472,7 +473,7 @@ function addToProductionScheduler($orderItemId)
|
||||
foreach ($products as $product) {
|
||||
if ($saleInfo['ecmproduct_id'] == $product['ecmproduct_id']) {
|
||||
$id = $masterId;
|
||||
$mainId = null;
|
||||
$mainId = $masterId;
|
||||
} else {
|
||||
$id = generateUuidV4();
|
||||
$mainId = $masterId;
|
||||
@@ -483,7 +484,6 @@ function addToProductionScheduler($orderItemId)
|
||||
$db->query($query);
|
||||
}
|
||||
}
|
||||
|
||||
function addComponentToProductionScheduler($productId, $qty)
|
||||
{
|
||||
$db = $GLOBALS['db'];
|
||||
@@ -492,7 +492,6 @@ function addComponentToProductionScheduler($productId, $qty)
|
||||
generateUuidV4(), $qty, $current_user->id, $current_user->id, $productId);
|
||||
$db->query($query);
|
||||
}
|
||||
|
||||
function getComponents2($ids)
|
||||
{
|
||||
$db = $GLOBALS['db'];
|
||||
@@ -534,7 +533,7 @@ function getComponents2($ids)
|
||||
$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['shipping_address_name'] == 'Adres korespondencyjny' ? '' : $r['shipping_address_name']);
|
||||
$row['orderParent'] = (isset($r['shipping_address_name']) && $r['shipping_address_name'] != 'Adres korespondencyjny' ? $r['shipping_address_name'] : '');
|
||||
$row['orderSendDate'] = $r['send_date'];
|
||||
$componentsData[] = $row;
|
||||
}
|
||||
@@ -574,7 +573,6 @@ function getComponents2($ids)
|
||||
*
|
||||
*/
|
||||
}
|
||||
|
||||
function getProductComponents($productId, $quantity)
|
||||
{
|
||||
$db = $GLOBALS['db'];
|
||||
@@ -614,7 +612,6 @@ HAVING
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
|
||||
function generateUuidV4()
|
||||
{
|
||||
$data = openssl_random_pseudo_bytes(16);
|
||||
|
||||
@@ -215,7 +215,7 @@
|
||||
{$ROW.orderParent}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<td title="{$ROW.shippingToFull}">
|
||||
{$ROW.shippingTo}
|
||||
</td>
|
||||
<td>
|
||||
|
||||
Reference in New Issue
Block a user