sort sale products list by stock_address
This commit is contained in:
@@ -1,120 +1,150 @@
|
||||
<?php
|
||||
if (! defined ( 'sugarEntry' ) || ! sugarEntry)
|
||||
die ( 'Not A Valid Entry Point' );
|
||||
|
||||
// require_once('modules/EcmGroupSales/HeaderMenu.php');
|
||||
if (!defined('sugarEntry') || !sugarEntry)
|
||||
die ('Not A Valid Entry Point');
|
||||
|
||||
global $sugar_version, $sugar_config, $current_user, $app_strings, $mod_strings;
|
||||
|
||||
require_once ('modules/EcmInsideOrders/EcmInsideOrder.php');
|
||||
require_once ('include/time.php');
|
||||
require_once ('include/json_config.php');
|
||||
require_once('modules/EcmInsideOrders/EcmInsideOrder.php');
|
||||
require_once('include/time.php');
|
||||
require_once('include/json_config.php');
|
||||
|
||||
// add jquery
|
||||
echo '<link rel="stylesheet" type="text/css" href="modules/EcmSales/css/style.css"/>';
|
||||
echo '<script type="text/javascript"
|
||||
src="include/jQuery/jquery-lastes.js"></script>';
|
||||
echo '<script type="text/javascript"
|
||||
src="include/jQuery/jquery.tablesorter.pager.js"></script>';
|
||||
echo '<script type="text/javascript"
|
||||
src="modules/EcmSales/javascript/ProductSummary.js"></script>';
|
||||
echo '<script type="text/javascript" src="include/jQuery/jquery-lastes.js"></script>';
|
||||
echo '<script type="text/javascript" src="include/jQuery/jquery.tablesorter.pager.js"></script>';
|
||||
echo '<script type="text/javascript" src="modules/EcmSales/javascript/ProductSummary.js"></script>';
|
||||
|
||||
$json_config = new json_config ();
|
||||
|
||||
$focus = new EcmSale ();
|
||||
$db = $GLOBALS ['db'];
|
||||
$data = array();
|
||||
$categoryArray=array();
|
||||
$id_array= explode(",", $_GET['ids']) ;
|
||||
$focus = new EcmSale ();
|
||||
$db = $GLOBALS['db'];
|
||||
|
||||
//var_dump($id_array);
|
||||
$where="and doc.id IN ('".implode("','",$id_array)."')";
|
||||
if($_GET['product_group']=='1')$where.=" and pr.group_ks=1";
|
||||
if($_GET['product_group']=='2')$where.=" and pr.group_ks=2";
|
||||
if($_GET['product_group']=='3')$where.=" and pr.group_ks=3";
|
||||
$positions = array();
|
||||
$total = 0;
|
||||
$stock = 0;
|
||||
|
||||
$query= "SELECT
|
||||
pr.id,
|
||||
item.code,
|
||||
item.name,
|
||||
ROUND(sum(item.quantity),0) AS quantity,
|
||||
ROUND(ifnull(x.stock, 0),0) AS stock,
|
||||
pr.group_ks,
|
||||
pr.product_category_name,
|
||||
pr.product_category_id
|
||||
FROM
|
||||
ecmsaleitems as item
|
||||
INNER JOIN
|
||||
ecmsales as doc ON doc.id=item.ecmsale_id
|
||||
INNER JOIN
|
||||
ecmproducts as pr ON pr.id=item.ecmproduct_id
|
||||
LEFT JOIN
|
||||
(SELECT sum(quantity) as stock ,product_id
|
||||
FROM
|
||||
ecmstockstates
|
||||
GROUP BY product_id) x ON x.product_id=item.ecmproduct_id
|
||||
WHERE doc.deleted='0' and doc.status!='s10' " . $where;
|
||||
$query.=" AND NOT EXISTS
|
||||
(
|
||||
SELECT NULL
|
||||
FROM ecmstockdocouts t1
|
||||
WHERE t1.ecmsale_id = doc.id
|
||||
) GROUP by item.ecmproduct_id
|
||||
ORDER BY pr.group_ks DESC";
|
||||
$id_array = isset($_GET['ids']) ? explode(",", $_GET['ids']) : array();
|
||||
$where = "and doc.id IN ('" . implode("','", $id_array) . "')";
|
||||
if (isset($_GET['product_group']) && $_GET['product_group'] == '1') $where .= " and pr.group_ks=1";
|
||||
if (isset($_GET['product_group']) && $_GET['product_group'] == '2') $where .= " and pr.group_ks=2";
|
||||
if (isset($_GET['product_group']) && $_GET['product_group'] == '3') $where .= " and pr.group_ks=3";
|
||||
|
||||
$rows = $db->query ($query);
|
||||
$query = "SELECT
|
||||
pr.id,
|
||||
item.code,
|
||||
item.name,
|
||||
ROUND(SUM(item.quantity),0) AS quantity,
|
||||
ROUND(IFNULL(x.stock, 0),0) AS stock,
|
||||
pr.group_ks,
|
||||
pr.product_category_name,
|
||||
pr.product_category_id
|
||||
FROM ecmsaleitems AS item
|
||||
INNER JOIN ecmsales AS doc ON doc.id=item.ecmsale_id
|
||||
INNER JOIN ecmproducts AS pr ON pr.id=item.ecmproduct_id
|
||||
LEFT JOIN (
|
||||
SELECT SUM(quantity) AS stock, product_id
|
||||
FROM ecmstockstates
|
||||
GROUP BY product_id
|
||||
) x ON x.product_id=item.ecmproduct_id
|
||||
WHERE doc.deleted='0' AND doc.status!='s10' " . $where . "
|
||||
AND NOT EXISTS (
|
||||
SELECT NULL
|
||||
FROM ecmstockdocouts t1
|
||||
WHERE t1.ecmsale_id = doc.id
|
||||
)
|
||||
GROUP BY item.ecmproduct_id
|
||||
ORDER BY pr.group_ks DESC";
|
||||
|
||||
while($r = $db->fetchByAssoc ( $rows ))
|
||||
{
|
||||
$row = array();
|
||||
$row["id"] = $r["id"];
|
||||
$row["code"] = $r["code"];
|
||||
$row["name"] = $r["name"];
|
||||
$row["quantity"] = $r["quantity"];
|
||||
$row["stock"] = $r["stock"];
|
||||
$row["product_category_name"]=$r["product_category_name"];
|
||||
$row["group_ks"] = $r["group_ks"];
|
||||
if($r["group_ks"]=='1')$daj='TH';
|
||||
if($r["group_ks"]=='2')$daj='WG';
|
||||
if($r["group_ks"]=='3')$daj='S';
|
||||
$row["group_ks_name"] = $daj;
|
||||
$rows = $db->query($query);
|
||||
|
||||
while ($r = $db->fetchByAssoc($rows)) {
|
||||
$row = array();
|
||||
$row['id'] = $r['id'];
|
||||
$row['code'] = $r['code'];
|
||||
$row['name'] = $r['name'];
|
||||
$row['quantity'] = $r['quantity'];
|
||||
$row['stock'] = $r['stock'];
|
||||
$row['product_category_name'] = $r['product_category_name'];
|
||||
$row['group_ks'] = $r['group_ks'];
|
||||
|
||||
// get stock addresses
|
||||
$result = $db->query("SELECT stock_address, is_not_full FROM ecmproducts_stock_addresses WHERE ecmproduct_id='".$r['id']."';");
|
||||
$stock_addresses = "";
|
||||
while($addr=$db->fetchByAssoc($result)) {
|
||||
if ($addr['is_not_full'] == '1') {
|
||||
$stock_addresses .= " <span style='color: red;'>".$addr['stock_address']."</span>";
|
||||
} else {
|
||||
$stock_addresses .= " ".$addr['stock_address'];
|
||||
}
|
||||
}
|
||||
$row['stock_addresses'] = $stock_addresses;
|
||||
$daj = '';
|
||||
if ($r['group_ks'] == '1') $daj = 'TH';
|
||||
if ($r['group_ks'] == '2') $daj = 'WG';
|
||||
if ($r['group_ks'] == '3') $daj = 'S';
|
||||
$row['group_ks_name'] = $daj;
|
||||
|
||||
array_push($row, $r);
|
||||
$data [] = $row;
|
||||
$total+=$r['quantity'];
|
||||
$stock+=$r['stock'];
|
||||
}
|
||||
$data['quantity']=$total;
|
||||
$data['stock']=$stock;
|
||||
$result = $db->query("SELECT stock_address, is_not_full FROM ecmproducts_stock_addresses WHERE ecmproduct_id='" . $r['id'] . "' ORDER BY stock_address");
|
||||
$addresses_raw = array();
|
||||
while ($addr = $db->fetchByAssoc($result)) {
|
||||
$addresses_raw[] = array(
|
||||
'addr' => trim($addr['stock_address']),
|
||||
'not_full' => ($addr['is_not_full'] == '1')
|
||||
);
|
||||
}
|
||||
|
||||
if (!empty($addresses_raw)) {
|
||||
usort($addresses_raw, function ($a, $b) {
|
||||
return strcmp($a['addr'], $b['addr']);
|
||||
});
|
||||
}
|
||||
|
||||
$edit->ss = new Sugar_Smarty ();
|
||||
$edit->module = 'EcmSales';
|
||||
$only_addrs = array();
|
||||
$has_not_full = 0;
|
||||
foreach ($addresses_raw as $ar) {
|
||||
$only_addrs[] = $ar['addr'];
|
||||
if ($ar['not_full']) $has_not_full = 1;
|
||||
}
|
||||
$row['stock_addresses_sort_key'] = implode(' ', $only_addrs);
|
||||
$row['has_not_full'] = $has_not_full;
|
||||
|
||||
$edit->ss->assign ( "CREATED_BY_NAME", $focus->created_by_name );
|
||||
$edit->ss->assign ( "MODIFIED_BY_NAME", $focus->modified_by_name );
|
||||
$edit->ss->assign ( 'FOCUS', $focus);
|
||||
$edit->ss->assign ( 'POST', $_POST);
|
||||
$edit->ss->assign ( 'LINK', $link);
|
||||
$edit->ss->assign ( 'IDS', $_GET['ids']);
|
||||
$edit->ss->assign('POSITION_LIST',$data);
|
||||
$edit->ss->assign ( 'MOD', $mod_strings);
|
||||
$edit->ss-> display('modules/EcmSales/tpls/ProductSummary.tpl'); //4
|
||||
$stock_addresses_html = '';
|
||||
foreach ($addresses_raw as $ar) {
|
||||
if ($ar['not_full']) {
|
||||
$stock_addresses_html .= " <span style='color: red;'>" . $ar['addr'] . "</span>";
|
||||
} else {
|
||||
$stock_addresses_html .= " " . $ar['addr'];
|
||||
}
|
||||
}
|
||||
$row['stock_addresses'] = $stock_addresses_html;
|
||||
|
||||
$positions[] = $row;
|
||||
|
||||
// loading view
|
||||
//echo '<link rel="stylesheet" type="text/css" href="modules/EcmInsideOrders/javascript/helper.css" media="screen" /><div class="loading_panel"></div>';
|
||||
?>
|
||||
$total += (float)$r['quantity'];
|
||||
$stock += (float)$r['stock'];
|
||||
}
|
||||
|
||||
usort($positions, function ($a, $b) {
|
||||
$ka = isset($a['stock_addresses_sort_key']) ? $a['stock_addresses_sort_key'] : '';
|
||||
$kb = isset($b['stock_addresses_sort_key']) ? $b['stock_addresses_sort_key'] : '';
|
||||
return strcmp($ka, $kb);
|
||||
});
|
||||
|
||||
$data = $positions;
|
||||
$data['quantity'] = $total;
|
||||
$data['stock'] = $stock;
|
||||
|
||||
if (!isset($_REQUEST['to_pdf'])) {
|
||||
$edit->ss = new Sugar_Smarty();
|
||||
$edit->module = 'EcmSales';
|
||||
|
||||
$edit->ss->assign("CREATED_BY_NAME", $focus->created_by_name);
|
||||
$edit->ss->assign("MODIFIED_BY_NAME", $focus->modified_by_name);
|
||||
$edit->ss->assign('FOCUS', $focus);
|
||||
$edit->ss->assign('POST', $_POST);
|
||||
$edit->ss->assign('LINK', isset($link) ? $link : '');
|
||||
$edit->ss->assign('IDS', isset($_GET['ids']) ? $_GET['ids'] : '');
|
||||
$edit->ss->assign('POSITION_LIST', $data);
|
||||
$edit->ss->assign('MOD', $mod_strings);
|
||||
$edit->ss->display('modules/EcmSales/tpls/ProductSummary.tpl');
|
||||
} else {
|
||||
$t = '<table style="border: 1px solid black; border-collapse: collapse;"><tr><td><b>Kod</b></td><td><b>Nazwa</b></td><td><b>Ilość</b></td><td><b>Adres magazynowy</b></td></tr>';
|
||||
|
||||
foreach ($data as $r) {
|
||||
if (isset($r['code'])) {
|
||||
$t .= '<tr><td style="border: 1px solid black;">' . $r['code'] . '</td><td style="border: 1px solid black;">' . $r['name'] . '</td><td style="border: 1px solid black;">' . $r['quantity'] . '</td><td style="border: 1px solid black;">' . $r['stock_addresses'] . '</td></tr>';
|
||||
}
|
||||
}
|
||||
$t .= '</table>';
|
||||
|
||||
echo $t;
|
||||
}
|
||||
@@ -48,8 +48,8 @@ function getList() {
|
||||
}
|
||||
function getList2() {
|
||||
if($('#idss').val()!=""){
|
||||
window.open('index.php?module=EcmSales&action=productsSummaryList&to_pdf=1&ids='+$('#idss').val());
|
||||
} else {
|
||||
window.open('index.php?module=EcmSales&action=ProductSummary&to_pdf=1&ids='+$('#idss').val());
|
||||
} else {
|
||||
alert("Proszę zaznaczyć chociaż jedną pozycje!");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user