$_SERVER['REMOTE_ADDR'], 'action' => "crearCentro", 'fecha' => date("Y-m-d H:i:s"), ]; Database::insert($tableLog, $paramsLog); /* End tracking log */ // Code $crearCentroInput = $crearCentroInput->DATOS_IDENTIFICATIVOS; $centerOrigin = $crearCentroInput->ID_CENTRO->ORIGEN_CENTRO; $centerCode = $crearCentroInput->ID_CENTRO->CODIGO_CENTRO; $centerName = $crearCentroInput->NOMBRE_CENTRO; $urlPlatform = $crearCentroInput->URL_PLATAFORMA; $urlTracking = $crearCentroInput->URL_SEGUIMIENTO; $phone = $crearCentroInput->TELEFONO; $mail = $crearCentroInput->EMAIL; if (empty($centerOrigin) || empty($centerCode) || empty($centerName) || empty($urlPlatform) || empty($urlTracking) || empty($phone) || empty($mail) ) { error_log('no data'); return [ "RESPUESTA_DATOS_CENTRO" => [ "CODIGO_RETORNO" => "2", "ETIQUETA_ERROR" => "Error en parametro", "DATOS_IDENTIFICATIVOS" => $crearCentroInput, ], ]; } $table = Database::get_main_table('plugin_sepe_center'); // Check if exists data in table if (Database::count_rows($table) > 0) { // Check if exists actions $table_actions = Database::get_main_table('plugin_sepe_actions'); if (Database::count_rows($table_actions) > 0) { return [ "RESPUESTA_DATOS_CENTRO" => [ "CODIGO_RETORNO" => "1", "ETIQUETA_ERROR" => "Centro con acciones", "DATOS_IDENTIFICATIVOS" => $crearCentroInput, ], ]; } else { $sql = "DELETE FROM $table"; Database::query($sql); } } $params = [ 'center_origin' => $centerOrigin, 'center_code' => $centerCode, 'center_name' => $centerName, 'url' => $urlPlatform, 'tracking_url' => $urlTracking, 'phone' => $phone, 'mail' => $mail, ]; $id = Database::insert($table, $params); if (empty($id)) { return [ "RESPUESTA_DATOS_CENTRO" => [ "CODIGO_RETORNO" => "-1", "ETIQUETA_ERROR" => "Problema base de datos", "DATOS_IDENTIFICATIVOS" => $crearCentroInput, ], ]; } else { return [ "RESPUESTA_DATOS_CENTRO" => [ "CODIGO_RETORNO" => "0", "ETIQUETA_ERROR" => "Correcto", "DATOS_IDENTIFICATIVOS" => $crearCentroInput, ], ]; } } /** * @return stdClass */ public function obtenerDatosCentro() { /* Tracking Log */ $tableLog = Database::get_main_table('plugin_sepe_log'); $paramsLog = [ 'ip' => $_SERVER['REMOTE_ADDR'], 'action' => "obtenerDatosCentro", 'fecha' => date("Y-m-d H:i:s"), ]; Database::insert($tableLog, $paramsLog); /* End tracking log */ // Code $table = Database::get_main_table('plugin_sepe_center'); // Comprobamos si existen datos almacenados previamente if (Database::count_rows($table) > 0) { //Hay datos en la tabla; $sql = "SELECT * FROM $table;"; $rs = Database::query($sql); if (!$rs) { return [ "CODIGO_RETORNO" => "-1", "ETIQUETA_ERROR" => "Problema acceso base de datos", "DATOS_IDENTIFICATIVOS" => '', ]; } else { $row = Database::fetch_assoc($rs); $centerOrigin = $row['center_origin']; $centerCode = $row['center_code']; $centerName = $row['center_name']; $urlPlatform = $row['url']; $urlTracking = $row['tracking_url']; $phone = $row['phone']; $mail = $row['mail']; $data = new stdClass(); $data->ID_CENTRO = new stdClass(); $data->ID_CENTRO->ORIGEN_CENTRO = $centerOrigin; $data->ID_CENTRO->CODIGO_CENTRO = $centerCode; $data->NOMBRE_CENTRO = $centerName; $data->URL_PLATAFORMA = $urlPlatform; $data->URL_SEGUIMIENTO = $urlTracking; $data->TELEFONO = $phone; $data->EMAIL = $mail; $obj = new stdClass(); $obj->CODIGO_RETORNO = 0; $obj->ETIQUETA_ERROR = 'Correcto'; $obj->DATOS_IDENTIFICATIVOS = new SoapVar($data, SOAP_ENC_OBJECT); $result = new stdClass(); $result->RESPUESTA_DATOS_CENTRO = new SoapVar($obj, SOAP_ENC_OBJECT); return $result; } } else { $data = new stdClass(); $data->ID_CENTRO = new stdClass(); $data->ID_CENTRO->ORIGEN_CENTRO = ''; $data->ID_CENTRO->CODIGO_CENTRO = ''; $data->NOMBRE_CENTRO = ''; $data->URL_PLATAFORMA = ''; $data->URL_SEGUIMIENTO = ''; $data->TELEFONO = ''; $data->EMAIL = ''; $obj = new stdClass(); $obj->CODIGO_RETORNO = 0; $obj->ETIQUETA_ERROR = 'Correcto'; $obj->DATOS_IDENTIFICATIVOS = new SoapVar($data, SOAP_ENC_OBJECT); $result = new stdClass(); $result->RESPUESTA_DATOS_CENTRO = new SoapVar($obj, SOAP_ENC_OBJECT); //error_log('Sin datos en la BD'); /* $data = new stdClass(); $obj = new stdClass(); $obj->CODIGO_RETORNO = '-1'; $obj->ETIQUETA_ERROR = 'Sin datos'; $obj->DATOS_IDENTIFICATIVOS = new SoapVar($data, SOAP_ENC_OBJECT); $result = new stdClass(); $result->RESPUESTA_DATOS_CENTRO = new SoapVar($obj, SOAP_ENC_OBJECT); */ return $result; } } /** * @param $crearAccionInput * * @return array */ public function crearAccion($crearAccionInput) { /* Tracking Log */ $tableLog = Database::get_main_table('plugin_sepe_log'); $paramsLog = [ 'ip' => $_SERVER['REMOTE_ADDR'], 'action' => "crearAccion", 'fecha' => date("Y-m-d H:i:s"), ]; Database::insert($tableLog, $paramsLog); /* End tracking log */ $array = json_decode(json_encode($crearAccionInput), true); $crearAccionInputArray = (array) $array; // Code $actionOrigin = $crearAccionInput->ACCION_FORMATIVA->ID_ACCION->ORIGEN_ACCION; $actionCode = $crearAccionInput->ACCION_FORMATIVA->ID_ACCION->CODIGO_ACCION; $situation = $crearAccionInput->ACCION_FORMATIVA->SITUACION; $specialtyOrigin = $crearAccionInput->ACCION_FORMATIVA->ID_ESPECIALIDAD_PRINCIPAL->ORIGEN_ESPECIALIDAD; $professionalArea = $crearAccionInput->ACCION_FORMATIVA->ID_ESPECIALIDAD_PRINCIPAL->AREA_PROFESIONAL; $specialtyCode = $crearAccionInput->ACCION_FORMATIVA->ID_ESPECIALIDAD_PRINCIPAL->CODIGO_ESPECIALIDAD; $duration = $crearAccionInput->ACCION_FORMATIVA->DURACION; $startDate = $crearAccionInput->ACCION_FORMATIVA->FECHA_INICIO; $endDate = $crearAccionInput->ACCION_FORMATIVA->FECHA_FIN; $fullItineraryIndicator = $crearAccionInput->ACCION_FORMATIVA->IND_ITINERARIO_COMPLETO; $financingType = $crearAccionInput->ACCION_FORMATIVA->TIPO_FINANCIACION; $attendeesCount = $crearAccionInput->ACCION_FORMATIVA->NUMERO_ASISTENTES; $actionName = $crearAccionInput->ACCION_FORMATIVA->DESCRIPCION_ACCION->DENOMINACION_ACCION; $globalInfo = $crearAccionInput->ACCION_FORMATIVA->DESCRIPCION_ACCION->INFORMACION_GENERAL; $schedule = $crearAccionInput->ACCION_FORMATIVA->DESCRIPCION_ACCION->HORARIOS; $requerements = $crearAccionInput->ACCION_FORMATIVA->DESCRIPCION_ACCION->REQUISITOS; $contactAction = $crearAccionInput->ACCION_FORMATIVA->DESCRIPCION_ACCION->CONTACTO_ACCION; if (empty($actionOrigin) || empty($actionCode)) { error_log('2 - error en parametros - l244'); return [ "RESPUESTA_OBT_ACCION" => [ "CODIGO_RETORNO" => "2", "ETIQUETA_ERROR" => "Error en parametro", "ACCION_FORMATIVA" => $crearAccionInputArray['ACCION_FORMATIVA'], ], ]; } // Comprobamos si existen datos almacenados previamente $table = Database::get_main_table('plugin_sepe_actions'); $sql = "SELECT action_origin FROM $table WHERE action_origin='".$actionOrigin."' AND action_code='".$actionCode."';"; $rs = Database::query($sql); if (Database::num_rows($rs) > 0) { return [ "RESPUESTA_OBT_ACCION" => [ "CODIGO_RETORNO" => "1", "ETIQUETA_ERROR" => "Acción existente", "ACCION_FORMATIVA" => $crearAccionInputArray['ACCION_FORMATIVA'], ], ]; } $startDate = self::fixDate($startDate); $endDate = self::fixDate($endDate); $sql = "INSERT INTO $table (action_origin, action_code, situation, specialty_origin, professional_area, specialty_code, duration, start_date, end_date, full_itinerary_indicator, financing_type, attendees_count, action_name, global_info, schedule, requirements, contact_action) VALUES ('".$actionOrigin."','".$actionCode."','".$situation."','".$specialtyOrigin."','".$professionalArea."','".$specialtyCode."','".$duration."','".$startDate."','".$endDate."','".$fullItineraryIndicator."','".$financingType."','".$attendeesCount."','".$actionName."','".$globalInfo."','".$schedule."','".$requerements."','".$contactAction."')"; $rs = Database::query($sql); if (!$rs) { return [ "RESPUESTA_OBT_ACCION" => [ "CODIGO_RETORNO" => "-1", "ETIQUETA_ERROR" => "Problema base de datos - insertando acciones formativas", "ACCION_FORMATIVA" => $crearAccionInputArray['ACCION_FORMATIVA'], ], ]; } $actionId = Database::insert_id(); // DATOS ESPECIALIDADES DE LA ACCION $table = Database::get_main_table('plugin_sepe_specialty'); $specialties = $crearAccionInput->ACCION_FORMATIVA->ESPECIALIDADES_ACCION; foreach ($specialties as $specialtyList) { if (!is_array($specialtyList)) { $auxList = []; $auxList[] = $specialtyList; $specialtyList = $auxList; } foreach ($specialtyList as $specialty) { $specialtyOrigin = $specialty->ID_ESPECIALIDAD->ORIGEN_ESPECIALIDAD; $professionalArea = $specialty->ID_ESPECIALIDAD->AREA_PROFESIONAL; $specialtyCode = $specialty->ID_ESPECIALIDAD->CODIGO_ESPECIALIDAD; $centerOrigin = $specialty->CENTRO_IMPARTICION->ORIGEN_CENTRO; $centerCode = $specialty->CENTRO_IMPARTICION->CODIGO_CENTRO; $startDate = $specialty->FECHA_INICIO; $endDate = $specialty->FECHA_FIN; $modalityImpartition = $specialty->MODALIDAD_IMPARTICION; $classroomHours = $specialty->DATOS_DURACION->HORAS_PRESENCIAL; $distanceHours = $specialty->DATOS_DURACION->HORAS_TELEFORMACION; $morningParticipansNumber = null; $morningAccessNumber = null; $morningTotalDuration = null; if (isset($specialty->USO->HORARIO_MANANA)) { $morningParticipansNumber = $specialty->USO->HORARIO_MANANA->NUM_PARTICIPANTES; $morningAccessNumber = $specialty->USO->HORARIO_MANANA->NUMERO_ACCESOS; $morningTotalDuration = $specialty->USO->HORARIO_MANANA->DURACION_TOTAL; } $afternoonParticipantNumber = null; $afternoonAccessNumber = null; $afternoonTotalDuration = null; if (isset($specialty->USO->HORARIO_TARDE)) { $afternoonParticipantNumber = $specialty->USO->HORARIO_TARDE->NUM_PARTICIPANTES; $afternoonAccessNumber = $specialty->USO->HORARIO_TARDE->NUMERO_ACCESOS; $afternoonTotalDuration = $specialty->USO->HORARIO_TARDE->DURACION_TOTAL; } $nightParticipantsNumber = null; $nightAccessNumber = null; $nightTotalDuration = null; if (isset($specialty->USO->HORARIO_NOCHE)) { $nightParticipantsNumber = $specialty->USO->HORARIO_NOCHE->NUM_PARTICIPANTES; $nightAccessNumber = $specialty->USO->HORARIO_NOCHE->NUMERO_ACCESOS; $nightTotalDuration = $specialty->USO->HORARIO_NOCHE->DURACION_TOTAL; } $attendeesCount = null; $learningActivityCount = null; $attemptCount = null; $evaluationActivityCount = null; if (isset($specialty->USO->SEGUIMIENTO_EVALUACION)) { $attendeesCount = $specialty->USO->SEGUIMIENTO_EVALUACION->NUM_PARTICIPANTES; $learningActivityCount = $specialty->USO->SEGUIMIENTO_EVALUACION->NUMERO_ACTIVIDADES_APRENDIZAJE; $attemptCount = $specialty->USO->SEGUIMIENTO_EVALUACION->NUMERO_INTENTOS; $evaluationActivityCount = $specialty->USO->SEGUIMIENTO_EVALUACION->NUMERO_ACTIVIDADES_EVALUACION; } $startDate = self::fixDate($startDate); $endDate = self::fixDate($endDate); $params = [ 'action_id' => $actionId, 'specialty_origin' => $specialtyOrigin, 'professional_area' => $professionalArea, 'specialty_code' => $specialtyCode, 'center_origin' => $centerOrigin, 'center_code' => $centerCode, 'start_date' => $startDate, 'end_date' => $endDate, 'modality_impartition' => $modalityImpartition, 'classroom_hours' => $classroomHours, 'distance_hours' => $distanceHours, 'mornings_participants_number' => $morningParticipansNumber, 'mornings_access_number' => $morningAccessNumber, 'morning_total_duration' => $morningTotalDuration, 'afternoon_participants_number' => $afternoonParticipantNumber, 'afternoon_access_number' => $afternoonAccessNumber, 'afternoon_total_duration' => $afternoonTotalDuration, 'night_participants_number' => $nightParticipantsNumber, 'night_access_number' => $nightAccessNumber, 'night_total_duration' => $nightTotalDuration, 'attendees_count' => $attendeesCount, 'learning_activity_count' => $learningActivityCount, 'attempt_count' => $attemptCount, 'evaluation_activity_count' => $evaluationActivityCount, ]; $specialtyId = Database::insert($table, $params); if (empty($specialtyId)) { return [ "RESPUESTA_OBT_ACCION" => [ "CODIGO_RETORNO" => "-1", "ETIQUETA_ERROR" => "Problema base de datos - insertando datos de especialidad de la accion", "ACCION_FORMATIVA" => $crearAccionInputArray['ACCION_FORMATIVA'], ], ]; } if ($specialtyId) { $tableSpecialtyClassroom = Database::get_main_table('plugin_sepe_specialty_classroom'); $tableCenters = Database::get_main_table('plugin_sepe_centers'); foreach ($specialty->CENTROS_SESIONES_PRESENCIALES->CENTRO_PRESENCIAL as $centroList) { if (!is_array($centroList)) { $auxList = []; $auxList[] = $centroList; $centroList = $auxList; } foreach ($centroList as $centro) { $centerOrigin = $centro->ORIGEN_CENTRO; $centerCode = $centro->CODIGO_CENTRO; $sql = "SELECT id FROM $tableCenters WHERE center_origin='".$centerOrigin."' AND center_code='".$centerCode."';"; $res = Database::query($sql); if (Database::num_rows($res) > 0) { $aux_row = Database::fetch_assoc($res); $centerId = $aux_row['id']; } else { $sql = "INSERT INTO $tableCenters (center_origin, center_code) VALUES ('".$centerOrigin."','".$centerCode."');"; Database::query($sql); $centerId = Database::insert_id(); } $sql = "INSERT INTO $tableSpecialtyClassroom (specialty_id, center_id) VALUES ('".$specialtyId."','".$centerId."')"; Database::query($sql); $id = Database::insert_id(); if (empty($id)) { return [ "RESPUESTA_OBT_ACCION" => [ "CODIGO_RETORNO" => "-1", "ETIQUETA_ERROR" => "Problema base de datos - insertando centro presenciales", "ACCION_FORMATIVA" => $crearAccionInputArray['ACCION_FORMATIVA'], ], ]; } } } $tableTutors = Database::get_main_table('plugin_sepe_tutors'); $tableSpecialityTutors = Database::get_main_table('plugin_sepe_specialty_tutors'); if (!empty($specialty->TUTORES_FORMADORES)) { foreach ($specialty->TUTORES_FORMADORES as $tutorList) { if (!is_array($tutorList)) { $auxList = []; $auxList[] = $tutorList; $tutorList = $auxList; } foreach ($tutorList as $tutor) { $documentType = $tutor->ID_TUTOR->TIPO_DOCUMENTO; $documentNumber = $tutor->ID_TUTOR->NUM_DOCUMENTO; $documentLetter = $tutor->ID_TUTOR->LETRA_NIF; $tutorAccreditation = $tutor->ACREDITACION_TUTOR; $professionalExperience = $tutor->EXPERIENCIA_PROFESIONAL; $teachingCompetence = $tutor->COMPETENCIA_DOCENTE; $experienceTeleforming = $tutor->EXPERIENCIA_MODALIDAD_TELEFORMACION; $trainingTeleforming = $tutor->FORMACION_MODALIDAD_TELEFORMACION; /* check tutor not exists */ $sql = "SELECT id FROM $tableTutors WHERE document_type='".$documentType."' AND document_number='".$documentNumber."' AND document_letter='".$documentLetter."';"; $res = Database::query($sql); if (Database::num_rows($res) > 0) { $aux_row = Database::fetch_assoc($res); $tutorId = $aux_row['id']; } else { $sql = "INSERT INTO $tableTutors (document_type, document_number, document_letter) VALUES ('".$documentType."','".$documentNumber."','".$documentLetter."');"; Database::query($sql); $tutorId = Database::insert_id(); } if (empty($tutorId)) { return [ "RESPUESTA_OBT_ACCION" => [ "CODIGO_RETORNO" => "-1", "ETIQUETA_ERROR" => "Problema base de datos - insertando tutores", "ACCION_FORMATIVA" => $crearAccionInputArray['ACCION_FORMATIVA'], ], ]; } $sql = "INSERT INTO $tableSpecialityTutors (specialty_id, tutor_id, tutor_accreditation, professional_experience, teaching_competence, experience_teleforming, training_teleforming) VALUES ('".$specialtyId."','".$tutorId."','".$tutorAccreditation."','".$professionalExperience."','".$teachingCompetence."','".$experienceTeleforming."','".$trainingTeleforming."');"; Database::query($sql); } } } } } } // DATOS PARTICIPANTES $tableParticipants = Database::get_main_table('plugin_sepe_participants'); $tableTutorsCompany = Database::get_main_table('plugin_sepe_tutors_company'); $participants = $crearAccionInput->ACCION_FORMATIVA->PARTICIPANTES; foreach ($participants as $participantList) { if (!is_array($participantList)) { $auxList = []; $auxList[] = $participantList; $participantList = $auxList; } foreach ($participantList as $participant) { $documentType = $participant->ID_PARTICIPANTE->TIPO_DOCUMENTO; $documentNumber = $participant->ID_PARTICIPANTE->NUM_DOCUMENTO; $documentLetter = $participant->ID_PARTICIPANTE->LETRA_NIF; $keyCompetence = $participant->INDICADOR_COMPETENCIAS_CLAVE; $contractId = null; $companyFiscalNumber = null; $documentTypeCompany = null; $documentNumberCompany = null; $documentLetterCompany = null; $documentTypeTraining = null; $documentNumberTraining = null; $documentLetterTraining = null; $tutorIdCompany = null; $tutorIdTraining = null; if (isset($participant->CONTRATO_FORMACION)) { $contractId = isset($participant->CONTRATO_FORMACION->ID_CONTRATO_CFA) ? $participant->CONTRATO_FORMACION->ID_CONTRATO_CFA : null; $companyFiscalNumber = isset($participant->CONTRATO_FORMACION->CIF_EMPRESA) ? $participant->CONTRATO_FORMACION->CIF_EMPRESA : null; $documentTypeCompany = isset($participant->CONTRATO_FORMACION->ID_TUTOR_EMPRESA->TIPO_DOCUMENTO) ? $participant->CONTRATO_FORMACION->ID_TUTOR_EMPRESA->TIPO_DOCUMENTO : null; $documentNumberCompany = isset($participant->CONTRATO_FORMACION->ID_TUTOR_EMPRESA->NUM_DOCUMENTO) ? $participant->CONTRATO_FORMACION->ID_TUTOR_EMPRESA->NUM_DOCUMENTO : null; $documentLetterCompany = isset($participant->CONTRATO_FORMACION->ID_TUTOR_EMPRESA->LETRA_NIF) ? $participant->CONTRATO_FORMACION->ID_TUTOR_EMPRESA->LETRA_NIF : null; if (!empty($documentTypeCompany) || !empty($documentNumberCompany) || !empty($documentLetterCompany)) { $tmp_e = Database::query('SELECT id FROM '.$tableTutorsCompany.' WHERE document_type="'.$documentTypeCompany.'" AND document_number="'.$documentNumberCompany.'" AND document_letter="'.$documentLetterCompany.'";'); if (Database::num_rows($tmp_e) > 0) { $row_tmp = Database::fetch_assoc($tmp_e); $tutorIdCompany = $row_tmp['id']; Database::query("UPDATE $tableTutorsCompany SET company='1' WHERE id='".$tutorIdCompany."'"); } else { $params_tmp = [ 'document_type' => $documentTypeCompany, 'document_number' => $documentNumberCompany, 'document_letter' => $documentLetterCompany, 'company' => '1', ]; $tutorIdCompany = Database::insert($tableTutorsCompany, $params_tmp); } } $documentTypeTraining = isset($participant->CONTRATO_FORMACION->ID_TUTOR_FORMACION->TIPO_DOCUMENTO) ? $participant->CONTRATO_FORMACION->ID_TUTOR_FORMACION->TIPO_DOCUMENTO : null; $documentNumberTraining = isset($participant->CONTRATO_FORMACION->ID_TUTOR_FORMACION->NUM_DOCUMENTO) ? $participant->CONTRATO_FORMACION->ID_TUTOR_FORMACION->NUM_DOCUMENTO : null; $documentLetterTraining = isset($participant->CONTRATO_FORMACION->ID_TUTOR_FORMACION->LETRA_NIF) ? $participant->CONTRATO_FORMACION->ID_TUTOR_FORMACION->LETRA_NIF : null; if (!empty($documentTypeTraining) || !empty($documentNumberTraining) || !empty($documentLetterTraining)) { $tmp_f = Database::query( ' SELECT id FROM '.$tableTutorsCompany.' WHERE document_type="'.$documentTypeTraining.'" AND document_number="'.$documentNumberTraining.'" AND document_letter="'.$documentLetterTraining.'";' ); if (Database::num_rows($tmp_f) > 0) { $row_tmp = Database::fetch_assoc($tmp_f); $tutorIdTraining = $row_tmp['id']; Database::query("UPDATE $tableTutorsCompany SET training='1' WHERE id='".$tutorIdTraining."'"); } else { $params_tmp = [ 'document_type' => $documentTypeTraining, 'document_number' => $documentNumberTraining, 'document_letter' => $documentLetterTraining, 'training' => '1', ]; $tutorIdTraining = Database::insert($tableTutorsCompany, $params_tmp); } } } $params = [ 'action_id' => $actionId, 'document_type' => $documentType, 'document_number' => $documentNumber, 'document_letter' => $documentLetter, 'key_competence' => $keyCompetence, 'contract_id' => $contractId, 'company_fiscal_number' => $companyFiscalNumber, 'company_tutor_id' => $tutorIdCompany, 'training_tutor_id' => $tutorIdTraining, ]; $participantId = Database::insert($tableParticipants, $params); if (empty($participantId)) { return [ "RESPUESTA_OBT_ACCION" => [ "CODIGO_RETORNO" => "-1", "ETIQUETA_ERROR" => "Problema base de datos - insertando participantes", "ACCION_FORMATIVA" => $crearAccionInputArray['ACCION_FORMATIVA'], ], ]; } $participantId = Database::insert_id(); foreach ($participant->ESPECIALIDADES_PARTICIPANTE as $valueList) { if (!is_array($participantList)) { $auxList = []; $auxList[] = $valueList; $valueList = $auxList; } foreach ($valueList as $value) { $specialtyOrigin = null; $professionalArea = null; $specialtyCode = null; if (isset($value->ID_ESPECIALIDAD)) { $specialtyOrigin = $value->ID_ESPECIALIDAD->ORIGEN_ESPECIALIDAD; $professionalArea = $value->ID_ESPECIALIDAD->AREA_PROFESIONAL; $specialtyCode = $value->ID_ESPECIALIDAD->CODIGO_ESPECIALIDAD; } $registrationDate = $value->FECHA_ALTA; $leavingDate = $value->FECHA_BAJA; $centerOrigin = null; $centerCode = null; $startDate = null; $endDate = null; if (!empty($value->EVALUACION_FINAL)) { $startDate = isset($value->EVALUACION_FINAL->FECHA_INICIO) ? $value->EVALUACION_FINAL->FECHA_INICIO : null; $endDate = isset($value->EVALUACION_FINAL->FECHA_FIN) ? $value->EVALUACION_FINAL->FECHA_FIN : null; if (!empty($value->EVALUACION_FINAL->CENTRO_PRESENCIAL_EVALUACION)) { $centerOrigin = $value->EVALUACION_FINAL->CENTRO_PRESENCIAL_EVALUACION->ORIGEN_CENTRO; $centerCode = $value->EVALUACION_FINAL->CENTRO_PRESENCIAL_EVALUACION->CODIGO_CENTRO; } } $finalResult = null; $finalQualification = null; $finalScore = null; if (isset($value->RESULTADOS)) { $finalResult = isset($value->RESULTADOS->RESULTADO_FINAL) ? $value->RESULTADOS->RESULTADO_FINAL : null; $finalQualification = isset($value->RESULTADOS->CALIFICACION_FINAL) ? $value->RESULTADOS->CALIFICACION_FINAL : null; $finalScore = isset($value->RESULTADOS->PUNTUACION_FINAL) ? $value->RESULTADOS->PUNTUACION_FINAL : null; } $registrationDate = self::fixDate($registrationDate); $leavingDate = self::fixDate($leavingDate); $startDate = self::fixDate($startDate); $endDate = self::fixDate($endDate); $table_aux = Database::get_main_table('plugin_sepe_participants_specialty'); $sql = "INSERT INTO $table_aux (participant_id,specialty_origin,professional_area,specialty_code,registration_date,leaving_date,center_origin,center_code,start_date,end_date,final_result,final_qualification,final_score) VALUES ('".$participantId."','".$specialtyOrigin."','".$professionalArea."','".$specialtyCode."','".$registrationDate."','".$leavingDate."','".$centerOrigin."','".$centerCode."','".$startDate."','".$endDate."','".$finalResult."','".$finalQualification."','".$finalScore."');"; Database::query($sql); $participantSpecialtyId = Database::insert_id(); if (empty($participantSpecialtyId)) { return [ "RESPUESTA_OBT_ACCION" => [ "CODIGO_RETORNO" => "-1", "ETIQUETA_ERROR" => "Problema base de datos - insertando especialidad participante", "ACCION_FORMATIVA" => $crearAccionInputArray['ACCION_FORMATIVA'], ], ]; } foreach ($value->TUTORIAS_PRESENCIALES as $tutorialList) { if (!is_array($tutorialList)) { $auxList = []; $auxList[] = $tutorialList; $tutorialList = $auxList; } foreach ($tutorialList as $tutorial) { $centerOrigin = $tutorial->CENTRO_PRESENCIAL_TUTORIA->ORIGEN_CENTRO; $centerCode = $tutorial->CENTRO_PRESENCIAL_TUTORIA->CODIGO_CENTRO; $startDate = $tutorial->FECHA_INICIO; $endDate = $tutorial->FECHA_FIN; $startDate = self::fixDate($startDate); $endDate = self::fixDate($endDate); $table_aux2 = Database::get_main_table('plugin_sepe_participants_specialty_tutorials'); $sql = "INSERT INTO $table_aux2 (participant_specialty_id,center_origin,center_code,start_date,end_date) VALUES ('".$participantSpecialtyId."','".$centerOrigin."','".$centerCode."','".$startDate."','".$endDate."');"; $rs = Database::query($sql); if (!$rs) { return [ "RESPUESTA_OBT_ACCION" => [ "CODIGO_RETORNO" => "-1", "ETIQUETA_ERROR" => "Problema base de datos - insertando tutorias presenciales participante", "ACCION_FORMATIVA" => $crearAccionInputArray['ACCION_FORMATIVA'], ], ]; } } } } } } } $obtenerAccionInput = new stdClass(); $obtenerAccionInput->ID_ACCION = new stdClass(); $obtenerAccionInput->ID_ACCION->ORIGEN_ACCION = $actionOrigin; $obtenerAccionInput->ID_ACCION->CODIGO_ACCION = $actionCode; $result = self::obtenerAccion($obtenerAccionInput); return $result; } public function obtenerAccion($obtenerAccionInput) { /* Tracking Log */ $tableLog = Database::get_main_table('plugin_sepe_log'); $paramsLog = [ 'ip' => $_SERVER['REMOTE_ADDR'], 'action' => "obtenerAccion", 'fecha' => date("Y-m-d H:i:s"), ]; Database::insert($tableLog, $paramsLog); /* End tracking log */ $actionOrigin = $obtenerAccionInput->ID_ACCION->ORIGEN_ACCION; $actionCode = $obtenerAccionInput->ID_ACCION->CODIGO_ACCION; if (empty($actionOrigin) || empty($actionCode)) { return [ "RESPUESTA_OBT_ACCION" => [ "CODIGO_RETORNO" => "2", "ETIQUETA_ERROR" => "Error en parametro", "ACCION_FORMATIVA" => "", ], ]; } $table = Database::get_main_table('plugin_sepe_actions'); $tableCenters = Database::get_main_table('plugin_sepe_centers'); $classRoomTable = Database::get_main_table('plugin_sepe_specialty_classroom'); $tutorTable = Database::get_main_table('plugin_sepe_tutors'); $specialityTutorTable = Database::get_main_table('plugin_sepe_specialty_tutors'); $participantsSpecialityTable = Database::get_main_table('plugin_sepe_participants_specialty'); $participantsSpecialityTutorialsTable = Database::get_main_table('plugin_sepe_participants_specialty_tutorials'); $tableTutorsCompany = Database::get_main_table('plugin_sepe_tutors_company'); // Comprobamos si existen datos almacenados previamente $sql = "SELECT * FROM $table WHERE action_origin='".$actionOrigin."' AND action_code='".$actionCode."';"; $rs = Database::query($sql); if (Database::num_rows($rs) > 0) { $row = Database::fetch_assoc($rs); $mainSpecialty = [ 'ORIGEN_ESPECIALIDAD' => $row['specialty_origin'], 'AREA_PROFESIONAL' => $row['professional_area'], 'CODIGO_ESPECIALIDAD' => $row['specialty_code'], ]; $actionDescription = [ 'DENOMINACION_ACCION' => $row['action_name'], 'INFORMACION_GENERAL' => $row['global_info'], 'HORARIOS' => $row['schedule'], 'REQUISITOS' => $row['requirements'], 'CONTACTO_ACCION' => $row['contact_action'], ]; $tableSpeciality = Database::get_main_table('plugin_sepe_specialty'); $tableParticipants = Database::get_main_table('plugin_sepe_participants'); $sql = "SELECT * FROM $tableSpeciality WHERE action_id ='".$row['id']."'"; $rs = Database::query($sql); $specialty = []; if (Database::num_rows($rs) > 0) { while ($aux = Database::fetch_assoc($rs)) { $specialtyId = $aux['id']; $sql = "SELECT * FROM $classRoomTable WHERE specialty_id='".$specialtyId."'"; $resultClassroom = Database::query($sql); if (Database::num_rows($resultClassroom) === 0) { return [ "RESPUESTA_OBT_ACCION" => [ "CODIGO_RETORNO" => "-1", "ETIQUETA_ERROR" => "Problema base de datos - consulta de centros presenciales", "ACCION_FORMATIVA" => '', ], ]; } $classroomCenterList = new ArrayObject(); while ($tmp = Database::fetch_assoc($resultClassroom)) { $sql = "SELECT * FROM $tableCenters WHERE id='".$tmp['center_id']."';"; $resultCenter = Database::query($sql); $auxCenter = Database::fetch_assoc($resultCenter); $classroomCenter = new stdClass(); $classroomCenter->ORIGEN_CENTRO = $auxCenter['center_origin']; $classroomCenter->CODIGO_CENTRO = $auxCenter['center_code']; $classroomCenter = new SoapVar( $classroomCenter, SOAP_ENC_OBJECT, null, null, 'CENTRO_PRESENCIAL' ); $classroomCenterList->append($classroomCenter); } $sql = "SELECT * FROM $specialityTutorTable WHERE specialty_id='".$specialtyId."'"; $resultSpecialtyTutor = Database::query($sql); $trainingTutors = new ArrayObject(); if (Database::num_rows($resultSpecialtyTutor)) { while ($tmp_aux = Database::fetch_assoc($resultSpecialtyTutor)) { $sql = "SELECT * FROM $tutorTable WHERE id='".$tmp_aux['tutor_id']."' LIMIT 1"; $rs_tutor = Database::query($sql); if (Database::num_rows($rs_tutor)) { $tmp = Database::fetch_assoc($rs_tutor); $obj = new stdClass(); $obj->ID_TUTOR = new stdClass(); $obj->ID_TUTOR->TIPO_DOCUMENTO = $tmp['document_type']; $obj->ID_TUTOR->NUM_DOCUMENTO = $tmp['document_number']; $obj->ID_TUTOR->LETRA_NIF = $tmp['document_letter']; $obj->ACREDITACION_TUTOR = $tmp_aux['tutor_accreditation']; $obj->EXPERIENCIA_PROFESIONAL = $tmp_aux['professional_experience']; $obj->COMPETENCIA_DOCENTE = $tmp_aux['teaching_competence']; $obj->EXPERIENCIA_MODALIDAD_TELEFORMACION = $tmp_aux['experience_teleforming']; $obj->FORMACION_MODALIDAD_TELEFORMACION = $tmp_aux['training_teleforming']; $obj = new SoapVar($obj, SOAP_ENC_OBJECT, null, null, 'TUTOR_FORMADOR'); $trainingTutors->append($obj); } } } $params = new ArrayObject(); $idEspecialidad = new stdClass(); $idEspecialidad->ORIGEN_ESPECIALIDAD = $aux['specialty_origin']; $idEspecialidad->AREA_PROFESIONAL = $aux['professional_area']; $idEspecialidad->CODIGO_ESPECIALIDAD = $aux['specialty_code']; $params[0] = new SoapVar( $idEspecialidad, SOAP_ENC_OBJECT, null, null, 'ID_ESPECIALIDAD', null ); $centroImparticion = new stdClass(); $centroImparticion->ORIGEN_CENTRO = $aux['center_origin']; $centroImparticion->CODIGO_CENTRO = $aux['center_code']; $params[1] = new SoapVar( $centroImparticion, SOAP_ENC_OBJECT, null, null, 'CENTRO_IMPARTICION', null ); $params[2] = new SoapVar( self::undoFixDate($aux['start_date']), XSD_STRING, null, null, 'FECHA_INICIO', null ); $params[3] = new SoapVar( self::undoFixDate($aux['end_date']), XSD_STRING, null, null, 'FECHA_FIN', null ); $params[4] = new SoapVar( $aux['modality_impartition'], XSD_STRING, null, null, 'MODALIDAD_IMPARTICION', null ); $obj = new stdClass(); $obj->HORAS_PRESENCIAL = $aux['classroom_hours']; $obj->HORAS_TELEFORMACION = $aux['distance_hours']; $params[5] = new SoapVar( $obj, SOAP_ENC_OBJECT, null, null, 'DATOS_DURACION', null ); $params[6] = new SoapVar( $classroomCenterList, SOAP_ENC_OBJECT, null, null, 'CENTROS_SESIONES_PRESENCIALES', null ); $params[7] = new SoapVar( $trainingTutors, SOAP_ENC_OBJECT, null, null, 'TUTORES_FORMADORES', null ); $obj = new stdClass(); if (!empty($aux['mornings_participants_number']) || !empty($aux['mornings_access_number']) || !empty($aux['morning_total_duration']) ) { $obj->HORARIO_MANANA = new stdClass(); $obj->HORARIO_MANANA->NUM_PARTICIPANTES = $aux['mornings_participants_number']; $obj->HORARIO_MANANA->NUMERO_ACCESOS = $aux['mornings_access_number']; $obj->HORARIO_MANANA->DURACION_TOTAL = $aux['morning_total_duration']; } if (!empty($aux['afternoon_participants_number']) || !empty($aux['afternoon_access_number']) || !empty($aux['afternoon_total_duration']) ) { $obj->HORARIO_TARDE = new stdClass(); $obj->HORARIO_TARDE->NUM_PARTICIPANTES = $aux['afternoon_participants_number']; $obj->HORARIO_TARDE->NUMERO_ACCESOS = $aux['afternoon_access_number']; $obj->HORARIO_TARDE->DURACION_TOTAL = $aux['afternoon_total_duration']; } if (!empty($aux['night_participants_number']) || !empty($aux['night_access_number']) || !empty($aux['night_total_duration']) ) { $obj->HORARIO_NOCHE = new stdClass(); $obj->HORARIO_NOCHE->NUM_PARTICIPANTES = $aux['night_participants_number']; $obj->HORARIO_NOCHE->NUMERO_ACCESOS = $aux['night_access_number']; $obj->HORARIO_NOCHE->DURACION_TOTAL = $aux['night_total_duration']; } if (!empty($aux['attendees_count']) || !empty($aux['learning_activity_count']) || !empty($aux['attempt_count']) || !empty($aux['evaluation_activity_count']) ) { $obj->SEGUIMIENTO_EVALUACION = new stdClass(); $obj->SEGUIMIENTO_EVALUACION->NUM_PARTICIPANTES = $aux['attendees_count']; $obj->SEGUIMIENTO_EVALUACION->NUMERO_ACTIVIDADES_APRENDIZAJE = $aux['learning_activity_count']; $obj->SEGUIMIENTO_EVALUACION->NUMERO_INTENTOS = $aux['attempt_count']; $obj->SEGUIMIENTO_EVALUACION->NUMERO_ACTIVIDADES_EVALUACION = $aux['evaluation_activity_count']; } $params[8] = new SoapVar( $obj, SOAP_ENC_OBJECT, null, null, 'USO', null ); $specialty[] = new SoapVar( $params, SOAP_ENC_OBJECT, null, null, 'ESPECIALIDAD' ); } } else { return [ "RESPUESTA_OBT_ACCION" => [ "CODIGO_RETORNO" => "-1", "ETIQUETA_ERROR" => "Problema base de datos - consulta especialidad de accion", "ACCION_FORMATIVA" => '', ], ]; } $sql = "SELECT * FROM $tableParticipants WHERE action_id ='".$row['id']."'"; $resultParticipants = Database::query($sql); $specialtyMainParticipant = []; if (Database::num_rows($resultParticipants)) { while ($aux = Database::fetch_assoc($resultParticipants)) { $participantId = $aux['id']; $sql = "SELECT * FROM $participantsSpecialityTable WHERE participant_id='".$participantId."'"; $resultParticipantSpecialty = Database::query($sql); $namespace = null; $specialtyParticipant = []; while ($tmp = Database::fetch_assoc($resultParticipantSpecialty)) { $participantSpecialtyId = $tmp['id']; $sql = "SELECT * FROM $participantsSpecialityTutorialsTable WHERE participant_specialty_id='".$participantSpecialtyId."'"; $resultTutorials = Database::query($sql); $classroomTutorials = new ArrayObject(); while ($tmp2 = Database::fetch_assoc($resultTutorials)) { $obj = new stdClass(); $obj->CENTRO_PRESENCIAL_TUTORIA = new stdClass(); $obj->CENTRO_PRESENCIAL_TUTORIA->ORIGEN_CENTRO = $tmp2['center_origin']; $obj->CENTRO_PRESENCIAL_TUTORIA->CODIGO_CENTRO = $tmp2['center_code']; $startDate = self::undoFixDate($tmp2['start_date']); if (!empty($startDate)) { $obj->FECHA_INICIO = $startDate; } $endDate = self::undoFixDate($tmp2['end_date']); if (!empty($endDate)) { $obj->FECHA_FIN = $endDate; } $obj = new SoapVar( $obj, SOAP_ENC_OBJECT, null, null, 'TUTORIA_PRESENCIAL' ); $classroomTutorials->append($obj); } $obj = new stdClass(); $obj->ID_ESPECIALIDAD = new stdClass(); $obj->ID_ESPECIALIDAD->ORIGEN_ESPECIALIDAD = $tmp['specialty_origin']; $obj->ID_ESPECIALIDAD->AREA_PROFESIONAL = $tmp['professional_area']; $obj->ID_ESPECIALIDAD->CODIGO_ESPECIALIDAD = $tmp['specialty_code']; $registrationDate = self::undoFixDate($tmp['registration_date']); // @todo check which is correct send 0000/00/00 or empty if (!empty($registrationDate)) { $obj->FECHA_ALTA = $registrationDate; } $leavingDate = self::undoFixDate($tmp['leaving_date']); if (!empty($leavingDate)) { $obj->FECHA_BAJA = $leavingDate; } $obj->TUTORIAS_PRESENCIALES = new SoapVar( $classroomTutorials, SOAP_ENC_OBJECT, null, null, 'TUTORIAS_PRESENCIALES', null ); $obj->EVALUACION_FINAL = new stdClass(); if (!empty($tmp['center_origin']) && !empty($tmp['center_code'])) { $obj->EVALUACION_FINAL->CENTRO_PRESENCIAL_EVALUACION = new stdClass(); $obj->EVALUACION_FINAL->CENTRO_PRESENCIAL_EVALUACION->ORIGEN_CENTRO = $tmp['center_origin']; $obj->EVALUACION_FINAL->CENTRO_PRESENCIAL_EVALUACION->CODIGO_CENTRO = $tmp['center_code']; } $startDate = self::undoFixDate($tmp['start_date']); if (!empty($startDate)) { $obj->EVALUACION_FINAL->FECHA_INICIO = $startDate; } $endDate = self::undoFixDate($tmp['end_date']); if (!empty($endDate)) { $obj->EVALUACION_FINAL->FECHA_FIN = $endDate; } $obj->RESULTADOS = new stdClass(); if (isset($tmp['final_result']) && $tmp['final_result'] != '') { $obj->RESULTADOS->RESULTADO_FINAL = $tmp['final_result']; } if (isset($tmp['final_qualification']) && $tmp['final_qualification'] != '') { $obj->RESULTADOS->CALIFICACION_FINAL = $tmp['final_qualification']; } if (isset($tmp['final_score']) && $tmp['final_score'] != '') { $obj->RESULTADOS->PUNTUACION_FINAL = $tmp['final_score']; } $specialtyParticipant[] = new SoapVar( $obj, SOAP_ENC_OBJECT, null, null, 'ESPECIALIDAD' ); } $params = new stdClass(); $params->ID_PARTICIPANTE = new stdClass(); $params->ID_PARTICIPANTE->TIPO_DOCUMENTO = $aux['document_type']; $params->ID_PARTICIPANTE->NUM_DOCUMENTO = $aux['document_number']; $params->ID_PARTICIPANTE->LETRA_NIF = $aux['document_letter']; $params->INDICADOR_COMPETENCIAS_CLAVE = $aux['key_competence']; $params->CONTRATO_FORMACION = new stdClass(); if (!empty($aux['contract_id'])) { $params->CONTRATO_FORMACION->ID_CONTRATO_CFA = $aux['contract_id']; } if (!empty($aux['company_fiscal_number'])) { $params->CONTRATO_FORMACION->CIF_EMPRESA = $aux['company_fiscal_number']; } if (!empty($aux['company_tutor_id'])) { $resultCompany = Database::query("SELECT * FROM $tableTutorsCompany WHERE id='".$aux['company_tutor_id']."';"); $auxCompany = Database::fetch_assoc($resultCompany); if (!empty($auxCompany['document_type']) || !empty($auxCompany['document_number']) || !empty($auxCompany['document_letter']) ) { $params->CONTRATO_FORMACION->ID_TUTOR_EMPRESA = new stdClass(); $params->CONTRATO_FORMACION->ID_TUTOR_EMPRESA->TIPO_DOCUMENTO = $auxCompany['document_type']; $params->CONTRATO_FORMACION->ID_TUTOR_EMPRESA->NUM_DOCUMENTO = $auxCompany['document_number']; $params->CONTRATO_FORMACION->ID_TUTOR_EMPRESA->LETRA_NIF = $auxCompany['document_letter']; } } if (!empty($aux['training_tutor_id'])) { $resultTraining = Database::query("SELECT * FROM $tableTutorsCompany WHERE id='".$aux['training_tutor_id']."';"); $auxTraining = Database::fetch_assoc($resultTraining); if (!empty($auxTraining['document_type']) || !empty($auxTraining['document_number']) || !empty($auxTraining['document_letter']) ) { $params->CONTRATO_FORMACION->ID_TUTOR_FORMACION = new stdClass(); $params->CONTRATO_FORMACION->ID_TUTOR_FORMACION->TIPO_DOCUMENTO = $auxTraining['document_type']; $params->CONTRATO_FORMACION->ID_TUTOR_FORMACION->NUM_DOCUMENTO = $auxTraining['document_number']; $params->CONTRATO_FORMACION->ID_TUTOR_FORMACION->LETRA_NIF = $auxTraining['document_letter']; } } $params->ESPECIALIDADES_PARTICIPANTE = new SoapVar( $specialtyParticipant, SOAP_ENC_OBJECT, null, null, 'ESPECIALIDADES_PARTICIPANTE' ); $specialtyMainParticipant[] = new SoapVar( $params, SOAP_ENC_OBJECT, null, null, 'PARTICIPANTE' ); } } $result = new stdClass(); $result->RESPUESTA_OBT_ACCION = new stdClass(); $result->RESPUESTA_OBT_ACCION->CODIGO_RETORNO = 0; $result->RESPUESTA_OBT_ACCION->ETIQUETA_ERROR = 'Correcto'; $result->RESPUESTA_OBT_ACCION->ACCION_FORMATIVA = new stdClass(); $result->RESPUESTA_OBT_ACCION->ACCION_FORMATIVA->ID_ACCION = new stdClass(); $result->RESPUESTA_OBT_ACCION->ACCION_FORMATIVA->ID_ACCION->ORIGEN_ACCION = $actionOrigin; $result->RESPUESTA_OBT_ACCION->ACCION_FORMATIVA->ID_ACCION->CODIGO_ACCION = $actionCode; $result->RESPUESTA_OBT_ACCION->ACCION_FORMATIVA->SITUACION = $row['situation']; $result->RESPUESTA_OBT_ACCION->ACCION_FORMATIVA->ID_ESPECIALIDAD_PRINCIPAL = $mainSpecialty; $result->RESPUESTA_OBT_ACCION->ACCION_FORMATIVA->DURACION = $row['duration']; $result->RESPUESTA_OBT_ACCION->ACCION_FORMATIVA->FECHA_INICIO = self::undoFixDate($row['start_date']); $result->RESPUESTA_OBT_ACCION->ACCION_FORMATIVA->FECHA_FIN = self::undoFixDate($row['end_date']); $result->RESPUESTA_OBT_ACCION->ACCION_FORMATIVA->IND_ITINERARIO_COMPLETO = $row['full_itinerary_indicator']; $result->RESPUESTA_OBT_ACCION->ACCION_FORMATIVA->TIPO_FINANCIACION = $row['financing_type']; $result->RESPUESTA_OBT_ACCION->ACCION_FORMATIVA->NUMERO_ASISTENTES = $row['attendees_count']; $result->RESPUESTA_OBT_ACCION->ACCION_FORMATIVA->DESCRIPCION_ACCION = $actionDescription; $result->RESPUESTA_OBT_ACCION->ACCION_FORMATIVA->ESPECIALIDADES_ACCION = $specialty; $result->RESPUESTA_OBT_ACCION->ACCION_FORMATIVA->PARTICIPANTES = $specialtyMainParticipant; return $result; } else { // Existe la accion return [ "RESPUESTA_OBT_ACCION" => [ "CODIGO_RETORNO" => "1", "ETIQUETA_ERROR" => "Acción inexistente", "ACCION_FORMATIVA" => "", ], ]; } } public function obtenerListaAcciones() { /* Tracking Log */ $tableLog = Database::get_main_table('plugin_sepe_log'); $paramsLog = [ 'ip' => $_SERVER['REMOTE_ADDR'], 'action' => "obtenerListaAcciones", 'fecha' => date("Y-m-d H:i:s"), ]; Database::insert($tableLog, $paramsLog); /* End tracking log */ $table = Database::get_main_table('plugin_sepe_actions'); $sql = "SELECT action_origin, action_code FROM $table"; $rs = Database::query($sql); if (!$rs) { error_log('Problema base de datos '); return [ "RESPUESTA_OBT_LISTA_ACCIONES" => [ "CODIGO_RETORNO" => "-1", "ETIQUETA_ERROR" => "Problema base de datos - consulta acciones disponible", "LISTA_ACCIONES" => '', ], ]; } $list = []; if (Database::num_rows($rs)) { while ($row = Database::fetch_assoc($rs)) { $params = new stdClass(); $params->ORIGEN_ACCION = $row['action_origin']; $params->CODIGO_ACCION = $row['action_code']; $list[] = new SoapVar($params, SOAP_ENC_OBJECT); } } $result = new stdClass(); $result->RESPUESTA_OBT_LISTA_ACCIONES = new stdClass(); $result->RESPUESTA_OBT_LISTA_ACCIONES->CODIGO_RETORNO = 0; $result->RESPUESTA_OBT_LISTA_ACCIONES->ETIQUETA_ERROR = 'Correcto'; if (!empty($list)) { $result->RESPUESTA_OBT_LISTA_ACCIONES->ID_ACCION = $list; } return $result; } public function eliminarAccion($eliminarAccionInput) { /* Tracking Log */ $tableLog = Database::get_main_table('plugin_sepe_log'); $paramsLog = [ 'ip' => $_SERVER['REMOTE_ADDR'], 'action' => "eliminarAccion", 'fecha' => date("Y-m-d H:i:s"), ]; Database::insert($tableLog, $paramsLog); /* End tracking log */ $actionOrigin = $eliminarAccionInput->ID_ACCION->ORIGEN_ACCION; $actionCode = $eliminarAccionInput->ID_ACCION->CODIGO_ACCION; if (empty($actionOrigin) || empty($actionCode)) { return [ "RESPUESTA_ELIMINAR_ACCION" => [ "CODIGO_RETORNO" => "2", "ETIQUETA_ERROR" => "Error en parametro", ], ]; } $table = Database::get_main_table('plugin_sepe_actions'); $sql = "DELETE FROM $table WHERE action_origin='".$actionOrigin."' AND action_code='".$actionCode."';"; $rs = Database::query($sql); if (!$rs) { return [ "RESPUESTA_ELIMINAR_ACCION" => [ "CODIGO_RETORNO" => "-1", "ETIQUETA_ERROR" => "Problema base de datos - consulta acciones disponible", ], ]; } return [ "RESPUESTA_ELIMINAR_ACCION" => [ "CODIGO_RETORNO" => "0", "ETIQUETA_ERROR" => "Correcto", ], ]; } // yyyy-mm-dd to dd/mm/yyyy public static function undoFixDate($date) { if ($date == '0000-00-00' || empty($date)) { return null; } $date = explode('-', $date); $date = $date[2].'/'.$date[1].'/'.$date[0]; return $date; } // dd/mm/yyyy to yyyy-mm-dd public static function fixDate($date) { if ($date == '00/00/0000' || empty($date)) { return null; } $date = explode('/', $date); // Year-month-day $date = $date[2].'-'.$date[1].'-'.$date[0]; return $date; } protected function checkAuth() { if (!$this->authenticated) { error_log('403'); } } }