feat: refs #7905 getBuysCsv #2900
Labels
No Milestone
No Assignees
3 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: verdnatura/salix#2900
Loading…
Reference in New Issue
No description provided.
Delete Branch "7905-getBuysCsv"
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?
7905-getBuysCsvto feat: refs #7905 getBuysCsvfeat: refs #7905 getBuysCsvto WIP: feat: refs #7905 getBuysCsv@ -0,0 +1,75 @@
const UserError = require('vn-loopback/util/user-error');
@jsegarra se quiere que los proveedores puedan tener sus buys. Ya lo hicimos via json, ahora lo quieren via csv, pero con este enfoque duplicamos codigo, hay forma de tenerlo unificado o por parametros ?
Si, esto ya lo he visto pero tengo que buscar el commit
El ejemplo que tengo en la cabeza es cuando se planteo la necesidad de que printReport, según la cabecera generase un pdf o un html
Creo que la cabecera que buscamos es la de accept
El commit
bb96125bbd
#2900 (comment)
@ -0,0 +13,4 @@
http: {source: 'path'}
}
],
returns: [
El problema que veo en mi propuesta es con respecto al return
Aunqaue puedes hacer que cuando tengas los datos o el stream, modificar ctx mediante
ctx.res.setHeader('Content-Type', 'text/csv'); ctx.res.setHeader('Content-Disposition', 'attachment; filename="discounted_price.csv"');
octx.res.setHeader('Content-Type', 'application/json');
Ya me he pegado de "ostias" para intentar tenerlo todo en un método, al final lo separé por el return como bien has dicho.
El segundo problema es que al retornar un JSON, claro el JSON puede tener objetos anidados, cosa que el CSV no, ya que es plano.
Por eso también obté por hacer la query directamente, ya que, a parte de lo mencionado, al utilizan loopback te crea objetos metadata en la variable que luego hay que eliminar y no se...
En ese caso eztraeria el core de la función getbuys a una función aparte y haría llamadas a esta nueva
Tipo lo que se hace en dms y docuware
Ya te sigo, por lo que veo, cuando se usa toCSV no hay relaciones/includes
Sin embargo, modules/invoiceOut/back/methods/invoiceOut/negativeBasesCsv.js, obtiene datos y luego hace un map de los resultados
A lo mejor podriamos invertir tiempo para que dato un objeto(label:path), montar un csv
El tema de que el CSV no tenga objetos anidados No hay que darle una solución técnica sino hablar con el proveedor ya que implica que tenga que recuperar los datos de forma distinta
@jgallego Hemos hecho una propuesta para usar getBuys desde getBuysCsv
WIP: feat: refs #7905 getBuysCsvto feat: refs #7905 getBuysCsv