Completed
Push — master ( 76e49f...8695ae )
by Esteban De La Fuente
01:55
created
lib/Sii/Dte.php 2 patches
Spacing   +16 added lines, -16 removed lines patch added patch discarded remove patch
@@ -139,7 +139,7 @@  discard block
 block discarded – undo
139 139
                 ]
140 140
             ]);
141 141
             $parent = $this->xml->getElementsByTagName($this->tipo_general)->item(0);
142
-            $this->xml->generate($datos + ['TED' => null], null, $parent);
142
+            $this->xml->generate($datos+['TED' => null], null, $parent);
143 143
             $this->datos = $datos;
144 144
             if ($normalizar and !$this->verificarDatos()) {
145 145
                 return false;
@@ -382,7 +382,7 @@  discard block
 block discarded – undo
382 382
         $xml->documentElement->removeAttributeNS('http://www.w3.org/2001/XMLSchema-instance', 'xsi');
383 383
         $xml->documentElement->removeAttributeNS('http://www.sii.cl/SiiDte', '');
384 384
         $TED = $xml->getFlattened('/');
385
-        return mb_detect_encoding($TED, ['UTF-8', 'ISO-8859-1']) != 'ISO-8859-1' ? utf8_decode($TED) : $TED;
385
+        return mb_detect_encoding($TED, ['UTF-8', 'ISO-8859-1'])!='ISO-8859-1' ? utf8_decode($TED) : $TED;
386 386
     }
387 387
 
388 388
     /**
@@ -395,7 +395,7 @@  discard block
 block discarded – undo
395 395
     {
396 396
         $datos = $this->getDatos();
397 397
         $idk = !empty($datos['TED']['DD']['CAF']['DA']['IDK']) ? (int)$datos['TED']['DD']['CAF']['DA']['IDK'] : null;
398
-        return $idk ? $idk === 100 : null;
398
+        return $idk ? $idk===100 : null;
399 399
     }
400 400
 
401 401
     /**
@@ -529,7 +529,7 @@  discard block
 block discarded – undo
529 529
     {
530 530
         $this->getDatos();
531 531
         // generar resumen
532
-        $resumen =  [
532
+        $resumen = [
533 533
             'TpoDoc' => (int)$this->datos['Encabezado']['IdDoc']['TipoDTE'],
534 534
             'NroDoc' => (int)$this->datos['Encabezado']['IdDoc']['Folio'],
535 535
             'TasaImp' => 0,
@@ -574,17 +574,17 @@  discard block
 block discarded – undo
574 574
      */
575 575
     private function calcularNetoIVA($total, $tasa = null)
576 576
     {
577
-        if ($tasa === 0 or $tasa === false)
577
+        if ($tasa===0 or $tasa===false)
578 578
             return [0, 0];
579
-        if ($tasa === null)
579
+        if ($tasa===null)
580 580
             $tasa = \sasco\LibreDTE\Sii::getIVA();
581 581
         // WARNING: el IVA obtenido puede no ser el NETO*(TASA/100)
582 582
         // se calcula el monto neto y luego se obtiene el IVA haciendo la resta
583 583
         // entre el total y el neto, ya que hay casos de borde como:
584 584
         //  - BRUTO:   680 => NETO:   571 e IVA:   108 => TOTAL:   679
585 585
         //  - BRUTO: 86710 => NETO: 72866 e IVA: 13845 => TOTAL: 86711
586
-        $neto = round($total / (1+($tasa/100)));
587
-        $iva = $total - $neto;
586
+        $neto = round($total / (1+($tasa / 100)));
587
+        $iva = $total-$neto;
588 588
         return [$neto, $iva];
589 589
     }
590 590
 
@@ -1429,12 +1429,12 @@  discard block
 block discarded – undo
1429 1429
                     );
1430 1430
                     // aplicar descuento
1431 1431
                     if ($d['DescuentoPct']) {
1432
-                        $d['DescuentoMonto'] = round($d['MontoItem'] * (float)$d['DescuentoPct']/100);
1432
+                        $d['DescuentoMonto'] = round($d['MontoItem'] * (float)$d['DescuentoPct'] / 100);
1433 1433
                     }
1434 1434
                     $d['MontoItem'] -= $d['DescuentoMonto'];
1435 1435
                     // aplicar recargo
1436 1436
                     if ($d['RecargoPct']) {
1437
-                        $d['RecargoMonto'] = round($d['MontoItem'] * (float)$d['RecargoPct']/100);
1437
+                        $d['RecargoMonto'] = round($d['MontoItem'] * (float)$d['RecargoPct'] / 100);
1438 1438
                     }
