@@ -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); |