Files
crm.twinpol.com/modules/EcmProductB2Bs/DetailView.php
2025-05-12 15:44:39 +00:00

324 lines
19 KiB
PHP
Executable File

<?php
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
global $sugar_version, $sugar_config, $current_user, $app_strings, $mod_strings, $current_user, $app_list_strings, $db;
$app_list_strings['ecmproducts_parent_dom'] = array (
'Accounts' => $app_list_strings['moduleList']['Accounts'],
'Leads' => $app_list_strings['moduleList']['Leads'],
);
require_once('modules/EcmProductB2Bs/EcmProductB2B.php');
require_once('modules/EcmProductB2Bs/Forms.php');
require_once('include/time.php');
require_once('include/json_config.php');
$json_config = new json_config();
$focus = new EcmProductB2B();
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/EcmProductB2Bs/views/DetailView/view.detail.ecmproductb2bs.php');
$detail = new ViewDetailEcmProductB2Bs();
$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");
while(($row=$db->fetchByAssoc($result))!=null)
{
$uunit.='<option value="'.$row['id'].'"';
if($focus->usage_unit_id==$row['id'])$uunit.=' selected';
$uunit.='>'.$row['name'].'</option>';
$uunit_array[$row['id']] = $row['name'];
}
$detail->ss->assign("USAGE_UNIT_ID",$uunit);
$tax='';
$result = $db->query("select id,name from ecmvats where deleted='0' order by name asc");
while(($row=$db->fetchByAssoc($result))!=null)
{
$tax.='<option value="'.$row['id'].'"';
if($focus->vat_id==$row['id'])$tax.=' selected';
$tax.='>'.$row['name'].'</option>';
}
$detail->ss->assign("VAT_ID",$tax);
$fbas='';
$result = $db->query("select id,name from ecmproductbasis order by name asc");
while(($row=$db->fetchByAssoc($result))!=null)
{
$fbas.='<option value="'.$row['id'].'"';
if($focus->fob_basis_id==$row['id'])$fbas.=' selected';
$fbas.='>'.$row['name'].'</option>';
}
$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.='<option value="'.$row['id'].'"';
if($focus->packing_type_id==$row['id'])$pack.=' selected';
$pack.='>'.$row['name'].'</option>';
}
$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 '<a style="cursor:pointer;" onclick="window.open(\''.$img.'\',\'Image\',\'height='.$height.',width='.$width.'\');"><img src="pic.php?p='.$img.'&w='.$szerokosc.'&h='.$wysokosc.'"></a>';
}
}
$detail->ss->assign("PRODUCT_PICTURE", show_image("modules/EcmProductB2Bs/upload/images/".$focus->product_picture));
$detail->ss->assign("PACKING_FRONT_PICTURE", show_image("modules/EcmProductB2Bs/upload/images/".$focus->packing_front_picture));
$detail->ss->assign("DRIVER_1", $focus->driver_1);
if($focus->driver_1)$detail->ss->assign("DRIVER_1_DOWNLOAD",'<a href="modules/EcmProductB2Bs/upload/'.$focus->driver_1.'">Download</a>');
$detail->ss->assign("DRIVER_2", $focus->driver_2);
if($focus->driver_2)$detail->ss->assign("DRIVER_2_DOWNLOAD",'<a href="modules/EcmProductB2Bs/upload/'.$focus->driver_2.'">Download</a>');
//add mz
$pl3 = $this->bean->showPositions3();
$detail->ss->assign('POSITIONS3', $pl3);
$pl4 = $this->bean->showPrices();
$detail->ss->assign('POSITIONS4', $pl4);
$ii='<table cellspacing="0" cellpadding="0" border="0" width="400">
<tr>
<td><b>'.$mod_strings['LBL_II_STOCK'].'</b></td>
<td><b>'.$mod_strings['LBL_II_QTY'].'</b></td>
<td><b>'.$mod_strings['LBL_II_PRICE'].'</b></td>
</tr>';
$w=$GLOBALS['db']->query("select ecmstocks.name as sname,ecmstocks.id as sid,sum(ecmstockstates.quantity) as q,avg(ecmstockstates.price) as p from ecmstockstates inner join ecmstocks on ecmstocks.id=ecmstockstates.stock_id where ecmstockstates.deleted='0' and ecmstockstates.product_id='".$focus->id."' group by ecmstockstates.stock_id order by ecmstocks.name asc");
while($r=$GLOBALS['db']->fetchByAssoc($w)){
if($r['q']>0)$ii.='<tr><td><a href="index.php?query=true&module=EcmStockOperations&action=&searchFormTab=basic_search&product_id_basic='.$_REQUEST['record'].'&product_name_basic='.$focus->name.'&stock_id_basic='.$r['sid'].'&stock_name_basic='.$r['sname'].'">'.$r['sname']."</a></td><td>".$r['q']."</td><td>".number_format($r['p'],2,$GLOBALS['sugar_config']['default_decimal_seperator'],$GLOBALS['sugar_config']['default_number_grouping_seperator'])."</td></tr>";
}
$ii.='</table>';
$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("&lt;","<",str_replace("&gt;",">",$row['long_description'])));
$detail->ss->assign("PRICE_".$row['language'],number_format($row['price'],2,",","."));
}
$send_xml=true;
if(!file_exists("modules/EcmProductB2Bs/upload/images/big/".$focus->product_picture))$send_xml=false;
if(!file_exists("modules/EcmProductB2Bs/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.='<input title="Product Card" class="button" onclick="if(document.getElementById(\'div_desc\').style.display==\'none\')document.getElementById(\'div_desc\').style.display=\'block\';else document.getElementById(\'div_desc\').style.display=\'none\';" type="button" name="productcard" id="productcard" value="Create Catalogue">';
$desc.='<div id="div_desc" style="border: 1px solid #cccccc;background:#e6e6e6;padding:5px;position:absolute;display:none;">';
$desc.='Show header: <select name="show_header" id="show_header"><option value="1">Yes</option><option value="0" selected>No</option></select><br /><br />';
$desc.='Show content: <select name="show_content" id="show_content"><option value="1">Yes</option><option value="0" selected>No</option></select><br /><br />';
$desc.='To image: <select name="image" id="image"><option value="1">Yes</option><option value="0" selected>No</option></select><br /><br />';
$desc.='Title page: <select name="title" id="title"><option value="1">Yes</option><option value="0" selected>No</option></select><br /><br />';
$desc.='Show price: <select name="show_price" id="show_price"><option value="1">Yes</option><option value="0" selected>No</option></select><br /><br />';
$desc.='Extra info: <select name="extra" id="extra"><option value="1">Yes</option><option value="0" selected>No</option></select><br /><br />';
$desc.='Price: <select name="price" id="price"><option value="srp_price">SRP Price</option></select><br /><br />';
$desc.='Language: <select name="language" id="language"><option value="pl">pl</option><option value="en">en</option></select><br /><br />';
$desc.='EAN: <select name="ean" id="ean"><option value="1">1</option><option value="2">2</option></select><br /><br />';
$desc.='<input type="button" class="button" name="generate" id="generate" value="Generate" onclick="window.open(\'index.php?module=EcmProductB2Bs&action=generateProductCardsFromProduct&record='.$_REQUEST['record'].'&to_pdf=1&price=\'+document.getElementById(\'price\').value+\'&header=\'+document.getElementById(\'show_header\').value+\'&content=\'+document.getElementById(\'show_content\').value+\'&extra=\'+document.getElementById(\'extra\').value+\'&create_img=\'+document.getElementById(\'image\').value+\'&show_price=\'+document.getElementById(\'show_price\').value+\'&title=\'+document.getElementById(\'title\').value+\'&language=\'+document.getElementById(\'language\').value+\'&ean=\'+document.getElementById(\'ean\').value);"></div>';
$detail->ss->assign("CATALOGUE",$desc);
*/
//add mz - nowa karta produktu
global $mod_strings;
$desc='';
$desc.='<input title="Product Card" class="button" onclick="if(document.getElementById(\'div_desc2\').style.display==\'none\')document.getElementById(\'div_desc2\').style.display=\'block\';else document.getElementById(\'div_desc2\').style.display=\'none\';" type="button" name="productcard" id="productcard" value="'.$mod_strings['LBL_PRODUCT_CARD'].'">';
$desc.='<div id="div_desc2" style="border: 1px solid #cccccc;background:#e6e6e6;padding:5px;position:absolute;display:none;">';
$desc.='Zdjęcie: <select name="new_image" id="new_image"><option value="1">Tak</option><option value="0" selected>Nie</option></select><br /><br />';
$desc.='Pokaż cene: <select name="new_show_price" id="new_show_price"><option value="1">Tak</option><option value="0" selected>Nie</option></select><br /><br />';
$desc.='Cena: <select name="new_price" id="new_price"><option value="srp_price">SRP Price</option></select><br /><br />';
$desc.='Język: <select name="new_language" id="new_language"><option value="pl">pl</option><option value="en">en</option></select><br /><br />';
$desc.='EAN: <select name="new_ean" id="new_ean"><option value="1">1</option><option value="2">2</option></select><br /><br />';
$desc.='<input type="button" class="button" name="generate" id="generate" value="Generuj" onclick="window.open(\'index.php?module=EcmProductB2Bs&action=generateCard&record='.$_REQUEST['record'].'&to_pdf=1&price=\'+document.getElementById(\'new_price\').value+\'&create_img=\'+document.getElementById(\'new_image\').value+\'&show_price=\'+document.getElementById(\'new_show_price\').value+\'&language=\'+document.getElementById(\'new_language\').value+\'&ean=\'+document.getElementById(\'new_ean\').value);"></div>';
$detail->ss->assign("CATALOGUE_NEW",$desc);
$desc='<div id="div_desc" style="border: 1px solid #cccccc;background:#e6e6e6;padding:5px;position:absolute;display:none;">';
$desc.='<input type="checkbox" name="show_characteristic" id="show_characteristic" value="1" checked">Show attributes<br />';
$desc.='<input type="checkbox" name="show_description" id="show_description" value="1" checked">Show description<br />';
$desc.='<input type="checkbox" name="show_specification" id="show_specification" value="1" checked">Show specification<br />';
$desc.='<input type="checkbox" name="print_version" id="print_version" value="1" checked">Print version<br />';
$desc.='Language: <select name="language" id="language"><option value="">pl</option><option value="en">en</option></select><br /><br />';
$desc.='<input type="button" class="button" name="generate" id="generate" value="Generate" onclick="window.open(\'index.php?module=EcmProductB2Bs&action=productCard&record='.$_REQUEST['record'].'&to_pdf=1&show_characteristic=\'+document.getElementById(\'show_characteristic\').checked+\'&show_specification=\'+document.getElementById(\'show_specification\').checked+\'&show_description=\'+document.getElementById(\'show_description\').checked+\'&print_version=\'+document.getElementById(\'print_version\').checked+\'&language=\'+document.getElementById(\'language\').value);"></div>';
$detail->ss->assign("DIV_DESC",$desc);
$desc='<div id="div_desc_card" style="border: 1px solid #cccccc;background:#e6e6e6;padding:5px;position:absolute;display:none;">';
$desc.='<input type="checkbox" name="show_characteristic_card" id="show_characteristic_card" value="1" checked">Show attributes<br />';
$desc.='<input type="checkbox" name="show_description_card" id="show_description_card" value="1" checked">Show description<br />';
$desc.='<input type="checkbox" name="show_specification_card" id="show_specification_card" value="1" checked">Show specification<br />';
$desc.='Language: <select name="language" id="language"><option value="">pl</option><option value="en">en</option></select><br /><br />';
$desc.='<input type="button" class="button" name="generate_card" id="generate_card" value="Generate" onclick="window.open(\'index.php?module=EcmProductB2Bs&action=productCard&record='.$_REQUEST['record'].'&to_pdf=1&show_characteristic=\'+document.getElementById(\'show_characteristic_card\').checked+\'&show_specification=\'+document.getElementById(\'show_specification_card\').checked+\'&show_description=\'+document.getElementById(\'show_description_card\').checked+\'&html=1\'+\'&language=\'+document.getElementById(\'language\').value,\'create_html\',\'location=0,status=0,scrollbars=0,width=640,height=500\');"></div>';
$detail->ss->assign("DIV_DESC_CARD",$desc);
//Added for Graduated Prices - Begin
/* require_once('modules/EcmProductB2Bs/EcmProductB2BGraduatedPrices.php');
$epgp = new EcmProductB2BGraduatedPrices($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 = '
<script language="javascript">
var VAT = '.str_replace('&quot;','\"',$json->encode($VAT)).';
var OPT = '.str_replace('&quot;','\"',$json->encode($OPT)).';
var MOD = '.str_replace('&quot;','\"',$json->encode($mod_strings)).';
var N;
</script>';
echo $scriptOpt;
include('modules/EcmProductB2Bs/phpqrcode/qrlib.php');
$tempDir = EXAMPLE_TMP_SERVERPATH;
$codeContents = $_REQUEST['record'];
// we need to generate filename somehow,
// with md5 or with database ID used to obtains $codeContents...
$fileName = '005_file_'.md5($codeContents).'.png';
$fileName2 ='005_file_'.md5($codeContents).'.html';
$pngAbsoluteFilePath = 'qrfile/'.$fileName;
$urlRelativeFilePath = EXAMPLE_TMP_URLRELPATH.$fileName;
// generating
if (!file_exists($pngAbsoluteFilePath)) {
QRcode::png($codeContents, $pngAbsoluteFilePath);
} else {
}
// create new PDF document
// displaying
$desc='<img src="http://'.$_SERVER['HTTP_HOST'].'/crm/'.$pngAbsoluteFilePath.'" />';
$desc2.='<input name="quote_pdf" id="quote_pdf" title="Show PDF" accessKey="" class="button" onclick="window.location = \'modules/EcmProductB2Bs/t.php?r='.$fileName2.'\';" type="button" value="Pokaż PDF QR">';
$result = $db->query("select name,code from ecmproducts where id='".$_REQUEST['record']."'");
while($row=$db->fetchByAssoc($result)){
$n=$row['name'];
$c=$row['code'];
}
$pdfik='Nazwa towaru: '.$n.'<br>Kod towaru: '.$c.'<br>'.$desc;
$fp = fopen('modules/EcmProductB2Bs/'.$fileName2.'', 'w');
fwrite($fp, $pdfik);
fclose($fp);
$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, "EcmProductB2Bs");
echo $subpanel->display();
?>