Compare commits
26 Commits
Biolevante
...
Gramm_MES_
| Author | SHA1 | Date | |
|---|---|---|---|
| afc628f6c6 | |||
| 084efc777a | |||
| 02b23f7bc5 | |||
| a8a399e41f | |||
| 5435b37d28 | |||
| f33beff95e | |||
| 0490f3de4e | |||
| a300231d0a | |||
| 88172460e6 | |||
| 6f4a3808a5 | |||
| a7e225d4c9 | |||
| 0d3b85ff8a | |||
| d72b381e27 | |||
| 494a8c92f7 | |||
| 3642d26d46 | |||
| f60f803025 | |||
| c3f74f93dc | |||
| 3ff7895b7a | |||
| 6dd2fc2296 | |||
| c89c613329 | |||
| 78dbf0ab80 | |||
| 17b9f13abc | |||
| 333e040334 | |||
| fdd0a713c2 | |||
| a2976f92a0 | |||
| b68c64b4cb |
@@ -30,6 +30,7 @@ class MainHandler extends MainHandlerAzienda {
|
||||
return array(
|
||||
"semolaSecca" => self::getSemolaOrdine($order),
|
||||
"scartoFresco" => self::getScartoFresco($order),
|
||||
"semolaRAM" => self::getSemolaRAM($order["codProd"], $order["partitaMag"]),
|
||||
"qtaAcqua" => self::getQtaAcqua($order),
|
||||
"pastaProd" => self::getPastaProd($order),
|
||||
"pastaConf" => self::getPastaConf($order)
|
||||
@@ -112,6 +113,14 @@ GROUP BY ma.cod_mart, ma.unt_mis");
|
||||
return $query->toRet(false)->firstRow()->execute();
|
||||
}
|
||||
|
||||
private static function getSemolaRAM($codMart, $partitaMag) {
|
||||
$query = new \Query("SELECT val_carat FROM mtb_partita_mag_carat WHERE cod_mart = '[cod_mart]' AND partita_mag = '[partita_mag]' AND carat LIKE 'Quantit% semola (KG)'");
|
||||
$query->setVar("partita_mag", $partitaMag)
|
||||
->setVar("cod_mart", $codMart);
|
||||
$ret = $query->firstRowFirstValue()->toRet()->date2ts()->execute();
|
||||
return (float)if_null($ret->get_data(), 0);
|
||||
}
|
||||
|
||||
private static function getPastaConf($order) {
|
||||
$query = new \Query("SELECT ma.cod_mart , SUM(mr.qta_col) AS qta_col, ma.unt_mis
|
||||
FROM mtb_colt mt
|
||||
@@ -153,16 +162,8 @@ GROUP BY ma.cod_mart, ma.unt_mis");
|
||||
|
||||
$cod_mart = $order["cod_prod"];
|
||||
$partita_mag = $order["partita_mag"];
|
||||
$carat = "Quantità semola (KG)";
|
||||
|
||||
$query->select("val_carat")
|
||||
->from("mtb_partita_mag_carat")
|
||||
->where("cod_mart", $cod_mart)
|
||||
->where("partita_mag", $partita_mag)
|
||||
->where("carat", $carat);
|
||||
|
||||
$ret = $query->firstRowFirstValue()->toRet()->execute();
|
||||
$semolaRAM = (int)if_null($ret->get_data(), 0);
|
||||
$semolaRAM = self::getSemolaRAM($cod_mart, $partita_mag);
|
||||
|
||||
if ($semolaRAM) {
|
||||
$percentdiff = 1.5;
|
||||
|
||||
@@ -2,6 +2,10 @@
|
||||
|
||||
use Utility\Date;
|
||||
|
||||
/**
|
||||
* @var array $datiOrdine
|
||||
*/
|
||||
|
||||
$retData = array();
|
||||
$key = array(
|
||||
"gestione" => $order["gestione"],
|
||||
@@ -11,7 +15,8 @@ $key = array(
|
||||
$Ret = MonitoraggioLineeV2::get_ordineLav($key);
|
||||
|
||||
$semolaSecca = 0;
|
||||
$semolaRam = null;
|
||||
|
||||
$semolaRam = array_get($datiOrdine, "semolaRAM", 0);
|
||||
|
||||
if (array_key_exists("semolaSecca", $datiOrdine) && !empty($datiOrdine["semolaSecca"])) {
|
||||
$semolaSecca = from($datiOrdine["semolaSecca"])->sum(function ($elem) {
|
||||
@@ -23,12 +28,12 @@ $key2 = array(
|
||||
"cod_mart" => $order["codProd"],
|
||||
"partita_mag" => $order["partitaMag"],
|
||||
);
|
||||
|
||||
/*
|
||||
$ret = MonitoraggioLineeV2::getSemolaRam($key2);
|
||||
|
||||
if ($ret->is_OK()) {
|
||||
$semolaRam = $ret->get_data();
|
||||
}
|
||||
}*/
|
||||
|
||||
$semolaUntMis = array_key_exists("semolaSecca", $datiOrdine) && !empty($datiOrdine["semolaSecca"]) ? $datiOrdine["semolaSecca"][0]["unt_mis"] : "KG";
|
||||
$scartoFresco = array_key_exists("scartoFresco", $datiOrdine) && !empty($datiOrdine["scartoFresco"]) ? floatval(str_replace(',', '.', $datiOrdine["scartoFresco"]["val_carat"])) : 0;
|
||||
@@ -263,6 +268,13 @@ if ($Ret->is_OK()) {
|
||||
const confirmButton = $("#confirmButton");
|
||||
const semolaRam = _.toNumber("<?= $semolaRam ?>");
|
||||
|
||||
<?php
|
||||
$gestSetupDepo = new GestSetupDepo;
|
||||
$checkSemola = $gestSetupDepo->keySection("FLAG_CHECK_SEMOLA_RAM")->cod_mdep($order["codMdep"])->defaultValue('N')->asBoolean()->get();
|
||||
|
||||
if ($checkSemola) {
|
||||
?>
|
||||
|
||||
if (semolaRam === "" || semolaRam <= 0) {
|
||||
$semolaRam.parents(".input-group").addClass("has-error");
|
||||
confirmButton.prop("disabled", true);
|
||||
@@ -270,6 +282,8 @@ if ($Ret->is_OK()) {
|
||||
$semolaRam.parents(".input-group").removeClass("has-error");
|
||||
confirmButton.prop("disabled", false);
|
||||
}
|
||||
|
||||
<?php } ?>
|
||||
});
|
||||
|
||||
$("[name=scartoFresco]").on("input change", function (e) {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -126,7 +126,7 @@ function zeroIfNull($v) {
|
||||
}
|
||||
|
||||
function nullIfBlank($v) {
|
||||
return strlen(trim($v)) == 0 ? null : $v;
|
||||
return is_null($v) || strlen(trim($v)) == 0 ? null : $v;
|
||||
}
|
||||
|
||||
function blankIfNull($v) {
|
||||
|
||||
@@ -19,29 +19,31 @@ FROM dtb_ordt
|
||||
INNER JOIN dtb_ordr ON dtb_ordt.gestione = dtb_ordr.gestione AND
|
||||
dtb_ordt.data_ord = dtb_ordr.data_ord AND
|
||||
dtb_ordt.num_ord = dtb_ordr.num_ord
|
||||
LEFT OUTER JOIN (SELECT * FROM avw_ordini_accettazione WHERE cod_mdep = '[cod_mdep]') avw_ordini_accettazione
|
||||
ON
|
||||
dtb_ordr.gestione = avw_ordini_accettazione.gestione AND
|
||||
dtb_ordr.data_ord = avw_ordini_accettazione.data_ord AND
|
||||
dtb_ordr.num_ord = avw_ordini_accettazione.num_ord AND
|
||||
dtb_ordr.riga_ord = avw_ordini_accettazione.riga_ord
|
||||
WHERE dtb_ordt.cod_mdep = '[cod_mdep]'
|
||||
WHERE dtb_ordt.cod_mdep = '[cod_mdep]'
|
||||
AND dtb_ordt.gestione = 'A'
|
||||
AND dtb_ordt.flag_annulla = 'N'
|
||||
AND dtb_ordt.data_ord >= '[data_da]'
|
||||
AND dtb_ordr.qta_ord <> dtb_ordr.qta_evasa
|
||||
AND dtb_ordr.flag_evaso = 'I'
|
||||
AND dtb_ordt.flag_evaso_forzato = 'N'
|
||||
AND avw_ordini_accettazione.data_ord IS NULL
|
||||
AND NOT EXISTS(SELECT *
|
||||
FROM avw_ordini_accettazione
|
||||
WHERE avw_ordini_accettazione.cod_mdep = '[cod_mdep]'
|
||||
AND dtb_ordr.gestione = avw_ordini_accettazione.gestione
|
||||
AND dtb_ordr.data_ord = avw_ordini_accettazione.data_ord
|
||||
AND dtb_ordr.num_ord = avw_ordini_accettazione.num_ord
|
||||
AND dtb_ordr.riga_ord = avw_ordini_accettazione.riga_ord)
|
||||
|
||||
GROUP BY dtb_ordt.data_ord,
|
||||
dtb_ordt.num_ord,
|
||||
dtb_ordt.gestione,
|
||||
dtb_ordt.cod_anag,
|
||||
dtb_ordt.cod_vdes,
|
||||
gtb_anag.rag_soc,
|
||||
dtb_ordt.listino,
|
||||
atb_list.descrizione,
|
||||
CASE WHEN tmp.listino IS NULL THEN 'N'
|
||||
ELSE
|
||||
'S' END
|
||||
dtb_ordt.num_ord,
|
||||
dtb_ordt.gestione,
|
||||
dtb_ordt.cod_anag,
|
||||
dtb_ordt.cod_vdes,
|
||||
gtb_anag.rag_soc,
|
||||
dtb_ordt.listino,
|
||||
atb_list.descrizione,
|
||||
CASE
|
||||
WHEN tmp.listino IS NULL THEN 'N'
|
||||
ELSE
|
||||
'S' END
|
||||
ORDER BY dtb_ordt.data_ord DESC, dtb_ordt.num_ord DESC
|
||||
@@ -198,7 +198,15 @@ class BudgetVendite {
|
||||
if ($ret->is_OK()) {
|
||||
$entityList = new EntityList();
|
||||
|
||||
foreach ($orders as $order) {
|
||||
$groupedOrders = from($orders)
|
||||
->groupBy(function ($order) {
|
||||
return sprintf("%s-%s-%s", $order["gestione"], $order["data_ord"], $order["num_ord"]);
|
||||
})
|
||||
->toArray();
|
||||
|
||||
foreach ($groupedOrders as $orders) {
|
||||
$order = reset($orders);
|
||||
|
||||
$query = new Query();
|
||||
|
||||
$query
|
||||
|
||||
@@ -118,7 +118,7 @@ const _budgetVendite = {
|
||||
class: "k-text-center"
|
||||
},
|
||||
template(row) {
|
||||
return row.varieta.map(prodotto => prodotto.descrizione).join(", ");
|
||||
return row.varieta?.map(prodotto => prodotto.descrizione).join(", ");
|
||||
},
|
||||
filterable: {
|
||||
cell: {
|
||||
|
||||
@@ -1243,7 +1243,7 @@ class ContattiCommesse {
|
||||
$arr_userName = self::parseUserNameFilter($filter);
|
||||
$Query->where("user_name", $arr_userName);
|
||||
|
||||
if (array_key_exists("activityId", $filter)) {
|
||||
if (array_get($filter, "activityId")) {
|
||||
$Query->where("activity_id", $filter["activityId"]);
|
||||
}
|
||||
|
||||
@@ -1251,11 +1251,11 @@ class ContattiCommesse {
|
||||
$Query->where("cod_anag", $filter["codAnag"])->where("tipo_anag", $filter["tipoAnag"]);
|
||||
}
|
||||
|
||||
if (array_key_exists("codJcom", $filter)) {
|
||||
if (array_get($filter, "codJcom")) {
|
||||
$Query->where("cod_jcom", $filter["codJcom"]);
|
||||
}
|
||||
|
||||
if (array_key_exists("tipo_attivita", $filter)) {
|
||||
if (array_get($filter, "tipo_attivita")) {
|
||||
if (is_array($filter["tipo_attivita"])) {
|
||||
$whereCond = "(";
|
||||
|
||||
@@ -1269,7 +1269,7 @@ class ContattiCommesse {
|
||||
}
|
||||
}
|
||||
|
||||
if (array_key_exists("assegnatoA", $filter)) {
|
||||
if (array_get($filter, "assegnatoA")) {
|
||||
if (is_array($filter["assegnatoA"])) {
|
||||
$whereCond = "(";
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
$().ready(function () {
|
||||
$(document).on("click vmousedown vmouseup", "[data-row_attivita]", function (e) {
|
||||
$(document).on("click mousedown mouseup", "[data-row_attivita]", function (e) {
|
||||
e.stopPropagation();
|
||||
if (e.type !== "click") {
|
||||
let $alert = $(this).closest("[data-row_attivita]");
|
||||
@@ -127,7 +127,7 @@ _contattiCommesse.plannerUtils = {
|
||||
tick: function (eventType, $alert) {
|
||||
let self = this;
|
||||
switch (eventType) { // Gestita concorrenza eventi click e taphold
|
||||
case "vmousedown":
|
||||
case "mousedown":
|
||||
if (self.lastMouseEvent !== eventType) { // Controllo per evento lanciato due volte
|
||||
self.activityTapHoldTimer = setTimeout(function () {
|
||||
self.isTapHold = true;
|
||||
@@ -138,7 +138,7 @@ _contattiCommesse.plannerUtils = {
|
||||
}
|
||||
break;
|
||||
|
||||
case "vmouseup":
|
||||
case "mouseup":
|
||||
clearTimeout(self.activityTapHoldTimer);
|
||||
if (!self.isTapHold) {
|
||||
new PopupFormAttivita()
|
||||
|
||||
@@ -20,20 +20,18 @@ $().ready(function () {
|
||||
var _contattiCommesse = {
|
||||
module: null,
|
||||
filter: null,
|
||||
|
||||
$planner: null,
|
||||
|
||||
init: function () {
|
||||
var self = this;
|
||||
|
||||
self.module = new Module();
|
||||
|
||||
self.module.onLoad(function () {
|
||||
|
||||
_panelFilter.init();
|
||||
|
||||
_contattiCommesse.plannerUtils.initFiltroAssegnatoA();
|
||||
|
||||
self.$planner = $("#weeklyPlanner");
|
||||
|
||||
var wpOptions = {
|
||||
$selector: $("#plannerWeekSelector"),
|
||||
queryStringParameter: "d",
|
||||
|
||||
@@ -73,6 +73,7 @@ class ControlloGiacenze {
|
||||
'data_ret' => $articolo['data_ret'],
|
||||
'num_ord' => ($articolo['num_ord']) ?: "",
|
||||
'data_ord' => $articolo['data_ord'],
|
||||
'data_scad' => $articolo['data_scad'],
|
||||
);
|
||||
}
|
||||
|
||||
@@ -202,6 +203,16 @@ class ControlloGiacenze {
|
||||
"footerAttributes" => array("style" => 'text-align: center;'),
|
||||
"filterable" => array("cell" => array("minLength" => 100)),
|
||||
),
|
||||
array(
|
||||
"field" => "data_scad",
|
||||
"title" => "Data Scadenza",
|
||||
"type" => "date",
|
||||
"width" => "190px",
|
||||
"format" => "{0:d}",
|
||||
"headerAttributes" => array("style" => 'text-align: center;'),
|
||||
"attributes" => array("style" => 'text-align: center;'),
|
||||
"footerAttributes" => array("style" => 'text-align: center;'),
|
||||
),
|
||||
array(
|
||||
"field" => "descrizione_estesa",
|
||||
"title" => "Descrizione Articolo",
|
||||
|
||||
@@ -1,35 +1,31 @@
|
||||
WITH TempResult AS (
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT mt.preparato_da, mt.num_ord, mt.data_ord, inv.*, data_ret
|
||||
FROM mvw_sitart_udc_det_inventario inv
|
||||
INNER JOIN mtb_colt mt
|
||||
ON mt.data_collo = inv.data_collo
|
||||
AND mt.gestione = inv.gestione
|
||||
AND mt.ser_collo = inv.ser_collo
|
||||
AND mt.num_collo = inv.num_collo
|
||||
LEFT OUTER JOIN (SELECT mtb_cols.data_collo,
|
||||
ser_collo,
|
||||
num_collo,
|
||||
gestione,
|
||||
MAX(data_move) AS data_ret
|
||||
FROM mtb_cols
|
||||
GROUP BY mtb_cols.data_collo, ser_collo, num_collo, gestione) AS ms
|
||||
ON mt.gestione = ms.gestione
|
||||
AND mt.data_collo = ms.data_collo
|
||||
AND mt.ser_collo = ms.ser_collo
|
||||
AND mt.num_collo = ms.num_collo
|
||||
) t
|
||||
WHERE [filter]
|
||||
),
|
||||
TempCount AS (
|
||||
SELECT COUNT(*) AS count,
|
||||
SUM(qta_col) AS SUM_qta_col,
|
||||
SUM(num_cnf) AS SUM_num_cnf,
|
||||
SUM(peso_netto_kg) AS SUM_peso_netto_kg,
|
||||
SUM(peso_lordo_kg) AS SUM_peso_lordo_kg
|
||||
FROM TempResult
|
||||
)
|
||||
WITH TempResult AS (SELECT *
|
||||
FROM (SELECT mt.preparato_da, mt.num_ord, mt.data_ord, inv.*, data_ret, mpm.data_scad
|
||||
FROM mvw_sitart_udc_det_inventario inv
|
||||
INNER JOIN mtb_colt mt
|
||||
ON mt.data_collo = inv.data_collo
|
||||
AND mt.gestione = inv.gestione
|
||||
AND mt.ser_collo = inv.ser_collo
|
||||
AND mt.num_collo = inv.num_collo
|
||||
LEFT OUTER JOIN (SELECT mtb_cols.data_collo,
|
||||
ser_collo,
|
||||
num_collo,
|
||||
gestione,
|
||||
MAX(data_move) AS data_ret
|
||||
FROM mtb_cols
|
||||
GROUP BY mtb_cols.data_collo, ser_collo, num_collo, gestione) AS ms
|
||||
ON mt.gestione = ms.gestione
|
||||
AND mt.data_collo = ms.data_collo
|
||||
AND mt.ser_collo = ms.ser_collo
|
||||
AND mt.num_collo = ms.num_collo
|
||||
LEFT OUTER JOIN mtb_partita_mag mpm
|
||||
ON inv.partita_mag = mpm.partita_mag AND inv.cod_mart = mpm.cod_mart) t
|
||||
WHERE [filter]),
|
||||
TempCount AS (SELECT COUNT(*) AS count,
|
||||
SUM(qta_col) AS SUM_qta_col,
|
||||
SUM(num_cnf) AS SUM_num_cnf,
|
||||
SUM(peso_netto_kg) AS SUM_peso_netto_kg,
|
||||
SUM(peso_lordo_kg) AS SUM_peso_lordo_kg
|
||||
FROM TempResult)
|
||||
SELECT TempResult.*,
|
||||
TempCount.*
|
||||
FROM TempResult,
|
||||
|
||||
@@ -184,233 +184,277 @@ PopupOrdine.prototype.open = function (editable) {
|
||||
._setListino(ret.returnData.listino);
|
||||
|
||||
self._modalBox = new ModalBox;
|
||||
self._modalBox.onBeforeShow(function ($div) {
|
||||
if (!_.isNil(self._ordine)) {
|
||||
self.setCodVlis(self._ordine.listino);
|
||||
}
|
||||
self._initFormEsportazione();
|
||||
|
||||
var $flagSospeso = $div.find("input[name='flag_sospeso']");
|
||||
$flagSospeso.bootstrapSwitch();
|
||||
|
||||
var $dataInizTrasp = $div.find("[name='data_iniz_trasp']");
|
||||
$("#panelShipping,#panelCommercial").on("shown.bs.collapse", function () {
|
||||
_deliveryPlan.setSelect2ContainerWidth();
|
||||
});
|
||||
|
||||
$dataInizTrasp
|
||||
.datepicker({
|
||||
dateFormat: "dd/mm/yy",
|
||||
firstDay: _deliveryPlan.getFirstIsoWeekDay()
|
||||
})
|
||||
.setValue(getToday())
|
||||
.on("change", function () {
|
||||
var _$rows = $div.find("table#list-articoli > tbody > tr");
|
||||
if (_$rows.length > 0) {
|
||||
var _dataInizTrasp = $dataInizTrasp.getTimestampValue();
|
||||
new ModalBox()
|
||||
.message("Assegnare la consegna al <b>" + (_dataInizTrasp.unixtime_format("DD/MM/YYYY")) + "</b> su tutte le righe?")
|
||||
.onYesClick(function () {
|
||||
_$rows.each(function () {
|
||||
$(this).find(".dataCons").setValue(_dataInizTrasp);
|
||||
});
|
||||
})
|
||||
.yesNo().show();
|
||||
}
|
||||
});
|
||||
$div.find("[data-toggle='tooltip']").tooltip();
|
||||
$div.find("[name='nolo_ut']").on("keyup", _.bind(self._calcolaNolo, self));
|
||||
$div.find("[name='posti_pallet']").on("keyup", _.bind(self._calcolaNolo, self));
|
||||
$div.find("[name='cod_vdes'], [name='cod_vvet'], [name='porto']").selectpicker({
|
||||
liveSearch: true,
|
||||
size: 5,
|
||||
container: "#" + self._modalBox.getId(),
|
||||
dropdownAlignRight: true,
|
||||
noneSelectedText: "Non selezionato",
|
||||
showSubtext: true
|
||||
});
|
||||
$div.find("[name='cod_vdes']").on("change", function (e) {
|
||||
let select = $(e.currentTarget);
|
||||
let option = select.find("option[value='" + select.val() + "']");
|
||||
let terms = _.toString($(option).data("terms"));
|
||||
let codVage = $(option).data("cod_vage");
|
||||
let ragSocAge = $(option).data("rag_soc_age");
|
||||
|
||||
$("#telefono_dest").val($(option).data("tel"));
|
||||
|
||||
if (!_.isNil(codVage)) {
|
||||
let option = new Option(ragSocAge, codVage, true, true);
|
||||
|
||||
$div.find("[name=cod_vage]").append(option).trigger("change");
|
||||
self._modalBox
|
||||
.onBeforeShow(function ($div) {
|
||||
if (!_.isNil(self._ordine)) {
|
||||
self.setCodVlis(self._ordine.listino);
|
||||
}
|
||||
self._initFormEsportazione();
|
||||
|
||||
if (!_.isNil(self._clieData)) {
|
||||
let codiceListino = self._clieData.cod_vlis;
|
||||
let dest = _.find(self._clieData.dest, {cod_vdes: select.val()});
|
||||
var $flagSospeso = $div.find("input[name='flag_sospeso']");
|
||||
$flagSospeso.bootstrapSwitch();
|
||||
|
||||
if (!_.isNil(dest) && !_.isNil(dest.cod_vlis)) {
|
||||
codiceListino = dest.cod_vlis;
|
||||
}
|
||||
if (!_.eq(codiceListino, self._getCodVlis())) {
|
||||
self.setCodVlis(codiceListino);
|
||||
if (self._isNew()) {
|
||||
self._refreshListino();
|
||||
} else {
|
||||
let toast = new Toast;
|
||||
toast.warning("Il destinatario selezionato ha il listino diverso da quello presente nell' ordine. <br> Il listino verrà quindi aggiornato ma non altererà i prezzi sulle righe attualmente esistenti.", "Listino modificato!");
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!_.isEmpty(terms)) {
|
||||
if (self._isNew() || _.isEmpty($("#term_cons").val())) {
|
||||
$("#term_cons").val(terms);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (_deliveryPlan.getAbilitazione("gestioneVendite")) {
|
||||
$div.find("[name='cod_vage']").select2({
|
||||
dropdownParent: $div,
|
||||
allowClear: true,
|
||||
width: "element",
|
||||
placeholder: "Seleziona agente",
|
||||
ajax: {
|
||||
dataType: "json",
|
||||
allowClear: true,
|
||||
width: "resolve",
|
||||
delay: 250,
|
||||
transport: function (params, success, failure) {
|
||||
var data = {
|
||||
q: _.isNil(params.data.q) ? null : params.data.q,
|
||||
type: "cod_vage"
|
||||
};
|
||||
var ajax = new Ajax();
|
||||
ajax
|
||||
.get("search_opt")
|
||||
.data(data)
|
||||
.onSuccess(success)
|
||||
.onError(failure)
|
||||
.execute();
|
||||
},
|
||||
processResults: function (data) {
|
||||
var results = data.returnData;
|
||||
_.each(results, function (state) {
|
||||
state.id = state.cod_vage;
|
||||
state.text = state.rag_soc;
|
||||
});
|
||||
return {results: results};
|
||||
},
|
||||
}
|
||||
});
|
||||
/* AJAX caricamento banca cliente
|
||||
$div.find("[name='cod_banc']").select2({
|
||||
dropdownParent: $div,
|
||||
placeholder: 'Seleziona banca',
|
||||
allowClear: true,
|
||||
width: "element",
|
||||
ajax: {
|
||||
dataType: 'json',
|
||||
width: 'resolve',
|
||||
delay: 250,
|
||||
transport: function (params, success, failure) {
|
||||
var data = {
|
||||
q: _.isNil(params.data.q) ? null : params.data.q,
|
||||
type: "cod_banc"
|
||||
};
|
||||
var ajax = new Ajax();
|
||||
ajax
|
||||
.get("search_opt")
|
||||
.data(data)
|
||||
.onSuccess(success)
|
||||
.onError(failure)
|
||||
.execute()
|
||||
},
|
||||
processResults: function (data) {
|
||||
var results = data.returnData;
|
||||
_.each(results, function (state) {
|
||||
state.id = state.cod_banc;
|
||||
state.text = state.descrizione;
|
||||
});
|
||||
return {results: results};
|
||||
},
|
||||
}
|
||||
});
|
||||
*/
|
||||
$div.find("[name='cod_banc_azi']").select2({
|
||||
dropdownParent: $div,
|
||||
width: "element",
|
||||
placeholder: "Seleziona banca aziendale",
|
||||
allowClear: true,
|
||||
ajax: {
|
||||
dataType: "json",
|
||||
width: "resolve",
|
||||
delay: 250,
|
||||
transport: function (params, success, failure) {
|
||||
var data = {
|
||||
q: _.isNil(params.data.q) ? null : params.data.q,
|
||||
type: "cod_banc_azi"
|
||||
};
|
||||
var ajax = new Ajax();
|
||||
ajax
|
||||
.get("search_opt")
|
||||
.data(data)
|
||||
.onSuccess(success)
|
||||
.onError(failure)
|
||||
.execute();
|
||||
},
|
||||
processResults: function (data) {
|
||||
var results = data.returnData;
|
||||
_.each(results, function (state) {
|
||||
state.id = state.cod_banc_azi;
|
||||
state.text = state.descrizione;
|
||||
});
|
||||
return {results: results};
|
||||
},
|
||||
}
|
||||
});
|
||||
$div.find("[name='cod_paga']").select2({
|
||||
dropdownParent: $div,
|
||||
allowClear: true,
|
||||
placeholder: "Seleziona condizioni pagamento",
|
||||
ajax: {
|
||||
dataType: "json",
|
||||
width: "resolve",
|
||||
delay: 250,
|
||||
transport: function (params, success, failure) {
|
||||
const data = {
|
||||
q: _.isNil(params.data.q) ? null : params.data.q,
|
||||
type: "cod_paga"
|
||||
};
|
||||
|
||||
const ajax = new Ajax();
|
||||
|
||||
ajax
|
||||
.get("search_opt")
|
||||
.data(data)
|
||||
.onSuccess(success)
|
||||
.onError(failure)
|
||||
.execute();
|
||||
},
|
||||
processResults: function (data) {
|
||||
var results = data.returnData;
|
||||
_.each(results, function (state) {
|
||||
state.id = state.cod_paga;
|
||||
state.text = `${state.cod_paga} - ${state.descrizione}`;
|
||||
});
|
||||
return {results: results};
|
||||
},
|
||||
}
|
||||
var $dataInizTrasp = $div.find("[name='data_iniz_trasp']");
|
||||
$("#panelShipping,#panelCommercial").on("shown.bs.collapse", function () {
|
||||
_deliveryPlan.setSelect2ContainerWidth();
|
||||
});
|
||||
|
||||
var $dataRifORd = $div.find("[name='rif_data_ord']");
|
||||
$dataRifORd
|
||||
$dataInizTrasp
|
||||
.datepicker({
|
||||
dateFormat: "dd/mm/yy",
|
||||
firstDay: _deliveryPlan.getFirstIsoWeekDay()
|
||||
})
|
||||
.setValue(getToday())
|
||||
.on("change", function () {
|
||||
var _$rows = $div.find("table#list-articoli > tbody > tr");
|
||||
if (_$rows.length > 0) {
|
||||
var _dataInizTrasp = $dataInizTrasp.getTimestampValue();
|
||||
new ModalBox()
|
||||
.message("Assegnare la consegna al <b>" + (_dataInizTrasp.unixtime_format("DD/MM/YYYY")) + "</b> su tutte le righe?")
|
||||
.onYesClick(function () {
|
||||
_$rows.each(function () {
|
||||
$(this).find(".dataCons").setValue(_dataInizTrasp);
|
||||
});
|
||||
})
|
||||
.yesNo().show();
|
||||
}
|
||||
});
|
||||
}
|
||||
if (!self._isNew()) {
|
||||
if (self._isDuplicate) {
|
||||
$div.find("[data-toggle='tooltip']").tooltip();
|
||||
$div.find("[name='nolo_ut']").on("keyup", _.bind(self._calcolaNolo, self));
|
||||
$div.find("[name='posti_pallet']").on("keyup", _.bind(self._calcolaNolo, self));
|
||||
$div.find("[name='cod_vdes'], [name='cod_vvet'], [name='porto']").selectpicker({
|
||||
liveSearch: true,
|
||||
size: 5,
|
||||
container: "#" + self._modalBox.getId(),
|
||||
dropdownAlignRight: true,
|
||||
noneSelectedText: "Non selezionato",
|
||||
showSubtext: true
|
||||
});
|
||||
$div.find("[name='cod_vdes']").on("change", function (e) {
|
||||
let select = $(e.currentTarget);
|
||||
let option = select.find("option[value='" + select.val() + "']");
|
||||
let terms = _.toString($(option).data("terms"));
|
||||
let codVage = $(option).data("cod_vage");
|
||||
let ragSocAge = $(option).data("rag_soc_age");
|
||||
|
||||
$("#telefono_dest").val($(option).data("tel"));
|
||||
|
||||
if (!_.isNil(codVage)) {
|
||||
let option = new Option(ragSocAge, codVage, true, true);
|
||||
|
||||
$div.find("[name=cod_vage]").append(option).trigger("change");
|
||||
}
|
||||
|
||||
if (!_.isNil(self._clieData)) {
|
||||
let codiceListino = self._clieData.cod_vlis;
|
||||
let dest = _.find(self._clieData.dest, {cod_vdes: select.val()});
|
||||
|
||||
if (!_.isNil(dest) && !_.isNil(dest.cod_vlis)) {
|
||||
codiceListino = dest.cod_vlis;
|
||||
}
|
||||
if (!_.eq(codiceListino, self._getCodVlis())) {
|
||||
self.setCodVlis(codiceListino);
|
||||
if (self._isNew()) {
|
||||
self._refreshListino();
|
||||
} else {
|
||||
let toast = new Toast;
|
||||
toast.warning("Il destinatario selezionato ha il listino diverso da quello presente nell' ordine. <br> Il listino verrà quindi aggiornato ma non altererà i prezzi sulle righe attualmente esistenti.", "Listino modificato!");
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!_.isEmpty(terms)) {
|
||||
if (self._isNew() || _.isEmpty($("#term_cons").val())) {
|
||||
$("#term_cons").val(terms);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (_deliveryPlan.getAbilitazione("gestioneVendite")) {
|
||||
$div.find("[name='cod_vage']").select2({
|
||||
dropdownParent: $div,
|
||||
allowClear: true,
|
||||
width: "element",
|
||||
placeholder: "Seleziona agente",
|
||||
ajax: {
|
||||
dataType: "json",
|
||||
allowClear: true,
|
||||
width: "resolve",
|
||||
delay: 250,
|
||||
transport: function (params, success, failure) {
|
||||
var data = {
|
||||
q: _.isNil(params.data.q) ? null : params.data.q,
|
||||
type: "cod_vage"
|
||||
};
|
||||
var ajax = new Ajax();
|
||||
ajax
|
||||
.get("search_opt")
|
||||
.data(data)
|
||||
.onSuccess(success)
|
||||
.onError(failure)
|
||||
.execute();
|
||||
},
|
||||
processResults: function (data) {
|
||||
var results = data.returnData;
|
||||
_.each(results, function (state) {
|
||||
state.id = state.cod_vage;
|
||||
state.text = state.rag_soc;
|
||||
});
|
||||
return {results: results};
|
||||
},
|
||||
}
|
||||
});
|
||||
/* AJAX caricamento banca cliente
|
||||
$div.find("[name='cod_banc']").select2({
|
||||
dropdownParent: $div,
|
||||
placeholder: 'Seleziona banca',
|
||||
allowClear: true,
|
||||
width: "element",
|
||||
ajax: {
|
||||
dataType: 'json',
|
||||
width: 'resolve',
|
||||
delay: 250,
|
||||
transport: function (params, success, failure) {
|
||||
var data = {
|
||||
q: _.isNil(params.data.q) ? null : params.data.q,
|
||||
type: "cod_banc"
|
||||
};
|
||||
var ajax = new Ajax();
|
||||
ajax
|
||||
.get("search_opt")
|
||||
.data(data)
|
||||
.onSuccess(success)
|
||||
.onError(failure)
|
||||
.execute()
|
||||
},
|
||||
processResults: function (data) {
|
||||
var results = data.returnData;
|
||||
_.each(results, function (state) {
|
||||
state.id = state.cod_banc;
|
||||
state.text = state.descrizione;
|
||||
});
|
||||
return {results: results};
|
||||
},
|
||||
}
|
||||
});
|
||||
*/
|
||||
$div.find("[name='cod_banc_azi']").select2({
|
||||
dropdownParent: $div,
|
||||
width: "element",
|
||||
placeholder: "Seleziona banca aziendale",
|
||||
allowClear: true,
|
||||
ajax: {
|
||||
dataType: "json",
|
||||
width: "resolve",
|
||||
delay: 250,
|
||||
transport: function (params, success, failure) {
|
||||
var data = {
|
||||
q: _.isNil(params.data.q) ? null : params.data.q,
|
||||
type: "cod_banc_azi"
|
||||
};
|
||||
var ajax = new Ajax();
|
||||
ajax
|
||||
.get("search_opt")
|
||||
.data(data)
|
||||
.onSuccess(success)
|
||||
.onError(failure)
|
||||
.execute();
|
||||
},
|
||||
processResults: function (data) {
|
||||
var results = data.returnData;
|
||||
_.each(results, function (state) {
|
||||
state.id = state.cod_banc_azi;
|
||||
state.text = state.descrizione;
|
||||
});
|
||||
return {results: results};
|
||||
},
|
||||
}
|
||||
});
|
||||
$div.find("[name='cod_paga']").select2({
|
||||
dropdownParent: $div,
|
||||
allowClear: true,
|
||||
placeholder: "Seleziona condizioni pagamento",
|
||||
ajax: {
|
||||
dataType: "json",
|
||||
width: "resolve",
|
||||
delay: 250,
|
||||
transport: function (params, success, failure) {
|
||||
const data = {
|
||||
q: _.isNil(params.data.q) ? null : params.data.q,
|
||||
type: "cod_paga"
|
||||
};
|
||||
|
||||
const ajax = new Ajax();
|
||||
|
||||
ajax
|
||||
.get("search_opt")
|
||||
.data(data)
|
||||
.onSuccess(success)
|
||||
.onError(failure)
|
||||
.execute();
|
||||
},
|
||||
processResults: function (data) {
|
||||
var results = data.returnData;
|
||||
_.each(results, function (state) {
|
||||
state.id = state.cod_paga;
|
||||
state.text = `${state.cod_paga} - ${state.descrizione}`;
|
||||
});
|
||||
return {results: results};
|
||||
},
|
||||
}
|
||||
});
|
||||
|
||||
var $dataRifORd = $div.find("[name='rif_data_ord']");
|
||||
$dataRifORd
|
||||
.datepicker({
|
||||
dateFormat: "dd/mm/yy",
|
||||
firstDay: _deliveryPlan.getFirstIsoWeekDay()
|
||||
});
|
||||
}
|
||||
if (!self._isNew()) {
|
||||
if (self._isDuplicate) {
|
||||
$div.find("[name='data_ord']")
|
||||
.on("change", function (e) {
|
||||
$dataInizTrasp.val($(e.currentTarget).val());
|
||||
if (!_.isNil(self._clieData)) {
|
||||
self._refreshListino();
|
||||
}
|
||||
})
|
||||
.datepicker({
|
||||
dateFormat: "dd/mm/yy",
|
||||
minDate: 0,
|
||||
firstDay: _deliveryPlan.getFirstIsoWeekDay()
|
||||
});
|
||||
}
|
||||
self._compilaTestataOrdine();
|
||||
|
||||
self._initTableAsOrdine();
|
||||
|
||||
if (self._viewRigheListino()) {
|
||||
self._initTableAsListino();
|
||||
}
|
||||
|
||||
$div.find("#popup-flt-cod_jcom").bsautocomplete({
|
||||
minLength: 1,
|
||||
sourceAjaxAction: "src_cod_jcom",
|
||||
item_labelKey: "cod_jcom",
|
||||
item_labelSubKey: "descrizione",
|
||||
ajaxData: {cod_anag: self._getCodAnag()},
|
||||
onSelect: function (e, result, $this) {
|
||||
$this.blur(); //fix chrome: blur triggera change, e qui resetta
|
||||
self._resetCodiceCommessa()
|
||||
._setCodiceCommessa(result)
|
||||
._compileCodJComData();
|
||||
},
|
||||
onSearch: function () {
|
||||
$div.find("[name='cod_jcom']").val("");
|
||||
$div.find("[name='cig']").val("");
|
||||
$div.find("[name='cup']").val("");
|
||||
}
|
||||
}).on("change", function () {
|
||||
self._resetCodiceCommessa();
|
||||
});
|
||||
|
||||
} else {
|
||||
$div.find("[name='data_ord']")
|
||||
.on("change", function (e) {
|
||||
$dataInizTrasp.val($(e.currentTarget).val());
|
||||
@@ -422,164 +466,123 @@ PopupOrdine.prototype.open = function (editable) {
|
||||
dateFormat: "dd/mm/yy",
|
||||
minDate: 0,
|
||||
firstDay: _deliveryPlan.getFirstIsoWeekDay()
|
||||
});
|
||||
}
|
||||
self._compilaTestataOrdine();
|
||||
})
|
||||
.setValue(getToday());
|
||||
|
||||
self._initTableAsOrdine();
|
||||
$div.find("table#list-articoli").hide();
|
||||
$div.find("[name='cod_vdes']").disabled().selectpicker("refresh");
|
||||
$div.find("[name='cod_mdep']").children(":not([value=''])").first().attr("selected", true);
|
||||
|
||||
if (self._viewRigheListino()) {
|
||||
self._initTableAsListino();
|
||||
}
|
||||
|
||||
$div.find("#popup-flt-cod_jcom").bsautocomplete({
|
||||
minLength: 1,
|
||||
sourceAjaxAction: "src_cod_jcom",
|
||||
item_labelKey: "cod_jcom",
|
||||
item_labelSubKey: "descrizione",
|
||||
ajaxData: {cod_anag: self._getCodAnag()},
|
||||
onSelect: function (e, result, $this) {
|
||||
$this.blur(); //fix chrome: blur triggera change, e qui resetta
|
||||
self._resetCodiceCommessa()
|
||||
._setCodiceCommessa(result)
|
||||
._compileCodJComData();
|
||||
},
|
||||
onSearch: function () {
|
||||
$div.find("[name='cod_jcom']").val("");
|
||||
$div.find("[name='cig']").val("");
|
||||
$div.find("[name='cup']").val("");
|
||||
}
|
||||
}).on("change", function () {
|
||||
self._resetCodiceCommessa();
|
||||
});
|
||||
|
||||
} else {
|
||||
$div.find("[name='data_ord']")
|
||||
.on("change", function (e) {
|
||||
$dataInizTrasp.val($(e.currentTarget).val());
|
||||
if (!_.isNil(self._clieData)) {
|
||||
self._refreshListino();
|
||||
$div.find("#popup-flt-clie").bsautocomplete({
|
||||
minLength: 3,
|
||||
sourceAjaxAction: "src_cliente",
|
||||
item_labelKey: "rag_soc",
|
||||
item_labelSmallKey: ["cod_anag", "part_iva_formatted"],
|
||||
item_labelSubKey: ["indirizzo", "citta", "prov"],
|
||||
onSelect: function (e, result, $this) {
|
||||
$this.blur(); //fix chrome: blur triggera change, e qui resetta
|
||||
self._resetCliente()
|
||||
._setCliente(result)
|
||||
._compileClieData()
|
||||
._showSituazione()
|
||||
._refreshListino();
|
||||
},
|
||||
onSearch: function () {
|
||||
$div.find("[name='cod_anag']").val("");
|
||||
$div.find("[name='cod_vdes']").selectpicker("val", "");
|
||||
}
|
||||
})
|
||||
.datepicker({
|
||||
dateFormat: "dd/mm/yy",
|
||||
minDate: 0,
|
||||
firstDay: _deliveryPlan.getFirstIsoWeekDay()
|
||||
})
|
||||
.setValue(getToday());
|
||||
}).on("change", function () {
|
||||
self._resetCliente();
|
||||
});
|
||||
|
||||
$div.find("table#list-articoli").hide();
|
||||
$div.find("[name='cod_vdes']").disabled().selectpicker("refresh");
|
||||
$div.find("[name='cod_mdep']").children(":not([value=''])").first().attr("selected", true);
|
||||
|
||||
$div.find("#popup-flt-clie").bsautocomplete({
|
||||
minLength: 3,
|
||||
sourceAjaxAction: "src_cliente",
|
||||
item_labelKey: "rag_soc",
|
||||
item_labelSmallKey: ["cod_anag", "part_iva_formatted"],
|
||||
item_labelSubKey: ["indirizzo", "citta", "prov"],
|
||||
onSelect: function (e, result, $this) {
|
||||
$this.blur(); //fix chrome: blur triggera change, e qui resetta
|
||||
self._resetCliente()
|
||||
._setCliente(result)
|
||||
._compileClieData()
|
||||
._showSituazione()
|
||||
._refreshListino();
|
||||
},
|
||||
onSearch: function () {
|
||||
$div.find("[name='cod_anag']").val("");
|
||||
$div.find("[name='cod_vdes']").selectpicker("val", "");
|
||||
}
|
||||
}).on("change", function () {
|
||||
self._resetCliente();
|
||||
});
|
||||
|
||||
$div.find("#popup-flt-cod_jcom").bsautocomplete({
|
||||
minLength: 1,
|
||||
sourceAjaxAction: "src_cod_jcom",
|
||||
item_labelKey: "cod_jcom",
|
||||
item_labelSubKey: "descrizione",
|
||||
onSelect: function (e, result, $this) {
|
||||
$this.blur(); //fix chrome: blur triggera change, e qui resetta
|
||||
self._resetCodiceCommessa()
|
||||
._setCodiceCommessa(result)
|
||||
._compileCodJComData();
|
||||
},
|
||||
onSearch: function () {
|
||||
$div.find("[name='cod_jcom']").val("");
|
||||
$div.find("[name='cig']").val("");
|
||||
$div.find("[name='cup']").val("");
|
||||
}
|
||||
}).on("change", function () {
|
||||
self._resetCodiceCommessa();
|
||||
});
|
||||
}
|
||||
|
||||
if (self.editable) {
|
||||
$div.find("#bt_addArticolo").parent().on("click", function () {
|
||||
|
||||
if (self._viewRigheListino()) {
|
||||
self._showModalAggiungiAlListino();
|
||||
} else {
|
||||
self._showModalAggiungiAllOrdine();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$div.find("#bt_toggleAutoCalcPedane").parent().on("click", function () {
|
||||
$div.find("#bt_toggleAutoCalcPedane").toggleClass("active").toggleClass("text-default").toggleClass("text-primary");
|
||||
});
|
||||
$div.find("#btPdfDettagliOrdine").on("click", function () {
|
||||
self._getPdfDettagliOrdine(key);
|
||||
});
|
||||
$div.find("#btPdfEtich").on("click", function () {
|
||||
self._getPdfEtich(key);
|
||||
});
|
||||
$div.find("#btPrintColliOrdine").on("click", function () {
|
||||
self._getCodMdepsFromOrd(key);
|
||||
});
|
||||
$div.find("#btnPdfConferma").on("click", function () {
|
||||
self._getPdfConferma(key);
|
||||
});
|
||||
|
||||
var $btFltOrdinato = $div.find("#bt_fltOrdinato");
|
||||
if (self._isNew() || !self._isModalitaListino()) {
|
||||
$btFltOrdinato.hide();
|
||||
} else {
|
||||
$btFltOrdinato.parent().on("click", _.bind(self._filtraOrdinato, self));
|
||||
}
|
||||
|
||||
$flagSospeso.on("switchChange.bootstrapSwitch", function (e, checked) {
|
||||
if (!checked) {
|
||||
self._comparaEAggiornaPrezzi();
|
||||
$div.find("#popup-flt-cod_jcom").bsautocomplete({
|
||||
minLength: 1,
|
||||
sourceAjaxAction: "src_cod_jcom",
|
||||
item_labelKey: "cod_jcom",
|
||||
item_labelSubKey: "descrizione",
|
||||
onSelect: function (e, result, $this) {
|
||||
$this.blur(); //fix chrome: blur triggera change, e qui resetta
|
||||
self._resetCodiceCommessa()
|
||||
._setCodiceCommessa(result)
|
||||
._compileCodJComData();
|
||||
},
|
||||
onSearch: function () {
|
||||
$div.find("[name='cod_jcom']").val("");
|
||||
$div.find("[name='cig']").val("");
|
||||
$div.find("[name='cup']").val("");
|
||||
}
|
||||
}).on("change", function () {
|
||||
self._resetCodiceCommessa();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
/* CIG e CUP obbligatori
|
||||
$div.find("[name=cig], [name=cup]").on("change", function () {
|
||||
let cig = $("[name=cig]");
|
||||
let cup = $("[name=cup]");
|
||||
if (self.editable) {
|
||||
$div.find("#bt_addArticolo").parent().on("click", function () {
|
||||
|
||||
if (isNotEmpty(cig.val()) || isNotEmpty(cup.val())) {
|
||||
cig.attr("data-required", "");
|
||||
cup.attr("data-required", "");
|
||||
if (self._viewRigheListino()) {
|
||||
self._showModalAggiungiAlListino();
|
||||
} else {
|
||||
self._showModalAggiungiAllOrdine();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$div.find("#bt_toggleAutoCalcPedane").parent().on("click", function () {
|
||||
$div.find("#bt_toggleAutoCalcPedane").toggleClass("active").toggleClass("text-default").toggleClass("text-primary");
|
||||
});
|
||||
$div.find("#btPdfDettagliOrdine").on("click", function () {
|
||||
self._getPdfDettagliOrdine(key);
|
||||
});
|
||||
$div.find("#btPdfEtich").on("click", function () {
|
||||
self._getPdfEtich(key);
|
||||
});
|
||||
$div.find("#btPrintColliOrdine").on("click", function () {
|
||||
self._getCodMdepsFromOrd(key);
|
||||
});
|
||||
$div.find("#btnPdfConferma").on("click", function () {
|
||||
self._getPdfConferma(key);
|
||||
});
|
||||
|
||||
var $btFltOrdinato = $div.find("#bt_fltOrdinato");
|
||||
if (self._isNew() || !self._isModalitaListino()) {
|
||||
$btFltOrdinato.hide();
|
||||
} else {
|
||||
cig.removeAttr("data-required");
|
||||
cup.removeAttr("data-required");
|
||||
$btFltOrdinato.parent().on("click", _.bind(self._filtraOrdinato, self));
|
||||
}
|
||||
});
|
||||
*/
|
||||
|
||||
//$div.find("#popup-flt-clie").select();
|
||||
if (!self.editable) {
|
||||
$div.find("input,select,textarea").attr("disabled", true);
|
||||
}
|
||||
})
|
||||
$flagSospeso.on("switchChange.bootstrapSwitch", function (e, checked) {
|
||||
if (!checked) {
|
||||
self._comparaEAggiornaPrezzi();
|
||||
}
|
||||
});
|
||||
|
||||
/* CIG e CUP obbligatori
|
||||
$div.find("[name=cig], [name=cup]").on("change", function () {
|
||||
let cig = $("[name=cig]");
|
||||
let cup = $("[name=cup]");
|
||||
|
||||
if (isNotEmpty(cig.val()) || isNotEmpty(cup.val())) {
|
||||
cig.attr("data-required", "");
|
||||
cup.attr("data-required", "");
|
||||
} else {
|
||||
cig.removeAttr("data-required");
|
||||
cup.removeAttr("data-required");
|
||||
}
|
||||
});
|
||||
*/
|
||||
|
||||
//$div.find("#popup-flt-clie").select();
|
||||
if (!self.editable) {
|
||||
$div.find("input,select,textarea").attr("disabled", true);
|
||||
}
|
||||
})
|
||||
.onShow(function ($div) {
|
||||
$div.find("#popup-flt-clie").select();
|
||||
_deliveryPlan.setSelect2ContainerWidth();
|
||||
if (isDuplicate) {
|
||||
self._showSituazione();
|
||||
}
|
||||
})
|
||||
|
||||
.btCancel({text: "Chiudi senza salvare"})
|
||||
.onClose(function () {
|
||||
if (is_function(self._onClose)) {
|
||||
@@ -601,10 +604,6 @@ PopupOrdine.prototype.open = function (editable) {
|
||||
self._modalBox.closeOnly();
|
||||
}
|
||||
self._modalBox.show();
|
||||
|
||||
if (isDuplicate) {
|
||||
self._showSituazione();
|
||||
}
|
||||
})
|
||||
.execute();
|
||||
};
|
||||
|
||||
@@ -778,21 +778,6 @@ class MonitoraggioLineeV2 {
|
||||
return $Ret;
|
||||
}
|
||||
|
||||
public static function getSemolaRam($key) {
|
||||
$Query = new Query;
|
||||
$Query->importSqlFile("getSemolaRam")
|
||||
->setVar("cod_mart", $key["cod_mart"])
|
||||
->setVar("partita_mag", $key["partita_mag"]);
|
||||
|
||||
$Ret = $Query->firstRowFirstValue()->toRet()->execute();
|
||||
|
||||
if ($Ret->is_KO()) {
|
||||
$Ret->set_error("Ordine non valido");
|
||||
}
|
||||
|
||||
return $Ret;
|
||||
}
|
||||
|
||||
public static function save_udc($data) {
|
||||
$order = $data;
|
||||
$handler = OrderEventHandler::loadCustomHandler($order);
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
SELECT val_carat
|
||||
FROM mtb_partita_mag_carat
|
||||
WHERE cod_mart = '[cod_mart]'
|
||||
AND partita_mag = '[partita_mag]'
|
||||
AND carat = N'Quantità semola (KG)'
|
||||
@@ -1134,9 +1134,9 @@ class Mrp {
|
||||
"title" => sprintf("%s", $ordine["codProd"]),
|
||||
"subtitle" => sprintf("N. Colli: %s", $ordine["numCnf"]),
|
||||
"description" => sprintf("%s", $ordine["descrizioneProd"]),
|
||||
"durata" => sprintf("%s h %s m", floor($ordine["runTimeSec"] / 3600), round(($ordine["runTimeSec"] / 60) % 60)),
|
||||
"durata" => array_key_exists("runTimeSec", $ordine) ? sprintf("%s h %s m", floor($ordine["runTimeSec"] / 3600), round(($ordine["runTimeSec"] / 60) % 60)) : 0,
|
||||
"start" => $ordine["dataOrdProd"],
|
||||
"runTimeSec" => $ordine["runTimeSec"],
|
||||
"runTimeSec" => array_get($ordine, "runTimeSec", 0),
|
||||
"end" => $ordine["dataOrdProd"],
|
||||
"stato" => $ordine["stato"],
|
||||
"avgCtTime" => ($ordine["numPezzi"] - $ordine["pzTrasferiti"]) / (isset($ordine["prodStd"]) && $ordine["prodStd"] != 0 ? $ordine["prodStd"] : 1),
|
||||
|
||||
@@ -508,9 +508,16 @@ PopupOrdProd.prototype._buildRiga = function (items, dataPr) {
|
||||
break;
|
||||
}
|
||||
|
||||
let dataMrp = moment.unix(item.data_mrp);
|
||||
let dataMrp;
|
||||
|
||||
if (moment(item.data_mrp, "YYYY-MM-DD", true).isValid()) {
|
||||
let data = new Date(item.data_mrp);
|
||||
dataMrp = moment(data);
|
||||
} else {
|
||||
dataMrp = moment.unix(item.data_mrp);
|
||||
}
|
||||
|
||||
let today = moment().startOf("day");
|
||||
// let dataProd = moment.unix(dataPr).startOf("day");
|
||||
let daysDiff = Math.abs(dataMrp.diff(today, "days")) + 1;
|
||||
|
||||
if (value) {
|
||||
|
||||
@@ -1,19 +1,29 @@
|
||||
SELECT mrp.cod_mart,
|
||||
mrp.descrizione AS descr_articolo,
|
||||
DATEDIFF(DAY, '[data_ord]', CAST(mrp.data_mrp AS DATE)) AS gg_mrp,
|
||||
CAST(mrp.data_mrp AS DATE) AS data_mrp,
|
||||
CASE WHEN '[data_ord]' = CAST(mrp.data_mrp AS DATE) THEN NULL ELSE mrp.gestione END AS gestione,
|
||||
SUM(CASE WHEN '[data_ord]' = CAST(mrp.data_mrp AS DATE) THEN mrp.qta ELSE 0 END) AS giacenza,
|
||||
SUM(CASE
|
||||
WHEN mrp.gestione = 'L' AND CAST(mrp.data_mrp AS DATE) > '[data_ord]' THEN mrp.qta
|
||||
ELSE 0 END) AS impegni,
|
||||
SUM(CASE
|
||||
WHEN mrp.gestione = 'A' AND CAST(mrp.data_mrp AS DATE) > '[data_ord]' THEN mrp.qta
|
||||
ELSE 0 END) AS qta_arrivo
|
||||
FROM MRP_DailyMaterialReq() mrp
|
||||
WHERE mrp.cod_mdep = '[cod_mdep]'
|
||||
AND (gestione IS NULL OR gestione NOT IN ('CV', 'NP'))
|
||||
AND cod_mart IN ('[cod_mart]')
|
||||
GROUP BY mrp.cod_mart, mrp.descrizione, CAST(mrp.data_mrp AS DATE),
|
||||
CASE WHEN '[data_ord]' = CAST(mrp.data_mrp AS DATE) THEN NULL ELSE mrp.gestione END
|
||||
ORDER BY mrp.cod_mart, CAST(mrp.data_mrp AS DATE)
|
||||
SELECT mtb_aart.cod_mart,
|
||||
mtb_aart.descrizione AS descr_articolo,
|
||||
cod_mdep,
|
||||
ISNULL(gg_mrp, 0) AS gg_mrp,
|
||||
ISNULL(data_mrp, GETDATE()) AS data_mrp,
|
||||
gestione,
|
||||
ISNULL(giacenza, 0) AS giacenza,
|
||||
ISNULL(impegni, 0) AS impegni,
|
||||
ISNULL(qta_arrivo, 0) AS qta_arrivo
|
||||
FROM mtb_aart
|
||||
LEFT JOIN (SELECT mrp.cod_mdep,
|
||||
mrp.cod_mart,
|
||||
DATEDIFF(DAY, '[data_ord]', CAST(mrp.data_mrp AS DATE)) AS gg_mrp,
|
||||
CAST(mrp.data_mrp AS DATE) AS data_mrp,
|
||||
mrp.gestione,
|
||||
SUM(CASE
|
||||
WHEN '[data_ord]' = CAST(mrp.data_mrp AS DATE) THEN mrp.qta
|
||||
ELSE 0 END) AS giacenza,
|
||||
SUM(CASE
|
||||
WHEN mrp.gestione = 'L' AND CAST(mrp.data_mrp AS DATE) > '[data_ord]' THEN mrp.qta
|
||||
ELSE 0 END) AS impegni,
|
||||
SUM(CASE
|
||||
WHEN mrp.gestione = 'A' AND CAST(mrp.data_mrp AS DATE) > '[data_ord]' THEN mrp.qta
|
||||
ELSE 0 END) AS qta_arrivo
|
||||
FROM MRP_DailyMaterialReq() mrp
|
||||
WHERE (gestione IS NULL OR gestione NOT IN ('CV', 'NP'))
|
||||
GROUP BY mrp.cod_mdep, mrp.cod_mart, mrp.descrizione, CAST(mrp.data_mrp AS DATE),
|
||||
mrp.gestione) AS mrp ON mrp.cod_mart = mtb_aart.cod_mart AND mrp.cod_mdep = '[cod_mdep]'
|
||||
WHERE mtb_aart.cod_mart IN ('[cod_mart]')
|
||||
@@ -341,6 +341,7 @@ class Post {
|
||||
$JtbRlavr->insert()
|
||||
->setDate("dataLav", $rapp["key"]["data_lav"])
|
||||
->set("codJflav", $rapp["key"]["cod_jflav"])
|
||||
->set("activityId", $data["activity_id"])
|
||||
->setDatetime("daOra", $rapp["da_ora"])
|
||||
->set("note", "E");
|
||||
$JtbRlavt->set("jtbRlavr")->append($JtbRlavr);
|
||||
@@ -350,6 +351,7 @@ class Post {
|
||||
$JtbRlavr->insert()
|
||||
->setDate("dataLav", $rapp["key"]["data_lav"])
|
||||
->set("codJflav", $rapp["key"]["cod_jflav"])
|
||||
->set("activityId", $data["activity_id"])
|
||||
->setDatetime("aOra", $rapp["a_ora"])
|
||||
->set("note", "U");
|
||||
$JtbRlavt->set("jtbRlavr")->append($JtbRlavr);
|
||||
@@ -358,6 +360,7 @@ class Post {
|
||||
$QueryB = new \Query;
|
||||
$QueryB->delete("jtb_rlavr")
|
||||
->where("cod_jflav", $rapp["key"]["cod_jflav"])
|
||||
->where("activity_id", $data["activity_id"])
|
||||
->whereDate("data_lav", $rapp["key"]["data_lav"])
|
||||
->where("note", array("E", "U"));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user