Merge branch 'dev' into 6286-setRightWorkerTimeControlAcls
gitea/salix/pipeline/pr-dev This commit looks good
Details
gitea/salix/pipeline/pr-dev This commit looks good
Details
This commit is contained in:
commit
2b0df02f20
|
@ -3889,11 +3889,25 @@ INSERT INTO `vn`.`calendarHolidays` (calendarHolidaysTypeFk, dated, calendarHoli
|
||||||
(1, '2001-05-17', 1, 5),
|
(1, '2001-05-17', 1, 5),
|
||||||
(1, '2001-05-18', 1, 5);
|
(1, '2001-05-18', 1, 5);
|
||||||
|
|
||||||
|
INSERT INTO vn.payrollComponent
|
||||||
|
(id, name, isSalaryAgreed, isVariable, isException)
|
||||||
|
VALUES
|
||||||
|
(1, 'Salario1', 1, 0, 0),
|
||||||
|
(2, 'Salario2', 1, 1, 0),
|
||||||
|
(3, 'Salario3', 1, 0, 1);
|
||||||
|
|
||||||
INSERT INTO dipole.printer (id, description)
|
|
||||||
VALUES(1, '');
|
|
||||||
|
|
||||||
INSERT INTO dipole.expedition_PrintOut (expeditionFk, ticketFk, addressFk, street, postalCode, city, shopName, isPrinted, created, printerFk, routeFk, parkingCode,
|
INSERT INTO vn.workerIncome
|
||||||
truckName, clientFk, phone, province, agency, m3, workerCode, itemFk, quantity, longName, shelvingFk, comments)
|
(debit, credit, incomeTypeFk, paymentDate, workerFk, concept)
|
||||||
VALUES(1, 1, 0, ' ', ' ', ' ', ' ', 0, '2001-01-01 00:00:00', 1, 0, ' ', ' ', 0, NULL, '', NULL, 0.000, NULL, 10, NULL, NULL, 'NCC', NULL);
|
VALUES
|
||||||
|
(1000.00, 900.00, 2, '2000-01-01', 1106, NULL),
|
||||||
|
(1001.00, 800.00, 2, '2000-01-01', 1106, NULL);
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO dipole.printer (id, description)
|
||||||
|
VALUES(1, '');
|
||||||
|
|
||||||
|
INSERT INTO dipole.expedition_PrintOut (expeditionFk, ticketFk, addressFk, street, postalCode, city, shopName, isPrinted, created, printerFk, routeFk, parkingCode,
|
||||||
|
truckName, clientFk, phone, province, agency, m3, workerCode, itemFk, quantity, longName, shelvingFk, comments)
|
||||||
|
VALUES(1, 1, 0, ' ', ' ', ' ', ' ', 0, '2001-01-01 00:00:00', 1, 0, ' ', ' ', 0, NULL, '', NULL, 0.000, NULL, 10, NULL, NULL, 'NCC', NULL);
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,15 @@
|
||||||
DROP PROCEDURE IF EXISTS floranet.catalogue_get;
|
|
||||||
|
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
$$
|
$$
|
||||||
CREATE DEFINER=`root`@`localhost` PROCEDURE floranet.catalogue_get(vLanded DATE, vPostalCode VARCHAR(15))
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE floranet.catalogue_get(vLanded DATE, vPostalCode VARCHAR(15))
|
||||||
READS SQL DATA
|
READS SQL DATA
|
||||||
proc:BEGIN
|
proc:BEGIN
|
||||||
/**
|
/**
|
||||||
* Returns list, price and all the stuff regarding the floranet items.
|
* Returns list, price and all the stuff regarding the floranet items, for the designed shop
|
||||||
*
|
*
|
||||||
* @param vLanded Delivery date
|
* @param vLanded Delivery date
|
||||||
* @param vPostalCode Delivery address postal code
|
* @param vPostalCode Delivery address postal code
|
||||||
*/
|
*/
|
||||||
|
DECLARE vAddressFk INT;
|
||||||
DECLARE vLastCatalogueFk INT;
|
DECLARE vLastCatalogueFk INT;
|
||||||
DECLARE vLockName VARCHAR(20);
|
DECLARE vLockName VARCHAR(20);
|
||||||
DECLARE vLockTime INT;
|
DECLARE vLockTime INT;
|
||||||
|
@ -21,7 +20,7 @@ proc:BEGIN
|
||||||
|
|
||||||
RESIGNAL;
|
RESIGNAL;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
SET vLockName = 'catalogue_get';
|
SET vLockName = 'catalogue_get';
|
||||||
SET vLockTime = 15;
|
SET vLockTime = 15;
|
||||||
|
|
||||||
|
@ -32,6 +31,15 @@ proc:BEGIN
|
||||||
SELECT MAX(id) INTO vLastCatalogueFk
|
SELECT MAX(id) INTO vLastCatalogueFk
|
||||||
FROM catalogue;
|
FROM catalogue;
|
||||||
|
|
||||||
|
SELECT addressFk
|
||||||
|
INTO vAddressFk
|
||||||
|
FROM addressPostCode apc
|
||||||
|
WHERE apc.dayOfWeek = dayOfWeek(vLanded)
|
||||||
|
AND NOW() < vLanded - INTERVAL apc.hoursInAdvance HOUR
|
||||||
|
AND apc.postCode = vPostalCode
|
||||||
|
-- Aquí hay que incluir los criterios de selección de tienda
|
||||||
|
LIMIT 1;
|
||||||
|
|
||||||
INSERT INTO catalogue(
|
INSERT INTO catalogue(
|
||||||
name,
|
name,
|
||||||
price,
|
price,
|
||||||
|
@ -51,17 +59,14 @@ proc:BEGIN
|
||||||
it.name,
|
it.name,
|
||||||
CONCAT('https://cdn.verdnatura.es/image/catalog/1600x900/', i.image),
|
CONCAT('https://cdn.verdnatura.es/image/catalog/1600x900/', i.image),
|
||||||
i.description,
|
i.description,
|
||||||
apc.addressFk
|
vAddressFk
|
||||||
FROM vn.item i
|
FROM vn.item i
|
||||||
JOIN (SELECT itemFk, SUM(quantity * cost) price
|
JOIN (SELECT itemFk, SUM(quantity * cost) price
|
||||||
FROM recipe
|
FROM recipe
|
||||||
GROUP BY itemFk) r ON r.itemFk = i.id
|
GROUP BY itemFk) r ON r.itemFk = i.id
|
||||||
JOIN vn.itemType it ON it.id = i.typeFk
|
JOIN vn.itemType it ON it.id = i.typeFk
|
||||||
JOIN addressPostCode apc
|
JOIN addressPostCode apc ON addressFk = vAddressFk
|
||||||
ON apc.dayOfWeek = dayOfWeek(vLanded)
|
JOIN vn.address a ON a.id = vAddressFk;
|
||||||
AND NOW() < vLanded - INTERVAL apc.hoursInAdvance HOUR
|
|
||||||
AND apc.postCode = vPostalCode
|
|
||||||
JOIN vn.address a ON a.id = apc.addressFk;
|
|
||||||
|
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM catalogue
|
FROM catalogue
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
DROP PROCEDURE IF EXISTS floranet.deliveryDate_get;
|
|
||||||
|
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
$$
|
$$
|
||||||
CREATE DEFINER=`root`@`localhost` PROCEDURE `floranet`.`deliveryDate_get`(vPostalCode VARCHAR(15))
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `floranet`.`deliveryDate_get`(vPostalCode VARCHAR(15))
|
||||||
READS SQL DATA
|
READS SQL DATA
|
||||||
BEGIN
|
BEGIN
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -101,7 +101,7 @@ proc:BEGIN
|
||||||
vNewTicketFk,
|
vNewTicketFk,
|
||||||
c.itemFk,
|
c.itemFk,
|
||||||
CONCAT('Entrega: ',c.name),
|
CONCAT('Entrega: ',c.name),
|
||||||
- c.price,
|
- apc.deliveryCost,
|
||||||
1
|
1
|
||||||
FROM catalogue c
|
FROM catalogue c
|
||||||
JOIN addressPostCode apc
|
JOIN addressPostCode apc
|
||||||
|
@ -119,7 +119,7 @@ proc:BEGIN
|
||||||
vNewTicketFk,
|
vNewTicketFk,
|
||||||
r.elementFk,
|
r.elementFk,
|
||||||
i.longName,
|
i.longName,
|
||||||
r.cost,
|
0,
|
||||||
r.quantity
|
r.quantity
|
||||||
FROM catalogue c
|
FROM catalogue c
|
||||||
JOIN recipe r ON r.itemFk = c.itemFk
|
JOIN recipe r ON r.itemFk = c.itemFk
|
||||||
|
|
|
@ -26,6 +26,7 @@ BEGIN
|
||||||
JOIN province p ON p.id = c.provinceFk
|
JOIN province p ON p.id = c.provinceFk
|
||||||
LEFT JOIN autonomy a ON a.id = p.autonomyFk
|
LEFT JOIN autonomy a ON a.id = p.autonomyFk
|
||||||
JOIN country co ON co.id = p.countryFk
|
JOIN country co ON co.id = p.countryFk
|
||||||
|
JOIN bs.clientDiedPeriod cdp ON cdp.countryFk = co.id
|
||||||
WHERE cd.warning = 'third'
|
WHERE cd.warning = 'third'
|
||||||
AND cp.clientFk IS NULL
|
AND cp.clientFk IS NULL
|
||||||
AND sp.salesPersonFk IS NULL
|
AND sp.salesPersonFk IS NULL
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_DelayTruckSplit`(vTicketFk INT)
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_DelayTruckSplit`(
|
||||||
|
vTicketFk INT
|
||||||
|
)
|
||||||
BEGIN
|
BEGIN
|
||||||
/**
|
/**
|
||||||
* Splita las lineas de ticket que no estan ubicadas
|
* Splita las lineas de ticket que no estan ubicadas
|
||||||
|
@ -50,8 +52,8 @@ BEGIN
|
||||||
SET s.ticketFk = vNewTicketFk;
|
SET s.ticketFk = vNewTicketFk;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL ticketStateUpdate(vNewTicketFk, 'FIXING');
|
CALL ticket_setState(vNewTicketFk, 'FIXING');
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tmp.SalesToSplit;
|
DROP TEMPORARY TABLE tmp.SalesToSplit;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_cloneWeekly`(vDateFrom DATE, vDateTo DATE)
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_cloneWeekly`(
|
||||||
|
vDateFrom DATE,
|
||||||
|
vDateTo DATE
|
||||||
|
)
|
||||||
BEGIN
|
BEGIN
|
||||||
DECLARE vIsDone BOOL;
|
DECLARE vIsDone BOOL;
|
||||||
DECLARE vLanding DATE;
|
DECLARE vLanding DATE;
|
||||||
|
@ -39,9 +42,16 @@ BEGIN
|
||||||
DECLARE vIsDuplicateMail BOOL;
|
DECLARE vIsDuplicateMail BOOL;
|
||||||
DECLARE vSubject VARCHAR(150);
|
DECLARE vSubject VARCHAR(150);
|
||||||
DECLARE vMessage TEXT;
|
DECLARE vMessage TEXT;
|
||||||
|
|
||||||
SET vIsDone = FALSE;
|
SET vIsDone = FALSE;
|
||||||
FETCH rsTicket INTO vTicketFk,vClientFk, vWarehouseFk, vCompanyFk, vAddressFk, vAgencyModeFk,vShipment;
|
FETCH rsTicket INTO
|
||||||
|
vTicketFk,
|
||||||
|
vClientFk,
|
||||||
|
vWarehouseFk,
|
||||||
|
vCompanyFk,
|
||||||
|
vAddressFk,
|
||||||
|
vAgencyModeFk,
|
||||||
|
vShipment;
|
||||||
|
|
||||||
IF vIsDone THEN
|
IF vIsDone THEN
|
||||||
LEAVE myLoop;
|
LEAVE myLoop;
|
||||||
|
@ -67,7 +77,7 @@ BEGIN
|
||||||
AND isDefaultAddress;
|
AND isDefaultAddress;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL zone_getLanded(vShipment, vAddressFk, vAgencyModeFk, vWarehouseFk,FALSE);
|
CALL zone_getLanded(vShipment, vAddressFk, vAgencyModeFk, vWarehouseFk, FALSE);
|
||||||
SET vLanding = NULL;
|
SET vLanding = NULL;
|
||||||
SELECT landed INTO vLanding FROM tmp.zoneGetLanded LIMIT 1;
|
SELECT landed INTO vLanding FROM tmp.zoneGetLanded LIMIT 1;
|
||||||
|
|
||||||
|
@ -88,16 +98,22 @@ BEGIN
|
||||||
SET clonedFrom = vTicketFk
|
SET clonedFrom = vTicketFk
|
||||||
WHERE id = vNewTicket;
|
WHERE id = vNewTicket;
|
||||||
|
|
||||||
INSERT INTO sale (ticketFk, itemFk, concept, quantity, price,
|
INSERT INTO sale (ticketFk,
|
||||||
discount, priceFixed, isPriceFixed)
|
itemFk,
|
||||||
|
concept,
|
||||||
|
quantity,
|
||||||
|
price,
|
||||||
|
discount,
|
||||||
|
priceFixed,
|
||||||
|
isPriceFixed)
|
||||||
SELECT vNewTicket,
|
SELECT vNewTicket,
|
||||||
saleOrig.itemFk,
|
saleOrig.itemFk,
|
||||||
saleOrig.concept,
|
saleOrig.concept,
|
||||||
saleOrig.quantity,
|
saleOrig.quantity,
|
||||||
saleOrig.price,
|
saleOrig.price,
|
||||||
saleOrig.discount,
|
saleOrig.discount,
|
||||||
saleOrig.priceFixed,
|
saleOrig.priceFixed,
|
||||||
saleOrig.isPriceFixed
|
saleOrig.isPriceFixed
|
||||||
FROM sale saleOrig
|
FROM sale saleOrig
|
||||||
WHERE saleOrig.ticketFk = vTicketFk;
|
WHERE saleOrig.ticketFk = vTicketFk;
|
||||||
|
|
||||||
|
@ -123,20 +139,20 @@ BEGIN
|
||||||
,attenderFk,
|
,attenderFk,
|
||||||
ticketFk)
|
ticketFk)
|
||||||
SELECT description,
|
SELECT description,
|
||||||
ordered,
|
ordered,
|
||||||
shipped,
|
shipped,
|
||||||
quantity,
|
quantity,
|
||||||
price,
|
price,
|
||||||
itemFk,
|
itemFk,
|
||||||
clientFk,
|
clientFk,
|
||||||
response,
|
response,
|
||||||
total,
|
total,
|
||||||
buyed,
|
buyed,
|
||||||
requesterFk,
|
requesterFk,
|
||||||
attenderFk,
|
attenderFk,
|
||||||
vNewTicket
|
vNewTicket
|
||||||
FROM ticketRequest
|
FROM ticketRequest
|
||||||
WHERE ticketFk =vTicketFk;
|
WHERE ticketFk =vTicketFk;
|
||||||
|
|
||||||
SELECT id INTO vSalesPersonFK
|
SELECT id INTO vSalesPersonFK
|
||||||
FROM observationType
|
FROM observationType
|
||||||
|
@ -189,7 +205,7 @@ BEGIN
|
||||||
IF NOT vIsDuplicateMail THEN
|
IF NOT vIsDuplicateMail THEN
|
||||||
CALL mail_insert(vSalesPersonEmail, NULL, vSubject, vMessage);
|
CALL mail_insert(vSalesPersonEmail, NULL, vSubject, vMessage);
|
||||||
END IF;
|
END IF;
|
||||||
CALL ticketStateUpdate (vNewTicket, 'FIXING');
|
CALL ticket_setState(vNewTicket, 'FIXING');
|
||||||
ELSE
|
ELSE
|
||||||
CALL ticketCalculateClon(vNewTicket, vTicketFk);
|
CALL ticketCalculateClon(vNewTicket, vTicketFk);
|
||||||
END IF;
|
END IF;
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_split`(vTicketFk INT, vTicketFutureFk INT, vDated DATE)
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_split`(
|
||||||
|
vTicketFk INT,
|
||||||
|
vTicketFutureFk INT,
|
||||||
|
vDated DATE
|
||||||
|
)
|
||||||
proc:BEGIN
|
proc:BEGIN
|
||||||
/**
|
/**
|
||||||
* Mueve las lineas con problemas a otro ticket existente o a uno nuevo.
|
* Mueve las lineas con problemas a otro ticket existente o a uno nuevo.
|
||||||
|
@ -17,60 +21,56 @@ proc:BEGIN
|
||||||
FROM tmp.salesToSplit
|
FROM tmp.salesToSplit
|
||||||
WHERE ticketFk = vTicketFk;
|
WHERE ticketFk = vTicketFk;
|
||||||
|
|
||||||
SELECT count(*) INTO vTotalLines
|
SELECT COUNT(*) INTO vTotalLines
|
||||||
FROM vn.sale s
|
FROM sale s
|
||||||
WHERE s.ticketFk = vTicketFk;
|
WHERE s.ticketFk = vTicketFk;
|
||||||
|
|
||||||
SET vHasFullProblem = (vTotalLines = vProblemLines);
|
SET vHasFullProblem = (vTotalLines = vProblemLines);
|
||||||
|
|
||||||
-- Ticket completo
|
-- Ticket completo
|
||||||
IF vHasFullProblem THEN
|
IF vHasFullProblem THEN
|
||||||
|
UPDATE ticket
|
||||||
UPDATE vn.ticket
|
SET landed = vDated + INTERVAL 1 DAY,
|
||||||
SET landed = vDated + INTERVAL 1 DAY,
|
|
||||||
shipped = vDated,
|
shipped = vDated,
|
||||||
nickname = CONCAT('(',DAY(util.VN_CURDATE()),') ', nickname )
|
nickname = CONCAT('(',DAY(util.VN_CURDATE()),') ', nickname)
|
||||||
WHERE id = vTicketFk;
|
WHERE id = vTicketFk;
|
||||||
|
|
||||||
SELECT "moved" message, NULL ticketFuture;
|
SELECT 'moved' message, NULL ticketFuture;
|
||||||
LEAVE proc;
|
LEAVE proc;
|
||||||
|
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- Ticket a futuro existe
|
-- Ticket a futuro existe
|
||||||
IF vTicketFutureFk THEN
|
IF vTicketFutureFk THEN
|
||||||
|
UPDATE sale s
|
||||||
UPDATE vn.sale s
|
JOIN tmp.salesToSplit ss ON s.id = ss.saleFk
|
||||||
JOIN tmp.salesToSplit ss ON s.id = ss.saleFk
|
|
||||||
SET s.ticketFk = vTicketFutureFk,
|
SET s.ticketFk = vTicketFutureFk,
|
||||||
s.concept = CONCAT('(s) ', s.concept)
|
s.concept = CONCAT('(s) ', s.concept)
|
||||||
WHERE ss.ticketFk = vTicketFk;
|
WHERE ss.ticketFk = vTicketFk;
|
||||||
|
|
||||||
SELECT "future" message, NULL ticketFuture;
|
SELECT 'future' message, NULL ticketFuture;
|
||||||
LEAVE proc;
|
LEAVE proc;
|
||||||
|
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- Ticket nuevo
|
-- Ticket nuevo
|
||||||
CALL vn.ticket_Clone(vTicketFk, vTicketFutureFk);
|
CALL ticket_Clone(vTicketFk, vTicketFutureFk);
|
||||||
|
|
||||||
UPDATE vn.ticket t
|
UPDATE ticket t
|
||||||
JOIN vn.productionConfig pc
|
JOIN productionConfig pc
|
||||||
SET t.routeFk = IF(t.shipped = vDated , t.routeFk, NULL),
|
SET t.routeFk = IF(t.shipped = vDated , t.routeFk, NULL),
|
||||||
t.landed = vDated + INTERVAL 1 DAY,
|
t.landed = vDated + INTERVAL 1 DAY,
|
||||||
t.shipped = vDated,
|
t.shipped = vDated,
|
||||||
t.agencyModeFk = pc.defautlAgencyMode,
|
t.agencyModeFk = pc.defautlAgencyMode,
|
||||||
t.zoneFk = pc.defaultZone
|
t.zoneFk = pc.defaultZone
|
||||||
WHERE t.id = vTicketFutureFk;
|
WHERE t.id = vTicketFutureFk;
|
||||||
|
|
||||||
UPDATE vn.sale s
|
UPDATE sale s
|
||||||
JOIN tmp.salesToSplit sts ON sts.saleFk = s.id
|
JOIN tmp.salesToSplit sts ON sts.saleFk = s.id
|
||||||
SET s.ticketFk = vTicketFutureFk,
|
SET s.ticketFk = vTicketFutureFk,
|
||||||
s.concept = CONCAT('(s) ', s.concept)
|
s.concept = CONCAT('(s) ', s.concept)
|
||||||
WHERE sts.ticketFk = vTicketFk;
|
WHERE sts.ticketFk = vTicketFk;
|
||||||
|
|
||||||
CALL vn.ticketStateUpdate(vTicketFutureFk, 'FIXING');
|
CALL ticket_setState(vTicketFutureFk, 'FIXING');
|
||||||
|
|
||||||
SELECT "new" message,vTicketFutureFk ticketFuture;
|
SELECT 'new' message, vTicketFutureFk ticketFuture;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -3,7 +3,7 @@ CREATE TABLE IF NOT EXISTS vn.travelKgPercentage (
|
||||||
className VARCHAR(50)
|
className VARCHAR(50)
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO vn.travelKgPercentage (value, className)
|
INSERT IGNORE INTO vn.travelKgPercentage (value, className)
|
||||||
VALUES
|
VALUES
|
||||||
(80, 'primary'),
|
(80, 'primary'),
|
||||||
(100, 'alert');
|
(100, 'alert');
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
-- Place your SQL code here
|
||||||
|
INSERT INTO salix.ACL (model, property, accessType, permission, principalType, principalId)
|
||||||
|
VALUES
|
||||||
|
('WorkerIncome', '*', '*', 'ALLOW', 'ROLE', 'hr'),
|
||||||
|
('PayrollComponent', '*', '*', 'ALLOW', 'ROLE', 'hr'),
|
||||||
|
('Worker', '__get__incomes', '*', 'ALLOW', 'ROLE', 'hr');
|
|
@ -1,18 +0,0 @@
|
||||||
-- Place your SQL code here
|
|
||||||
CREATE TABLE IF NOT EXISTS vn.travelKgPercentage (
|
|
||||||
value INT(3) PRIMARY KEY,
|
|
||||||
className VARCHAR(50)
|
|
||||||
);
|
|
||||||
|
|
||||||
INSERT IGNORE INTO vn.travelKgPercentage (value, className)
|
|
||||||
VALUES
|
|
||||||
(80, 'primary'),
|
|
||||||
(100, 'alert');
|
|
||||||
|
|
||||||
INSERT IGNORE INTO salix.ACL
|
|
||||||
SET model = 'TravelKgPercentage',
|
|
||||||
property = '*',
|
|
||||||
accessType = 'READ',
|
|
||||||
permission = 'ALLOW',
|
|
||||||
principalType = 'ROLE',
|
|
||||||
principalId = 'employee';
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
-- Place your SQL code here
|
||||||
|
USE vn;
|
||||||
|
INSERT INTO salix.ACL ( model, property, accessType, permission, principalType, principalId) VALUES('ItemShelvingLog', '*', 'READ', 'ALLOW', 'ROLE', 'production');
|
||||||
|
|
||||||
|
-- redmine regularitzar parking per a que no tinguen espais
|
||||||
|
ALTER TABLE parking DROP CONSTRAINT chkParkingCodeFormat;
|
||||||
|
ALTER TABLE parking
|
||||||
|
ADD CONSTRAINT chkParkingCodeFormat CHECK (CHAR_LENGTH(code) > 4 AND code REGEXP ('^[^ ]+-[^ ]+$'));
|
|
@ -27,7 +27,7 @@
|
||||||
vn-id="country"
|
vn-id="country"
|
||||||
ng-model="$ctrl.data.countryFk"
|
ng-model="$ctrl.data.countryFk"
|
||||||
url="Countries"
|
url="Countries"
|
||||||
fields="['id', 'country', 'code']"
|
fields="['id', 'name', 'code']"
|
||||||
show-field="name"
|
show-field="name"
|
||||||
value-field="id"
|
value-field="id"
|
||||||
label="Country">
|
label="Country">
|
||||||
|
|
|
@ -366,5 +366,6 @@
|
||||||
"It has been invoiced but the PDF could not be generated": "Se ha facturado pero no se ha podido generar el PDF",
|
"It has been invoiced but the PDF could not be generated": "Se ha facturado pero no se ha podido generar el PDF",
|
||||||
"It has been invoiced but the PDF of refund not be generated": "Se ha facturado pero no se ha podido generar el PDF del abono",
|
"It has been invoiced but the PDF of refund not be generated": "Se ha facturado pero no se ha podido generar el PDF del abono",
|
||||||
"Payment method is required": "El método de pago es obligatorio",
|
"Payment method is required": "El método de pago es obligatorio",
|
||||||
"Cannot send mail": "Não é possível enviar o email"
|
"Cannot send mail": "Não é possível enviar o email",
|
||||||
|
"CONSTRAINT `supplierAccountTooShort` failed for `vn`.`supplier`": "La cuenta debe tener exactamente 10 dígitos"
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@ module.exports = function() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// MySQL user-defined exceptions
|
// MySQL user-defined exceptions
|
||||||
if (err.sqlState == '45000')
|
if (err.sqlState == '45000' || err?.errno == 4025)
|
||||||
return next(new UserError(req.__(err.sqlMessage)));
|
return next(new UserError(req.__(err.sqlMessage)));
|
||||||
|
|
||||||
// Logs error to console
|
// Logs error to console
|
||||||
|
|
|
@ -50,7 +50,7 @@ module.exports = function(Self) {
|
||||||
{
|
{
|
||||||
relation: 'country',
|
relation: 'country',
|
||||||
scope: {
|
scope: {
|
||||||
fields: ['id', 'country']
|
fields: ['id', 'name']
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -54,7 +54,7 @@ module.exports = Self => {
|
||||||
{
|
{
|
||||||
relation: 'country',
|
relation: 'country',
|
||||||
scope: {
|
scope: {
|
||||||
fields: ['country']
|
fields: ['name']
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -37,7 +37,7 @@ class Controller extends Section {
|
||||||
include: {
|
include: {
|
||||||
relation: 'country',
|
relation: 'country',
|
||||||
scope: {
|
scope: {
|
||||||
fields: ['id', 'country']
|
fields: ['id', 'name']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,7 @@ class Controller extends Section {
|
||||||
field: 'countryFk',
|
field: 'countryFk',
|
||||||
autocomplete: {
|
autocomplete: {
|
||||||
url: 'Countries',
|
url: 'Countries',
|
||||||
showField: 'country',
|
showField: 'name',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -59,7 +59,7 @@ module.exports = Self => {
|
||||||
include: [{
|
include: [{
|
||||||
relation: 'country',
|
relation: 'country',
|
||||||
scope: {
|
scope: {
|
||||||
fields: ['id', 'country']
|
fields: ['id', 'name']
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
relation: 'taxClass',
|
relation: 'taxClass',
|
||||||
|
|
|
@ -50,6 +50,9 @@
|
||||||
"ItemShelving": {
|
"ItemShelving": {
|
||||||
"dataSource": "vn"
|
"dataSource": "vn"
|
||||||
},
|
},
|
||||||
|
"ItemShelvingLog": {
|
||||||
|
"dataSource": "vn"
|
||||||
|
},
|
||||||
"ItemShelvingSale": {
|
"ItemShelvingSale": {
|
||||||
"dataSource": "vn"
|
"dataSource": "vn"
|
||||||
},
|
},
|
||||||
|
@ -74,4 +77,4 @@
|
||||||
"FixedPrice": {
|
"FixedPrice": {
|
||||||
"dataSource": "vn"
|
"dataSource": "vn"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
{
|
||||||
|
"name": "ItemShelvingLog",
|
||||||
|
"base": "VnModel",
|
||||||
|
"mixins": {
|
||||||
|
"Loggable": true
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"mysql": {
|
||||||
|
"table": "itemShelvingLog"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "number",
|
||||||
|
"id": true,
|
||||||
|
"description": "Identifier"
|
||||||
|
},
|
||||||
|
"created": {
|
||||||
|
"type": "date"
|
||||||
|
},
|
||||||
|
"shelvingFk": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"itemFk": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"visible": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"accion": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"relations": {
|
||||||
|
"item": {
|
||||||
|
"type": "belongsTo",
|
||||||
|
"model": "Item",
|
||||||
|
"foreignKey": "itemFk"
|
||||||
|
},
|
||||||
|
"worker": {
|
||||||
|
"type": "belongsTo",
|
||||||
|
"model": "Worker",
|
||||||
|
"foreignKey": "workerFk"
|
||||||
|
},
|
||||||
|
"shelving": {
|
||||||
|
"type": "belongsTo",
|
||||||
|
"model": "Shelving",
|
||||||
|
"foreignKey": "shelvingFk",
|
||||||
|
"primaryKey": "code"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -55,7 +55,7 @@ module.exports = Self => {
|
||||||
{
|
{
|
||||||
relation: 'country',
|
relation: 'country',
|
||||||
scope: {
|
scope: {
|
||||||
fields: ['id', 'country', 'code']
|
fields: ['id', 'name', 'code']
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -125,6 +125,12 @@
|
||||||
"Locker": {
|
"Locker": {
|
||||||
"dataSource": "vn"
|
"dataSource": "vn"
|
||||||
},
|
},
|
||||||
|
"PayrollComponent": {
|
||||||
|
"dataSource": "vn"
|
||||||
|
},
|
||||||
|
"WorkerIncome": {
|
||||||
|
"dataSource": "vn"
|
||||||
|
},
|
||||||
"TrainingCourse": {
|
"TrainingCourse": {
|
||||||
"dataSource": "vn"
|
"dataSource": "vn"
|
||||||
},
|
},
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
{
|
||||||
|
"name": "PayrollComponent",
|
||||||
|
"base": "VnModel",
|
||||||
|
"options": {
|
||||||
|
"mysql": {
|
||||||
|
"table": "payrollComponent"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"id": true,
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"isSalaryAgreed": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"isVariable": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"isException": {
|
||||||
|
"type": "number"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,45 @@
|
||||||
|
{
|
||||||
|
"name": "WorkerIncome",
|
||||||
|
"base": "VnModel",
|
||||||
|
"options": {
|
||||||
|
"mysql": {
|
||||||
|
"table": "workerIncome"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"id": true,
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"debit": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"credit": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"incomeTypeFk": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"paymentDate": {
|
||||||
|
"type": "date"
|
||||||
|
},
|
||||||
|
"workerFk": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"concept": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"relations": {
|
||||||
|
"payrollComponent": {
|
||||||
|
"type": "belongsTo",
|
||||||
|
"model": "PayrollComponent",
|
||||||
|
"foreignKey": "id"
|
||||||
|
},
|
||||||
|
"worker": {
|
||||||
|
"type": "belongsTo",
|
||||||
|
"model": "Worker",
|
||||||
|
"foreignKey": "workerFk"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -116,6 +116,11 @@
|
||||||
"model": "Locker",
|
"model": "Locker",
|
||||||
"foreignKey": "workerFk"
|
"foreignKey": "workerFk"
|
||||||
},
|
},
|
||||||
|
"incomes": {
|
||||||
|
"type": "hasMany",
|
||||||
|
"model": "WorkerIncome",
|
||||||
|
"foreignKey": "workerFk"
|
||||||
|
},
|
||||||
"trainingCourse": {
|
"trainingCourse": {
|
||||||
"type": "hasMany",
|
"type": "hasMany",
|
||||||
"model": "TrainingCourse",
|
"model": "TrainingCourse",
|
||||||
|
@ -131,4 +136,4 @@
|
||||||
"principalId": "$owner"
|
"principalId": "$owner"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue