regularizado #1040
|
@ -0,0 +1,100 @@
|
||||||
|
DROP TRIGGER IF EXISTS vn.sale_afterUpdate;
|
||||||
|
USE vn;
|
||||||
|
|
||||||
|
DELIMITER $$
|
||||||
|
$$
|
||||||
|
CREATE DEFINER=`root`@`localhost` TRIGGER `vn`.`sale_afterUpdate`
|
||||||
|
AFTER UPDATE ON `sale`
|
||||||
|
FOR EACH ROW
|
||||||
|
BEGIN
|
||||||
|
DECLARE vIsToSendMail BOOL;
|
||||||
|
DECLARE vPickedLines INT;
|
||||||
|
DECLARE vCollectionFk INT;
|
||||||
|
DECLARE vUserRole VARCHAR(255);
|
||||||
|
|
||||||
|
IF !(NEW.id <=> OLD.id)
|
||||||
|
OR !(NEW.ticketFk <=> OLD.ticketFk)
|
||||||
|
OR !(NEW.itemFk <=> OLD.itemFk)
|
||||||
|
OR !(NEW.quantity <=> OLD.quantity)
|
||||||
|
OR !(NEW.created <=> OLD.created)
|
||||||
|
OR !(NEW.isPicked <=> OLD.isPicked) THEN
|
||||||
|
CALL stock.log_add('sale', NEW.id, OLD.id);
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF !(NEW.price <=> OLD.price)
|
||||||
|
OR !(NEW.ticketFk <=> OLD.ticketFk)
|
||||||
|
OR !(NEW.itemFk <=> OLD.itemFk)
|
||||||
|
OR !(NEW.quantity <=> OLD.quantity)
|
||||||
|
OR !(NEW.discount <=> OLD.discount) THEN
|
||||||
|
CALL ticket_requestRecalc(NEW.ticketFk);
|
||||||
|
CALL ticket_requestRecalc(OLD.ticketFk);
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF !(OLD.ticketFk <=> NEW.ticketFk) THEN
|
||||||
|
UPDATE ticketRequest SET ticketFk = NEW.ticketFk
|
||||||
|
WHERE saleFk = NEW.id;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
SELECT account.myUser_getName() INTO vUserRole;
|
||||||
|
SELECT account.user_getMysqlRole(vUserRole) INTO vUserRole;
|
||||||
|
|
||||||
|
IF !(OLD.quantity <=> NEW.quantity) THEN
|
||||||
|
SELECT COUNT(*) INTO vIsToSendMail
|
||||||
|
FROM vncontrol.inter i
|
||||||
|
JOIN vn.state s ON s.id = i.state_id
|
||||||
|
WHERE s.code='PACKED'
|
||||||
|
AND i.Id_Ticket = OLD.ticketFk
|
||||||
|
AND vUserRole IN ('salesPerson', 'salesTeamBoss')
|
||||||
|
LIMIT 1;
|
||||||
|
|
||||||
|
IF vIsToSendMail THEN
|
||||||
|
CALL vn.mail_insert('jefesventas@verdnatura.es',
|
||||||
|
'noreply@verdnatura.es',
|
||||||
|
CONCAT('Ticket ', OLD.ticketFk ,' modificada cantidad tras encajado'),
|
||||||
|
CONCAT('Ticket <a href="https://salix.verdnatura.es/#!/ticket/', OLD.ticketFk ,'/log">', OLD.ticketFk ,'</a>. <br>',
|
||||||
|
'Modificada la catidad de ', OLD.quantity, ' a ' , NEW.quantity,
|
||||||
|
' del artículo ', OLD.itemFk, ' tras estado encajado del ticket. <br>',
|
||||||
|
'Este email se ha generado automáticamente' )
|
||||||
|
);
|
||||||
|
END IF;
|
||||||
|
IF (OLD.quantity > NEW.quantity) THEN
|
||||||
|
INSERT INTO saleComponent(saleFk, componentFk, value)
|
||||||
|
SELECT NEW.id, cm.id, sc.value
|
||||||
|
FROM saleComponent sc
|
||||||
|
JOIN component cd ON cd.id = sc.componentFk
|
||||||
|
JOIN component cm ON cm.code = 'mana'
|
||||||
|
WHERE saleFk = NEW.id AND cd.code = 'lastUnitsDiscount'
|
||||||
|
ON DUPLICATE KEY UPDATE value = sc.value + VALUES(value);
|
||||||
|
|
||||||
|
DELETE sc.*
|
||||||
|
FROM vn.saleComponent sc
|
||||||
|
JOIN component c ON c.id = sc.componentFk
|
||||||
|
WHERE saleFk = NEW.id AND c.code = 'lastUnitsDiscount';
|
||||||
|
END IF;
|
||||||
|
INSERT IGNORE INTO `vn`.`routeRecalc` (`routeFk`)
|
||||||
|
SELECT r.id
|
||||||
|
FROM vn.sale s
|
||||||
|
JOIN vn.ticket t ON t.id = s.ticketFk
|
||||||
|
JOIN vn.route r ON r.id = t.routeFk
|
||||||
|
WHERE r.isOk = FALSE
|
||||||
|
AND s.id = NEW.id
|
||||||
|
AND r.created >= CURDATE()
|
||||||
|
GROUP BY r.id;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF !(ABS(NEW.isPicked) <=> ABS(OLD.isPicked)) AND NEW.quantity > 0 THEN
|
||||||
|
|
||||||
|
UPDATE vn.collection c
|
||||||
|
JOIN vn.ticketCollection tc ON tc.collectionFk = c.id AND tc.ticketFk = NEW.ticketFk
|
||||||
|
SET c.salePickedCount = c.salePickedCount + IF(NEW.isPicked != 0, 1, -1);
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF !(NEW.quantity <=> OLD.quantity) AND (NEW.quantity = 0 OR OLD.quantity = 0) THEN
|
||||||
|
|
||||||
|
UPDATE vn.collection c
|
||||||
|
JOIN vn.ticketCollection tc ON tc.collectionFk = c.id AND tc.ticketFk = NEW.ticketFk
|
||||||
|
SET c.saleTotalCount = c.saleTotalCount + IF(OLD.quantity = 0, 1, -1);
|
||||||
|
END IF;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -28,7 +28,7 @@
|
||||||
url="Workers/activeWithRole"
|
url="Workers/activeWithRole"
|
||||||
search-function="{firstName: $search}"
|
search-function="{firstName: $search}"
|
||||||
value-field="id"
|
value-field="id"
|
||||||
where="{role: {inq: ['salesBoss', 'salesPerson', 'officeBoss']}}"
|
where="{role: {inq: ['salesTeamBoss', 'salesPerson', 'officeBoss']}}"
|
||||||
label="Salesperson">
|
label="Salesperson">
|
||||||
<tpl-item>{{firstName}} {{name}}</tpl-item>
|
<tpl-item>{{firstName}} {{name}}</tpl-item>
|
||||||
</vn-autocomplete>
|
</vn-autocomplete>
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
url="Workers/activeWithRole"
|
url="Workers/activeWithRole"
|
||||||
search-function="{firstName: $search}"
|
search-function="{firstName: $search}"
|
||||||
value-field="id"
|
value-field="id"
|
||||||
where="{role: {inq: ['salesBoss', 'salesPerson']}}"
|
where="{role: {inq: ['salesTeamBoss', 'salesPerson']}}"
|
||||||
label="Attended by">
|
label="Attended by">
|
||||||
<tpl-item>{{firstName}} {{name}}</tpl-item>
|
<tpl-item>{{firstName}} {{name}}</tpl-item>
|
||||||
</vn-autocomplete>
|
</vn-autocomplete>
|
||||||
|
|
Loading…
Reference in New Issue