public JsonResult EliminarLavadoCisterna(CC_LAVADO_CISTERNA model, DateTime fechaDesde)
 {
     try
     {
         lsUsuario = User.Identity.Name.Split('_');
         if (!User.Identity.IsAuthenticated)
         {
             return(Json("101", JsonRequestBehavior.AllowGet));
         }
         clsDControlLavadoCisterna = new clsDControlLavadoCisterna();
         var consultarEstadoReporte = clsDControlLavadoCisterna.ConsultarLavadoCisterna(fechaDesde, Convert.ToDateTime("01-01-2020"), model.IdLavadoCisterna, 0);
         if (consultarEstadoReporte[0].EstadoReporteCab == false)
         {
             model.FechaIngresoLog    = DateTime.Now;
             model.EstadoRegistro     = clsAtributos.EstadoRegistroInactivo;
             model.TerminalIngresoLog = Request.UserHostAddress;
             model.UsuarioIngresoLog  = lsUsuario[0];
             var valor = clsDControlLavadoCisterna.EliminarLavadoCisterna(model);
             if (valor == 0)
             {
                 return(Json("0", JsonRequestBehavior.AllowGet));
             }
             else
             {
                 return(Json("1", JsonRequestBehavior.AllowGet));
             }
         }
         else
         {
             return(Json("2", JsonRequestBehavior.AllowGet));
         }
     }
     catch (DbEntityValidationException e)
     {
         Response.StatusCode = (int)HttpStatusCode.InternalServerError;
         clsDError           = new clsDError();
         lsUsuario           = User.Identity.Name.Split('_');
         string Mensaje = clsDError.ControlError(lsUsuario[0], Request.UserHostAddress, this.ControllerContext.RouteData.Values["controller"].ToString(),
                                                 "Metodo: " + this.ControllerContext.RouteData.Values["action"].ToString(), null, e);
         return(Json(Mensaje, JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         Response.StatusCode = (int)HttpStatusCode.InternalServerError;
         clsDError           = new clsDError();
         lsUsuario           = User.Identity.Name.Split('_');
         string Mensaje = clsDError.ControlError(lsUsuario[0], Request.UserHostAddress, this.ControllerContext.RouteData.Values["controller"].ToString(),
                                                 "Metodo: " + this.ControllerContext.RouteData.Values["action"].ToString(), ex, null);
         return(Json(Mensaje, JsonRequestBehavior.AllowGet));
     }
 }
        public ActionResult LavadoCisternaPartial(DateTime fechaDesde, DateTime fechaHasta, int idLavadoCisterna, int op)
        {
            try
            {
                lsUsuario = User.Identity.Name.Split('_');
                if (!User.Identity.IsAuthenticated)
                {
                    return(Json("101", JsonRequestBehavior.AllowGet));
                }
                clsDControlLavadoCisterna = new clsDControlLavadoCisterna();
                var detalleTabla = clsDControlLavadoCisterna.ConsultarLavadoCisterna(fechaDesde, fechaHasta, idLavadoCisterna, op);

                if (detalleTabla != null)
                {
                    return(PartialView(detalleTabla));
                }
                else
                {
                    return(Json("0", JsonRequestBehavior.AllowGet));
                }
            }
            catch (DbEntityValidationException e)
            {
                clsDError = new clsDError();
                lsUsuario = User.Identity.Name.Split('_');
                string Mensaje = clsDError.ControlError(lsUsuario[0], Request.UserHostAddress, this.ControllerContext.RouteData.Values["controller"].ToString(),
                                                        "Metodo: " + this.ControllerContext.RouteData.Values["action"].ToString(), null, e);
                SetErrorMessage(Mensaje);
                return(Json(Mensaje, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                clsDError = new clsDError();
                lsUsuario = User.Identity.Name.Split('_');
                string Mensaje = clsDError.ControlError(lsUsuario[0], Request.UserHostAddress, this.ControllerContext.RouteData.Values["controller"].ToString(),
                                                        "Metodo: " + this.ControllerContext.RouteData.Values["action"].ToString(), ex, null);
                SetErrorMessage(Mensaje);
                return(Json(Mensaje, JsonRequestBehavior.AllowGet));
            }
        }
 //---------------------------------------------------CABECERA CONTROL---------------------------------------------------------------
 public JsonResult ConsultarLavadoCisterna(DateTime fechaDesde, DateTime fechaHasta, int idLavadoCisterna, int op)
 {
     try
     {
         lsUsuario = User.Identity.Name.Split('_');
         if (!User.Identity.IsAuthenticated)
         {
             return(Json("101", JsonRequestBehavior.AllowGet));
         }
         clsDControlLavadoCisterna = new clsDControlLavadoCisterna();
         var poCloroCisterna = clsDControlLavadoCisterna.ConsultarLavadoCisterna(fechaDesde, fechaHasta, idLavadoCisterna, op).FirstOrDefault();
         if (poCloroCisterna != null)
         {
             return(Json(poCloroCisterna, JsonRequestBehavior.AllowGet));
         }
         else
         {
             return(Json("0", JsonRequestBehavior.AllowGet));
         }
     }
     catch (DbEntityValidationException e)
     {
         Response.StatusCode = (int)HttpStatusCode.InternalServerError;
         clsDError           = new clsDError();
         lsUsuario           = User.Identity.Name.Split('_');
         string Mensaje = clsDError.ControlError(lsUsuario[0], Request.UserHostAddress, this.ControllerContext.RouteData.Values["controller"].ToString(),
                                                 "Metodo: " + this.ControllerContext.RouteData.Values["action"].ToString(), null, e);
         return(Json(Mensaje, JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         Response.StatusCode = (int)HttpStatusCode.InternalServerError;
         clsDError           = new clsDError();
         lsUsuario           = User.Identity.Name.Split('_');
         string Mensaje = clsDError.ControlError(lsUsuario[0], Request.UserHostAddress, this.ControllerContext.RouteData.Values["controller"].ToString(),
                                                 "Metodo: " + this.ControllerContext.RouteData.Values["action"].ToString(), ex, null);
         return(Json(Mensaje, JsonRequestBehavior.AllowGet));
     }
 }
        public ActionResult BandejaLavadoCisternaPartial(DateTime fechaDesde, DateTime fechaHasta, int idLavadoCisterna, int op)
        {
            try
            {
                lsUsuario = User.Identity.Name.Split('_');
                if (!User.Identity.IsAuthenticated)
                {
                    return(Json("101", JsonRequestBehavior.AllowGet));
                }
                clsDControlLavadoCisterna = new clsDControlLavadoCisterna();
                var tablaCabecera = clsDControlLavadoCisterna.ConsultarLavadoCisterna(fechaDesde, fechaHasta, idLavadoCisterna, op);

                if (tablaCabecera != null)
                {
                    sp_Control_Lavado_Cisterna        cisterna;
                    List <sp_Control_Lavado_Cisterna> listaCisterna = new List <sp_Control_Lavado_Cisterna>();
                    var listaFiltrada = (from x in tablaCabecera
                                         group x by new { x.IdLavadoCisterna, x.Fecha } into f
                                         select new { f.Key.IdLavadoCisterna, f.Key.Fecha }).ToList();//agrupo por IdLavadoCisterna, fecha para poder saber el total de las filas
                    foreach (var item in listaFiltrada)
                    {
                        cisterna = new sp_Control_Lavado_Cisterna();
                        var listaAgrupada = (from x in tablaCabecera
                                             where item.IdLavadoCisterna == x.IdLavadoCisterna && item.Fecha == x.Fecha
                                             select new { x.IdLavadoCisterna, x.Fecha, x.QuimUtilizados, x.Observacion, x.EstadoReporteCab
                                                          , x.NDescripcion, x.UsuarioIngresoLog }).First();
                        cisterna.IdLavadoCisterna  = listaAgrupada.IdLavadoCisterna;
                        cisterna.Fecha             = listaAgrupada.Fecha;
                        cisterna.QuimUtilizados    = listaAgrupada.QuimUtilizados;
                        cisterna.Observacion       = listaAgrupada.Observacion;
                        cisterna.EstadoReporteCab  = listaAgrupada.EstadoReporteCab;
                        cisterna.NDescripcion      = listaAgrupada.NDescripcion;
                        cisterna.UsuarioIngresoLog = listaAgrupada.UsuarioIngresoLog;
                        listaCisterna.Add(cisterna);
                    }
                    return(PartialView(listaCisterna));
                }
                else
                {
                    return(Json("0", JsonRequestBehavior.AllowGet));
                }
            }
            catch (DbEntityValidationException e)
            {
                clsDError = new clsDError();
                lsUsuario = User.Identity.Name.Split('_');
                string Mensaje = clsDError.ControlError(lsUsuario[0], Request.UserHostAddress, this.ControllerContext.RouteData.Values["controller"].ToString(),
                                                        "Metodo: " + this.ControllerContext.RouteData.Values["action"].ToString(), null, e);
                SetErrorMessage(Mensaje);
                return(Json(Mensaje, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                clsDError = new clsDError();
                lsUsuario = User.Identity.Name.Split('_');
                string Mensaje = clsDError.ControlError(lsUsuario[0], Request.UserHostAddress, this.ControllerContext.RouteData.Values["controller"].ToString(),
                                                        "Metodo: " + this.ControllerContext.RouteData.Values["action"].ToString(), ex, null);
                SetErrorMessage(Mensaje);
                return(Json(Mensaje, JsonRequestBehavior.AllowGet));
            }
        }
        public JsonResult GuardarModificarLavadoCisterna(CC_LAVADO_CISTERNA model, string idMantCisterna, List <string> idIntermedia, int siAprobar, DateTime fechaDesde)
        {
            var splitIdMantCisterna = idMantCisterna.Split(';');

            try
            {
                lsUsuario = User.Identity.Name.Split('_');
                if (!User.Identity.IsAuthenticated)
                {
                    return(Json("101", JsonRequestBehavior.AllowGet));
                }
                clsDControlLavadoCisterna = new clsDControlLavadoCisterna();
                var  consultarEstadoReporte = clsDControlLavadoCisterna.ConsultarLavadoCisterna(fechaDesde, Convert.ToDateTime("01-01-2020"), model.IdLavadoCisterna, 4);
                bool estadoReporte          = false;
                if (consultarEstadoReporte.Count != 0)
                {
                    estadoReporte = consultarEstadoReporte[0].EstadoReporteCab;
                }
                if (estadoReporte == false)
                {
                    model.FechaIngresoLog    = DateTime.Now;
                    model.EstadoRegistro     = clsAtributos.EstadoRegistroActivo;
                    model.TerminalIngresoLog = Request.UserHostAddress;
                    model.UsuarioIngresoLog  = lsUsuario[0];
                    var valor = clsDControlLavadoCisterna.GuardarModificarLavadoCisterna(model, siAprobar);
                    //GUARDAR EN LA TABLA INTERMEDIA
                    int idCisterna = model.IdLavadoCisterna;
                    foreach (var item in splitIdMantCisterna)
                    {
                        if (!string.IsNullOrWhiteSpace(item))
                        {
                            CC_INTERMEDIA_CTRL_MANT_CISTERNA modelIntermedia = new CC_INTERMEDIA_CTRL_MANT_CISTERNA();
                            modelIntermedia.IdCtrlLavadoCisterna = Convert.ToInt32(idCisterna);
                            modelIntermedia.IdMantCisterna       = Convert.ToInt32(item);
                            modelIntermedia.FechaIngresoLog      = DateTime.Now;
                            modelIntermedia.EstadoRegistro       = clsAtributos.EstadoRegistroActivo;
                            modelIntermedia.TerminalIngresoLog   = Request.UserHostAddress;
                            modelIntermedia.UsuarioIngresoLog    = lsUsuario[0];
                            var guardar = clsDControlLavadoCisterna.GuardarModificarLavadoCisternaIntermedia(modelIntermedia);
                        }
                    }
                    //ELIMINO TODOS LOS REGISTROS DE LA TABLA INTERMEDIA QUE CORESPONDAN AL ITEM A ACTUALIZAR. SEGUN LA LISTA idIntermedia PARAMETRO DE ENTRADA
                    //HAGO ESTO YA QUE ES COMPLICADO ATUALIZAR UNO POR UNO, Y PEOR CUANDO EL USUARIO INGRESA 5 CISTERNAS Y LUEGO ACTUALIZA A 1.
                    if (idIntermedia != null)
                    {
                        foreach (var item in idIntermedia)
                        {
                            CC_INTERMEDIA_CTRL_MANT_CISTERNA modelIntermedia = new CC_INTERMEDIA_CTRL_MANT_CISTERNA();
                            modelIntermedia.IdIntermedia       = Convert.ToInt32(item);
                            modelIntermedia.FechaIngresoLog    = DateTime.Now;
                            modelIntermedia.EstadoRegistro     = clsAtributos.EstadoRegistroInactivo;
                            modelIntermedia.TerminalIngresoLog = Request.UserHostAddress;
                            modelIntermedia.UsuarioIngresoLog  = lsUsuario[0];
                            var guardar = clsDControlLavadoCisterna.EliminarLavadoCisternaIntermedia(modelIntermedia);
                        }
                    }
                    if (valor == 0)
                    {
                        return(Json("0", JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        return(Json("1", JsonRequestBehavior.AllowGet));
                    }
                }
                else
                {
                    return(Json("2", JsonRequestBehavior.AllowGet));
                }
            }
            catch (DbEntityValidationException e)
            {
                Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                clsDError           = new clsDError();
                lsUsuario           = User.Identity.Name.Split('_');
                string Mensaje = clsDError.ControlError(lsUsuario[0], Request.UserHostAddress, this.ControllerContext.RouteData.Values["controller"].ToString(),
                                                        "Metodo: " + this.ControllerContext.RouteData.Values["action"].ToString(), null, e);
                return(Json(Mensaje, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                clsDError           = new clsDError();
                lsUsuario           = User.Identity.Name.Split('_');
                string Mensaje = clsDError.ControlError(lsUsuario[0], Request.UserHostAddress, this.ControllerContext.RouteData.Values["controller"].ToString(),
                                                        "Metodo: " + this.ControllerContext.RouteData.Values["action"].ToString(), ex, null);
                return(Json(Mensaje, JsonRequestBehavior.AllowGet));
            }
        }