예제 #1
0
        public ActionResult Delete(Models.Ruta.Ruta model)
        {
            try
            {
                Models.Ruta.Ruta modelDelete = GetModel(model.IdRuta);
                modelDelete.Estado = Rp3.AgendaComercial.Models.Constantes.Estado.Eliminado;
                modelDelete.UsrMod = this.UserLogonName;
                modelDelete.FecMod = this.GetCurrentDateTime();
                DataBase.Rutas.Update(modelDelete);
                DataBase.Save();

                VerificarDependencia(modelDelete);

                //DataBase.Rutas.Delete(modelDelete);
                //DataBase.Save();

                this.AddDefaultSuccessMessage();
                return(RedirectToAction("Index"));
            }
            catch
            {
                this.AddDefaultErrorMessage();
            }
            return(RedirectToAction("Index", model));
        }
예제 #2
0
 private void VerificarDependencia(Models.Ruta.Ruta ruta)
 {
     if (ruta.Estado == Rp3.AgendaComercial.Models.Constantes.Estado.Inactivo ||
         ruta.Estado == Rp3.AgendaComercial.Models.Constantes.Estado.Eliminado)
     {
         DataBase.Rutas.EliminarDependenciaRuta(ruta.IdRuta, this.UserLogonName);
     }
 }
예제 #3
0
        public ActionResult Create()
        {
            InicializarEdit();

            Models.Ruta.Ruta model = new Models.Ruta.Ruta();
            model.Estado = Models.Constantes.Estado.Activo;

            model.RutaLotes    = new List <RutaLote>();
            model.RutaDetalles = new List <RutaDetalle>();
            model.RutaIncluirs = new List <RutaIncluir>();

            return(View(model));
        }
예제 #4
0
        public ActionResult Edit(Models.Ruta.Ruta model, string[] lotes, string[] clienteIncluir)
        {
            Models.Ruta.Ruta modelUpdate = GetModel(model.IdRuta);

            try
            {
                if (ModelState.IsValid)
                {
                    modelUpdate.Descripcion  = model.Descripcion;
                    modelUpdate.IdCalendario = model.IdCalendario;

                    modelUpdate.Estado = model.Estado;
                    modelUpdate.UsrMod = this.UserLogonName;
                    modelUpdate.FecMod = this.GetCurrentDateTime();

                    DataBase.RutaLotes.Update(model.RutaLotes, modelUpdate.RutaLotes);

                    var listIncluirEdit = GetIncluirListDetail(model.IdRuta, clienteIncluir);
                    DataBase.RutaIncluirs.Update(listIncluirEdit, modelUpdate.RutaIncluirs);

                    ProcessClientes(modelUpdate);

                    SetResumen(modelUpdate);

                    DataBase.Rutas.Update(modelUpdate);
                    DataBase.Save();

                    VerificarDependencia(modelUpdate);

                    this.AddDefaultSuccessMessage();
                    return(RedirectToAction("Index", model));
                }
            }
            catch
            {
                this.AddDefaultErrorMessage();
            }

            InicializarEdit();

            model.RutaIncluirs = GetIncluirListDetail(model.IdRuta, clienteIncluir);
            model.RutaDetalles = modelUpdate.RutaDetalles;

            SetUbicacion(model.RutaDetalles);
            SetUbicacion(model.RutaIncluirs);

            return(View(model));
        }
