Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generar XML de boletas #56

Closed
AnthonyLJ96 opened this issue Nov 25, 2018 · 17 comments
Closed

Generar XML de boletas #56

AnthonyLJ96 opened this issue Nov 25, 2018 · 17 comments
Labels

Comments

@AnthonyLJ96
Copy link

Buenas noches @giansalex , como es que se manejan los xml de las boletas?, es decir, tengo entendido que las boletas se informan mediante el resumen pero al enviar el correo al cliente en algunos casos es necesario enviarles el xml. De qué manera generamos este a través de greenter sin que lo enviemos a sunat?, o cómo es qué se maneja?, hay que volver a enviar el xml de la boleta sola a sunat a pesar de que ya haya sido informada a través del resumen para que tenga validez??. Gracias de antemano.

@giansalex
Copy link
Member

Hola @AnthonyLJ96 , tu pregunta es muy válida, agregaré un ejemplo en la documentación.
Para generar el xml sin enviar a sunat existe el metodo getXmlSigned.
Ejm:

$boleta = new Invoice();
// llenar datos de boleta
$xml = $see->getXmlSigned($boleta);

@giansalex giansalex changed the title XML de boletas Generar XML de boletas Nov 25, 2018
@AnthonyLJ96
Copy link
Author

gracias @giansalex !

@jhonVargasT
Copy link

Hola que tal, disculpa que te interrumpa en tus labores pero he estado intentando hacer lo de la facturación me queda muchos vacíos. Se puede manejar tu código de forma gratuita o hay que pagar por la librería, soy nuevo en esto. Gracias por tomarte las molestias de contestar.

@giansalex
Copy link
Member

Hola @jhonVargasT, puedes suberlo libremente. Si te es util, puedes retribuir contribuyendo reportando issues, codigo, donación.

@jhonVargasT
Copy link

Muchas gracias, vales un mundo, en serio que nos estas facilitando las cosas bastante. Muy agradecido por tu aporte

@marcuspc
Copy link

Buenas noches, estoy intentando hacer la CONSULTA CDR, pero me sale error, quisiera por favor me de una orientacion, adjunto el codigo utilizado, para una mejor comprension.

use Greenter\Ws\Services\SunatEndpoints;
use Greenter\Ws\Services\ConsultCdrService;
use Greenter\Ws\Services\SoapClient;

$ws = new SoapClient(SunatEndpoints::FE_CONSULTA_CDR.'?wsdl');
$ws->setCredentials('20000000001MODDATOS','moddatos');

$service = new ConsultCdrService();
$service->setClient($ws);

$arguments = [$ruc,$codigo_comprobante,$serie,intval($numero)];
$result = $service->getStatus(...$arguments);

if ($result->isSuccess()){
    $mensajeError =    '<p style="display: block; font-size:14px !important;">
                            <div class="alert alert-danger alert-bordered">
                                <strong>CODIGO: </strong><em>'.$result->getCode().'</em><br>
                                <strong>MENSAJE: </strong><em>'.$result->getMessage().'</em>
                            </div>
                        </p>';
}

if (!is_null($result->getCdrResponse())){
    $mensajeError =    '<p style="display: block; font-size:14px !important;">
                            <div class="alert alert-danger alert-bordered">
                                <strong>Estado: </strong><em>'.$result->getCdrResponse()->getDescription().'</em><br>
                                <strong>Obs: </strong><em>'.$result->getCdrResponse()->getNotes().'</em>
                            </div>
                        </p>';
}else{
    $mensajeError =    '<p style="display: block; font-size:14px !important;">
                            <div class="alert alert-danger alert-bordered">
                                <strong>Error: </strong><em>'.$result->getError()->getMessage().'</em><br>                               
                            </div>
                        </p>';
}

@giansalex
Copy link
Member

giansalex commented Oct 21, 2020

Hola @marcuspc , cual es el error?

Tambien, en el primer if deberia invertirse, y agregar un return.

// ...
$result = $service->getStatus(...$arguments);

