88 lines
2.1 KiB
MySQL
88 lines
2.1 KiB
MySQL
|
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 defaultPayMethodFk,
|
||
|
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 = UPPER(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 ;
|