Code Duplication    Length = 59-59 lines in 3 locations

lib/Sii/Dte.php 3 locations

@@ 1124-1182 (lines=59) @@
1121
     * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
1122
     * @version 2016-04-05
1123
     */
1124
    private function normalizar_110(array &$datos)
1125
    {
1126
        // completar con nodos por defecto
1127
        $datos = \sasco\LibreDTE\Arreglo::mergeRecursiveDistinct([
1128
            'Encabezado' => [
1129
                'IdDoc' => false,
1130
                'Emisor' => false,
1131
                'Receptor' => false,
1132
                'Transporte' => [
1133
                    'Patente' => false,
1134
                    'RUTTrans' => false,
1135
                    'Chofer' => false,
1136
                    'DirDest' => false,
1137
                    'CmnaDest' => false,
1138
                    'CiudadDest' => false,
1139
                    'Aduana' => [
1140
                        'CodModVenta' => false,
1141
                        'CodClauVenta' => false,
1142
                        'TotClauVenta' => false,
1143
                        'CodViaTransp' => false,
1144
                        'NombreTransp' => false,
1145
                        'RUTCiaTransp' => false,
1146
                        'NomCiaTransp' => false,
1147
                        'IdAdicTransp' => false,
1148
                        'Booking' => false,
1149
                        'Operador' => false,
1150
                        'CodPtoEmbarque' => false,
1151
                        'IdAdicPtoEmb' => false,
1152
                        'CodPtoDesemb' => false,
1153
                        'IdAdicPtoDesemb' => false,
1154
                        'Tara' => false,
1155
                        'CodUnidMedTara' => false,
1156
                        'PesoBruto' => false,
1157
                        'CodUnidPesoBruto' => false,
1158
                        'PesoNeto' => false,
1159
                        'CodUnidPesoNeto' => false,
1160
                        'TotItems' => false,
1161
                        'TotBultos' => false,
1162
                        'TipoBultos' => false,
1163
                        'MntFlete' => false,
1164
                        'MntSeguro' => false,
1165
                        'CodPaisRecep' => false,
1166
                        'CodPaisDestin' => false,
1167
                    ],
1168
                ],
1169
                'Totales' => [
1170
                    'TpoMoneda' => null,
1171
                    'MntExe' => 0,
1172
                    'MntTotal' => 0,
1173
                ]
1174
            ],
1175
        ], $datos);
1176
        // normalizar datos
1177
        $this->normalizar_detalle($datos);
1178
        $this->normalizar_aplicar_descuentos_recargos($datos);
1179
        $this->normalizar_impuesto_retenido($datos);
1180
        $this->normalizar_agregar_IVA_MntTotal($datos);
1181
        $this->normalizar_exportacion($datos);
1182
    }
1183
1184
    /**
1185
     * Método que normaliza los datos de una nota de débito de exportación
@@ 1190-1248 (lines=59) @@
1187
     * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
1188
     * @version 2016-04-05
1189
     */
1190
    private function normalizar_111(array &$datos)
