$app_list_strings['moduleList']['Accounts'],
'Leads' => $app_list_strings['moduleList']['Leads'],
);
require_once('modules/EcmProducts/EcmProduct.php');
require_once('modules/EcmProducts/Forms.php');
require_once('include/time.php');
require_once('include/json_config.php');
function getConsignmentsDocs($prod_id, $stock_id, $jm) {
$documents_map = array (
'EcmStockDocIns' => 'PZ',
'EcmStockDocCorrects' => 'KS',
'EcmStockDocMoves' => 'MM',
'EcmStockDocInsideIns' => 'PW'
);
global $db;
$query = "
select i.id, i.parent_id, i.parent_type, i.parent_name, i.price, i.quantity as in_qty, i.part_no, ifnull(sum(o.quantity),0) as out_qty, p.unit_id
from ecmstockoperations as i
left join ecmstockoperations as o
on i.id = o.in_id
inner join ecmproducts as p
on i.product_id = p.id
where
i.product_id='$prod_id' and
i.stock_id='$stock_id' and
i.used = '0' and
i.type='0'
group by i.id
order by i.date_entered;";
$res = $db->query ( $query );
$result = array ();
global $app_list_strings, $sugar_config;
while ( $row = $db->fetchByAssoc ( $res ) ) {
$availability = (floatval ( $row ['in_qty'] ) - floatval ( $row ['out_qty'] ));
if ($availability <= 0)
continue;
$tmp = array ();
if($row ['parent_type'] == 'EcmStockDocInsideIns'){
$accountQuery = "SELECT name FROM ecmstockdocinsideins WHERE id='" . $row['parent_id'] . "'";
$accountResult = $db->query($accountQuery);
if($accountResult->num_rows > 0){
$accountRow = $db->fetchByAssoc ( $accountResult );
$tmp ['account_name'] = $accountRow ['name'];
}else{
$tmp ['account_name'] = '';
}
}else{
$accountQuery = "SELECT parent_id, parent_name FROM " . strtolower($row ['parent_type']) ." WHERE id='" . $row['parent_id'] . "'";
$accountResult = $db->query($accountQuery);
if($accountResult->num_rows > 0){
$accountRow = $db->fetchByAssoc ( $accountResult );
$tmp ['account_name'] = '' . $accountRow['parent_name'] . '';
}else{
$tmp ['account_name'] = '';
}
}
$tmp ['operation_id'] = $row ['id'];
$tmp ['parent_name'] = '' . $documents_map [$row ['parent_type']] . ' ' . $row ['parent_name'] . '';
$tmp ['part_no'] = $row['part_no'];
$tmp ['availability'] = $availability;
$tmp ['parent_id'] = $row ['parent_id'];
$tmp ['parent_type'] = $row ['parent_type'];
$tmp ['price'] = $row ['price'];
$tmp ['unit'] = $app_list_strings ['ecmproducts_unit_dom'] [$row ['unit_id']];
$tmp ['currency'] = $sugar_config ['default_currency_iso4217'];
$result [] = $tmp;
}
// number_format($tmp, 2, ",", ".")
$html = '
Struktura zapasu
| Dokument |
Dostawca/Nazwa dokumentu |
Partia |
Ilość |
Cena |
Wartość |
';
foreach($result as $key => $value){
$tmp = $value['availability']*$value['price'];
$html.='';
$html.='| ' . $value['parent_name'] .' | ';
$html.='' . $value['account_name'] .' | ';
$html.='' . $value['part_no'] .' | ';
$html.='' . number_format($value['availability'], $app_list_strings['ecmproducts_unit_dom_precision'][$jm], ",", ".") .' ' . $value['unit'].' | '; //FormatNumber(c.availability) + ' ' + c.unit
$html.='' . number_format($value['price'], 2, ",", ".") . ' ' . $value['currency'] . ' / ' . $value['unit'] . ' | '; //FormatNumber(c.price) + ' ' + c.currency + ' / ' + c.unit
$html.=''. number_format($tmp, 2, ",", ".") .' zł | ';
$html.='
';
}
$html .= '
';
return $html;
}
function getStockOperations($product_id, $stock_id, $jm){
global $db,$app_list_strings;
$query = "SELECT date_entered, quantity, type, parent_name, parent_type, parent_id, price FROM ecmstockoperations so where so.product_id='" . $product_id . "' AND so.stock_id ='" . $stock_id . "'order by counter";
$res = $db->query ( $query );
$result = array ();
$html = '
Operacje magazynowe
| Dokument |
Kontrahent |
Data |
Cena |
Ilość |
Stan po |
';
$stanpo =0;
$doc_name=array(
'EcmStockDocInsideIns'=>'PW',
'EcmStockDocMoves'=>'MM',
'EcmStockDocCorrects'=>'KS',
'EcmStockDocIns'=>'PZ',
'EcmStockDocOuts'=>'WZ',
'EcmStockDocInsideOuts'=>'RW',
'EcmInvoiceOuts'=>'FK'
);
while ( $row = $db->fetchByAssoc ( $res ) ) {
$subquery = '';
$subquery = 'SELECT parent_id, parent_name, parent_type FROM ' . strtolower($row['parent_type']) . ' WHERE id = "'.$row['parent_id'].'"';
$result = $db->query ( $subquery );
if(!$result){
$subquery = 'SELECT parent_id, parent_name FROM ' . strtolower($row['parent_type']) . ' WHERE id = "'.$row['parent_id'].'"';
$result = $db->query ( $subquery );
}
$kontrahent = $db->fetchByAssoc ( $result );
if($kontrahent['parent_type']==NULL || $kontrahent['parent_type']==''){
switch($row['parent_type']){
case 'EcmStockDocIns' :{
$kontrahent['parent_type'] = 'Accounts';
$tmp = '' . $kontrahent['parent_name'] . '';
break;
}
default :{
$tmp = $kontrahent['parent_name'];
}
}
}else{
$tmp = '' . $kontrahent['parent_name'] . '';
}
$nazwa = '';
if($row['type']==0){
$nazwa = '' . $doc_name[$row['parent_type']] . ' ' . $row['parent_name'] . '';
$stanpo +=$row['quantity'];
}elseif($row['type']==1){
$nazwa = '' . $doc_name[$row['parent_type']] . ' ' . $row['parent_name'] . '';
$stanpo -=$row['quantity'];
}
$data = substr($row['date_entered'],0,10);
$data = explode('-', $data);
$data = $data[2] . '.' .$data[1] . '.' .$data[0];
$html.='';
$html.='| ' . $nazwa .' | ';
$html.='' . $tmp .' | ';
$html.='' . $data . ' | '; //FormatNumber(c.availability) + ' ' + c.unit
$html.='' . number_format($row['price'], 2, ",", ".") . ' | ';
$html.=''. number_format($row['quantity'], $app_list_strings['ecmproducts_unit_dom_precision'][$jm], ",", ".") .' | ';
$html.=''. number_format($stanpo, $app_list_strings['ecmproducts_unit_dom_precision'][$jm], ",", ".") .' | ';
$html.='
';
}
$html .= '
';
return $html;
}
$json_config = new json_config();
$focus = new EcmProduct();
if (isset($_REQUEST['record'])) {
$focus->retrieve($_REQUEST['record']);
//if(isset($focus->id) && $focus->id != '')$focus->format_all_fields();
}
$json = getJSONobj();
require_once('include/MVC/View/SugarView.php');
require_once('modules/EcmProducts/views/DetailView/view.detail.ecmproducts.php');
$detail = new ViewDetailEcmProducts();
$detail->ss = new Sugar_Smarty();
$detail->bean = $focus;
$detail->preDisplay();
$uunit_array = array();
$uunit = '';
$result = $db->query("select id,name from ecmproductusageunits order by name asc");
foreach ($app_list_strings['ecmproducts_unit_dom'] as $key => $value) {
$uunit.='';
$uunit_array[$key] = $value;
}
$detail->ss->assign("USAGE_UNIT_ID", $uunit);
$fbas = '';
$result = $db->query("select id,name from ecmproductbasis order by name asc");
while (($row = $db->fetchByAssoc($result)) != null) {
$fbas.='';
}
$detail->ss->assign("FOB_BASIS_ID", $fbas);
$pack = '';
$result = $db->query("select id,name from ecmproductpackingtypes order by name asc");
while (($row = $db->fetchByAssoc($result)) != null) {
$pack.='';
}
$detail->ss->assign("PACKING_TYPE_ID", $pack);
//load currencies
require_once('modules/Currencies/Currency.php');
$currency = new Currency();
$currency_list = $currency->get_full_list('name');
$currency->retrieve('-99');
if (is_array($currency_list)) {
$currency_list = array_merge(Array($currency), $currency_list);
} else {
$currency_list = Array($currency);
}
$arr = array();
foreach ($currency_list as $key => $value) {
$arr[$value->id] = $value->name;
}
$detail->ss->assign("EXCHANGE_RATE_NAME", $arr[$focus->exchange_rate_id]);
function show_image($img) {
if (is_file($img)) {
$obraz = @GetImageSize($img);
if ($obraz[0] >= 180) {
$szerokosc = 180;
$wysokosc = $obraz[1] * $szerokosc / $obraz[0];
} else {
$szerokosc = $obraz[0];
$wysokosc = $obraz[1];
}
$height = $obraz[1] + 20;
$width = $obraz[0] + 20;
return '
';
}
}
$detail->ss->assign("PRODUCT_PICTURE", show_image("modules/EcmProducts/upload/images/" . $focus->product_picture));
$detail->ss->assign("PACKING_FRONT_PICTURE", show_image("modules/EcmProducts/upload/images/" . $focus->packing_front_picture));
$detail->ss->assign("DRIVER_1", $focus->driver_1);
if ($focus->driver_1)
$detail->ss->assign("DRIVER_1_DOWNLOAD", 'Download');
$detail->ss->assign("DRIVER_2", $focus->driver_2);
if ($focus->driver_2)
$detail->ss->assign("DRIVER_2_DOWNLOAD", 'Download');
//add mz
$pl3 = $this->bean->showPositions3();
$detail->ss->assign('POSITIONS3', $pl3);
$pl4 = $this->bean->showPrices();
$detail->ss->assign('POSITIONS4', $pl4);
$ii = '
| ' . $mod_strings['LBL_II_STOCK'] . ' |
' . $mod_strings['LBL_II_QTY'] . ' |
Wartość |
|
';
$w = $GLOBALS['db']->query("SELECT
s.name AS stockname,
s.id AS stockid,
so.quantity AS quantity ,
so.price AS price,
so.type AS type
FROM
ecmstockoperations so,
ecmstocks s
WHERE
so.product_id = '".$focus->id."'
AND so.stock_id = s.id");
$stocksplus = array();
while ($r = $GLOBALS['db']->fetchByAssoc($w)) {
if($r['type']==0){
$stocksplus[$r['stockid']]['quantity'] += $r['quantity'];
$stocksplus[$r['stockid']]['pricequantity'] += $r['quantity']*$r['price'];
}elseif($r['type']==1){
$stocksplus[$r['stockid']]['quantity'] -= $r['quantity'];
$stocksplus[$r['stockid']]['pricequantity'] -= $r['quantity']*$r['price'];
}
$stocksplus[$r['stockid']]['stockid'] = $r['stockid'];
$stocksplus[$r['stockid']]['stockname'] = $r['stockname'];
}
if(count($stocksplus)==0){
$ii='Brak operacji magazynowych';
}else{
foreach($stocksplus as $key => $value){
// if ($value['quantity'] > 0){
$ii.='
|
' . $value['stockname'] . "
|
" . number_format($value['quantity'], $app_list_strings['ecmproducts_unit_dom_precision'][$focus->unit_id], ",", ".") .' '. $app_list_strings ['ecmproducts_unit_dom'] [$focus->unit_id] . " |
" . number_format($value['pricequantity'], 2, ",", ".") . " zł
|
 |
| " . getConsignmentsDocs($focus->id, $value['stockid'], $focus->unit_id) . " |
| " . getStockOperations($focus->id, $value['stockid'], $focus->unit_id) . " |
";
// }
}
$ii.='
';
}
unset($stocksplus);
$detail->ss->assign("INVENTORY_INFORMATION", $ii);
$rp_app = $GLOBALS['db']->fetchByAssoc($GLOBALS['db']->query("select sum(p.product_quantity) as s from ecmproducts_ecmpurchaseorders as p inner join ecmpurchaseorders as e on e.id=p.ecmpurchaseorder_id where p.ecmproduct_id='" . $focus->id . "' and p.deleted='0' and e.status='accepted'"));
$rp_cr = $GLOBALS['db']->fetchByAssoc($GLOBALS['db']->query("select sum(p.product_quantity) as s from ecmproducts_ecmpurchaseorders as p inner join ecmpurchaseorders as e on e.id=p.ecmpurchaseorder_id where p.ecmproduct_id='" . $focus->id . "' and p.deleted='0' and e.status='registered'"));
$detail->ss->assign("ORDERED", $rp_app['s'] + $rp_cr['s']);
$detail->ss->assign("CARTON_DIMENSIONS_1", $focus->carton_dimensions_1);
$detail->ss->assign("CARTON_DIMENSIONS_2", $focus->carton_dimensions_2);
$detail->ss->assign("CARTON_DIMENSIONS_3", $focus->carton_dimensions_3);
$detail->ss->assign("PACKING_DIMENSIONS_1", $focus->packing_dimensions_1);
$detail->ss->assign("PACKING_DIMENSIONS_2", $focus->packing_dimensions_2);
$detail->ss->assign("PACKING_DIMENSIONS_3", $focus->packing_dimensions_3);
if ($focus->product_picture)
$detail->ss->assign("PRODUCT_PICTURE_UPLOAD", $mod_strings['LBL_UPLOADED']);
if ($focus->packing_front_picture)
$detail->ss->assign("PACKING_FRONT_PICTURE_UPLOAD", $mod_strings['LBL_UPLOADED']);
if ($focus->driver_1)
$detail->ss->assign("DRIVER_1_UPLOAD", $mod_strings['LBL_UPLOADED']);
if ($focus->driver_2)
$detail->ss->assign("DRIVER_2_UPLOAD", $mod_strings['LBL_UPLOADED']);
$result = $GLOBALS['db']->query("select ean,remarks,short_description,long_description,language,price from ecmproduct_language where ecmproduct_id='" . $_REQUEST['record'] . "'");
while ($row = $GLOBALS['db']->fetchByAssoc($result)) {
$detail->ss->assign("EAN_" . $row['language'], $row['ean']);
$detail->ss->assign("REMARKS_" . $row['language'], $row['remarks']);
$detail->ss->assign("SHORT_DESCRIPTION_" . $row['language'], $row['short_description']);
$detail->ss->assign("LONG_DESCRIPTION_" . $row['language'], str_replace("<", "<", str_replace(">", ">", $row['long_description'])));
$detail->ss->assign("PRICE_" . $row['language'], number_format($row['price'], 2, ",", "."));
}
$send_xml = true;
if (!file_exists("modules/EcmProducts/upload/images/big/" . $focus->product_picture))
$send_xml = false;
if (!file_exists("modules/EcmProducts/upload/images/big/" . $focus->packing_front_picture))
$send_xml = false;
$r = $GLOBALS['db']->fetchByAssoc($GLOBALS['db']->query("select ean,remarks,short_description,long_description,language,price from ecmproduct_language where language='pl' and ecmproduct_id='" . $_REQUEST['record'] . "'"));
if (!$r['ean'] || !$r['short_description'] || !$r['long_description'] || !$r['price'])
$send_xml = false;
if ($send_xml)
$detail->ss->assign("SEND_XML", 1);
else
$detail->ss->assign("SEND_XML", 0);
/*
$desc='';
$desc.='';
$desc.='';
$desc.='Show header:
';
$desc.='Show content:
';
$desc.='To image:
';
$desc.='Title page:
';
$desc.='Show price:
';
$desc.='Extra info:
';
$desc.='Price:
';
$desc.='Language:
';
$desc.='EAN:
';
$desc.='
';
$detail->ss->assign("CATALOGUE",$desc);
*/
//add mz - nowa karta produktu
global $mod_strings;
$desc = '';
$desc.='';
$desc.='';
$desc.='Zdjęcie:
';
$desc.='Pokaż cene:
';
$desc.='Cena:
';
$desc.='Język:
';
$desc.='EAN:
';
$desc.='
';
$detail->ss->assign("CATALOGUE_NEW", $desc);
$desc = '';
$desc.='Show attributes
';
$desc.='Show description
';
$desc.='Show specification
';
$desc.='Print version
';
$desc.='Language:
';
$desc.='
';
$detail->ss->assign("DIV_DESC", $desc);
$desc = '';
$desc.='Show attributes
';
$desc.='Show description
';
$desc.='Show specification
';
$desc.='Language:
';
$desc.='
';
$detail->ss->assign("DIV_DESC_CARD", $desc);
//Added for Graduated Prices - Begin
/* require_once('modules/EcmProducts/EcmProductGraduatedPrices.php');
$epgp = new EcmProductGraduatedPrices($focus->graduated_prices);
$detail->ss->assign("PRODUCT_GRADUATED_PRICES_HTML", $epgp->getHtmlDetail()); */
//Added for Graduated Prices - End
//Added for Components
$detail->ss->assign("POSITION_LIST", $focus->getPositionList());
$file = 'modules/EcmGroupSales/EcmGroupSale.php';
if (file_exists($file)) {
$cc = array();
require_once($file);
$cc = EcmGroupSale::loadSettings();
}
$OPT = array();
$OPT['row_item_height'] = $cc['row_item_height'];
$OPT['row_item_height_selected'] = $cc['row_item_height_selected'];
$OPT['rows_on_item_list'] = $cc['rows_on_item_list'];
$OPT['position_table_height'] = $OPT['row_item_height'] * $OPT['rows_on_item_list'] + 40 + $OPT['rows_on_item_list'] * 4;
$OPT['quick_product_item_adding'] = $cc['quick_product_item_adding'];
global $current_user;
$tmp = $current_user->getPreference('num_grp_sep');
if (!isset($tmp) || $tmp == '' || $tmp == NULL)
$tmp = $sugar_config['default_number_grouping_seperator'];
$OPT['sep_1000'] = $tmp;
$tmp = $current_user->getPreference('dec_sep');
if (!isset($tmp) || $tmp == '' || $tmp == NULL)
$tmp = $sugar_config['default_decimal_seperator'];
$OPT['dec_sep'] = $tmp;
$tmp = $current_user->getPreference('default_currency_significant_digits');
if (!isset($tmp) || $tmp == '' || $tmp == NULL)
$tmp = $sugar_config['default_currency_significant_digits'];
$OPT['dec_len'] = $tmp;
$OPT['default_unit'] = "1";
$OPT['default_vat'] = "19.00";
$OPT['default_category'] = "";
$OPT['default_currency'] = "-99";
$OPT['type'] = $focus->type;
$OPT['to_is_vat_free'] = $focus->to_is_vat_free;
$OPT['ecmproduct_usage_units_options'] = $uunit_array;
$scriptOpt = '
';
echo $scriptOpt;
include('modules/EcmProducts/phpqrcode/qrlib.php');
$tempDir = EXAMPLE_TMP_SERVERPATH;
// create new PDF document
// displaying
$detail->ss->assign("QRGEN", $desc2);
$detail->ss->assign("QRCODE", $desc);
$detail->ss->assign("OPT", $OPT);
//Added for Components
global $current_user;
echo $detail->display();
require_once('include/SubPanel/SubPanelTiles.php');
$subpanel = new SubPanelTiles($focus, "EcmProducts");
echo $subpanel->display();
?>