Code Duplication    Length = 59-59 lines in 3 locations

lib/Sii/Dte.php 3 locations

@@ 1025-1083 (lines=59) @@
1022
     * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
1023
     * @version 2016-04-05
1024
     */
1025
    private function normalizar_110(array &$datos)
1026
    {
1027
        // completar con nodos por defecto
1028
        $datos = \sasco\LibreDTE\Arreglo::mergeRecursiveDistinct([
1029
            'Encabezado' => [
1030
                'IdDoc' => false,
1031
                'Emisor' => false,
1032
                'Receptor' => false,
1033
                'Transporte' => [
1034
                    'Patente' => false,
1035
                    'RUTTrans' => false,
1036
                    'Chofer' => false,
1037
                    'DirDest' => false,
1038
                    'CmnaDest' => false,
1039
                    'CiudadDest' => false,
1040
                    'Aduana' => [
1041
                        'CodModVenta' => false,
1042
                        'CodClauVenta' => false,
1043
                        'TotClauVenta' => false,
1044
                        'CodViaTransp' => false,
1045
                        'NombreTransp' => false,
1046
                        'RUTCiaTransp' => false,
1047
                        'NomCiaTransp' => false,
1048
                        'IdAdicTransp' => false,
1049
                        'Booking' => false,
1050
                        'Operador' => false,
1051
                        'CodPtoEmbarque' => false,
1052
                        'IdAdicPtoEmb' => false,
1053
                        'CodPtoDesemb' => false,
1054
                        'IdAdicPtoDesemb' => false,
1055
                        'Tara' => false,
1056
                        'CodUnidMedTara' => false,
1057
                        'PesoBruto' => false,
1058
                        'CodUnidPesoBruto' => false,
1059
                        'PesoNeto' => false,
1060
                        'CodUnidPesoNeto' => false,
1061
                        'TotItems' => false,
1062
                        'TotBultos' => false,
1063
                        'TipoBultos' => false,
1064
                        'MntFlete' => false,
1065
                        'MntSeguro' => false,
1066
                        'CodPaisRecep' => false,
1067
                        'CodPaisDestin' => false,
1068
                    ],
1069
                ],
1070
                'Totales' => [
1071
                    'TpoMoneda' => null,
1072
                    'MntExe' => 0,
1073
                    'MntTotal' => 0,
1074
                ]
1075
            ],
1076
        ], $datos);
1077
        // normalizar datos
1078
        $this->normalizar_detalle($datos);
1079
        $this->normalizar_aplicar_descuentos_recargos($datos);
1080
        $this->normalizar_impuesto_retenido($datos);
1081
        $this->normalizar_agregar_IVA_MntTotal($datos);
1082
        $this->normalizar_exportacion($datos);
1083
    }
1084
1085
    /**
1086
     * Método que normaliza los datos de una nota de débito de exportación
@@ 1091-1149 (lines=59) @@
1088
     * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
1089
     * @version 2016-04-05
1090
     */
1091
    private function normalizar_111(array &$datos)
