Coder Social home page Coder Social logo

giansalex / lycet Goto Github PK

View Code? Open in Web Editor NEW
80.0 12.0 41.0 1.18 MB

API REST de Facturación Electrónica Sunat utilizando Greenter.

License: MIT License

PHP 92.34% HTML 2.78% Dockerfile 4.31% Shell 0.51% Procfile 0.05%
greenter facturacion-electronica sunat docker php symfony api-rest

lycet's Issues

Json Model - Resumen Diario

Hola @giansalex , estube probando el resumen diario de boletas, pero me bota un error o en que estoy errando??. ("No existe información de serie o número. - Detalle: xxx.xxx.xxx value='ticket: 1550786770356 error: Error en la linea: 1. Solo se acepta informacion de comprobantes de referencia para notas (Credito o debito): el tipo de comprobante es: 03 y debe de ser 07 o 08.')
image
Ejemplo de prueba
{
"correlativo": "003",
"fecGeneracion": "2019-02-18T12:00:00+02:00",
"fecResumen": "2019-02-21T12:00:00+00:00",
"moneda": "PEN",
"company": {
"ruc": "20123456789",
"razonSocial": "REST. MORALY",
"nombreComercial": "MORALY",
"address": {
"ubigueo": "180101",
"codigoPais": "PE",
"departamento": "MOQUEGUA",
"provincia": "MARISCAL NIETO",
"distrito": "MOQUEGUA",
"urbanizacion": "-",
"direccion": "CALLE LIMA 398",
"codLocal": "0000"
},
"email": "[email protected]",
"telephone": "997788551"
},
"details": [
{
"tipoDoc": "03",
"serieNro": "B001-1",
"clienteTipo": "1",
"clienteNro": "42731344",
"docReferencia": {
"tipoDoc": "",
"nroDoc": ""
},
"estado": "1",
"total": "25.00",
"mtoOperGravadas": "21.19",
"mtoOperInafectas": 0,
"mtoOperExoneradas": 0,
"mtoOperExportacion": 0,
"mtoOperGratuitas": 0,
"mtoOtrosCargos": 0,
"mtoIGV": "3.81",
"mtoIvap": 0,
"mtoISC": 0,
"mtoOtrosTributos": 0
}
]
}

Configuración multiempresa

Existe la posibilidad de almacenar múltiples certificados, logos y credenciales sunat? para poder tener multiples emisores y no solo uno.
por ahora esos datos se extraen desde variables de entorno, ¿que tanto habria que modificar para conseguirlo?

Error generando PDF

Hola #giansalex al enviar una solicitud axios.post('http://localhost:8000/api/v1/invoice/pdf', args, { params: { token: '123456' } }).then(res => console.log(res)).catch(err => console.log(err));
En la consola obtengo Uncaught Exception: The response content must be a string or object implementing __toString(), "boolean" given.
¿Que puede estar pasando?
Muchas gracias por la respuesta.

Ejemplo de envio Api Lycet usando curl [PHP]

Este código lo saque probando con Postman, para los que empezamos desde cero, de haber sabido esto me hubiera ahorrado días. Gracias Giancarlo por la libreria muy buena

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "http://localhost/lycet/public/api/v1/invoice/send?token=123456",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => '
  {
    "tipoDoc": "01",
    "serie": "F001",
    "correlativo": "111",
    "fechaEmision": "2018-01-20T12:34:00+01:00",
    "client": {
      "tipoDoc": "6",
      "numDoc": "20546687668",
      "rznSocial": "COMPANY SAC"
    },
    "company": {
      "ruc": "20123456789",
      "razonSocial": "LYCET COMPANY SAC",
      "nombreComercial": "COMPANY ",
      "address": {
        "ubigueo": "150101",
        "codigoPais": "PE",
        "departamento": "LIMA",
        "provincia": "LIMA",
        "distrito": "LIMA",
        "urbanizacion": "-",
        "direccion": "AV ITALIA"
      }
    },
    "tipoMoneda": "PEN",
    "mtoOperGravadas": 100,
    "mtoOperInafectas": 0,
    "mtoOperExoneradas": 0,
    "mtoIGV": 18,
    "mtoImpVenta": 118,
    "details": [
      {
        "unidad": "NIU",
        "cantidad": 12,
        "codProducto": "string",
        "descripcion": "PRODUCTO 1",
        "mtoValorUnitario": 100,
        "igv": 18,
        "tipAfeIgv": "10",
        "mtoPrecioUnitario": 118,
        "mtoValorVenta": 100
      }
    ],
    "legends": [
      {
        "code": "1000",
        "value": "SON CIEN CON 00/100 SOLES"
      }
    ]
  }
  
  ',
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "cache-control: no-cache"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}

