CI = &get_instance(); $this->CI->load->model("Parser_model"); } public function setDatosParser($arrayDatosSucios, $fecha) { $this->fechaInicioParser = $fecha; if (!empty($arrayDatosSucios)) { foreach ($arrayDatosSucios as $nombreArchivo => $datosArchivo) { guardar_log("setLicitacion_" . $this->fechaInicioParser, "ARCHIVO ---" . $nombreArchivo, false); foreach ($datosArchivo as $row) { $idLicitacion = $this->setInicioLicitacion($row['general']); if ($idLicitacion['result']) { $this->idLicitacion = $idLicitacion['id']; if ($row['general']['id_licitacion'] == "8500237") { $var = 1; } $this->setDatosSingular($row['contractInfo'], "BRUTO_contract_folder", $this->idLicitacion, "ContractInfo"); $this->setDatosSingular($row['tenderingProcess'], "BRUTO_tendering_process", $this->idLicitacion, "TenderingProcess"); $this->setProcurementProject($row['procurementProject']); $this->setProcurementProjectLot($row['procurementProjectLot']); $this->setTenderingTerms($row['tenderingTerms']); $this->setLocatedContractingParty($row['locatedContractingParty']); $this->setParty($row['party']); $this->setValidNoticeInfo($row['validNoticeInfo']); $this->setDatosMultiples($row['tenderingResult'], "BRUTO_tender_result", $this->idLicitacion, "TenderResult"); $this->setDatosMultiples($row['legalDocs'], "BRUTO_legal_documents", $this->idLicitacion, "LegalDocs"); $this->setDatosMultiples($row['technicalDocs'], "BRUTO_technical_documents", $this->idLicitacion, "TechnicalDocs"); $this->setDatosMultiples($row['generalDocs'], "BRUTO_general_documents", $this->idLicitacion, "GeneralDocs"); $this->setDatosMultiples($row['additionalDocs'], "BRUTO_additional_documents", $this->idLicitacion, "AdditionalDocs"); } } } } } private function setInicioLicitacion($datosInicioLicitacion): array { $result = array("result" => false, "id" => 0); $insertLicitacion = $this->CI->Parser_model->setInicioLicitacion($datosInicioLicitacion); if ($insertLicitacion) { $result = array("result" => true, "id" => $insertLicitacion); guardar_log("setLicitacion_" . $this->fechaInicioParser, "Licitacion ID " . $datosInicioLicitacion['id_licitacion'] . " - BBDD Licitación ID " . $insertLicitacion, "false"); } else { $result = array("result" => true, "id" => 0); guardar_log("setLicitacion_" . $this->fechaInicioParser, "Licitacion ID " . $datosInicioLicitacion['id_licitacion'], "false", 2); } return $result; } private function setLocatedContractingParty($contractInfo): void { $locatedContractingPartyId = $this->setDatosSingular($contractInfo['locatedContractingParty'], "BRUTO_located_contracting_party", $this->idLicitacion, "locatedContractingParty"); $this->setDatosMultiples($contractInfo['activity'], "BRUTO_located_contracting_party_activity", $locatedContractingPartyId, "locatedContractingParty_Activity"); } private function setParty($partyInfo): void { $partyId = $this->setDatosSingular($partyInfo['party'], "BRUTO_party", $this->idLicitacion, "PartyInfo"); $this->setDatosMultiples($partyInfo['partyIdentification'], "BRUTO_party_party_idenfitication", $partyId, "PartyInfo_PartyIdentification"); } private function setProcurementProject($procurementInfo): void { $procurementProjectId = $this->setDatosSingular($procurementInfo['budget'], "BRUTO_procurement_project", $this->idLicitacion, "ProcurementProject"); if (array_key_exists("itemClass", $procurementInfo)) { $this->setDatosMultiples($procurementInfo['itemClass'], "BRUTO_procurement_project_itemClass", $procurementProjectId, "ProcurementProject_ItemClass"); } } private function setProcurementProjectLot($procurementLotInfo): void { $resultInsert = 0; if (!empty($procurementLotInfo)) { $aux = 0; foreach ($procurementLotInfo as $row) { $setInsert = array(); $setInsert[$aux] = $row; $setInsert[$aux]['id_ajena'] = $this->idLicitacion; unset($setInsert[$aux]['itemClassification']); if (!empty($setInsert)) { $resultInsert = insertBucle($setInsert, "BRUTO_procurement_project_lot", "setLicitacion_" . $this->fechaInicioParser); if ($row['itemClassification']) { $this->setDatosMultiples($row['itemClassification'], "BRUTO_procurement_project_lot_item", $resultInsert, "ProcurementLotItem"); } } $aux++; } if ($resultInsert) { $result = array("result" => true); guardar_log("setLicitacion_" . $this->fechaInicioParser, "ProcurementLot Finalizada Inserción", "false"); } else { $result = array("result" => true, "id" => 0); guardar_log("setLicitacion_" . $this->fechaInicioParser, "ProcurementLot Fallida", "false", 2); } } else { guardar_log("setLicitacion_" . $this->fechaInicioParser, "ProcurementLot vacio", "false"); } } private function setTenderingTerms($tenderingTermsInfo): void { $resultInsert = 0; if (!empty($tenderingTermsInfo)) { $aux = 0; //foreach ($tenderingTermsInfo as $clave => $row) { $setInsert = array(); $setInsert['tenderingTerms'][0] = $tenderingTermsInfo[0]; $setInsert['tenderingTerms'][0]['id_ajena'] = $this->idLicitacion; if (!empty($setInsert)) { $resultInsert = insertBucle($setInsert['tenderingTerms'], "BRUTO_tendering_terms", "setLicitacion_" . $this->fechaInicioParser); if ($resultInsert > 0) { if (array_key_exists(1, $tenderingTermsInfo)) { $this->setDatosMultiples($tenderingTermsInfo[1], "BRUTO_tendering_terms_awarding_terms", $resultInsert, "TenderingTermsAwardingTerms"); } if (array_key_exists(2, $tenderingTermsInfo)) { $this->setDatosMultiples($tenderingTermsInfo[2], "BRUTO_tendering_terms_qualification_request", $resultInsert, "TenderingTermsQualificationRequest"); } if (array_key_exists(3, $tenderingTermsInfo)) { $this->setDatosMultiples($tenderingTermsInfo[3], "BRUTO_tendering_terms_financial_evaluation", $resultInsert, "TenderingTermsFinancialEvaluation"); } if (array_key_exists(4, $tenderingTermsInfo)) { $this->setDatosMultiples($tenderingTermsInfo[4], "BRUTO_tendering_terms_specific_terms", $resultInsert, "TenderingTermsSpecificRequirement"); } } } //$aux++; //} if ($resultInsert) { $result = array("result" => true); guardar_log("setLicitacion_" . $this->fechaInicioParser, "TenderingTerms Finalizada Inserción", "false"); } else { $result = array("result" => true, "id" => 0); guardar_log("setLicitacion_" . $this->fechaInicioParser, "TenderingTerms Fallida", "false", 2); } } else { guardar_log("setLicitacion_" . $this->fechaInicioParser, "TenderingTerms vacio", "false"); } } private function setValidNoticeInfo($validNoticeInfo): void { $resultInsert = 0; if (!empty($validNoticeInfo)) { $aux = 0; foreach ($validNoticeInfo as $row) { $setInsert = array(); $setInsert[$aux] = $row; $setInsert[$aux]['id_ajena'] = $this->idLicitacion; unset($setInsert[$aux]['documento']); unset($setInsert[$aux]['fechas']); if (!empty($setInsert)) { $resultInsert = insertBucle($setInsert, "BRUTO_valid_notice_info", "setLicitacion_" . $this->fechaInicioParser); if (array_key_exists("documento", $row)) { $this->setDatosMultiples($row['documento'], "BRUTO_valid_notice_info_documento", $resultInsert, "validNoticeInfoFechas"); } if (array_key_exists("fechas", $row)) { $this->setDatosMultiples($row['fechas'], "BRUTO_valid_notice_info_fecha", $resultInsert, "validNoticeInfoDocumento"); } } $aux++; } if ($resultInsert) { $result = array("result" => true); guardar_log("setLicitacion_" . $this->fechaInicioParser, "validNoticeInfo Finalizada Inserción", "false"); } else { $result = array("result" => true, "id" => 0); guardar_log("setLicitacion_" . $this->fechaInicioParser, "validNoticeInfo Fallida", "false", 2); } } else { guardar_log("setLicitacion_" . $this->fechaInicioParser, "validNoticeInfo vacio", "false"); } } private function setDatosSingular($arrayDatos, $tabla, $idAjena = 0, $nodoLog): int { $insertedId = 0; if (!empty($arrayDatos)) { $arrayInsertar = array(); $arrayInsertar[0] = $arrayDatos; if ($idAjena > 0) { $arrayInsertar[0]['id_ajena'] = $idAjena; } $insertedId = insertBucle($arrayInsertar, $tabla, "setLicitacion_" . $this->fechaInicioParser); if ($insertedId == 0) { guardar_log("setLicitacion_" . $this->fechaInicioParser, $nodoLog . " Fallido", "false"); } else { guardar_log("setLicitacion_" . $this->fechaInicioParser, $nodoLog . " Finalizada Inserción", "false"); } } else { guardar_log("setLicitacion_" . $this->fechaInicioParser, $nodoLog . " vacio", "false"); } return $insertedId; } private function setDatosMultiples($arrayDatos, $tabla, $idAjena = 0, $nodoLog): void { $setInsert = array(); $resultInsert = 0; if (!empty($arrayDatos)) { $aux = 0; foreach ($arrayDatos as $row) { $setInsert[$aux] = $row; if ($idAjena > 0) { $setInsert[$aux]['id_ajena'] = $idAjena; } $aux++; } if (!empty($setInsert)) { $resultInsert = insertBucle($setInsert, $tabla, "setLicitacion_" . $this->fechaInicioParser); } if ($resultInsert) { $result = array("result" => true); guardar_log("setLicitacion_" . $this->fechaInicioParser, $nodoLog . " Finalizada Inserción", "false"); } else { $result = array("result" => true, "id" => 0); guardar_log("setLicitacion_" . $this->fechaInicioParser, $nodoLog . " Fallida", "false", 2); } } else { guardar_log("setLicitacion_" . $this->fechaInicioParser, $nodoLog . " vacio", "false"); } } } /* End of file ParserSetDatabase.php */ /* Location: ./application/libraries/ParserSetDatabase.php */