Code Duplication    Length = 59-59 lines in 3 locations

lib/Sii/Dte.php 3 locations

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