Пример #1
0
        public ActionResult CambiarEstado(int id)
        {
            dbHeredadesEntities db        = new dbHeredadesEntities();
            tbProveedor         proveedor = db.tbProveedor.Find(id);

            return(View(proveedor));
        }
Пример #2
0
        public ActionResult VerPagos(int id, int pagina = 1, string filtro = "", bool estado = true)
        {
            dbHeredadesEntities    db    = new dbHeredadesEntities();
            List <tbPagoProveedor> lista = new List <tbPagoProveedor>();

            if (filtro != "")
            {
                DateTime fecha = DateTime.Parse(filtro);
                lista = db.tbPagoProveedor.Where(t => t.codProveedor == id && t.estado == estado && DbFunctions.TruncateTime(t.fecha) == fecha).OrderByDescending(t => t.fecha).ToList();
            }
            else
            {
                lista = db.tbPagoProveedor.Where(t => t.codProveedor == id && t.estado == estado).OrderByDescending(t => t.fecha).ToList();
            }
            int        paginas    = (int)Math.Ceiling((double)lista.Count() / registrosPagina);
            Paginacion paginacion = new Paginacion(pagina, paginas, "VerPagos", "DeudaProveedor");

            ViewBag.paginacion = paginacion;
            ViewBag.filtro     = filtro;
            ViewBag.estado     = estado;
            tbProveedor proveedor = db.tbProveedor.Find(id);

            ViewBag.proveedor = proveedor.proveedor;
            return(View(lista.Skip((pagina - 1) * registrosPagina).Take(registrosPagina)));
        }
Пример #3
0
        public JsonResult ActualizarProveedor(int?prov_Id, string prov_RTN, string prov_Nombre, string prov_NombreContacto, string prov_Direccion, string prov_Email, string prov_Telefono, short?acte_Id)
        {
            var         MsjError    = "";
            tbProveedor tbProveedor = db.tbProveedor.Find(prov_Id);

            if (ModelState.IsValid)
            {
                try
                {
                    IEnumerable <object> List = null;
                    List = db.UDP_Inv_tbProveedor_Update(prov_Id, prov_Nombre, prov_NombreContacto, prov_Direccion, prov_Email, prov_Telefono, prov_RTN, acte_Id, Function.GetUser(), Function.DatetimeNow(), Function.GetUser(), Function.DatetimeNow());
                    foreach (UDP_Inv_tbProveedor_Update_Result Proveedor in List)
                    {
                        MsjError = Proveedor.MensajeError;
                    }
                    if (MsjError.StartsWith("-1"))
                    {
                        Function.InsertBitacoraErrores("Proveedor/Edit", MsjError, "Edit");
                    }
                    else if (MsjError == "-2")
                    {
                        Function.InsertBitacoraErrores("Proveedor/Edit", MsjError, "Edit");
                    }
                }
                catch (Exception Ex)
                {
                    MsjError = "-1";
                    Function.InsertBitacoraErrores("Proveedor/Edit", Ex.Message.ToString(), "Edit");
                }
                ViewBag.Actividad = new SelectList(db.tbActividadEconomica, "acte_Id", "acte_Descripcion", tbProveedor.acte_Id);
            }
            return(Json(MsjError, JsonRequestBehavior.AllowGet));
        }
Пример #4
0
        public ActionResult DeleteConfirmed(int id)
        {
            tbProveedor tbProveedor = db.tbProveedor.Find(id);

            db.tbProveedor.Remove(tbProveedor);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Пример #5
0
        public ActionResult CambiarEstado(int id, FormCollection collection)
        {
            dbHeredadesEntities db        = new dbHeredadesEntities();
            tbProveedor         proveedor = db.tbProveedor.Find(id);

            proveedor.estado = !(proveedor.estado);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Пример #6
0
        public ActionResult Pagar(int id)
        {
            dbHeredadesEntities db        = new dbHeredadesEntities();
            tbProveedor         proveedor = db.tbProveedor.Find(id);

            ViewBag.codProveedor = id;
            ViewBag.proveedor    = proveedor.proveedor;
            ViewBag.caja         = db.tbCaja.Find(1).cantidad;
            return(View());
        }
Пример #7
0
        // GET: Proveedor/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(RedirectToAction("Index"));
            }
            tbProveedor tbProveedor = db.tbProveedor.Find(id);

            if (tbProveedor == null)
            {
                return(RedirectToAction("Index"));
            }
            return(View(tbProveedor));
        }
