Closed abelnexus closed 5 years ago
si se podría, ya que todos esos datos están en el XML, podrias guiarte de este archivo
y exactamente que datos necesita esa variable $invoice ? por que ya estuve haciendo de esta manera: como los datos lo almaceno en la bd, con una consulta obtengo de nuevo los datos y vuelvo a generar la estructura pero me pregunto si esos datos ya los tengo en el xml generado o $invoice solo necesita algo en concreto
vuelvo a generar el archivo $invoice pero es muy largo el proceso y pueden ocurrir fallas por eso me preguntaba si del xml mismo se podrian extraer.
$client = new Client();
$client->setTipoDoc($comprobante[0][9])
->setNumDoc($comprobante[0][7])
->setRznSocial($comprobante[0][8])
->setAddress((new Address())
->setDireccion($comprobante[0][10]));
// Emisor
$address = new Address();
$address->setUbigueo($ubigeo)
->setDepartamento($departamento)
->setProvincia($provincia)
->setDistrito($distrito)
->setUrbanizacion($urbanizacion)
->setDireccion($direccionempresa);
$company = new Company();
$company->setRuc($rucempresa)
->setRazonSocial($razonempresa)
->setNombreComercial($nombre_comercial)
->setAddress($address);
$item = $this->model->listado_item($data);
foreach ($this->$item as $clave => $valor) {
$total2 = $valor[5];
$ulgv = Validar::calcular_igv($total2);
$valorunitario = $valor[4] - $ulgv;
$preciounitario = $valor[4];
$valorventa = Validar::calcular_subtotal($total2);
$detail = new SaleDetail();
$detail ->setUnidad($valor[8])
->setCantidad($valor[2])
->setDescripcion($valor[6])
->setCodProducto($valor[7])
->setMtoValorVenta($valorventa)
->setMtoValorUnitario($valorunitario)
->setMtoBaseIgv($valorventa)
->setPorcentajeIgv(18)
->setIgv($ulgv)
->setTipAfeIgv($valor[3])
->setTotalImpuestos($ulgv)
->setMtoPrecioUnitario($preciounitario);
$items[] = $detail;
}
$invoice = new Invoice();
$invoice->setUblVersion('2.1')
->setTipoOperacion('0101')
->setTipoDoc($comprobante[0][4])
->setSerie($comprobante[0][5])
->setCorrelativo($comprobante[0][6])
->setFechaEmision(new DateTime())
->setTipoMoneda($comprobante[0][11])
->setClient($client)
->setMtoOperGravadas($comprobante[0][13])
->setValorVenta($comprobante[0][13])
->setMtoOperExoneradas(0)
->setMtoOperInafectas(0)
->setMtoIGV($comprobante[0][14])
->setMtoImpVenta($comprobante[0][12])
->setTotalImpuestos($comprobante[0][14])
->setCompany($company);
$legend = new Legend();
$legend->setCode('1000')
->setValue($comprobante[0][16]);
$invoice->setDetails($items)
->setLegends([$legend]);
y al hacer esto lo envio sin items(por que me da error) pero igual lo envia y hay cdr de aceptado entonces me doy cuenta que solo necesita algunos datos y no se cuales son esos datos
Los datos son el RUC de la empresa, tipo documento, serie y correlativo, lo puedes ver inspeccionando el método getName()
en Invoice
gracias amigo ya lo pude solucionar lo del $invoice. no recuerdo bien pero me dijiste creo que ahora cuando es: if ($res->isSuccess()){ ya sea aceptado, aceptado con error, aceptado con observación, en caso que haya cdr cualquiera sea la respuesta no se puede volver a usar la misma numeración verdad ?
si, y era para el caso de Resumen diario y Comunicacion de Baja.
Gracias
hola amigos, tengo una duda, he estado leyendo en las noticias que apartir del 1 de marzo se debe emitir desde el contribuyente en tal caso entonces usar esta libreria ya no seria de utilidad? o aun se podra seguir emitidiendo documentos sin problemas?
Esta librería es para emitir desde los sistemas del contribuyente, seguirá funcionando.
El 1 de marzo las empresas están obligadas a emitir en la versión UBL 2.1, y algunas ya no enviarán los comprobantes a SUNAT sino a los Operadores de Servicios Electronicos (OSE)
Buenos días, desde el primero de marzo será obligatorio para todos enviar los comprobantes a las OSE?
@AnthonyLJ96 , es obligatorio para los principales contribuyentes al 31 de diciembre del 2018
Hola amigos no logro hacerlo funcionar me sale el siguiente error Warning: require(D:\Server_FsJ\www\public_html\lunita.pe\examples/../vendor/autoload.php): failed to open stream: No such file or directory in
Hola, ejecutaste composer install
Se agrego un nuevo metodo sendXmlFile($xml)
, que permite el envio del xml generado previamente, sin necesidad de pasar el tipo de documento, ni nombre.
https://github.com/giansalex/greenter/commit/dae0b162e3cbd612ba5fbeb27fc064f46c5a8382
disculpe me sale el siguiente error : Call to a member function getRuc() on null
Tal vez no estas pasando el parametro correcto
envío estos parametros : $XML = file_get_contents('filesfact/comprobantes/'.$xmlname); $res = $see->sendXmlFile($XML);
disculpe me sale el siguiente error : Call to a member function getRuc() on null
No te salio una linea de codigo, en el error
hola amigo, estoy tratando de cambiar la forma de envio de mis comprobantes por que me da muchos problemas enviarlos directamente. genero y firmo correctamente el xml pero luego al querer enviarlo usando tu ejemplo: $res = $see->sendXml(get_class($invoice), $invoice->getName(), file_get_contents($ruta)); la ruta la obtengo normal el detalle es en la variable "$invoice" hay alguna manera de obtener directamente los datos de esa variable del xml ya generado ?