Merge branch 'master' into test
gitea/salix/pipeline/head This commit looks good Details

This commit is contained in:
Guillermo Bonet 2024-03-05 12:37:06 +01:00
commit 85d3508848
11 changed files with 123 additions and 98 deletions

View File

@ -13,15 +13,15 @@ BEGIN
DECLARE vWarehouseIn INT; DECLARE vWarehouseIn INT;
DECLARE vWarehouseOut INT; DECLARE vWarehouseOut INT;
DECLARE vCalcVisible INT; DECLARE vCalcVisible INT;
DECLARE vInventoryDate DATE DEFAULT vn.getInventoryDate(); DECLARE vInventoryDate DATE DEFAULT getInventoryDate();
SELECT shipped, landed, warehouseInFk, warehouseOutFk SELECT shipped, landed, warehouseInFk, warehouseOutFk
INTO vDateShipped, vDateLanded, vWarehouseIn, vWarehouseOut INTO vDateShipped, vDateLanded, vWarehouseIn, vWarehouseOut
FROM vn.travel t FROM travel t
JOIN vn.entry e ON e.travelFk = t.id JOIN entry e ON e.travelFk = t.id
WHERE e.id = vSelf; WHERE e.id = vSelf;
CALL vn.rate_getPrices(vDateShipped, vWarehouseIn); CALL rate_getPrices(vDateShipped, vWarehouseIn);
-- Traslado en almacen origen -- Traslado en almacen origen
CREATE OR REPLACE TEMPORARY TABLE tBuy CREATE OR REPLACE TEMPORARY TABLE tBuy
@ -84,7 +84,7 @@ BEGIN
WHERE a.available WHERE a.available
ON DUPLICATE KEY UPDATE availableLanding = a.available; ON DUPLICATE KEY UPDATE availableLanding = a.available;
ELSE ELSE
CALL vn.item_getStock(vWarehouseOut, vDateShipped, NULL); CALL item_getStock(vWarehouseOut, vDateShipped, NULL);
CREATE OR REPLACE TEMPORARY TABLE tItem CREATE OR REPLACE TEMPORARY TABLE tItem
(UNIQUE INDEX i USING HASH (itemFk)) (UNIQUE INDEX i USING HASH (itemFk))
@ -97,7 +97,7 @@ BEGIN
FROM tmp.itemList; FROM tmp.itemList;
END IF; END IF;
CALL vn.buyUltimateFromInterval(vWarehouseIn,vInventoryDate, vDateLanded); CALL buyUltimateFromInterval(vWarehouseIn,vInventoryDate, vDateLanded);
CREATE OR REPLACE TEMPORARY TABLE tTransfer CREATE OR REPLACE TEMPORARY TABLE tTransfer
ENGINE = MEMORY ENGINE = MEMORY
@ -145,26 +145,26 @@ BEGIN
b.id buyFkOrigin, b.id buyFkOrigin,
pa.returnCost, pa.returnCost,
b.weight b.weight
FROM vn.item i FROM item i
JOIN tItem ti ON ti.itemFk = i.id JOIN tItem ti ON ti.itemFk = i.id
LEFT JOIN vn.producer p ON p.id = i.producerFk LEFT JOIN producer p ON p.id = i.producerFk
LEFT JOIN vn.itemType it ON it.id = i.typeFk LEFT JOIN itemType it ON it.id = i.typeFk
JOIN vn.itemCategory ic ON ic.id = it.categoryFk JOIN itemCategory ic ON ic.id = it.categoryFk
LEFT JOIN vn.origin o ON o.id = i.originFk LEFT JOIN origin o ON o.id = i.originFk
LEFT JOIN tBuy lb ON lb.itemFk = i.id LEFT JOIN tBuy lb ON lb.itemFk = i.id
LEFT JOIN vn.buy b ON b.id = lb.buyFk LEFT JOIN buy b ON b.id = lb.buyFk
LEFT JOIN vn.packaging pa ON pa.id = b.packagingFk LEFT JOIN packaging pa ON pa.id = b.packagingFk
LEFT JOIN vn.entry e2 ON e2.id = b.entryFk LEFT JOIN entry e2 ON e2.id = b.entryFk
LEFT JOIN vn.supplier s ON s.id = e2.supplierFk LEFT JOIN supplier s ON s.id = e2.supplierFk
LEFT JOIN vn.entry e ON e.id = vSelf LEFT JOIN entry e ON e.id = vSelf
LEFT JOIN vn.travel tr ON tr.id = e.travelFk LEFT JOIN travel tr ON tr.id = e.travelFk
LEFT JOIN vn.agencyMode am ON am.id = tr.agencyModeFk LEFT JOIN agencyMode am ON am.id = tr.agencyModeFk
LEFT JOIN vn.buy b2 ON b2.itemFk = i.id LEFT JOIN buy b2 ON b2.itemFk = i.id
AND b2.entryFk = vSelf AND b2.entryFk = vSelf
LEFT JOIN vn.packaging pa2 ON pa2.id = b.packagingFk LEFT JOIN packaging pa2 ON pa2.id = b.packagingFk
LEFT JOIN tmp.rate r ON TRUE LEFT JOIN tmp.rate r ON TRUE
LEFT JOIN tmp.buyUltimateFromInterval bufi ON bufi.itemFk = i.id LEFT JOIN tmp.buyUltimateFromInterval bufi ON bufi.itemFk = i.id
LEFT JOIN vn.buy b3 ON b3.id = bufi.buyFk LEFT JOIN buy b3 ON b3.id = bufi.buyFk
WHERE ic.display WHERE ic.display
AND NOT e.isRaid AND NOT e.isRaid
AND (ti.visible OR ti.available) AND (ti.visible OR ti.available)
@ -172,11 +172,6 @@ BEGIN
CREATE INDEX tIndex USING HASH ON tTransfer (itemFk); CREATE INDEX tIndex USING HASH ON tTransfer (itemFk);
SET @carriage := 0;
SET @comission := 0;
SET @packaging := 0;
SET @rate3 := 0;
SET @cost := 0;
SELECT *, SELECT *,
quantity - MOD(quantity , `grouping`) subQuantity, quantity - MOD(quantity , `grouping`) subQuantity,
MOD(quantity, `grouping`) soll, MOD(quantity, `grouping`) soll,

