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

263 lines
12 KiB
PHP
Executable File

<?php
if (!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
/*****************************************************************************
* The contents of this file are subject to the RECIPROCAL PUBLIC LICENSE
* Version 1.1 ("License"); You may not use this file except in compliance
* with the License. You may obtain a copy of the License at
* http://opensource.org/licenses/rpl.php. Software distributed under the
* License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND,
* either express or implied.
*
* You may:
* a) Use and distribute this code exactly as you received without payment or
* a royalty or other fee.
* b) Create extensions for this code, provided that you make the extensions
* publicly available and document your modifications clearly.
* c) Charge for a fee for warranty or support or for accepting liability
* obligations for your customers.
*
* You may NOT:
* a) Charge for the use of the original code or extensions, including in
* electronic distribution models, such as ASP (Application Service
* Provider).
* b) Charge for the original source code or your extensions other than a
* nominal fee to cover distribution costs where such distribution
* involves PHYSICAL media.
* c) Modify or delete any pre-existing copyright notices, change notices,
* or License text in the Licensed Software
* d) Assert any patent claims against the Licensor or Contributors, or
* which would in any way restrict the ability of any third party to use the
* Licensed Software.
*
* You must:
* a) Document any modifications you make to this code including the nature of
* the change, the authors of the change, and the date of the change.
* b) Make the source code for any extensions you deploy available via an
* Electronic Distribution Mechanism such as FTP or HTTP download.
* c) Notify the licensor of the availability of source code to your extensions
* and include instructions on how to acquire the source code and updates.
* d) Grant Licensor a world-wide, non-exclusive, royalty-free license to use,
* reproduce, perform, modify, sublicense, and distribute your extensions.
*
* The Original Code is: CommuniCore
* Olavo Farias
* 2006-04-7 olavo.farias@gmail.com
*
* The Initial Developer of the Original Code is CommuniCore.
* Portions created by CommuniCore are Copyright (C) 2005 CommuniCore Ltda
* All Rights Reserved.
********************************************************************************/
require_once('modules/EcmProducts/EcmProduct.php');
require_once('include/formbase.php');
require_once('include/Upload.php');
function addLocalizedInformation($id)
{
global $db;
$lang = array("en", "de", "pl");
foreach ($lang as $l) {
if (!$_REQUEST['short_description_' . $l] || $_REQUEST['short_description_' . $l] == '')
$_REQUEST['short_description_' . $l] = '&nbsp';
$result = $GLOBALS['db']->query("select ecmproduct_id from ecmproduct_language where ecmproduct_id='" . $id . "' and language like '" . $l . "'");
if ($result->num_rows > 0) {
$GLOBALS['db']->query("update ecmproduct_language set ean='" . $_REQUEST['ean'] . "',remarks='" . $_REQUEST['remarks_' . $l] . "',short_description='" . $_REQUEST['short_description_' . $l] . "',long_description='" . $_REQUEST['long_description_' . $l] . "',modified_user_id='" . $_SESSION['authenticated_user_id'] . "',date_modified='" . date("Y-m-d H:i:s") . "',price='" . $_REQUEST['price_' . $l] . "' where ecmproduct_id='" . $id . "' and language='" . strtolower($l) . "'");
} else {
$GLOBALS['db']->query("insert into ecmproduct_language set id='" . create_guid() . "',created_by='" . $_SESSION['authenticated_user_id'] . "',modified_user_id='" . $_SESSION['authenticated_user_id'] . "',date_entered='" . date("Y-m-d H:i:s") . "',date_modified='" . date("Y-m-d H:i:s") . "',deleted='0',ean='" . $_REQUEST['ean'] . "',remarks='" . $_REQUEST['remarks_' . $l] . "',short_description='" . $_REQUEST['short_description_' . $l] . "',long_description='" . $_REQUEST['long_description_' . $l] . "',language='" . strtolower($l) . "',ecmproduct_id='" . $id . "',price='" . $_REQUEST['price_' . $l] . "'");
}
}
}
$focus = new EcmProduct();
$focus->retrieve($_POST['record']);
if (!$focus->ACLAccess('Save')) {
ACLController::displayNoAccess(true);
sugar_cleanup(true);
}
//add mz 2012-04-10
//check ean
//include("/modules/EcmProducts/generateEAN.php");
//if ($_POST['newEan']=="1") $focus->ean=generateEAN();
//if ($_POST['newEan2']=="1") $focus->ean2=generateEAN();
//$_REQUEST['name']="test";
//categories
$pll = array();
$json = getJSONobj();
$exp = explode("||||", $_POST['position_list3']);
foreach ($exp as $ep) {
if ($ep) {
$pll[] = $json->decode(htmlspecialchars_decode($ep));
}
}
$_POST['position_list3'] = $pll;
$pll = array();
$json = getJSONobj();
$exp = explode("||||", $_POST['position_list4']);
foreach ($exp as $ep) {
if ($ep) {
$pll[] = $json->decode(htmlspecialchars_decode($ep));
}
}
$_POST['position_list4'] = $pll;
include('modules/EcmProducts/SimpleImage.php');
if ($_FILES['product_picture']['name']) {
$_POST['product_picture'] = upload_file("product_picture", "modules/EcmProducts/upload/images/");
$img = "modules/EcmProducts/upload/images/" . $_POST['product_picture'];
copy($img, "modules/EcmProducts/upload/images/big/" . $_POST['product_picture']);
chmod("modules/EcmProducts/upload/images/big/" . $_POST['product_picture'], 0777);
$size = getSize($img, 125);
$image = new SimpleImage();
$image->load($img);
$image->resize($size[0], $size[1]);
$image->save($img);
}
chmod($img, 0777);
if ($_FILES['packing_front_picture']['name']) {
$_POST['packing_front_picture'] = upload_file("packing_front_picture", "modules/EcmProducts/upload/images/");
$img = "modules/EcmProducts/upload/images/" . $_POST['packing_front_picture'];
copy($img, "modules/EcmProducts/upload/images/big/" . $_POST['packing_front_picture']);
chmod("modules/EcmProducts/upload/images/big/" . $_POST['packing_front_picture'], 0777);
$size = getSize($img, 125);
$image = new SimpleImage();
$image->load($img);
$image->resize($size[0], $size[1]);
$image->save($img);
}
chmod($img, 0777);
if ($_FILES['driver_1']['name']) $_POST['driver_1'] = upload_file("driver_1", "modules/EcmProducts/upload/");
if ($_FILES['driver_2']['name']) $_POST['driver_2'] = upload_file("driver_2", "modules/EcmProducts/upload/");
chmod("modules/EcmProducts/upload/" . $_POST['driver_1'], 0777);
chmod("modules/EcmProducts/upload/" . $_POST['driver_2'], 0777);
if ($_REQUEST['delete_product_picture']) {
$_POST['product_picture'] = $_REQUEST['product_picture'] = "";
}
if ($_REQUEST['delete_packing_front_picture']) {
$_POST['packing_front_picture'] = $_REQUEST['packing_front_picture'] = "";
}
if ($_REQUEST['delete_driver_1']) {
$_POST['driver_1'] = $_REQUEST['driver_1'] = "";
}
if ($_REQUEST['delete_driver_2']) {
$_POST['driver_2'] = $_REQUEST['driver_2'] = "";
}
if (!empty($_POST['assigned_user_id']) && ($focus->assigned_user_id != $_POST['assigned_user_id']) && ($_POST['assigned_user_id'] != $current_user->id)) {
$check_notify = TRUE;
} else {
$check_notify = FALSE;
}
foreach ($focus->column_fields as $field) {
if (isset($_POST[$field])) {
$value = $_POST[$field];
$focus->$field = $value;
}
}
foreach ($focus->additional_column_fields as $field) {
if (isset($_POST[$field])) {
$value = $_POST[$field];
$focus->$field = $value;
}
}
if (!isset($_POST[product_active])) {
$focus->product_active = '0';
} else {
$focus->product_active = '1';
}
if (!isset($_POST[certificate_of_origin])) {
$focus->certificate_of_origin = '0';
} else {
$focus->certificate_of_origin = '1';
}
if (!isset($_POST[form_a])) {
$focus->form_a = '0';
} else {
$focus->form_a = '1';
}
if (!isset($focus->amazon_code) || !is_string($focus->amazon_code) || strlen($focus->amazon_code) == 0) {
$focus->amazon_code = $focus->code;
}
//Added for Graduated Prices - Begin
/*require_once('modules/EcmProducts/EcmProductGraduatedPrices.php');
$epgp = new EcmProductGraduatedPrices();
$epgp->setFromPost();
$focus->graduated_prices = $epgp->toString();*/
//Added for Graduated Prices - End
require_once('modules/Currencies/Currency.php');
$currency = new Currency();
$currency_list = $currency->get_full_list('conversion_rate');
$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->conversion_rate;
$erv = $arr[$_REQUEST['exchange_rate_id']];
$focus->unformat_all_fields();
$focus->carton_volume_meter = $focus->carton_dimensions_1 * $focus->carton_dimensions_2 * $focus->carton_dimensions_3;
$r = $GLOBALS['db']->fetchByAssoc($GLOBALS['db']->query("select local_transportation,abroad_transportation from ecmproductcategories where id='" . $_REQUEST['product_category_id'] . "'"));
$lt = $r['local_transportation'];
$at = $r['abroad_transportation'];
if ($focus->pieces_per_carton != 0) $pcscbm = $focus->carton_volume_meter / $focus->pieces_per_carton;
else $pcscbm = 1;
if (!$_REQUEST['purchase_price']) {
$customduty = ($focus->fob_price + $at * $pcscbm) * ($erv * $focus->custom_duty_rate / 100);
$focus->purchase_price = $focus->fob_price * $erv + $customduty + $lt * $pcscbm;
}
if (!$_REQUEST['commission_rate']) {
$rv = $GLOBALS['db']->fetchByAssoc($GLOBALS['db']->query("select value from ecmvats where id='" . $_REQUEST['vat_id'] . "'"));
$focus->commission_rate = 100 * (($focus->srp_price / (1 + $rv['value'] / 100) - $focus->purchase_price) / ($focus->srp_price / (1 + $rv['value'] / 100)));
}
$rpp = $GLOBALS['db']->fetchByAssoc($GLOBALS['db']->query("select ems_price from ecmproducts where id='" . $focus->id . "'"));
$focus->save($check_notify);
$GLOBALS['db']->query("update ecmproducts set ems_price='" . $rpp['ems_price'] . "' where id='" . $focus->id . "'");
$return_id = $focus->id;
if (isset($_POST['vat_id'])) {
$r = $GLOBALS['db']->fetchByAssoc($GLOBALS['db']->query("select value,name from ecmvats where id='" . $_POST['vat_id'] . "'"));
$GLOBALS['db']->query("update ecmproducts set ean='" . $_REQUEST['ean'] . "',vat_value='" . $r['value'] . "',vat_name='" . $r['name'] . "',product_active='" . $_REQUEST['product_active'] . "',status='" . $_REQUEST['status'] . "' where id='" . $return_id . "'");
}
$models = base64_encode(serialize($_REQUEST['models']));
$GLOBALS['db']->query("update ecmproducts set models='" . $models . "',status='" . $_REQUEST['status'] . "' where id='" . $return_id . "'");
addLocalizedInformation($return_id);
$image = true;
$desc = true;
if (!file_exists("modules/EcmProducts/upload/images/big/" . $focus->product_picture) || !$focus->product_picture) $image = false;
if (!file_exists("modules/EcmProducts/upload/images/big/" . $focus->packing_front_picture) || !$focus->packing_front_picture) $image = 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='" . $return_id . "'"));
if (!$r['ean'] || !$r['short_description'] || !$r['long_description'] || !$r['price']) $desc = false;
if (!$image && !$desc) $type = "images_and_description";
elseif (!$image && $desc) $type = "images";
elseif ($image && !$desc) $type = "description";
else $type = "ok";
$r = $GLOBALS['db']->fetchByAssoc($GLOBALS['db']->query("select type from ecmproducts_log where ecmproduct_id='" . $return_id . "' and sent is null order by date_entered desc limit 1"));
if ($r['type'] != $type) {
$GLOBALS['db']->query("insert into ecmproducts_log(id,date_modified,date_entered,created_by,modified_user_id,ecmproduct_id,type) values('" . create_guid() . "','" . date("Y-m-d H:i:s") . "','" . date("Y-m-d H:i:s") . "','" . $_SESSION['authenticated_user_id'] . "','" . $_SESSION['authenticated_user_id'] . "','" . $return_id . "','" . $type . "');");
}
echo $return_id;
return;
?>