94 lines
2.3 KiB
SQL
94 lines
2.3 KiB
SQL
DELIMITER $$
|
|
CREATE OR REPLACE DEFINER=`vn`@`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;
|
|
DECLARE vHasDailyInvoice BOOLEAN;
|
|
|
|
SELECT cc.defaultPayMethodFk,
|
|
cc.defaultDueDay,
|
|
cc.defaultCredit,
|
|
cc.defaultIsTaxDataChecked,
|
|
cc.defaultHasCoreVnl,
|
|
cc.defaultMandateTypeFk,
|
|
c.hasDailyInvoice
|
|
INTO vPayMethodFk,
|
|
vDueDay,
|
|
vDefaultCredit,
|
|
vIsTaxDataChecked,
|
|
vHasCoreVnl,
|
|
vMandateTypeFk,
|
|
vHasDailyInvoice
|
|
FROM clientConfig cc
|
|
LEFT JOIN province p ON p.id = vProvinceFk
|
|
LEFT JOIN country c ON c.id = p.countryFk;
|
|
|
|
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 = UPPER(CONCAT(vSurnames, ' ', vFirstname)),
|
|
payMethodFk = vPayMethodFk,
|
|
dueDay = vDueDay,
|
|
credit = vDefaultCredit,
|
|
isTaxDataChecked = vIsTaxDataChecked,
|
|
hasCoreVnl = vHasCoreVnl,
|
|
isEqualizated = FALSE,
|
|
hasDailyInvoice = vHasDailyInvoice
|
|
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 ;
|