Consulta sobre manejo Configuración de la API

@giansalex tengo 2 dudas espero puedas ayudarme:

  1. Entiendo que en el archivo .env se coloca un token por defecto 123456, como podria generar un token más sofisticado? y en el cliente como sería su uso?
  2. Según entiendo, la API solo podría ser usado por un cliente a la vez? ya que requiere clave SOL y el certificado digital, si es así podrias orientarme o darme la idea masomenos de cómo podria hacer para usar la misma API con diferentes clientes los cuales tienen su propio logo y certificado digital?

UBL 2.1

Actualizar a la versión de greenter con UBL 2.1

Lycet modo Producción

Hola @giansalex, para llevar Lycet en modo producción, clone el repositorio, luego APP_ENV=prod , despues composer install -o , hay algún paso adicional?

Nombre Comercial no cumple con el formato

Hola, estoy usando este json para enviar la factura, SUNAT responde que ha sido aceptada, pero me envia observaciones

JSON:

{  
   "ublVersion":"2.1",
   "tipoOperacion":"0101",
   "serie":"FFFF",
   "correlativo":3
   },
   "tipoMoneda":"PEN",
   "details":[  
      {  
         "unidad":"NIU",
         "cantidad":1,
         "descripcion":"Numbre item",
         "descuento":0,
         "mtoValorUnitario":21.19,
         "mtoPrecioUnitario":25,
         "igv":3.81,
         "tipAfeIgv":"10",
         "mtoValorVenta":21.19,
         "mtoValorGratuito":0,
         "mtoBaseIgv":21.19,
         "porcentajeIgv":18
      }
   ],
   "tipoDoc":"01",
   "sumOtrosCargos":0,
   "mtoOperInafectas":0,
   "mtoOperExoneradas":0,
   "mtoISC":0,
   "mtoOtrosTributos":0,
   "mtoOperGravadas":21.19,
   "mtoIGV":3.81,
   "totalImpuestos":3.81,
   "mtoImpVenta":25,
   "mtoOperExportacion":0,
   "fechaEmision":"2019-02-27T09:01:57-0500",
   "legends":[  
      {  
         "code":"1000",
         "value":"VEINTICINCO SOLES Y 00\/100"
      }
   ]
}

Observaciones

"notes": [
                "4092 - El nombre comercial del emisor no cumple con el formato establecido - INFO: 4092 (nodo: \"cac:PartyName/cbc:Name\" valor: \"\")",
                "4293 - El importe total de impuestos por línea no coincide con la sumatoria de los impuestos por línea. - Error en la linea: 1: 4293 (nodo: \"cac:TaxTotal/cbc:TaxAmount\" valor: \"0.00\")",
                "4287 - El precio unitario de la operación que está informando difiere de los cálculos realizados en base a la información remitida - Error en la linea: 1: 4287 (nodo: \"cac:AlternativeConditionPrice/cbc:PriceAmount\" valor: \"25.000000\")",
                "4309 - La sumatoria de valor de venta no corresponde a los importes consignados - INFO : 4309 (nodo: \"cac:LegalMonetaryTotal/cbc:LineExtensionAmount\" valor: \"0.00\")"
            ]

Al revisar el XML generado, veo

<cac:LegalMonetaryTotal>
        <cbc:LineExtensionAmount currencyID="PEN">0.00</cbc:LineExtensionAmount>
        <cbc:PayableAmount currencyID="PEN">25.00</cbc:PayableAmount>
    </cac:LegalMonetaryTotal>