Пример #8
0
        // GET: Proveedor/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            tbProveedor tbProveedor = db.tbProveedor.Find(id);

            if (tbProveedor == null)
            {
                return(HttpNotFound());
            }
            return(View(tbProveedor));
        }
Пример #9
0
        public ActionResult CrearPedido(int id)
        {
            dbHeredadesEntities db        = new dbHeredadesEntities();
            tbProveedor         proveedor = db.tbProveedor.Find(id);

            ViewBag.codProveedor = id;
            ViewBag.proveedor    = proveedor.proveedor;
            List <int>        codigos   = db.tbProductoProveedor.Where(t => t.codProveedor == id && t.estado).GroupBy(t => t.codProducto).Select(t => t.Key).ToList();
            List <tbProducto> productos = db.tbProducto.Where(t => codigos.Contains(t.codProducto)).OrderBy(t => t.producto).ToList();

            ViewBag.codPresentacion = new SelectList(new List <tbPresentacion>(), "codPresentacion", "presentacion");
            ViewBag.codProducto     = new SelectList(productos, "codProducto", "producto");
            return(View());
        }
Пример #10
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(RedirectToAction("Index"));
            }
            tbProveedor tbProveedor = db.tbProveedor.Find(id);

            if (tbProveedor == null)
            {
                return(RedirectToAction("NotFound", "Login"));
            }
            ViewBag.Actividad = new SelectList(db.tbActividadEconomica, "acte_Id", "acte_Descripcion", tbProveedor.acte_Id);
            return(View(tbProveedor));
        }
Пример #11
0
        public ActionResult Editar(tbProveedor editado)
        {
            dbHeredadesEntities db = new dbHeredadesEntities();

            if (!(db.tbProveedor.Any(t => t.proveedor == editado.proveedor && t.codProveedor != editado.codProveedor)))
            {
                db.Entry(editado).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            else
            {
                ModelState.AddModelError(string.Empty, "¡Ya existe este proveedor!");
                return(View(editado));
            }
        }
Пример #12
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(RedirectToAction("Index"));
            }
            tbProveedor tbProveedor = db.tbProveedor.Find(id);

            if (tbProveedor == null)
            {
                return(RedirectToAction("Index"));
            }
            ViewBag.prov_UsuarioCrea     = new SelectList(db.tbUsuarios, "usu_Id", "usu_NombreUsuario", tbProveedor.prov_UsuarioCrea);
            ViewBag.prov_UsuarioModifica = new SelectList(db.tbUsuarios, "usu_Id", "usu_NombreUsuario", tbProveedor.prov_UsuarioModifica);
            return(View(tbProveedor));
        }
Пример #13
0
        public ActionResult Edit([Bind(Include = "prov_Id,prov_Descripcion,prov_UsuarioCrea,prov_FechaCrea,prov_UsuarioModifica,prov_FechaModifica")] tbProveedor tbProveedor)
        {
            tbProveedor.prov_UsuarioModifica = 3;
            tbProveedor.prov_FechaModifica   = DateTime.Now;

            IEnumerable <object> listProveedor = null;
            string MensajeError = "";

            if (ModelState.IsValid)
            {
                try
                {
                    listProveedor = db.UDP_Inv_tbProveedor_Update(tbProveedor.prov_Id,
                                                                  tbProveedor.prov_Descripcion,
                                                                  tbProveedor.prov_UsuarioCrea,
                                                                  tbProveedor.prov_FechaCrea,
                                                                  tbProveedor.prov_UsuarioModifica,
                                                                  tbProveedor.prov_FechaModifica
                                                                  );

                    foreach (UDP_Inv_tbProveedor_Update_Result Resultado in listProveedor)
                    {
                        MensajeError = Resultado.MensajeError;
                    }

                    if (MensajeError.StartsWith("-1"))
                    {
                        ModelState.AddModelError("", "No se pudo ingresar el registro, contacte al administrador");
                        return(View(tbProveedor));
                    }
                }
                catch (Exception Ex)
                {
                    Ex.Message.ToString();
                }
                return(RedirectToAction("Index"));

                //db.Entry(tbProveedor).State = EntityState.Modified;
                //db.SaveChanges();
                //return RedirectToAction("Index");
            }
            ViewBag.prov_UsuarioCrea     = new SelectList(db.tbUsuarios, "usu_Id", "usu_NombreUsuario", tbProveedor.prov_UsuarioCrea);
            ViewBag.prov_UsuarioModifica = new SelectList(db.tbUsuarios, "usu_Id", "usu_NombreUsuario", tbProveedor.prov_UsuarioModifica);
            return(View(tbProveedor));
        }
