From b445d745a534a611e77ed259f1abe4cc75500b2e Mon Sep 17 00:00:00 2001 From: Pako Date: Thu, 28 Mar 2024 11:40:18 +0100 Subject: [PATCH 1/8] cambios --- .../vn/procedures/sale_boxPickingPrint.sql | 283 ++++++++++++++++++ 1 file changed, 283 insertions(+) create mode 100644 db/routines/vn/procedures/sale_boxPickingPrint.sql diff --git a/db/routines/vn/procedures/sale_boxPickingPrint.sql b/db/routines/vn/procedures/sale_boxPickingPrint.sql new file mode 100644 index 0000000000..e979ee0b4d --- /dev/null +++ b/db/routines/vn/procedures/sale_boxPickingPrint.sql @@ -0,0 +1,283 @@ +DELIMITER $$ +$$ +CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE vn.sale_boxPickingPrint( + IN vPrinterFk INT, + IN vSaleFk INT, + IN vPacking INT, + IN vSectorFk INT, + IN vUserFk INT, + IN vPackagingFk VARCHAR(10), + IN vPackingSiteFk INT) +BEGIN +/** Splits a line of sale to a different ticket and prints the transport sticker + */ + DECLARE vAgencyModeFk INT; + DECLARE vConcept VARCHAR(30); + DECLARE vExpeditionFk INT; + DECLARE vItemFk INT; + DECLARE vItemShelvingFk INT; + DECLARE vItemShelvingSaleFk INT; + DECLARE vItemShelvingSaleFk_old INT; + DECLARE vLastExpeditionTimeStamp DATETIME; + DECLARE vMaxPhoneLength INT DEFAULT 11; + DECLARE vMaxStreetLength INT DEFAULT 36; + DECLARE vNewSaleFk INT; + DECLARE vNewTicketFk INT; + DECLARE vParkingCode VARCHAR(10); + DECLARE vQuantity INT; + DECLARE vRemainder INT DEFAULT 0; + DECLARE vRemainderSaleFk INT; + DECLARE vShelving VARCHAR(10); + DECLARE vTicketFk INT; + + SELECT s.quantity, + s.quantity MOD vPacking, + s.ticketFk, + s.itemFk, + s.concept + INTO vQuantity, + vRemainder, + vTicketFk, + vItemFk, + vConcept + FROM sale s + WHERE s.id = vSaleFk; + + IF vRemainder THEN + UPDATE sale SET quantity = quantity - vRemainder WHERE id = vSaleFk; + + INSERT INTO sale(ticketFk, itemFk, quantity, price, discount, concept) + SELECT ticketFk, itemFk, vRemainder, price, discount, concept + FROM sale + WHERE id = vSaleFk; + + SET vRemainderSaleFk = LAST_INSERT_ID(); + + INSERT INTO saleComponent(saleFk, componentFk, value) + SELECT vRemainderSaleFk, componentFk, value + FROM saleComponent + WHERE saleFk = vSaleFk; + END IF; + +w1: WHILE vQuantity >= vPacking DO + + SET vItemShelvingFk = NULL; + + SELECT sub.id + INTO vItemShelvingFk + FROM productionConfig pc + JOIN ( + SELECT ish.id, + ish.visible - IFNULL(SUM(iss.quantity),0) available, + p.pickingOrder, + ish.created + FROM itemShelving ish + JOIN shelving sh ON sh.code = ish.shelvingFk + JOIN parking p ON p.id = sh.parkingFk + LEFT JOIN itemShelvingSale iss + ON iss.itemShelvingFk = ish.id + AND iss.created >= CURDATE() + AND iss.isPicked = FALSE + WHERE ish.itemFk = vItemFk + AND p.sectorFk = vSectorFk + GROUP BY ish.id + HAVING available >= vPacking) sub + ORDER BY IF(pc.orderMode = 'Location',sub.pickingOrder, sub.created) + LIMIT 1; + + IF vItemShelvingFk THEN + INSERT INTO itemShelvingSale + SET itemShelvingFk = vItemShelvingFk, + saleFk = vSaleFk, + quantity = vPacking, + userFk = vUserFk, + isPicked = TRUE; + + SET vItemShelvingSaleFk = LAST_INSERT_ID(); + + UPDATE sale SET isPicked = FALSE WHERE id = vSaleFk; + ELSE + LEAVE w1; + END IF; + + SET vNewTicketFk = NULL; + + SELECT MAX(t.id) INTO vNewTicketFk + FROM ticket t + JOIN ticketLastState tls ON tls.ticketFk = t.id + JOIN (SELECT addressFk, clientFk, date(shipped) shipped, warehouseFk + FROM ticket + WHERE id = vTicketFk) tt + ON tt.addressFk = t.addressFk + AND tt.clientFk = t.clientFk + AND t.shipped BETWEEN tt.shipped AND util.dayend(tt.shipped) + AND t.warehouseFk = tt.warehouseFk + WHERE tls.name = 'Encajado' ; + + IF ISNULL(vNewTicketFk) THEN + INSERT INTO ticket( clientFk, + shipped, + addressFk, + agencyModeFk, + nickname, + warehouseFk, + companyFk, + landed, + zoneFk, + zonePrice, + zoneBonus, + routeFk, + priority, + hasPriority, + clonedFrom) + SELECT clientFk, + shipped, + addressFk, + agencyModeFk, + nickname, + warehouseFk, + companyFk, + landed, + zoneFk, + zonePrice, + zoneBonus, + routeFk, + priority, + hasPriority, + id + FROM ticket + WHERE id = vTicketFk; + + SET vNewTicketFk = LAST_INSERT_ID(); + + INSERT INTO ticketTracking(ticketFk, stateFk, userFk) + SELECT vNewTicketFk, id, vUserFk + FROM state + WHERE code = 'PACKED'; + END IF; + + UPDATE sale SET quantity = quantity - vPacking WHERE id = vSaleFk; + + UPDATE itemShelving SET visible = visible - vPacking WHERE id = vItemShelvingFk; + + SET vNewSaleFk = NULL; + + SELECT MAX(id) INTO vNewSaleFk + FROM sale + WHERE ticketFk = vNewTicketFk + AND itemFk = vItemFk; + + IF vNewSaleFk THEN + UPDATE sale + SET quantity = quantity + vPacking + WHERE id = vNewSaleFk; + + SET vItemShelvingSaleFk_old = NULL; + + SELECT MAX(id) INTO vItemShelvingSaleFk_old + FROM itemShelvingSale + WHERE itemShelvingFk = vItemShelvingFk + AND saleFk = vNewSaleFk; + + IF vItemShelvingSaleFk_old THEN + UPDATE itemShelvingSale + SET quantity = quantity + vPacking + WHERE id = vItemShelvingSaleFk_old; + + DELETE FROM itemShelvingSale + WHERE id = vItemShelvingSaleFk; + + SET vItemShelvingSaleFk = vItemShelvingSaleFk_old; + ELSE + UPDATE itemShelvingSale + SET saleFk = vNewSaleFk + WHERE id = vItemShelvingSaleFk; + END IF; + ELSE + INSERT INTO sale(ticketFk, itemFk, concept, quantity, discount, price) + SELECT vNewTicketFk, itemFk, concept, vPacking, discount, price + FROM sale + WHERE id = vSaleFk; + + SET vNewSaleFk = LAST_INSERT_ID(); + + INSERT INTO saleComponent(saleFk, componentFk, value, isGreuge) + SELECT vNewSaleFk, componentFk, value, isGreuge + FROM saleComponent + WHERE saleFk = vSaleFk; + + UPDATE itemShelvingSale + SET saleFk = vNewSaleFk + WHERE id = vItemShelvingSaleFk; + END IF; + + INSERT IGNORE INTO saleTracking(saleFk, isChecked, workerFk, stateFk) + SELECT vNewSaleFk, TRUE, vUserFk, id + FROM state + WHERE code = 'PREPARED'; + + SELECT agencyModeFk INTO vAgencyModeFk + FROM ticket + WHERE id = vNewTicketFk; + + INSERT INTO expedition( + agencyModeFk, + ticketFk, + freightItemFk, + workerFk, + packagingFk, + itemPackingTypeFk, + hostFk, + packingSiteFk, + monitorId, + started, + ended + ) + SELECT vAgencyModeFk, + vNewTicketFk, + i.id, + vUserFk, + vPackagingFk, + ps.code, + h.code, + vPackingSiteFk, + ps.monitorId, + IFNULL(vLastExpeditionTimeStamp, NOW()), + NOW() + FROM packingSite ps + JOIN host h ON h.id = ps.hostFk + JOIN item i ON i.name = 'Shipping cost' + WHERE ps.id = vPackingSiteFk + LIMIT 1; + + SET vExpeditionFk = LAST_INSERT_ID(); + + SET vLastExpeditionTimeStamp = NOW(); + + CALL dipole.expedition_Add(vExpeditionFk,vPrinterFk, TRUE); + + SELECT shelvingFk, p.code + INTO vShelving, vParkingCode + FROM itemShelving ish + JOIN shelving sh ON sh.code = ish.shelvingFk + JOIN parking p ON p.id = sh.parkingFk + WHERE ish.id = vItemShelvingFk; + + UPDATE dipole.expedition_PrintOut + SET isPrinted = FALSE, + itemFk = vItemFk, + quantity = vPacking, + longName = vConcept, + shelvingFk = vShelving, + parkingCode = vParkingCode, + phone = RIGHT(phone,vMaxPhoneLength), + street = RIGHT(street, vMAxStreetLength) + WHERE expeditionFk = vExpeditionFk; + + DELETE FROM sale + WHERE quantity = 0 + AND id = vSaleFk; + END WHILE; + +END$$ +DELIMITER ; \ No newline at end of file From 1d906c993b8b0ebff3f9e5ba455781aa75a2ea7e Mon Sep 17 00:00:00 2001 From: Pako Date: Thu, 28 Mar 2024 12:43:13 +0100 Subject: [PATCH 2/8] portes --- db/routines/vn/procedures/sale_boxPickingPrint.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/routines/vn/procedures/sale_boxPickingPrint.sql b/db/routines/vn/procedures/sale_boxPickingPrint.sql index e979ee0b4d..6cd8eeb205 100644 --- a/db/routines/vn/procedures/sale_boxPickingPrint.sql +++ b/db/routines/vn/procedures/sale_boxPickingPrint.sql @@ -246,7 +246,7 @@ w1: WHILE vQuantity >= vPacking DO NOW() FROM packingSite ps JOIN host h ON h.id = ps.hostFk - JOIN item i ON i.name = 'Shipping cost' + JOIN item i ON i.name = 'Porte Caja' WHERE ps.id = vPackingSiteFk LIMIT 1; From c942786783ea8bc9650e20ba690fcf095e98624b Mon Sep 17 00:00:00 2001 From: Pako Date: Thu, 28 Mar 2024 14:54:30 +0100 Subject: [PATCH 3/8] pruebas --- .../vn/procedures/boxPicking_print.sql | 22 +++++++++++++------ .../vn/procedures/sale_boxPickingPrint.sql | 14 ++++++------ 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/db/routines/vn/procedures/boxPicking_print.sql b/db/routines/vn/procedures/boxPicking_print.sql index 5eea4ee1ed..31485be1d1 100644 --- a/db/routines/vn/procedures/boxPicking_print.sql +++ b/db/routines/vn/procedures/boxPicking_print.sql @@ -59,6 +59,8 @@ BEGIN WHERE saleFk = vSaleFk; END IF; +SELECT vQuantity , vPacking; + w1: WHILE vQuantity >= vPacking DO SET vItemShelvingFk = NULL; @@ -86,13 +88,13 @@ w1: WHILE vQuantity >= vPacking DO LIMIT 1; IF vItemShelvingFk THEN - INSERT INTO itemShelvingSale + /* INSERT INTO itemShelvingSale SET itemShelvingFk = vItemShelvingFk, saleFk = vSaleFk, quantity = vPacking, userFk = vUserFk, isPicked = TRUE; - +*/ SET vItemShelvingSaleFk = LAST_INSERT_ID(); UPDATE sale SET isPicked = FALSE WHERE id = vSaleFk; @@ -188,10 +190,12 @@ w1: WHILE vQuantity >= vPacking DO WHERE id = vItemShelvingSaleFk; SET vItemShelvingSaleFk = vItemShelvingSaleFk_old; - ELSE - UPDATE itemShelvingSale + /*ELSE + + * UPDATE itemShelvingSale SET saleFk = vNewSaleFk WHERE id = vItemShelvingSaleFk; + */ END IF; ELSE INSERT INTO sale(ticketFk, itemFk, concept, quantity, discount, price) @@ -206,9 +210,11 @@ w1: WHILE vQuantity >= vPacking DO FROM saleComponent WHERE saleFk = vSaleFk; - UPDATE itemShelvingSale + /* + * UPDATE itemShelvingSale SET saleFk = vNewSaleFk WHERE id = vItemShelvingSaleFk; + */ END IF; INSERT IGNORE INTO saleTracking(saleFk, isChecked, workerFk, stateFk) @@ -231,7 +237,8 @@ w1: WHILE vQuantity >= vPacking DO packingSiteFk, monitorId, started, - ended + ended, + counter ) SELECT vAgencyModeFk, vNewTicketFk, @@ -243,7 +250,8 @@ w1: WHILE vQuantity >= vPacking DO vPackingSiteFk, ps.monitorId, IFNULL(vLastExpeditionTimeStamp, NOW()), - NOW() + NOW(), + 0 FROM packingSite ps JOIN host h ON h.id = ps.hostFk JOIN item i ON i.name = 'Shipping cost' diff --git a/db/routines/vn/procedures/sale_boxPickingPrint.sql b/db/routines/vn/procedures/sale_boxPickingPrint.sql index 6cd8eeb205..7872ff000a 100644 --- a/db/routines/vn/procedures/sale_boxPickingPrint.sql +++ b/db/routines/vn/procedures/sale_boxPickingPrint.sql @@ -86,7 +86,7 @@ w1: WHILE vQuantity >= vPacking DO LIMIT 1; IF vItemShelvingFk THEN - INSERT INTO itemShelvingSale + /* INSERT INTO itemShelvingSale SET itemShelvingFk = vItemShelvingFk, saleFk = vSaleFk, quantity = vPacking, @@ -94,7 +94,7 @@ w1: WHILE vQuantity >= vPacking DO isPicked = TRUE; SET vItemShelvingSaleFk = LAST_INSERT_ID(); - +*/ UPDATE sale SET isPicked = FALSE WHERE id = vSaleFk; ELSE LEAVE w1; @@ -188,10 +188,10 @@ w1: WHILE vQuantity >= vPacking DO WHERE id = vItemShelvingSaleFk; SET vItemShelvingSaleFk = vItemShelvingSaleFk_old; - ELSE + /* ELSE UPDATE itemShelvingSale SET saleFk = vNewSaleFk - WHERE id = vItemShelvingSaleFk; + WHERE id = vItemShelvingSaleFk; */ END IF; ELSE INSERT INTO sale(ticketFk, itemFk, concept, quantity, discount, price) @@ -206,9 +206,9 @@ w1: WHILE vQuantity >= vPacking DO FROM saleComponent WHERE saleFk = vSaleFk; - UPDATE itemShelvingSale - SET saleFk = vNewSaleFk - WHERE id = vItemShelvingSaleFk; + /* UPDATE itemShelvingSale + SET saleFk = vNewSaleFk */ + END IF; INSERT IGNORE INTO saleTracking(saleFk, isChecked, workerFk, stateFk) From 9aae9677e66b3208fd66b1399a578cf1974f6ef2 Mon Sep 17 00:00:00 2001 From: Pako Date: Mon, 1 Apr 2024 08:43:26 +0200 Subject: [PATCH 4/8] modificaciones --- .../vn/procedures/sale_boxPickingPrint.sql | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/db/routines/vn/procedures/sale_boxPickingPrint.sql b/db/routines/vn/procedures/sale_boxPickingPrint.sql index 7872ff000a..8b7f8ecbe6 100644 --- a/db/routines/vn/procedures/sale_boxPickingPrint.sql +++ b/db/routines/vn/procedures/sale_boxPickingPrint.sql @@ -61,6 +61,8 @@ BEGIN w1: WHILE vQuantity >= vPacking DO + SET vQuantity = vQuantity - vPacking; + SET vItemShelvingFk = NULL; SELECT sub.id @@ -86,7 +88,7 @@ w1: WHILE vQuantity >= vPacking DO LIMIT 1; IF vItemShelvingFk THEN - /* INSERT INTO itemShelvingSale + INSERT INTO itemShelvingSale SET itemShelvingFk = vItemShelvingFk, saleFk = vSaleFk, quantity = vPacking, @@ -94,7 +96,7 @@ w1: WHILE vQuantity >= vPacking DO isPicked = TRUE; SET vItemShelvingSaleFk = LAST_INSERT_ID(); -*/ + UPDATE sale SET isPicked = FALSE WHERE id = vSaleFk; ELSE LEAVE w1; @@ -188,10 +190,10 @@ w1: WHILE vQuantity >= vPacking DO WHERE id = vItemShelvingSaleFk; SET vItemShelvingSaleFk = vItemShelvingSaleFk_old; - /* ELSE + ELSE UPDATE itemShelvingSale SET saleFk = vNewSaleFk - WHERE id = vItemShelvingSaleFk; */ + WHERE id = vItemShelvingSaleFk; END IF; ELSE INSERT INTO sale(ticketFk, itemFk, concept, quantity, discount, price) @@ -206,9 +208,10 @@ w1: WHILE vQuantity >= vPacking DO FROM saleComponent WHERE saleFk = vSaleFk; - /* UPDATE itemShelvingSale - SET saleFk = vNewSaleFk */ - + UPDATE itemShelvingSale + SET saleFk = vNewSaleFk + WHERE id = vItemShelvingSaleFk; + END IF; INSERT IGNORE INTO saleTracking(saleFk, isChecked, workerFk, stateFk) @@ -277,6 +280,7 @@ w1: WHILE vQuantity >= vPacking DO DELETE FROM sale WHERE quantity = 0 AND id = vSaleFk; + END WHILE; END$$ From 98b1e933f7c0c390440b04ef6f8ad0edab66f542 Mon Sep 17 00:00:00 2001 From: Pako Date: Mon, 1 Apr 2024 08:46:07 +0200 Subject: [PATCH 5/8] prova --- db/routines/vn/procedures/sale_boxPickingPrint.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/routines/vn/procedures/sale_boxPickingPrint.sql b/db/routines/vn/procedures/sale_boxPickingPrint.sql index 8b7f8ecbe6..ae0c6451ee 100644 --- a/db/routines/vn/procedures/sale_boxPickingPrint.sql +++ b/db/routines/vn/procedures/sale_boxPickingPrint.sql @@ -58,7 +58,7 @@ BEGIN FROM saleComponent WHERE saleFk = vSaleFk; END IF; - +/* res */ w1: WHILE vQuantity >= vPacking DO SET vQuantity = vQuantity - vPacking; From 547df4704922b475341a9ddffa33e984a619eb22 Mon Sep 17 00:00:00 2001 From: Pako Date: Mon, 1 Apr 2024 08:47:16 +0200 Subject: [PATCH 6/8] delete old proc --- .../vn/procedures/boxPicking_print.sql | 291 ------------------ 1 file changed, 291 deletions(-) delete mode 100644 db/routines/vn/procedures/boxPicking_print.sql diff --git a/db/routines/vn/procedures/boxPicking_print.sql b/db/routines/vn/procedures/boxPicking_print.sql deleted file mode 100644 index 31485be1d1..0000000000 --- a/db/routines/vn/procedures/boxPicking_print.sql +++ /dev/null @@ -1,291 +0,0 @@ -DELIMITER $$ -$$ -CREATE OR REPLACE PROCEDURE vn.sale_boxPickingPrint( - IN vPrinterFk INT, - IN vSaleFk INT, - IN vPacking INT, - IN vSectorFk INT, - IN vUserFk INT, - IN vPackagingFk INT, - IN vPackingSiteFk INT) -BEGIN -/** Splits a line of sale to a different ticket and prints the transport sticker - */ - DECLARE vAgencyModeFk INT; - DECLARE vConcept VARCHAR(30); - DECLARE vExpeditionFk INT; - DECLARE vItemFk INT; - DECLARE vItemShelvingFk INT; - DECLARE vItemShelvingSaleFk INT; - DECLARE vItemShelvingSaleFk_old INT; - DECLARE vLastExpeditionTimeStamp DATETIME; - DECLARE vMaxPhoneLength INT DEFAULT 11; - DECLARE vMaxStreetLength INT DEFAULT 36; - DECLARE vNewSaleFk INT; - DECLARE vNewTicketFk INT; - DECLARE vParkingCode VARCHAR(10); - DECLARE vQuantity INT; - DECLARE vRemainder INT DEFAULT 0; - DECLARE vRemainderSaleFk INT; - DECLARE vShelving VARCHAR(10); - DECLARE vTicketFk INT; - - SELECT s.quantity, - s.quantity MOD vPacking, - s.ticketFk, - s.itemFk, - s.concept - INTO vQuantity, - vRemainder, - vTicketFk, - vItemFk, - vConcept - FROM sale s - WHERE s.id = vSaleFk; - - IF vRemainder THEN - UPDATE sale SET quantity = quantity - vRemainder WHERE id = vSaleFk; - - INSERT INTO sale(ticketFk, itemFk, quantity, price, discount, concept) - SELECT ticketFk, itemFk, vRemainder, price, discount, concept - FROM sale - WHERE id = vSaleFk; - - SET vRemainderSaleFk = LAST_INSERT_ID(); - - INSERT INTO saleComponent(saleFk, componentFk, value) - SELECT vRemainderSaleFk, componentFk, value - FROM saleComponent - WHERE saleFk = vSaleFk; - END IF; - -SELECT vQuantity , vPacking; - -w1: WHILE vQuantity >= vPacking DO - - SET vItemShelvingFk = NULL; - - SELECT sub.id - INTO vItemShelvingFk - FROM productionConfig pc - JOIN ( - SELECT ish.id, - ish.visible - IFNULL(SUM(iss.quantity),0) available, - p.pickingOrder, - ish.created - FROM itemShelving ish - JOIN shelving sh ON sh.code = ish.shelvingFk - JOIN parking p ON p.id = sh.parkingFk - LEFT JOIN itemShelvingSale iss - ON iss.itemShelvingFk = ish.id - AND iss.created >= CURDATE() - AND iss.isPicked = FALSE - WHERE ish.itemFk = vItemFk - AND p.sectorFk = vSectorFk - GROUP BY ish.id - HAVING available >= vPacking) sub - ORDER BY IF(pc.orderMode = 'Location',sub.pickingOrder, sub.created) - LIMIT 1; - - IF vItemShelvingFk THEN - /* INSERT INTO itemShelvingSale - SET itemShelvingFk = vItemShelvingFk, - saleFk = vSaleFk, - quantity = vPacking, - userFk = vUserFk, - isPicked = TRUE; -*/ - SET vItemShelvingSaleFk = LAST_INSERT_ID(); - - UPDATE sale SET isPicked = FALSE WHERE id = vSaleFk; - ELSE - LEAVE w1; - END IF; - - SET vNewTicketFk = NULL; - - SELECT MAX(t.id) INTO vNewTicketFk - FROM ticket t - JOIN ticketLastState tls ON tls.ticketFk = t.id - JOIN (SELECT addressFk, clientFk, date(shipped) shipped, warehouseFk - FROM ticket - WHERE id = vTicketFk) tt - ON tt.addressFk = t.addressFk - AND tt.clientFk = t.clientFk - AND t.shipped BETWEEN tt.shipped AND util.dayend(tt.shipped) - AND t.warehouseFk = tt.warehouseFk - WHERE tls.name = 'Encajado' ; - - IF ISNULL(vNewTicketFk) THEN - INSERT INTO ticket( clientFk, - shipped, - addressFk, - agencyModeFk, - nickname, - warehouseFk, - companyFk, - landed, - zoneFk, - zonePrice, - zoneBonus, - routeFk, - priority, - hasPriority, - clonedFrom) - SELECT clientFk, - shipped, - addressFk, - agencyModeFk, - nickname, - warehouseFk, - companyFk, - landed, - zoneFk, - zonePrice, - zoneBonus, - routeFk, - priority, - hasPriority, - id - FROM ticket - WHERE id = vTicketFk; - - SET vNewTicketFk = LAST_INSERT_ID(); - - INSERT INTO ticketTracking(ticketFk, stateFk, userFk) - SELECT vNewTicketFk, id, vUserFk - FROM state - WHERE code = 'PACKED'; - END IF; - - UPDATE sale SET quantity = quantity - vPacking WHERE id = vSaleFk; - - UPDATE itemShelving SET visible = visible - vPacking WHERE id = vItemShelvingFk; - - SET vNewSaleFk = NULL; - - SELECT MAX(id) INTO vNewSaleFk - FROM sale - WHERE ticketFk = vNewTicketFk - AND itemFk = vItemFk; - - IF vNewSaleFk THEN - UPDATE sale - SET quantity = quantity + vPacking - WHERE id = vNewSaleFk; - - SET vItemShelvingSaleFk_old = NULL; - - SELECT MAX(id) INTO vItemShelvingSaleFk_old - FROM itemShelvingSale - WHERE itemShelvingFk = vItemShelvingFk - AND saleFk = vNewSaleFk; - - IF vItemShelvingSaleFk_old THEN - UPDATE itemShelvingSale - SET quantity = quantity + vPacking - WHERE id = vItemShelvingSaleFk_old; - - DELETE FROM itemShelvingSale - WHERE id = vItemShelvingSaleFk; - - SET vItemShelvingSaleFk = vItemShelvingSaleFk_old; - /*ELSE - - * UPDATE itemShelvingSale - SET saleFk = vNewSaleFk - WHERE id = vItemShelvingSaleFk; - */ - END IF; - ELSE - INSERT INTO sale(ticketFk, itemFk, concept, quantity, discount, price) - SELECT vNewTicketFk, itemFk, concept, vPacking, discount, price - FROM sale - WHERE id = vSaleFk; - - SET vNewSaleFk = LAST_INSERT_ID(); - - INSERT INTO saleComponent(saleFk, componentFk, value, isGreuge) - SELECT vNewSaleFk, componentFk, value, isGreuge - FROM saleComponent - WHERE saleFk = vSaleFk; - - /* - * UPDATE itemShelvingSale - SET saleFk = vNewSaleFk - WHERE id = vItemShelvingSaleFk; - */ - END IF; - - INSERT IGNORE INTO saleTracking(saleFk, isChecked, workerFk, stateFk) - SELECT vNewSaleFk, TRUE, vUserFk, id - FROM state - WHERE code = 'PREPARED'; - - SELECT agencyModeFk INTO vAgencyModeFk - FROM ticket - WHERE id = vNewTicketFk; - - INSERT INTO expedition( - agencyModeFk, - ticketFk, - freightItemFk, - workerFk, - packagingFk, - itemPackingTypeFk, - hostFk, - packingSiteFk, - monitorId, - started, - ended, - counter - ) - SELECT vAgencyModeFk, - vNewTicketFk, - i.id, - vUserFk, - vPackagingFk, - ps.code, - h.code, - vPackingSiteFk, - ps.monitorId, - IFNULL(vLastExpeditionTimeStamp, NOW()), - NOW(), - 0 - FROM packingSite ps - JOIN host h ON h.id = ps.hostFk - JOIN item i ON i.name = 'Shipping cost' - WHERE ps.id = vPackingSiteFk - LIMIT 1; - - SET vExpeditionFk = LAST_INSERT_ID(); - - SET vLastExpeditionTimeStamp = NOW(); - - CALL dipole.expedition_Add(vExpeditionFk,vPrinterFk, TRUE); - - SELECT shelvingFk, p.code - INTO vShelving, vParkingCode - FROM itemShelving ish - JOIN shelving sh ON sh.code = ish.shelvingFk - JOIN parking p ON p.id = sh.parkingFk - WHERE ish.id = vItemShelvingFk; - - UPDATE dipole.expedition_PrintOut - SET isPrinted = FALSE, - itemFk = vItemFk, - quantity = vPacking, - longName = vConcept, - shelvingFk = vShelving, - parkingCode = vParkingCode, - phone = RIGHT(phone,vMaxPhoneLength), - street = RIGHT(street, vMAxStreetLength) - WHERE expeditionFk = vExpeditionFk; - - DELETE FROM sale - WHERE quantity = 0 - AND id = vSaleFk; - END WHILE; - -END$$ -DELIMITER ; \ No newline at end of file From df911b9b75e23066f0263e1fcb96379b0ef25412 Mon Sep 17 00:00:00 2001 From: Pako Date: Mon, 1 Apr 2024 08:47:47 +0200 Subject: [PATCH 7/8] fora comentaris --- db/routines/vn/procedures/sale_boxPickingPrint.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/routines/vn/procedures/sale_boxPickingPrint.sql b/db/routines/vn/procedures/sale_boxPickingPrint.sql index ae0c6451ee..8b7f8ecbe6 100644 --- a/db/routines/vn/procedures/sale_boxPickingPrint.sql +++ b/db/routines/vn/procedures/sale_boxPickingPrint.sql @@ -58,7 +58,7 @@ BEGIN FROM saleComponent WHERE saleFk = vSaleFk; END IF; -/* res */ + w1: WHILE vQuantity >= vPacking DO SET vQuantity = vQuantity - vPacking; From 7c4fc31b50a8ab0323a8ab510ffa70135d8cfe81 Mon Sep 17 00:00:00 2001 From: Pako Date: Mon, 1 Apr 2024 08:55:21 +0200 Subject: [PATCH 8/8] version productionConfig --- db/routines/vn/procedures/sale_boxPickingPrint.sql | 7 +++---- db/versions/10973-purpleAsparagus/00-firstScript.sql | 2 ++ 2 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 db/versions/10973-purpleAsparagus/00-firstScript.sql diff --git a/db/routines/vn/procedures/sale_boxPickingPrint.sql b/db/routines/vn/procedures/sale_boxPickingPrint.sql index 8b7f8ecbe6..dbb3b6c14d 100644 --- a/db/routines/vn/procedures/sale_boxPickingPrint.sql +++ b/db/routines/vn/procedures/sale_boxPickingPrint.sql @@ -238,7 +238,7 @@ w1: WHILE vQuantity >= vPacking DO ) SELECT vAgencyModeFk, vNewTicketFk, - i.id, + pc.defaultFreightItemFk, vUserFk, vPackagingFk, ps.code, @@ -249,9 +249,8 @@ w1: WHILE vQuantity >= vPacking DO NOW() FROM packingSite ps JOIN host h ON h.id = ps.hostFk - JOIN item i ON i.name = 'Porte Caja' - WHERE ps.id = vPackingSiteFk - LIMIT 1; + JOIN productionConfig pc + WHERE ps.id = vPackingSiteFk; SET vExpeditionFk = LAST_INSERT_ID(); diff --git a/db/versions/10973-purpleAsparagus/00-firstScript.sql b/db/versions/10973-purpleAsparagus/00-firstScript.sql new file mode 100644 index 0000000000..f5b8385295 --- /dev/null +++ b/db/versions/10973-purpleAsparagus/00-firstScript.sql @@ -0,0 +1,2 @@ +-- Place your SQL code here +ALTER TABLE vn.productionConfig ADD defaultFreightItemFk INT UNSIGNED DEFAULT 71 NOT NULL COMMENT 'Default value for expedition table';