Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
2024-02-29 16:10:56 +01:00
12 changed files with 98 additions and 106 deletions

3
.idea/misc.xml generated
View File

@@ -3,4 +3,7 @@
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
<component name="TaskProjectConfiguration">
<server type="YouTrack" url="https://integry.myjetbrains.com/youtrack" />
</component>
</project>

View File

@@ -31,4 +31,8 @@ class EntityArray {
public function get_children() {
return $this->children;
}
public function count() {
return count($this->children);
}
}

View File

@@ -690,18 +690,7 @@ class ModalMrp {
$rapConvProd = $prodotto["rap_conv_prod"];
$untMisProd = $prodotto["unt_mis_prod"];
$codMdep = $codMdep ?: $deposito["cod_mdep"];
//$arr_commesse = $data["commesse"];
$body = new EntityItem();
// $EntityList = new EntityList;
// if (!empty($partitaMag)) {
// $MtbPartitaMag = new EntityItem("mtb_partita_mag");
// $MtbPartitaMag->insert_or_update()
// ->set("partitaMag", $partitaMag)
// ->set("codMart", $codMart)
// ->setDate("dataScad", $dataScad);
// $EntityList->push($MtbPartitaMag);
// }
// ORDINE DI PRODUZIONE
$OrdProd = new EntityItem("dtb_ordt");
@@ -751,43 +740,10 @@ class ModalMrp {
->set("codTcolUl", $codTcolUl)
->set("note", $note);
// if (isset($data["cod_jcom"])) {
// $OrdLav->set("codJcom", $data["cod_jcom"]);
// }
/*
if(count($arr_commesse)==1){
$OrdLav->set("codJcom", $arr_commesse[0]);
}*/
$OrdProd->set("dtbOrdr")->append($OrdLav);
$body->set("ordine", $OrdProd, false, true);
$body->set("ordiniSelezionati", array_get($data, "ordiniSelezionati"));
// $EntityList->push($OrdProd);
/*
foreach($arr_commesse as $codJcom){ // AGGIORNO LA PARTITA SULLE RIGHE DEGLI ORDINI AGGANCIATI ALLE COMMESSE SELEZIONATE
$query = new Query;
$query->select("data_ord", "num_ord", "riga_ord")
->from("dtb_ordr")
->where("gestione", "V")
->where("cod_jcom", $codJcom)
->where("cod_mart", $codMart);
$Ret = $query->toRet()->execute();
if($Ret->is_OK()){
$arr_ordini = $Ret->get_data();
foreach($arr_ordini as $ordine){
$DtbOrdr = new EntityItem("dtb_ordr");
$DtbOrdr->update()
->set("partitaMag", $partitaMag)
->set("gestione", "V")
->setDate("dataOrd", $ordine["data_ord"])
->set("numOrd", $ordine["num_ord"])
->set("rigaOrd", $ordine["riga_ord"]);
$EntityList->push($DtbOrdr);
}
} else{
return $Ret;
}
}*/
$imsApi = new IMSApi();
@@ -880,12 +836,11 @@ class ModalMrp {
$flagInsertedOrdProd = false;
$flagEditedCodJfas = !in_array($codJfasPrev, $codJfas);
$flagEditedDataOrd = Utility\Date\Day::diff($orderLavKey["data_ord"], $newDataOrd) !== 0;
$partitaMag = array_get($data, "partita_mag");
$entityList = new EntityList;
if ($flagInCorso) {
$partitaMag = array_get($data, "partita_mag");
if (isset($partitaMag)) {
$mtbPartitaMag = new EntityItem("mtb_partita_mag");
@@ -986,8 +941,6 @@ class ModalMrp {
$Entity->update()->set("nativeSql", $queryB);
$entityList->push($Entity);
$partitaMag = array_get($data, "partita_mag");
if (isset($partitaMag)) {
$mtbPartitaMag = new EntityItem("mtb_partita_mag");
@@ -1001,39 +954,53 @@ class ModalMrp {
$entityList->push($mtbPartitaMag);
}
if (isset($partitaMag) && $ordineLav["partita_mag"] != $partitaMag) {
$dtbOrdt = new EntityItem("dtb_ordt");
$dtbOrdt = new EntityItem("dtb_ordt");
$dtbOrdt
->update()
->set("gestione", $ordineLav["gestione"])
->setDate("dataOrd", $ordineLav["data_ord"])
->set("numOrd", $ordineLav["num_ord"])
->set("codProd", $ordineLav["cod_prod"])
->set("partitaMag", $data["partita_mag"])
->set("descrizione", $data["note"]);
$dtbOrdt
->update()
->set("gestione", $ordineLav["gestione"])
->setDate("dataOrd", $ordineLav["data_ord"])
->set("numOrd", $ordineLav["num_ord"])
->set("codProd", $ordineLav["cod_prod"])
->set("partitaMag", $data["partita_mag"])
->set("descrizione", $data["note"]);
$ordiniSelezionati = array_get($data, "ordiniSelezionati", array());
$entityArr = new EntityArray();
if (count($ordiniSelezionati) > 0) {
$entityArr = new EntityArray();
$ordiniSelezionati = array_get($data, "ordiniSelezionati", array());
if (count($ordiniSelezionati) > 0) {
foreach ($ordiniSelezionati as $ord) {
$entity = new EntityItem("dtb_ordt");
foreach ($ordiniSelezionati as $ord) {
$entity = new EntityItem("dtb_ordt");
$entity
->set("gestione", $ord["gestione"])
->setDate("dataOrd", $ord["data_ord"])
->set("numOrd", $ord["num_ord"]);
$entity
->set("gestione", $ord["gestione"])
->setDate("dataOrd", $ord["data_ord"])
->set("numOrd", $ord["num_ord"]);
$entityArr->append($entity);
}
$dtbOrdt->set("ordiniV", $entityArr, false, true);
$entityArr->append($entity);
}
$entityList->push($dtbOrdt);
}
$ordiniDeselezionati = array_get($data, "ordiniDeselezionati", array());
if (count($ordiniDeselezionati) > 0) {
foreach ($ordiniDeselezionati as $ord) {
$entity = new EntityItem("dtb_ordt");
$entity
->set("gestione", $ord["gestione"])
->setDate("dataOrd", $ord["data_ord"])
->set("numOrd", $ord["num_ord"])
->set("flagScollegaPartitaMag", true);
$entityArr->append($entity);
}
}
if ($entityArr->count() > 0) {
$dtbOrdt->set("ordiniV", $entityArr, false, true);
}
$entityList->push($dtbOrdt);
}
$ret = $entityList->send();
@@ -1070,7 +1037,8 @@ class ModalMrp {
return $ret;
}
public static function deleteOrd($data) {
public
static function deleteOrd($data) {
$Ret = new Ret;
$orderKey = $data["key"];
$gestione = $orderKey["gestione"];
@@ -1094,7 +1062,8 @@ class ModalMrp {
return $Ret;
}
public static function suggestDataScad($data) {
public
static function suggestDataScad($data) {
$query = new Query;
return $query

View File

@@ -28,7 +28,8 @@ ob_start();
$fabbisogniArray = array();
foreach ($fabbisogni as $fabbisogno) {
$fabbisogniArray[$fabbisogno["flag_sospeso"]][] = $fabbisogno;
$key = $fabbisogno["partita_mag"] ? "PM" : $fabbisogno["flag_sospeso"];
$fabbisogniArray[$key][] = $fabbisogno;
}
?>
<table id="list-fabbisogniSospesi" class="table table-hover table-striped table-bordered table-text-middle small">
@@ -63,10 +64,15 @@ ob_start();
<td colspan="1" class="text-center"><?= number_format($sumFabb) ?></td>
<td colspan="1"></td>
</tr>
<?php
}
foreach ($value as $fabbisogno) {
?>
<?php } else if ($key === 'PM') { ?>
<tr class="danger">
<td colspan="7" class="text-center">Ordini Pianificati in Produzione</td>
<td colspan="1" class="text-center"><?= number_format($sumFabb) ?></td>
<td colspan="1"></td>
</tr>
<?php } ?>
<?php foreach ($value as $fabbisogno) { ?>
<tr>
<td class="text-center"><?= $fabbisogno["cod_mdep"] ?></td>
<td class="text-center"><?= \Utility\Date::format($fabbisogno["data_cons"], "%d %B %Y") ?></td>
@@ -80,10 +86,8 @@ ob_start();
<td class="text-center"><?= $fabbisogno["qta_ord"] ?></td>
<td class="text-center"><?= $fabbisogno["fabbisogno"] ?></td>
</tr>
<?php
}
}
?>
<?php } ?>
<?php } ?>
</tbody>
<tfoot>
</tfoot>

View File

@@ -1,4 +1,7 @@
<?php
use Utility\Date;
$codMdep = isset($data["deposito"]) ? $data["deposito"] : null;
$codMart = isset($data["articolo"]) ? $data["articolo"] : null;
$ret = new Ret();
@@ -48,8 +51,8 @@ ob_start();
data-qta="<?= $partita["qta"] ?>">
<td class="text-center"><?= $partita["partita_mag"] ?></td>
<td class="text-center"><?= $partita["desc_partita"] ?></td>
<td class="text-center"><?= \Utility\Date::format($partita["data_scad"], Format::strftimeDMY) ?></td>
<td class="text-center"><?= ($partita["flag_stato"] === "A") ? "<i style='color: green' class='fa fa-check'></i>" : "<i style='color: red' class='fa fa-times'></i>" ?></td>
<td class="text-center"><?= array_get($partita, "data_scad") ? Date::format($partita["data_scad"], Format::strftimeDMY) : "" ?></td>
<td class="text-center"><?= $partita["flag_stato"] === "A" ? "<i style='color: green' class='fa fa-check'></i>" : "<i style='color: red' class='fa fa-times'></i>" ?></td>
<td class="text-center"><?= $partita["posizione"] ?></td>
<td class="text-center"><?= $partita["TipoPedana"] ?></td>
<td class="text-monospace text-center"><?= number_format($partita["pedane"], 0, '.', "'") ?></td>

View File

@@ -54,7 +54,7 @@ if ($Ret->is_OK()) {
$arr_ordiniV = from($arr_ordiniV)
->where(function ($ordineV) use ($orderKey, $rigaOrdine) {
return isset($orderKey) ?
isset($ordineV["partita_mag"]) && $ordineV["partita_mag"] == $rigaOrdine["partita_mag"]
(isset($ordineV["partita_mag"]) && $ordineV["partita_mag"] == $rigaOrdine["partita_mag"]) || is_null($ordineV["partita_mag"])
: is_null($ordineV["partita_mag"]);
})
->toArray();
@@ -254,13 +254,14 @@ if ($Ret->is_OK()) {
<tbody>
<?php
$totColli = 0;
foreach ($arr_ordiniV as $ordineV) {
$totColli += $ordineV["num_cnf"];
?>
<tr data-row="<?= Utility::B64JSON_stringify($ordineV) ?>">
<td class="text-center">
<input type="checkbox" id="cod_jcom"
value="<?= $ordineV["cod_jcom"] ?>" <?= isset($orderKey) ? "disabled checked" : "" ?>
<input type="checkbox" id="cod_jcom" value="<?= $ordineV["cod_jcom"] ?>"
<?= isset($orderKey) && !is_null($ordineV["partita_mag"]) ? "checked" : "" ?>
>
</td>
<td class="text-center"><?= $ordineV["num_ord"] ?>

View File

@@ -16,6 +16,7 @@ function PopupOrdProd() {
this._modalBox = null;
this._onSave = null;
this._onOpen = null;
this._ordiniSelezionatiApertura = [];
}
PopupOrdProd.prototype.codMart = function (v) {
@@ -199,6 +200,10 @@ PopupOrdProd.prototype.open = function () {
$div.find("[name='note']").val(rigaOrdine.note);
$div.find("[name='note_old']").val(rigaOrdine.note);
$div.find("[name='qta_prod']").val(rigaOrdine.qta_prod).trigger("change");
self._ordiniSelezionatiApertura = self._modalBox.$div.find("input[id=cod_jcom]:checked")
.map((index, el) => _ojbc.B64JSON_parse($(el).parents("tr").attr("data-row")))
.toArray();
}
// TODO mostrare linee con ore disponibili
@@ -899,14 +904,20 @@ PopupOrdProd.prototype._onUpdate = async function () {
.map((index, el) => _ojbc.B64JSON_parse($(el).parents("tr").attr("data-row")))
.toArray();
const answer = await self.checkQtaOrdiniSel(formData);
const ordiniSelezionatiApertura = self._ordiniSelezionatiApertura;
const ordiniSelezionati = formData.ordiniSelezionati;
const ordiniDeselezionati = ordiniSelezionatiApertura.filter(a => !ordiniSelezionati.some(b => {
return a.gestione === b.gestione && a.data_ord === b.data_ord && a.num_ord === b.num_ord
}))
formData.ordiniDeselezionati = ordiniDeselezionati;
const answer = await self.checkQtaOrdiniSel(formData);
if (!answer) {
return;
}
const response = await self._checkMaterie();
if (response) {
new Ajax()
.post("updateOrdLav")

View File

@@ -12,8 +12,6 @@ SELECT dtb_ordt.cod_jcom,
ELSE dtb_ordr.colli_pedana END AS colli_pedana,
dtb_ordr.num_cnf,
dtb_ordr.partita_mag
/*SUM(CASE WHEN dtb_ordr.colli_pedana <> 0 THEN dtb_ordr.num_cnf / dtb_ordr.colli_pedana ELSE 0 END) AS pedane,*/
/*SUM(dtb_ordr.num_cnf) AS num_cnf*/
FROM dtb_ordt
INNER JOIN dtb_ordr ON dtb_ordt.data_ord = dtb_ordr.data_ord AND
dtb_ordt.num_ord = dtb_ordr.num_ord AND
@@ -26,5 +24,4 @@ WHERE dtb_ordt.gestione = 'V'
AND dtb_ordr.flag_evaso = 'I'
AND dtb_ordr.qta_evasa < dtb_ordr.qta_ord
AND dtb_ordr.cod_mart = '[cod_mart]'
/*GROUP BY dtb_ordr.colli_pedana,dtb_ordr.cod_tcol_ul, mtb_tcol.descrizione, dtb_ordt.cod_jcom, gtb_anag.rag_soc, gtb_anag.citta, gtb_anag.cod_anag, dtb_ordt.gestione, dtb_ordt.data_ord, dtb_ordt.num_ord*/
ORDER BY dtb_ordt.data_ord, dtb_ordt.num_ord

View File

@@ -45,7 +45,7 @@ PopupOrdProd.prototype._isNew = function () {
PopupOrdProd.prototype.open = function () {
const self = this;
const title = self._isNew() ? "NUOVO ORDINE DI PRODUZIONE <small>" + self._codMart + " <small>" + self._anag.descrizione + "</small></small>" : "Ordine di lavorazione n. <b>" + self._orderKey.num_ord + "</b> del " + self._orderKey.data_ord.unixtime_format("DD/MM/YYYY");
const title = self._isNew() ? "Nuovo ordine di Produzione <small>" + self._codMart + " <small>" + self._anag.descrizione + "</small></small>" : "Ordine di lavorazione n. <b>" + self._orderKey.num_ord + "</b> del " + self._orderKey.data_ord.unixtime_format("DD/MM/YYYY");
const ajax = new Ajax();
ajax.get("popup-ord-prod")

View File

@@ -10,7 +10,8 @@ SELECT dtb_ordt.cod_anag,
dtb_ordr.cod_mart,
dtb_ordr.descrizione_estesa,
dtb_ordt.flag_sospeso,
dtb_ordt.cod_mdep
dtb_ordt.cod_mdep,
dtb_ordr.partita_mag
FROM (SELECT jtb_dist_mate.cod_prod,
jtb_dist_mate.cod_mart,
jtb_dist_mate.qta_prod * jtb_dist_mate.rap_conv_prod /
@@ -43,5 +44,4 @@ WHERE s.cod_mart = '[codMart]'
AND dtb_ordt.flag_annulla = 'N'
AND dtb_ordr.flag_evaso = 'I'
AND dtb_ordt.gestione = 'V'
AND dtb_ordr.partita_mag IS NULL
ORDER BY flag_sospeso, cod_mdep DESC, data_cons, gtb_anag.rag_soc, data_ord, num_ord
ORDER BY dtb_ordr.partita_mag, flag_sospeso, cod_mdep DESC, data_cons, gtb_anag.rag_soc, data_ord, num_ord

View File

@@ -1,7 +1,7 @@
select mtb_depo.cod_mdep,
SELECT mtb_depo.cod_mdep,
mtb_depo.cod_mdep + ' - ' + mtb_depo.descrizione AS descrizione,
case WHEN (gtb_anag.part_iva = azienda.part_iva) then 1 else 0 end AS default_depo
from mtb_depo
left join gtb_anag on mtb_depo.cod_anag = gtb_anag.cod_anag,
CASE WHEN (gtb_anag.part_iva = azienda.part_iva) THEN 1 ELSE 0 END AS default_depo
FROM mtb_depo
LEFT JOIN gtb_anag ON mtb_depo.cod_anag = gtb_anag.cod_anag,
azienda
where mtb_depo.flag_movimentabile = 'S'
WHERE mtb_depo.flag_movimentabile = 'S'

View File

@@ -50,9 +50,9 @@ $(function () {
let data;
if ($this.hasClass("dl_pdfOrdine")) {
data = {key_ord: $tr.attr("data-order_key")};
data = {key_ord: $tr.getDataAttr("order_key")};
} else {
data = {key_doc: $this.attr("data-pdf_doc")};
data = {key_doc: $this.getDataAttr("pdf_doc")};
}
new Ajax()