thegreenter / greenter

Facturación Electrónica - SUNAT - PE :four_leaf_clover:
https://greenter.dev
MIT License
274 stars 138 forks source link

object(Greenter\Model\Response\Error)#4776 (2) { ["code":protected]=> string(4) "0151" ["message":protected]=> string(161) "El nombre del archivo ZIP es incorrecto - Detalle: xxx.xxx.xxx value='ticket: 1574108632776 error: Validation ZIP Filename error: XXXXXXXXXXX-01-01-00000002.zip'" } #96

Closed jose1894 closed 4 years ago

jose1894 commented 4 years ago

Configure todo, lo probe como aparece en la pagina de greenter, pero cuando seteo los valores reales y hago el envio al servidor de pruebas me aparece el siguiente error:

object(Greenter\Model\Response\Error)#4776 (2) { ["code":protected]=> string(4) "0151" ["message":protected]=> string(161) "El nombre del archivo ZIP es incorrecto - Detalle: xxx.xxx.xxx value='ticket: 1574108632776 error: Validation ZIP Filename error: XXXXXXXXXXX-01-01-00000002.zip'" }

giansalex commented 4 years ago

Parece que el problema en XXXXXXXXXXX-01-01-00000002.zip, es la serie del comprobante; debería ser F001. Ejm: XXXXXXXXXXX-01-F001-00000002.zip

jose1894 commented 4 years ago

Excelente, gracias por su pronta respuesta Ahora obtengo el siguiente error:

object(Greenter\Model\Response\Error)#4785 (2) { ["code":protected]=> string(4) "0306" ["message":protected]=> string(335) "No se puede leer (parsear) el archivo XML - Detalle: http://xxx.xxx.xxx/ol-ti-itcpfegem-beta/billService: cvc-simple-type 1: element {urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2}InvoicedQuantity of type {urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2}InvoicedQuantityType may not be empty" }

Este es mi codigo para cargar el detalle

    $item[$key] = (new SaleDetail())
        ->setCodProducto($value->productoPdetalle->cod_prod)
        ->setUnidad($value->productoPdetalle->umedProd->sunatm_und)
        ->setCantidad($value->cant_pdetalle)
        ->setDescripcion($value->productoPdetalle->des_prod)
        ->setMtoBaseIgv($totalSIGV) //Total por item sin IGV
        ->setPorcentajeIgv($value->impuesto_pdetalle) // 18%
        ->setIgv($totalIGV) //Total de IGV por item
        ->setTipAfeIgv('10')
        ->setTotalImpuestos($totalIGV)
        ->setMtoValorVenta($totalIGV)
        ->setMtoValorUnitario($precioUnitarioSIGV)
        ->setMtoPrecioUnitario($value->precio_pdetalle);
giansalex commented 4 years ago

Revisa que la cantidad ($value->cant_pdetalle) tenga valor, y se un numero valido

jose1894 commented 4 years ago

Hice un print del arreglo y me muestra lo siguiente:

image

jose1894 commented 4 years ago

Corregido, me faltaba un decimal a la cantidad

jose1894 commented 4 years ago

falsa alarma, sigue el error

giansalex commented 4 years ago

Podrias hacer un var_dump($arreglo)

jose1894 commented 4 years ago

image image

giansalex commented 4 years ago

Si te sigue saliendo error en InvoicedQuantity, intenta setear ->setCantidad(floatval($value->cant_pdetalle))

jose1894 commented 4 years ago

Ya lo seteé, pero continua el error, el error es "InvoicedQuantityType may not be empty"

giansalex commented 4 years ago

Si puedes guardar el XML, debería haber un valor aqui image

jose1894 commented 4 years ago

Mi error fue el siguiente:

$invoice->setDetails([$item]);

Dejar $item dentro de un arreglo, me di cuenta y solo coloque:

$invoice->setDetails($item)

Y me funcionó, por el momento sigo con las pruebas... Y muchas gracias por tu ayuda

image