1191
    {
1192
        // completar con nodos por defecto
1193
        $datos = \sasco\LibreDTE\Arreglo::mergeRecursiveDistinct([
1194
            'Encabezado' => [
1195
                'IdDoc' => false,
1196
                'Emisor' => false,
1197
                'Receptor' => false,
1198
                'Transporte' => [
1199
                    'Patente' => false,
1200
                    'RUTTrans' => false,
1201
                    'Chofer' => false,
1202
                    'DirDest' => false,
1203
                    'CmnaDest' => false,
1204
                    'CiudadDest' => false,
1205
                    'Aduana' => [
1206
                        'CodModVenta' => false,
1207
                        'CodClauVenta' => false,
1208
                        'TotClauVenta' => false,
1209
                        'CodViaTransp' => false,
1210
                        'NombreTransp' => false,
1211
                        'RUTCiaTransp' => false,
1212
                        'NomCiaTransp' => false,
1213
                        'IdAdicTransp' => false,
1214
                        'Booking' => false,
1215
                        'Operador' => false,
1216
                        'CodPtoEmbarque' => false,
1217
                        'IdAdicPtoEmb' => false,
1218
                        'CodPtoDesemb' => false,
1219
                        'IdAdicPtoDesemb' => false,
1220
                        'Tara' => false,
1221
                        'CodUnidMedTara' => false,
1222
                        'PesoBruto' => false,
1223
                        'CodUnidPesoBruto' => false,
1224
                        'PesoNeto' => false,
1225
                        'CodUnidPesoNeto' => false,
1226
                        'TotItems' => false,
1227
                        'TotBultos' => false,
1228
                        'TipoBultos' => false,
1229
                        'MntFlete' => false,
1230
                        'MntSeguro' => false,
1231
                        'CodPaisRecep' => false,
1232
                        'CodPaisDestin' => false,
1233
                    ],
1234
                ],
1235
                'Totales' => [
1236
                    'TpoMoneda' => null,
1237
                    'MntExe' => 0,
1238
                    'MntTotal' => 0,
1239
                ]
1240
            ],
1241
        ], $datos);
1242
        // normalizar datos
1243
        $this->normalizar_detalle($datos);
1244
        $this->normalizar_aplicar_descuentos_recargos($datos);
1245
        $this->normalizar_impuesto_retenido($datos);
1246
        $this->normalizar_agregar_IVA_MntTotal($datos);
1247
        $this->normalizar_exportacion($datos);
1248
    }
1249
1250
    /**
1251
     * Método que normaliza los datos de una nota de crédito de exportación
@@ 1256-1314 (lines=59) @@
1253
     * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
1254
     * @version 2016-04-05
1255
     */
1256
    private function normalizar_112(array &$datos)
1257
    {
1258
        // completar con nodos por defecto
1259
        $datos = \sasco\LibreDTE\Arreglo::mergeRecursiveDistinct([
1260
            'Encabezado' => [
1261
                'IdDoc' => false,
1262
                'Emisor' => false,
1263
                'Receptor' => false,
1264
                'Transporte' => [
1265
                    'Patente' => false,
1266
                    'RUTTrans' => false,
1267
                    'Chofer' => false,
1268
                    'DirDest' => false,
1269
                    'CmnaDest' => false,
1270
                    'CiudadDest' => false,
1271
                    'Aduana' => [
1272
                        'CodModVenta' => false,
1273
                        'CodClauVenta' => false,
1274
                        'TotClauVenta' => false,
1275
                        'CodViaTransp' => false,
1276
                        'NombreTransp' => false,
1277
                        'RUTCiaTransp' => false,
1278
                        'NomCiaTransp' => false,
1279
                        'IdAdicTransp' => false,
1280
                        'Booking' => false,
1281
                        'Operador' => false,
1282
                        'CodPtoEmbarque' => false,
1283
                        'IdAdicPtoEmb' => false,
1284
                        'CodPtoDesemb' => false,
1285
                        'IdAdicPtoDesemb' => false,
1286
                        'Tara' => false,
1287
                        'CodUnidMedTara' => false,
1288
                        'PesoBruto' => false,
1289
                        'CodUnidPesoBruto' => false,
1290
                        'PesoNeto' => false,
1291
                        'CodUnidPesoNeto' => false,
1292
                        'TotItems' => false,
1293
                        'TotBultos' => false,
1294
                        'TipoBultos' => false,
1295
                        'MntFlete' => false,
1296
                        'MntSeguro' => false,
1297
                        'CodPaisRecep' => false,
1298
                        'CodPaisDestin' => false,
1299
                    ],
1300
                ],
1301
                'Totales' => [
1302
                    'TpoMoneda' => null,
1303
                    'MntExe' => 0,
1304
                    'MntTotal' => 0,
1305
                ]
1306
            ],
1307
        ], $datos);
1308
        // normalizar datos
1309
        $this->normalizar_detalle($datos);
1310
        $this->normalizar_aplicar_descuentos_recargos($datos);
1311
        $this->normalizar_impuesto_retenido($datos);
1312
        $this->normalizar_agregar_IVA_MntTotal($datos);
1313
        $this->normalizar_exportacion($datos);
1314
    }
1315
1316
    /**
1317
     * Método que normaliza los datos de exportacion de un documento