#6321 - Negative tickets #1945
|
@ -1,3 +1,5 @@
|
|||
-- Auto-generated SQL script #202401191358
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('Ticket','itemLack','READ','ALLOW','ROLE','employee');
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('Ticket','itemLackDetail','READ','ALLOW','ROLE','employee');
|
||||
|
|
|
@ -167,7 +167,7 @@ module.exports = Self => {
|
|||
|
||||
return [
|
||||
{
|
||||
'itemFk': 7176,
|
||||
'itemFk': 72176,
|
||||
'longName': 'Anthurium Olivius x20',
|
||||
'warehouseFk': 60,
|
||||
'producer': null,
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
/* eslint-disable no-console */
|
||||
const ParameterizedSQL = require('loopback-connector').ParameterizedSQL;
|
||||
module.exports = Self => {
|
||||
Self.remoteMethod('itemLackDetail', {
|
||||
description: 'Download a ticket delivery note document',
|
||||
jsegarra marked this conversation as resolved
Outdated
|
||||
|
@ -8,62 +9,76 @@ module.exports = Self => {
|
|||
arg: 'id',
|
||||
jsegarra marked this conversation as resolved
Outdated
jgallego
commented
si estamos en la seccion ticket, yo el argumento lo llamaria itemFk, porque a mitad codigo, id puede dar confusion a que es el id de la entidad, en este caso ticket si estamos en la seccion ticket, yo el argumento lo llamaria itemFk, porque a mitad codigo, id puede dar confusion a que es el id de la entidad, en este caso ticket
|
||||
type: 'number',
|
||||
description: 'The item id',
|
||||
}
|
||||
},
|
||||
],
|
||||
returns: [
|
||||
{
|
||||
arg: 'body',
|
||||
type: ['object'],
|
||||
root: true
|
||||
}
|
||||
root: true,
|
||||
},
|
||||
],
|
||||
http: {
|
||||
path: `/itemLack/:id/detail`,
|
||||
verb: 'GET'
|
||||
}
|
||||
verb: 'GET',
|
||||
},
|
||||
});
|
||||
|
||||
Self.itemLackDetail = async(id, options) => {
|
||||
const myOptions = {};
|
||||
// const versionSQL = false;
|
||||
if (typeof options == 'object')
|
||||
Object.assign(myOptions, options);
|
||||
const conn = Self.dataSource.connector;
|
||||
|
||||
const detail = await Self.rawSQL(`
|
||||
const myOptions = {};
|
||||
if (typeof options == 'object') Object.assign(myOptions, options);
|
||||
|
||||
const stmt = new ParameterizedSQL(
|
||||
`
|
||||
SELECT
|
||||
s.Id_Movimiento, st.code, t.Id_Ticket, t.Alias, t.Fecha, s.Cantidad, ag.Agencia,
|
||||
s.id saleFk,
|
||||
st.code,
|
||||
t.id ticketFk,
|
||||
t.nickname,
|
||||
t.hour,
|
||||
jgallego
commented
este dos? este dos?
jsegarra
commented
Este 2 lo he puesto para que cuando filter.where no tenga scopeDays no de error la consulta, sin embargo, para ser lo mas agnóstico posible a quien lo llame, si no me lo pasas, asigno un 0 que es más lógico Este 2 lo he puesto para que cuando filter.where no tenga scopeDays no de error la consulta, sin embargo, para ser lo mas agnóstico posible a quien lo llame, si no me lo pasas, asigno un 0 que es más lógico
jsegarra
commented
Si lo ves correcto, te pido fusionar Si lo ves correcto, te pido fusionar
|
||||
s.quantity,
|
||||
ag.name,
|
||||
ts.alertLevel alertLevel,
|
||||
st.name stateName,
|
||||
st.id stateId,
|
||||
s.Id_Article id,
|
||||
s.itemFk itemFk,
|
||||
al.code alertLevelCode,
|
||||
z.name,
|
||||
z.hour theoreticalhour,
|
||||
cn.isRookie,
|
||||
sc.saleClonedFk turno,
|
||||
jgallego marked this conversation as resolved
Outdated
jgallego
commented
yo estoy cambiando los alertLevel, no podemos poner numero en el codigo, si no hay ..null yo estoy cambiando los alertLevel, no podemos poner numero en el codigo, si no hay ..null
jsegarra
commented
ok, lo reviso ok, lo reviso
jsegarra
commented
Lo he valorado con otros compañeros y esto de momento lo dejamos así Lo he valorado con otros compañeros y esto de momento lo dejamos así
|
||||
tr.saleFk peticionCompra,
|
||||
t.Fecha minTimed
|
||||
t.hour minTimed
|
||||
FROM
|
||||
Sale s
|
||||
JOIN Tickets t ON t.Id_Ticket=s.Id_Ticket -- vn.ticket
|
||||
LEFT JOIN zone z ON z.id = t.zoneFk -- vn.zone
|
||||
LEFT JOIN zoneClosure zc ON zc.zoneFk = t.zoneFk AND zc.dated = DateValue(t.Fecha)
|
||||
JOIN Clientes c ON c.Id_Cliente=t.Id_Cliente -- vn.client
|
||||
LEFT JOIN clientNewBorn cn ON cn.clientFk=c.Id_Cliente
|
||||
JOIN Agencias ag ON ag.Id_Agencia=t.Id_Agencia -- vn.agencyMode
|
||||
JOIN ticketState tls ON ts.ticketFk=t.Id_Ticket -- vn.sale
|
||||
LEFT JOIN state s ON st.id=ts.state
|
||||
LEFT JOIN alertLevel al ON al.id = st.alertLevel
|
||||
LEFT JOIN saleCloned sc ON sc.saleClonedFk = s.Id_Movimiento
|
||||
LEFT JOIN ticketRequest tr ON tr.saleFk = s.Id_Movimiento
|
||||
WHERE
|
||||
AND s.Id_Article = ?
|
||||
AND NOT Cantidad
|
||||
AND Fecha >= util.VN_CURDATE()
|
||||
AND Fecha < INTERVAL util.VN_CURDATE() + INTERVAL ? + 1 DAY
|
||||
ORDER BY s.Id_Movimiento DESC+
|
||||
`, [id, 2], myOptions);
|
||||
vn.sale s
|
||||
jsegarra marked this conversation as resolved
Outdated
jgallego
commented
es una chorrada pero comovas a cambiar cosas, no solemos poner los AS en los select es una chorrada pero comovas a cambiar cosas, no solemos poner los AS en los select
|
||||
JOIN vn.ticket t ON t.id=s.ticketFk -- vn.ticket
|
||||
jsegarra marked this conversation as resolved
Outdated
jgallego
commented
tls.alertLevel tls.alertLevel
|
||||
LEFT JOIN vn.zone z ON z.id = t.zoneFk -- vn.zone
|
||||
LEFT JOIN vn.zoneClosure zc ON zc.zoneFk = t.zoneFk -- AND zc.dated = DateValue(t.Fecha)
|
||||
JOIN vn.client c ON c.id=t.clientFk -- vn.client
|
||||
LEFT JOIN bs.clientNewBorn cn ON cn.clientFk=c.id
|
||||
JOIN vn.agencyMode agm ON agm.id=t.agencyModeFk -- vn.agencyMode
|
||||
jgallego marked this conversation as resolved
Outdated
jgallego
commented
aqui puedes devolver el codigo y en front gestionas como necesites, sino estas haciendo 2 funciones por cada linea..lo cual tiene un coste en velocidad al select aqui puedes devolver el codigo y en front gestionas como necesites, sino estas haciendo 2 funciones por cada linea..lo cual tiene un coste en velocidad al select
jsegarra
commented
cual select? al de zona? El siguiente es de hora y a continuación son booleanos cual select? al de zona? El siguiente es de hora y a continuación son booleanos
jsegarra
commented
cambiado cambiado
|
||||
JOIN vn.agency ag ON ag.id=agm.id -- vn.agencyMode
|
||||
JOIN vn.ticketState ts ON ts.ticketFk=t.id -- vn.sale
|
||||
LEFT JOIN vn.state st ON st.id=ts.state
|
||||
LEFT JOIN vn.alertLevel al ON al.id = st.alertLevel
|
||||
LEFT JOIN vn.saleCloned sc ON sc.saleClonedFk = s.id
|
||||
jgallego marked this conversation as resolved
Outdated
jgallego
commented
esto lo confirmamos con ellos, yo intentaria llevarlo a front sin este campo hasToIgnore y que se lo filtren, de lo contrario..mañana cuando cambien codigos esto habra que cambiarlo esto lo confirmamos con ellos, yo intentaria llevarlo a front sin este campo hasToIgnore y que se lo filtren, de lo contrario..mañana cuando cambien codigos esto habra que cambiarlo
jsegarra
commented
La consulta que estas viendo está copiada y traducida desde access La consulta que estas viendo está copiada y traducida desde access
Solo la he migrado.
Este campo sirve para ordenar los resultados
jsegarra
commented
cambiado cambiado
|
||||
LEFT JOIN vn.ticketRequest tr ON tr.saleFk = s.id
|
||||
LIMIT 1
|
||||
`,
|
||||
null
|
||||
);
|
||||
jsegarra marked this conversation as resolved
Outdated
jgallego
commented
(d.code = 'spainTeamVip') hasToIgnore (d.code = 'spainTeamVip') hasToIgnore
|
||||
// WHERE
|
||||
jgallego marked this conversation as resolved
jgallego
commented
esto hace que las consultas sean muy lentas, hay que buscar alternativa, busca si encuentras otra consulta similar por la BBDD esto hace que las consultas sean muy lentas, hay que buscar alternativa, busca si encuentras otra consulta similar por la BBDD
jsegarra
commented
cambiado cambiado
|
||||
// s.itemFk = ?
|
||||
|
||||
return detail;
|
||||
// AND t.landed >= util.VN_CURDATE()
|
||||
// AND t.landed < INTERVAL util.VN_CURDATE() + INTERVAL ? + 1 DAY
|
||||
// ORDER BY s.id DESC+
|
||||
// [id,2]
|
||||
|
||||
const sql = ParameterizedSQL.join([stmt], ';');
|
||||
const result = await conn.executeStmt(sql, myOptions);
|
||||
return result;
|
||||
};
|
||||
};
|
||||
jgallego
commented
esto seria hasObservation esto seria hasObservation
jsegarra
commented
Okey, reemplazaré Okey, reemplazaré
jsegarra
commented
cambiado cambiado
|
||||
|
|
esta descripcion corresponde ?