1439 1439
                     $d['MontoItem'] += $d['RecargoMonto'];
1440 1440
                     // aproximar monto del item
@@ -1520,7 +1520,7 @@  discard block
 block discarded – undo
1520 1520
                 }
1521 1521
                 $valor =
1522 1522
                     $dr['TpoValor']=='%'
1523
-                    ? $this->round(($dr['ValorDR']/100)*$datos['Encabezado']['Totales'][$monto], $datos['Encabezado']['Totales']['TpoMoneda'])
1523
+                    ? $this->round(($dr['ValorDR'] / 100) * $datos['Encabezado']['Totales'][$monto], $datos['Encabezado']['Totales']['TpoMoneda'])
1524 1524
                     : $dr['ValorDR']
1525 1525
                 ;
1526 1526
                 // aplicar descuento
@@ -1593,7 +1593,7 @@  discard block
 block discarded – undo
1593 1593
             // si el monto no existe se asigna
1594 1594
             if ($datos['Encabezado']['Totales']['ImptoReten'][$i]['MontoImp']===null) {
1595 1595
                 $datos['Encabezado']['Totales']['ImptoReten'][$i]['MontoImp'] = round(
1596
-                    $neto * $datos['Encabezado']['Totales']['ImptoReten'][$i]['TasaImp']/100
1596
+                    $neto * $datos['Encabezado']['Totales']['ImptoReten'][$i]['TasaImp'] / 100
1597 1597
                 );
1598 1598
             }
1599 1599
         }
@@ -1601,7 +1601,7 @@  discard block
 block discarded – undo
