function getObjetoFactura($json, $factura) { $factura->encabezado = getComprobante($json); $factura->partidas = fac_getPartidas($json, $factura); $factura->impuestos = fac_getFactImpuestos($json, $factura); $factura->impuestosTrasladados = fac_getFactImpuestosTrasladados($json, $factura); $factura->impuestosRetenidos = fac_getFactImpuestosRetenidos($json, $factura); $factura->exito = true; return $factura; }
function getObjetoFactura($bufferarray, $factura) { //separa secciones. $seccionesFactura = array(); $seccion = array(); foreach ($bufferarray as $buffer) { if (strstr($buffer[0], "¬") || strstr($buffer[0], "~") || strstr($buffer[0], "?")) { array_push($seccionesFactura, $seccion); $seccion = array(); } array_push($seccion, $buffer); } array_push($seccionesFactura, $seccion); //seccion 1 es ENCABEZADO. $factura->encabezado = getComprobante($seccionesFactura[1][0]); if ($factura->encabezado == null) { echo "****ENCABEZADO EQUIVOCADO****"; return null; } if (is_numeric($seccionesFactura[1][0][88])) { $factura->descuentos = getFactDescuentos($seccionesFactura[1][0]); } $factura->partidas = getPartidas($seccionesFactura[2]); if ($factura->partidas == null) { echo "****partidas equivocadas****"; return null; } if (count($seccionesFactura) > 4) { $factura->partidas = getPartidasFaltantes($seccionesFactura[4], $factura->partidas); } $factura->impuestos = getFactImpuestos($seccionesFactura[3]); $factura->encabezado->totalTraslados = 0; $factura->encabezado->totalRetenciones = 0; if (count($factura->impuestos) > 0) { foreach ($factura->impuestos as $imp) { if (strtoupper($imp->funcion) == "T") { array_push($factura->impuestosTrasladados, $imp); $factura->encabezado->totalTraslados += doubleval($imp->monto); } elseif (strtoupper($imp->funcion) == "R") { array_push($factura->impuestosRetenidos, $imp); $factura->encabezado->totalRetenciones += doubleval($imp->monto); } } } $factura->addendaht = getAddenda($seccionesFactura[1][0]); if ($factura->addendaht == null) { echo "****error en datos de addenda****"; return null; } return $factura; }