소스 검색

parametrizado del nodo validNoticeInfo, insercion bruto e insercion limpio

Nermosis 3 년 전
부모
커밋
68e9e4a0e7
3개의 변경된 파일139개의 추가작업 그리고 93개의 파일을 삭제
  1. 2 1
      application/controllers/Parser.php
  2. 39 30
      application/libraries/ParserDatabaseBruto.php
  3. 98 62
      application/libraries/ParserFile.php

+ 2 - 1
application/controllers/Parser.php 파일 보기

@@ -44,7 +44,8 @@ class Parser extends CI_Controller
44 44
                     if ($this->newFolder($rutaPerfil . "/" . $fechaCarpeta)) {
45 45
                         $this->rutaDiariaFecha = $rutaPerfil . "/" . $fechaCarpeta . "/";
46 46
 
47
-                        $this->downloadProcess($row->url_descarga);
47
+                        //$this->downloadProcess($row->url_descarga);
48
+                        $this->downloadZip($row->url_descarga);
48 49
                     }
49 50
                 }
50 51
 

+ 39 - 30
application/libraries/ParserDatabaseBruto.php 파일 보기

@@ -40,11 +40,7 @@ class Parserdatabasebruto
40 40
 
41 41
                 $this->setParty($datosArchivo);
42 42
 
43
-                /*$this->setDatosMultiples($datosArchivo, "validNoticeInfo", "bruto_valid_notice_info", "ValideNoticeInfo");
44
-
45
-                $this->setDatosMultiples($datosArchivo['validNoticeInfo'], "documento", "bruto_valid_notice_info_documento", "validNoticeInfoDocumento");
46
-
47
-                $this->setDatosMultiples($datosArchivo['validNoticeInfo'], "fechas", "bruto_valid_notice_info_fecha", "validNoticeInfoFechas");*/
43
+                $this->setValidNoticeInfo($datosArchivo);
48 44
 
49 45
                 $this->setInsertArryByArray($datosArchivo, "tenderingResult", ["bruto_tender_result", "mapa_nivel_tender_result"], "TenderResult");
50 46
 
@@ -350,43 +346,56 @@ class Parserdatabasebruto
350 346
 
351 347
     }
352 348
 
