Code Duplication    Length = 59-59 lines in 3 locations

lib/Sii/Dte.php 3 locations

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