
ALTER TABLE `vn`.`ticketRequest` 
DROP FOREIGN KEY `fgnAtender`;
ALTER TABLE `vn`.`ticketRequest` 
CHANGE COLUMN `atenderFk` `attenderFk` INT(11) NULL DEFAULT NULL ;
ALTER TABLE `vn`.`ticketRequest` 
ADD CONSTRAINT `fgnAtender`
  FOREIGN KEY (`attenderFk`)
  REFERENCES `vn`.`worker` (`id`)
  ON UPDATE CASCADE;




DROP TRIGGER IF EXISTS `vn`.`ticketRequest_beforeInsert`;

DELIMITER $$
CREATE DEFINER=`root`@`%` TRIGGER `vn`.`ticketRequest_beforeInsert` BEFORE INSERT ON `ticketRequest` FOR EACH ROW
BEGIN
    IF NEW.ticketFk IS NULL THEN
        SET NEW.ticketFk = (SELECT s.ticketFk FROM sale s WHERE s.id = NEW.saleFk);
    END IF;

    IF NEW.requesterFk IS NULL THEN
        SET NEW.requesterFk = (SELECT w.id FROM worker w WHERE w.code = NEW.salesPersonCode);
    END IF;

    IF NEW.attenderFk IS NULL THEN
        SET NEW.attenderFk = (SELECT w.id FROM worker w WHERE w.code = NEW.buyerCode);
    END IF;
END$$
DELIMITER ; 


DROP TRIGGER IF EXISTS `vn`.`ticketRequest_beforeUpdate`;

DELIMITER $$
CREATE DEFINER=`root`@`%` TRIGGER `vn`.`ticketRequest_beforeUpdate` BEFORE UPDATE ON `ticketRequest` FOR EACH ROW
BEGIN
    IF NEW.saleFk <> OLD.saleFk THEN
        SET NEW.ticketFk = (SELECT s.ticketFk FROM sale s WHERE s.id = NEW.saleFk);
    END IF;

    IF NEW.salesPersonCode <> OLD.salesPersonCode THEN
        SET NEW.requesterFk = (SELECT w.id FROM worker w WHERE w.code = NEW.salesPersonCode);
    END IF;

    IF NEW.buyerCode <> OLD.buyerCode THEN
        SET NEW.attenderFk = (SELECT w.id FROM worker w WHERE w.code = NEW.buyerCode);
    END IF;
END$$
DELIMITER ;