LineExtension amount se genera como 0.00

<cac:TaxTotal>
            <cbc:TaxAmount currencyID="PEN">0.00</cbc:TaxAmount>
            ....

cbc:TaxAmount tambien se genera como 0.00

Hay algun campo que debo estar olvidando?

Modelo JSON Notas de credito

Tienen un modelo del JSON que se le envía al endpoint de las notas de credito?

En el ambiente de prueba de SUNAT me aparece el erro de que no encuentra el documento de referencia

Error al enviar linea con Precio = "0"

Al enviar una linea de factura con precio "0" me aparece el siguiente error...
Debe existir el tag cac:AlternativeConditionPrice/cbc:PriceAmount - Detalle: xxx.xxx.xxx value='ticket: 1551969141757 error: Error en la linea: 2: 2028 (nodo: "/" valor: "")'

Como puedo modificar el Json para poder enviar lo que me pide, o que puedo hacer

Error al enviar JSON - Comunicacion de Baja

Buenas, estoy tratando de realizar el documento JSON de la comunicación de bajas, es el siguiente, pero tengo problemas porque recibo el error

500 internal server

{
	"correlativo":"111",
	"fecGeneracion":"2019-02-16T15:51:01+00:00",
	"fecComunicacion":"2019-03-16T15:51:01+00:00",
	"company":
	{
		"ruc":"20123456789",
		"razonSocial":"GREENTER S.A.C",
		"nombreComercial":"GREENTER",
		"address":
		{
			"codigoPais":"PE",
			"direccion":"AV LOS GERANIOS 321 - LIMA - LIMA - PERU"
			
		}
	},
	"details":
	[
		{
			"tipoDoc":"01",
			"serie":"F001",
			"correlativo":"02132132",
			"desMotivoBaja":"ERROR DE SISTEMA"
		},
		{
			"tipoDoc":"07",
			"serie":"FC01",
			"correlativo":"222",
			"desMotivoBaja":"ERROR DE RUC"
			
		}
		]
}

Si alguien puede ayudarme sería de gran ayuda, gracias.

PDF salto de página,

Mi duda es , si al tener muchos items en el detalle de la factura, y éste ocupa mas de 2 hojas en el pdf que se genera. ¿ Es necesario que en cada hoja vayan los datos obligatorios?(RUC, razon social,...etc). o puede estar de la siguiente manera.
Screenshot_29

Error en pruebas con swagger

Estoy probando la api lycet desde swagger pero al momento de usar /invoice/send se tiene como respuesta: TypeError: Failed to fetch. A que se debe esto o estoy haciendo algo mal?

Imprimir en ticketera

Estimado Giancarlos.

Como puedo hacer para imprimir en ticketera (matricial o termica, con logo y codigo QR), ya que la empresa tiene una ticketera y desea imprimir automáticamente cuando hace la venta en su aplicación.

Vale decir que actualmente envío un Json desde la aplicación y realiza la generación del PDF con lycet y de ahí imprime el PDF en papel bond y le entrega al cliente pero se demora un poco con este proceso.

Y por su puesto como es un negocio que tiene clientes en cola, desea que la impresión sea rápida. ¿Debe hacerse primero el PDF y mandarla a imprimir?¿de ser así como puedo mandarla a imprimir automáticamente de php? .... o Directamente imprimir en ticketera sin necesidad de generar pdf?.

Perdón por tu tiempo.

Que me recomiendas ...

Formato del contenido de cdrZip

Hola @giansalex, el cdrZip de DocumentResponse ¿Es un tipo de dato String o base64? Estoy tratando de decodificar para convertirlo en un archivo Zip válido para almacenarlo, Tal como el ejemplo de greenter-sample.

Fetch error Possible cross-origin (CORS) issue

