Пример #1
0
 //Agregar FormatosVisita
 public void AgregarFormatoVisita(FormatosVisita Formato, int IdVisita, int IdInspector)
 {
     using (var ctx = new DB_A66D31_intratecPrbEntities1())
     {
         Visitas visita = ctx.Visitas.Where(v => v.IdVisita == IdVisita).FirstOrDefault();
         if (visita != null)
         {
             ConsecutivosFormatos cons = ctx.ConsecutivosFormatos.Where(c => c.IdFormato == Formato.IdFormato && c.Consecutivo == Formato.Consecutivo && c.IdInspector == IdInspector).FirstOrDefault();
             if (cons != null)
             {
                 if (cons.IdVisita == null)
                 {
                     Formato.Secuencia = ctx.FormatosVisita.Where(fv => fv.IdVisita == Formato.IdVisita).Count() + 1;
                     visita.FormatosVisita.Add(Formato);
                     cons.IdVisita = IdVisita.ToString();
                     ctx.SaveChanges();
                 }
                 else
                 {
                     throw new Exception("El consecutivo ya fue usado en otra visita");
                 }
             }
             else
             {
                 throw new Exception("Usted no tiene asignado este consecutivo");
             }
         }
         else
         {
             throw new Exception("No se encontró la visita");
         }
     }
 }
Пример #2
0
        //6. Asignación de consecutivos a inspectores
        public void AsignarRangoConsecutivosFormatoInspector(int IdFormato, int IdInspector, int ConsecutivoInicial, int ConsecutivoFinal, int IdUsuarioAsigna)
        {
            string estadoConsecutivo = "P";
            string tramite           = "ASIGNACION";

            using (var ctx = new DB_A66D31_intratecPrbEntities1())
            {
                //Acá validamos que todos los consecutivos estén disponibles, o sea, que no se los hayan asignado a ningún inspector
                for (int i = ConsecutivoInicial; i <= ConsecutivoFinal; i++)
                {
                    if (ctx.ConsecutivosFormatos.Where(c => c.IdFormato == IdFormato && c.Consecutivo == i && (!c.IdEstadoConsecutivoInspector.Equals("B") && !c.IdEstadoConsecutivoInspector.Equals("R"))).FirstOrDefault() != null)
                    {
                        throw new Exception($"El consecutivo {i} del formato {IdFormato} ya ha sido asignado a un inspector");
                    }
                }

                for (int i = ConsecutivoInicial; i <= ConsecutivoFinal; i++)
                {
                    ConsecutivosFormatos con = ctx.ConsecutivosFormatos.Where(c => c.IdFormato == IdFormato && c.Consecutivo == i).FirstOrDefault();
                    con.IdInspector = IdInspector;
                    con.IdEstadoConsecutivoInspector = estadoConsecutivo;
                    con.FechaModificacion            = DateTime.Now;
                    con.IdUsuarioModificacion        = IdUsuarioAsigna;

                    int sec = 0;
                    try
                    {
                        sec = ctx.TramiteConsecutivoFormato.Where(t => t.IdFormato == IdFormato && t.Consecutivo == i).Count();
                    }
                    catch { }
                    sec += 1;

                    ctx.TramiteConsecutivoFormato.Add(new TramiteConsecutivoFormato()
                    {
                        IdFormato         = IdFormato,
                        IdInspector       = IdInspector,
                        Consecutivo       = i,
                        Tramite           = tramite,
                        FechaCreacion     = DateTime.Now,
                        IdUsuarioCreacion = IdUsuarioAsigna,
                        Secuencia         = sec,
                        Observaciones     = "Asignación inicial de Consecutivo"
                    });
                    ctx.SaveChanges();
                }
            }
        }
Пример #3
0
        //8. Actualizar estado Consecutivo: Aplica para aceptación, rechazo y anulación. Permite actualizar más de un consecutivo.
        public void ActualizarEstadoConsecutivo(int IdFormato, List <int> Consecutivos, string IdEstado, int IdUsuarioActualiza, string Observaciones)
        {
            string tramite = string.Empty;

            switch (IdEstado)
            {
            case "A": tramite = "ACEPTACION"; break;

            case "R": tramite = "RECHAZO"; break;

            case "X": tramite = "ANULACION"; break;
            }

            using (var ctx = new DB_A66D31_intratecPrbEntities1())
            {
                foreach (int i in Consecutivos)
                {
                    ConsecutivosFormatos con = ctx.ConsecutivosFormatos.Where(c => c.IdFormato == IdFormato && c.Consecutivo == i).FirstOrDefault();
                    if (con != null)
                    {
                        //Si es rechazo el consecutivo se debe liberar
                        if (!IdEstado.Equals("R"))
                        {
                            con.IdEstadoConsecutivoInspector = IdEstado;
                            con.FechaModificacion            = DateTime.Now;
                            con.IdUsuarioModificacion        = IdUsuarioActualiza;
                        }
                        else
                        {
                            con.IdInspector = null;
                            con.IdEstadoConsecutivoInspector = IdEstado;
                            con.FechaModificacion            = DateTime.Now;
                            con.IdUsuarioModificacion        = IdUsuarioActualiza;
                        }

                        int sec = 0;
                        try
                        {
                            sec = ctx.TramiteConsecutivoFormato.Where(t => t.IdFormato == IdFormato && t.Consecutivo == i).Count();
                        }
                        catch { }
                        sec += 1;

                        ctx.TramiteConsecutivoFormato.Add(new TramiteConsecutivoFormato()
                        {
                            IdFormato         = IdFormato,
                            IdInspector       = IdUsuarioActualiza,
                            Consecutivo       = i,
                            Tramite           = tramite,
                            FechaCreacion     = DateTime.Now,
                            IdUsuarioCreacion = IdUsuarioActualiza,
                            Secuencia         = sec,
                            Observaciones     = Observaciones
                        });
                        ctx.SaveChanges();
                    }
                    else
                    {
                        throw new Exception("Consecutivo no asignado aún");
                    }
                }
            }
        }