fix: refs #6900 fine tunning #2905

Merged
jorgep merged 5 commits from 6900-hotfix-fineTunning into master 2024-09-04 13:57:27 +00:00
8 changed files with 99 additions and 118 deletions
Showing only changes of commit ac5ff9e807 - Show all commits

View File

@ -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$$

View File

@ -23,13 +23,6 @@ BEGIN
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
DELETE tt.*
FROM tmp.sale_getProblems tt
JOIN ticketObservation tto ON tto.ticketFk = tt.ticketFk
JOIN observationType ot ON ot.id = tto.observationTypeFk
WHERE ot.code = 'administrative'
AND tto.description = 'Miriam';
CREATE OR REPLACE TEMPORARY TABLE tmp.sale_problems ( CREATE OR REPLACE TEMPORARY TABLE tmp.sale_problems (
ticketFk INT(11), ticketFk INT(11),
saleFk INT(11), saleFk INT(11),

View File

@ -0,0 +1,2 @@
-- Place your SQL code here
ALTER TABLE dipole.expedition_PrintOut MODIFY COLUMN isPrinted int(11) DEFAULT 0 NOT NULL COMMENT '0.- Not Printed ; 1.- Printed; 2.- Selected ; 3.- Error ; 4.- Waiting to be printed';

View File

@ -27,25 +27,25 @@ module.exports = function(Self) {
}; };
}); });
// this.beforeRemote('**', async ctx => { this.beforeRemote('**', async ctx => {
// if (!this.hasFilter(ctx)) return; if (!this.hasFilter(ctx)) return;
// const defaultLimit = this.app.orm.selectLimit; const defaultLimit = this.app.orm.selectLimit;
// const filter = ctx.args.filter || {limit: defaultLimit}; const filter = ctx.args.filter || {limit: defaultLimit};
// if (filter.limit > defaultLimit) { if (filter.limit > defaultLimit) {
// filter.limit = defaultLimit; filter.limit = defaultLimit;
// ctx.args.filter = filter; ctx.args.filter = filter;
// } }
// }); });
// this.afterRemote('**', async ctx => { this.afterRemote('**', async ctx => {
// if (!this.hasFilter(ctx)) return; if (!this.hasFilter(ctx)) return;
// const {result} = ctx; const {result} = ctx;
// const length = Array.isArray(result) ? result.length : result ? 1 : 0; const length = Array.isArray(result) ? result.length : result ? 1 : 0;
// if (length >= this.app.orm.selectLimit) throw new UserError('Too many records'); if (length >= this.app.orm.selectLimit) throw new UserError('Too many records');
// }); });
// Register field ACL validation // Register field ACL validation
/* /*

View File

@ -1,6 +1,6 @@
// module.exports = async function(app) { module.exports = async function(app) {
// if (!app.orm) { if (!app.orm) {
// const ormConfig = await app.models.OrmConfig.findOne(); const ormConfig = await app.models.OrmConfig.findOne();
// app.orm = ormConfig; app.orm = ormConfig;
// } }
// }; };

View File

@ -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);

View File

@ -6,16 +6,6 @@
order="concept ASC, quantity DESC" order="concept ASC, quantity DESC"
auto-load="true"> auto-load="true">
</vn-crud-model> </vn-crud-model>
<vn-crud-model
url="Shelvings"
data="shelvings"
auto-load="true">
</vn-crud-model>
<vn-crud-model
url="Parkings"
data="parkings"
auto-load="true">
</vn-crud-model>
<vn-data-viewer model="model"> <vn-data-viewer model="model">
<vn-card class="vn-w-lg"> <vn-card class="vn-w-lg">
<vn-table model="model"> <vn-table model="model">
@ -208,7 +198,7 @@
</vn-td> </vn-td>
<vn-td expand> <vn-td expand>
<vn-autocomplete <vn-autocomplete
data="shelvings" url="Shelvings"
show-field="code" show-field="code"
value-field="code" value-field="code"
ng-model="itemShelvingSale.shelvingFk" ng-model="itemShelvingSale.shelvingFk"
@ -217,7 +207,7 @@
</vn-td> </vn-td>
<vn-td expand> <vn-td expand>
<vn-autocomplete <vn-autocomplete
data="parkings" url="Parkings"
show-field="code" show-field="code"
value-field="id" value-field="id"
ng-model="itemShelvingSale.parkingFk" ng-model="itemShelvingSale.parkingFk"

View File

@ -18,7 +18,7 @@ SELECT m.code mandateCode,
WHERE m.companyFk = ? WHERE m.companyFk = ?
AND m.finished IS NULL AND m.finished IS NULL
AND c.id = ? AND c.id = ?
AND mt.name = 'CORE' AND mt.code = 'CORE'
AND adt.description = 'Referencia Remesas' AND adt.description = 'Referencia Remesas'
GROUP BY m.id, ad.value GROUP BY m.id, ad.value
ORDER BY m.created DESC ORDER BY m.created DESC