giansalex / lycet

API REST de Facturación Electrónica Sunat utilizando Greenter.
MIT License
81 stars 43 forks source link

Agrega ruta de plantillas PDF personalizadas + Envia los parametros adicionales del PDF por POST #540

Closed zcastle closed 1 year ago

zcastle commented 1 year ago

Se modifico lo siguiente:

lycet/.env

TEMPLATESPDF_PATH=/path/to/template # Agregar la ruta estatica de las plantillas PDF

lycet//config/services.yaml

    Greenter\Report\HtmlReport:
        arguments:
            - '%env(TEMPLATESPDF_PATH)%' # Ruta donde se encuentra las plantillas PDF tomado del .env
            - cache: '%kernel.cache_dir%' # Colocar en false mientras se modifican las plantillas
              strict_variables: true

Se incluyo la funcionalidad para que se pueda enviar a la ruta invoice/pdf?token=123456 tanto el documento como los parametros del PDF

{
    "parameters": {
        "system": {"logo": "base64"}, 
        "user": {"header": ""}
    },
    "document":   {
        "ublVersion": "2.1",
        "tipoOperacion": "0101",
        ...
giansalex commented 1 year ago

Gracias por el aporte.

Esto representaría un cambio de ruptura, podriamos cambiar de version /api/v2, o tal vez aceptar ambos formato, verificando la existencia del campo document .

zcastle commented 1 year ago

Hola,

Hice las pruebas y acepta ambos tipos de formato:

{
  "ublVersion": "2.1",
  "tipoOperacion": "0101",
  ...

y

{
    "parameters": {
        "system": {"logo": "base64"}, 
        "user": {"header": ""}
    },
    "document":   {
        "ublVersion": "2.1",
        "tipoOperacion": "0101",
        ...

En el caso del segundo formato, trabajare para que verifique la existencia del campo document.

zcastle commented 1 year ago

Hola,

Acabo de verificar que los dos formatos puedan coexistir, en caso no se envie el campo document se considerara todo el POST como document

{ "ublVersion": "2.1", "tipoOperacion": "0101", ... y

{ "parameters": { "system": {"logo": "base64"}, "user": {"header": ""} }, "document": { "ublVersion": "2.1", "tipoOperacion": "0101", ...

NOTA: hice un PUSH con unas modificaciones para ser menos invasivo en el código con respecto al PUSH anterior.