fix: refs #7346 invoiceSerial
This commit is contained in:
parent
a8cc3f496f
commit
212e8d1a03
|
@ -1,5 +1,9 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `vn`.`invoiceSerial`(vClientFk INT, vCompanyFk INT, vType CHAR(15))
|
CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `vn`.`invoiceSerial`(
|
||||||
|
vClientFk INT,
|
||||||
|
vCompanyFk INT,
|
||||||
|
vType CHAR(15)
|
||||||
|
)
|
||||||
RETURNS char(2) CHARSET utf8mb3 COLLATE utf8mb3_general_ci
|
RETURNS char(2) CHARSET utf8mb3 COLLATE utf8mb3_general_ci
|
||||||
DETERMINISTIC
|
DETERMINISTIC
|
||||||
BEGIN
|
BEGIN
|
||||||
|
@ -9,10 +13,11 @@ BEGIN
|
||||||
*
|
*
|
||||||
* @param vClientFk Id del cliente
|
* @param vClientFk Id del cliente
|
||||||
* @param vCompanyFk Id de la empresa
|
* @param vCompanyFk Id de la empresa
|
||||||
* @param vType Tipo de factura ['global','multiple','quick']
|
* @param vType Tipo de factura (vn.invoiceOutSerial.type[ENUM])
|
||||||
* @return vSerie de la factura
|
* @return vSerie de la factura
|
||||||
*/
|
*/
|
||||||
DECLARE vTaxArea VARCHAR(25) COLLATE utf8mb3_general_ci;
|
DECLARE vTaxArea VARCHAR(25) COLLATE utf8mb3_general_ci;
|
||||||
|
DECLARE vTransactionCode INT(2);
|
||||||
DECLARE vSerie CHAR(2);
|
DECLARE vSerie CHAR(2);
|
||||||
|
|
||||||
IF (SELECT hasInvoiceSimplified FROM client WHERE id = vClientFk) THEN
|
IF (SELECT hasInvoiceSimplified FROM client WHERE id = vClientFk) THEN
|
||||||
|
@ -23,9 +28,15 @@ BEGIN
|
||||||
FROM client
|
FROM client
|
||||||
WHERE id = vClientFk;
|
WHERE id = vClientFk;
|
||||||
|
|
||||||
SELECT code INTO vSerie
|
SELECT CodigoTransaccion INTO vTransactionCode
|
||||||
FROM invoiceOutSerial
|
FROM taxArea
|
||||||
WHERE `type` = vType AND taxAreaFk = vTaxArea;
|
WHERE code = vTaxArea;
|
||||||
|
|
||||||
|
SELECT ios.code INTO vSerie
|
||||||
|
FROM invoiceOutSerial ios
|
||||||
|
JOIN taxArea ta ON ta.code = ios.taxAreaFk
|
||||||
|
WHERE ios.`type` = vType
|
||||||
|
AND ta.CodigoTransaccion = vTransactionCode;
|
||||||
|
|
||||||
RETURN vSerie;
|
RETURN vSerie;
|
||||||
END$$
|
END$$
|
||||||
|
|
|
@ -13,23 +13,20 @@ module.exports = async function(ctx, Self, tickets, reqArgs = {}) {
|
||||||
const failedtickets = [];
|
const failedtickets = [];
|
||||||
for (const ticket of tickets) {
|
for (const ticket of tickets) {
|
||||||
try {
|
try {
|
||||||
await Self.app.models.InvoiceOut.getSerial(ticket.clientFk, ticket.companyFk, ticket.addressFk, 'M');
|
await Self.app.models.InvoiceOut.getSerial(ticket.clientFk, ticket.companyFk, ticket.addressFk, 'multiple');
|
||||||
await Self.rawSql(
|
await Self.rawSql(
|
||||||
`CALL vn.ticket_closeByTicket(?)`,
|
`CALL vn.ticket_closeByTicket(?)`,
|
||||||
[ticket.id],
|
[ticket.id],
|
||||||
{userId}
|
{userId}
|
||||||
);
|
);
|
||||||
|
|
||||||
const [invoiceOut] = await Self.rawSql(
|
const [invoiceOut] = await Self.rawSql(`
|
||||||
`
|
|
||||||
SELECT io.id, io.ref, io.serial, cny.code companyCode, io.issued
|
SELECT io.id, io.ref, io.serial, cny.code companyCode, io.issued
|
||||||
FROM ticket t
|
FROM ticket t
|
||||||
JOIN invoiceOut io ON io.ref = t.refFk
|
JOIN invoiceOut io ON io.ref = t.refFk
|
||||||
JOIN company cny ON cny.id = io.companyFk
|
JOIN company cny ON cny.id = io.companyFk
|
||||||
WHERE t.id = ?
|
WHERE t.id = ?
|
||||||
`,
|
`, [ticket.id]);
|
||||||
[ticket.id],
|
|
||||||
);
|
|
||||||
|
|
||||||
const mailOptions = {
|
const mailOptions = {
|
||||||
overrideAttachments: true,
|
overrideAttachments: true,
|
||||||
|
@ -104,17 +101,14 @@ module.exports = async function(ctx, Self, tickets, reqArgs = {}) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Incoterms authorization
|
// Incoterms authorization
|
||||||
const [{firstOrder}] = await Self.rawSql(
|
const [{firstOrder}] = await Self.rawSql(`
|
||||||
`
|
|
||||||
SELECT COUNT(*) as firstOrder
|
SELECT COUNT(*) as firstOrder
|
||||||
FROM ticket t
|
FROM ticket t
|
||||||
JOIN client c ON c.id = t.clientFk
|
JOIN client c ON c.id = t.clientFk
|
||||||
WHERE t.clientFk = ?
|
WHERE t.clientFk = ?
|
||||||
AND NOT t.isDeleted
|
AND NOT t.isDeleted
|
||||||
AND c.isVies
|
AND c.isVies
|
||||||
`,
|
`, [ticket.clientFk]);
|
||||||
[ticket.clientFk],
|
|
||||||
);
|
|
||||||
|
|
||||||
if (firstOrder == 1) {
|
if (firstOrder == 1) {
|
||||||
const args = {
|
const args = {
|
||||||
|
@ -129,26 +123,17 @@ module.exports = async function(ctx, Self, tickets, reqArgs = {}) {
|
||||||
const email = new Email('incoterms-authorization', args);
|
const email = new Email('incoterms-authorization', args);
|
||||||
await email.send();
|
await email.send();
|
||||||
|
|
||||||
const [sample] = await Self.rawSql(
|
const [sample] = await Self.rawSql(`
|
||||||
`SELECT id
|
SELECT id
|
||||||
FROM sample
|
FROM sample
|
||||||
WHERE code = 'incoterms-authorization'
|
WHERE code = 'incoterms-authorization'
|
||||||
`,
|
`);
|
||||||
);
|
|
||||||
|
|
||||||
await Self.rawSql(
|
await Self.rawSql(`
|
||||||
`
|
|
||||||
INSERT INTO clientSample (clientFk, typeFk, companyFk) VALUES(?, ?, ?)
|
INSERT INTO clientSample (clientFk, typeFk, companyFk) VALUES(?, ?, ?)
|
||||||
`,
|
`, [ticket.clientFk, sample.id, ticket.companyFk], {userId});
|
||||||
[ticket.clientFk, sample.id, ticket.companyFk],
|
|
||||||
{userId},
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
await Self.rawSql(`
|
|
||||||
INSERT INTO util.debug (variable, value)
|
|
||||||
VALUES ('invoicingTicketError', ?)
|
|
||||||
`, [ticket.id + ' - ' + error]);
|
|
||||||
// Domain not found
|
// Domain not found
|
||||||
if (error.responseCode == 450) {
|
if (error.responseCode == 450) {
|
||||||
await invalidEmail(ticket);
|
await invalidEmail(ticket);
|
||||||
|
|
Loading…
Reference in New Issue