Alguna solución? ya que en versiones anteriores no salia este error.
Fetch error Possible cross-origin (CORS) issue? The URL origin (http://localhost) does not match the page (http://petstore.swagger.io). Check the server returns the correct 'Access-Control-Allow-*' headers.

API Sin Token

Estimado @giansalex , he tenido problemas al consumir el servicio de Lycet con Angular. Hay manera que configurar Lycet sin TOKEN ?

Limite de Envío de Facturas

Hola, quizá esta pregunta no pertenece a lycet, pero quisiera saber si SUNAT tiene un rate limit para enviar comprobantes?

Porque cuando intento enviar muchas facturas seguidas me aparece un error de

No tiene el perfil para enviar comprobantes electronicos - Detalle: Rejected by policy

el error es aleatorio. a veces aparece, a veces no

Consulta sobre instalación Lycet

Hola @giansalex, he seguido todos los pasos excepto "Use lycet-ui-config for configure Logo and Certificate." es necesario?, Estoy trabajando con el certificado SFSCert.pem y json que viene con el ejemplo. y me bota error:
post_error1

post_error2

FACTURA ACEPTADA CON OBSERVACIONES

Estoy enviando mis facturas en producción pero el cdr me indica observaciones,para el caso de FACTURAS GRAVADAS:
4293 - El importe total de impuestos por linea no coincide con la sumatoria de los impuestos por línea. - Error en la linea: 1: 4293 (nodo: "cac:TaxTotal/cbc:TaxAmount" valor: "0.00")
4287 - El precio unitario de la operación que está informando difiere de los calculos realizados en base a la informacion remitida - Error en la linea: 1: 4287 (nodo: "cac:AlternativeConditionPrice/cbc:PriceAmount" valor: "10")
4310 - La sumatoria del Total del valor de venta mas los impuestos no concuerda con la base imponible - INFO : 4310 (nodo: "/" valor: "")
FACTURAS EXONERADAS:
4310 - La sumatoria del Total del valor de venta más los impuestos no concuerda con la base imponible - INFO : 4310 (nodo: "/" valor:"")

JSON GRAVADAS:
{
"ublVersion": "2.1",
"tipoOperacion": "0101",
"tipoDoc": "01",
"serie": "F001",
"correlativo": "00000068",
"fechaEmision": "2019-12-02T19:25:13+01:00",
"client": {
"tipoDoc": "6",
"numDoc": "20603343710",
"rznSocial": "CHIN NEGOCIOS Y TRANSPORTES S.A.C.",
"address": {
"ubigueo": "140105",
"codigoPais": "PE",
"departamento": "-",
"provincia": "-",
"distrito": "-",
"urbanizacion": "-",
"direccion": "AV. MARIANO CORNEJO NRO. 425 C.P. CPM. NUEVO SAN LORENZO III ETAPA LAMBAYEQUE - CHICLAYO - JOSE LEONARDO ORTIZ",
"codLocal": "0000"
},
"email": null,
"telephone": null
},
"company": {
"ruc": "20604473081",
"razonSocial": "ASIU COSTA SAC",
"nombreComercial": "ASIU COSTA SAC",
"address": {
"ubigueo": "140105",
"codigoPais": "PE",
"departamento": "-",
"provincia": "-",
"distrito": "-",
"urbanizacion": "-",
"direccion": "PRINCIPAL:CAL.CARLOS CASTAÑEDA NRO. 261 P.J. FRANCISCO CABRERA LAMBAYEQUE - CHICLAYO - JOSE LEONARDO ORTIZ/",
"codLocal": "0000"
},
"email": null,
"telephone": null
},
"tipoMoneda": "PEN",
"mtoOperGravadas": 100,
"mtoOperInafectas": 0,
"mtoOperExoneradas": 0,
"mtoOperExportacion": 0,
"mtoIGV": 18,
"icbper": 0,
"totalImpuestos": 18,
"valorVenta": 100,
"mtoImpVenta": 118,
"SumDsctoGlobal": 0,
"MtoDescuentos": 0,
"Descuentos": null,
"details": [
{
"unidad": "ZZ",
"cantidad": 2,
"codProducto": "-",
"descripcion": "PRUEBA DE SISTEMAS",
"mtoValorUnitario": 50,
"mtoBaseIgv": 100,
"porcentajeIgv": 18,
"igv": 18,
"tipAfeIgv": "10",
"factorIcbper": "0",
"icbper": "0",
"TotalImpuestos": 18,
"mtoPrecioUnitario": 59,
"mtoValorVenta": 100
}
],
"legends": [
{
"code": "1000",
"value": "CIENTO DIECIOCHO CON 00 /100 SOLES"
}
]
}
JSON EXONERADAS:
{
"ublVersion": "2.1",
"tipoOperacion": "0101",
"tipoDoc": "01",
"serie": "F005",
"correlativo": "00002284",
"fechaEmision": "2019-12-03T11:10:25+01:00",
"client": {
"tipoDoc": "6",
"numDoc": "20603343710",
"rznSocial": "CHIN NEGOCIOS Y TRANSPORTES S.A.C.",
"address": {
"ubigueo": "140105",
"codigoPais": "PE",
"departamento": "-",
"provincia": "-",
"distrito": "-",
"urbanizacion": "-",
"direccion": "AV. MARIANO CORNEJO NRO. 425 C.P. CPM. NUEVO SAN LORENZO III ETAPA LAMBAYEQUE - CHICLAYO - JOSE LEONARDO ORTIZ",
"codLocal": "0000"
}
},
"company": {
"ruc": "20604209316",
"razonSocial": "ASIU SELVA SAC",
"nombreComercial": "ASIU SELVA SAC",
"address": {
"ubigueo": "160101",
"codigoPais": "PE",
"departamento": "-",
"provincia": "-",
"distrito": "-",
"urbanizacion": "-",
"direccion": "PRINCIPAL:JR. TRUJILLO NRO.726A P.J. SAN ANTONIO LORETO - MAYNAS - IQUITOS/SUCURSAL:CAR.FEDERICO BASADRE KM. 3600 UCAYALI - CORONEL PORTILLO - YARINACOCHA\t",
"codLocal": "0000"
}
},
"tipoMoneda": "PEN",
"mtoOperExoneradas": 100,
"mtoIGV": 0,
"totalImpuestos": 0,
"valorVenta": 100,
"mtoImpVenta": 100,
"details": [
{
"unidad": "ZZ",
"cantidad": 1,
"codProducto": "-",
"descripcion": "PRUEBA DE SISTEMAS",
"mtoValorUnitario": 100,
"mtoBaseIgv": 100,
"porcentajeIgv": 0,
"igv": 0,
"tipAfeIgv": "20",
"TotalImpuestos": 0,
"mtoPrecioUnitario": 100,
"mtoValorVenta": 100
}
],
"legends": [
{
"code": "1000",
"value": "CIEN CON 00 /100 SOLES"
}
]
}
¿Alguna sugerencia?

¿Nuevo impuesto de ICBPER?

Buenas tardes, como podría contribuir para colocar el nuevo impuesto ICBPER. La única diferencia que noto es el impuesto del catalogo 5

image

Uno de los cambios que he notado són en el archivo
invoice2.1.xml.twig pero aún no logro mapear modificar el objeto para agregar dicho impuesto

Quizás es más fácil de lo que me estoy complicando saludos.

error al generar pdf

Buenas noches @giansalex, que crees que estoy haciendo mal, el xml y cdr si esta normal, el error me muestra cuando utilizo el api "http:://localhost:8000/api/v1/invoice/pdf?token=123456".
pdf_lycet_rror

Modelo JSON Guía de Remisión

Estimados srs. buenas tardes, ojalá me puedan ayudar con un modelo de json ubl 2.1 para guia de remisión ... estoy haciendo envíos y no tengo éxito ... tengo el error 500 internal server error.

Este es el json que estoy enviando:

{
	"tipoDoc":"09",
	"serie":"T001",
	"correlativo":"213123",
	"observacion":"NOTA GUIA",
	"fechaEmision": "2019-03-16T15:51:01-05:00",
	"company":
	{
		"ruc":"20123456789",
		"razonSocial":"GREENTER S.A.C",
		"nombreComercial":"GREENTER",
		"address":
		{
			"ubigueo":"060101",
			"codigoPais":"PE",
			"departamento":"cajamarca",
			"provincia":"cajamarca",
			"distrito":"cajamarca",
			"urbanizacion":"null",
			"direccion":"AV LOS GERANIOS 321 - LIMA - LIMA - PERU"
		},
		"email":"null",
		"telephone":"null"
	},
	"destinatario":
	{
		"tipoDoc":"6",
		"numDoc":"20000000002",
		"rznSocial":"EMPRESA 1",
		"address":"null",
		"email":"null",
		"telephone":"null"
         },
		"tercero":
		{
			"tipoDoc":"6",
			"numDoc":"20000000003",
			"rznSocial":"EMPRESA SA",
			"address":"null",
			"email":"null",
			"telephone":"null"
		},
		"envio":
		{
			"codTraslado":"01",
			"desTraslado":"VENTA",
			"indTransbordo":false,
			"pesoTotal":12.5,
			"undPesoTotal":"KGM",
			"numBultos":2,
			"modTraslado":"01",
			"fecTraslado": "2019-03-16 15:51:01.046040",
			"numContenedor":"XD-2232",
			"codPuerto":"123",
			"transportista":
			{
				"tipoDoc":"6",
				"numDoc":"20000000002",
				"rznSocial":"TRANSPORTES S.A.C",
				"placa":"ABI-453",
				"choferTipoDoc":"1",
				"choferDoc":"40003344"
			},
			"llegada":
			{
				"ubigueo":"150101",
				"direccion":"AV LIMA"
			},
			"partida":
			{
				"ubigueo":"150203",
				"direccion":"AV ITALIA"
			}
		},
		"docBaja":
		{
			"tipoDoc":"09",
			"nroDoc":"T001-00001"
		},
		"relDoc":
		{
			"tipoDoc":"02",
			"nroDoc":"213123"
		},
		"details":
                [
		{
			"codigo":"PROD1",
			"descripcion":"PROD 1",
			"unidad":"ZZ",
			"cantidad":2,
			"codProdSunat":"P001"
		}
                ]
}

Obtener Qr code

Hola @giansalex, tengo una url donde guardo el comprobante, ¿Cómo podría configurar Lycet para que obtenga el parámetro (url) y la muestre en el qr code?. Muy agradecido.

Lycet producción

Hola giansalex
Una consuta:
¿Que parametros debo configurar para cambiar de BETA a PRODUCCIÓN?

He cambiado las rutas por defecto por estas:
FE_URL=https://e-factura.sunat.gob.pe/ol-ti-itcpfegem/billService
RE_URL=https://e-factura.sunat.gob.pe/ol-ti-itemision-otroscpe-gem/billService
GUIA_URL=https://e-guiaremision.sunat.gob.pe/ol-ti-itemision-guia-gem/billService

Cuando envio me sale este error:
0110: No se pudo obtener la informacion del tipo de usuario.

Ya he creado el usuario secundario y asignado los permisos correspondientes y ya es más de 1 día.

documentos electrónicos no son visibles en consulta validez

Hola @giansalex, hace unas semanas acabo de probar LYCET, el problema es que cuando envío los documentos a la SUNAT me muestra el mensaje que el comprobante fue aceptado con codigo "0", sin embargo al consultar la validez del CPE, sale que no existe en los registros de la SUNAT. ¿Que puede estar pasando?. Gracias por tu respuesta.

modelo json ubl 2.1

buenas tardes @giansalex , tendrás algún modelo de json para ubl 2.1?
json 2_1

{
"tipoDoc": "01",
"serie": "F001",
"correlativo": "123",
"fechaEmision": "2017-10-02T00:00:00-05:00",
"client": {
"tipoDoc": "6",
"numDoc": "20384203133",
"rznSocial": "ZV DISTRIBUIDORES S.A.C.",
"address": {

  "direccion": "AV. SANTA ELVIRA MZA. E LOTE. 1 (VILLA SOL) - LOS OLIVOS LIMA LIMA PERU"
}

},
"company": {
"ruc": "20480072872",
"razonSocial": "PESQUERA DIAMANTE S.A.",
"nombreComercial": "PESQUERA DIAMANTE S.A.",
"address": {
"ubigueo": "150131",
"codigoPais": "51",
"departamento": "LIMA",
"provincia": "LIMA",
"distrito": "SAN ISIDRO",
"urbanizacion": "-",
"direccion": "CAL. AMADOR MERINO REYNA NRO. 307 (EDIFICIO NACIONAL PISO 12 Y 13)"
}
},
"tipoMoneda": "PEN",
"valorVenta":300,
"sumOtrosCargos": 0,
"mtoOperGravadas": 200,
"mtoOperInafectas": 0,
"mtoOperExoneradas": 100,
"mtoIGV": 36,
"mtoISC": 0,
"totalImpuestos":36,
"mtoOtrosTributos": 0,
"mtoImpVenta": 336,
"details": [
{
"unidad": "NIU",
"cantidad": 2,
"codProducto": "P0D1",
"codProdSunat": "string",
"descripcion": "PROD 1",
"mtoValorUnitario": 100,
"descuento": 0,
"igv": 36,
"tipAfeIgv": "10",
"mtoPrecioUnitario": 118,
"mtoValorVenta": 200,
"porcentajeIgv": 18,
"totalImpuestos":36
},
{
"unidad": "KG",
"cantidad": 2,
"codProducto": "P0D2",
"codProdSunat": "string",
"descripcion": "PROD 2",
"mtoValorUnitario": 50,
"descuento": 0,
"igv": 0,
"tipAfeIgv": "20",
"mtoPrecioUnitario": 50,
"mtoValorVenta": 100,
"porcentajeIgv": 0,
"totalImpuestos":0
}
],
"legends": [
{
"code": "1000",
"value": "SON DOSCIENTOS TREINTA Y SEIS CON 00/100 SOLES"
}
],
"tipoOperacion": "0101",
"fecVencimiento": "2017-10-02T00:00:00-05:00",
"sumDsctoGlobal": 0,
"mtoDescuentos": 0,
"mtoOperGratuitas": 0,
"totalAnticipos": 0,
"compra": "O-C 100"

}

Soapclient ClassNotFoundException

Estimados Sres... buenas tardes ...
Estoy intentando implementar la ultima actualización de Lycet. pero obtengo este error en localhost
image
uso symfony 4
php 7.2

en web me da esto
image
php 7.2

me pueden ayudar?.

Saludos

ERROR .ENV

Al ejecutar el comando: composer install --no-dev -o, me instala las dependencias pero con el siguiente error:

Generating optimized autoload files
Executing script cache:clear [KO]
[KO]
Script cache:clear returned with error code 255
!! PHP Fatal error: Uncaught RuntimeException: APP_ENV environment variable is not defined. You need to define environment variables for configuration or add "symfony/dotenv" as a Composer dependency to load variables from a .env file. in D:\FACTURACIÓN ELECTRÓNICA\lycet\bin\console:20
!! Stack trace:
!! #0 {main}
!! thrown in D:\FACTURACIÓN ELECTRÓNICA\lycet\bin\console on line 20

Y al ejecutar el servidor PHP me lanza este:

Fatal error: Uncaught RuntimeException: APP_ENV environment variable is not defined. You need to define environment variables for configuration or add "symfony/dotenv" as a Composer dependency to load variables from a .env file. in D:\FACTURACION ELECTRÓNICA\lycet\public\index.php:13 Stack trace: #0 {main} thrown in D:\FACTURACION ELECTRÓNICA\lycet\public\index.php on line 13

He configurado el .env como lo indican. Supongo que es porque no existe este archivo ni esta ruta...
WKHTMLTOPDF_PATH=full/path/wkhtmltopdf.exe

¿Será ese el error?

Resumen diario - Nota de crédito

Hola @giansalex, Estoy probando el envío del resumen diario y todo perfecto, pero al intentar enviar notas notas de credito de boletas electronicas tengo el siguiente error:

"No existe información de serie o número. - Detalle: xxx.xxx.xxx value='ticket: 1555974791671 error: Error en la linea: 1. Solo se acepta informacion de comprobantes de referencia para notas (Credito o debito): el tipo de comprobante es: 07 y debe de ser 07 o 08.'"

El JSON que estoy enviando es el siguiente:
{ "correlativo": "11159", "fecGeneracion": "2019-02-18T12:00:00+02:00", "fecResumen": "2019-02-21T12:00:00+00:00", "moneda": "PEN", "company": { "ruc": "20123456789", "razonSocial": "REST. MORALY", "nombreComercial": "MORALY", "address": { "ubigueo": "180101", "codigoPais": "PE", "departamento": "MOQUEGUA", "provincia": "MARISCAL NIETO", "distrito": "MOQUEGUA", "urbanizacion": "-", "direccion": "CALLE LIMA 398" } }, "details": [ { "tipoDoc": "07", "serieNro": "BC01-00000008", "clienteTipo": "1", "clienteNro": "47719456", "estado": "3", "total": "25.00", "mtoOperGravadas": "21.19", "mtoIGV": "3.81" } ] }

Espero puedas ayudarme, gracias de antemano

Agregar librería webmaster/dompdf-greenter en Lycet

Hola @giansalex, estoy probando la integración de una pequeña librería ´para utilizar dompdf para el renderizado de los documentos pdf en Lycet . webmaster/dompdf-greenter.

Mi duda es. Si de alguna manera se pudiera editar automáticamente services.yaml en el momento de la instalación de mi librería webmaster/dompdf-greenter . Tal como se muestra en la siguiente figura.
Screenshot_30

Aún me faltan detalles de configuraciones avanzadas del dompdf , pero ya lo probé y me esta funcionando tanto localmente, así como, en un host remoto.

Comunicación de bajas - boletas de venta

Buen día, acabo de habilitar la comunicación de bajas; y al realizar las pruebas me dí cuenta que no puedo comunicar boletas de venta...
No sé si estoy mal, pero documentándome en [http://orientacion.sunat.gob.pe/index.php/empresas-menu/comprobantes-de-pago-empresas/comprobantes-de-pago-electronicos-empresas/see-desde-los-sistemas-del-contribuyente/2-comprobantes-que-se-pueden-emitir-desde-see-sistemas-del-contribuyente/factura-electronica-desde-see-del-contribuyente/3529-operatividad]

Explica que se puede hacer las notificaciones de baja tanto para boletas como para facturas.

Espero puedan darme alguna respuesta, gracias de antemano

convertir de UBL a JSON

Hola ... una consulta estoy haciendo una aplicación que lea las boletas de la sunat para almacenarlas en DDBB. El problema que no existe ningún programa que transforme de UBL a JSON para poder leer la información del documento XML. ME podrías dar una mano, por favor?

Habilitar UBL 2.1

Saludos

Como habilito UBL 2.1?

Estoy obteniendo el error:

No está autorizado a enviar comprobantes bajo el formato UBL 2.0 - No está autorizado a enviar comprobantes bajo el formato UBL 2.0. El ruc: 20395419715 debe generar su comprobante en la version UBL 2.1'

No se muestra el Hash en el PDF

Que se tendría que hacer para que no se muestre el hash en el pdf generado?
Encontré el codigo siguiente:
$parameters = [ 'system' => [ 'logo' => $logo, // 'hash' => '', ], 'user' => [ 'resolucion' => '-', 'header' => '', ] ];

Ahi está comentado el hash; si coloco cualquier texto ahí, aparece en la factura, lo que quiero saber es por qué esta comentado y que debo hacer para poder hacer conseguirlo.

Usuario Secundario envió a producción

Hola @giansalex acabo de enviar el comprobante con la url de producción, pero recibí un mensage de error con codigo 0111 No tiene el perfil para enviar comprobantes electronicos, ¿tengo que poner en los archivos .env el usuario y clave sol, o el usuario secundario que generé en el portal de la Sunat?. Saludos

Pdf para comunicaciones de bajas

Hola Giancarlos, al parecer me topé con un bug en /voided/pdf
Creo q está renderizando hacia el template invoice.html.twig
Como resulevo esto porfa, muchas gracias.
image

Añadir información extra al PDF

Como podría hacer para enviar otros parametros para agregar en la plantilla del PDF, tales como una fecha de vencimiento, si es credito o contado, y demas información, muchas gracias

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.