164 lines
6.8 KiB
PHP
164 lines
6.8 KiB
PHP
<?php
|
|
|
|
if(isset($_REQUEST['ids'])){
|
|
|
|
$db=$GLOBALS['db'];
|
|
|
|
global $app_list_strings;
|
|
$ids= explode(',', $_REQUEST['ids']);
|
|
|
|
|
|
$query='select i.ecmproduct_id,i.name,i.code,i.quantity,d.document_no from ecmsaleitems i
|
|
inner join ecmsales d on d.id=i.ecmsale_id
|
|
where i.ecmsale_id in ("'.implode('","',$ids) .'") and i.deleted=0';
|
|
|
|
$res = $db->query($query);
|
|
$orders=[];
|
|
$products=[];
|
|
$orderNo='';
|
|
$orderNr=[];
|
|
while($dane = $db->fetchByAssoc($res)){
|
|
$tmp = [];
|
|
|
|
$tmp['ecmproduct_id']=$dane['ecmproduct_id'];
|
|
$tmp['quantity']=(float)$dane['quantity'];
|
|
$tmp['name']=$dane['name'];
|
|
$tmp['code']=$dane['code'];
|
|
$orders[$dane['ecmsale_id']][]=$tmp;
|
|
$products[]=$dane['ecmproduct_id'];
|
|
if($orderNr[$dane['document_no']]==""){
|
|
$orderNr[$dane['document_no']]=1;
|
|
$orderNo.=' '.$dane['document_no'];
|
|
}
|
|
|
|
|
|
}
|
|
|
|
$products=array_unique($products);
|
|
|
|
$query="SELECT c.ecmproduct_id,c.ecmcomponent_id,c.code,c.name,c.quantity,p.product_category_name,p.group_ks,p.unit_id FROM ecmproductcomponents c
|
|
inner join ecmproducts p on p.id=c.ecmcomponent_id
|
|
where c.ecmproduct_id in ('".implode("','",$products)."') and c.deleted=0";
|
|
|
|
$res = $db->query($query);
|
|
|
|
$lists = return_app_list_strings_language('pl_pl');
|
|
|
|
$components=[];
|
|
$products_has_components=[];
|
|
while($dane = $db->fetchByAssoc($res)){
|
|
$products_has_components[$dane['ecmproduct_id']][]=$dane;
|
|
}
|
|
|
|
$total_components=0;
|
|
$total_in_stock=0;
|
|
$components_list=[];
|
|
foreach ($orders as $order){
|
|
foreach ($order as $product){
|
|
if(isset($products_has_components[$product['ecmproduct_id']])){
|
|
foreach ($products_has_components[$product['ecmproduct_id']] as $component){
|
|
if($component['group_ks']=='4')continue;
|
|
if($component['product_category_name']=='Usługi')continue;
|
|
if($components_list[$component['ecmcomponent_id']]){
|
|
|
|
$components_list[$component['ecmcomponent_id']]['quantity']=bcadd(bcmul($component['quantity'],$product['quantity'],2),$components_list[$component['ecmcomponent_id']]['quantity'],2);
|
|
$total_components=bcadd(bcmul($component['quantity'],$product['quantity'],6),$total_components,2);
|
|
} else {
|
|
$components_list[$component['ecmcomponent_id']]['quantity']=bcmul ($component['quantity'],$product['quantity'],2);
|
|
$components_list[$component['ecmcomponent_id']]['code']=$component['code'];
|
|
$components_list[$component['ecmcomponent_id']]['name']=$component['name'];
|
|
$components_list[$component['ecmcomponent_id']]['product_category_name']=$component['product_category_name'];
|
|
$components_list[$component['ecmcomponent_id']]['group_ks_name']=$app_list_strings['ecmproducts_group_ks_dom'][$component['group_ks']];
|
|
$components_list[$component['ecmcomponent_id']]['unit_name'] = $lists['ecmproducts_unit_dom'][$component['unit_id']];
|
|
$ecmStockOperations = new EcmStockOperation();
|
|
$stock=round($ecmStockOperations->getRealStock($component['ecmcomponent_id']),2);
|
|
$total_components=bcadd($components_list[$component['ecmcomponent_id']]['quantity'],$total_components,2);
|
|
$total_in_stock=bcadd($stock,$total_in_stock,2);
|
|
$components_list[$component['ecmcomponent_id']]['stock']=$stock;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
foreach ($products as $key=> $product){
|
|
foreach ($products_has_components as $key2=> $product2){
|
|
if($product==$key2){
|
|
unset($products[$key]);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
$query="select p.id,p.code,p.name,p.product_category_name,p.group_ks,i.quantity,p.unit_id from ecmsaleitems i
|
|
inner join ecmproducts p on p.id = i.ecmproduct_id
|
|
where i.ecmsale_id in ('".implode("','",$ids) ."') and i.deleted=0
|
|
and i.ecmproduct_id in ('".implode("','",$products)."')";
|
|
|
|
$total=0;
|
|
$total_in_stock2=0;
|
|
|
|
$res = $db->query($query);
|
|
$products=[];
|
|
while($dane = $db->fetchByAssoc($res)){
|
|
if($dane['group_ks']=='4')continue;
|
|
if($dane['product_category_name']=='Usługi')continue;
|
|
$products[$dane['id']]['code']=$dane['code'];
|
|
$products[$dane['id']]['name']=$dane['name'];
|
|
$products[$dane['id']]['quantity']=$products[$dane['id']]['quantity']+$dane['quantity'];
|
|
$products[$dane['id']]['product_category_name']=$dane['product_category_name'];
|
|
$products[$dane['id']]['group_ks_name']=$app_list_strings['ecmproducts_group_ks_dom'][$dane['group_ks']];
|
|
$products[$dane['id']]['unit_name']= $lists['ecmproducts_unit_dom'][$component['unit_id']];
|
|
|
|
$ecmStockOperations = new EcmStockOperation();
|
|
|
|
$stock=$ecmStockOperations->getRealStock($dane['id']);
|
|
$total=bcadd($dane['quantity'],$total,2);
|
|
$total_in_stock2=bcadd($stock,$total_in_stock2,2);
|
|
|
|
$products[$dane['id']]['stock']=$stock;
|
|
}
|
|
|
|
$query="select p.id,p.code,p.name,p.product_category_name,p.group_ks,i.quantity,p.pieces_per_carton,p.boxes_per_palette,p.packing_dimensions_1 as a1,p.packing_dimensions_2 as a2,p.packing_dimensions_3 as a3 from ecmsaleitems i
|
|
inner join ecmproducts p on p.id = i.ecmproduct_id
|
|
where i.ecmsale_id in ('".implode("','",$ids) ."') and i.deleted=0 ";
|
|
|
|
|
|
$res = $db->query($query);
|
|
$packing=[];
|
|
while($dane = $db->fetchByAssoc($res)){
|
|
if($dane['group_ks']=='4')continue;
|
|
if($dane['product_category_name']=='Usługi')continue;
|
|
$packing[$dane['a1'].'x'.$dane['a2'].'x'.$dane['a3']]['name']=$dane['a1'].'x'.$dane['a2'].'x'.$dane['a3'];
|
|
$packing[$dane['a1'].'x'.$dane['a2'].'x'.$dane['a3']]['box']=$packing[$dane['a1'].'x'.$dane['a2'].'x'.$dane['a3']]['box']+ceil($dane['quantity']/$dane['pieces_per_carton']);
|
|
$packing[$dane['a1'].'x'.$dane['a2'].'x'.$dane['a3']]['palet']=$packing[$dane['a1'].'x'.$dane['a2'].'x'.$dane['a3']]['palet']+ ceil(($dane['quantity']/$dane['pieces_per_carton'])/$dane['boxes_per_palette']);
|
|
$packing[$dane['a1'].'x'.$dane['a2'].'x'.$dane['a3']]['product_category_name']=$dane['product_category_name'];
|
|
$packing[$dane['a1'].'x'.$dane['a2'].'x'.$dane['a3']]['group_ks_name']=$app_list_strings['ecmproducts_group_ks_dom'][$dane['group_ks']];
|
|
|
|
|
|
$total_box=bcadd($packing[$dane['a1'].'x'.$dane['a2'].'x'.$dane['a3']]['box'],$total_box,2);
|
|
$total_palet=bcadd($packing[$dane['a1'].'x'.$dane['a2'].'x'.$dane['a3']]['palet'],$total_palet,2);
|
|
}
|
|
|
|
|
|
$ss = new Sugar_Smarty ();
|
|
global $mod_strings;
|
|
|
|
$ss->assign ( "total_box", ceil($total_box));
|
|
$ss->assign ( "total_total", $total_total);
|
|
$ss->assign ( "total_palet", ceil($total_palet));
|
|
$ss->assign ( "packing", $packing);
|
|
$ss->assign ( "orderNo", $orderNo);
|
|
$ss->assign ( "total_components", $total_components);
|
|
$ss->assign ( "total_in_stock", $total_in_stock);
|
|
$ss->assign ( "total", $total);
|
|
$ss->assign ( "total_in_stock2", $total_in_stock2);
|
|
$ss->assign ( "products", $products );
|
|
$ss->assign ( "components_list", $components_list);
|
|
$ss->assign ( 'MOD', $mod_strings);
|
|
$ss-> display('modules/EcmSales/tpls/ComponentsList.html'); //4
|
|
}
|
|
|
|
|
|
?>
|