refs #6184 saveCmr #1788
Labels
No Milestone
No Assignees
3 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: verdnatura/salix#1788
Loading…
Reference in New Issue
No description provided.
Delete Branch "6184-saveCmr"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
@ -0,0 +61,4 @@
companyId: ticket.companyFk,
dmsTypeId: dmsType.id,
reference: '',
description: `Documento comprimido - CMR ${ticket.cmrFk}`,
al ser el tipo cmr, no es neceario poner cmr, pueden buscar por tipo
quitar texto en español.
Propuesta: poner cmr: cmrFk, ticket: ticketFk
@ -51,1 +51,4 @@
if (zipConfig && totalSize > zipConfig.maxSize) throw new UserError('Files are too large');
const baseUrl = (ctx.req.headers.origin)
? `${ctx.req.headers.origin}/api`
No he gastat mai .referer, pero crec que es millor gastar la funcio que crea pablo encomter de ctx.req.headers.origin
back/methods/url/getUrl.js
El problema es que no quiero el "/#!/", ya que quiero apuntar a la API
He possat ixe comentari pq ns si ja ho sabies i per aixo has ficat lo del .referer
@ -0,0 +35,4 @@
const ticket = await models.Ticket.findById(ticketId, myOptions);
if (ticket.cmrFk) {
const dmsType = await models.DmsType.findOne({
Este el cree cada vegada pero es el mateix id per a tots. Pujal fora del for
El nom jo posaría dmsTypeCmr
@ -0,0 +53,4 @@
if (!hasDmsCmr.dms()) {
const zip = await models.Route.downloadCmrsZip(ctx, ticket.cmrFk.toString(), myOptions);
let ctxUploadFile;
const
En eixe cas te que ser let, fijat baix.
Per a que siga const he tingut que juntar-ho.
@ -0,0 +60,4 @@
warehouseId: ticket.warehouseFk,
companyId: ticket.companyFk,
dmsTypeId: dmsType.id,
reference: '',
si es dms, en reference posa ticket.cmrFk
@ -63,6 +63,9 @@
},
"weight": {
"type": "number"
},
si el poses baix, ací dalt no cal. A no ser que vullgueres posar alguna propietat mes del tipo required..que no es el cas
Lo he tenido que poner ya que si no no me detecta ese campo.
New commits pushed, approval review dismissed automatically according to repository settings
Excepte el comentari esta ok, ara faltarien els test de back dels archius, si saps els fas si no pots derivar la tarea a algú de salix.
@ -0,0 +41,4 @@
Object.assign(myOptions, options);
const zipConfig = await models.ZipConfig.findOne(null, myOptions);
let totalSize = 0;
totalSize per a que es gasta?
Para nada, lo voy a quitar, ya no tiene sentido que esté ahí, bien visto
6184-saveCmrto refs #6184 saveCmrEl PR ya está listo para ser revisado.
@ -3069,0 +3072,4 @@
(2,'123456N','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet',69,3,4,2,'Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet'),
(3,'123456B','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet',567,5,6,69,'Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet','Lorem ipsum dolor sit amet');
UPDATE `vn`.`ticket` SET `cmrFk`= 1 WHERE `id`= 1;
Diria que es mejor enfoque poner el valor en el propio insert en ticket si es posible.
Asi luego para buscar fixtures o cambiarlas es mas facil
@ -0,0 +46,4 @@
const recipient = ticket.client().email;
if (!recipient)
throw new UserError('Client does not have an email');
Ya esta la traduccion
There is no assigned email for this client
por si te vale y asi no tenemos 2 casi iguales@ -0,0 +71,4 @@
if (!dms) throw new UserError('Cmr file does not exist');
const response = await models.Dms.downloadFile(ctx, dms.id);
const email = new Email('cmr', params);
Si solo se usa una vez params se puede poner directamente el objeto o si se quiere variable poner inmediatamente arriba asi facilita la lectura
@ -69,0 +45,4 @@
for (const id of ids) {
ctx.args = ctx.args || {};
ctx.args.id = Number(id);
const data = await models.Route.cmr(ctx, myOptions);
En javascript se puede hacer
const [data] = ...
y cojera el primer valor de la arrayAsi luego puedes hacer
zip.file(`${id}.pdf`, data, {binary: true});
@ -0,0 +1,22 @@
const models = require('vn-loopback/server/server').models;
No acabo de ver el enfoque de este test. Al final lo que estas haciendo es mockear la funcion para que devuelva lo que quieres. Realmente no esta testeando nada.
Veria mejor enfoque mockear generateNodeStream que es lo que supongo que debes evitar hacer.
Recuerda usar rollback
Falta esta parte
@ -0,0 +19,4 @@
await tx.rollback();
}
expect(error).toBeDefined();
Aixina no sabries si realment esta fallant lo que esperes o es altre error.
Millor possar
expect(error.message).toBe(`MyTextError`);
Jo lo que vuic saber es genéricament si falla o no, ja que no deuría
En salix soles testejar el fallos en concret sino pot ser que falle per cualsevol cosa i cregues que te falla per lo q volies
Dos comentarios y arreglar conflictos
Faltan por corregir los dos comentarios de:
modules/route/back/methods/route/specs/saveCmr.spec.js
modules/route/back/methods/route/specs/downloadCmrsZip.spec.js
.
@ -0,0 +35,4 @@
await tx.rollback();
} catch (e) {
await tx.rollback();
throw e;
Si el titul del test es 'should throw error if the cmr can't save' el test deuria de testejar que falle la peticio