if (!$result->isSuccess()){ // si no es exitoso
    $mensajeError =    '....';
     return;
}

@marcuspc
Copy link

Buenas noches @giansalex , gracias por la ayuda, pude revisar que en las facturas todo va bien, pero obtengo estas observaciones:

4093 - El codigo de ubigeo del domicilio fiscal del emisor no es válido - : 4093: Valor no se encuentra en el catalogo: 13 (nodo: "cac:RegistrationAddress/cbc:ID" valor: "")
4317 - Debe consignar el Total Precio de Venta - INFO: 4317 (nodo: "/" valor: "")

En el caso de las BOLETAS:
No me devuelve ninguna mensaje.

Agradezco tu respuesta, Saludos.

@giansalex
Copy link
Member

giansalex commented Oct 23, 2020

@marcuspc puedes tomar como guía este ejemplo https://github.com/thegreenter/demo/blob/master/examples/boleta.php ,
y en especifico en las observaciones que tienes, debes colocar el ubigeo en la direccion de la empresa y el subtotal ejem: $invoice->setSubTotal(30.00);

@marcuspc
Copy link

@giansalex , gracias por la pronta respuesta, mi consulta ahora es si hay forma de consultar el estado de mi BOLETA, así como lo hay en consulta de FACTURA, gracias.

@giansalex
Copy link
Member

Hola @marcuspc , si puedes consultar el estado usando el API de Consulta integrada de SUNAT, aqui hay una implementacion en PHP https://github.com/thegreenter/consulta-cpe

@marcuspc
Copy link

Hola @giansalex , muchas gracias por la información brindada, con respecto a consultas por DNI y RUC, greenter tiene esa funcionalidad, es decir si digito el DNI o RUC, me pueda facilitar el nombre, razón social, dirección, ubigeo, habido, activo?
Y con respecto a las compras electrónicas, existe la posibilidad de recuperar esa información consultando con greenter?

@giansalex
Copy link
Member

@marcuspc puedes usar peru-consult, hace uso de paginas publicas de SUNAT.
Sobre consulta de compras electrónicas, no hay algo publicado por SUNAT.

@marcuspc
Copy link

marcuspc commented Nov 3, 2020

@giansalex muchas gracias, otra consulta adicional.
Por ejemplo si quiero registrar la venta de medio TUBO, podria poner en cantidad 0.5 (NIU) o como podria hacerlo???,
gracias.

@giansalex
Copy link
Member

@marcuspc si, puede contener hasta 10 decimales.

@marcuspc
Copy link

@giansalex, muchas gracias por tus respuestas,
Abusando un poco de tu ayuda frecuente, quisiera pedirte una orientación o recomendación acerca de algún proveedor de dominio y hosting para alojar los proyectos que vengo desarrollando, pude revisar bluehost, pero no estoy muy seguro que pueda subir mi proyecto que no usa wordpress, uso php sin ningun framework.
Agradezco de antemano por la respuesta que me puedas brindar.
Saludos cordiales.

@gerson248
Copy link

gerson248 commented Feb 16, 2021

Hola @giansalex, tenia una consulta en como podría obtener la información de una factura, estaba haciéndolo así, pero no muestra la serie del documento que quiero .

$file = DIR_DOCUMENTOS_FILES_TMP.DS.'ina_548_20601855551-01-_FPP1-163.xml';
$xml = file_get_contents($file);
$invoiceParser = new InvoiceParser();
$rsDocumento = $invoiceParser->parse($xml);
echo $rsDocumento->getSerie()

solo me muestra esto : { ["tagName"]=> string(27) "cac:AccountingCustomerParty" ["schemaTypeInfo"]=> NULL ["nodeName"]=> string(27) "cac:AccountingCustomerParty" ["nodeValue"]=> string(90) " 20500068606 EMPRESA S.A.C. ["baseURI"]=> string(21) "/www/" ["textContent"]=> string(90) " 20500068606 EMPRESA S.A.C" }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants