118 lines
4.9 KiB
SQL
118 lines
4.9 KiB
SQL
ALTER TABLE vn.client
|
|
ADD IF NOT EXISTS departmentFk INT(11) DEFAULT NULL NULL;
|
|
|
|
ALTER TABLE vn.client
|
|
ADD IF NOT EXISTS lastDepartmentFk INT(11) DEFAULT NULL NULL;
|
|
|
|
ALTER TABLE vn.client
|
|
ADD CONSTRAINT client_department_FK FOREIGN KEY IF NOT EXISTS (departmentFk)
|
|
REFERENCES vn.department(id) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
ALTER TABLE vn.client
|
|
ADD CONSTRAINT client_lastDepartment_FK FOREIGN KEY IF NOT EXISTS (lastDepartmentFk)
|
|
REFERENCES vn.department(id) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
UPDATE vn.client c
|
|
JOIN vn.worker w ON w.id = c.salesPersonFk
|
|
JOIN vn.business b ON b.id = w.businessFk
|
|
SET c.departmentFk = b.departmentFk;
|
|
|
|
DROP TABLE IF EXISTS vn.departmentMana;
|
|
CREATE OR REPLACE TABLE `vn`.`departmentMana` (
|
|
`departmentFk` int(10) NOT NULL,
|
|
`size` int(11) NOT NULL DEFAULT 300,
|
|
`amount` int(11) NOT NULL DEFAULT 0,
|
|
`pricesModifierRate` double NOT NULL DEFAULT 0,
|
|
`isPricesModifierActivated` tinyint(1) NOT NULL DEFAULT 1,
|
|
PRIMARY KEY (`departmentFk`),
|
|
KEY `departmentMana_idx` (`departmentFk`),
|
|
CONSTRAINT `departmentMana_Department_FK` FOREIGN KEY (`departmentFk`)
|
|
REFERENCES `vn`.`department` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
|
|
|
|
DROP TABLE IF EXISTS bs.salesByClient;
|
|
CREATE OR REPLACE TABLE `bs`.`salesByClient` (
|
|
`dated` date NOT NULL DEFAULT '0000-00-00',
|
|
`departmentFk` int(10) DEFAULT NULL,
|
|
`clientFk` int(11) NOT NULL,
|
|
`amount` decimal(10,3) NOT NULL DEFAULT 0.000,
|
|
`equalizationTax` decimal(10,3) NOT NULL DEFAULT 0.000,
|
|
`amountNewBorn` decimal(10,3) NOT NULL DEFAULT 0.000,
|
|
PRIMARY KEY (`dated`,`clientFk`),
|
|
KEY `salesByClient_clientFk` (`clientFk`),
|
|
KEY `salesByClient_departmentFk` (`departmentFk`),
|
|
KEY `salesByClient_dated` (`dated`,`clientFk`,`amount`),
|
|
CONSTRAINT `salesByClient_clientFk_FK`
|
|
FOREIGN KEY (`clientFk`) REFERENCES `vn`.`client` (`id`) ON UPDATE CASCADE,
|
|
CONSTRAINT `salesByClient_department_FK`
|
|
FOREIGN KEY (`departmentFk`) REFERENCES `vn`.`department` (`id`) ON UPDATE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Ventas diarias por cliente y departamento';
|
|
|
|
INSERT INTO bs.salesByClient(
|
|
dated,
|
|
departmentFk,
|
|
clientFk,
|
|
amount,
|
|
equalizationTax,
|
|
amountNewBorn)
|
|
SELECT ss.dated, c.departmentFk, ss.clientFk, ss.amount, ss.equalizationTax, ss.amountNewBorn
|
|
FROM bs.salesByclientSalesPerson ss
|
|
JOIN vn.client c ON c.id = ss.clientFk;
|
|
|
|
DROP TABLE IF EXISTS `vn`.`departmentNoUnassign`;
|
|
|
|
CREATE OR REPLACE TABLE `vn`.`departmentNoUnassign` (
|
|
`departmentFk` int(10) NOT NULL,
|
|
PRIMARY KEY (`departmentFk`),
|
|
CONSTRAINT `departmentNoUnassign_FK` FOREIGN KEY (`departmentFk`) REFERENCES `vn`.`department` (`id`) ON UPDATE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci
|
|
COMMENT='Lista de departamentos comerciales que no se desasignarán automáticamente sus clientes';
|
|
|
|
DROP TABLE IF EXISTS `bs`.`portfolio`;
|
|
|
|
CREATE OR REPLACE TABLE `bs`.`portfolio` (
|
|
`departmentFk` int(10) NOT NULL,
|
|
`yeared` int(4) NOT NULL,
|
|
`monthed` int(2) NOT NULL,
|
|
`amount` decimal(10,2) DEFAULT NULL,
|
|
PRIMARY KEY (`departmentFk`,`yeared`,`monthed`),
|
|
KEY `portfolio_departmentFk` (`departmentFk`),
|
|
CONSTRAINT `portfolio_salesDepartment_department_FK`
|
|
FOREIGN KEY (`departmentFk`) REFERENCES `vn`.`department` (`id`) ON UPDATE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
|
|
|
|
|
|
CREATE OR REPLACE TABLE `bs`.`salesDepartmentEvolution` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`dated` date NOT NULL DEFAULT '0000-00-00',
|
|
`departmentFk` int(10) DEFAULT NULL,
|
|
`amount` decimal(10,3) NOT NULL DEFAULT 0.000,
|
|
`equalizationTax` decimal(10,3) NOT NULL DEFAULT 0.000,
|
|
`amountNewBorn` decimal(10,3) NOT NULL DEFAULT 0.000,
|
|
PRIMARY KEY (`id`),
|
|
KEY `salesDepartmentEvolution_salesDepartment` (`departmentFk`),
|
|
CONSTRAINT `salesDepartmentEvolution_salesDepartment_department_FK` FOREIGN KEY (`departmentFk`)
|
|
REFERENCES `vn`.`department` (`id`) ON UPDATE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
|
|
|
|
RENAME TABLE vn.salespersonConfig TO vn.manaConfig;
|
|
|
|
ALTER TABLE vn.company ADD IF NOT EXISTS phone varchar(15) DEFAULT NULL NULL;
|
|
|
|
|
|
CREATE OR REPLACE TABLE `vn`.`departmentManaExcluded` (
|
|
`departmentFk` int(10) NOT NULL,
|
|
PRIMARY KEY (`departmentFk`),
|
|
CONSTRAINT `departmentManaExcluded_FK` FOREIGN KEY (`departmentFk`)
|
|
REFERENCES `vn`.`department` (`id`) ON UPDATE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci
|
|
COMMENT='Departamentos de venta que tienen que estar excluidos del cálculo del maná';
|
|
|
|
|
|
RENAME TABLE vn.workerManaExcluded TO vn.workerManaExcluded__;
|
|
ALTER TABLE vn.workerManaExcluded__
|
|
COMMENT='Usuarios que tienen que estar excluidos del cálculo del maná
|
|
@deprecated 2024-07-16';
|
|
|
|
UPDATE `salix`.`ACL` SET property = 'getDepartmentMana' WHERE property = 'getSalesPersonMana';
|