$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
'; foreach ($result as $key => $value) { $tmp = $value['availability'] * $value['price']; $html .= ''; $html .= ''; $html .= ''; $html .= ''; $html .= ''; //FormatNumber(c.availability) + ' ' + c.unit $html .= ''; //FormatNumber(c.price) + ' ' + c.currency + ' / ' + c.unit $html .= ''; $html .= ''; } $html .= '
Dokument Dostawca/Nazwa dokumentu Partia Ilość Cena Wartość
' . $value['parent_name'] . '' . $value['account_name'] . '' . $value['part_no'] . '' . number_format($value['availability'], $app_list_strings['ecmproducts_unit_dom_precision'][$jm], ",", ".") . ' ' . $value['unit'] . '' . number_format($value['price'], 2, ",", ".") . ' ' . $value['currency'] . ' / ' . $value['unit'] . '' . number_format($tmp, 2, ",", ".") . ' zł


'; 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
'; $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 .= ''; $html .= ''; $html .= ''; //FormatNumber(c.availability) + ' ' + c.unit $html .= ''; $html .= ''; $html .= ''; $html .= ''; } $html .= '
Dokument Kontrahent Data Cena Ilość Stan po
' . $nazwa . '' . $tmp . '' . $data . '' . number_format($row['price'], 2, ",", ".") . '' . number_format($row['quantity'], $app_list_strings['ecmproducts_unit_dom_precision'][$jm], ",", ".") . '' . number_format($stanpo, $app_list_strings['ecmproducts_unit_dom_precision'][$jm], ",", ".") . '


'; 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 = ''; $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 .= ' '; /* // if ($value['quantity'] > 0){ $ii .= '"; '; */ } $ii .= '
' . $mod_strings['LBL_II_STOCK'] . ' ' . $mod_strings['LBL_II_QTY'] . ' Cena
'.$r['stockname'].' '.$r['quantity'].' '.$r['price'].'
' . $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ł  Struktura zapasu Operacje magazynowe
" . getConsignmentsDocs($focus->id, $value['stockid'], $focus->unit_id) . "
" . getStockOperations($focus->id, $value['stockid'], $focus->unit_id) . "
'; 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.=''; $detail->ss->assign("CATALOGUE",$desc); */ //add mz - nowa karta produktu global $mod_strings; $desc = ''; $desc .= ''; $desc .= ''; $detail->ss->assign("CATALOGUE_NEW", $desc); $desc = ''; $detail->ss->assign("DIV_DESC", $desc); $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();