Пример #14
0
        public ActionResult Crear(tbProveedor nuevo)
        {
            dbHeredadesEntities db = new dbHeredadesEntities();

            if (!(db.tbProveedor.Any(t => t.proveedor == nuevo.proveedor)))
            {
                nuevo.estado = true;
                nuevo.deuda  = 0;
                db.tbProveedor.Add(nuevo);
                db.SaveChanges();
                return(RedirectToAction("Productos", new { id = nuevo.codProveedor }));
            }
            else
            {
                ModelState.AddModelError(string.Empty, "¡Ya existe este proveedor!");
                return(View(nuevo));
            }
        }
Пример #15
0
 private void SetearProveedor(tbProveedor _tbProveedor)
 {
     try
     {
         this._tbProveedor            = _tbProveedor;
         cmbTipoPersona.SelectedValue = this._tbProveedor.idTipoPersona;
         cmbTipoPersona_SelectionChangeCommitted(null, null);
         cmbTipoIdentificacion.SelectedValue = this._tbProveedor.idTipoIdentificacion;
         txtNumeroIdentificacion.Text        = this._tbProveedor.numeroIdentificacion;
         txtNombres.Text           = this._tbProveedor.nombres;
         txtDireccion.Text         = this._tbProveedor.direccion;
         txtConvencional.Text      = this._tbProveedor.convencional;
         txtCelular.Text           = this._tbProveedor.celular;
         txtCorreoElectronico.Text = this._tbProveedor.correoElectronico;
     }
     catch (Exception ex)
     {
         Util.MostrarException(this.Text, ex);
     }
 }
