@@ -96,10 +96,12 @@ discard block |
||
96 | 96 | */ |
97 | 97 | public function agregar(array $detalle, $normalizar = true) |
98 | 98 | { |
99 | - if ($normalizar) |
|
100 | - $this->normalizarDetalle($detalle); |
|
101 | - if (!$detalle['TpoDoc']) |
|
102 | - return false; |
|
99 | + if ($normalizar) { |
|
100 | + $this->normalizarDetalle($detalle); |
|
101 | + } |
|
102 | + if (!$detalle['TpoDoc']) { |
|
103 | + return false; |
|
104 | + } |
|
103 | 105 | $this->detalles[] = $detalle; |
104 | 106 | return true; |
105 | 107 | } |
@@ -168,8 +170,9 @@ discard block |
||
168 | 170 | } |
169 | 171 | // calcular valores que no se hayan entregado |
170 | 172 | if (isset($detalle['FctProp'])) { |
171 | - if ($detalle['IVAUsoComun']===false) |
|
172 | - $detalle['IVAUsoComun'] = round($detalle['MntNeto'] * ($detalle['TasaImp']/100)); |
|
173 | + if ($detalle['IVAUsoComun']===false) { |
|
174 | + $detalle['IVAUsoComun'] = round($detalle['MntNeto'] * ($detalle['TasaImp']/100)); |
|
175 | + } |
|
173 | 176 | } else if (!$detalle['MntIVA'] and !is_array($detalle['IVANoRec']) and $detalle['TasaImp'] and $detalle['MntNeto']) { |
174 | 177 | $detalle['MntIVA'] = round($detalle['MntNeto'] * ($detalle['TasaImp']/100)); |
175 | 178 | } |
@@ -179,8 +182,9 @@ discard block |
||
179 | 182 | } |
180 | 183 | // normalizar IVA no recuperable |
181 | 184 | if (!empty($detalle['IVANoRec'])) { |
182 | - if (!isset($detalle['IVANoRec'][0])) |
|
183 | - $detalle['IVANoRec'] = [$detalle['IVANoRec']]; |
|
185 | + if (!isset($detalle['IVANoRec'][0])) { |
|
186 | + $detalle['IVANoRec'] = [$detalle['IVANoRec']]; |
|
187 | + } |
|
184 | 188 | // si son múltiples iva no recuperable se arma arreglo real |
185 | 189 | if (strpos($detalle['IVANoRec'][0]['CodIVANoRec'], ',')) { |
186 | 190 | $CodIVANoRec = explode(',', $detalle['IVANoRec'][0]['CodIVANoRec']); |
@@ -197,8 +201,9 @@ discard block |
||
197 | 201 | } |
198 | 202 | // normalizar otros impuestos |
199 | 203 | if (!empty($detalle['OtrosImp'])) { |
200 | - if (!isset($detalle['OtrosImp'][0])) |
|
201 | - $detalle['OtrosImp'] = [$detalle['OtrosImp']]; |
|
204 | + if (!isset($detalle['OtrosImp'][0])) { |
|
205 | + $detalle['OtrosImp'] = [$detalle['OtrosImp']]; |
|
206 | + } |
|
202 | 207 | // si son múltiples impuestos se arma arreglo real |
203 | 208 | if (strpos($detalle['OtrosImp'][0]['CodImp'], ',')) { |
204 | 209 | $CodImp = explode(',', $detalle['OtrosImp'][0]['CodImp']); |
@@ -259,8 +264,9 @@ discard block |
||
259 | 264 | } |
260 | 265 | // si el código de sucursal no existe se pone a falso, esto básicamente |
261 | 266 | // porque algunos sistemas podrían usar 0 cuando no hay CdgSIISucur |
262 | - if (!$detalle['CdgSIISucur']) |
|
263 | - $detalle['CdgSIISucur'] = false; |
|
267 | + if (!$detalle['CdgSIISucur']) { |
|
268 | + $detalle['CdgSIISucur'] = false; |
|
269 | + } |
|
264 | 270 | } |
265 | 271 | |
266 | 272 | /** |
@@ -515,8 +521,9 @@ discard block |
||
515 | 521 | 'TipoEnvio' => 'TOTAL', |
516 | 522 | 'FolioNotificacion' => false, |
517 | 523 | ], $caratula); |
518 | - if ($this->caratula['TipoEnvio']=='ESPECIAL') |
|
519 | - $this->caratula['FolioNotificacion'] = null; |
|
524 | + if ($this->caratula['TipoEnvio']=='ESPECIAL') { |
|
525 | + $this->caratula['FolioNotificacion'] = null; |
|
526 | + } |
|
520 | 527 | $this->id = 'LibreDTE_LIBRO_'.$this->caratula['TipoOperacion'].'_'.str_replace('-', '', $this->caratula['RutEmisorLibro']).'_'.str_replace('-', '', $this->caratula['PeriodoTributario']).'_'.date('U'); |
521 | 528 | } |
522 | 529 | |
@@ -530,8 +537,9 @@ discard block |
||
530 | 537 | public function generar($incluirDetalle = true) |
531 | 538 | { |
532 | 539 | // si ya se había generado se entrega directamente |
533 | - if ($this->xml_data) |
|
534 | - return $this->xml_data; |
|
540 | + if ($this->xml_data) { |
|
541 | + return $this->xml_data; |
|
542 | + } |
|
535 | 543 | // generar totales de DTE y sus montos |
536 | 544 | $TotalesPeriodo = $this->getResumen(); |
537 | 545 | $ResumenPeriodo = $TotalesPeriodo ? ['TotalesPeriodo'=>$TotalesPeriodo] : false; |
@@ -606,13 +614,16 @@ discard block |
||
606 | 614 | } |
607 | 615 | $totales[$d['TpoDoc']]['TotMntTotal'] += $d['MntTotal']; |
608 | 616 | // contabilizar documentos anulados |
609 | - if (!empty($d['Anulado']) and $d['Anulado']=='A') |
|
610 | - $totales[$d['TpoDoc']]['TotAnulado']++; |
|
617 | + if (!empty($d['Anulado']) and $d['Anulado']=='A') { |
|
618 | + $totales[$d['TpoDoc']]['TotAnulado']++; |
|
619 | + } |
|
611 | 620 | // si hay activo fijo se contabiliza |
612 | - if (!empty($d['MntActivoFijo'])) |
|
613 | - $totales[$d['TpoDoc']]['TotMntActivoFijo'] += $d['MntActivoFijo']; |
|
614 | - if (!empty($d['MntIVAActivoFijo'])) |
|
615 | - $totales[$d['TpoDoc']]['TotMntIVAActivoFijo'] += $d['MntIVAActivoFijo']; |
|
621 | + if (!empty($d['MntActivoFijo'])) { |
|
622 | + $totales[$d['TpoDoc']]['TotMntActivoFijo'] += $d['MntActivoFijo']; |
|
623 | + } |
|
624 | + if (!empty($d['MntIVAActivoFijo'])) { |
|
625 | + $totales[$d['TpoDoc']]['TotMntIVAActivoFijo'] += $d['MntIVAActivoFijo']; |
|
626 | + } |
|
616 | 627 | // si hay iva no recuperable se contabiliza |
617 | 628 | if (!empty($d['IVANoRec'])) { |
618 | 629 | foreach ($d['IVANoRec'] as $IVANoRec) { |
@@ -635,8 +646,9 @@ discard block |
||
635 | 646 | unset($d['FctProp']); // se quita el factor de proporcionalidad del detalle ya que no es parte del XML |
636 | 647 | } |
637 | 648 | // contabilizar IVA fuera de plazo |
638 | - if (!empty($d['IVAFueraPlazo'])) |
|
639 | - $totales[$d['TpoDoc']]['TotIVAFueraPlazo'] += $d['IVAFueraPlazo']; |
|
649 | + if (!empty($d['IVAFueraPlazo'])) { |
|
650 | + $totales[$d['TpoDoc']]['TotIVAFueraPlazo'] += $d['IVAFueraPlazo']; |
|
651 | + } |
|
640 | 652 | // si hay otro tipo de impuesto se contabiliza |
641 | 653 | if (!empty($d['OtrosImp'])) { |
642 | 654 | foreach ($d['OtrosImp'] as $OtrosImp) { |
@@ -650,17 +662,21 @@ discard block |
||
650 | 662 | } |
651 | 663 | } |
652 | 664 | // contabilizar impuesto sin derecho a crédito |
653 | - if (!empty($d['MntSinCred'])) |
|
654 | - $totales[$d['TpoDoc']]['TotImpSinCredito'] += $d['MntSinCred']; |
|
665 | + if (!empty($d['MntSinCred'])) { |
|
666 | + $totales[$d['TpoDoc']]['TotImpSinCredito'] += $d['MntSinCred']; |
|
667 | + } |
|
655 | 668 | // contabilidad IVA retenido total |
656 | - if (!empty($d['IVARetTotal'])) |
|
657 | - $totales[$d['TpoDoc']]['TotIVARetTotal'] += $d['IVARetTotal']; |
|
669 | + if (!empty($d['IVARetTotal'])) { |
|
670 | + $totales[$d['TpoDoc']]['TotIVARetTotal'] += $d['IVARetTotal']; |
|
671 | + } |
|
658 | 672 | // contabilizar IVA retenido parcial |
659 | - if (!empty($d['IVARetParcial'])) |
|
660 | - $totales[$d['TpoDoc']]['TotIVARetParcial'] += $d['IVARetParcial']; |
|
673 | + if (!empty($d['IVARetParcial'])) { |
|
674 | + $totales[$d['TpoDoc']]['TotIVARetParcial'] += $d['IVARetParcial']; |
|
675 | + } |
|
661 | 676 | // contabilizar IVA no retenido |
662 | - if (!empty($d['IVANoRetenido'])) |
|
663 | - $totales[$d['TpoDoc']]['TotIVANoRetenido'] += $d['IVANoRetenido']; |
|
677 | + if (!empty($d['IVANoRetenido'])) { |
|
678 | + $totales[$d['TpoDoc']]['TotIVANoRetenido'] += $d['IVANoRetenido']; |
|
679 | + } |
|
664 | 680 | } |
665 | 681 | // agregar resumenes pasados que no se hayan generado por los detalles |
666 | 682 | foreach ($this->resumen as $tipo => $resumen) { |
@@ -684,8 +700,9 @@ discard block |
||
684 | 700 | $manual = []; |
685 | 701 | if (isset($this->toArray()['LibroCompraVenta']['EnvioLibro']['ResumenPeriodo']['TotalesPeriodo'])) { |
686 | 702 | $totales = $this->toArray()['LibroCompraVenta']['EnvioLibro']['ResumenPeriodo']['TotalesPeriodo']; |
687 | - if (!isset($totales[0])) |
|
688 | - $totales = [$totales]; |
|
703 | + if (!isset($totales[0])) { |
|
704 | + $totales = [$totales]; |
|
705 | + } |
|
689 | 706 | foreach ($totales as $total) { |
690 | 707 | if (isset($total['TpoDoc']) and in_array($total['TpoDoc'], [35, 38, 48])) { |
691 | 708 | $manual[$total['TpoDoc']] = array_merge($this->total_default, $total); |
@@ -705,8 +722,9 @@ discard block |
||
705 | 722 | $manual = []; |
706 | 723 | if (isset($this->toArray()['LibroCompraVenta']['EnvioLibro']['ResumenPeriodo']['TotalesPeriodo'])) { |
707 | 724 | $totales = $this->toArray()['LibroCompraVenta']['EnvioLibro']['ResumenPeriodo']['TotalesPeriodo']; |
708 | - if (!isset($totales[0])) |
|
709 | - $totales = [$totales]; |
|
725 | + if (!isset($totales[0])) { |
|
726 | + $totales = [$totales]; |
|
727 | + } |
|
710 | 728 | foreach ($totales as $total) { |
711 | 729 | if (in_array($total['TpoDoc'], [39, 41])) { |
712 | 730 | $manual[$total['TpoDoc']] = array_merge($this->total_default, $total); |