Files
crm.e5.pl/modules/EcmPurchaseOrders/EditView.php
2024-04-27 09:23:34 +02:00

184 lines
7.4 KiB
PHP

<?php
if (! defined ( 'sugarEntry' ) || ! sugarEntry)
die ( 'NotAValidEntryPoint' );
global $sugar_version, $sugar_config, $current_user, $app_strings, $mod_strings, $current_user, $app_list_strings;
require_once ('modules/EcmPurchaseOrders/EcmPurchaseOrder.php');
require_once ('include/time.php');
$db = $GLOBALS['db'];
//add jquery
echo '<link rel="stylesheet" type="text/css" href="include/jQuery/jquery-table/jquery.appendGrid-1.3.1.css"/>';
echo '<link rel="stylesheet" type="text/css" href="include/jQuery/jquery-ui/themes/base/jquery-ui.css"/>';
echo '<script type="text/javascript"
src="include/jQuery/jquery-2.1.0.min.js"></script>';
echo '<script type="text/javascript"
src="include/jQuery/jquery-table/jquery.appendGrid-1.3.1.js"></script>';
echo '<script type="text/javascript"
src="include/jQuery/jquery-ui/ui/jquery-ui.js"></script>';
echo '<script type="text/javascript"
src="modules/EcmPurchaseOrders/javascript/searchcolumndefs.js"></script>';
echo '<script type="text/javascript"
src="include/ECM/SearchProductTable.js"></script>';
echo '<script type="text/javascript"
src="include/ECM/tablenavigator.js"></script>';
// $cq=$current_user->getPreference('confirm_quotes');
$new_number = false;
$duplicate = false;
$focus = new EcmPurchaseOrder ();
if (isset ( $_REQUEST ['record'] ) && $_REQUEST['isDuplicate']=="false" ) {
$focus->retrieve ( $_REQUEST ['record'] );
if (isset ( $focus->id ) && $focus->id != '') {
$focus->format_all_fields ();
}
}
else if ($_REQUEST['isDuplicate']=="true") {
$new_number=true;
$duplicate=true;
//get data
$focus->retrieve($_REQUEST['return_id']);
}
else {
$new_number=true;
//dates
$ac=new Account();
$ac->retrieve('36');
$address=$ac->getPositionList(true);
//var_dump($address);
$focus->parent_shipping_address_name=$ac->name;
$focus->parent_shipping_address_street=$address[2]['street'];
$focus->parent_shipping_address_city=$address[2]['city'];
$focus->parent_shipping_address_postalcode=$address[2]['postalcode'];
$focus->parent_shipping_address_country=$address[2]['country'];
$focus->parent_shipping_address_nip=$ac->to_vatid;
$focus->parent_shipping_name=$ac->name;
$focus->parent_shipping_id=$ac->id;
$focus->register_date = date("d.m.Y");
$OPT ['check_parent_id'] = false;
// add mz@bim-it.pl 17.03.2023
if ($_REQUEST['fromProductsBySalesReport']) {
if (isset($_POST['componentsToOrder'])) {
$productsToOrder = explode('*', $_POST['componentsToOrder']);
} else if (isset($_POST['rawMaterialsToOrder'])) {
$productsToOrder = explode('*', $_POST['rawMaterialsToOrder']);
}
$products = [];
$suppliers = [];
if (is_array($productsToOrder)) {
foreach ($productsToOrder as $p) {
$row = [];
$row['id'] = create_guid();
$row['product_component'] = 0;
$tmp = explode('|',$p);
$row['ecmproduct_id'] = $tmp[0];
$row['product_id'] = $tmp[0];
$row['quantity'] = (!empty($tmp[1])) ? $tmp[1] : 0;
$res = $db->fetchByAssoc($db->query("
SELECT name, code, unit_id, usage_unit_name, vat_id, vat_value, vat_name
FROM ecmproducts WHERE id='".$row['ecmproduct_id']."'"));
$row['name'] = $res['name'];
$row['product_code'] = $res['code'];
$row['ecmvat_id'] = $res['vat_id'];
$row['ecmvat_name'] = $res['vat_name'];
$row['ecmvat_value'] = $res['vat_value'];
$row['unit_id'] = $res['unit_id'];
$row['unit_name'] = $app_list_strings['ecmproducts_unit_dom'][$res['unit_id']];
$row['unit_precision'] = $app_list_strings['ecmproducts_unit_dom_precision'][$res['unit_id']];
// try to get price from PZ
$price = $db->fetchByAssoc($db->query("select price from ecmstockdocinitems where ecmproduct_id='".$row['ecmproduct_id']."' order by date_entered desc limit 0,1"));
if (!isset($price)) {
// try from PW
$price = $db->fetchByAssoc($db->query("select price from ecmstockdocinsideinitems where ecmproduct_id='".$row['ecmproduct_id']."' order by date_entered desc limit 0,1"));
}
if (isset($price)) {
$row['price_start'] = $price['price'];
}
// check last supplier
$supplier = $db->fetchByAssoc($db->query("SELECT d.parent_id, d.parent_name
FROM ecmstockdocinitems AS i
INNER JOIN ecmstockdocins AS d
ON d.id = i.ecmstockdocin_id
WHERE i.ecmproduct_id = '".$row['ecmproduct_id']."'
ORDER BY d.register_date DESC
LIMIT 0,1"));
if ($supplier && supplierExists($suppliers, $supplier['parent_id']) == null) {
$a = $db->fetchByAssoc($db->query("SELECT id, name, to_vatid, billing_address_street, billing_address_city,
billing_address_postalcode, billing_address_country, currency_id
FROM accounts WHERE id='".$supplier['parent_id']."'"));
$suppliers[] = $a;
}
$products[] = $row;
}
}
if (count($suppliers) == 1) {
$focus->parent_id = $suppliers[0]['id'];
$focus->parent_name = $suppliers[0]['name'];
$focus->parent_nip = $suppliers[0]['to_vatid'];
$focus->parent_address_street = $suppliers[0]['billing_address_street'];
$focus->parent_address_city = $suppliers[0]['billing_address_city'];
$focus->parent_address_postalcode = $suppliers[0]['billing_address_postalcode'];
$focus->parent_address_country = $suppliers[0]['billing_address_country'];
$focus->currency_id = $suppliers[0]['currency_id'];
}
}
}
//get stocks
$res = $db->query("SELECT id, name FROM ecmstocks WHERE deleted = '0' ORDER BY name");
$stock_pw = '<select id="stock_pw" name="stock_pw"><option value=""></option>';
$stock_rw = '<select id="stock_rw" name="stock_rw"><option value=""></option>';
$stock_body = '';
while ($row = $db->fetchByAssoc($res))
$stock_body.='<option value="'.$row['id'].'">'.$row['name'].'</option>';
$stock_pw.=$stock_body.'</select><input id="pw_stock_id" name="pw_stock_id" type="hidden"/>';
$stock_rw.=$stock_body.'</select><input id="rw_stock_id" name="rw_stock_id" type="hidden"/>';
// get employers
$earr=array(
'Darek' => 'Darek',
'Helena' => 'Helena',
'Emila' => 'Emila',
'Bogusia Serymoch' => 'Bogusia Serymoch',
'Marcin Popławski' => 'Marcin Popławski',
);
foreach($earr as $ea){
$eas.='<option value="'.$ea.'"';
if(in_array($ea,explode("|",$rdoc['employers'])))$eas.=' selected';
$eas.='>'.$ea.'</option>';
}
require_once ('include/MVC/View/SugarView.php');
require_once ('modules/EcmPurchaseOrders/views/EditView/view.edit.ecmpurchaseorders.php');
$edit = new ViewEditEcmPurchaseOrders ();
$edit->ss = new Sugar_Smarty ();
$edit->module = 'EcmPurchaseOrders';
$edit->bean = $focus;
$edit->tplFile = 'include/ECM/EcmViews/EditView/Tabs/EditView.tpl';
$edit->preDisplay ();
$edit->ss->assign ( "NEW_NUMBER", $new_number );
$edit->ss->assign("DUPLICATE", $duplicate);
$edit->ss->assign("STOCK_PW", $stock_pw);
$edit->ss->assign("STOCK_RW", $stock_rw);
$edit->ss->assign("EMPLOYERS", $eas);
if (isset($products)) {
$edit->ss->assign("POSITION_LIST", str_replace('"', "'", json_encode($products)));
}
echo $edit->display ();
//loading view
echo '<link rel="stylesheet" type="text/css" href="modules/EcmPurchaseOrders/javascript/helper.css" media="screen" /><div class="loading_panel"></div>';
// helper
function supplierExists($array, $value) {
for ($i=0; $i<count($array); $i++) {
if ($array[$i]['parent_id'] == $value) {
return true;
}
}
return null;
}