Пример #16
0
        private void tsbGenerar_Click(object sender, EventArgs e)
        {
            tbProveedor proveedor = (tbProveedor)cmbProveedor.SelectedItem;

            if (ordenPedido.idOrdenPedidoCabecera == 0)
            {
                MessageBox.Show("Seleccione un registro para poder generar la orden de pedido", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (proveedor.idProveedor == 0)
            {
                MessageBox.Show("Seleccione un proveedor para poder generar la orden de pedido", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (ordenPedidoDetalle.Where(x => x.estadoRegistro).Count() == 0)
            {
                MessageBox.Show("Ingrese al menos 1 producto para poder generar la orden de pedido", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
            }
        }
Пример #17
0
        public ActionResult CambiarEstado(int id, FormCollection collection)
        {
            dbHeredadesEntities db = new dbHeredadesEntities();
            // obtengo el pago y le cambio el estado
            tbPagoProveedor pago = db.tbPagoProveedor.Find(id);

            pago.estado = !(pago.estado);
            // en este punto, el estado es el final, si es verdadero (se habilita) se resta de la deuda, si es falso (se deshabilito) sumar a la deuda
            tbProveedor proveedor = db.tbProveedor.Find(pago.codProveedor);

            if (pago.estado)
            {
                proveedor.deuda -= pago.pago;
            }
            else
            {
                proveedor.deuda += pago.pago;
            }
            db.SaveChanges();
            return(RedirectToAction("VerPagos", new { id = pago.codProveedor }));
        }
Пример #18
0
 public int CrearEntrada(int codProveedor, List <tbProductoTransaccion> lista, string descripcion)
 {
     try
     {
         dbHeredadesEntities db = new dbHeredadesEntities();
         // creo el objeto transacción
         tbTransaccion nuevaEntrada = new tbTransaccion
         {
             codProveedor       = codProveedor,
             codTipoTransaccion = 1,
             codUsuario         = Sesion.ObtenerCodigo(),
             descripcion        = descripcion,
             fecha  = DateTime.Now,
             estado = true
         };
         decimal deuda = 0;
         foreach (tbProductoTransaccion item in lista)
         {
             // se asigna el precio de compra al item y se agrega a la tabla JOIN de productoTransacción
             item.precioCompra = db.tbProductoProveedor.Find(codProveedor, item.codProducto, item.codPresentacion).precioCompra;
             nuevaEntrada.tbProductoTransaccion.Add(item);
             // se agrega a la existencia del producto
             tbProductoPresentacion prod = db.tbProductoPresentacion.Find(item.codProducto, item.codPresentacion);
             prod.existencia += item.cantidad;
             // sumo a la deuda precioCompra * cantidadEntrada.
             deuda += item.cantidad * item.precioCompra.Value;
         }
         // calculo deuda total de entrada y la sumo a deuda total al proveedor.
         tbProveedor proveedor = db.tbProveedor.Find(codProveedor);
         proveedor.deuda += deuda;
         //agrego la transaccion y guardo cambios
         db.tbTransaccion.Add(nuevaEntrada);
         db.SaveChanges();
         return(1);
     }
     catch (Exception)
     {
         return(2);
     }
 }
Пример #19
0
        // GET: Proveedor/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            tbProveedor tbProveedor = db.tbProveedor.Find(id);
            string      _depto      = db.tbMunicipio.Find(tbProveedor.mun_codigo).dep_codigo;

            if (tbProveedor == null)
            {
                return(HttpNotFound());
            }

            ViewBag.mun_codigo = new SelectList(db.tbMunicipio.Where(x => x.dep_codigo == _depto), "mun_codigo", "mun_nombre", tbProveedor.mun_codigo);
            ViewBag.acte_Id    = new SelectList(db.tbActividadEconomica, "acte_Id", "acte_Descripcion", tbProveedor.acte_Id);
            ViewBag.mun_Codigo = new SelectList(db.tbMunicipio, "mun_codigo", "mun_nombre", tbProveedor.mun_codigo);
            string depCod = (from _dep in db.tbMunicipio where _dep.mun_codigo == tbProveedor.mun_codigo select _dep.dep_codigo).FirstOrDefault();

            ViewBag.dep_Codigo = new SelectList(db.tbDepartamento, "dep_Codigo", "dep_Nombre", depCod);
            return(View(tbProveedor));
        }
Пример #20
0
        public void insertarProveedor()
        {
            String prov = textBox1.Text.Trim();
            String cont = textBox2.Text.Trim();
            String tel  = textBox4.Text.Trim();

            if ((prov.Length > 0) && (cont.Length > 0) && (tel.Length > 0))
            {
                tbProveedor tbproveedor = new tbProveedor()
                {
                    // codProveedor = incremetal,
                    proveedor      = textBox1.Text.Trim(),
                    contacto       = textBox2.Text.Trim(),
                    direccion      = textBox3.Text.Trim(),
                    telefono       = textBox4.Text.Trim(),
                    codigoPostal   = textBox5.Text.Trim(),
                    fax            = textBox6.Text.Trim(),
                    nit            = textBox7.Text.Trim(),
                    estadoFiscal   = textBox8.Text.Trim(),
                    cuentaBancaria = textBox9.Text.Trim()
                };
                bd.tbProveedor.InsertOnSubmit(tbproveedor);
                try
                {
                    bd.SubmitChanges();
                    padre.llenarComboProveedor();
                    MessageBox.Show("Se ha agregado una nuevo proveedor");
                    this.Close();
                }
                catch (Exception ec)
                {
                    MessageBox.Show("Error al ingresar registro" + ec.Message);
                }
            }
            else
            {
                MessageBox.Show("Debe llenar los campos obligatorios");
            }
        }
Пример #21
0
        public ActionResult Pagar(FormCollection collection)
        {
            dbHeredadesEntities db = new dbHeredadesEntities();
            // creo objeto representante del pago
            tbPagoProveedor pago = new tbPagoProveedor
            {
                codProveedor = int.Parse(collection["codProveedor"]),
                codUsuario   = Sesion.ObtenerCodigo(),
                fecha        = DateTime.Now,
                pago         = decimal.Parse(collection["pago"]),
                descripcion  = collection["descripcion"],
                estado       = true
            };
            // llamo al proveedor para restarle la deuda
            tbProveedor proveedor = db.tbProveedor.Find(pago.codProveedor);

            proveedor.deuda -= pago.pago;
            //agrego el pago a la tabla y guardo cambios
            db.tbPagoProveedor.Add(pago);
            if (collection["rdFuente"] == "caja")
            {
                //el pago se debe de efectuar desde caja, de lo contrario no se resta nada de caja
                tbTransaccionCaja transaccionCaja = new tbTransaccionCaja
                {
                    tipoTransaccion = 1,
                    codUsuario      = Sesion.ObtenerCodigo(),
                    cantidad        = pago.pago,
                    fecha           = DateTime.Now,
                    descripcion     = "Pago a " + proveedor.proveedor
                };
                CajaController.Restar(pago.pago);
                db.tbTransaccionCaja.Add(transaccionCaja);
            }
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Пример #22
0
        private void frmProveedores_Load(object sender, EventArgs e)
        {
            _dbCosolemEntities = new dbCosolemEntities();

            _tbProveedor = new tbProveedor {
                estadoRegistro = true
            };
            _dbCosolemEntities.ObjectStateManager.ChangeObjectState(_tbProveedor, EntityState.Detached);

            cmbTipoPersona.DataSource    = (from TP in _dbCosolemEntities.tbTipoPersona select new TipoPersona {
                idTipoPersona = TP.idTipoPersona, descripcion = TP.descripcion
            }).ToList();
            cmbTipoPersona.ValueMember   = "idTipoPersona";
            cmbTipoPersona.DisplayMember = "descripcion";
            cmbTipoPersona_SelectionChangeCommitted(null, null);

            txtNumeroIdentificacion.Clear();
            txtNombres.Clear();
            txtDireccion.Clear();
            txtConvencional.Clear();
            txtCorreoElectronico.Clear();

            txtNumeroIdentificacion.Select();
        }
Пример #23
0
        public ActionResult Productos(int id)
        {
            dbHeredadesEntities db        = new dbHeredadesEntities();
            tbProveedor         proveedor = db.tbProveedor.Find(id);

            ViewBag.proveedor    = proveedor.proveedor;
            ViewBag.codproveedor = proveedor.codProveedor;
            List <tbProducto> productos = db.tbProducto.Where(t => t.estado).OrderBy(t => t.producto).ToList();

            ViewBag.codProducto     = new SelectList(productos, "codProducto", "producto");
            ViewBag.codPresentacion = new SelectList(new List <tbPresentacion>(), "codPresentacion", "presentacion");
            ViewBag.productos       = (from t in db.tbProductoProveedor
                                       where t.codProveedor == id && t.estado
                                       orderby t.tbProductoPresentacion.correlativo descending
                                       select new
            {
                t.codProveedor,
                t.codProducto,
                t.codPresentacion,
                t.precioCompra,
                t.estado
            }).ToList();
            return(View());
        }
Пример #24
0
        public ActionResult RecivirPedido(int id)
        {
            dbHeredadesEntities db = new dbHeredadesEntities();
            // obtengo el pedido y lo convierto en una entrada
            tbTransaccion transaccion = db.tbTransaccion.Find(id);

            transaccion.codTipoTransaccion = 1;
            // cambio el usuario por el que recive el pedido
            transaccion.codUsuario = Sesion.ObtenerCodigo();
            transaccion.fecha      = DateTime.Now;
            foreach (tbProductoTransaccion item in transaccion.tbProductoTransaccion)
            {
                // a cada producto comprado le ingreso el precio de compra
                item.precioCompra = db.tbProductoProveedor.Find(transaccion.codProveedor, item.codProducto, item.codPresentacion).precioCompra;
                // agrego la entrada a la existencia
                tbProductoPresentacion producto = db.tbProductoPresentacion.Find(item.codProducto, item.codPresentacion);
                producto.existencia += item.cantidad;
                // agrego la deuda al proveedor
                tbProveedor proveedor = db.tbProveedor.Find(transaccion.codProveedor);
                proveedor.deuda += item.precioCompra.Value * item.cantidad;
            }
            db.SaveChanges();
            return(RedirectToAction("Pedidos"));
        }
Пример #25
0
        public ActionResult Edit([Bind(Include = "prov_Id,prov_Nombre,prov_NombreContacto,prov_Direccion,mun_codigo,prov_Email,prov_Telefono,prov_RTN,acte_Id")] tbProveedor tbProveedor)
        {
            string UserName = "";

            try
            {
                int EmployeeID = Function.GetUser(out UserName);
                ViewBag.acte_Id    = new SelectList(db.tbActividadEconomica, "acte_Id", "acte_Descripcion");
                ViewBag.mun_Codigo = new SelectList(db.tbMunicipio, "mun_codigo", "dep_codigo", tbProveedor.mun_codigo);
                ViewBag.mun_codigo = new SelectList(db.tbMunicipio, "mun_codigo", "mun_nombre");
                ViewBag.dep_Codigo = new SelectList(db.tbDepartamento, "dep_Codigo", "dep_Nombre");
                if (ModelState.IsValid)
                {
                    if (db.tbProveedor.Any(a => a.prov_RTN == tbProveedor.prov_RTN && a.prov_Id != tbProveedor.prov_Id))
                    {
                        string Error = "Ya existe un proveedor con este RTN.";
                        Function.BitacoraErrores("Proveedor", "EditPost", UserName, Error);
                        ModelState.AddModelError("", Error);
                        return(View(tbProveedor));
                    }


                    IEnumerable <Object> List = null;
                    string Msj = "";
                    List = db.UDP_Inv_tbProveedor_Update(tbProveedor.prov_Id,
                                                         tbProveedor.prov_Nombre,
                                                         tbProveedor.prov_NombreContacto,
                                                         tbProveedor.prov_Direccion,
                                                         tbProveedor.mun_codigo,
                                                         tbProveedor.prov_Email,
                                                         tbProveedor.prov_Telefono,
                                                         tbProveedor.prov_RTN,
                                                         tbProveedor.acte_Id,
                                                         EmployeeID, Function.DatetimeNow());
                    foreach (UDP_Inv_tbProveedor_Update_Result Permiso in List)
                    {
                        Msj = Permiso.MensajeError;
                    }
                    if (Msj.StartsWith("-1"))
                    {
                        Function.BitacoraErrores("Proveedor", "EditPost", UserName, Msj);
                        ModelState.AddModelError("", "No se pudo insertar el registro, favor contacte al administrador.");
                        ViewBag.acte_Id    = new SelectList(db.tbActividadEconomica, "acte_Id", "acte_Descripcion");
                        ViewBag.mun_Codigo = new SelectList(db.tbMunicipio, "mun_codigo", "dep_codigo", tbProveedor.mun_codigo);
                        ViewBag.mun_codigo = new SelectList(db.tbMunicipio, "mun_codigo", "mun_nombre");
                        ViewBag.dep_Codigo = new SelectList(db.tbDepartamento, "dep_Codigo", "dep_Nombre");
                        return(View(tbProveedor));
                    }
                    else
                    {
                        return(RedirectToAction("Index"));
                    }
                }
                return(View(tbProveedor));
            }
            catch (Exception Ex)
            {
                Function.BitacoraErrores("Proveedor", "EditPost", UserName, Ex.Message.ToString());
                ModelState.AddModelError("", "No se pudo insertar el registro, favor contacte al administrador.");
                return(View(tbProveedor));
            }
        }
Пример #26
0
        public ActionResult Create([Bind(Include = "prov_Id,prov_Nombre,prov_NombreContacto,prov_Direccion,mun_codigo,prov_Email,prov_Telefono,prov_RTN,acte_Id,prov_UsuarioCrea,prov_FechaCrea,prov_UsuarioModifica,prov_FechaModifica")] tbProveedor tbProveedor, string dep_codigo)
        {
            string UserName = "";

            try
            {
                int EmployeeID = Function.GetUser(out UserName);
                if (tbProveedor.mun_codigo == "Seleccione")
                {
                    ModelState.AddModelError("mun_codigo", "El campo Municipio es obligatorio.");
                }
                else
                {
                    ViewBag.munCodigo = tbProveedor.mun_codigo;
                }

                if (String.IsNullOrEmpty(dep_codigo))
                {
                    ModelState.AddModelError("prov_UsuarioCrea", "El campo Departamento es obligatorio.");
                }
                if (ModelState.IsValid)
                {
                    ViewBag.selectedMun = tbProveedor.mun_codigo;
                    ViewBag.acte_Id     = new SelectList(db.tbActividadEconomica, "acte_Id", "acte_Descripcion");
                    IEnumerable <Object> List = null;
                    string Msj = "";
                    List = db.UDP_Inv_tbProveedor_Insert(tbProveedor.prov_Id,
                                                         tbProveedor.prov_Nombre,
                                                         tbProveedor.prov_NombreContacto,
                                                         tbProveedor.prov_Direccion,
                                                         tbProveedor.mun_codigo,
                                                         tbProveedor.prov_Email,
                                                         tbProveedor.prov_Telefono,
                                                         tbProveedor.prov_RTN,
                                                         tbProveedor.acte_Id,
                                                         EmployeeID, Function.DatetimeNow());
                    foreach (UDP_Inv_tbProveedor_Insert_Result Permiso in List)
                    {
                        Msj = Permiso.MensajeError;
                    }
                    if (Msj.StartsWith("-1"))
                    {
                        Function.BitacoraErrores("Proveedor", "CreatePost", UserName, Msj);
                        ViewBag.dep_codigo = new SelectList(db.tbDepartamento, "dep_Codigo", "dep_Nombre", dep_codigo);
                        ViewBag.acte_Id    = new SelectList(db.tbActividadEconomica, "acte_Id", "acte_Descripcion", tbProveedor.acte_Id);
                        ViewBag.mun_Codigo = new SelectList(db.tbMunicipio, "mun_codigo", "dep_codigo", tbProveedor.mun_codigo);
                        return(View());
                    }
                    if (Msj.StartsWith("-2"))
                    {
                        ViewBag.dep_codigo = new SelectList(db.tbDepartamento, "dep_Codigo", "dep_Nombre", dep_codigo);
                        ViewBag.acte_Id    = new SelectList(db.tbActividadEconomica, "acte_Id", "acte_Descripcion", tbProveedor.acte_Id);
                        ViewBag.mun_Codigo = new SelectList(db.tbMunicipio, "mun_codigo", "dep_codigo", tbProveedor.mun_codigo);
                        ModelState.AddModelError("", "Este RTN ya fue registrado.");
                        return(View(tbProveedor));
                    }
                    else
                    {
                        TempData["swalfunction"] = "true";
                        return(RedirectToAction("Index"));
                    }
                }
            }
            catch (Exception Ex)
            {
                Function.BitacoraErrores("Proveedor", "CreatePost", UserName, Ex.Message.ToString());
                ModelState.AddModelError("", "No se pudo insertar el registro, favor contacte al administrador.");
                return(View());
            }
            ViewBag.dep_codigo = new SelectList(db.tbDepartamento, "dep_Codigo", "dep_Nombre", dep_codigo);
            ViewBag.acte_Id    = new SelectList(db.tbActividadEconomica, "acte_Id", "acte_Descripcion");
            ViewBag.mun_Codigo = new SelectList(db.tbMunicipio, "mun_codigo", "dep_codigo", tbProveedor.mun_codigo);

            if (dep_codigo != "ajax")
            {
                return(View("Create"));
            }
            else
            {
                return(Json("Create"));
            }
        }