CI = &get_instance(); $this->CI->load->model("Parser_model"); } public function setDatosParser($arrayDatosSucios, $fecha, $datosPerfil) { $this->fechaInicioParser = $fecha; $this->nombreLog = "setLicitacion__" . $datosPerfil->prefijos_tablas . "__" . $this->fechaInicioParser; if (!empty($arrayDatosSucios)) { foreach ($arrayDatosSucios as $nombreArchivo => $datosArchivo) { guardar_log($this->nombreLog, "ARCHIVO ---" . $nombreArchivo, false); $this->setDatosMultiples($datosArchivo, "general", "bruto_datos_iniciales", "DatosIniciales"); $this->setDatosMultiples($datosArchivo, "contractInfo", "BRUTO_contract_folder", "ContractInfo"); $this->setDatosMultiples($datosArchivo, "tenderingProcess", "BRUTO_tendering_process", "TenderingProcess"); $this->setProcurementProjectArray($datosArchivo); /*$this->setDatosMultiples($datosArchivo, "tenderingTerms", "bruto_tendering_terms", "TenderingTerms"); $this->setDatosMultiples($datosArchivo['tenderingTerms'], 1, "bruto_tendering_terms", "TenderingTerms"); $this->setDatosMultiples($datosArchivo['tenderingTerms'], 2, "bruto_tendering_terms", "TenderingTerms"); $this->setDatosMultiples($datosArchivo['tenderingTerms'], 3, "bruto_tendering_terms", "TenderingTerms"); $this->setDatosMultiples($datosArchivo['tenderingTerms'], 4, "bruto_tendering_terms", "TenderingTerms");*/ $this->setLocatedContractingParty($datosArchivo); //, "locatedContractingParty", "BRUTO_located_contracting_party", "locatedContractingParty"); $this->setParty($datosArchivo); /*$this->setDatosMultiples($datosArchivo, "validNoticeInfo", "BRUTO_valid_notice_info", "ValideNoticeInfo"); $this->setDatosMultiples($datosArchivo['validNoticeInfo'], "documento", "BRUTO_valid_notice_info_documento", "validNoticeInfoDocumento"); $this->setDatosMultiples($datosArchivo['validNoticeInfo'], "fechas", "BRUTO_valid_notice_info_fecha", "validNoticeInfoFechas"); $this->setDatosMultiples($datosArchivo, "tenderingResult", "BRUTO_tender_result", "TenderResult");*/ $this->setDocumentos($datosArchivo, "legalDocs", ["BRUTO_legal_documents", "mapa_nivel_legal_docs"], "legalDocs"); $this->setDocumentos($datosArchivo, "technicalDocs", ["BRUTO_technical_documents", "mapa_nivel_technical_docs"], "TechnicalDocs"); $this->setDocumentos($datosArchivo, "generalDocs", ["BRUTO_general_documents", "mapa_nivel_general_docs"], "GeneralDocs"); $this->setDocumentos($datosArchivo, "additionalDocs", ["BRUTO_additional_documents", "mapa_nivel_additional_docs"], "additionalDocs"); } } return; } private function setProcurementProjectArray($procurementProjectData) { $result = array(); $coleccionMapaProcProject = array(); $countColeccionProcProject = 0; $mapaDatos = $this->CI->Parser_model->getMapaByTabla("mapa_nivel_procurement_project"); foreach ($mapaDatos['datos'] as $dataField) { $coleccionMapaProcProject[] = $dataField->campo_bbdd; } $countColeccionProcProject = count($coleccionMapaProcProject); foreach ($procurementProjectData['procurementProject'] as $rowData) { $budget = $rowData['budget']; if ($countColeccionProcProject > count($budget)) { foreach ($coleccionMapaProcProject as $dataField) { if (!array_key_exists($dataField, $budget)) { $budget[$dataField] = ""; } } } if (array_key_exists('itemClass', $rowData)) { foreach ($rowData['itemClass'] as $itemClass) { $result['itemClass'][] = $itemClass; } } $result['budget'][] = $budget; } $this->setDatosMultiples($result, "budget", "bruto_procurement_project", "ProcurementProject"); $this->setDatosMultiples($result, "itemClass", "bruto_procurement_project_itemclass", "ProcurementProject_ItemClass"); } private function setLocatedContractingParty($datosToSet) { $result = array(); $coleccionMapa = array(); $countColeccion = 0; $mapaDatos = $this->CI->Parser_model->getMapaByTabla("mapa_nivel_located_contracting_party"); foreach ($mapaDatos['datos'] as $dataField) { $coleccionMapa[] = $dataField->campo_bbdd; } $countColeccion = count($coleccionMapa); foreach ($datosToSet['locatedContractingParty'] as $rowData) { $locatedContractingParty = $rowData['locatedContractingParty']; if ($countColeccion > count($locatedContractingParty)) { foreach ($coleccionMapa as $dataField) { if (!array_key_exists($dataField, $locatedContractingParty)) { $locatedContractingParty[$dataField] = ""; } } } if (array_key_exists('activity', $rowData)) { foreach ($rowData['activity'] as $itemClass) { $result['activity'][] = $itemClass; } } $result['locatedContractingParty'][] = $locatedContractingParty; } $this->setDatosMultiples($result, "locatedContractingParty", "bruto_located_contracting_party", "LocatedContractingParty"); $this->setDatosMultiples($result, "activity", "bruto_located_contracting_party_activity", "LocatedContractingParty_Activity"); } private function setParty($datosToSet) { $result = array(); $coleccionMapa = array(); $countColeccion = 0; $mapaDatos = $this->CI->Parser_model->getMapaByTabla("mapa_nivel_party"); foreach ($mapaDatos['datos'] as $dataField) { $coleccionMapa[] = $dataField->campo_bbdd; } $countColeccion = count($coleccionMapa); foreach ($datosToSet['party'] as $rowData) { $party = $rowData['party']; if ($countColeccion > count($party)) { foreach ($coleccionMapa as $dataField) { if (!array_key_exists($dataField, $party)) { $party[$dataField] = ""; } } } if (array_key_exists('partyIdentification', $rowData)) { foreach ($rowData['partyIdentification'] as $itemClass) { $result['partyIdentification'][] = $itemClass; } } $result['party'][] = $party; } $this->setDatosMultiples($result, "party", "bruto_party", "Party"); $this->setDatosMultiples($result, "partyIdentification", "bruto_party_party_idenfitication", "Party_PartyIdentification"); } private function setDocumentos($datosToSet, $arrayKey, $tablasMapa, $nombreLog) { if (array_key_exists($arrayKey, $datosToSet)) { $result = array(); $coleccionMapa = array(); $countColeccion = 0; $mapaDatos = $this->CI->Parser_model->getMapaByTabla($tablasMapa[1]); foreach ($mapaDatos['datos'] as $dataField) { $coleccionMapa[] = $dataField->campo_bbdd; } foreach ($datosToSet[$arrayKey] as $rowData) { /* if ($countColeccion > count($resultFinal)) { foreach ($coleccionMapa as $dataField) { if (!array_key_exists($dataField, $resultFinal)) { $resultFinal[$dataField] = ""; } } } */ foreach ($rowData as $documento) { $result[$arrayKey][] = $documento; } } $this->setDatosMultiples($result, $arrayKey, $tablasMapa[0], $nombreLog); } } private function setValidNoticeInfo($validNoticeInfo): void { $resultInsert = 0; if (!empty($validNoticeInfo)) { $aux = 0; foreach ($validNoticeInfo as $datosArchivo) { $setInsert = array(); $setInsert[$aux] = $datosArchivo; $setInsert[$aux]['id_ajena_licitacion'] = $this->idLicitacion; unset($setInsert[$aux]['documento']); unset($setInsert[$aux]['fechas']); if (!empty($setInsert)) { $resultInsert = insertBucle($setInsert, "BRUTO_valid_notice_info", $this->nombreLog); if ($resultInsert > 0) { $this->setDatosMultiples($datosArchivo, "documento", "BRUTO_valid_notice_info_documento", $resultInsert, "validNoticeInfoFechas", "id_ajena_vni"); $this->setDatosMultiples($datosArchivo, "fechas", "BRUTO_valid_notice_info_fecha", $resultInsert, "validNoticeInfoDocumento", "id_ajena_vni"); } } $aux++; } if ($resultInsert) { $result = array("result" => true); guardar_log($this->nombreLog, "validNoticeInfo Finalizada Inserción", "false"); } else { $result = array("result" => true, "id" => 0); guardar_log($this->nombreLog, "validNoticeInfo Fallida", "false", 2); } } else { guardar_log($this->nombreLog, "validNoticeInfo vacio", "false"); } } private function setDatosMultiples($arrayDatos, $arrayKey, $tabla, $nodoLog): void { $setInsert = array(); $resultInsert = 0; if (array_key_exists($arrayKey, $arrayDatos)) { if (!empty($arrayDatos[$arrayKey])) { $resultInsert = insertBucleDuplicateOnKey($arrayDatos[$arrayKey], $tabla, $this->nombreLog); if ($resultInsert) { $result = array("result" => true); guardar_log($this->nombreLog, $nodoLog . " Finalizada Inserción", "false"); } else { $result = array("result" => true, "id" => 0); guardar_log($this->nombreLog, $nodoLog . " Fallida", "false", 2); } } else { guardar_log($this->nombreLog, $nodoLog . " vacio", "false"); } } else { guardar_log($this->nombreLog, $nodoLog . " vacio", "false"); } } } /* End of file ParserSetDatabase.php */ /* Location: ./application/libraries/ParserSetDatabase.php */