Преглед на файлове

Iniciar Log. Corregir nombre columnas bbdd. Nombre archivos con filename original

Nermosis преди 3 години
родител
ревизия
f633813033
променени са 2 файла, в които са добавени 88 реда и са изтрити 74 реда
  1. 1 1
      application/config/autoload.php
  2. 87 73
      application/controllers/ParserFile.php

+ 1 - 1
application/config/autoload.php Целия файл

@@ -58,7 +58,7 @@ $autoload['packages'] = array();
58 58
 |
59 59
 |    $autoload['libraries'] = array('user_agent' => 'ua');
60 60
  */
61
-$autoload['libraries'] = array();
61
+$autoload['libraries'] = array("database");
62 62
 
63 63
 /*
64 64
 | -------------------------------------------------------------------

+ 87 - 73
application/controllers/ParserFile.php Целия файл

@@ -8,78 +8,79 @@ class ParserFile extends CI_Controller
8 8
     protected $esquema = array('cbc-place-ext', 'cac-place-ext', 'cbc', 'cac', 'ns1');
9 9
 
10 10
     //TODO: Añadir los nodos que falten mirando la libreria de java
11
-    //TODO: Crear las tablas segun el nodo
12
-    //TODO: Insertar los datos que si existen en el insert_batch.
11
+    //TODO: Crear log por dia y hora
12
+    //TODO: Log de la carpeta seleccionada
13 13
     public function __construct()
14 14
     {
15 15
         parent::__construct();
16 16
         $this->load->helper('file');
17
-        $this->load->library('parserDatabase');
17
+        $this->load->library('parserdatabase');
18 18
     }
19 19
 
20 20
     public function index()
21 21
     {
22 22
         $files = get_filenames($this->rutaDiaria, true);
23 23
 
24
-        $contadorArchivos = 0;
24
+        guardar_log("setLicitacion", "----------------------------------", false);
25
+        guardar_log("setLicitacion", "Licitaciones de fecha " . date("Y-m-d H:i:s"), false);
26
+
27
+        $resultEntries = array();
25 28
         foreach ($files as $file) {
26 29
 
27 30
             $entrada = file_get_contents($file);
28 31
             $xml = simplexml_load_string($entrada);
29
-
32
+            $filename = basename($file);
30 33
             $aux = 0;
31
-            $resultEntries = array();
32 34
             foreach ($xml->entry as $clave => $row) {
33 35
                 $arrayDeletedEntries = $xml->children('at', true);
34 36
 
35
-                $resultEntries[$aux]['general'] = $this->nodoEntry($row);
37
+                $resultEntries[$filename][$aux]['general'] = $this->nodoEntry($row);
36 38
 
37
-                $resultEntries[$aux]['contractInfo'] = $this->nodoContractFolderStatus($row);
39
+                $resultEntries[$filename][$aux]['contractInfo'] = $this->nodoContractFolderStatus($row);
38 40
 
39
-                $resultEntries[$aux]['locatedContractingParty'] = $this->nodoLocatedContractingParty($row);
41
+                $resultEntries[$filename][$aux]['locatedContractingParty'] = $this->nodoLocatedContractingParty($row);
40 42
 
41
-                $resultEntries[$aux]['party'] = $this->nodoParty($row);
43
+                $resultEntries[$filename][$aux]['party'] = $this->nodoParty($row);
42 44
 
43
-                $resultEntries[$aux]['procurementProject'] = $this->nodoPresupuesto($row);
45
+                $resultEntries[$filename][$aux]['procurementProject'] = $this->nodoPresupuesto($row);
44 46
 
45
-                $resultEntries[$aux]['procurementProjectLot'] = $this->nodoProcurementProjectLot($row);
47
+                $resultEntries[$filename][$aux]['procurementProjectLot'] = $this->nodoProcurementProjectLot($row);
46 48
 
47
-                $resultEntries[$aux]['tenderingTerms'] = $this->nodoTenderingTerms($row);
49
+                $resultEntries[$filename][$aux]['tenderingTerms'] = $this->nodoTenderingTerms($row);
48 50
 
49
-                $resultEntries[$aux]['tenderingProcess'] = $this->nodoTenderingProcess($row);
51
+                $resultEntries[$filename][$aux]['tenderingProcess'] = $this->nodoTenderingProcess($row);
50 52
 
51
-                $resultEntries[$aux]['tenderingResult'] = $this->nodoTenderResult($row);
53
+                $resultEntries[$filename][$aux]['tenderingResult'] = $this->nodoTenderResult($row);
52 54
 
53
-                $resultEntries[$aux]['legalDocs'] = $this->nodoLegalDoc($row);
55
+                $resultEntries[$filename][$aux]['validNoticeInfo'] = $this->nodoValidNoticeInfo($row);
54 56
 
55
-                $resultEntries[$aux]['techicalDocs'] = $this->nodoTechnicalDocumentReference($row);
57
+                $resultEntries[$filename][$aux]['legalDocs'] = $this->nodoLegalDoc($row);
56 58
 
57
-                $resultEntries[$aux]['validNoticeInfo'] = $this->nodoValidNoticeInfo($row);
59
+                $resultEntries[$filename][$aux]['technicalDocs'] = $this->nodoTechnicalDocumentReference($row);
58 60
 
59
-                $resultEntries[$aux]['generalDocs'] = $this->nodoGeneralDocuments($row);
61
+                $resultEntries[$filename][$aux]['generalDocs'] = $this->nodoGeneralDocuments($row);
60 62
 
61
-                $resultEntries[$aux]['additionalDocs'] = $this->nodoAdditionalDocumentReference($row);
63
+                $resultEntries[$filename][$aux]['additionalDocs'] = $this->nodoAdditionalDocumentReference($row);
62 64
 
63 65
                 $aux++;
64 66
             }
65 67
 
66 68
             $str = print_r($resultEntries, true);
67 69
 
68
-            file_put_contents($this->rutaDiaria . "/text" . $contadorArchivos . ".txt", $str);
69
-
70
-            $contadorArchivos++;
71
-
70
+            file_put_contents($this->rutaDiaria . "/text_" . $filename . ".txt", $str);
72 71
         }
72
+
73
+        $this->parserdatabase->setDatosParser($resultEntries);
73 74
     }
74 75
 
75 76
     private function nodoEntry($xml)
76 77
     {
77 78
         $resultEntries = array();
78 79
 
79
-        $resultEntries['id_url'] = (string) $xml->id;
80
+        $resultEntries['url_id_licitacion'] = (string) $xml->id;
80 81
         $resultEntries['id_licitacion'] = (string) substr($xml->id, strrpos($xml->id, '/') + 1);
81
-        $resultEntries['link'] = (string) $xml->link;
82
-        $resultEntries['link_uri'] = (string) $xml->link->attributes()['href'];
82
+        $resultEntries['link_licitacion'] = (string) $xml->link;
83
+        $resultEntries['link_uri'] = (string) $this->existAttribute($xml, "link", "string", 'href');
83 84
         $resultEntries['summary'] = (string) $xml->summary;
84 85
         $resultEntries['title'] = (string) $xml->title;
85 86
         $resultEntries['updated'] = (string) $xml->updated;
@@ -93,7 +94,7 @@ class ParserFile extends CI_Controller
93 94
         if (isset($xml->ContractFolderStatus)) {
94 95
             $resultEntries['ContractFolderID'] = (string) $xml->ContractFolderStatus->ContractFolderID;
95 96
             $resultEntries['ContractFolderStatusCode'] = (string) $xml->ContractFolderStatus->ContractFolderStatusCode;
96
-            $resultEntries['ContractFolderStatusCodeAttr'] = (string) $xml->ContractFolderStatus->ContractFolderStatusCode->attributes()['listURI'];
97
+            $resultEntries['ContractFolderStatusCodeAttr'] = $this->existAttribute($xml->ContractFolderStatus, "ContractFolderStatusCode", "string", 'listURI');
97 98
         }
98 99
         $resultFinal = $this->array_remove_empty($resultEntries);
99 100
         return $resultFinal;
@@ -106,17 +107,17 @@ class ParserFile extends CI_Controller
106 107
             $LocatedContractingParty = $xml->ContractFolderStatus->LocatedContractingParty;
107 108
 
108 109
             $resultEntries['contractingPartyTypeCode'] = $this->existNodo($LocatedContractingParty, "ContractingPartyTypeCode", 'string');
109
-            $resultEntries['contractingPartyTypeCodeUri'] = (string) $LocatedContractingParty->ContractingPartyTypeCode->attributes()['listURI'];
110
+            $resultEntries['contractingPartyTypeCodeUri'] = $this->existAttribute($LocatedContractingParty, "ContractingPartyTypeCode", 'string', 'listURI');
110 111
 
111 112
             if (isset($LocatedContractingParty->ActivityCode)) {
112 113
                 if (count($LocatedContractingParty->ActivityCode) > 1) {
113 114
                     for ($i = 0; $i < count($LocatedContractingParty->ActivityCode); $i++) {
114 115
                         $resultEntries['activityCode'][$i] = (string) $LocatedContractingParty->ActivityCode[$i];
115
-                        //$resultEntries['activityCodeUri'][$i] = $LocatedContractingParty->ActivityCode[$i]->attributes()['listURI'];
116 116
                     }
117 117
                 } else {
118 118
                     $resultEntries['activityCode'][0] = $this->existNodo($LocatedContractingParty, "ActivityCode", 'string');
119
-                    $resultEntries['activityCodeUri'][0] = (string) $LocatedContractingParty->ActivityCode->attributes()['listURI'];
119
+                    $resultEntries['activityCodeUri'][0] = $this->existAttribute($LocatedContractingParty, "ActivityCode", 'string', 'listURI');
120
+
120 121
                 }
121 122
 
122 123
             }
@@ -145,7 +146,7 @@ class ParserFile extends CI_Controller
145 146
             if (isset($party->PartyIdentification)) {
146 147
                 for ($i = 0; $i < $party->PartyIdentification; $i++) {
147 148
                     $resultEntries['partyIdentification'][$i]['id'] = $this->existNodo($party->PartyIdentification, "ID", 'string');
148
-                    $resultEntries['partyIdentification'][$i]['attr'] = $party->PartyIdentification->attributes()['schemeName'];
149
+                    $resultEntries['partyIdentification'][$i]['attr'] = $this->existAttribute($party, "PartyIdentification", "string", 'schemeName');
149 150
                 }
150 151
             }
151 152
 
@@ -191,7 +192,7 @@ class ParserFile extends CI_Controller
191 192
                 $resultEntries['countrySubentity'] = $this->existNodo($procurementProject->RealizedLocation, 'CountrySubentity', 'string');
192 193
                 if (isset($procurementProject->RealizedLocation->CountrySubentityCode)) {
193 194
                     $resultEntries['countrySubentityCode'] = $this->existNodo($procurementProject->RealizedLocation, 'CountrySubentityCode', 'string');
194
-                    $resultEntries['countrySubentityCode'] = $procurementProject->RealizedLocation->CountrySubentityCode->attributes()['listURI'];
195
+                    $resultEntries['countrySubentityCode'] = $this->existAttribute($procurementProject->RealizedLocation, "CountrySubentityCode", "string", 'listURI');
195 196
                 }
196 197
 
197 198
                 if (isset($procurementProject->RealizedLocation->Address)) {
@@ -204,9 +205,7 @@ class ParserFile extends CI_Controller
204 205
             $resultEntries['durationMesure'] = $this->existNodo($procurementProject->PlannedPeriod, 'DurationMeasure', 'string');
205 206
             $resultEntries['duracion_inicio'] = $this->existNodo($procurementProject->PlannedPeriod, 'StartDate', 'string');
206 207
             $resultEntries['duracion_fin'] = $this->existNodo($procurementProject->PlannedPeriod, 'EndDate', 'string');
207
-            if (isset($procurementProject->PlannedPeriod->DurationMeasure)) {
208
-                $resultEntries['medida'] = (string) $procurementProject->PlannedPeriod->DurationMeasure->attributes()['unitCode'];
209
-            }
208
+            $resultEntries['medida'] = $this->existAttribute($procurementProject->PlannedPeriod, "DurationMeasure", "string", 'unitCode');
210 209
 
211 210
             $resultEntries['contractExtension'] = $this->existNodo($procurementProject->ContractExtension, 'OptionsDescription', 'string');
212 211
         }
@@ -231,7 +230,7 @@ class ParserFile extends CI_Controller
231 230
                 if (isset($clasificacionItems)) {
232 231
                     for ($j = 0; $j < count($clasificacionItems); $j++) {
233 232
                         $resultEntries[$i]['itemClassification']['id'][$j] = $clasificacionItems[$j]->ItemClassificationCode;
234
-                        $resultEntries[$i]['itemClassification']['id_attr'][$j] = (string) $clasificacionItems[$j]->ItemClassificationCode->attributes()['listURI'];
233
+                        $resultEntries[$i]['itemClassification']['id_attr'][$j] = $this->existAttribute($clasificacionItems[$j], "ItemClassificationCode", "string", 'listURI');
235 234
                     }
236 235
                 }
237 236
 
@@ -292,7 +291,7 @@ class ParserFile extends CI_Controller
292 291
             $resultEntries['fundingProgramCode'] = $this->existNodo($TenderingTerms, 'FundingProgramCode', 'string');
293 292
             if (isset($TenderingTerms->RequiredFinancialGuarantee->GuaranteeTypeCode)) {
294 293
                 $resultEntries['guaranteeTypeCode'] = $this->existNodo($TenderingTerms->RequiredFinancialGuarantee, 'GuaranteeTypeCode', 'string');
295
-                $resultEntries['guaranteeTypeCode_attr'] = $TenderingTerms->RequiredFinancialGuarantee->GuaranteeTypeCode->attributes()['listURI'];
294
+                $resultEntries['guaranteeTypeCode_attr'] = $this->existAttribute($TenderingTerms->RequiredFinancialGuarantee, "GuaranteeTypeCode", "string", 'listURI');
296 295
                 $resultEntries['requiredFinancialGuarantee_Amount'] = $this->existNodo($TenderingTerms->RequiredFinancialGuarantee, 'AmountRate', 'string');
297 296
             }
298 297
 
@@ -300,7 +299,7 @@ class ParserFile extends CI_Controller
300 299
             $resultEntries['allowedSubcontractTerms'] = $this->existNodo($TenderingTerms->AllowedSubcontractTerms, 'Description', 'string');
301 300
 
302 301
             $tendererAwardingTerms = $TenderingTerms->AwardingTerms;
303
-            if (count($tendererAwardingTerms)) {
302
+            if (isset($tendererAwardingTerms) && !empty($tendererAwardingTerms)) {
304 303
                 for ($i = 0; $i < count($tendererAwardingTerms->AwardingCriteria); $i++) {
305 304
                     $resultEntries['awardingTerms'][$i]['evaluationCriteriaTypeCode'] = $this->existNodo($tendererAwardingTerms[$i], 'Description', 'string');
306 305
                     $resultEntries['awardingTerms'][$i]['description'] = $this->existNodo($tendererAwardingTerms[$i], 'WeightNumeric', 'string');
@@ -308,29 +307,33 @@ class ParserFile extends CI_Controller
308 307
             }
309 308
 
310 309
             $tendererQualificationRequest = $TenderingTerms->TendererQualificationRequest;
311
-            if (isset($tendererQualificationRequest)) {
310
+            if (isset($tendererQualificationRequest) && !empty($tendererQualificationRequest)) {
312 311
                 $resultEntries['tendererQualificationRequest']['description'] = $this->existNodo($tendererQualificationRequest, 'Description', 'string');
313 312
                 for ($i = 0; $i < count($tendererQualificationRequest); $i++) {
314
-                    $resultEntries['tendererQualificationRequest'][$i]['evaluationCriteriaTypeCode'] = $this->existNodo($tendererQualificationRequest[$i]->TechnicalEvaluationCriteria, 'EvaluationCriteriaTypeCode', 'string');
315
-                    $resultEntries['tendererQualificationRequest'][$i]['evaluationCriteriaTypeCode_attr'] = $tendererQualificationRequest[$i]->TechnicalEvaluationCriteria->EvaluationCriteriaTypeCode->attributes()['listURI'];
313
+                    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');
316
+                    }
317
+
316 318
                     $resultEntries['tendererQualificationRequest'][$i]['description'] = $this->existNodo($tendererQualificationRequest[$i]->TechnicalEvaluationCriteria, 'Description', 'string');
317 319
                 }
318 320
             }
319 321
 
320 322
             $financialEvaluationCriteria = $TenderingTerms->TendererQualificationRequest->FinancialEvaluationCriteria;
321
-            if (count($financialEvaluationCriteria)) {
323
+            if (isset($financialEvaluationCriteria) && !empty($financialEvaluationCriteria)) {
322 324
                 for ($i = 0; $i < count($financialEvaluationCriteria); $i++) {
323
-                    $resultEntries['financialEvaluationCriteria'][$i]['evaluationCriteriaTypeCode'] = $this->existNodo($financialEvaluationCriteria[$i]->EvaluationCriteriaTypeCode, 'EvaluationCriteriaTypeCode', 'string');
324
-                    $resultEntries['financialEvaluationCriteria'][$i]['evaluationCriteriaTypeCode_attr'] = $financialEvaluationCriteria[$i]->EvaluationCriteriaTypeCode->EvaluationCriteriaTypeCode->attributes()['listURI'];
325
-                    $resultEntries['financialEvaluationCriteria'][$i]['description'] = $this->existNodo($financialEvaluationCriteria[$i]->EvaluationCriteriaTypeCode, 'Description', 'string');
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 328
                 }
327 329
             }
328 330
 
329 331
             $specificTendererRequirement = $TenderingTerms->TendererQualificationRequest->SpecificTendererRequirement;
330
-            if (count($specificTendererRequirement)) {
332
+            if (isset($specificTendererRequirement) && !empty($specificTendererRequirement)) {
331 333
                 for ($i = 0; $i < count($specificTendererRequirement); $i++) {
334
+
332 335
                     $resultEntries['financialEvaluationCriteria'][$i]['evaluationCriteriaTypeCode'] = $this->existNodo($specificTendererRequirement[$i]->SpecificTendererRequirement, 'RequirementTypeCode', 'string');
333
-                    $resultEntries['financialEvaluationCriteria'][$i]['evaluationCriteriaTypeCode_attr'] = $specificTendererRequirement[$i]->SpecificTendererRequirement->RequirementTypeCode->attributes()['listURI'];
336
+                    $resultEntries['financialEvaluationCriteria'][$i]['evaluationCriteriaTypeCode_attr'] = $this->existAttribute($specificTendererRequirement[$i]->SpecificTendererRequirement, "RequirementTypeCode", "string", 'listURI');
334 337
                 }
335 338
             }
336 339
 
@@ -347,30 +350,20 @@ class ParserFile extends CI_Controller
347 350
 
348 351
         if (isset($tenderingProcess)) {
349 352
             //TenderingProcess
350
-            if (isset($tenderingProcess->ProcedureCode)) {
351
-                $resultEntries['procedureCode'] = $this->existNodo($tenderingProcess, 'ProcedureCode', 'string');
352
-                $resultEntries['procedureCode_attr'] = $tenderingProcess->ProcedureCode->attributes()['listURI'];
353
-            }
353
+            $resultEntries['procedureCode'] = $this->existNodo($tenderingProcess, 'ProcedureCode', 'string');
354
+            $resultEntries['procedureCode_attr'] = $this->existAttribute($tenderingProcess, "ProcedureCode", "string", 'listURI');
354 355
 
355
-            if (isset($tenderingProcess->UrgencyCode)) {
356
-                $resultEntries['urgencyCode'] = $this->existNodo($tenderingProcess, 'UrgencyCode', 'string');
357
-                $resultEntries['urgencyCode_attr'] = $tenderingProcess->UrgencyCode->attributes()['listURI'];
358
-            }
356
+            $resultEntries['urgencyCode'] = $this->existNodo($tenderingProcess, 'UrgencyCode', 'string');
357
+            $resultEntries['urgencyCode_attr'] = $this->existAttribute($tenderingProcess, "UrgencyCode", "string", 'listURI');
359 358
 
360
-            if (isset($tenderingProcess->ContractingSystemCode)) {
361
-                $resultEntries['contractingSystemCode'] = $this->existNodo($tenderingProcess, 'ContractingSystemCode', 'string');
362
-                $resultEntries['contractingSystemCode_attr'] = $tenderingProcess->ContractingSystemCode->attributes()['listURI'];
363
-            }
359
+            $resultEntries['contractingSystemCode'] = $this->existNodo($tenderingProcess, 'ContractingSystemCode', 'string');
360
+            $resultEntries['contractingSystemCode_attr'] = $this->existAttribute($tenderingProcess, "ContractingSystemCode", "string", 'listURI');
364 361
 
365
-            if (isset($tenderingProcess->partPresentationCode)) {
366
-                $resultEntries['partPresentationCode'] = $this->existNodo($tenderingProcess, 'partPresentationCode', 'string');
367
-                $resultEntries['partPresentationCode_attr'] = $tenderingProcess->partPresentationCode->attributes()['listURI'];
368
-            }
362
+            $resultEntries['partPresentationCode'] = $this->existNodo($tenderingProcess, 'PartPresentationCode', 'string');
363
+            $resultEntries['partPresentationCode_attr'] = $this->existAttribute($tenderingProcess, "PartPresentationCode", "string", 'listURI');
369 364
 
370
-            if (isset($tenderingProcess->submissionMethodCode)) {
371
-                $resultEntries['submissionMethodCode'] = $this->existNodo($tenderingProcess, 'submissionMethodCode', 'string');
372
-                $resultEntries['submissionMethodCode_attr'] = $tenderingProcess->submissionMethodCode->attributes()['listURI'];
373
-            }
365
+            $resultEntries['submissionMethodCode'] = $this->existNodo($tenderingProcess, 'SubmissionMethodCode', 'string');
366
+            $resultEntries['submissionMethodCode_attr'] = $this->existAttribute($tenderingProcess, "SubmissionMethodCode", "string", 'listURI');
374 367
 
375 368
             $resultEntries['maximumLotPresentationQuantity'] = $this->existNodo($tenderingProcess, 'MaximumLotPresentationQuantity', 'string');
376 369
             $resultEntries['maximumTendererAwardedLotsQuantity'] = $this->existNodo($tenderingProcess, 'MaximumTendererAwardedLotsQuantity', 'string');
@@ -394,7 +387,7 @@ class ParserFile extends CI_Controller
394 387
         if (isset($legalDocumentReference)) {
395 388
 
396 389
             for ($i = 0; $i < count($legalDocumentReference); $i++) {
397
-                $resultEntries[$i]['id'] = $this->existNodo($legalDocumentReference[$i], 'ID', 'string');
390
+                $resultEntries[$i]['idDoc'] = $this->existNodo($legalDocumentReference[$i], 'ID', 'string');
398 391
                 $resultEntries[$i]['attachment'] = $this->existNodo($legalDocumentReference[$i]->Attachment->ExternalReference, 'URI', 'string');
399 392
                 $resultEntries[$i]['documentHash'] = $this->existNodo($legalDocumentReference[$i]->Attachment->ExternalReference, 'DocumentHash', 'string');
400 393
             }
@@ -412,7 +405,7 @@ class ParserFile extends CI_Controller
412 405
         if (isset($technicalDocumentReference)) {
413 406
 
414 407
             for ($i = 0; $i < count($technicalDocumentReference); $i++) {
415
-                $resultEntries[$i]['id'] = $this->existNodo($technicalDocumentReference[$i], 'ID', 'string');
408
+                $resultEntries[$i]['idDoc'] = $this->existNodo($technicalDocumentReference[$i], 'ID', 'string');
416 409
                 $resultEntries[$i]['attachment'] = $this->existNodo($technicalDocumentReference[$i]->Attachment->ExternalReference, 'URI', 'string');
417 410
                 $resultEntries[$i]['documentHash'] = $this->existNodo($technicalDocumentReference[$i]->Attachment->ExternalReference, 'DocumentHash', 'string');
418 411
             }
@@ -430,7 +423,7 @@ class ParserFile extends CI_Controller
430 423
         if (isset($additionalDocumentReference)) {
431 424
 
432 425
             for ($i = 0; $i < count($additionalDocumentReference); $i++) {
433
-                $resultEntries[$i]['id'] = $this->existNodo($additionalDocumentReference[$i], 'ID', 'string');
426
+                $resultEntries[$i]['idDoc'] = $this->existNodo($additionalDocumentReference[$i], 'ID', 'string');
434 427
                 $resultEntries[$i]['attachment'] = $this->existNodo($additionalDocumentReference[$i]->Attachment->ExternalReference, 'URI', 'string');
435 428
                 $resultEntries[$i]['documentHash'] = $this->existNodo($additionalDocumentReference[$i]->Attachment->ExternalReference, 'DocumentHash', 'string');
436 429
             }
@@ -453,7 +446,7 @@ class ParserFile extends CI_Controller
453 446
                 if (isset($validNoticeInfo[$i]->AdditionalPublicationStatus)) {
454 447
                     for ($j = 0; $j < count($validNoticeInfo[$i]->AdditionalPublicationStatus->AdditionalPublicationDocumentReference); $j++) {
455 448
 
456
-                        $resultEntries[$i]['fechas'] = $this->existNodo($validNoticeInfo[$i]->AdditionalPublicationStatus->AdditionalPublicationDocumentReference[$j], 'IssueDate', 'string');
449
+                        $resultEntries[$i]['fechas'][] = $this->existNodo($validNoticeInfo[$i]->AdditionalPublicationStatus->AdditionalPublicationDocumentReference[$j], 'IssueDate', 'string');
457 450
                         if ($validNoticeInfo[$i]->AdditionalPublicationStatus->AdditionalPublicationDocumentReference[$j]->DocumentTypeCode) {
458 451
                             $resultEntries[$i]['documento']['documento'][] = $this->existNodo($validNoticeInfo[$i]->AdditionalPublicationStatus->AdditionalPublicationDocumentReference[$j]->Attachment->ExternalReference, 'URI', 'string');
459 452
                             $resultEntries[$i]['documento']['filename'][] = $this->existNodo($validNoticeInfo[$i]->AdditionalPublicationStatus->AdditionalPublicationDocumentReference[$j]->Attachment->ExternalReference, 'FileName', 'string');
@@ -476,7 +469,7 @@ class ParserFile extends CI_Controller
476 469
         if (isset($generalDocument)) {
477 470
 
478 471
             for ($i = 0; $i < count($generalDocument); $i++) {
479
-                $resultEntries[$i]['id'] = $this->existNodo($generalDocument[$i], 'ID', 'string');
472
+                $resultEntries[$i]['idDoc'] = $this->existNodo($generalDocument[$i], 'ID', 'string');
480 473
                 $resultEntries[$i]['attachment'] = $this->existNodo($generalDocument[$i]->Attachment->ExternalReference, 'URI', 'string');
481 474
                 $resultEntries[$i]['documentHash'] = $this->existNodo($generalDocument[$i]->Attachment->ExternalReference, 'DocumentHash', 'string');
482 475
             }
@@ -496,6 +489,18 @@ class ParserFile extends CI_Controller
496 489
         }
497 490
     }
498 491
 
492
+    private function existAttribute($nodo, $nodoHijo, $tipo, $nombreAttributo)
493
+    {
494
+        $nodoFinal = $nodo->{$nodoHijo};
495
+        if (isset($nodoFinal) && !empty($nodoFinal)) {
496
+            //if (@count($nodo->{$nodoHijo}) > 0) {
497
+            return $this->switchTipoAttribute($tipo, $nodo->{$nodoHijo}, $nombreAttributo);
498
+            //}
499
+        } else {
500
+            return "";
501
+        }
502
+    }
503
+
499 504
     private function switchTipo($tipo, $nodo)
500 505
     {
501 506
         switch ($tipo) {
@@ -511,6 +516,15 @@ class ParserFile extends CI_Controller
511 516
         }
512 517
     }
513 518
 
519
+    private function switchTipoAttribute($tipo, $nodo, $attributo)
520
+    {
521
+        switch ($tipo) {
522
+            case 'string':
523
+                return (string) $nodo->attributes()[$attributo];
524
+                break;
525
+        }
526
+    }
527
+
514 528
     private function recurseXML($xml, $parent = "")
515 529
     {
516 530
         $child_count = 0;