$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 .= 'usage_unit_id == $key) {
$uunit .= ' selected';
}
$uunit .= '>' . $value . ' ';
$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 .= 'fob_basis_id == $row['id'])
$fbas .= ' selected';
$fbas .= '>' . $row['name'] . ' ';
}
$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 .= 'packing_type_id == $row['id'])
$pack .= ' selected';
$pack .= '>' . $row['name'] . ' ';
}
$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'] . '
Cena
';
$w = $GLOBALS['db']->query("SELECT
s.name AS stockname,
s.id AS stockid,
ss.quantity AS quantity ,
ss.price AS price
FROM
ecmstockstates ss,
ecmstocks s
WHERE
ss.product_id = '" . $focus->id . "'
AND ss.stock_id = s.id AND ss.quantity IS NOT NULL");
$stocksplus = array();
while ($r = $GLOBALS['db']->fetchByAssoc($w)) {
$ii .= '
'.$r['stockname'].'
'.$r['quantity'].'
'.$r['price'].'
';
/*
// 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: Yes No ';
$desc.='To image: Yes No ';
$desc.='Title page: Yes No ';
$desc.='Show price: Yes No ';
$desc.='Extra info: ';
$desc.='Price: SRP Price ';
$desc.='Language: pl en ';
$desc.='EAN: 1 2 ';
$desc.='
';
$detail->ss->assign("CATALOGUE",$desc);
*/
//add mz - nowa karta produktu
global $mod_strings;
$desc = '';
$desc .= ' ';
$desc .= '';
$desc .= 'Zdjęcie: Tak Nie ';
$desc .= 'Pokaż cene: Tak Nie ';
$desc .= 'Cena: SRP Price ';
$desc .= 'Język: pl en ';
$desc .= 'EAN: 1 2 ';
$desc .= '
';
$detail->ss->assign("CATALOGUE_NEW", $desc);
$desc = '';
$desc .= ' Show attributes ';
$desc .= ' Show description ';
$desc .= ' Show specification ';
$desc .= ' Print version ';
$desc .= 'Language: pl en ';
$desc .= '
';
$detail->ss->assign("DIV_DESC", $desc);
$desc = '';
$desc .= ' Show attributes ';
$desc .= ' Show description ';
$desc .= ' Show specification ';
$desc .= 'Language: pl en ';
$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();