public IHttpActionResult PostTblEmpleados(TblEmpleados tblEmpleados) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.TblEmpleados.Add(tblEmpleados); try { db.SaveChanges(); } catch (DbUpdateException) { if (TblEmpleadosExists(tblEmpleados.cedula)) { return(Conflict()); } else { throw; } } return(CreatedAtRoute("DefaultApi", new { id = tblEmpleados.cedula }, tblEmpleados)); }
public IHttpActionResult PutTblEmpleados(decimal id, TblEmpleados tblEmpleados) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != tblEmpleados.cedula) { return(BadRequest()); } db.Entry(tblEmpleados).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!TblEmpleadosExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public ActionResult DeleteConfirmed(int id) { TblEmpleados tblEmpleados = db.Empleados.Find(id); db.Empleados.Remove(tblEmpleados); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "IdEmpleado,Nombre,Apellido,Edad,Dui,Nit,Direccion,Telefono,Celular,Sexo,EstadoCivil,Cargo")] TblEmpleados tblEmpleados) { if (ModelState.IsValid) { db.Entry(tblEmpleados).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(tblEmpleados)); }
public IHttpActionResult GetTblEmpleados(decimal id) { TblEmpleados tblEmpleados = db.TblEmpleados.Find(id); if (tblEmpleados == null) { return(NotFound()); } return(Ok(tblEmpleados)); }
// GET: Empleados/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } TblEmpleados tblEmpleados = db.Empleados.Find(id); if (tblEmpleados == null) { return(HttpNotFound()); } return(View(tblEmpleados)); }
public IHttpActionResult DeleteTblEmpleados(decimal id) { TblEmpleados tblEmpleados = db.TblEmpleados.Find(id); if (tblEmpleados == null) { return(NotFound()); } db.TblEmpleados.Remove(tblEmpleados); db.SaveChanges(); return(Ok(tblEmpleados)); }
public ActionResult AgregarOEditar(int id = 0) { TblEmpleados resultado = new TblEmpleados(); try { if (id != 0) { using (ConexionEntities db = new ConexionEntities()) { resultado = db.TblEmpleado.Find(id); } } } catch (Exception ex) { throw ex; } return(View(resultado)); }
public ActionResult AgregarOEditar(TblEmpleados _Empleado) { try { if (_Empleado.IdEmpleado == 0) { using (ConexionEntities db = new ConexionEntities()) { db.TblEmpleado.Add(_Empleado); db.SaveChanges(); } return(Json(new { success = true, message = "Registro Exitoso" }, JsonRequestBehavior.AllowGet)); } else { using (ConexionEntities db = new ConexionEntities()) { var _modificar = db.TblEmpleado.Find(_Empleado.IdEmpleado); if (_modificar != null) { _modificar.Nombres = _Empleado.Nombres; _modificar.Apellidos = _Empleado.Apellidos; _modificar.Edad = _Empleado.Edad; _modificar.Oficio = _Empleado.Oficio; _modificar.Salario = _Empleado.Salario; db.SaveChanges(); } } return(Json(new { success = true, message = "Registro Actualizado" }, JsonRequestBehavior.AllowGet)); } } catch (Exception ex) { return(Json(new { success = false, message = ex.Message }, JsonRequestBehavior.AllowGet)); } }
private void Ejecutar() { IConfiguration config = ConfigHelper.GetConfiguration(); #region Descargar y guardar fichero del FTP //string servidorftp = "ftp://gentalia.ddns.net/SincronizadorDE/DATOSLOGA_V2.xls"; string servidorftp = config["FTPLoga"]; string usuario = config["FTPuser"]; string password = config["FTPPassword"]; string carpetaDestino = config["RutaFileTemp"];// "D:\\InOut"; string remoteFile = config["FileLoga"]; string fileName = remoteFile.Substring(remoteFile.LastIndexOf("/") + 1); int NumberOfRetries = Convert.ToInt16(config["CantDeReintentos"]); int DelayOnRetry = 1000; DownloadFile(servidorftp, remoteFile, usuario, password, carpetaDestino); for (int i = 1; i <= NumberOfRetries; ++i) { try { _listaLoga = ProcessLOGAWorkbook(carpetaDestino + "\\" + fileName); Log("Fichero LOGA procesado"); break; // When done we can break loop } catch (IOException ex) when(i <= NumberOfRetries) { // You may check error code to filter some exceptions, not every error // can be recovered. System.Threading.Thread.Sleep(DelayOnRetry); if (i == NumberOfRetries) { Log("Error procesando el fichero LOGA: " + ex.ToString()); } } } if (Intervalo.nextTimeToExecute == 1) { //Si es la primera hora del día se intenta descargar el archivo de Absentismos remoteFile = config["FileAbsentismos"]; fileName = remoteFile.Substring(remoteFile.LastIndexOf("/") + 1); DownloadFile(servidorftp, remoteFile, usuario, password, carpetaDestino); for (int i = 1; i <= NumberOfRetries; ++i) { try { _listaAbsentismo = ProcessAbsentismosWorkbook(carpetaDestino + "\\" + fileName); Log("Fichero de Absentismos procesado"); break; // When done we can break loop } catch (IOException ex) when(i <= NumberOfRetries) { // You may check error code to filter some exceptions, not every error // can be recovered. System.Threading.Thread.Sleep(DelayOnRetry); if (i == NumberOfRetries) { Log("Error procesando el fichero de Absentismos: " + ex.ToString()); } } } } #endregion #region Salvar empleado en la base de datos si no existe try { TblEmpleados employeeFound; int encontrados = 0; int creados = 0; using (var context = new SINCRODEDBContext()) { int maxidEmp = context.TblEmpleados.Any() ? context.TblEmpleados.Max(e => e.IdEmp) : 0; Log("Salvando empleados en la BD SincroDE"); foreach (CamposLOGA campo in _listaLoga) { employeeFound = context.TblEmpleados.FirstOrDefault(s => s.DniEmp == campo.NifDni); //Si no encuentra el empleado lo inserta if (employeeFound != null) { employeeFound.NombreEmp = TruncateStr(campo.Nombre, 100); employeeFound.ApellidosEmp = TruncateStr(campo.Apellidos, 100); employeeFound.NumeroEmp = TruncateStr(campo.NoPersonal, 20); employeeFound.IdoracleEmp = TruncateStr(campo.IdOracle, 20); employeeFound.DniSuperior = TruncateStr(campo.DniSuperior, 20); employeeFound.CodcenEmp = TruncateStr(campo.CodigoCentro, 50); employeeFound.UbicenEmp = TruncateStr(campo.UbicacionCentroTrabajo, 30); employeeFound.CoddepEmp = TruncateStr(campo.CodigoDepartamento, 50); employeeFound.DescdepEmp = TruncateStr(campo.DescripcionCentroTrabajo, 50); employeeFound.PNRSupEmp = TruncateStr(campo.PNRSupEmp, 20); employeeFound.NombresupEmp = TruncateStr(campo.NombreResponsable, 50); employeeFound.ApellidossupEmp = TruncateStr(campo.ApellidosResponsable, 50); employeeFound.CodnegocioEmp = TruncateStr(campo.CodigoNegocio, 20); employeeFound.CodsociedadEmp = TruncateStr(campo.CodigoSociedad, 20); employeeFound.CodsubnegocioEmp = TruncateStr(campo.CodigoSubNegocio, 20); employeeFound.DesccentrabajoEmp = TruncateStr(campo.DescripcionCentroTrabajo, 50); employeeFound.Descnegocio = TruncateStr(campo.DescripcionNegocio, 50); employeeFound.DescsociedadEmp = TruncateStr(campo.DescripcionSociedad, 50); employeeFound.DescsubnegocioEmp = TruncateStr(campo.DescripcionSubNegocio, 50); employeeFound.JornlaboralDomingo = campo.JornadaLaboralDomingo; employeeFound.JornlaboralLunes = campo.JornadaLaboralLunes; employeeFound.JornlaboralMartes = campo.JornadaLaboralMartes; employeeFound.JornlaboralMiercoles = campo.JornadaLaboralMiercoles; employeeFound.JornlaboralJueves = campo.JornadaLaboralJueves; employeeFound.JornlaboralViernes = campo.JornadaLaboralViernes; employeeFound.JornlaboralSabado = campo.JornadaLaboralSabado; employeeFound.JornlaboralFestivo = campo.JornadaLaboralFestiva; employeeFound.PorcenjornadaEmp = campo.PorcentajeReduccionJornada; employeeFound.TipocontratoEmp = campo.TipoContrato; employeeFound.CodcontratoEmp = campo.CodContratoEmp; employeeFound.Ad = TruncateStr(campo.Ad, 50); employeeFound.CojornadaEmp = campo.CoJornadaEmp; employeeFound.EmailEmp = campo.EmailEmp; context.TblEmpleados.Update(employeeFound); encontrados++; } else { var empl = new TblEmpleados() { IdEmp = ++maxidEmp, NombreEmp = TruncateStr(campo.Nombre, 100), ApellidosEmp = TruncateStr(campo.Apellidos, 100), DniEmp = TruncateStr(campo.NifDni, 20), NumeroEmp = TruncateStr(campo.NoPersonal, 20), IdoracleEmp = TruncateStr(campo.IdOracle, 20), DniSuperior = TruncateStr(campo.DniSuperior, 20), CodcenEmp = TruncateStr(campo.CodigoCentro, 50), UbicenEmp = TruncateStr(campo.UbicacionCentroTrabajo, 30), CoddepEmp = TruncateStr(campo.CodigoDepartamento, 50), DescdepEmp = TruncateStr(campo.DescripcionCentroTrabajo, 50), PNRSupEmp = TruncateStr(campo.PNRSupEmp, 20), NombresupEmp = TruncateStr(campo.NombreResponsable, 50), ApellidossupEmp = TruncateStr(campo.ApellidosResponsable, 50), CodnegocioEmp = TruncateStr(campo.CodigoNegocio, 20), CodsociedadEmp = TruncateStr(campo.CodigoSociedad, 20), CodsubnegocioEmp = TruncateStr(campo.CodigoSubNegocio, 20), DesccentrabajoEmp = TruncateStr(campo.DescripcionCentroTrabajo, 50), Descnegocio = TruncateStr(campo.DescripcionNegocio, 50), DescsociedadEmp = TruncateStr(campo.DescripcionSociedad, 50), DescsubnegocioEmp = TruncateStr(campo.DescripcionSubNegocio, 50), JornlaboralDomingo = campo.JornadaLaboralDomingo, //TODO JornlaboralLunes = campo.JornadaLaboralLunes, //TODO JornlaboralMartes = campo.JornadaLaboralMartes, //TODO JornlaboralMiercoles = campo.JornadaLaboralMiercoles, //TODO JornlaboralJueves = campo.JornadaLaboralJueves, //TODO JornlaboralViernes = campo.JornadaLaboralViernes, //TODO JornlaboralSabado = campo.JornadaLaboralSabado, //TODO JornlaboralFestivo = campo.JornadaLaboralFestiva, //TODO PorcenjornadaEmp = campo.PorcentajeReduccionJornada, TipocontratoEmp = campo.TipoContrato, CodcontratoEmp = campo.CodContratoEmp, Ad = TruncateStr(campo.Ad, 50), CojornadaEmp = campo.CoJornadaEmp, EmailEmp = campo.EmailEmp }; context.TblEmpleados.Add(empl); creados++; } } context.SaveChanges(); Log("Total de empleados en el fichero LOGA: " + _listaLoga.Count + " Empleados encontrados: " + encontrados + " Empleados creados: " + creados); Log("Enviando empleados al WS de Evalos"); creados = 0; encontrados = 0; foreach (var empleado in context.TblEmpleados) { #region Consumir el WebService de Evalos para cada empleado que se crea var wsEvalosMethod = config["EvalosAccess"] + "employee"; string userEvalos = config["EvalosUser"]; string passwordEvalos = config["EvalosPassword"]; var tracews = "Get Employee: URL: " + wsEvalosMethod + " DNI: " + empleado.DniEmp; try { //string employee; //employee = WebServiceRest.GetEmployee(wsEvalosMethod, userEvalos, passwordEvalos, empleado.DniEmp); //Log("Se obtuvo el employee del WS: " + employee); //if (employee == null || employee == string.Empty || employee == "null") //{ string codigoKiosko = "000"; if (context.TblEmpleados.Any(e => e.DniSuperior == empleado.DniEmp)) { codigoKiosko = ObtenerCodigoSupervisor(empleado.DniEmp); } string emailEmp = string.IsNullOrEmpty(empleado.EmailEmp) || !IsValidEmail(empleado.EmailEmp) ? string.Empty : empleado.EmailEmp; //Mando a crear el empleado en Evalos //Creo el json con los datos q debo enviarle al ws var employeeData = new Employee { Code = empleado.DniEmp, Description = empleado.NombreEmp + " " + empleado.ApellidosEmp, CodeArea = empleado.UbicenEmp, CodeDepartment = empleado.CodnegocioEmp, CodeCompany = empleado.CodsociedadEmp, CodeSection = empleado.CodsubnegocioEmp, DateAdd = "20190901", CodeAccess = "999", CodeCorrection = "100", CodeSchedule = "1ES", CustomFields = new CustomField { EM_IDORACLE = empleado.IdoracleEmp, EM_NUMPERSO = empleado.NumeroEmp, EM_TIPOCONTRATO = empleado.TipocontratoEmp.ToString().PadLeft(3, '0'), EM_REDUCCION = Math.Truncate(empleado.PorcenjornadaEmp ?? 0).ToString().PadLeft(3, '0'), EM_NIEJERARQUIA = empleado.DniSuperior }, Observations = string.Empty, CodeWorkflow = ((empleado.CodcontratoEmp == "TT") || (empleado.CodcontratoEmp == "CW") || (empleado.CodcontratoEmp == "FT") || (empleado.CodcontratoEmp == "FC") ? "200" : "100"), CodeKiosk = codigoKiosko, Email = emailEmp, CodePatternCalendar = ((empleado.CodcontratoEmp == "FW") || (empleado.CodcontratoEmp == "FT") || (empleado.CodcontratoEmp == "FC") ? "1FW" : "1ES"), PatternCalendarData = new PatternCalendar { StartDate = "20190101", EndDate = "20991231", Replace = true } }; string employeejson = JsonConvert.SerializeObject(employeeData); Log("Enviado al PUT de empleado " + employeejson); tracews = "Put Employee: URL: " + wsEvalosMethod + " json: " + employeejson; var httpWebResponse = WebServiceRest.PutPostRequest(wsEvalosMethod, userEvalos, passwordEvalos, employeejson, "PUT"); if (httpWebResponse.StatusCode == HttpStatusCode.OK) { creados++; } else { if (config["ShowDetailsLog"].ToUpper() == "TRUE") { Log("Respuesta erronea del PUT " + httpWebResponse.StatusCode + " => " + httpWebResponse.StatusDescription); } } //} //else //{ // encontrados++; //} } catch (Exception ex) { Log("Excepción en el consumo del WS de Evalos " + tracews + ": " + ex.ToString()); } #endregion } //Log("Total de empleados en la BD SincroDE: " + context.TblEmpleados.Count().ToString() + " Empleados encontrados en Evalos: " + encontrados + " Empleados enviados: " + creados); Log("Total de empleados en la BD SincroDE: " + context.TblEmpleados.Count().ToString() + " Empleados enviados: " + creados); } } catch (Exception ex) { Log("Error salvando empleados en la BD Sincrode: " + ex.ToString()); } #endregion #region Procesando marcajes Log("Comienzo del proceso de marcaje"); //Llamando al métodos para procesar los marcajes string paramFecini = config["FechaInicialPrueba"]; string paraFecFin = config["FechaFinalPrueba"]; DateTime fechaini = new DateTime(); DateTime fechafin = new DateTime(); bool setfechas = true; //si no se logra obtener una fecha válida se asume q no estan bien puestos los parámetros if (string.IsNullOrEmpty(paramFecini) || string.IsNullOrEmpty(paraFecFin)) { MarcajesDassnet.ProcesaMarcajes(); } else { try { fechaini = DateTime.ParseExact(paramFecini + " 00:00:00", "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture); fechafin = DateTime.ParseExact(paraFecFin + " 23:59:59", "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture); } catch (Exception) { setfechas = false; } if (setfechas) { Log("Se procesa desde " + fechaini + " hasta " + fechafin); MarcajesDassnet.ProcesaMarcajesRango(fechaini, fechafin); } else { Log("Fechas de parámetro incorrectas. Se procesa a partir de la última fecha procesada"); MarcajesDassnet.ProcesaMarcajes(); } } #endregion #region Salvar ausencias en la base de datos if (Intervalo.nextTimeToExecute == 1) { Log("Se comienzan a procesar las ausencias en la base de datos"); //si no se logra obtener una fecha válida se asume q no estan bien puestos los parámetros if (string.IsNullOrEmpty(paramFecini) || string.IsNullOrEmpty(paraFecFin)) { ProcesaAusencias(); } else { try { fechaini = DateTime.ParseExact(paramFecini + " 00:00:00", "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture); fechafin = DateTime.ParseExact(paraFecFin + " 23:59:59", "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture); } catch (Exception) { setfechas = false; } if (setfechas) { Log("Se procesa desde " + fechaini + " hasta " + fechafin); ProcesaAusencias(fechaini, fechafin); } else { Log("Fechas de parámetro incorrectas. Se procesa a partir de la última fecha procesada"); ProcesaAusencias(); } } } #endregion }