123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314 |
- <?php
- /**
- * Class Sepe.
- */
- class Sepe
- {
- /**
- * @param crearCentroInput[] $crearCentroInput
- *
- * @return array
- */
- public function crearCentro($crearCentroInput)
- {
- /* Tracking log */
- $tableLog = Database::get_main_table('plugin_sepe_log');
- $paramsLog = [
- 'ip' => $_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');
- }
- }
- }
|