Przeglądaj źródła

insercion de todos los campos en la bbdd

Nermosis 3 lat temu
rodzic
commit
a750a6264a

+ 140 - 118
application/libraries/ParserDatabase.php Wyświetl plik

@@ -29,19 +29,35 @@ class ParserDatabase
29 29
                     if ($idLicitacion['result']) {
30 30
                         $this->idLicitacion = $idLicitacion['id'];
31 31
 
32
-                        $this->setContractInfo($row['contractInfo']);
32
+                        if ($row['general']['id_licitacion'] == "8500237") {
33
+                            $var = 1;
34
+                        }
35
+
36
+                        $this->setDatosSingular($row['contractInfo'], "BRUTO_contract_folder", $this->idLicitacion, "ContractInfo");
37
+
38
+                        $this->setDatosSingular($row['tenderingProcess'], "BRUTO_tendering_process", $this->idLicitacion, "TenderingProcess");
39
+
40
+                        $this->setProcurementProject($row['procurementProject']);
41
+
42
+                        $this->setProcurementProjectLot($row['procurementProjectLot']);
43
+
44
+                        $this->setTenderingTerms($row['tenderingTerms']);
33 45
 
34 46
                         $this->setLocatedContractingParty($row['locatedContractingParty']);
35 47
 
36 48
                         $this->setParty($row['party']);
37 49
 
38
-                        $this->setLegalDocs($row['legalDocs']);
50
+                        $this->setValidNoticeInfo($row['validNoticeInfo']);
51
+
52
+                        $this->setDatosMultiples($row['tenderingResult'], "BRUTO_tender_result", $this->idLicitacion, "TenderResult");
39 53
 
40
-                        $this->setTechnicalDocs($row['technicalDocs']);
54
+                        $this->setDatosMultiples($row['legalDocs'], "BRUTO_legal_documents", $this->idLicitacion, "LegalDocs");
41 55
 
42
-                        $this->setGeneralDocs($row['generalDocs']);
56
+                        $this->setDatosMultiples($row['technicalDocs'], "BRUTO_technical_documents", $this->idLicitacion, "TechnicalDocs");
43 57
 
44
-                        $this->setAdditionalDocs($row['additionalDocs']);
58
+                        $this->setDatosMultiples($row['generalDocs'], "BRUTO_general_documents", $this->idLicitacion, "GeneralDocs");
59
+
60
+                        $this->setDatosMultiples($row['additionalDocs'], "BRUTO_additional_documents", $this->idLicitacion, "AdditionalDocs");
45 61
 
46 62
                     }
47 63
                 }
@@ -66,203 +82,209 @@ class ParserDatabase
66 82
         return $result;
67 83
     }
68 84
 
69
-    private function setContractInfo($contractInfo): void
85
+    private function setLocatedContractingParty($contractInfo): void
70 86
     {
71
-        $setInsert = array();
72
-        $resultInsert = 0;
87
+        $locatedContractingPartyId = $this->setDatosSingular($contractInfo['locatedContractingParty'], "BRUTO_located_contracting_party", $this->idLicitacion, "locatedContractingParty");
73 88
 
74
-        if (!empty($contractInfo)) {
89
+        $this->setDatosMultiples($contractInfo['activity'], "BRUTO_located_contracting_party_activity", $locatedContractingPartyId, "locatedContractingParty_Activity");
90
+    }
75 91
 
76
-            $contractInfo['id_ajena_licitacion'] = $this->idLicitacion;
92
+    private function setParty($partyInfo): void
93
+    {
94
+        $partyId = $this->setDatosSingular($partyInfo['party'], "BRUTO_party", $this->idLicitacion, "PartyInfo");
77 95
 
78
-            if ($resultInsert) {
79
-                guardar_log("setLicitacion_" . $this->fechaInicioParser, "ContractInfo Finalizada Inserción", "false");
80
-            } else {
81
-                guardar_log("setLicitacion_" . $this->fechaInicioParser, "ContractInfo Fallida", "false", 2);
82
-            }
83
-        } else {
84
-            guardar_log("setLicitacion_" . $this->fechaInicioParser, "ContractInfo vacio", "false");
85
-        }
96
+        $this->setDatosMultiples($partyInfo['partyIdentification'], "BRUTO_party_party_idenfitication", $partyId, "PartyInfo_PartyIdentification");
86 97
     }
87 98
 
