DROP PROCEDURE IF EXISTS vn.clientCreate; DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`client_create`( vFirstname VARCHAR(50), vSurnames VARCHAR(50), vFi VARCHAR(9), vAddress TEXT, vPostcode CHAR(5), vCity VARCHAR(25), vProvinceFk SMALLINT(5), vCompanyFk SMALLINT(5), vPhone VARCHAR(11), vEmail VARCHAR(255), vUserFk INT) BEGIN /** * Create new client * * @params vFirstname firstName * @params vSurnames surnames * @params vFi company code from accounting transactions * @params vAddress address * @params vPostcode postCode * @params vCity city * @params vProvinceFk province * @params vCompanyFk company in which he has become a client * @params vPhone telephone number * @params vEmail email address * @params vUserFk user id */ DECLARE vPayMethodFk INT; DECLARE vDueDay INT; DECLARE vDefaultCredit DECIMAL(10, 2); DECLARE vIsTaxDataChecked TINYINT(1); DECLARE vHasCoreVnl BOOLEAN; DECLARE vMandateTypeFk INT; SELECT dafaultPayMethodFk, defaultDueDay, defaultCredit, defaultIsTaxDataChecked, defaultHasCoreVnl, defaultMandateTypeFk INTO vPayMethodFk, vDueDay, vDefaultCredit, vIsTaxDataChecked, vHasCoreVnl, vMandateTypeFk FROM clientConfig; INSERT INTO `client` SET id = vUserFk, name = CONCAT(vFirstname, ' ', vSurnames), street = vAddress, fi = TRIM(vFi), phone = vPhone, email = vEmail, provinceFk = vProvinceFk, city = vCity, postcode = vPostcode, socialName = CONCAT(vSurnames, ' ', vFirstname), payMethodFk = vPayMethodFk, dueDay = vDueDay, credit = vDefaultCredit, isTaxDataChecked = vIsTaxDataChecked, hasCoreVnl = vHasCoreVnl, isEqualizated = FALSE ON duplicate KEY UPDATE payMethodFk = vPayMethodFk, dueDay = vDueDay, credit = vDefaultCredit, isTaxDataChecked = vIsTaxDataChecked, hasCoreVnl = vHasCoreVnl, isActive = TRUE; INSERT INTO mandate (clientFk, companyFk, mandateTypeFk) SELECT vUserFk, vCompanyFk, vMandateTypeFk WHERE NOT EXISTS ( SELECT id FROM mandate WHERE clientFk = vUserFk AND companyFk = vCompanyFk AND mandateTypeFk = vMandateTypeFk ); END$$ DELIMITER ; ALTER TABLE vn.clientConfig ADD dafaultPayMethodFk tinyint(3) unsigned NULL; ALTER TABLE vn.clientConfig ADD defaultDueDay int unsigned NULL; ALTER TABLE vn.clientConfig ADD defaultCredit decimal(10, 2) NULL; ALTER TABLE vn.clientConfig ADD defaultIsTaxDataChecked tinyint(1) NULL; ALTER TABLE vn.clientConfig ADD defaultHasCoreVnl boolean NULL; ALTER TABLE vn.clientConfig ADD defaultMandateTypeFk smallint(5) NULL; ALTER TABLE vn.clientConfig ADD CONSTRAINT clientNewConfigPayMethod_FK FOREIGN KEY (dafaultPayMethodFk) REFERENCES vn.payMethod(id); ALTER TABLE vn.clientConfig ADD CONSTRAINT clientNewConfigMandateType_FK FOREIGN KEY (defaultMandateTypeFk) REFERENCES vn.mandateType(id); UPDATE vn.clientConfig SET dafaultPayMethodFk = 4, defaultDueDay = 5, defaultCredit = 300.0, defaultIsTaxDataChecked = 1, defaultHasCoreVnl = 1, defaultMandateTypeFk = 2;