public ActionResult EditarSucursal(string Id)
        {
            string[]       empresaRegion = Id.Trim().Split('|');
            short          empresaID     = Convert.ToInt16(empresaRegion[0]);
            short          sucursalID    = Convert.ToInt16(empresaRegion[1]);
            Cat_Sucursales _suc          = _unitOfWork.GetRepositoryInstance <Cat_Sucursales>()
                                           .GetFirstOrDefaultByParameter(s => s.Clave_Empresa == empresaID && s.Clave_Sucursal == sucursalID);

            if (_suc == null)
            {
                return(RedirectToAction("Sucursales", "Catalogos"));
            }
            var model = new SucursalViewModel();

            model.DivisionID       = _suc.Clave_Division.HasValue ? (int)_suc.Clave_Division : -1;
            model.Email            = _suc.mail;
            model.EmpresaID        = _suc.Clave_Empresa;
            model.Estado           = _suc.Desc_Estado;
            model.Nombre           = _suc.Desc_Sucursal;
            model.RegionDivisionID = (_suc.Clave_Division.HasValue ? (int)_suc.Clave_Division : -1) + ";" + _suc.Clave_Region;
            model.RegionID         = _suc.Clave_Region;
            model.SucursalID       = _suc.Clave_Sucursal;

            return(View(model));
        }
        public ActionResult EditarSucursal(SucursalViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    Cat_Sucursales _suc = _unitOfWork.GetRepositoryInstance <Cat_Sucursales>()
                                          .GetFirstOrDefaultByParameter(s => s.Clave_Empresa == model.EmpresaID && s.Clave_Sucursal == model.SucursalID);
                    if (_suc == null)
                    {
                        ViewBag.ErrorMessage = "Error al intentar actualizar los datos de la sucursal";
                        return(View(model));
                    }
                    _suc.Desc_Estado   = model.Estado;
                    _suc.Desc_Sucursal = model.Nombre;
                    _suc.mail          = model.Email;
                    _unitOfWork.GetRepositoryInstance <Cat_Sucursales>().Update(_suc);
                    _unitOfWork.SaveChanges();

                    return(RedirectToAction("Sucursales", "Catalogos"));
                }
                catch (Exception ex)
                {
                    ViewBag.ErrorMessage = ex.Message;
                }
            }
            else
            {
                ViewBag.ErrorMessage = "La informaciĆ³n es incompleta";
            }
            return(View(model));
        }
        public ActionResult AgregarSucursal(SucursalViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    if (_unitOfWork.GetRepositoryInstance <Cat_Sucursales>().GetExists(s => s.Clave_Empresa == model.EmpresaID && s.Clave_Sucursal == model.SucursalID))
                    {
                        ViewBag.ErrorMessage = "La clave de Sucursal ya existe para la empresa seleccionada";
                        return(View(model));
                    }
                    Cat_Sucursales _suc = new Cat_Sucursales();
                    _suc.Clave_Division  = model.DivisionID;
                    _suc.Clave_Empresa   = model.EmpresaID;
                    _suc.Clave_Region    = model.RegionID;
                    _suc.Clave_SubRegion = 0;
                    _suc.Clave_Sucursal  = model.SucursalID;
                    _suc.Desc_Estado     = model.Estado;
                    _suc.Desc_Sucursal   = model.Nombre;
                    _suc.mail            = model.Email;
                    _unitOfWork.GetRepositoryInstance <Cat_Sucursales>().Add(_suc);

                    return(RedirectToAction("Sucursales", "Catalogos"));
                }
                catch (Exception ex)
                {
                    ViewBag.ErrorMessage = ex.Message;
                }
            }
            else
            {
                ViewBag.ErrorMessage = "La informaciĆ³n es incompleta";
            }
            return(View(model));
        }