View File

@ -1,42 +1,68 @@
DELIMITER $$ DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`itemProposal`(vItemFk INT, vTicketFk INT,vShowType BOOL) CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`itemProposal`(
vSelf INT,
vTicketFk INT,
vShowType BOOL
)
BEGIN BEGIN
/** /**
* Propone articulos disponible ordenado, con la cantidad de veces usado y segun sus caracteristicas * Propone articulos disponibles ordenados, con la cantidad
* * de veces usado y segun sus caracteristicas.
* @param vItemFk item id *
* @param vTicketFk ticket id * @param vSelf Id de artículo
* @param vShowType mostrar tipos * @param vTicketFk Id de ticket
*/ * @param vShowType Mostrar tipos
*/
DECLARE vWarehouseFk INT; DECLARE vWarehouseFk INT;
DECLARE vShipped DATE; DECLARE vShipped DATE;
DECLARE vCalcFk INT; DECLARE vCalcFk INT;
DECLARE vTypeFk INT; DECLARE vTypeFk INT;
DECLARE vPriority INT DEFAULT 1;
DECLARE vTag1 VARCHAR(25); DECLARE vTag1 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
DECLARE vTag5 VARCHAR(25); DECLARE vTag5 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
DECLARE vTag6 VARCHAR(25); DECLARE vTag6 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
DECLARE vTag7 VARCHAR(25); DECLARE vTag7 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
DECLARE vTag8 VARCHAR(25); DECLARE vTag8 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
DECLARE vValue1 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
DECLARE vValue5 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
DECLARE vValue6 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
DECLARE vValue7 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
DECLARE vValue8 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
DECLARE vValue1 VARCHAR(50); SELECT warehouseFk, shipped
DECLARE vValue5 VARCHAR(50); INTO vWarehouseFk, vShipped
DECLARE vValue6 VARCHAR(50); FROM ticket
DECLARE vValue7 VARCHAR(50);
DECLARE vValue8 VARCHAR(50);
SELECT warehouseFk, shipped INTO vWarehouseFk, vShipped
FROM vn.ticket
WHERE id = vTicketFk; WHERE id = vTicketFk;
SELECT typeFk, tag5, value5, tag6, value6, tag7, value7, tag8, value8, t1.name, it1.value SELECT typeFk,
INTO vTypeFk, vTag5, vValue5, vTag6, vValue6, vTag7, vValue7, vTag8, vValue8, vTag1, vValue1 tag5,
FROM vn.item i value5,
LEFT JOIN vn.itemTag it1 ON it1.itemFk = i.id AND it1.priority = 1 tag6,
LEFT JOIN vn.tag t1 ON t1.id = it1.tagFk value6,
WHERE i.id = vItemFk; tag7,
value7,
tag8,
value8,
t.name,
it.value
INTO vTypeFk,
vTag5,
vValue5,
vTag6,
vValue6,
vTag7,
vValue7,
vTag8,
vValue8,
vTag1,
vValue1
FROM item i
LEFT JOIN itemTag it ON it.itemFk = i.id
AND it.priority = vPriority
LEFT JOIN tag t ON t.id = it.tagFk
WHERE i.id = vSelf;
CALL cache.available_refresh(vCalcFk, FALSE, vWarehouseFk, vShipped); CALL cache.available_refresh(vCalcFk, FALSE, vWarehouseFk, vShipped);
@ -45,43 +71,46 @@ BEGIN
i.subName, i.subName,
i.tag5, i.tag5,
i.value5, i.value5,
(i.value5 <=> vValue5 COLLATE utf8_general_ci) match5, (i.value5 <=> vValue5) match5,
i.tag6, i.tag6,
i.value6, i.value6,
(i.value6 <=> vValue6 COLLATE utf8_general_ci) match6, (i.value6 <=> vValue6) match6,
i.tag7, i.tag7,
i.value7, i.value7,
(i.value7 <=> vValue7 COLLATE utf8_general_ci) match7, (i.value7 <=> vValue7) match7,
i.tag8, i.tag8,
i.value8, i.value8,
(i.value8 <=> vValue8 COLLATE utf8_general_ci) match8, (i.value8 <=> vValue8) match8,
a.available, a.available,
IFNULL(ip.counter,0) counter, IFNULL(ip.counter, 0) `counter`,
IF(b.groupingMode = 1, b.grouping, b.packing) as minQuantity, IF(b.groupingMode = 1, b.grouping, b.packing) minQuantity,
iss.visible located iss.visible located
FROM item i FROM item i
JOIN cache.available a ON a.item_id = i.id JOIN cache.available a ON a.item_id = i.id
LEFT JOIN itemProposal ip ON ip.mateFk = i.id AND ip.itemFk = vItemFk LEFT JOIN itemProposal ip ON ip.mateFk = i.id
LEFT JOIN itemTag it1 ON it1.itemFk = i.id AND it1.priority = 1 AND ip.itemFk = vSelf
LEFT JOIN tag t1 ON t1.id = it1.tagFk LEFT JOIN itemTag it ON it.itemFk = i.id
LEFT JOIN cache.last_buy lb ON lb.item_id = i.id AND lb.warehouse_id = vWarehouseFk AND it.priority = vPriority
LEFT JOIN tag t ON t.id = it.tagFk
LEFT JOIN cache.last_buy lb ON lb.item_id = i.id
AND lb.warehouse_id = vWarehouseFk
LEFT JOIN buy b ON b.id = lb.buy_id LEFT JOIN buy b ON b.id = lb.buy_id
LEFT JOIN itemShelvingStock iss ON iss.itemFk = i.id AND iss.warehouseFk = vWarehouseFk LEFT JOIN itemShelvingStock iss ON iss.itemFk = i.id
AND iss.warehouseFk = vWarehouseFk
WHERE a.calc_id = vCalcFk WHERE a.calc_id = vCalcFk
AND available > 0 AND a.available > 0
AND IF(vShowType,i.typeFk = vTypeFk,true) AND IF(vShowType, i.typeFk = vTypeFk, TRUE)
AND i.id != vItemFk AND i.id <> vSelf
ORDER BY counter DESC, ORDER BY `counter` DESC,
(t1.name = vTag1 COLLATE utf8_general_ci) DESC, (t.name = vTag1) DESC,
(it1.value = vValue1 COLLATE utf8_general_ci) DESC, (it.value = vValue1) DESC,
(i.tag5 = vTag5 COLLATE utf8_general_ci) DESC, (i.tag5 = vTag5) DESC,
(i.value5 = vValue5 COLLATE utf8_general_ci) DESC, match5 DESC,
(i.tag6 = vTag6 COLLATE utf8_general_ci) DESC, (i.tag6 = vTag6) DESC,
(i.value6 = vValue6 COLLATE utf8_general_ci) DESC, match6 DESC,
(i.tag7 = vTag7 COLLATE utf8_general_ci) DESC, (i.tag7 = vTag7) DESC,
(i.value7 = vValue7 COLLATE utf8_general_ci) DESC, match7 DESC,
(i.tag8 = vTag8 COLLATE utf8_general_ci) DESC, (i.tag8 = vTag8) DESC,
(i.value8 = vValue8 COLLATE utf8_general_ci) DESC; match8 DESC;
END$$ END$$
DELIMITER ; DELIMITER ;