1601 1601
         if (isset($datos['Encabezado']['Totales']['ImptoReten']) and is_array($datos['Encabezado']['Totales']['ImptoReten'])) {
1602 1602
             $codigos = array_keys($montos);
1603 1603
             $n_impuestos = count($datos['Encabezado']['Totales']['ImptoReten']);
1604
-            for ($i=0; $i<$n_impuestos; $i++) {
1604
+            for ($i = 0; $i<$n_impuestos; $i++) {
1605 1605
                 if (!in_array($datos['Encabezado']['Totales']['ImptoReten'][$i]['TipoImp'], $codigos)) {
1606 1606
                     unset($datos['Encabezado']['Totales']['ImptoReten'][$i]);
1607 1607
                 }
@@ -1629,7 +1629,7 @@  discard block
 block discarded – undo
1629 1629
             } else {
1630 1630
                 if (empty($datos['Encabezado']['Totales']['IVA']) and !empty($datos['Encabezado']['Totales']['TasaIVA'])) {
1631 1631
                     $datos['Encabezado']['Totales']['IVA'] = round(
1632
-                        $datos['Encabezado']['Totales']['MntNeto']*($datos['Encabezado']['Totales']['TasaIVA']/100)
1632
+                        $datos['Encabezado']['Totales']['MntNeto'] * ($datos['Encabezado']['Totales']['TasaIVA'] / 100)
1633 1633
                     );
1634 1634
                 }
1635 1635
             }
@@ -1653,7 +1653,7 @@  discard block
 block discarded – undo
1653 1653
                 if (ImpuestosAdicionales::getTipo($ImptoReten['TipoImp'])=='R') {
1654 1654
                     $datos['Encabezado']['Totales']['MntTotal'] -= $ImptoReten['MontoImp'];
1655 1655
                     if ($ImptoReten['MontoImp']!=$datos['Encabezado']['Totales']['IVA']) {
1656
-                        $datos['Encabezado']['Totales']['IVANoRet'] = $datos['Encabezado']['Totales']['IVA'] - $ImptoReten['MontoImp'];
1656
+                        $datos['Encabezado']['Totales']['IVANoRet'] = $datos['Encabezado']['Totales']['IVA']-$ImptoReten['MontoImp'];
1657 1657
                     }
1658 1658
                 }
1659 1659
                 // si es adicional se suma al total
@@ -1813,7 +1813,7 @@  discard block
 block discarded – undo
1813 1813
         $SignatureValue = trim(str_replace("\n", '', $Signature->getElementsByTagName('SignatureValue')->item(0)->nodeValue));
1814 1814
         $X509Certificate = trim(str_replace(["\n", ' '], '', $Signature->getElementsByTagName('X509Certificate')->item(0)->nodeValue));
1815 1815
         $X509Certificate = '-----BEGIN CERTIFICATE-----'."\n".wordwrap($X509Certificate, 64, "\n", true)."\n".'-----END CERTIFICATE----- ';
1816
-        $valid = openssl_verify($SignedInfo->C14N(), base64_decode($SignatureValue), $X509Certificate) === 1 ? true : false;
1816
+        $valid = openssl_verify($SignedInfo->C14N(), base64_decode($SignatureValue), $X509Certificate)===1 ? true : false;
1817 1817
         return $valid;
1818 1818
         //return $valid and $DigestValue===base64_encode(sha1($Documento->C14N(), true));
1819 1819
     }
Please login to merge, or discard this patch.
Braces   +78 added lines, -52 removed lines patch added patch discarded remove patch
@@ -57,10 +57,11 @@  discard block
 block discarded – undo
57 57
      */
58 58
     public function __construct($datos, $normalizar = true)
59 59
     {
60
-        if (is_array($datos))
61
-            $this->setDatos($datos, $normalizar);
62
-        else if (is_string($datos))
63
-            $this->loadXML($datos);
60
+        if (is_array($datos)) {
61
+                    $this->setDatos($datos, $normalizar);
62
+        } else if (is_string($datos)) {
63
+                    $this->loadXML($datos);
64
+        }
64 65
         $this->timestamp = date('Y-m-d\TH:i:s');
65 66
     }
66 67
 
@@ -121,8 +122,9 @@  discard block
 block discarded – undo
121 122
             if ($normalizar) {
122 123
                 $this->normalizar($datos);
123 124
                 $method = 'normalizar_'.$this->tipo;
124
-                if (method_exists($this, $method))
125
-                    $this->$method($datos);
125
+                if (method_exists($this, $method)) {
126
+                                    $this->$method($datos);
127
+                }
126 128
                 $this->normalizar_final($datos);
127 129
             }
128 130
             $this->tipo_general = $this->getTipoGeneral($this->tipo);
@@ -199,8 +201,9 @@  discard block
 block discarded – undo
199 201
      */
200 202
     public function getJSON()
201 203
     {
202
-        if (!$this->getDatos())
203
-            return false;
204
+        if (!$this->getDatos()) {
205
+                    return false;
206
+        }
204 207
         return json_encode($this->datos, JSON_PRETTY_PRINT);
205 208
     }
206 209
 
@@ -225,9 +228,10 @@  discard block
 block discarded – undo
225 228
      */
226 229
     private function getTipoGeneral($dte)
227 230
     {
228
-        foreach ($this->tipos as $tipo => $codigos)
229
-            if (in_array($dte, $codigos))
231
+        foreach ($this->tipos as $tipo => $codigos) {
232
+                    if (in_array($dte, $codigos))
230 233
                 return $tipo;
234
+        }
231 235
         \sasco\LibreDTE\Log::write(
232 236
             \sasco\LibreDTE\Estado::DTE_ERROR_TIPO,
233 237
             \sasco\LibreDTE\Estado::get(\sasco\LibreDTE\Estado::DTE_ERROR_TIPO, $dte)
@@ -266,10 +270,12 @@  discard block
 block discarded – undo
266 270
     public function getEmisor()
267 271
     {
268 272
         $nodo = $this->xml->xpath('/DTE/'.$this->tipo_general.'/Encabezado/Emisor/RUTEmisor')->item(0);
269
-        if ($nodo)
270
-            return $nodo->nodeValue;
271
-        if (!$this->getDatos())
272
-            return false;
273
+        if ($nodo) {
274
+                    return $nodo->nodeValue;
275
+        }
276
+        if (!$this->getDatos()) {
277
+                    return false;
278
+        }
273 279
         return $this->datos['Encabezado']['Emisor']['RUTEmisor'];
274 280
     }
275 281
 
@@ -282,10 +288,12 @@  discard block
 block discarded – undo
282 288
     public function getReceptor()
283 289
     {
284 290
         $nodo = $this->xml->xpath('/DTE/'.$this->tipo_general.'/Encabezado/Receptor/RUTRecep')->item(0);
285
-        if ($nodo)
286
-            return $nodo->nodeValue;
287
-        if (!$this->getDatos())
288
-            return false;
291
+        if ($nodo) {
292
+                    return $nodo->nodeValue;
293
+        }
294
+        if (!$this->getDatos()) {
295
+                    return false;
296
+        }
289 297
         return $this->datos['Encabezado']['Receptor']['RUTRecep'];
290 298
     }
291 299
 
@@ -298,10 +306,12 @@  discard block
 block discarded – undo
298 306
     public function getFechaEmision()
299 307
     {
300 308
         $nodo = $this->xml->xpath('/DTE/'.$this->tipo_general.'/Encabezado/IdDoc/FchEmis')->item(0);
301
-        if ($nodo)
302
-            return $nodo->nodeValue;
303
-        if (!$this->getDatos())
304
-            return false;
309
+        if ($nodo) {
310
+                    return $nodo->nodeValue;
311
+        }
312
+        if (!$this->getDatos()) {
313
+                    return false;
314
+        }
305 315
         return $this->datos['Encabezado']['IdDoc']['FchEmis'];
306 316
     }
307 317
 
@@ -314,10 +324,12 @@  discard block
 block discarded – undo
314 324
     public function getMontoTotal()
315 325
     {
316 326
         $nodo = $this->xml->xpath('/DTE/'.$this->tipo_general.'/Encabezado/Totales/MntTotal')->item(0);
317
-        if ($nodo)
318
-            return $nodo->nodeValue;
319
-        if (!$this->getDatos())
320
-            return false;
327
+        if ($nodo) {
328
+                    return $nodo->nodeValue;
329
+        }
330
+        if (!$this->getDatos()) {
331
+                    return false;
332
+        }
321 333
         return $this->datos['Encabezado']['Totales']['MntTotal'];
322 334
     }
323 335
 
@@ -330,10 +342,12 @@  discard block
 block discarded – undo
330 342
     public function getMoneda()
331 343
     {
332 344
         $nodo = $this->xml->xpath('/DTE/'.$this->tipo_general.'/Encabezado/Totales/TpoMoneda')->item(0);
333
-        if ($nodo)
334
-            return $nodo->nodeValue;
335
-        if (!$this->getDatos())
336
-            return false;
345
+        if ($nodo) {
346
+                    return $nodo->nodeValue;
347
+        }
348
+        if (!$this->getDatos()) {
349
+                    return false;
350
+        }
337 351
         return $this->datos['Encabezado']['Totales']['TpoMoneda'];
338 352
     }
339 353
 
@@ -376,8 +390,9 @@  discard block
 block discarded – undo
376 390
             return false;*/
377 391
         $xml = new \sasco\LibreDTE\XML();
378 392
         $TED = $this->xml->getElementsByTagName('TED')->item(0);
379
-        if (!$TED)
380
-            return '<TED/>';
393
+        if (!$TED) {
394
+                    return '<TED/>';
395
+        }
381 396
         $xml->loadXML($TED->C14N());
382 397
         $xml->documentElement->removeAttributeNS('http://www.w3.org/2001/XMLSchema-instance', 'xsi');
383 398
         $xml->documentElement->removeAttributeNS('http://www.sii.cl/SiiDte', '');
@@ -574,10 +589,12 @@  discard block
 block discarded – undo
574 589
      */
575 590
     private function calcularNetoIVA($total, $tasa = null)
576 591
     {
577
-        if ($tasa === 0 or $tasa === false)
578
-            return [0, 0];
579
-        if ($tasa === null)
580
-            $tasa = \sasco\LibreDTE\Sii::getIVA();
592
+        if ($tasa === 0 or $tasa === false) {
593
+                    return [0, 0];
594
+        }
595
+        if ($tasa === null) {
596
+                    $tasa = \sasco\LibreDTE\Sii::getIVA();
597
+        }
581 598
         // WARNING: el IVA obtenido puede no ser el NETO*(TASA/100)
582 599
         // se calcula el monto neto y luego se obtiene el IVA haciendo la resta
583 600
         // entre el total y el neto, ya que hay casos de borde como:
@@ -693,8 +710,9 @@  discard block
 block discarded – undo
693 710
         }
694 711
         // si existe descuento o recargo global se normalizan
695 712
         if (!empty($datos['DscRcgGlobal'])) {
696
-            if (!isset($datos['DscRcgGlobal'][0]))
697
-                $datos['DscRcgGlobal'] = [$datos['DscRcgGlobal']];
713
+            if (!isset($datos['DscRcgGlobal'][0])) {
714
+                            $datos['DscRcgGlobal'] = [$datos['DscRcgGlobal']];
715
+            }
698 716
             $NroLinDR = 1;
699 717
             foreach ($datos['DscRcgGlobal'] as &$dr) {
700 718
                 $dr = array_merge([
@@ -1357,8 +1375,9 @@  discard block
 block discarded – undo
1357 1375
      */
1358 1376
     private function normalizar_detalle(array &$datos)
1359 1377
     {
1360
-        if (!isset($datos['Detalle'][0]))
1361
-            $datos['Detalle'] = [$datos['Detalle']];
1378
+        if (!isset($datos['Detalle'][0])) {
1379
+                    $datos['Detalle'] = [$datos['Detalle']];
1380
+        }
1362 1381
         $item = 1;
1363 1382
         foreach ($datos['Detalle'] as &$d) {
1364 1383
             $d = array_merge([
@@ -1420,8 +1439,9 @@  discard block
 block discarded – undo
1420 1439
                 ];
1421 1440
             }
1422 1441
             if ($d['PrcItem']) {
1423
-                if (!$d['QtyItem'])
1424
-                    $d['QtyItem'] = 1;
1442
+                if (!$d['QtyItem']) {
1443
+                                    $d['QtyItem'] = 1;
1444
+                }
1425 1445
                 if (empty($d['MontoItem'])) {
1426 1446
                     $d['MontoItem'] = $this->round(
1427 1447
                         $d['QtyItem'] * $d['PrcItem'],
@@ -1487,8 +1507,9 @@  discard block
 block discarded – undo
1487 1507
     private function normalizar_aplicar_descuentos_recargos(array &$datos)
1488 1508
     {
1489 1509
         if (!empty($datos['DscRcgGlobal'])) {
1490
-            if (!isset($datos['DscRcgGlobal'][0]))
1491
-                $datos['DscRcgGlobal'] = [$datos['DscRcgGlobal']];
1510
+            if (!isset($datos['DscRcgGlobal'][0])) {
1511
+                            $datos['DscRcgGlobal'] = [$datos['DscRcgGlobal']];
1512
+            }
1492 1513
             foreach ($datos['DscRcgGlobal'] as &$dr) {
1493 1514
                 $dr = array_merge([
1494 1515
                     'NroLinDR' => false,
@@ -1555,8 +1576,9 @@  discard block
 block discarded – undo
1555 1576
         $montos = [];
1556 1577
         foreach ($datos['Detalle'] as &$d) {
1557 1578
             if (!empty($d['CodImpAdic'])) {
1558
-                if (!isset($montos[$d['CodImpAdic']]))
1559
-                    $montos[$d['CodImpAdic']] = 0;
1579
+                if (!isset($montos[$d['CodImpAdic']])) {
1580
+                                    $montos[$d['CodImpAdic']] = 0;
1581
+                }
1560 1582
                 $montos[$d['CodImpAdic']] += $d['MontoItem'];
1561 1583
             }
1562 1584
         }
@@ -1635,10 +1657,12 @@  discard block
 block discarded – undo
1635 1657
             }
1636 1658
             if (empty($datos['Encabezado']['Totales']['MntTotal'])) {
1637 1659
                 $datos['Encabezado']['Totales']['MntTotal'] = $datos['Encabezado']['Totales']['MntNeto'];
1638
-                if (!empty($datos['Encabezado']['Totales']['IVA']))
1639
-                    $datos['Encabezado']['Totales']['MntTotal'] += $datos['Encabezado']['Totales']['IVA'];
1640
-                if (!empty($datos['Encabezado']['Totales']['MntExe']))
1641
-                    $datos['Encabezado']['Totales']['MntTotal'] += $datos['Encabezado']['Totales']['MntExe'];
1660
+                if (!empty($datos['Encabezado']['Totales']['IVA'])) {
1661
+                                    $datos['Encabezado']['Totales']['MntTotal'] += $datos['Encabezado']['Totales']['IVA'];
1662
+                }
1663
+                if (!empty($datos['Encabezado']['Totales']['MntExe'])) {
1664
+                                    $datos['Encabezado']['Totales']['MntTotal'] += $datos['Encabezado']['Totales']['MntExe'];
1665
+                }
1642 1666
             }
1643 1667
         } else {
1644 1668
             if (!$datos['Encabezado']['Totales']['MntTotal'] and !empty($datos['Encabezado']['Totales']['MntExe'])) {
@@ -1664,8 +1688,10 @@  discard block
 block discarded – undo
1664 1688
         }
1665 1689
         // si hay impuesto de crédito a constructoras del 65% se descuenta del total
1666 1690
         if (!empty($datos['Encabezado']['Totales']['CredEC'])) {
1667
-            if ($datos['Encabezado']['Totales']['CredEC']===true)
1668
-                $datos['Encabezado']['Totales']['CredEC'] = round($datos['Encabezado']['Totales']['IVA'] * 0.65); // TODO: mover a constante o método
1691
+            if ($datos['Encabezado']['Totales']['CredEC']===true) {
1692
+                            $datos['Encabezado']['Totales']['CredEC'] = round($datos['Encabezado']['Totales']['IVA'] * 0.65);
1693
+            }
1694
+            // TODO: mover a constante o método
1669 1695
             $datos['Encabezado']['Totales']['MntTotal'] -= $datos['Encabezado']['Totales']['CredEC'];
1670 1696
         }
1671 1697
     }
Please login to merge, or discard this patch.