소스 검색

Bruto a maestro. Eliminar en cascada las licitaciones de bruto en limpio e insertar nuevas

Nermosis 3 년 전
부모
커밋
7e0e24c96f
3개의 변경된 파일39개의 추가작업 그리고 12개의 파일을 삭제
  1. 4 4
      application/libraries/ParserFile.php
  2. 15 8
      application/libraries/Parserdatabaselimpio.php
  3. 20 0
      application/models/Parser_model.php

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

@@ -84,7 +84,7 @@ class ParserFile
84 84
             $this->CI->parserdatabasebruto->setDatosParser($resultEntries, $fechaInicioParser, $datosPerfil);
85 85
 
86 86
             $resultEntries = array();
87
-            //$this->CI->parserdatabaselimpio->index();
87
+            $this->CI->parserdatabaselimpio->index();
88 88
         }
89 89
 
90 90
         return;
@@ -370,8 +370,8 @@ class ParserFile
370 370
             $resultEntries['tenderingTerm']['allowedSubcontractTerms'] = $this->existNodo($TenderingTerms['AllowedSubcontractTerms'], 'Description', 'string');
371 371
 
372 372
             if (array_key_exists("AwardingTerms", $TenderingTerms)) {
373
-                $tendererAwardingTerms = $TenderingTerms['AwardingTerms'];
374
-                for ($i = 0; $i < count($tendererAwardingTerms['AwardingCriteria']); $i++) {
373
+                $tendererAwardingTerms = $TenderingTerms['AwardingTerms']['AwardingCriteria'];
374
+                for ($i = 0; $i < count($tendererAwardingTerms); $i++) {
375 375
                     $resultEntries["awardingCriteria"][$i]['evaluationCriteriaTypeCode'] = $this->existNodo($tendererAwardingTerms[$i], 'Description', 'string');
376 376
                     $resultEntries["awardingCriteria"][$i]['description'] = $this->existNodo($tendererAwardingTerms[$i], 'WeightNumeric', 'string');
377 377
                     $resultEntries["awardingCriteria"][$i]['id_ajena_licitacion'] = $this->idLicitacion;
@@ -385,7 +385,7 @@ class ParserFile
385 385
                 $resultEntries['tenderingTerm']['description'] = $this->existNodo($tendererQualificationRequest, 'Description', 'string');
386 386
                 $resultEntries['tenderingTerm']['personalSituation'] = $this->existNodo($tendererQualificationRequest, 'PersonalSituation', 'string');
387 387
                 for ($i = 0; $i < count($tendererQualificationRequest); $i++) {
388
-                    if (isset($tendererQualificationRequest[$i]->TechnicalEvaluationCriteria->EvaluationCriteriaTypeCode)) {
388
+                    if (isset($tendererQualificationRequest[$i]['EvaluationCriteriaTypeCode'])) {
389 389
                         $resultEntries["TendererQualificationRequest"][$i]['evaluationCriteriaTypeCode'] = $this->existNodo($tendererQualificationRequest[$i]['TechnicalEvaluationCriteria'], 'EvaluationCriteriaTypeCode', 'string');
390 390
                         $resultEntries["TendererQualificationRequest"][$i]['evaluationCriteriaTypeCode_attr'] = $this->existAttribute($tendererQualificationRequest[$i]['TechnicalEvaluationCriteria'], "EvaluationCriteriaTypeCode", "sting", 'listURI');
391 391
                         $resultEntries["TendererQualificationRequest"][$i]['description'] = $this->existNodo($tendererQualificationRequest[$i]['TechnicalEvaluationCriteria'], 'Description', 'string');

+ 15 - 8
application/libraries/Parserdatabaselimpio.php 파일 보기

@@ -19,20 +19,27 @@ class Parserdatabaselimpio
19 19
 
20 20
         if ($tablasInsert['num_rows'] > 0) {
21 21
 
22
-            foreach ($tablasInsert['datos'] as $row) {
22
+            $licitacionDeleteCascada = $this->CI->Parser_model->getLicitacionesNuevasBruto();
23 23
 
24
-                $datosTablaToInsert = $this->CI->Parser_model->getDatosBrutos($row->tabla_sucia);
24
+            if ($licitacionDeleteCascada['num_rows'] > 0) {
25
+                $this->CI->Parser_model->deleteCascadaNuevasLicitaciones();
25 26
 
26
-                if ($datosTablaToInsert['num_rows'] > 0) {
27
-                    if ($row->tabla_maestra == "maestro_datos_iniciales_licitacion") {
28
-                        foreach ($datosTablaToInsert['datos'] as $datos) {
29
-                            unset($datos->id);
27
+                foreach ($tablasInsert['datos'] as $row) {
28
+
29
+                    $datosTablaToInsert = $this->CI->Parser_model->getDatosBrutos($row->tabla_sucia);
30
+
31
+                    if ($datosTablaToInsert['num_rows'] > 0) {
32
+                        if ($row->tabla_maestra == "maestro_datos_iniciales_licitacion") {
33
+                            foreach ($datosTablaToInsert['datos'] as $datos) {
34
+                                unset($datos->id);
35
+                            }
30 36
                         }
31
-                    }
32 37
 
33
-                    insertBucleDuplicateOnKey($datosTablaToInsert['datos'], $row->tabla_maestra, "brutoToMaestro_" . $now);
38
+                        insertBucleDuplicateOnKey($datosTablaToInsert['datos'], $row->tabla_maestra, "brutoToMaestro_" . $now);
39
+                    }
34 40
                 }
35 41
             }
42
+
36 43
         }
37 44
     }
38 45
 

+ 20 - 0
application/models/Parser_model.php 파일 보기

@@ -91,6 +91,26 @@ class Parser_model extends CI_Model
91 91
         return $datos;
92 92
     }
93 93
 
94
+    public function getLicitacionesNuevasBruto()
95
+    {
96
+        $sql = "SELECT DISTINCT id_licitacion FROM bruto_datos_iniciales";
97
+        $result = $this->db->query($sql);
98
+        $datos['num_rows'] = $result->num_rows();
99
+        return $datos;
100
+    }
101
+
102
+    public function deleteCascadaNuevasLicitaciones()
103
+    {
104
+        $sql = "DELETE
105
+                FROM maestro_datos_iniciales_licitacion
106
+                WHERE id_licitacion IN(
107
+                    SELECT DISTINCT id_licitacion FROM bruto_datos_iniciales
108
+                )";
109
+        $result = $this->db->query($sql);
110
+        $datos['num_rows'] = $this->db->affected_rows();
111
+        return $datos;
112
+    }
113
+
94 114
     public function getMapaByTabla($tabla)
95 115
     {
96 116
         $sql = "SELECT * FROM $tabla";