|
@@ -14,6 +14,7 @@ class ParserFile extends CI_Controller
|
14
|
14
|
{
|
15
|
15
|
parent::__construct();
|
16
|
16
|
$this->load->helper('file');
|
|
17
|
+ $this->load->library('parserDatabase');
|
17
|
18
|
}
|
18
|
19
|
|
19
|
20
|
public function index()
|
|
@@ -31,14 +32,14 @@ class ParserFile extends CI_Controller
|
31
|
32
|
foreach ($xml->entry as $clave => $row) {
|
32
|
33
|
$arrayDeletedEntries = $xml->children('at', true);
|
33
|
34
|
|
|
35
|
+ $resultEntries[$aux]['general'] = $this->nodoEntry($row);
|
|
36
|
+
|
34
|
37
|
$resultEntries[$aux]['contractInfo'] = $this->nodoContractFolderStatus($row);
|
35
|
38
|
|
36
|
39
|
$resultEntries[$aux]['locatedContractingParty'] = $this->nodoLocatedContractingParty($row);
|
37
|
40
|
|
38
|
41
|
$resultEntries[$aux]['party'] = $this->nodoParty($row);
|
39
|
42
|
|
40
|
|
- //$resultEntries[] = $this->nodoParentLocatedParty($row);
|
41
|
|
-
|
42
|
43
|
$resultEntries[$aux]['procurementProject'] = $this->nodoPresupuesto($row);
|
43
|
44
|
|
44
|
45
|
$resultEntries[$aux]['procurementProjectLot'] = $this->nodoProcurementProjectLot($row);
|
|
@@ -71,6 +72,21 @@ class ParserFile extends CI_Controller
|
71
|
72
|
}
|
72
|
73
|
}
|
73
|
74
|
|
|
75
|
+ private function nodoEntry($xml)
|
|
76
|
+ {
|
|
77
|
+ $resultEntries = array();
|
|
78
|
+
|
|
79
|
+ $resultEntries['id_url'] = (string) $xml->id;
|
|
80
|
+ $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'];
|
|
83
|
+ $resultEntries['summary'] = (string) $xml->summary;
|
|
84
|
+ $resultEntries['title'] = (string) $xml->title;
|
|
85
|
+ $resultEntries['updated'] = (string) $xml->updated;
|
|
86
|
+
|
|
87
|
+ return $resultEntries;
|
|
88
|
+ }
|
|
89
|
+
|
74
|
90
|
private function nodoContractFolderStatus($xml)
|
75
|
91
|
{
|
76
|
92
|
$resultEntries = array();
|
|
@@ -94,9 +110,9 @@ class ParserFile extends CI_Controller
|
94
|
110
|
|
95
|
111
|
if (isset($LocatedContractingParty->ActivityCode)) {
|
96
|
112
|
if (count($LocatedContractingParty->ActivityCode) > 1) {
|
97
|
|
- for ($i = 0; $i < $LocatedContractingParty->ActivityCode; $i++) {
|
98
|
|
- $resultEntries['activityCode'][$i] = $this->existNodo($LocatedContractingParty, "ActivityCode", 'string');
|
99
|
|
- $resultEntries['activityCodeUri'][$i] = (string) $LocatedContractingParty->ActivityCode->attributes()['listURI'];
|
|
113
|
+ for ($i = 0; $i < count($LocatedContractingParty->ActivityCode); $i++) {
|
|
114
|
+ $resultEntries['activityCode'][$i] = (string) $LocatedContractingParty->ActivityCode[$i];
|
|
115
|
+ //$resultEntries['activityCodeUri'][$i] = $LocatedContractingParty->ActivityCode[$i]->attributes()['listURI'];
|
100
|
116
|
}
|
101
|
117
|
} else {
|
102
|
118
|
$resultEntries['activityCode'][0] = $this->existNodo($LocatedContractingParty, "ActivityCode", 'string');
|
|
@@ -173,8 +189,11 @@ class ParserFile extends CI_Controller
|
173
|
189
|
|
174
|
190
|
if (isset($procurementProject->RealizedLocation)) {
|
175
|
191
|
$resultEntries['countrySubentity'] = $this->existNodo($procurementProject->RealizedLocation, 'CountrySubentity', 'string');
|
176
|
|
- $resultEntries['countrySubentityCode'] = $this->existNodo($procurementProject->RealizedLocation, 'CountrySubentityCode', 'string');
|
177
|
|
- $resultEntries['countrySubentityCode'] = $procurementProject->RealizedLocation->CountrySubentityCode->attributes()['listURI'];
|
|
192
|
+ if (isset($procurementProject->RealizedLocation->CountrySubentityCode)) {
|
|
193
|
+ $resultEntries['countrySubentityCode'] = $this->existNodo($procurementProject->RealizedLocation, 'CountrySubentityCode', 'string');
|
|
194
|
+ $resultEntries['countrySubentityCode'] = $procurementProject->RealizedLocation->CountrySubentityCode->attributes()['listURI'];
|
|
195
|
+ }
|
|
196
|
+
|
178
|
197
|
if (isset($procurementProject->RealizedLocation->Address)) {
|
179
|
198
|
$resultEntries['cityName'] = $this->existNodo($procurementProject->RealizedLocation->Address->Country, 'CityName', 'string');
|
180
|
199
|
$resultEntries['IdentificationCode'] = $this->existNodo($procurementProject->RealizedLocation->Address->Country, 'IdentificationCode', 'string');
|
|
@@ -207,7 +226,15 @@ class ParserFile extends CI_Controller
|
207
|
226
|
$resultEntries[$i]['name'] = $this->existNodo($procurementProjectLot[$i]->ProcurementProject, 'Name', 'string');
|
208
|
227
|
$resultEntries[$i]['totalAmount'] = $this->existNodo($procurementProjectLot[$i]->ProcurementProject->BudgetAmount, 'TotalAmount', 'string');
|
209
|
228
|
$resultEntries[$i]['taxExclusiveAmount'] = $this->existNodo($procurementProjectLot[$i]->ProcurementProject->BudgetAmount, 'TaxExclusiveAmount', 'string');
|
210
|
|
- $resultEntries[$i]['itemClassificationCode'] = $this->existNodo($procurementProjectLot[$i]->ProcurementProject->RequiredCommodityClassification, 'ItemClassificationCode', 'string');
|
|
229
|
+
|
|
230
|
+ $clasificacionItems = $procurementProjectLot[$i]->ProcurementProject->RequiredCommodityClassification;
|
|
231
|
+ if (isset($clasificacionItems)) {
|
|
232
|
+ for ($j = 0; $j < count($clasificacionItems); $j++) {
|
|
233
|
+ $resultEntries[$i]['itemClassification']['id'][$j] = $clasificacionItems[$j]->ItemClassificationCode;
|
|
234
|
+ $resultEntries[$i]['itemClassification']['id_attr'][$j] = (string) $clasificacionItems[$j]->ItemClassificationCode->attributes()['listURI'];
|
|
235
|
+ }
|
|
236
|
+ }
|
|
237
|
+
|
211
|
238
|
if (isset($procurementProjectLot[$i]->RealizedLocation)) {
|
212
|
239
|
$resultEntries[$i]['countrySubentity'] = $this->existNodo($procurementProjectLot[$i]->ProcurementProject->RealizedLocation, 'CountrySubentity', 'string');
|
213
|
240
|
$resultEntries[$i]['countrySubentityCode'] = $this->existNodo($procurementProjectLot[$i]->ProcurementProject->RealizedLocation, 'CountrySubentityCode', 'string');
|
|
@@ -263,35 +290,51 @@ class ParserFile extends CI_Controller
|
263
|
290
|
$resultEntries['requiredCurriculaIndicator'] = $this->existNodo($TenderingTerms, 'RequiredCurriculaIndicator', 'string');
|
264
|
291
|
$resultEntries['variantConstraintIndicator'] = $this->existNodo($TenderingTerms, 'VariantConstraintIndicator', 'string');
|
265
|
292
|
$resultEntries['fundingProgramCode'] = $this->existNodo($TenderingTerms, 'FundingProgramCode', 'string');
|
266
|
|
- $resultEntries['requiredFinancialGuarantee']['guaranteeTypeCode'] = $this->existNodo($TenderingTerms->RequiredFinancialGuarantee, 'GuaranteeTypeCode', 'string');
|
267
|
|
- $resultEntries['requiredFinancialGuarantee']['amountRate'] = $this->existNodo($TenderingTerms->RequiredFinancialGuarantee, 'AmountRate', 'string');
|
|
293
|
+ if (isset($TenderingTerms->RequiredFinancialGuarantee->GuaranteeTypeCode)) {
|
|
294
|
+ $resultEntries['guaranteeTypeCode'] = $this->existNodo($TenderingTerms->RequiredFinancialGuarantee, 'GuaranteeTypeCode', 'string');
|
|
295
|
+ $resultEntries['guaranteeTypeCode_attr'] = $TenderingTerms->RequiredFinancialGuarantee->GuaranteeTypeCode->attributes()['listURI'];
|
|
296
|
+ $resultEntries['requiredFinancialGuarantee_Amount'] = $this->existNodo($TenderingTerms->RequiredFinancialGuarantee, 'AmountRate', 'string');
|
|
297
|
+ }
|
|
298
|
+
|
268
|
299
|
$resultEntries['procurementLegislationDocumentReference'] = $this->existNodo($TenderingTerms->ProcurementLegislationDocumentReference, 'ID', 'string');
|
|
300
|
+ $resultEntries['allowedSubcontractTerms'] = $this->existNodo($TenderingTerms->AllowedSubcontractTerms, 'Description', 'string');
|
|
301
|
+
|
|
302
|
+ $tendererAwardingTerms = $TenderingTerms->AwardingTerms;
|
|
303
|
+ if (count($tendererAwardingTerms)) {
|
|
304
|
+ for ($i = 0; $i < count($tendererAwardingTerms->AwardingCriteria); $i++) {
|
|
305
|
+ $resultEntries['awardingTerms'][$i]['evaluationCriteriaTypeCode'] = $this->existNodo($tendererAwardingTerms[$i], 'Description', 'string');
|
|
306
|
+ $resultEntries['awardingTerms'][$i]['description'] = $this->existNodo($tendererAwardingTerms[$i], 'WeightNumeric', 'string');
|
|
307
|
+ }
|
|
308
|
+ }
|
269
|
309
|
|
270
|
310
|
$tendererQualificationRequest = $TenderingTerms->TendererQualificationRequest;
|
271
|
311
|
if (isset($tendererQualificationRequest)) {
|
272
|
312
|
$resultEntries['tendererQualificationRequest']['description'] = $this->existNodo($tendererQualificationRequest, 'Description', 'string');
|
273
|
313
|
for ($i = 0; $i < count($tendererQualificationRequest); $i++) {
|
274
|
314
|
$resultEntries['tendererQualificationRequest'][$i]['evaluationCriteriaTypeCode'] = $this->existNodo($tendererQualificationRequest[$i]->TechnicalEvaluationCriteria, 'EvaluationCriteriaTypeCode', 'string');
|
|
315
|
+ $resultEntries['tendererQualificationRequest'][$i]['evaluationCriteriaTypeCode_attr'] = $tendererQualificationRequest[$i]->TechnicalEvaluationCriteria->EvaluationCriteriaTypeCode->attributes()['listURI'];
|
275
|
316
|
$resultEntries['tendererQualificationRequest'][$i]['description'] = $this->existNodo($tendererQualificationRequest[$i]->TechnicalEvaluationCriteria, 'Description', 'string');
|
276
|
317
|
}
|
277
|
318
|
}
|
278
|
319
|
|
279
|
320
|
$financialEvaluationCriteria = $TenderingTerms->TendererQualificationRequest->FinancialEvaluationCriteria;
|
280
|
|
- if (isset($financialEvaluationCriteria)) {
|
|
321
|
+ if (count($financialEvaluationCriteria)) {
|
281
|
322
|
for ($i = 0; $i < count($financialEvaluationCriteria); $i++) {
|
282
|
323
|
$resultEntries['financialEvaluationCriteria'][$i]['evaluationCriteriaTypeCode'] = $this->existNodo($financialEvaluationCriteria[$i]->EvaluationCriteriaTypeCode, 'EvaluationCriteriaTypeCode', 'string');
|
|
324
|
+ $resultEntries['financialEvaluationCriteria'][$i]['evaluationCriteriaTypeCode_attr'] = $financialEvaluationCriteria[$i]->EvaluationCriteriaTypeCode->EvaluationCriteriaTypeCode->attributes()['listURI'];
|
283
|
325
|
$resultEntries['financialEvaluationCriteria'][$i]['description'] = $this->existNodo($financialEvaluationCriteria[$i]->EvaluationCriteriaTypeCode, 'Description', 'string');
|
284
|
326
|
}
|
285
|
327
|
}
|
286
|
328
|
|
287
|
329
|
$specificTendererRequirement = $TenderingTerms->TendererQualificationRequest->SpecificTendererRequirement;
|
288
|
|
- if (isset($specificTendererRequirement)) {
|
|
330
|
+ if (count($specificTendererRequirement)) {
|
289
|
331
|
for ($i = 0; $i < count($specificTendererRequirement); $i++) {
|
290
|
332
|
$resultEntries['financialEvaluationCriteria'][$i]['evaluationCriteriaTypeCode'] = $this->existNodo($specificTendererRequirement[$i]->SpecificTendererRequirement, 'RequirementTypeCode', 'string');
|
|
333
|
+ $resultEntries['financialEvaluationCriteria'][$i]['evaluationCriteriaTypeCode_attr'] = $specificTendererRequirement[$i]->SpecificTendererRequirement->RequirementTypeCode->attributes()['listURI'];
|
291
|
334
|
}
|
292
|
335
|
}
|
293
|
336
|
|
294
|
|
- //$Language = $this->existNodo($contractFolderCac->TenderingTerms->children('cac', true)->Language, 'cbc', 'array');
|
|
337
|
+ $resultEntries['language'] = $this->existNodo($TenderingTerms->Language, 'ID', 'string');
|
295
|
338
|
}
|
296
|
339
|
$resultFinal = $this->array_remove_empty($resultEntries);
|
297
|
340
|
return $resultFinal;
|
|
@@ -304,13 +347,38 @@ class ParserFile extends CI_Controller
|
304
|
347
|
|
305
|
348
|
if (isset($tenderingProcess)) {
|
306
|
349
|
//TenderingProcess
|
307
|
|
- $resultEntries['procedureCode'] = $this->existNodo($tenderingProcess, 'ProcedureCode', 'string');
|
308
|
|
- $resultEntries['urgencyCode'] = $this->existNodo($tenderingProcess, 'UrgencyCode', 'string');
|
309
|
|
- $resultEntries['partPresentationCode'] = $this->existNodo($tenderingProcess, 'PartPresentationCode', 'string');
|
310
|
|
- $resultEntries['contractingSystemCode'] = $this->existNodo($tenderingProcess, 'ContractingSystemCode', 'string');
|
311
|
|
- $resultEntries['submissionMethodCode'] = $this->existNodo($tenderingProcess, 'SubmissionMethodCode', 'string');
|
|
350
|
+ if (isset($tenderingProcess->ProcedureCode)) {
|
|
351
|
+ $resultEntries['procedureCode'] = $this->existNodo($tenderingProcess, 'ProcedureCode', 'string');
|
|
352
|
+ $resultEntries['procedureCode_attr'] = $tenderingProcess->ProcedureCode->attributes()['listURI'];
|
|
353
|
+ }
|
|
354
|
+
|
|
355
|
+ if (isset($tenderingProcess->UrgencyCode)) {
|
|
356
|
+ $resultEntries['urgencyCode'] = $this->existNodo($tenderingProcess, 'UrgencyCode', 'string');
|
|
357
|
+ $resultEntries['urgencyCode_attr'] = $tenderingProcess->UrgencyCode->attributes()['listURI'];
|
|
358
|
+ }
|
|
359
|
+
|
|
360
|
+ if (isset($tenderingProcess->ContractingSystemCode)) {
|
|
361
|
+ $resultEntries['contractingSystemCode'] = $this->existNodo($tenderingProcess, 'ContractingSystemCode', 'string');
|
|
362
|
+ $resultEntries['contractingSystemCode_attr'] = $tenderingProcess->ContractingSystemCode->attributes()['listURI'];
|
|
363
|
+ }
|
|
364
|
+
|
|
365
|
+ if (isset($tenderingProcess->partPresentationCode)) {
|
|
366
|
+ $resultEntries['partPresentationCode'] = $this->existNodo($tenderingProcess, 'partPresentationCode', 'string');
|
|
367
|
+ $resultEntries['partPresentationCode_attr'] = $tenderingProcess->partPresentationCode->attributes()['listURI'];
|
|
368
|
+ }
|
|
369
|
+
|
|
370
|
+ if (isset($tenderingProcess->submissionMethodCode)) {
|
|
371
|
+ $resultEntries['submissionMethodCode'] = $this->existNodo($tenderingProcess, 'submissionMethodCode', 'string');
|
|
372
|
+ $resultEntries['submissionMethodCode_attr'] = $tenderingProcess->submissionMethodCode->attributes()['listURI'];
|
|
373
|
+ }
|
|
374
|
+
|
|
375
|
+ $resultEntries['maximumLotPresentationQuantity'] = $this->existNodo($tenderingProcess, 'MaximumLotPresentationQuantity', 'string');
|
|
376
|
+ $resultEntries['maximumTendererAwardedLotsQuantity'] = $this->existNodo($tenderingProcess, 'MaximumTendererAwardedLotsQuantity', 'string');
|
312
|
377
|
$resultEntries['deadLineEndDate'] = $this->existNodo($tenderingProcess->TenderSubmissionDeadlinePeriod, 'EndDate', 'string');
|
313
|
378
|
$resultEntries['deadLineEndTime'] = $this->existNodo($tenderingProcess->TenderSubmissionDeadlinePeriod, 'EndTime', 'string');
|
|
379
|
+ $resultEntries['deadLineDescription'] = $this->existNodo($tenderingProcess->TenderSubmissionDeadlinePeriod, 'Description', 'string');
|
|
380
|
+ $resultEntries['auctionTerms'] = $this->existNodo($tenderingProcess->AuctionTerms, 'AuctionConstraintIndicator', 'string');
|
|
381
|
+ $resultEntries['LotsCombinationContractingAuthorityRights'] = $this->existNodo($tenderingProcess, 'LotsCombinationContractingAuthorityRights', 'string');
|
314
|
382
|
$resultEntries['documentAvailablePeriod_EndDate'] = $this->existNodo($tenderingProcess->DocumentAvailabilityPeriod, 'EndDate', 'string');
|
315
|
383
|
$resultEntries['documentAvailablePeriod_EndTime'] = $this->existNodo($tenderingProcess->DocumentAvailabilityPeriod, 'EndTime', 'string');
|
316
|
384
|
}
|
|
@@ -379,11 +447,23 @@ class ParserFile extends CI_Controller
|
379
|
447
|
|
380
|
448
|
if (isset($validNoticeInfo)) {
|
381
|
449
|
for ($i = 0; $i < count($validNoticeInfo); $i++) {
|
382
|
|
- $resultEntries[$i]['NoticeTypeCode'] = $this->existNodo($validNoticeInfo[$i], 'NoticeTypeCode', 'string');
|
383
|
|
- $resultEntries[$i]['PublicationMediaName'] = $this->existNodo($validNoticeInfo[$i]->AdditionalPublicationStatus, 'PublicationMediaName', 'string');
|
384
|
|
- $resultEntries[$i]['IssueDate'] = $this->existNodo($validNoticeInfo[$i]->AdditionalPublicationStatus->AdditionalPublicationDocumentReference, 'IssueDate', 'string');
|
|
450
|
+ $resultEntries[$i]['noticeTypeCode'] = $this->existNodo($validNoticeInfo[$i], 'NoticeTypeCode', 'string');
|
|
451
|
+ $resultEntries[$i]['publicationMediaName'] = $this->existNodo($validNoticeInfo[$i]->AdditionalPublicationStatus, 'PublicationMediaName', 'string');
|
|
452
|
+
|
|
453
|
+ if (isset($validNoticeInfo[$i]->AdditionalPublicationStatus)) {
|
|
454
|
+ for ($j = 0; $j < count($validNoticeInfo[$i]->AdditionalPublicationStatus->AdditionalPublicationDocumentReference); $j++) {
|
|
455
|
+
|
|
456
|
+ $resultEntries[$i]['fechas'] = $this->existNodo($validNoticeInfo[$i]->AdditionalPublicationStatus->AdditionalPublicationDocumentReference[$j], 'IssueDate', 'string');
|
|
457
|
+ if ($validNoticeInfo[$i]->AdditionalPublicationStatus->AdditionalPublicationDocumentReference[$j]->DocumentTypeCode) {
|
|
458
|
+ $resultEntries[$i]['documento']['documento'][] = $this->existNodo($validNoticeInfo[$i]->AdditionalPublicationStatus->AdditionalPublicationDocumentReference[$j]->Attachment->ExternalReference, 'URI', 'string');
|
|
459
|
+ $resultEntries[$i]['documento']['filename'][] = $this->existNodo($validNoticeInfo[$i]->AdditionalPublicationStatus->AdditionalPublicationDocumentReference[$j]->Attachment->ExternalReference, 'FileName', 'string');
|
|
460
|
+
|
|
461
|
+ }
|
|
462
|
+ }
|
|
463
|
+ }
|
385
|
464
|
}
|
386
|
465
|
}
|
|
466
|
+
|
387
|
467
|
$resultFinal = $this->array_remove_empty($resultEntries);
|
388
|
468
|
return $resultFinal;
|
389
|
469
|
}
|
|
@@ -431,7 +511,7 @@ class ParserFile extends CI_Controller
|
431
|
511
|
}
|
432
|
512
|
}
|
433
|
513
|
|
434
|
|
- public function RecurseXML($xml, $parent = "")
|
|
514
|
+ private function recurseXML($xml, $parent = "")
|
435
|
515
|
{
|
436
|
516
|
$child_count = 0;
|
437
|
517
|
$result = array();
|