Closed abelnexus closed 6 years ago
trato de reemplazar esto por el array
lo cambie asi y si me genera el archivo xml y cdr de respuesta pero me bota un error siempre
cual es el error que te muestra.
ya no me manda el mensaje de confirmacion, si no que se cuelga ahi
creo saber de que se trata el error es por mi documento xml esta mal pero no me envia el mensaje de error por eso se cuelga
ya lo solucione, el error era que en mi bd la unidad de medida estaba como "niu" y solo acepta "NIU" en mayuscula al igual que "PEN"
aun asi hay errores que no entiendo, por ejejmplo al momento de crear al $invoice: ->setMtoOperGravadas(0) ->setMtoOperExoneradas(0) ->setMtoOperInafectas(0) esos valores deben ser 0 por que en mi factura solo debe haber el total, el subtoal y el igv pero sunat me rechaza diciendo que no peude estar en cero :/
pero tus facturas tienen igv, entonces debe haber Operaciones Gravadas, que es la suma del valor de venta de los items que tienen tipo de afectacion de IGV = 10
mmm eso no sabia, y los de "tipo afectacion igv = 10" =
10,GRAVADO - OPERACION ONEROSA. son solo para productos o servicios ?
eso forma parte de temas de contabilidad, segun me informaron hay productos que son exonerados o inafectos a IGV, los servicios creo siempre son gravados con igv
entonces las gravadas vienen a ser el precio del producto - igv y la sumatoria de todos los items mmmm ahora como saco eso de mi array D:
sunat es una m.. no se entiende sus explicaciones, o se refiere al precio con el tu compraste el producto ? creo que ese es el valor de venta
es que esos temas lo debe saber generalmente un contador.
Para obtener total gravados se suma el valor venta de cada ítem, el valor venta es cantidad*precio unitario
(sin igv).
ahh ya te entendi entonces de esta venta mi operacion gravada es 293.8
gracias amigo no se donde estaria sin tu ayuda :)
ahhh no estoy mal esos mis precios ya tienen igv :'(
te refieres a ese que dice "valor unitario" verdad ?
ese valor unitario vendría al precio sin igv, he estado pensando en crear un Github Pages, donde se puedan publicar estas cosas y que se pueda crear una guía para todos. También conertirlos manuales de sunat a paginas web y con la opcion que da github puedan editar o agregar cosas.
me agrada tu idea yo te apoyo, entonces si es la suma de "ese valor unitario"?
seria la suma de ese valor unitario * cantidad
ya ahora si la tengo clara
gracias
una duda mas amigo quizás tengas alguna idea, tengo esta tabla y quisiera que en la columna estado se vea el estado del xml si ah sido aceptado o rechasado ya sea leendolo directamente desde el archivo xml o guardando la respuesta de sunat en la bd
creo que eso es mas complejo ya
igual como muestras estado ABIERTA de la misma forma, cuando recibas la respuesta de SUNAT guardas el código y descripción
llegue a eso maximo uso este codigo:
require 'vendor/autoload.php';
$util = Util::getInstance();
$invoice = $util->getInvoice();
try { $pdf = $util->getPdf($invoice); $util->showPdf($pdf, $invoice->getName().'.pdf'); } catch (Exception $e) { var_dump($e); }
ahora si utilizo este codigo: use Greenter\Model\Sale\Document; use Greenter\Model\Sale\Invoice; use Greenter\Model\Sale\SaleDetail; use Greenter\Model\Sale\Legend; use Greenter\Ws\Services\SunatEndpoints; use Greenter\Model\Client\Client; use Greenter\Model\Company\Company; use Greenter\Model\Company\Address;
$client = new Client(); $client->setTipoDoc('6') ->setNumDoc('10486113532') ->setRznSocial('FERNANDO ABEL'); // Emisor $address = new Address(); $address->setUbigueo('150101') ->setDepartamento('LIMA') ->setProvincia('LIMA') ->setDistrito('LIMA') ->setUrbanizacion('NONE') ->setDireccion('AV LS');
$company = new Company(); $company->setRuc('20000000001') ->setRazonSocial('EMPRESA SAC') ->setNombreComercial('EMPRESA') ->setAddress($address); // Venta $invoice = new Invoice(); $invoice ->setFecVencimiento(new DateTime()) ->setTipoDoc('01') ->setSerie('F001') ->setCorrelativo('000001') ->setFechaEmision(new DateTime()) ->setTipoMoneda('PEN') ->setClient($client) ->setMtoOperGravadas(100) ->setMtoIGV(18) ->setMtoImpVenta(100) ->setCompany($company);
$item1 = new SaleDetail();
$item1
->setUnidad('NIU')
->setCantidad(2)
->setDescripcion('LANA')
->setIgv(18)
->setTipAfeIgv('10')
->setMtoValorVenta(82)
->setMtoValorUnitario(100)
->setMtoPrecioUnitario(100);
$legend = new Legend(); $legend->setCode('1000') ->setValue('SON CIEN CON 00/100 SOLES');
$invoice->setDetails($item1) ->setLegends([$legend]);
try { $pdf = Util::getPdf($invoice); Util::showPdf($pdf, $invoice->getName().'.pdf'); } catch (Exception $e) { var_dump($e); }
me bota este error :(
tienes la ultima version del codigo?
si hoy mismo lo volvi a descargar
el codigo que muestra a cambiado, ahora se hace asi.
// $invoice = $util->getInvoice();
$util = Util::getInstance();
try {
$pdf = $util->getPdf($invoice);
$util->showPdf($pdf, $invoice->getName().'.pdf');
} catch (Exception $e) {
var_dump($e);
}
tambien elimina los archivos de cache
sigue el mismo error, parece que es alguna interferencia con mi controlador o mi framework por que si lo habro directamente si genera el pdf
pero el detalle es que no puede estar afuera ya que tiene que el reporte tiene que ser dinamico
y en que parte intentas mostar el PDF, deberia estar tal vez en un iframe
bueno te explico detalladamente quizas me das otra solucion
en esa pagina frmventas hay un diseño que te muestra algo para imprimir (trato de mostrar el reporte pdf en vez de ese diseño para imprimir)
con ese codigo javascript habro el frmventas y envio el codigo de la venta para obtener los datos
al darle click sobre eso me habre esta ventana con los datos de esa factura
estaba pensando quizas darle ahi mismo la apariencia de la factura yde ahi luego imprimirlo o bien convertilo en pdf directamente con la funcion de goolge chrome , pero el detalle es que como hare para lo del codigo qr no tengo ni la ams minima idea de como se genera eso
ahora si reemplazo ese codigo del frmventas por el codigo que hay en example/report/factura.php me sale esto :/
y al darle imprimir cuando es una ventana modal me da esta opcion es un pop-up creo
EL problema debe ser que los estas mostrando como si fuera un HTML y no lo es, para abrirlo en una ventana puedes usarse
window.open("data:application/pdf," + escape(pdfString));
y ese codigo donde lo aplicaria?
cuando recibes la respuesta del PDF, reemplazarla en la linea donde lanzas la ventana y actualmente te sale todo esos garabatos
lo coloque asi pero sigue botando esos garabatos
el problema es que ya no debes llamar $util->showPdf(), pdfString no existe esa variable, tiene que ser $pdf.
try{
$pdf = $utl->getPdf($invoice);
echo '<script>window.open("data:application/pdf," + escape("'.$pdf.'"));</script>';
}
catch (Exception $e){
}
ahora no ocurre nada al darle click
he actualizado el script.
try{
$pdf = $utl->getPdf($invoice);
echo '<script>window.open("data:application/pdf," + escape("'.$pdf.'"));</script>';
}
catch (Exception $e){
}
ayudame amigo no puedo conseguir que este array se ingrese en los items