353
-    private function setValidNoticeInfo($validNoticeInfo): void
349
+    private function setValidNoticeInfo($datosToSet): void
354 350
     {
355 351
 
356
-        $resultInsert = 0;
352
+        $result = array();
353
+        $coleccionMapa = array();
354
+        $countColeccion = 0;
355
+        $mapaDatos = $this->CI->Parser_model->getMapaByTabla("mapa_nivel_valid_notice_info");
357 356
 
358
-        if (!empty($validNoticeInfo)) {
359
-            $aux = 0;
360
-            foreach ($validNoticeInfo as $datosArchivo) {
361
-                $setInsert = array();
362
-                $setInsert[$aux] = $datosArchivo;
363
-                $setInsert[$aux]['id_ajena_licitacion'] = $this->idLicitacion;
357
+        foreach ($mapaDatos['datos'] as $dataField) {
358
+            $coleccionMapa[] = $dataField->campo_bbdd;
359
+        }
360
+        $countColeccion = count($coleccionMapa);
364 361
 
365
-                unset($setInsert[$aux]['documento']);
366
-                unset($setInsert[$aux]['fechas']);
362
+        foreach ($datosToSet['validNoticeInfo'] as $rowData) {
363
+            if ($rowData != null) {
367 364
 
368
-                if (!empty($setInsert)) {
369
-                    $resultInsert = insertBucle($setInsert, "bruto_valid_notice_info", $this->nombreLog);
365
+                foreach ($rowData['noticeInfo'] as $loteIndividual) {
366
+                    $procurementProjectLot = $loteIndividual;
367
+                    if ($countColeccion > count($procurementProjectLot)) {
368
+                        foreach ($coleccionMapa as $dataField) {
369
+                            if (!array_key_exists($dataField, $procurementProjectLot)) {
370
+                                $procurementProjectLot[$dataField] = "";
371
+                            }
372
+                        }
373
+                    }
374
+                    $result['noticeInfo'][] = $procurementProjectLot;
375
+                }
370 376
 
371
-                    if ($resultInsert > 0) {
372
-                        $this->setDatosMultiples($datosArchivo, "documento", "bruto_valid_notice_info_documento", $resultInsert, "validNoticeInfoFechas", "id_ajena_vni");
377
+                if (array_key_exists('fechas', $rowData)) {
378
+                    foreach ($rowData['fechas'] as $itemClass) {
379
+                        $result['fechas'][] = $itemClass;
380
+                    }
381
+                }
373 382
 
374
-                        $this->setDatosMultiples($datosArchivo, "fechas", "bruto_valid_notice_info_fecha", $resultInsert, "validNoticeInfoDocumento", "id_ajena_vni");
383
+                if (array_key_exists('documento', $rowData)) {
384
+                    foreach ($rowData['documento'] as $itemClass) {
385
+                        $result['documento'][] = $itemClass;
375 386
                     }
376 387
                 }
377
-                $aux++;
378
-            }
379 388
 
380
-            if ($resultInsert) {
381
-                $result = array("result" => true);
382
-                guardar_log($this->nombreLog, "validNoticeInfo Finalizada Inserción", "false");
383
-            } else {
384
-                $result = array("result" => true, "id" => 0);
385
-                guardar_log($this->nombreLog, "validNoticeInfo Fallida", "false", 2);
386 389
             }
387
-        } else {
388
-            guardar_log($this->nombreLog, "validNoticeInfo vacio", "false");
390
+
389 391
         }
392
+
393
+        $this->setDatosMultiples($result, "noticeInfo", "bruto_valid_notice_info", "ValidNoticeInfo");
394
+
395
+        $this->setDatosMultiples($result, "fechas", "bruto_valid_notice_info_fecha", "ValidNoticeInfo_Fecha");
396
+
397
+        $this->setDatosMultiples($result, "documento", "bruto_valid_notice_info_documento", "ValidNoticeInfo_Documento");
398
+
390 399
     }
391 400
 
392 401
     private function setDatosMultiples($arrayDatos, $arrayKey, $tabla, $nodoLog): void

+ 98 - 62
application/libraries/ParserFile.php 파일 보기

@@ -74,38 +74,33 @@ class ParserFile
74 74
 
75 75
                     $contractFolder = $this->nodoContractFolderStatus($row, $xml->entry[$clave]);
76 76
 
77
-                    if ($contractFolder) {
78
-                        $resultEntries[$filename]['contractInfo'][$aux] = $contractFolder;
77
+                    $resultEntries[$filename]['contractInfo'][$aux] = $contractFolder;
79 78
 
80
-                        $resultEntries[$filename]['locatedContractingParty'][$aux] = $this->nodoLocatedContractingParty($row, $xml->entry[$clave]);
79
+                    $resultEntries[$filename]['locatedContractingParty'][$aux] = $this->nodoLocatedContractingParty($row, $xml->entry[$clave]);
81 80
 
82
-                        $resultEntries[$filename]['party'][$aux] = $this->nodoParty($row, $xml->entry[$clave]);
81
+                    $resultEntries[$filename]['party'][$aux] = $this->nodoParty($row, $xml->entry[$clave]);
83 82
 
84
-                        $resultEntries[$filename]['procurementProject'][$aux] = $this->nodoPresupuesto($row, $xml->entry[$clave]);
83
+                    $resultEntries[$filename]['procurementProject'][$aux] = $this->nodoPresupuesto($row, $xml->entry[$clave]);
85 84
 
86
-                        $resultEntries[$filename]['procurementProjectLot'][$aux] = $this->nodoProcurementProjectLot($row, $xml->entry[$clave]);
85
+                    $resultEntries[$filename]['procurementProjectLot'][$aux] = $this->nodoProcurementProjectLot($row, $xml->entry[$clave]);
87 86
 
88
-                        $resultEntries[$filename]['tenderingTerms'][$aux] = $this->nodoTenderingTerms($row, $xml->entry[$clave]);
87
+                    $resultEntries[$filename]['tenderingTerms'][$aux] = $this->nodoTenderingTerms($row, $xml->entry[$clave]);
89 88
 
90
-                        $resultEntries[$filename]['tenderingProcess'][$aux] = $this->nodoTenderingProcess($row, $xml->entry[$clave]);
89
+                    $resultEntries[$filename]['tenderingProcess'][$aux] = $this->nodoTenderingProcess($row, $xml->entry[$clave]);
91 90
 
92
-                        $resultEntries[$filename]['tenderingResult'][$aux] = $this->nodoTenderResult($row, $xml->entry[$clave]);
91
+                    $resultEntries[$filename]['tenderingResult'][$aux] = $this->nodoTenderResult($row, $xml->entry[$clave]);
93 92
 
94
-                        //$resultEntries[$filename]['validNoticeInfo'][$aux] = $this->nodoValidNoticeInfo($row);
93
+                    $resultEntries[$filename]['validNoticeInfo'][$aux] = $this->nodoValidNoticeInfo($row, $xml->entry[$clave]);
95 94
 
96
-                        $resultEntries[$filename]['legalDocs'][$aux] = $this->nodoLegalDoc($row, $xml->entry[$clave]);
95
+                    $resultEntries[$filename]['legalDocs'][$aux] = $this->nodoLegalDoc($row, $xml->entry[$clave]);
97 96
 
98
-                        $resultEntries[$filename]['technicalDocs'][$aux] = $this->nodoTechnicalDocumentReference($row, $xml->entry[$clave]);
97
+                    $resultEntries[$filename]['technicalDocs'][$aux] = $this->nodoTechnicalDocumentReference($row, $xml->entry[$clave]);
99 98
 
100
-                        $resultEntries[$filename]['generalDocs'][$aux] = $this->nodoGeneralDocuments($row, $xml->entry[$clave]);
99
+                    $resultEntries[$filename]['generalDocs'][$aux] = $this->nodoGeneralDocuments($row, $xml->entry[$clave]);
101 100
 
102
-                        $resultEntries[$filename]['additionalDocs'][$aux] = $this->nodoAdditionalDocumentReference($row, $xml->entry[$clave]);
103
-
104
-                        $aux++;
105
-                    } else {
106
-                        $var = 1;
107
-                    }
101
+                    $resultEntries[$filename]['additionalDocs'][$aux] = $this->nodoAdditionalDocumentReference($row, $xml->entry[$clave]);
108 102
 
103
+                    $aux++;
109 104
                 }
110 105
 
111 106
                 //$this->recurseXML($array['entry'], true);
@@ -654,52 +649,93 @@ class ParserFile
654 649
         //return $this->idLicitacion;
655 650
     }
656 651
 
657
-    /*private function nodoValidNoticeInfo($xml)
652
+    private function nodoValidNoticeInfo($xml)
658 653
     {
659
-    $resultEntries = array();
660
-    if (array_key_exists("ValidNoticeInfo", $xml['ContractFolderStatus'])) {
661
-    $validNoticeInfo = $xml['ContractFolderStatus']['ValidNoticeInfo'];
662
-    $firstKey = array_key_first($validNoticeInfo);
663
-    if ($firstKey !== 0) {
664
-    $validNoticeInfo = array(0 => $validNoticeInfo);
665
-    }
666
-    for ($i = 0; $i < count($validNoticeInfo); $i++) {
667
-    $resultEntries[$i]['noticeTypeCode'] = $this->existNodo($validNoticeInfo[$i], 'NoticeTypeCode', 'string');
668
-    $resultEntries[$i]['publicationMediaName'] = $this->existNodo($validNoticeInfo[$i]['AdditionalPublicationStatus'], 'PublicationMediaName', 'string');
669
-    $resultEntries[$i]['id_ajena_licitacion'] = $this->idLicitacion;
670
-    $resultEntries[$i]['id_compuesta'] = $this->idLicitacion . "_12_" . $i;
671
-
672
-    if (array_key_exists("AdditionalPublicationStatus", $xml['ContractFolderStatus']['ValidNoticeInfo'][$i])) {
673
-    $additionalPublicationDocument = $xml['ContractFolderStatus']['ValidNoticeInfo'][$i]['AdditionalPublicationStatus'];
674
-    //echo ($this->idLicitacion . "</br>");
675
-    if (!is_countable($additionalPublicationDocument['AdditionalPublicationDocumentReference'])) {
676
-    echo "idlici" . $this->idLicitacion;
677
-    }
654
+        $resultEntries = array();
655
+        $additionalPublicationDocument = array();
656
+        $AdditionalPublicationStatus = array();
657
+        $validNoticeInfo = array();
658
+        if (array_key_exists("ValidNoticeInfo", $xml['ContractFolderStatus'])) {
659
+            $validNoticeInfo = $xml['ContractFolderStatus']['ValidNoticeInfo'];
660
+            $firstKey = array_key_first($validNoticeInfo);
661
+            if ($firstKey !== 0) {
662
+                $validNoticeInfo = array(0 => $validNoticeInfo);
663
+            }
664
+            for ($i = 0; $i < count($validNoticeInfo); $i++) {
665
+                $resultEntries['noticeInfo'][$i]['noticeTypeCode'] = $this->existNodo($validNoticeInfo[$i], 'NoticeTypeCode', 'string');
666
+                $resultEntries['noticeInfo'][$i]['id_ajena_licitacion'] = $this->idLicitacion;
667
+                $resultEntries['noticeInfo'][$i]['id_compuesta'] = $this->idLicitacion . "_12_" . $i;
678 668
 
679
-    if ($firstKey !== 0) {
680
-    $additionalPublicationDocument['AdditionalPublicationDocumentReference'] = array(0 => $additionalPublicationDocument['AdditionalPublicationDocumentReference']);
681
-    }
682
-    for ($j = 0; $j < count($additionalPublicationDocument['AdditionalPublicationDocumentReference']); $j++) {
683
-
684
-    $firstKey = array_key_first($additionalPublicationDocument['AdditionalPublicationDocumentReference']);
685
-
686
-    $resultEntries[$i]['fechas'][$j]['fechas'] = $this->existNodo($additionalPublicationDocument['AdditionalPublicationDocumentReference'][$j], 'IssueDate', 'string');
687
-    $resultEntries[$i]['fechas'][$j]['id_ajena_licitacion'] = $this->idLicitacion;
688
-    $resultEntries[$i]['fechas'][$j]['id_compuesta'] = $this->idLicitacion . "_12_" . $i . "_" . $j;
689
-    if ($additionalPublicationDocument['AdditionalPublicationDocumentReference'][$j]['DocumentTypeCode']) {
690
-    $resultEntries[$i]['documento'][$j]['documento'] = $this->existNodo($additionalPublicationDocument['AdditionalPublicationDocumentReference'][$j]['Attachment']['ExternalReference'], 'URI', 'string');
691
-    $resultEntries[$i]['documento'][$j]['filename'] = $this->existNodo($additionalPublicationDocument['AdditionalPublicationDocumentReference'][$j]['Attachment']['ExternalReference'], 'FileName', 'string');
692
-    $resultEntries[$i]['documento'][$j]['id_ajena_licitacion'] = $this->idLicitacion;
693
-    $resultEntries[$i]['documento'][$j]['id_compuesta'] = $this->idLicitacion . "_12_" . $i . "_" . $j;
694
-    }
695
-    }
696
-    }
697
-    }
698
-    }
669
+                if (array_key_exists("AdditionalPublicationStatus", $validNoticeInfo[$i])) {
670
+                    $AdditionalPublicationStatus = $validNoticeInfo[$i]['AdditionalPublicationStatus'];
671
+
672
+                    $firstKey = array_key_first($AdditionalPublicationStatus);
673
+                    if ($firstKey !== 0) {
674
+                        $AdditionalPublicationStatus = array(0 => $AdditionalPublicationStatus);
675
+                    }
699 676
 
700
-    //$resultFinal = $this->checkArrayValuesEmpty($resultEntries);
701
-    return $resultEntries;
702
-    }*/
677
+                    for ($j = 0; $j < count($AdditionalPublicationStatus); $j++) {
678
+                        $resultEntries['noticeInfo'][$i]['publicationMediaName'] = $this->existNodo($AdditionalPublicationStatus[$j], 'PublicationMediaName', 'string');
679
+
680
+                        if (array_key_exists("AdditionalPublicationDocumentReference", $AdditionalPublicationStatus[$j])) {
681
+                            $additionalPublicationDocument = $AdditionalPublicationStatus[$j]["AdditionalPublicationDocumentReference"];
682
+                            if (array_key_first($additionalPublicationDocument) !== 0) {
683
+                                $additionalPublicationDocument = array(0 => $additionalPublicationDocument);
684
+                            }
685
+                            for ($x = 0; $x < count($additionalPublicationDocument); $x++) {
686
+
687
+                                if (array_key_exists("IssueDate", $additionalPublicationDocument[$x])) {
688
+                                    $resultEntries['fechas'][$x]['fechas'] = $this->existNodo($additionalPublicationDocument[$x], 'IssueDate', 'string');
689
+                                    $resultEntries['fechas'][$x]['id_ajena_licitacion'] = $this->idLicitacion;
690
+                                    $resultEntries['fechas'][$x]['id_compuesta'] = $this->idLicitacion . "_12_" . $i . "_" . $j . "_" . $x;
691
+                                    $resultEntries['fechas'][$x]['id_compuesta_padre'] = $this->idLicitacion . "_12_" . $i;
692
+                                }
693
+
694
+                                if (array_key_exists("DocumentTypeCode", $additionalPublicationDocument[$x])) {
695
+
696
+                                    $resultEntries['documento'][$x]['documento'] = $this->existNodo($additionalPublicationDocument[$x]['Attachment']['ExternalReference'], 'URI', 'string');
697
+                                    $resultEntries['documento'][$x]['filename'] = $this->existNodo($additionalPublicationDocument[$x]['Attachment']['ExternalReference'], 'FileName', 'string');
698
+                                    $resultEntries['documento'][$x]['id_ajena_licitacion'] = $this->idLicitacion;
699
+                                    $resultEntries['documento'][$x]['id_compuesta'] = $this->idLicitacion . "_12_" . $i . "_" . $j . "_" . $x;
700
+                                    $resultEntries['documento'][$x]['id_compuesta_padre'] = $this->idLicitacion . "_12_" . $i;
701
+                                }
702
+                            }
703
+                        }
704
+                        unset($additionalPublicationDocument);
705
+                    }
706
+
707
+                    /*$firstKey = array_key_first($additionalPublicationDocument['AdditionalPublicationDocumentReference']);
708
+                if ($firstKey !== 0) {
709
+                $additionalPublicationDocument['AdditionalPublicationDocumentReference'] = array(0 => $additionalPublicationDocument['AdditionalPublicationDocumentReference']);
710
+                }
711
+                for ($j = 0; $j < count($additionalPublicationDocument['AdditionalPublicationDocumentReference']); $j++) {
712
+
713
+                $firstKey = array_key_first($additionalPublicationDocument['AdditionalPublicationDocumentReference']);
714
+
715
+                if ($additionalPublicationDocument['AdditionalPublicationDocumentReference'][$j]['IssueDate']) {
716
+                $resultEntries[$i]['fechas'][$j]['fechas'] = $this->existNodo($additionalPublicationDocument['AdditionalPublicationDocumentReference'][$j], 'IssueDate', 'string');
717
+                $resultEntries[$i]['fechas'][$j]['id_ajena_licitacion'] = $this->idLicitacion;
718
+                $resultEntries[$i]['fechas'][$j]['id_compuesta'] = $this->idLicitacion . "_12_" . $i . "_" . $j;
719
+                $resultEntries[$i]['fechas'][$j]['id_compuesta_padre'] = $this->idLicitacion . "_12_" . $i;
720
+                }
721
+
722
+                if ($additionalPublicationDocument['AdditionalPublicationDocumentReference'][$j]['DocumentTypeCode']) {
723
+                $resultEntries[$i]['documento'][$j]['documento'] = $this->existNodo($additionalPublicationDocument['AdditionalPublicationDocumentReference'][$j]['Attachment']['ExternalReference'], 'URI', 'string');
724
+                $resultEntries[$i]['documento'][$j]['filename'] = $this->existNodo($additionalPublicationDocument['AdditionalPublicationDocumentReference'][$j]['Attachment']['ExternalReference'], 'FileName', 'string');
725
+                $resultEntries[$i]['documento'][$j]['id_ajena_licitacion'] = $this->idLicitacion;
726
+                $resultEntries[$i]['documento'][$j]['id_compuesta'] = $this->idLicitacion . "_12_" . $i . "_" . $j;
727
+                $resultEntries[$i]['documento'][$j]['id_compuesta_padre'] = $this->idLicitacion . "_12_" . $i;
728
+                }
729
+                }*/
730
+                }
731
+            }
732
+        }
733
+
734
+        unset($AdditionalPublicationStatus);
735
+        unset($validNoticeInfo);
736
+        //$resultFinal = $this->checkArrayValuesEmpty($resultEntries);
737
+        return $resultEntries;
738
+    }
703 739
 
704 740
     private function existNodo($nodo, $nodoHijo, $tipo)
705 741
     {