Allegro returns - KS document
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
<?php
|
||||
ini_set('display_errors',1);
|
||||
ini_set('display_errors', 1);
|
||||
error_reporting(LC_ALL);
|
||||
if (! defined ( 'sugarEntry' ) || ! sugarEntry)
|
||||
die ( 'NotAValidEntryPoint' );
|
||||
if (! defined('sugarEntry') || ! sugarEntry)
|
||||
die('NotAValidEntryPoint');
|
||||
|
||||
global $sugar_version, $sugar_config, $current_user, $app_strings, $mod_strings, $current_user, $app_list_strings;
|
||||
require_once ('modules/EcmStockDocCorrects/EcmStockDocCorrect.php');
|
||||
require_once ('include/time.php');
|
||||
require_once('modules/EcmStockDocCorrects/EcmStockDocCorrect.php');
|
||||
require_once('include/time.php');
|
||||
|
||||
$db = $GLOBALS['db'];
|
||||
|
||||
@@ -19,47 +19,151 @@ echo '<script type="text/javascript" src="include/ECM/tablenavigator.js"></scrip
|
||||
|
||||
$new_number = false;
|
||||
$duplicate = false;
|
||||
$focus = new EcmStockDocCorrect ();
|
||||
$focus = new EcmStockDocCorrect();
|
||||
require_once('include/MVC/View/SugarView.php');
|
||||
require_once('modules/EcmStockDocCorrects/views/EditView/view.edit.ecmstockdoccorrects.php');
|
||||
$edit = new ViewEditEcmStockDocCorrects();
|
||||
$edit->ss = new Sugar_Smarty();
|
||||
|
||||
if (isset ( $_REQUEST ['record'] ) && $_REQUEST['isDuplicate']=="false" ) {
|
||||
$focus->retrieve ( $_REQUEST ['record'] );
|
||||
if (isset ( $focus->id ) && $focus->id != '') {
|
||||
$focus->format_all_fields ();
|
||||
if (isset($_REQUEST['record']) && $_REQUEST['isDuplicate'] == "false") {
|
||||
$focus->retrieve($_REQUEST['record']);
|
||||
if (isset($focus->id) && $focus->id != '') {
|
||||
$focus->format_all_fields();
|
||||
}
|
||||
}
|
||||
else if ($_REQUEST['isDuplicate']=="true") {
|
||||
$new_number=true;
|
||||
$duplicate=true;
|
||||
} else if ($_REQUEST['isDuplicate'] == "true") {
|
||||
$new_number = true;
|
||||
$duplicate = true;
|
||||
//get data
|
||||
$focus->retrieve($_REQUEST['return_id']);
|
||||
}
|
||||
else {
|
||||
$new_number=true;
|
||||
//dates
|
||||
$focus->stock_id=$current_user->stock_id;
|
||||
} else if (isset($_REQUEST['ecommerceKS'])) {
|
||||
$new_number = true;
|
||||
$focus->stock_id = 'cf16804e-f698-5e09-2da3-6553588446ae';
|
||||
$focus->register_date = date("d.m.Y");
|
||||
$OPT ['check_parent_id'] = false;
|
||||
$db = $GLOBALS['db'];
|
||||
$invoiceIds = $_SESSION[$_REQUEST['ecommerceKS']];
|
||||
|
||||
|
||||
$query = "
|
||||
SELECT
|
||||
ip.ecmproduct_id,
|
||||
SUM(ip.quantity) AS quantity,
|
||||
ip.price_netto,
|
||||
p.code,
|
||||
p.name,
|
||||
p.unit_id
|
||||
FROM ecommerce_invoices_products AS ip
|
||||
INNER JOIN ecmproducts AS p ON ip.ecmproduct_id = p.id
|
||||
WHERE invoice_id IN ('" . implode('\',\'', $invoiceIds) . "')
|
||||
AND ip.ecmproduct_id NOT IN ('', '165f364e-9301-25ac-5906-58e38f1de4ca')
|
||||
AND ip.quantity > 0
|
||||
GROUP BY ip.ecmproduct_id, ip.price_netto;
|
||||
";
|
||||
|
||||
$res = $db->query($query);
|
||||
$products = array();
|
||||
$productIds = array();
|
||||
|
||||
while ($row = $db->fetchByAssoc($res)) {
|
||||
$products[$row['ecmproduct_id']] = $row;
|
||||
$productIds[] = $row['ecmproduct_id'];
|
||||
}
|
||||
|
||||
$prices = array();
|
||||
if (!empty($productIds)) {
|
||||
$priceQuery = "
|
||||
SELECT
|
||||
sdi.ecmproduct_id,
|
||||
sdi.price,
|
||||
sd.register_date
|
||||
FROM ecmstockdocinitems sdi
|
||||
INNER JOIN ecmstockdocins sd ON sdi.ecmstockdocin_id = sd.id
|
||||
WHERE sd.parent_id = 'f084e64a-4e63-a3d1-6417-58cbf730df3f'
|
||||
AND sdi.ecmproduct_id IN ('" . implode('\',\'', $productIds) . "')
|
||||
AND sdi.deleted = 0
|
||||
AND sd.deleted = 0
|
||||
ORDER BY sdi.ecmproduct_id, sd.register_date DESC
|
||||
";
|
||||
|
||||
$priceRes = $db->query($priceQuery);
|
||||
while ($row = $db->fetchByAssoc($priceRes)) {
|
||||
if (!isset($prices[$row['ecmproduct_id']])) {
|
||||
$prices[$row['ecmproduct_id']] = $row['price'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$finalProducts = array();
|
||||
$position = 1;
|
||||
foreach ($products as $productId => $product) {
|
||||
$finalPrice = isset($prices[$productId]) ? $prices[$productId] : $product['price_netto'];
|
||||
$finalProducts[] = array(
|
||||
'position' => $position++,
|
||||
'product_id' => $productId,
|
||||
'product_code' => $product['code'],
|
||||
'name' => $product['name'],
|
||||
'quantity' => $product['quantity'],
|
||||
'price' => $finalPrice,
|
||||
'unit_id' => $product['unit_id'],
|
||||
'unit_name' => $app_list_strings['ecmproducts_unit_dom'][$product['unit_id']],
|
||||
'ecmvat_name' => '23%',
|
||||
'ecmvat_value' => 23,
|
||||
'ecmvat_id' => '28079566-b825-e38f-9993-4ccc7b781de5',
|
||||
);
|
||||
}
|
||||
|
||||
$finalProducts = array_values(array_reduce($finalProducts, function ($carry, $item) {
|
||||
$key = $item['product_id'] . '-' . $item['price'];
|
||||
if (!isset($carry[$key])) {
|
||||
$carry[$key] = $item;
|
||||
} else {
|
||||
$carry[$key]['quantity'] += $item['quantity'];
|
||||
}
|
||||
return $carry;
|
||||
}, array()));
|
||||
|
||||
$edit->ss->assign('ECOMMERCE_PRODUCTS', json_encode($finalProducts));
|
||||
$edit->ss->assign('ECOMMERCE_INVOICES', json_encode($invoiceIds));
|
||||
$focus->ecommerce_invoices = $invoiceIds;
|
||||
$focus->type = '8a6b804b-fac7-5cc2-de19-54c209116b19';
|
||||
$focus->stock_id = 'cf16804e-f698-5e09-2da3-6553588446ae';
|
||||
$focus->name = 'Zwrot allegro';
|
||||
|
||||
$query = "SELECT document_no FROM ecommerce_invoices WHERE id IN ('" . implode('\',\'', $invoiceIds) . "')";
|
||||
$res = $db->query($query);
|
||||
$documentNos = array();
|
||||
while ($row = $db->fetchByAssoc($res)) {
|
||||
$documentNos[] = $row['document_no'];
|
||||
}
|
||||
$focus->pdf_text = "Dotyczy faktur: " . implode(', ', $documentNos);
|
||||
} else {
|
||||
$new_number = true;
|
||||
//dates
|
||||
$focus->stock_id = $current_user->stock_id;
|
||||
$focus->register_date = date("d.m.Y");
|
||||
$OPT['check_parent_id'] = false;
|
||||
}
|
||||
|
||||
//get stocks
|
||||
$res = $db->query("SELECT id, name FROM ecmstocks WHERE deleted = '0' ORDER BY name");
|
||||
$stock = '<select id="stock" name="stock"><option value=""></option>';
|
||||
$stock_body = '';
|
||||
while ($row = $db->fetchByAssoc($res))
|
||||
$stock_body.='<option value="'.$row['id'].'">'.$row['name'].'</option>';
|
||||
$stock.=$stock_body.'</select><input id="stock_id" name="stock_id" type="hidden"/>';
|
||||
while ($row = $db->fetchByAssoc($res)) {
|
||||
if ($focus->stock_id != '' && $row['id'] == $focus->stock_id) {
|
||||
$s = 'selected';
|
||||
} else {
|
||||
$s = '';
|
||||
}
|
||||
$stock_body .= '<option value="' . $row['id'] . '" ' . $s . '>' . $row['name'] . '</option>';
|
||||
}
|
||||
$stock .= $stock_body . '</select><input id="stock_id" name="stock_id" type="hidden" value="' . $focus->stock_id . '"/>';
|
||||
|
||||
require_once ('include/MVC/View/SugarView.php');
|
||||
require_once ('modules/EcmStockDocCorrects/views/EditView/view.edit.ecmstockdoccorrects.php');
|
||||
$edit = new ViewEditEcmStockDocCorrects ();
|
||||
$edit->ss = new Sugar_Smarty ();
|
||||
$edit->module = 'EcmStockDocCorrects';
|
||||
$edit->bean = $focus;
|
||||
$edit->tplFile = 'include/ECM/EcmViews/EditView/Tabs/EditView.tpl';
|
||||
$edit->preDisplay ();
|
||||
$edit->ss->assign ( "NEW_NUMBER", $new_number );
|
||||
$edit->preDisplay();
|
||||
$edit->ss->assign("NEW_NUMBER", $new_number);
|
||||
$edit->ss->assign("DUPLICATE", $duplicate);
|
||||
$edit->ss->assign("STOCK", $stock);
|
||||
echo $edit->display ();
|
||||
echo $edit->display();
|
||||
//loading view
|
||||
echo '<link rel="stylesheet" type="text/css" href="modules/EcmStockDocCorrects/javascript/helper.css" media="screen" /><div class="loading_panel"></div>';
|
||||
echo '<link rel="stylesheet" type="text/css" href="modules/EcmStockDocCorrects/javascript/helper.css" media="screen" /><div class="loading_panel"></div>';
|
||||
|
||||
Reference in New Issue
Block a user