public IHttpActionResult Create(Models.Marcacion marcacion) { var agente = DataBase.Agentes.Get(p => p.Usuario.LogonName == CurrentUser.LogonName).FirstOrDefault(); var modelInsert = new Rp3.AgendaComercial.Models.Marcacion.Marcacion(); var existeMarca = DataBase.Marcacions.GetSingleOrDefault(p => p.Fecha == marcacion.Fecha && p.Tipo == marcacion.Tipo && p.IdAgente == agente.IdAgente); if (existeMarca == null) { if (agente != null) { try { Rp3.Data.Service.CopyTo(marcacion, modelInsert, includeProperties: new string[] { "TipoTabla", "Tipo", "Fecha", "HoraInicio", "HoraFin", "HoraInicioPlan", "HoraFinPlan", "MinutosAtraso", "EnUbicacion", "LongitudPlan", "LatitudPlan", "Longitud", "Latitud", "IdPermiso" }); if (modelInsert.Tipo == Rp3.AgendaComercial.Models.Constantes.TipoMarcacion.InicioJornada1 || modelInsert.Tipo == Rp3.AgendaComercial.Models.Constantes.TipoMarcacion.InicioJornada2) { modelInsert.HoraFin = null; } else { modelInsert.HoraInicio = null; } modelInsert.IdAgente = agente.IdAgente; modelInsert.IdGrupo = agente.IdGrupo.Value; modelInsert.Ausente = false; modelInsert.Atraso = false; modelInsert.AsignarId(); modelInsert.FecIng = GetCurrentDateTime(); if (marcacion.Permiso != null && marcacion.IdPermiso == 0) { var permisoInsert = new Rp3.AgendaComercial.Models.Marcacion.Permiso(); Rp3.Data.Service.CopyTo(marcacion.Permiso, permisoInsert, includeProperties: new string[] { "TipoTabla", "Tipo", "MotivoTabla", "Motivo", "FechaInicio", "FechaFin", "HoraInicio", "HoraFin", "Observacion", "EsPrevio", "EstadoTabla", "Estado" }); permisoInsert.AsignarId(); modelInsert.IdPermiso = permisoInsert.IdPermiso; permisoInsert.IdAgente = modelInsert.IdAgente; permisoInsert.IdGrupo = agente.IdGrupo; permisoInsert.UsrIng = CurrentUser.LogonName; permisoInsert.FecIng = GetCurrentDateTime(); DataBase.Permisos.Insert(permisoInsert); } if (modelInsert.IdPermiso == 0) { modelInsert.IdPermiso = null; } DataBase.Marcacions.Insert(modelInsert); DataBase.Save(); } catch (Exception ex) { return(BadRequest(ex.Message)); } } } else { modelInsert = existeMarca; } return(Ok(modelInsert.IdMarcacion)); }
public IHttpActionResult InsertPermisoPrevio(Models.Permiso permiso) { var agente = DataBase.Agentes.Get(p => p.Usuario.LogonName == CurrentUser.LogonName).FirstOrDefault(); var permisoInsert = new Rp3.AgendaComercial.Models.Marcacion.Permiso(); if (agente != null) { try { Rp3.Data.Service.CopyTo(permiso, permisoInsert, includeProperties: new string[] { "TipoTabla", "Tipo", "MotivoTabla", "Motivo", "FechaInicio", "FechaFin", "HoraInicio", "HoraFin", "Observacion", "EsPrevio", "EstadoTabla", "Estado" }); permisoInsert.AsignarId(); permisoInsert.IdAgente = agente.IdAgente; permisoInsert.IdGrupo = agente.IdGrupo; permisoInsert.UsrIng = CurrentUser.LogonName; permisoInsert.FecIng = GetCurrentDateTime(); permisoInsert.EsPrevio = true; DataBase.Permisos.Insert(permisoInsert); DataBase.Save(); try { DataBase.Permisos.Permiso(permisoInsert.IdPermiso); } catch { } try { if (agente != null && agente.IdSupervisor != null) { var device = DataBase.Devices.Get(p => p.IdUsuario == agente.Supervisor.IdUsuario).FirstOrDefault(); if (device != null && !String.IsNullOrEmpty(device.GCMId)) { string footer = String.Format("Enviada por: {0} - el {1:g}", agente.Descripcion, this.GetCurrentDateTime()); AndroidNotificationPusher.PushNotification(device.GCMId, "Solicitud de Justificación", String.Format("{0} ha solicitado una Justificación.", agente.Descripcion), "APROBAR_JUSTIFICACION", footer); } } } catch { } } catch (Exception ex) { return(BadRequest(ex.Message)); } } return(Ok(permisoInsert.IdPermiso)); }
public ActionResult Crear(PermisoEdit permisoEdit) { try { DateTime fechaActual = GetCurrentDateTime(); //CLIENTE/CONTACTO EXISTA if (permisoEdit.IdAgente == null && permisoEdit.IdGrupo == null) { this.AddErrorMessage(Rp3.AgendaComercial.Resources.ErrorMessageValidation.PermisoAgenteOGrupoRequerido); } //TIEMPO VALIDACION else if (permisoEdit.FechaInicio > permisoEdit.FechaFin) { this.AddErrorMessage(Rp3.AgendaComercial.Resources.ErrorMessageValidation.HoraInicioMayorHoraFin); } else if (permisoEdit.FechaFin < this.GetCurrentDateTime()) { this.AddErrorMessage(Rp3.AgendaComercial.Resources.ErrorMessageValidation.PermisoPrevioFechaMenorFechaActual); } else if (String.IsNullOrEmpty(permisoEdit.ObservacionSupervisor)) { this.AddErrorMessage(Rp3.AgendaComercial.Resources.ErrorMessageValidation.ObservacionSupervisorObligatoria); } if (!this.MessageCollection.HasError()) { var model = new Rp3.AgendaComercial.Models.Marcacion.Permiso(); model.AsignarId(); model.IdAgente = permisoEdit.IdAgente; model.IdGrupo = permisoEdit.IdGrupo; model.FechaInicio = permisoEdit.FechaInicio.Date; model.FechaFin = permisoEdit.FechaFin.Date; model.HoraInicio = permisoEdit.FechaInicio; model.HoraFin = permisoEdit.FechaFin; model.MotivoTabla = Rp3.AgendaComercial.Models.Constantes.MotivoPermiso.Tabla; model.Motivo = permisoEdit.Motivo; model.TipoTabla = Rp3.AgendaComercial.Models.Constantes.TipoPermiso.Tabla; model.Tipo = permisoEdit.Tipo; model.EstadoTabla = Rp3.AgendaComercial.Models.Constantes.EstadoPermiso.Tabla; model.Estado = Rp3.AgendaComercial.Models.Constantes.EstadoPermiso.Aprobado; model.Observacion = permisoEdit.Observacion; model.ObservacionSupervisor = permisoEdit.ObservacionSupervisor; model.EsPrevio = true; model.UsrIng = this.UserLogonName; model.FecIng = this.GetCurrentDateTime(); DataBase.Permisos.Insert(model); DataBase.Save(); try { DataBase.Permisos.Permiso(model.IdPermiso); var agente = DataBase.Agentes.Get(p => p.IdAgente == permisoEdit.IdAgente).FirstOrDefault(); if (agente != null && agente.IdSupervisor != null) { var device = DataBase.Devices.Get(p => p.IdUsuario == agente.Supervisor.IdUsuario).FirstOrDefault(); if (device != null && !String.IsNullOrEmpty(device.GCMId)) { var agenteSup = DataBase.Agentes.Get(p => p.Usuario.LogonName == this.UserLogonName).FirstOrDefault(); string footer = String.Format("Enviada por: {0} - el {1:g}", agenteSup.Descripcion, this.GetCurrentDateTime()); AndroidNotificationPusher.PushNotification(device.GCMId, "Solicitud de Justificación", String.Format("{0} ha solicitado una Justificación.", agente.Descripcion), "APROBAR_JUSTIFICACION", footer); } } } catch { } this.AddDefaultSuccessMessage(); } } catch { this.AddDefaultErrorMessage(); } return(Json()); }