88
-    private function setLocatedContractingParty($contractInfo): void
99
+    private function setProcurementProject($procurementInfo): void
89 100
     {
90
-        $setInsert = array();
91
-        $contractInfoInsert = 0;
101
+        $procurementProjectId = $this->setDatosSingular($procurementInfo['budget'], "BRUTO_procurement_project", $this->idLicitacion, "ProcurementProject");
92 102
 
93
-        if (!empty($contractInfo)) {
103
+        if (array_key_exists("itemClass", $procurementInfo)) {
104
+            $this->setDatosMultiples($procurementInfo['itemClass'], "BRUTO_procurement_project_itemClass", $procurementProjectId, "ProcurementProject_ItemClass");
105
+        }
94 106
 
95
-            $contractInfo['locatedContractingParty']['id_ajena_licitacion'] = $this->idLicitacion;
107
+    }
96 108
 
97
-            $contractInfoInsert = $this->CI->Parser_model->setLocatedContractInfo($contractInfo['locatedContractingParty']);
109
+    private function setProcurementProjectLot($procurementLotInfo): void
110
+    {
98 111
 
99
-            if ($contractInfoInsert) {
100
-                guardar_log("setLicitacion_" . $this->fechaInicioParser, "locatedContractingParty Finalizada Inserción", "false");
112
+        $resultInsert = 0;
101 113
 
102
-                if (!empty($contractInfo['activity'])) {
103
-                    $activityArr = array();
114
+        if (!empty($procurementLotInfo)) {
115
+            $aux = 0;
116
+            foreach ($procurementLotInfo as $row) {
117
+                $setInsert = array();
118
+                $setInsert[$aux] = $row;
119
+                $setInsert[$aux]['id_ajena'] = $this->idLicitacion;
120
+                unset($setInsert[$aux]['itemClassification']);
104 121
 
105
-                    foreach ($contractInfo['activity'] as $clave => $row) {
106
-                        $activityArr[$clave] = $row;
107
-                        $activityArr[$clave]['id_ajena_located_contracting_party'] = $contractInfoInsert;
122
+                if (!empty($setInsert)) {
123
+                    $resultInsert = insertBucle($setInsert, "BRUTO_procurement_project_lot", "setLicitacion_" . $this->fechaInicioParser);
124
+                    if ($row['itemClassification']) {
125
+                        $this->setDatosMultiples($row['itemClassification'], "BRUTO_procurement_project_lot_item", $resultInsert, "ProcurementLotItem");
108 126
                     }
109
-                    $activityInsert = insertBucle($activityArr, 'BRUTO_located_contracting_party_activity', "setLicitacion_" . $this->fechaInicioParser);
110
-                } else {
111
-                    guardar_log("setLicitacion_" . $this->fechaInicioParser, "locatedContractingParty_Activity vacio", "false");
112 127
                 }
128
+                $aux++;
129
+            }
130
+
131
+            if ($resultInsert) {
132
+                $result = array("result" => true);
133
+                guardar_log("setLicitacion_" . $this->fechaInicioParser, "ProcurementLot Finalizada Inserción", "false");
113 134
             } else {
114
-                guardar_log("setLicitacion_" . $this->fechaInicioParser, "locatedContractingParty Fallida", "false", 2);
135
+                $result = array("result" => true, "id" => 0);
136
+                guardar_log("setLicitacion_" . $this->fechaInicioParser, "ProcurementLot Fallida", "false", 2);
115 137
             }
116 138
         } else {
117
-            guardar_log("setLicitacion_" . $this->fechaInicioParser, "locatedContractingParty vacio", "false");
139
+            guardar_log("setLicitacion_" . $this->fechaInicioParser, "ProcurementLot vacio", "false");
118 140
         }
119 141
     }
120 142
 
121
-    private function setParty($partyInfo): void
143
+    private function setTenderingTerms($tenderingTermsInfo): void
122 144
     {
123
-        $setInsert = array();
124
-        $partyInfoInsert = 0;
125 145
 
126
-        if (!empty($partyInfo)) {
127
-
128
-            $partyInfo['party']['id_ajena_licitacion'] = $this->idLicitacion;
129
-
130
-            $partyInfoInsert = $this->CI->Parser_model->setParty($partyInfo['party']);
146
+        $resultInsert = 0;
131 147
 
132
-            if ($partyInfoInsert) {
133
-                guardar_log("setLicitacion_" . $this->fechaInicioParser, "PartyInfo Finalizada Inserción", "false");
148
+        if (!empty($tenderingTermsInfo)) {
149
+            $aux = 0;
150
+            //foreach ($tenderingTermsInfo as $clave => $row) {
151
+            $setInsert = array();
152
+            $setInsert['tenderingTerms'][0] = $tenderingTermsInfo[0];
153
+            $setInsert['tenderingTerms'][0]['id_ajena'] = $this->idLicitacion;
134 154
 
135
-                if (!empty($partyInfo['partyIdentification'])) {
136
-                    $partyIdentificationArr = array();
155
+            if (!empty($setInsert)) {
156
+                $resultInsert = insertBucle($setInsert['tenderingTerms'], "BRUTO_tendering_terms", "setLicitacion_" . $this->fechaInicioParser);
137 157
 
138
-                    foreach ($partyInfo['partyIdentification'] as $clave => $row) {
139
-                        $partyIdentificationArr[$clave] = $row;
140
-                        $partyIdentificationArr[$clave]['id_ajena_party'] = $partyInfoInsert;
158
+                if ($resultInsert > 0) {
159
+                    if (array_key_exists(1, $tenderingTermsInfo)) {
160
+                        $this->setDatosMultiples($tenderingTermsInfo[1], "BRUTO_tendering_terms_awarding_terms", $resultInsert, "TenderingTermsAwardingTerms");
141 161
                     }
142
-                    $activityInsert = insertBucle($partyIdentificationArr, 'BRUTO_party_party_idenfitication', "setLicitacion_" . $this->fechaInicioParser);
143
-                } else {
144
-                    guardar_log("setLicitacion_" . $this->fechaInicioParser, "PartyInfo_PartyIdentification vacio", "false");
145
-                }
146
-            } else {
147
-                guardar_log("setLicitacion_" . $this->fechaInicioParser, "PartyInfo Fallida", "false", 2);
148
-            }
149
-        } else {
150
-            guardar_log("setLicitacion_" . $this->fechaInicioParser, "PartyInfo vacio", "false");
151
-        }
152
-    }
153 162
 
154
-    private function setLegalDocs($legalDocs): void
155
-    {
156
-        $setInsert = array();
157
-        $resultInsert = 0;
163
+                    if (array_key_exists(2, $tenderingTermsInfo)) {
164
+                        $this->setDatosMultiples($tenderingTermsInfo[2], "BRUTO_tendering_terms_qualification_request", $resultInsert, "TenderingTermsQualificationRequest");
165
+                    }
158 166
 
159
-        if (!empty($legalDocs)) {
160
-            $aux = 0;
161
-            foreach ($legalDocs as $row) {
162
-                $setInsert[$aux] = $row;
163
-                $setInsert[$aux]['id_ajena_licitacion'] = $this->idLicitacion;
164
-                $aux++;
165
-            }
167
+                    if (array_key_exists(3, $tenderingTermsInfo)) {
168
+                        $this->setDatosMultiples($tenderingTermsInfo[3], "BRUTO_tendering_terms_financial_evaluation", $resultInsert, "TenderingTermsFinancialEvaluation");
169
+                    }
166 170
 
167
-            if (!empty($setInsert)) {
168
-                $resultInsert = insertBucle($setInsert, 'BRUTO_legal_documents', "setLicitacion_" . $this->fechaInicioParser);
171
+                    if (array_key_exists(4, $tenderingTermsInfo)) {
172
+                        $this->setDatosMultiples($tenderingTermsInfo[4], "BRUTO_tendering_terms_specific_terms", $resultInsert, "TenderingTermsSpecificRequirement");
173
+                    }
174
+                }
169 175
             }
176
+            //$aux++;
177
+            //}
170 178
 
171 179
             if ($resultInsert) {
172 180
                 $result = array("result" => true);
173
-                guardar_log("setLicitacion_" . $this->fechaInicioParser, "LegalDocs Finalizada Inserción", "false");
181
+                guardar_log("setLicitacion_" . $this->fechaInicioParser, "TenderingTerms Finalizada Inserción", "false");
174 182
             } else {
175 183
                 $result = array("result" => true, "id" => 0);
176
-                guardar_log("setLicitacion_" . $this->fechaInicioParser, "LegalDocs Fallida", "false", 2);
184
+                guardar_log("setLicitacion_" . $this->fechaInicioParser, "TenderingTerms Fallida", "false", 2);
177 185
             }
178 186
         } else {
179
-            guardar_log("setLicitacion_" . $this->fechaInicioParser, "LegalDocs vacio", "false");
187
+            guardar_log("setLicitacion_" . $this->fechaInicioParser, "TenderingTerms vacio", "false");
180 188
         }
181
-
182 189
     }
183 190
 
184
-    private function setGeneralDocs($generalDocs): void
191
+    private function setValidNoticeInfo($validNoticeInfo): void
185 192
     {
186
-        $setInsert = array();
193
+
187 194
         $resultInsert = 0;
188
-        if (!empty($generalDocs)) {
195
+
196
+        if (!empty($validNoticeInfo)) {
189 197
             $aux = 0;
190
-            foreach ($generalDocs as $row) {
198
+            foreach ($validNoticeInfo as $row) {
199
+                $setInsert = array();
191 200
                 $setInsert[$aux] = $row;
192
-                $setInsert[$aux]['id_ajena_licitacion'] = $this->idLicitacion;
193
-                $aux++;
194
-            }
201
+                $setInsert[$aux]['id_ajena'] = $this->idLicitacion;
195 202
 
196
-            if (!empty($setInsert)) {
197
-                $resultInsert = insertBucle($setInsert, 'BRUTO_general_documents', "setLicitacion_" . $this->fechaInicioParser);
203
+                unset($setInsert[$aux]['documento']);
204
+                unset($setInsert[$aux]['fechas']);
205
+
206
+                if (!empty($setInsert)) {
207
+                    $resultInsert = insertBucle($setInsert, "BRUTO_valid_notice_info", "setLicitacion_" . $this->fechaInicioParser);
208
+                    if (array_key_exists("documento", $row)) {
209
+                        $this->setDatosMultiples($row['documento'], "BRUTO_valid_notice_info_documento", $resultInsert, "validNoticeInfoFechas");
210
+                    }
211
+
212
+                    if (array_key_exists("fechas", $row)) {
213
+                        $this->setDatosMultiples($row['fechas'], "BRUTO_valid_notice_info_fecha", $resultInsert, "validNoticeInfoDocumento");
214
+                    }
215
+                }
216
+                $aux++;
198 217
             }
199 218
 
200 219
             if ($resultInsert) {
201 220
                 $result = array("result" => true);
202
-                guardar_log("setLicitacion_" . $this->fechaInicioParser, "GeneralDocs Finalizada Inserción", "false");
221
+                guardar_log("setLicitacion_" . $this->fechaInicioParser, "validNoticeInfo Finalizada Inserción", "false");
203 222
             } else {
204 223
                 $result = array("result" => true, "id" => 0);
205
-                guardar_log("setLicitacion_" . $this->fechaInicioParser, "GeneralDocs Fallida", "false", 2);
224
+                guardar_log("setLicitacion_" . $this->fechaInicioParser, "validNoticeInfo Fallida", "false", 2);
206 225
             }
207 226
         } else {
208
-            guardar_log("setLicitacion_" . $this->fechaInicioParser, "GeneralDocs vacio", "false");
227
+            guardar_log("setLicitacion_" . $this->fechaInicioParser, "validNoticeInfo vacio", "false");
209 228
         }
210
-
211 229
     }
212 230
 
213
-    private function setAdditionalDocs($additionalDocs): void
231
+    private function setDatosSingular($arrayDatos, $tabla, $idAjena = 0, $nodoLog): int
214 232
     {
215
-        $setInsert = array();
216
-        $resultInsert = 0;
217
-        if (!empty($additionalDocs)) {
218
-            $aux = 0;
219
-            foreach ($additionalDocs as $row) {
220
-                $setInsert[$aux] = $row;
221
-                $setInsert[$aux]['id_ajena_licitacion'] = $this->idLicitacion;
222
-                $aux++;
223
-            }
233
+        $insertedId = 0;
234
+        if (!empty($arrayDatos)) {
235
+            $arrayInsertar = array();
224 236
 
225
-            if (!empty($setInsert)) {
226
-                $resultInsert = insertBucle($setInsert, 'BRUTO_additional_documents', "setLicitacion_" . $this->fechaInicioParser);
237
+            $arrayInsertar[0] = $arrayDatos;
238
+
239
+            if ($idAjena > 0) {
240
+                $arrayInsertar[0]['id_ajena'] = $idAjena;
227 241
             }
228 242
 
229
-            if ($resultInsert) {
230
-                $result = array("result" => true);
231
-                guardar_log("setLicitacion_" . $this->fechaInicioParser, "AdditionalDocs Finalizada Inserción", "false");
243
+            $insertedId = insertBucle($arrayInsertar, $tabla, "setLicitacion_" . $this->fechaInicioParser);
244
+
245
+            if ($insertedId == 0) {
246
+                guardar_log("setLicitacion_" . $this->fechaInicioParser, $nodoLog . " Fallido", "false");
232 247
             } else {
233
-                $result = array("result" => true, "id" => 0);
234
-                guardar_log("setLicitacion_" . $this->fechaInicioParser, "AdditionalDocs Fallida", "false", 2);
248
+                guardar_log("setLicitacion_" . $this->fechaInicioParser, $nodoLog . " Finalizada Inserción", "false");
235 249
             }
250
+
236 251
         } else {
237
-            guardar_log("setLicitacion_" . $this->fechaInicioParser, "AdditionalDocs vacio", "false");
252
+            guardar_log("setLicitacion_" . $this->fechaInicioParser, $nodoLog . " vacio", "false");
238 253
         }
254
+
255
+        return $insertedId;
239 256
     }
240 257
 
241
-    private function setTechnicalDocs($technicalDocs): void
258
+    private function setDatosMultiples($arrayDatos, $tabla, $idAjena = 0, $nodoLog): void
242 259
     {
243 260
         $setInsert = array();
244 261
         $resultInsert = 0;
245
-        if (!empty($technicalDocs)) {
262
+
263
+        if (!empty($arrayDatos)) {
246 264
             $aux = 0;
247
-            foreach ($technicalDocs as $row) {
265
+            foreach ($arrayDatos as $row) {
248 266
                 $setInsert[$aux] = $row;
249
-                $setInsert[$aux]['id_ajena_licitacion'] = $this->idLicitacion;
267
+
268
+                if ($idAjena > 0) {
269
+                    $setInsert[$aux]['id_ajena'] = $idAjena;
270
+                }
271
+
250 272
                 $aux++;
251 273
             }
252 274
 
253 275
             if (!empty($setInsert)) {
254
-                $resultInsert = insertBucle($setInsert, 'BRUTO_technical_documents', "setLicitacion_" . $this->fechaInicioParser);
276
+                $resultInsert = insertBucle($setInsert, $tabla, "setLicitacion_" . $this->fechaInicioParser);
255 277
             }
256 278
 
257 279
             if ($resultInsert) {
258 280
                 $result = array("result" => true);
259
-                guardar_log("setLicitacion_" . $this->fechaInicioParser, "TechnicalDocs Finalizada Inserción", "false");
281
+                guardar_log("setLicitacion_" . $this->fechaInicioParser, $nodoLog . " Finalizada Inserción", "false");
260 282
             } else {
261 283
                 $result = array("result" => true, "id" => 0);
262
-                guardar_log("setLicitacion_" . $this->fechaInicioParser, "TechnicalDocs Fallida", "false", 2);
284
+                guardar_log("setLicitacion_" . $this->fechaInicioParser, $nodoLog . " Fallida", "false", 2);
263 285
             }
264 286
         } else {
265
-            guardar_log("setLicitacion_" . $this->fechaInicioParser, "TechnicalDocs vacio", "false");
287
+            guardar_log("setLicitacion_" . $this->fechaInicioParser, $nodoLog . " vacio", "false");
266 288
         }
267 289
     }
268 290
 

+ 59 - 58
application/libraries/ParserFile.php Wyświetl plik

@@ -42,15 +42,15 @@ class ParserFile
42 42
 
43 43
                 $resultEntries[$filename][$aux]['party'] = $this->nodoParty($row); //
44 44
 
45
-                $resultEntries[$filename][$aux]['procurementProject'] = $this->nodoPresupuesto($row);
45
+                $resultEntries[$filename][$aux]['procurementProject'] = $this->nodoPresupuesto($row); //
46 46
 
47
-                $resultEntries[$filename][$aux]['procurementProjectLot'] = $this->nodoProcurementProjectLot($row);
47
+                $resultEntries[$filename][$aux]['procurementProjectLot'] = $this->nodoProcurementProjectLot($row); //
48 48
 
49
-                $resultEntries[$filename][$aux]['tenderingTerms'] = $this->nodoTenderingTerms($row);
49
+                $resultEntries[$filename][$aux]['tenderingTerms'] = $this->nodoTenderingTerms($row); //
50 50
 
51
-                $resultEntries[$filename][$aux]['tenderingProcess'] = $this->nodoTenderingProcess($row);
51
+                $resultEntries[$filename][$aux]['tenderingProcess'] = $this->nodoTenderingProcess($row); //
52 52
 
53
-                $resultEntries[$filename][$aux]['tenderingResult'] = $this->nodoTenderResult($row);
53
+                $resultEntries[$filename][$aux]['tenderingResult'] = $this->nodoTenderResult($row); //
54 54
 
55 55
                 $resultEntries[$filename][$aux]['validNoticeInfo'] = $this->nodoValidNoticeInfo($row);
56 56
 
@@ -171,43 +171,43 @@ class ParserFile
171 171
         if (isset($procurementProject)) {
172 172
             //ProcurementProject
173 173
 
174
-            $resultEntries['name'] = $this->existNodo($procurementProject, 'Name', 'string');
175
-            $resultEntries['typeCode'] = $this->existNodo($procurementProject, 'TypeCode', 'string');
176
-            $resultEntries['subTypeCode'] = $this->existNodo($procurementProject, 'SubTypeCode', 'string');
174
+            $resultEntries['budget']['name'] = $this->existNodo($procurementProject, 'Name', 'string');
175
+            $resultEntries['budget']['typeCode'] = $this->existNodo($procurementProject, 'TypeCode', 'string');
176
+            $resultEntries['budget']['subTypeCode'] = $this->existNodo($procurementProject, 'SubTypeCode', 'string');
177 177
 
178 178
             if (isset($procurementProject->BudgetAmount)) {
179
-                $resultEntries['estimatedOverallContractAmount'] = $this->existNodo($procurementProject->BudgetAmount, 'EstimatedOverallContractAmount', 'string');
180
-                $resultEntries['totalAmount'] = $this->existNodo($procurementProject->BudgetAmount, 'TotalAmount', 'string');
181
-                $resultEntries['taxExclusiveAmount'] = $this->existNodo($procurementProject->BudgetAmount, 'TaxExclusiveAmount', 'string');
179
+                $resultEntries['budget']['estimatedOverallContractAmount'] = $this->existNodo($procurementProject->BudgetAmount, 'EstimatedOverallContractAmount', 'string');
180
+                $resultEntries['budget']['totalAmount'] = $this->existNodo($procurementProject->BudgetAmount, 'TotalAmount', 'string');
181
+                $resultEntries['budget']['taxExclusiveAmount'] = $this->existNodo($procurementProject->BudgetAmount, 'TaxExclusiveAmount', 'string');
182 182
             }
183 183
 
184 184
             if (isset($procurementProject->RequiredCommodityClassification)) {
185 185
                 for ($i = 0; $i < count($procurementProject->RequiredCommodityClassification); $i++) {
186
-                    $resultEntries['itemClassification_value'] = $this->existNodo($procurementProject->RequiredCommodityClassification[$i], 'ItemClassificationCode', 'string');
187
-                    $resultEntries['itemClassification_attr'] = (string) $procurementProject->RequiredCommodityClassification[$i]->ItemClassificationCode['listURI'];
186
+                    $resultEntries['itemClass'][$i]['itemClassification_value'] = $this->existNodo($procurementProject->RequiredCommodityClassification[$i], 'ItemClassificationCode', 'string');
187
+                    $resultEntries['itemClass'][$i]['itemClassification_attr'] = (string) $procurementProject->RequiredCommodityClassification[$i]->ItemClassificationCode['listURI'];
188 188
                 }
189 189
             }
190 190
 
191 191
             if (isset($procurementProject->RealizedLocation)) {
192
-                $resultEntries['countrySubentity'] = $this->existNodo($procurementProject->RealizedLocation, 'CountrySubentity', 'string');
192
+                $resultEntries['budget']['countrySubentity'] = $this->existNodo($procurementProject->RealizedLocation, 'CountrySubentity', 'string');
193 193
                 if (isset($procurementProject->RealizedLocation->CountrySubentityCode)) {
194
-                    $resultEntries['countrySubentityCode'] = $this->existNodo($procurementProject->RealizedLocation, 'CountrySubentityCode', 'string');
195
-                    $resultEntries['countrySubentityCode'] = $this->existAttribute($procurementProject->RealizedLocation, "CountrySubentityCode", "string", 'listURI');
194
+                    $resultEntries['budget']['countrySubentityCode'] = $this->existNodo($procurementProject->RealizedLocation, 'CountrySubentityCode', 'string');
195
+                    $resultEntries['budget']['countrySubentityCodeAttr'] = $this->existAttribute($procurementProject->RealizedLocation, "CountrySubentityCode", "string", 'listURI');
196 196
                 }
197 197
 
198 198
                 if (isset($procurementProject->RealizedLocation->Address)) {
199
-                    $resultEntries['cityName'] = $this->existNodo($procurementProject->RealizedLocation->Address->Country, 'CityName', 'string');
200
-                    $resultEntries['IdentificationCode'] = $this->existNodo($procurementProject->RealizedLocation->Address->Country, 'IdentificationCode', 'string');
201
-                    $resultEntries['countryName'] = $this->existNodo($procurementProject->RealizedLocation->Address->Country, 'Name', 'string');
199
+                    $resultEntries['budget']['cityName'] = $this->existNodo($procurementProject->RealizedLocation->Address->Country, 'CityName', 'string');
200
+                    $resultEntries['budget']['IdentificationCode'] = $this->existNodo($procurementProject->RealizedLocation->Address->Country, 'IdentificationCode', 'string');
201
+                    $resultEntries['budget']['countryName'] = $this->existNodo($procurementProject->RealizedLocation->Address->Country, 'Name', 'string');
202 202
                 }
203 203
             }
204 204
 
205
-            $resultEntries['durationMesure'] = $this->existNodo($procurementProject->PlannedPeriod, 'DurationMeasure', 'string');
206
-            $resultEntries['duracion_inicio'] = $this->existNodo($procurementProject->PlannedPeriod, 'StartDate', 'string');
207
-            $resultEntries['duracion_fin'] = $this->existNodo($procurementProject->PlannedPeriod, 'EndDate', 'string');
208
-            $resultEntries['medida'] = $this->existAttribute($procurementProject->PlannedPeriod, "DurationMeasure", "string", 'unitCode');
205
+            $resultEntries['budget']['durationMesure'] = $this->existNodo($procurementProject->PlannedPeriod, 'DurationMeasure', 'string');
206
+            $resultEntries['budget']['duracion_inicio'] = $this->existNodo($procurementProject->PlannedPeriod, 'StartDate', 'string');
207
+            $resultEntries['budget']['duracion_fin'] = $this->existNodo($procurementProject->PlannedPeriod, 'EndDate', 'string');
208
+            $resultEntries['budget']['medida'] = $this->existAttribute($procurementProject->PlannedPeriod, "DurationMeasure", "string", 'unitCode');
209 209
 
210
-            $resultEntries['contractExtension'] = $this->existNodo($procurementProject->ContractExtension, 'OptionsDescription', 'string');
210
+            $resultEntries['budget']['contractExtension'] = $this->existNodo($procurementProject->ContractExtension, 'OptionsDescription', 'string');
211 211
         }
212 212
 
213 213
         $resultFinal = $this->array_remove_empty($resultEntries);
@@ -221,7 +221,7 @@ class ParserFile
221 221
 
222 222
         if (isset($procurementProjectLot)) {
223 223
             for ($i = 0; $i < count($procurementProjectLot); $i++) {
224
-                $resultEntries[$i]['id'] = $this->existNodo($procurementProjectLot[$i], 'ID', 'string');
224
+                $resultEntries[$i]['idProcurementLot'] = $this->existNodo($procurementProjectLot[$i], 'ID', 'string');
225 225
                 $resultEntries[$i]['name'] = $this->existNodo($procurementProjectLot[$i]->ProcurementProject, 'Name', 'string');
226 226
                 $resultEntries[$i]['totalAmount'] = $this->existNodo($procurementProjectLot[$i]->ProcurementProject->BudgetAmount, 'TotalAmount', 'string');
227 227
                 $resultEntries[$i]['taxExclusiveAmount'] = $this->existNodo($procurementProjectLot[$i]->ProcurementProject->BudgetAmount, 'TaxExclusiveAmount', 'string');
@@ -229,16 +229,16 @@ class ParserFile
229 229
                 $clasificacionItems = $procurementProjectLot[$i]->ProcurementProject->RequiredCommodityClassification;
230 230
                 if (isset($clasificacionItems)) {
231 231
                     for ($j = 0; $j < count($clasificacionItems); $j++) {
232
-                        $resultEntries[$i]['itemClassification']['id'][$j] = $clasificacionItems[$j]->ItemClassificationCode;
233
-                        $resultEntries[$i]['itemClassification']['id_attr'][$j] = $this->existAttribute($clasificacionItems[$j], "ItemClassificationCode", "string", 'listURI');
232
+                        $resultEntries[$i]['itemClassification'][$j]['idItem'] = $this->existNodo($clasificacionItems[$j], "ItemClassificationCode", "string");
233
+                        $resultEntries[$i]['itemClassification'][$j]['id_attr'] = $this->existAttribute($clasificacionItems[$j], "ItemClassificationCode", "string", 'listURI');
234 234
                     }
235 235
                 }
236 236
 
237
-                if (isset($procurementProjectLot[$i]->RealizedLocation)) {
237
+                if (isset($procurementProjectLot[$i]->ProcurementProject->RealizedLocation)) {
238 238
                     $resultEntries[$i]['countrySubentity'] = $this->existNodo($procurementProjectLot[$i]->ProcurementProject->RealizedLocation, 'CountrySubentity', 'string');
239 239
                     $resultEntries[$i]['countrySubentityCode'] = $this->existNodo($procurementProjectLot[$i]->ProcurementProject->RealizedLocation, 'CountrySubentityCode', 'string');
240 240
                     $resultEntries[$i]['identificationCode'] = $this->existNodo($procurementProjectLot[$i]->ProcurementProject->RealizedLocation->Address->Country, 'IdentificationCode', 'string');
241
-                    $resultEntries[$i]['name'] = $this->existNodo($procurementProjectLot[$i]->ProcurementProject->RealizedLocation->Address->Country, 'Name', 'string');
241
+                    $resultEntries[$i]['nameLocation'] = $this->existNodo($procurementProjectLot[$i]->ProcurementProject->RealizedLocation->Address->Country, 'Name', 'string');
242 242
                 }
243 243
             }
244 244
         }
@@ -275,8 +275,8 @@ class ParserFile
275 275
                 $resultEntries[$i]['PayableAmount'] = $this->existNodo($awardedTenderedProject->LegalMonetaryTotal, 'PayableAmount', 'string');
276 276
             }
277 277
         }
278
-        $resultFinal = $this->array_remove_empty($resultEntries);
279
-        return $resultFinal;
278
+        //$resultFinal = $this->array_remove_empty($resultEntries);
279
+        return $resultEntries;
280 280
     }
281 281
 
282 282
     private function nodoTenderingTerms($xml)
@@ -286,45 +286,46 @@ class ParserFile
286 286
 
287 287
         if (isset($TenderingTerms)) {
288 288
 
289
-            $resultEntries['requiredCurriculaIndicator'] = $this->existNodo($TenderingTerms, 'RequiredCurriculaIndicator', 'string');
290
-            $resultEntries['variantConstraintIndicator'] = $this->existNodo($TenderingTerms, 'VariantConstraintIndicator', 'string');
291
-            $resultEntries['fundingProgramCode'] = $this->existNodo($TenderingTerms, 'FundingProgramCode', 'string');
289
+            $resultEntries[0]['requiredCurriculaIndicator'] = $this->existNodo($TenderingTerms, 'RequiredCurriculaIndicator', 'string');
290
+            $resultEntries[0]['variantConstraintIndicator'] = $this->existNodo($TenderingTerms, 'VariantConstraintIndicator', 'string');
291
+            $resultEntries[0]['fundingProgramCode'] = $this->existNodo($TenderingTerms, 'FundingProgramCode', 'string');
292 292
             if (isset($TenderingTerms->RequiredFinancialGuarantee->GuaranteeTypeCode)) {
293
-                $resultEntries['guaranteeTypeCode'] = $this->existNodo($TenderingTerms->RequiredFinancialGuarantee, 'GuaranteeTypeCode', 'string');
294
-                $resultEntries['guaranteeTypeCode_attr'] = $this->existAttribute($TenderingTerms->RequiredFinancialGuarantee, "GuaranteeTypeCode", "string", 'listURI');
295
-                $resultEntries['requiredFinancialGuarantee_Amount'] = $this->existNodo($TenderingTerms->RequiredFinancialGuarantee, 'AmountRate', 'string');
293
+                $resultEntries[0]['guaranteeTypeCode'] = $this->existNodo($TenderingTerms->RequiredFinancialGuarantee, 'GuaranteeTypeCode', 'string');
294
+                $resultEntries[0]['guaranteeTypeCode_attr'] = $this->existAttribute($TenderingTerms->RequiredFinancialGuarantee, "GuaranteeTypeCode", "string", 'listURI');
295
+                $resultEntries[0]['requiredFinancialGuarantee_Amount'] = $this->existNodo($TenderingTerms->RequiredFinancialGuarantee, 'AmountRate', 'string');
296 296
             }
297 297
 
298
-            $resultEntries['procurementLegislationDocumentReference'] = $this->existNodo($TenderingTerms->ProcurementLegislationDocumentReference, 'ID', 'string');
299
-            $resultEntries['allowedSubcontractTerms'] = $this->existNodo($TenderingTerms->AllowedSubcontractTerms, 'Description', 'string');
298
+            $resultEntries[0]['procurementLegislationDocumentReference'] = $this->existNodo($TenderingTerms->ProcurementLegislationDocumentReference, 'ID', 'string');
299
+            $resultEntries[0]['allowedSubcontractTerms'] = $this->existNodo($TenderingTerms->AllowedSubcontractTerms, 'Description', 'string');
300 300
 
301 301
             $tendererAwardingTerms = $TenderingTerms->AwardingTerms;
302 302
             if (isset($tendererAwardingTerms) && !empty($tendererAwardingTerms)) {
303 303
                 for ($i = 0; $i < count($tendererAwardingTerms->AwardingCriteria); $i++) {
304
-                    $resultEntries['awardingTerms'][$i]['evaluationCriteriaTypeCode'] = $this->existNodo($tendererAwardingTerms[$i], 'Description', 'string');
305
-                    $resultEntries['awardingTerms'][$i]['description'] = $this->existNodo($tendererAwardingTerms[$i], 'WeightNumeric', 'string');
304
+                    $resultEntries[1][$i]['evaluationCriteriaTypeCode'] = $this->existNodo($tendererAwardingTerms[$i], 'Description', 'string');
305
+                    $resultEntries[1][$i]['description'] = $this->existNodo($tendererAwardingTerms[$i], 'WeightNumeric', 'string');
306 306
                 }
307 307
             }
308 308
 
309 309
             $tendererQualificationRequest = $TenderingTerms->TendererQualificationRequest;
310 310
             if (isset($tendererQualificationRequest) && !empty($tendererQualificationRequest)) {
311
-                $resultEntries['tendererQualificationRequest']['description'] = $this->existNodo($tendererQualificationRequest, 'Description', 'string');
311
+                $resultEntries[0]['description'] = $this->existNodo($tendererQualificationRequest, 'Description', 'string');
312
+                $resultEntries[0]['personalSituation'] = $this->existNodo($tendererQualificationRequest, 'PersonalSituation', 'string');
312 313
                 for ($i = 0; $i < count($tendererQualificationRequest); $i++) {
313 314
                     if (isset($tendererQualificationRequest[$i]->TechnicalEvaluationCriteria->EvaluationCriteriaTypeCode)) {
314
-                        $resultEntries['tendererQualificationRequest'][$i]['evaluationCriteriaTypeCode'] = $this->existNodo($tendererQualificationRequest[$i]->TechnicalEvaluationCriteria, 'EvaluationCriteriaTypeCode', 'string');
315
-                        $resultEntries['tendererQualificationRequest'][$i]['evaluationCriteriaTypeCode_attr'] = $this->existAttribute($tendererQualificationRequest[$i]->TechnicalEvaluationCriteria, "EvaluationCriteriaTypeCode", "sting", 'listURI');
315
+                        $resultEntries[2][$i]['evaluationCriteriaTypeCode'] = $this->existNodo($tendererQualificationRequest[$i]->TechnicalEvaluationCriteria, 'EvaluationCriteriaTypeCode', 'string');
316
+                        $resultEntries[2][$i]['evaluationCriteriaTypeCode_attr'] = $this->existAttribute($tendererQualificationRequest[$i]->TechnicalEvaluationCriteria, "EvaluationCriteriaTypeCode", "sting", 'listURI');
317
+                        $resultEntries[2][$i]['description'] = $this->existNodo($tendererQualificationRequest[$i]->TechnicalEvaluationCriteria, 'Description', 'string');
316 318
                     }
317 319
 
318
-                    $resultEntries['tendererQualificationRequest'][$i]['description'] = $this->existNodo($tendererQualificationRequest[$i]->TechnicalEvaluationCriteria, 'Description', 'string');
319 320
                 }
320 321
             }
321 322
 
322 323
             $financialEvaluationCriteria = $TenderingTerms->TendererQualificationRequest->FinancialEvaluationCriteria;
323 324
             if (isset($financialEvaluationCriteria) && !empty($financialEvaluationCriteria)) {
324 325
                 for ($i = 0; $i < count($financialEvaluationCriteria); $i++) {
325
-                    $resultEntries['financialEvaluationCriteria'][$i]['evaluationCriteriaTypeCode'] = $this->existNodo($financialEvaluationCriteria[$i], 'EvaluationCriteriaTypeCode', 'string');
326
-                    $resultEntries['financialEvaluationCriteria'][$i]['evaluationCriteriaTypeCode_attr'] = $this->existAttribute($financialEvaluationCriteria[$i], "EvaluationCriteriaTypeCode", "string", 'listURI');
327
-                    $resultEntries['financialEvaluationCriteria'][$i]['description'] = $this->existNodo($financialEvaluationCriteria[$i], 'Description', 'string');
326
+                    $resultEntries[3][$i]['evaluationCriteriaTypeCode'] = $this->existNodo($financialEvaluationCriteria[$i], 'EvaluationCriteriaTypeCode', 'string');
327
+                    $resultEntries[3][$i]['evaluationCriteriaTypeCode_attr'] = $this->existAttribute($financialEvaluationCriteria[$i], "EvaluationCriteriaTypeCode", "string", 'listURI');
328
+                    $resultEntries[3][$i]['description'] = $this->existNodo($financialEvaluationCriteria[$i], 'Description', 'string');
328 329
                 }
329 330
             }
330 331
 
@@ -332,15 +333,15 @@ class ParserFile
332 333
             if (isset($specificTendererRequirement) && !empty($specificTendererRequirement)) {
333 334
                 for ($i = 0; $i < count($specificTendererRequirement); $i++) {
334 335
 
335
-                    $resultEntries['financialEvaluationCriteria'][$i]['evaluationCriteriaTypeCode'] = $this->existNodo($specificTendererRequirement[$i]->SpecificTendererRequirement, 'RequirementTypeCode', 'string');
336
-                    $resultEntries['financialEvaluationCriteria'][$i]['evaluationCriteriaTypeCode_attr'] = $this->existAttribute($specificTendererRequirement[$i]->SpecificTendererRequirement, "RequirementTypeCode", "string", 'listURI');
336
+                    $resultEntries[4][$i]['evaluationCriteriaTypeCode'] = $this->existNodo($specificTendererRequirement[$i]->SpecificTendererRequirement, 'RequirementTypeCode', 'string');
337
+                    $resultEntries[4][$i]['evaluationCriteriaTypeCode_attr'] = $this->existAttribute($specificTendererRequirement[$i]->SpecificTendererRequirement, "RequirementTypeCode", "string", 'listURI');
337 338
                 }
338 339
             }
339 340
 
340
-            $resultEntries['language'] = $this->existNodo($TenderingTerms->Language, 'ID', 'string');
341
+            $resultEntries[0]['language'] = $this->existNodo($TenderingTerms->Language, 'ID', 'string');
341 342
         }
342
-        $resultFinal = $this->array_remove_empty($resultEntries);
343
-        return $resultFinal;
343
+        //$resultFinal = $this->array_remove_empty($resultEntries);
344
+        return $resultEntries;
344 345
     }
345 346
 
346 347
     private function nodoTenderingProcess($xml)
@@ -446,10 +447,10 @@ class ParserFile
446 447
                 if (isset($validNoticeInfo[$i]->AdditionalPublicationStatus)) {
447 448
                     for ($j = 0; $j < count($validNoticeInfo[$i]->AdditionalPublicationStatus->AdditionalPublicationDocumentReference); $j++) {
448 449
 
449
-                        $resultEntries[$i]['fechas'][] = $this->existNodo($validNoticeInfo[$i]->AdditionalPublicationStatus->AdditionalPublicationDocumentReference[$j], 'IssueDate', 'string');
450
+                        $resultEntries[$i]['fechas'][$j]['fechas'] = $this->existNodo($validNoticeInfo[$i]->AdditionalPublicationStatus->AdditionalPublicationDocumentReference[$j], 'IssueDate', 'string');
450 451
                         if ($validNoticeInfo[$i]->AdditionalPublicationStatus->AdditionalPublicationDocumentReference[$j]->DocumentTypeCode) {
451
-                            $resultEntries[$i]['documento']['documento'][] = $this->existNodo($validNoticeInfo[$i]->AdditionalPublicationStatus->AdditionalPublicationDocumentReference[$j]->Attachment->ExternalReference, 'URI', 'string');
452
-                            $resultEntries[$i]['documento']['filename'][] = $this->existNodo($validNoticeInfo[$i]->AdditionalPublicationStatus->AdditionalPublicationDocumentReference[$j]->Attachment->ExternalReference, 'FileName', 'string');
452
+                            $resultEntries[$i]['documento'][$j]['documento'] = $this->existNodo($validNoticeInfo[$i]->AdditionalPublicationStatus->AdditionalPublicationDocumentReference[$j]->Attachment->ExternalReference, 'URI', 'string');
453
+                            $resultEntries[$i]['documento'][$j]['filename'] = $this->existNodo($validNoticeInfo[$i]->AdditionalPublicationStatus->AdditionalPublicationDocumentReference[$j]->Attachment->ExternalReference, 'FileName', 'string');
453 454
 
454 455
                         }
455 456
                     }
@@ -457,8 +458,8 @@ class ParserFile
457 458
             }
458 459
         }
459 460
 
460
-        $resultFinal = $this->array_remove_empty($resultEntries);
461
-        return $resultFinal;
461
+        //$resultFinal = $this->array_remove_empty($resultEntries);
462
+        return $resultEntries;
462 463
     }
463 464
 
464 465
     private function nodoGeneralDocuments($xml)