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,18 +1,23 @@
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
/** /**
* Obtiene la serie de una factura * Obtiene la serie de una factura
* dependiendo del area del cliente. * dependiendo del area del cliente.
* *
* @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,43 +23,36 @@ BEGIN
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
DELETE tt.* CREATE OR REPLACE TEMPORARY TABLE tmp.sale_problems (
FROM tmp.sale_getProblems tt ticketFk INT(11),
JOIN ticketObservation tto ON tto.ticketFk = tt.ticketFk saleFk INT(11),
JOIN observationType ot ON ot.id = tto.observationTypeFk isFreezed INTEGER(1) DEFAULT 0,
WHERE ot.code = 'administrative' risk DECIMAL(10,1) DEFAULT 0,
AND tto.description = 'Miriam'; hasRisk TINYINT(1) DEFAULT 0,
hasHighRisk TINYINT(1) DEFAULT 0,
hasTicketRequest INTEGER(1) DEFAULT 0,
itemShortage VARCHAR(255),
isTaxDataChecked INTEGER(1) DEFAULT 1,
itemDelay VARCHAR(255),
itemLost VARCHAR(255),
hasComponentLack INTEGER(1),
hasRounding VARCHAR(255),
isTooLittle BOOL DEFAULT FALSE,
isVip BOOL DEFAULT FALSE,
PRIMARY KEY (ticketFk, saleFk)
) ENGINE = MEMORY;
CREATE OR REPLACE TEMPORARY TABLE tmp.sale_problems ( INSERT INTO tmp.sale_problems(ticketFk,
ticketFk INT(11), saleFk,
saleFk INT(11), isFreezed,
isFreezed INTEGER(1) DEFAULT 0, risk,
risk DECIMAL(10,1) DEFAULT 0, hasRisk,
hasRisk TINYINT(1) DEFAULT 0, hasHighRisk,
hasHighRisk TINYINT(1) DEFAULT 0, hasTicketRequest,
hasTicketRequest INTEGER(1) DEFAULT 0, isTaxDataChecked,
itemShortage VARCHAR(255), hasComponentLack,
isTaxDataChecked INTEGER(1) DEFAULT 1, hasRounding,
itemDelay VARCHAR(255), isTooLittle)
itemLost VARCHAR(255),
hasComponentLack INTEGER(1),
hasRounding VARCHAR(255),
isTooLittle BOOL DEFAULT FALSE,
isVip BOOL DEFAULT FALSE,
PRIMARY KEY (ticketFk, saleFk)
) ENGINE = MEMORY;
INSERT INTO tmp.sale_problems(ticketFk,
saleFk,
isFreezed,
risk,
hasRisk,
hasHighRisk,
hasTicketRequest,
isTaxDataChecked,
hasComponentLack,
hasRounding,
isTooLittle)
SELECT sgp.ticketFk, SELECT sgp.ticketFk,
s.id, s.id,
IF(FIND_IN_SET('isFreezed', t.problem), TRUE, FALSE) isFreezed, IF(FIND_IN_SET('isFreezed', t.problem), TRUE, FALSE) isFreezed,

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