1092
    {
1093
        // completar con nodos por defecto
1094
        $datos = \sasco\LibreDTE\Arreglo::mergeRecursiveDistinct([
1095
            'Encabezado' => [
1096
                'IdDoc' => false,
1097
                'Emisor' => false,
1098
                'Receptor' => false,
1099
                'Transporte' => [
1100
                    'Patente' => false,
1101
                    'RUTTrans' => false,
1102
                    'Chofer' => false,
1103
                    'DirDest' => false,
1104
                    'CmnaDest' => false,
1105
                    'CiudadDest' => false,
1106
                    'Aduana' => [
1107
                        'CodModVenta' => false,
1108
                        'CodClauVenta' => false,
1109
                        'TotClauVenta' => false,
1110
                        'CodViaTransp' => false,
1111
                        'NombreTransp' => false,
1112
                        'RUTCiaTransp' => false,
1113
                        'NomCiaTransp' => false,
1114
                        'IdAdicTransp' => false,
1115
                        'Booking' => false,
1116
                        'Operador' => false,
1117
                        'CodPtoEmbarque' => false,
1118
                        'IdAdicPtoEmb' => false,
1119
                        'CodPtoDesemb' => false,
1120
                        'IdAdicPtoDesemb' => false,
1121
                        'Tara' => false,
1122
                        'CodUnidMedTara' => false,
1123
                        'PesoBruto' => false,
1124
                        'CodUnidPesoBruto' => false,
1125
                        'PesoNeto' => false,
1126
                        'CodUnidPesoNeto' => false,
1127
                        'TotItems' => false,
1128
                        'TotBultos' => false,
1129
                        'TipoBultos' => false,
1130
                        'MntFlete' => false,
1131
                        'MntSeguro' => false,
1132
                        'CodPaisRecep' => false,
1133
                        'CodPaisDestin' => false,
1134
                    ],
1135
                ],
1136
                'Totales' => [
1137
                    'TpoMoneda' => null,
1138
                    'MntExe' => 0,
1139
                    'MntTotal' => 0,
1140
                ]
1141
            ],
1142
        ], $datos);
1143
        // normalizar datos
1144
        $this->normalizar_detalle($datos);
1145
        $this->normalizar_aplicar_descuentos_recargos($datos);
1146
        $this->normalizar_impuesto_retenido($datos);
1147
        $this->normalizar_agregar_IVA_MntTotal($datos);
1148
        $this->normalizar_exportacion($datos);
1149
    }
1150
1151
    /**
1152
     * Método que normaliza los datos de una nota de crédito de exportación
@@ 1157-1215 (lines=59) @@
1154
     * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
1155
     * @version 2016-04-05
1156
     */
1157
    private function normalizar_112(array &$datos)
1158
    {
1159
        // completar con nodos por defecto
1160
        $datos = \sasco\LibreDTE\Arreglo::mergeRecursiveDistinct([
1161
            'Encabezado' => [
1162
                'IdDoc' => false,
1163
                'Emisor' => false,
1164
                'Receptor' => false,
1165
                'Transporte' => [
1166
                    'Patente' => false,
1167
                    'RUTTrans' => false,
1168
                    'Chofer' => false,
1169
                    'DirDest' => false,
1170
                    'CmnaDest' => false,
1171
                    'CiudadDest' => false,
1172
                    'Aduana' => [
1173
                        'CodModVenta' => false,
1174
                        'CodClauVenta' => false,
1175
                        'TotClauVenta' => false,
1176
                        'CodViaTransp' => false,
1177
                        'NombreTransp' => false,
1178
                        'RUTCiaTransp' => false,
1179
                        'NomCiaTransp' => false,
1180
                        'IdAdicTransp' => false,
1181
                        'Booking' => false,
1182
                        'Operador' => false,
1183
                        'CodPtoEmbarque' => false,
1184
                        'IdAdicPtoEmb' => false,
1185
                        'CodPtoDesemb' => false,
1186
                        'IdAdicPtoDesemb' => false,
1187
                        'Tara' => false,
1188
                        'CodUnidMedTara' => false,
1189
                        'PesoBruto' => false,
1190
                        'CodUnidPesoBruto' => false,
1191
                        'PesoNeto' => false,
1192
                        'CodUnidPesoNeto' => false,
1193
                        'TotItems' => false,
1194
                        'TotBultos' => false,
1195
                        'TipoBultos' => false,
1196
                        'MntFlete' => false,
1197
                        'MntSeguro' => false,
1198
                        'CodPaisRecep' => false,
1199
                        'CodPaisDestin' => false,
1200
                    ],
1201
                ],
1202
                'Totales' => [
1203
                    'TpoMoneda' => null,
1204
                    'MntExe' => 0,
1205
                    'MntTotal' => 0,
1206
                ]
1207
            ],
1208
        ], $datos);
1209
        // normalizar datos
1210
        $this->normalizar_detalle($datos);
1211
        $this->normalizar_aplicar_descuentos_recargos($datos);
1212
        $this->normalizar_impuesto_retenido($datos);
1213
        $this->normalizar_agregar_IVA_MntTotal($datos);
1214
        $this->normalizar_exportacion($datos);
1215
    }
1216
1217
    /**
1218
     * Método que normaliza los datos de exportacion de un documento