View File

@ -15,7 +15,7 @@ BEGIN
JOIN agencyMode am ON am.id = t.agencyModeFk JOIN agencyMode am ON am.id = t.agencyModeFk
LEFT JOIN ticketState ts ON ts.ticketFk = t.id LEFT JOIN ticketState ts ON ts.ticketFk = t.id
JOIN alertLevel al ON al.id = ts.alertLevel JOIN alertLevel al ON al.id = ts.alertLevel
WHERE al.code = 'PACKED' OR (am.code = 'refund' AND al.code != 'delivered') WHERE (al.code = 'PACKED' OR (am.code = 'refund' AND al.code != 'delivered'))
AND t.id = vTicketFk AND t.id = vTicketFk
AND t.refFk IS NULL AND t.refFk IS NULL
GROUP BY t.id); GROUP BY t.id);

View File

@ -0,0 +1,6 @@
-- Place your SQL code here
ALTER TABLE IF EXISTS vn2008.dock__ RENAME vn2008.dock;
ALTER TABLE IF EXISTS vn2008.dock COMMENT='';
ALTER TABLE IF EXISTS vn2008.Tramos__ RENAME vn2008.Tramos;
ALTER TABLE IF EXISTS vn2008.Tramos COMMENT='';

View File

@ -0,0 +1 @@
ALTER TABLE vn.warehouse AUTO_INCREMENT=92;

