agregar en invoice setMtoOperExoneradas
->setMtoOperExoneradas(floatval($comprobante["total_a_pagar"]))
Aquí dejo mi código completo
`<?php
declare(strict_types=1);
use Greenter\Model\Client\Client;
use Greenter\Model\Sale\Invoice;
use Greenter\Model\Sale\SaleDetail;
use Greenter\Model\Sale\Legend;
use Greenter\Ws\Services\SunatEndpoints;
use Luecano\NumeroALetras\NumeroALetras;
require DIR . '/../vendor/autoload.php';
$util = Util::getInstance();
$dbConn= $util->getConexionMysql();
$comprobante = $dbConn->fetchRow('SELECT * FROM comprobantes
WHERE id = :id', ['id' => '165']);
$detalle = $dbConn->fetchRowMany('SELECT * FROM items
WHERE comprobante_id = :id', ['id' => '165']);
// Cliente
$cliente_id = $comprobante["cliente_id"];
if($cliente_id == 51){
$client = new Client();
$client->setTipoDoc('1')
->setNumDoc('00000000')
->setRznSocial('CLIENTES VARIOS');
}else{
$cliente = $dbConn->fetchRow('SELECT * FROM clientes
WHERE id = :id', ['id' => $cliente_id]);
$client = new Client();
$client->setTipoDoc('1')
->setNumDoc($cliente["ruc"])
->setRznSocial($cliente["razon_social"]);
}
$date = new DateTime($comprobante["fecha_de_emision"]);
// Venta
$invoice = new Invoice();
$invoice
->setUblVersion('2.1')
->setTipoOperacion('0101')
->setTipoDoc('03')
->setSerie($comprobante["serie"])
->setCorrelativo($comprobante["numero"])
->setFechaEmision($date)
->setTipoMoneda('PEN')
->setCompany($util->shared->getCompany())
->setClient($client)
->setMtoOperExoneradas(floatval($comprobante["total_a_pagar"]))
->setMtoIGV(0)
->setTotalImpuestos(0)
->setValorVenta(floatval($comprobante["total_a_pagar"]))
->setSubTotal(floatval($comprobante["total_a_pagar"]))
->setRedondeo(0)
->setMtoImpVenta(floatval($comprobante["total_a_pagar"]))
;
$items = array();
foreach($detalle as $row){
$item = new SaleDetail();
$item->setCodProducto($row['producto_id'])
->setUnidad('NIU')
->setCantidad(intval($row['cantidad']))
->setDescripcion($row['descripcion'])
->setMtoBaseIgv(floatval($row['subtotal']))
->setPorcentajeIgv(0)
->setIgv(0)
->setTipAfeIgv('20')
->setTotalImpuestos(0)
->setDescuento(0)
->setMtoValorVenta(floatval($row['subtotal']))
->setMtoValorUnitario(floatval($row['importe']))
->setMtoPrecioUnitario(floatval($row['importe']))
;
$items[] = $item;
}
$formatter = new NumeroALetras();
$legend = new Legend();
$legend->setCode('1000')
->setValue('SON '. $formatter->toWords(floatval($comprobante["total_a_pagar"]), 2).' CON 00/100 SOLES');
$invoice->setDetails($items)
->setLegends([$legend]);
// Envio a SUNAT.
$see = $util->getSee(SunatEndpoints::FE_BETA);
$res = $see->send($invoice);
$util->writeXml($invoice, $see->getFactory()->getLastXml());
if ($res->isSuccess()) {
/**@var $res \Greenter\Model\Response\BillResult*/
$cdr = $res->getCdrResponse();
$util->writeCdr($invoice, $res->getCdrZip());
$util->showResponse($invoice, $cdr);
} else {
echo $util->getErrorResponse($res->getError());
}
`