예제 #5
0
        public ActionResult Create(Models.Ruta.Ruta model, string[] lotes, string[] clienteIncluir, string[] clienteExcluir)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    model.AsignarId();

                    model.Estado      = Rp3.AgendaComercial.Models.Constantes.Estado.Activo;
                    model.EstadoTabla = Rp3.AgendaComercial.Models.Constantes.Estado.Tabla;
                    model.UsrIng      = this.UserLogonName;
                    model.FecIng      = this.GetCurrentDateTime();

                    string DLote = string.Join(",", lotes);
                    if (!String.IsNullOrEmpty(DLote) && DLote[0] == ',')
                    {
                        DLote = DLote.Remove(0, 1);
                    }

                    model.Lotes        = DLote;
                    model.RutaIncluirs = GetIncluirListDetail(model.IdRuta, clienteIncluir);
                    model.RutaExcluirs = GetExcluirListDetail(model.IdRuta, clienteExcluir);

                    model.RutaDetalles = new List <RutaDetalle>();

                    ProcessClientes(model);

                    SetResumen(model);

                    DataBase.Rutas.Insert(model);
                    DataBase.Save();

                    this.AddDefaultSuccessMessage();
                    return(RedirectToAction("Index", model));
                }
            }
            catch
            {
                this.AddDefaultErrorMessage();
            }
            InicializarEdit();
            model.RutaIncluirs = GetIncluirListDetail(model.IdRuta, clienteIncluir);
            SetUbicacion(model.RutaIncluirs);
            return(View(model));
        }
예제 #6
0
        public void SetResumen(Models.Ruta.Ruta model)
        {
            string lotes = String.Empty;

            foreach (var lote in model.RutaLotes)
            {
                var loteItem = DataBase.Lotes.Get(p => p.IdLote == lote.IdLote).FirstOrDefault();

                if (loteItem != null)
                {
                    if (!String.IsNullOrEmpty(lotes))
                    {
                        lotes += ", ";
                    }

                    lotes += loteItem.Descripcion;
                }
            }

            model.LoteResumen = lotes;
        }
예제 #7
0
        private void ProcessClientes(Models.Ruta.Ruta modelUpdate)
        {
            var listUpdate = new List <RutaDetalle>();

            var lotes = modelUpdate.RutaLotes.Select(p => p.IdLote).ToList <int>();

            var clientes = DataBase.LoteDetalles.Get(p => lotes.Contains(p.IdLote), includeProperties: "ClienteDireccion");

            foreach (var cliente in clientes)
            {
                if (listUpdate.Where(p => p.IdCliente == cliente.IdCliente && p.IdClienteDireccion == cliente.IdClienteDireccion).Count() == 0)
                {
                    listUpdate.Add(new RutaDetalle()
                    {
                        IdRuta             = modelUpdate.IdRuta,
                        IdCliente          = cliente.IdCliente,
                        IdClienteDireccion = cliente.IdClienteDireccion,
                        ClienteDireccion   = cliente.ClienteDireccion
                    });
                }
            }

            foreach (var cliente in modelUpdate.RutaIncluirs)
            {
                if (listUpdate.Where(p => p.IdCliente == cliente.IdCliente && p.IdClienteDireccion == cliente.IdClienteDireccion).Count() == 0)
                {
                    listUpdate.Add(new RutaDetalle()
                    {
                        IdRuta             = modelUpdate.IdRuta,
                        IdCliente          = cliente.IdCliente,
                        IdClienteDireccion = cliente.IdClienteDireccion,
                        ClienteDireccion   = cliente.ClienteDireccion
                    });
                }
            }

            DataBase.RutaDetalles.Update(listUpdate, modelUpdate.RutaDetalles);
        }
예제 #8
0
        public ActionResult Process(int id)
        {
            Models.Ruta.Ruta modelUpdate = GetModel(id);

            try
            {
                ProcessClientes(modelUpdate);

                DataBase.Rutas.Update(modelUpdate);
                DataBase.Save();

                SetUbicacion(modelUpdate.RutaDetalles);

                this.AddSuccessMessage(@Rp3.AgendaComercial.Resources.LegendFor.RutaProcesada);
            }
            catch
            {
                this.AddDefaultErrorMessage();
            }

            ViewBag.IsProcess = true;

            return(View(modelUpdate));
        }
예제 #9
0
        private Models.Ruta.Ruta GetModel(int id)
        {
            Models.Ruta.Ruta result = DataBase.Rutas.Get(p => p.IdRuta == id, includeProperties: "RutaLotes, RutaDetalles, RutaIncluirs, RutaExcluirs").SingleOrDefault();

            return(result);
        }