View File

@ -346,5 +346,6 @@
"You cannot update these fields": "No puedes actualizar estos campos", "You cannot update these fields": "No puedes actualizar estos campos",
"CountryFK cannot be empty": "El país no puede estar vacío", "CountryFK cannot be empty": "El país no puede estar vacío",
"Cmr file does not exist": "El archivo del cmr no existe", "Cmr file does not exist": "El archivo del cmr no existe",
"You are not allowed to modify the alias": "No estás autorizado a modificar el alias" "You are not allowed to modify the alias": "No estás autorizado a modificar el alias",
"The address of the customer must have information about Incoterms and Customs Agent": "El consignatario del cliente debe tener informado Incoterms y Agente de aduanas"
} }

View File

@ -80,6 +80,6 @@ module.exports = Self => {
const content = toCSV(sales); const content = toCSV(sales);
return [content, 'text/csv', `inline; filename="doc-${reference}.pdf"`]; return [content, 'text/csv', `inline; filename="doc-${reference}.csv"`];
}; };
}; };

View File

@ -79,6 +79,6 @@ module.exports = Self => {
ORDER BY s.ticketFk, s.created`, [id]); ORDER BY s.ticketFk, s.created`, [id]);
const content = toCSV(sales); const content = toCSV(sales);
return [content, 'text/csv', `inline; filename="doc-${id}.pdf"`]; return [content, 'text/csv', `inline; filename="doc-${id}.csv"`];
}; };
}; };

View File

@ -40,17 +40,6 @@ table.repeatable > tbody > tr > td {
padding-top: 0.5em; padding-top: 0.5em;
} }
section.text-area {
margin-top: 1em;
padding: 0.19em;
padding-left: 1em;
padding-right: 1em;
background-color: #e5e5e5;
& > p {
word-break: break-all;
}
}
.route-block { .route-block {
margin-bottom: 100px; margin-bottom: 100px;
page-break-after: always; page-break-after: always;

View File

@ -128,8 +128,8 @@
</tr> </tr>
</tbody> </tbody>
</table> </table>
<div v-if="ticket.description" class="text-area"> <div v-if="ticket.description">
<p>{{ticket.description}}</p> <p style="word-break: break-all">{{ticket.description}}</p>
</div> </div>
</div> </div>
</div> </div>

View File

@ -1,4 +1,5 @@
const vnReport = require('../../../core/mixins/vn-report.js'); const vnReport = require('../../../core/mixins/vn-report.js');
const UserError = require('vn-loopback/util/user-error');
module.exports = { module.exports = {
name: 'invoice-incoterms', name: 'invoice-incoterms',
@ -7,7 +8,10 @@ module.exports = {
this.invoice = await this.findOneFromDef('invoice', [this.reference]); this.invoice = await this.findOneFromDef('invoice', [this.reference]);
this.checkMainEntity(this.invoice); this.checkMainEntity(this.invoice);
this.client = await this.findOneFromDef('client', [this.reference]); this.client = await this.findOneFromDef('client', [this.reference]);
this.incoterms = await this.findOneFromDef('incoterms', [this.reference, this.reference, this.reference, this.reference]); this.incoterms =
await this.findOneFromDef('incoterms', [this.reference, this.reference, this.reference, this.reference]);
if (!this.incoterms)
throw new UserError(`The address of the customer must have information about Incoterms and Customs Agent`);
}, },
props: { props: {
reference: { reference: {