Code Duplication    Length = 59-59 lines in 3 locations

lib/Sii/Dte.php 3 locations

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