Beispiel #1
0
        public bool ActualizarEstadoBD(Compra_Info info)
        {
            try
            {
                using (EntitiesGeneral db = new EntitiesGeneral())
                {
                    Compra entity = db.Compra.Where(q => q.IdCompra == info.IdCompra).FirstOrDefault();

                    if (entity == null)
                    {
                        return(false);
                    }

                    entity.Estado = info.Estado;

                    db.SaveChanges();
                }
                return(true);
            }
            catch (Exception EX)
            {
                data_log.GuardarDB(new LogError_Info
                {
                    Controlador = "GenerarOrdenCompra",
                    Error       = "Error: " + EX.ToString() + " " + string.Format("Compra: {0}", JsonConvert.SerializeObject(info)),
                    IdUsuario   = info.IdUsuario
                });
                return(true);
            }
        }
Beispiel #2
0
        public ActionResult Modificar(int IdCompra = 0, bool Exito = false)
        {
            #region Validar Session
            if (string.IsNullOrEmpty(SessionFixed.IdTransaccionSession))
            {
                return(RedirectToAction("Login", new { Area = "", Controller = "Account" }));
            }
            SessionFixed.IdTransaccionSession       = (Convert.ToDecimal(SessionFixed.IdTransaccionSession) + 1).ToString();
            SessionFixed.IdTransaccionSessionActual = SessionFixed.IdTransaccionSession;
            #endregion

            Compra_Info model = data_compra.get_info(IdCompra);

            if (model == null)
            {
                return(RedirectToAction("Index"));
            }

            model.IdTransaccionSession  = Convert.ToDecimal(SessionFixed.IdTransaccionSession);
            model.lst_CompraDetProducto = data_compra_det.get_list(Convert.ToInt32(model.IdCompra));
            Lista_CompraDet.set_list(model.lst_CompraDetProducto, model.IdTransaccionSession);

            if (Exito)
            {
                ViewBag.MensajeSuccess = MensajeSuccess;
            }

            ViewBag.EsAdministrador = (SessionFixed.TipoUsuario == @WEBPJ.Info.Enumeradores.eTipoUsuario.ADMINISTRADOR.ToString() ? true : false);

            cargar_combos(model);
            return(View(model));
        }
Beispiel #3
0
        public ActionResult Nuevo(Compra_Info model)
        {
            model.lst_CompraDetProducto = Lista_CompraDet.get_list(model.IdTransaccionSession);
            var info_proveedor = data_proveedor.get_info("PRV", model.ProvCodigo);
            var info_producto  = data_producto.get_info(model.IdProducto);

            model.ProvCedulaRuc = info_proveedor.Ruc;
            model.ProvCodigo    = info_proveedor.Codigo;
            model.ProvNombre    = info_proveedor.Nombre;
            model.ProvTipo      = info_proveedor.Tipo;
            model.Codigo        = info_producto.Codigo;
            model.Dispositivo   = Dns.GetHostName();
            model.Comentario    = (model.Comentario == null ? "" : model.Comentario);
            if (!validar(model, ref mensaje))
            {
                ViewBag.mensaje = mensaje;
                SessionFixed.IdTransaccionSessionActual = model.IdTransaccionSession.ToString();
                cargar_combos(model);
                return(View(model));
            }

            if (!data_compra.GuardarBD(model))
            {
                SessionFixed.IdTransaccionSessionActual = model.IdTransaccionSession.ToString();
                ViewBag.mensaje = "No se ha podido guardar el registro";
                cargar_combos(model);
                return(View(model));
            }

            return(RedirectToAction("Modificar", new { IdCompra = model.IdCompra, Exito = true }));
        }
Beispiel #4
0
        public JsonResult GenerarOrdenCompra(string Ids)
        {
            string[] array  = Ids.Split(',');
            var      output = array.GroupBy(q => q).ToList();

            foreach (var item in output)
            {
                if (item.Key != "")
                {
                    var         info        = ListaOrdenCompra.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual)).Where(v => v.IdCompra == Convert.ToDecimal(item.Key)).FirstOrDefault();
                    Compra_Info info_compra = new Compra_Info();
                    //info_compra.lst_CompraDetProducto = new List<CompraDetalle_Info>();

                    info_compra = data_compra.get_info(Convert.ToDecimal(item.Key));
                    var info_producto = data_producto.get_info(info_compra.IdProducto);
                    info_compra.CodProducto           = info_producto.Codigo;
                    info_compra.NomProducto           = info_producto.Descripcion;
                    info_compra.lst_CompraDetProducto = data_compra_det.get_list(Convert.ToDecimal(item.Key));
                    if (info_compra != null)
                    {
                        info_compra.Estado = "A";
                        if (data_compra.GuardarOrdenCompraBD(info_compra))
                        {
                            data_compra.ActualizarEstadoBD(info_compra);
                        }
                    }
                }
            }
            return(Json("", JsonRequestBehavior.AllowGet));
        }
Beispiel #5
0
        public bool ModificarBD(Compra_Info info)
        {
            try
            {
                using (EntitiesGeneral db = new EntitiesGeneral())
                {
                    Compra entity = db.Compra.Where(q => q.IdCompra == info.IdCompra).FirstOrDefault();

                    if (entity != null)
                    {
                        entity.ProvCodigo    = info.ProvCodigo;
                        entity.ProvCedulaRuc = info.ProvCedulaRuc;
                        entity.ProvNombre    = info.ProvNombre;
                        entity.ProvTipo      = info.ProvTipo;
                        entity.Fecha         = info.Fecha.Date;
                        entity.Calificacion  = info.Calificacion;
                        entity.Precio        = info.Precio;
                        entity.Cantidad      = info.Cantidad;
                        entity.Total         = info.Total;
                        entity.Estado        = info.Estado;
                        entity.Comentario    = info.Comentario;
                    }

                    var lst_compra_detalle = db.CompraDetalle.Where(q => q.IdCompra == info.IdCompra).ToList();
                    db.CompraDetalle.RemoveRange(lst_compra_detalle);

                    if (info.lst_CompraDetProducto != null)
                    {
                        int Secuencia = 1;

                        foreach (var item in info.lst_CompraDetProducto)
                        {
                            db.CompraDetalle.Add(new CompraDetalle
                            {
                                IdCompra         = info.IdCompra,
                                Descripcion      = item.Descripcion,
                                Secuencia        = Secuencia++,
                                Minimo           = item.Minimo,
                                Maximo           = item.Maximo,
                                Ponderacion      = item.Ponderacion,
                                EsObligatorio    = item.EsObligatorio,
                                PorcentajeMinimo = item.PorcentajeMinimo,
                                ValorOptimo      = item.ValorOptimo,
                                Valor            = item.Valor
                            });
                        }
                    }

                    db.SaveChanges();
                }
                return(true);
            }
            catch (Exception EX)
            {
                throw;
            }
        }
Beispiel #6
0
        public ActionResult EditingAnular([ModelBinder(typeof(DevExpressEditorsBinder))] Compra_Info info_det)
        {
            Lista_Compra.AnularRow(info_det, Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            var model = Lista_Compra.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));

            if (model != null)
            {
                data_compra.AnularBD(model.Where(q => q.IdCompra == info_det.IdCompra).FirstOrDefault());
            }

            cargar_combos_grid();
            return(PartialView("_GridViewPartial_Compra", model));
        }
Beispiel #7
0
        public ActionResult Anular(Compra_Info model)
        {
            model.Estado = "X";
            if (!data_compra.AnularBD(model))
            {
                ViewBag.mensaje = "No se ha podido anular el registro";

                model.IdTransaccionSession  = Convert.ToDecimal(SessionFixed.IdTransaccionSession);
                model.lst_CompraDetProducto = Lista_CompraDet.get_list(Convert.ToInt32(model.IdProducto));
                Lista_CompraDet.set_list(model.lst_CompraDetProducto, model.IdTransaccionSession);
                cargar_combos(model);
                return(View(model));
            }
            ;
            return(RedirectToAction("Index"));
        }
Beispiel #8
0
        public void UpdateRow(Compra_Info info_det, decimal IdTransaccionSession)
        {
            Compra_Info edited_info = get_list(IdTransaccionSession).Where(m => m.IdCompra == info_det.IdCompra).FirstOrDefault();

            var info_producto = data_producto.get_info(edited_info.IdProducto);
            var info_usuario  = data_usuario.get_info(edited_info.IdUsuario);

            edited_info.IdUsuario    = info_det.IdUsuario;
            edited_info.IdProducto   = info_det.IdProducto;
            edited_info.NomUsuario   = info_usuario.Nombre;
            edited_info.NomProducto  = info_producto.Descripcion;
            edited_info.Cantidad     = info_det.Cantidad;
            edited_info.Precio       = info_det.Precio;
            edited_info.Calificacion = info_det.Calificacion;
            edited_info.Fecha        = info_det.Fecha.Date;
            edited_info.Total        = info_det.Precio * info_det.Cantidad;
            edited_info.Comentario   = info_det.Comentario;
            edited_info.Estado       = info_det.Estado;
        }
Beispiel #9
0
        public Compra_Info get_info(decimal IdCompra)
        {
            try
            {
                Compra_Info info = new Compra_Info();
                using (EntitiesGeneral Context = new EntitiesGeneral())
                {
                    Compra Entity = Context.Compra.Where(q => q.IdCompra == IdCompra).FirstOrDefault();

                    if (Entity == null)
                    {
                        return(null);
                    }
                    info = new Compra_Info
                    {
                        IdCompra      = Entity.IdCompra,
                        ProvCedulaRuc = Entity.ProvCedulaRuc,
                        ProvNombre    = Entity.ProvNombre,
                        ProvCodigo    = Entity.ProvCodigo,
                        IdUsuario     = Entity.IdUsuario,
                        IdProducto    = Entity.IdProducto,
                        Calificacion  = Entity.Calificacion,
                        Fecha         = Entity.Fecha,
                        Precio        = Entity.Precio,
                        Cantidad      = Entity.Cantidad,
                        Total         = Entity.Total,
                        Comentario    = Entity.Comentario,
                        Estado        = Entity.Estado,
                        Codigo        = Entity.Codigo
                    };
                }

                return(info);
            }
            catch (Exception)
            {
                throw;
            }
        }
Beispiel #10
0
        private bool validar(Compra_Info i_validar, ref string msg)
        {
            if (i_validar.Cantidad == 0)
            {
                msg = "Debe ingresar cantidad";
                return(false);
            }

            if (i_validar.IdProducto == 0)
            {
                msg = "Debe ingresar producto";
                return(false);
            }

            if (i_validar.IdProducto == 0)
            {
                msg = "Debe ingresar proveedor";
                return(false);
            }

            return(true);
        }
Beispiel #11
0
        public ActionResult Modificar(Compra_Info model)
        {
            var info_compra = data_compra.get_info(model.IdCompra);

            if (SessionFixed.TipoUsuario != @WEBPJ.Info.Enumeradores.eTipoUsuario.ADMINISTRADOR.ToString())
            {
                model.Estado = info_compra.Estado;
            }

            model.lst_CompraDetProducto = Lista_CompraDet.get_list(model.IdTransaccionSession);
            var info_proveedor = data_proveedor.get_info("PRV", model.ProvCodigo);
            var info_producto  = data_producto.get_info(model.IdProducto);

            model.ProvCedulaRuc = info_proveedor.Ruc;
            model.ProvCodigo    = info_proveedor.Codigo;
            model.ProvNombre    = info_proveedor.Nombre;
            model.ProvTipo      = info_proveedor.Tipo;
            model.Comentario    = (model.Comentario == null ? "" : model.Comentario);
            if (!validar(model, ref mensaje))
            {
                ViewBag.mensaje = mensaje;
                SessionFixed.IdTransaccionSessionActual = model.IdTransaccionSession.ToString();
                cargar_combos(model);
                return(View(model));
            }

            if (!data_compra.ModificarBD(model))
            {
                SessionFixed.IdTransaccionSessionActual = model.IdTransaccionSession.ToString();
                ViewBag.mensaje = "No se ha podido modificar el registro";
                cargar_combos(model);
                return(View(model));
            }
            //return RedirectToAction("Index");
            return(RedirectToAction("Modificar", new { IdCompra = model.IdCompra, Exito = true }));
        }
Beispiel #12
0
        public bool AnularBD(Compra_Info info)
        {
            try
            {
                using (EntitiesGeneral db = new EntitiesGeneral())
                {
                    Compra entity = db.Compra.Where(q => q.IdCompra == info.IdCompra).FirstOrDefault();

                    if (entity == null)
                    {
                        return(false);
                    }

                    entity.Estado = info.Estado;

                    db.SaveChanges();
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
Beispiel #13
0
        public void cargar_combos(Compra_Info model)
        {
            var lst_productos = data_proveedor_producto.GetList_Combo(model.ProvCodigo);

            if (lst_productos == null)
            {
                lst_productos = new List <Producto_Info>();
            }
            ViewBag.lst_productos = lst_productos;

            var lst_proveedor = data_proveedor.get_list();

            if (lst_proveedor == null)
            {
                lst_proveedor = new List <Proveedor_Info>();
            }
            ViewBag.lst_proveedor = lst_proveedor;

            var lst_Usuarios = data_usuario.get_list(false);

            lst_Usuarios.Add(new Usuario_Info
            {
                IdUsuario = "",
                Nombre    = "TODOS"
            });
            ViewBag.lst_Usuarios = lst_Usuarios;

            Dictionary <string, string> lst_Estado = new Dictionary <string, string>();

            lst_Estado.Add("A", "PROCESADO");
            lst_Estado.Add("P", "PENDIENTE");
            lst_Estado.Add("I", "NO PROCESADO");
            lst_Estado.Add("X", "ANULADOS");
            lst_Estado.Add("", "TODOS");
            ViewBag.lst_Estado = lst_Estado;
        }
Beispiel #14
0
        public ActionResult Nuevo()
        {
            #region Validar Session
            if (string.IsNullOrEmpty(SessionFixed.IdTransaccionSession))
            {
                return(RedirectToAction("Login", new { Area = "", Controller = "Account" }));
            }
            SessionFixed.IdTransaccionSession       = (Convert.ToDecimal(SessionFixed.IdTransaccionSession) + 1).ToString();
            SessionFixed.IdTransaccionSessionActual = SessionFixed.IdTransaccionSession;
            #endregion

            Compra_Info model = new Compra_Info
            {
                IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSession),
                Fecha     = DateTime.Now,
                IdUsuario = SessionFixed.IdUsuario,
                Estado    = "P"
            };
            ViewBag.EsAdministrador     = (SessionFixed.TipoUsuario == @WEBPJ.Info.Enumeradores.eTipoUsuario.ADMINISTRADOR.ToString() ? true : false);
            model.lst_CompraDetProducto = new List <CompraDetalle_Info>();
            Lista_CompraDet.set_list(model.lst_CompraDetProducto, model.IdTransaccionSession);
            cargar_combos(model);
            return(View(model));
        }
Beispiel #15
0
        public bool GuardarOrdenCompraBD(Compra_Info info)
        {
            try
            {
                using (EntitiesNexpirion db = new EntitiesNexpirion())
                {
                    db.SetCommandTimeOut(3000);
                    if (db.indocume.Where(q => q.num_recibo == info.Codigo && q.eliminado == false && q.fecha == info.Fecha).Count() > 0)
                    {
                        return(true);
                    }

                    var info_producto = data_producto.get_info_ProductoNexp(info.CodProducto.ToString().Trim());
                    if (info_producto == null)
                    {
                        return(true);
                    }
                    var info_proveedor_nx = data_proveedor.get_info_ProveedorNexp(info.ProvCodigo.ToString().Trim());
                    if (info_proveedor_nx == null)
                    {
                        return(true);
                    }
                    var info_proveedor = data_proveedor.get_info("PRV", info.ProvCodigo.ToString().Trim());
                    if (info_proveedor == null)
                    {
                        return(true);
                    }
                    var info_bodega = data_producto.get_info_BodegaNexp(info.CodProducto.ToString().Trim());
                    if (info_bodega == null)
                    {
                        return(true);
                    }
                    var      nombre     = info_producto.nombre.ToString().Substring(0, 59);
                    dbultnum entity     = db.dbultnum.Where(q => q.tipo == "CO").FirstOrDefault();
                    var      num_compra = entity.numero + 1;

                    db.indocume.Add(new indocume
                    {
                        tipo        = "CO",
                        numero      = num_compra,
                        pedido      = 0,
                        fecha       = info.Fecha,
                        fecha_fac   = info.Fecha,
                        fecha_com   = info.Fecha,
                        producto    = info_producto.codigo,
                        nombre      = nombre,
                        cantidad    = Convert.ToDecimal(info.Cantidad),
                        proveedor   = info_proveedor_nx.codigo,
                        concepto    = info_proveedor.ConceptoCompra,
                        plazo       = 0,
                        porc_desc   = 0,
                        factor      = 0,
                        total       = Convert.ToDecimal(info.Total),
                        costo       = Convert.ToDecimal(info.Precio),
                        fob         = 0,
                        orden       = "",
                        comentario  = info.Comentario,
                        tip_aplic   = "",
                        num_aplic   = 0,
                        tip_aplix   = "",
                        num_aplix   = 0,
                        bloqueado   = false,
                        aprobado    = false,
                        usuario     = "",
                        digitado    = DateTime.Now.Date,
                        fecha_apr   = DateTime.Now.Date,
                        cantidad_op = 0,
                        impreso     = false,
                        eliminado   = false,
                        bodega_int  = info_bodega.bodega_int,
                        bodega_orig = "",
                        solicita    = false,
                        aceptado    = false,
                        fecha_soli  = DateTime.Now.Date,
                        fecha_recep = DateTime.Now.Date,
                        fecha_acep  = DateTime.Now.Date,
                        recibido    = false,
                        lote        = "",
                        num_recibo  = Convert.ToDecimal(info.Codigo).ToString(),
                        usr_agr     = "",
                        usr_cor     = "",
                        centro      = ""
                    });

                    db.fcmovinv.Add(new fcmovinv
                    {
                        tipo       = "CO",
                        numero     = num_compra,
                        numreg     = 1,
                        fecha      = info.Fecha,
                        producto   = info_producto.codigo,
                        nombre     = nombre,
                        bodega     = "",
                        fra        = Convert.ToDecimal(info.Precio),
                        peso       = info_producto.peso,
                        und        = Convert.ToDecimal(info.Cantidad),
                        cantidad   = Convert.ToDecimal(info.Cantidad),
                        stock      = 0,
                        tip_ped    = "",
                        pedido     = 0,
                        tipreg     = 1,
                        descuento  = 0,
                        precio_vta = Convert.ToDecimal(info.Precio),
                        precio_lst = Convert.ToDecimal(info.Precio),
                        subtotal   = Convert.ToDecimal(info.Total),
                        costo_und  = Convert.ToDecimal(info.Precio),
                        costo      = Convert.ToDecimal(info.Precio),
                        promedio   = 0,
                        tip_prec   = 0,
                        tip_produc = info_producto.tipoitm,
                        porc_desc  = 0,
                        sucursal   = "",
                        cliente    = "",
                        vendedor   = "",
                        servicio   = false,
                        ubicacion  = "",
                        motivo     = "",
                        eliminado  = false,
                        usuario    = "",
                        digitado   = DateTime.Now.Date,
                        concepto   = "",
                        comentario = info.Comentario,
                        bodega_int = info_bodega.bodega_int,
                        lote       = "",
                        usr_agr    = "",
                        usr_cor    = ""
                    });

                    entity.numero = num_compra;

                    db.SaveChanges();
                }
                return(true);
            }
            catch (Exception EX)
            {
                data_log.GuardarDB(new LogError_Info
                {
                    Controlador = "GenerarOrdenCompra",
                    Error       = "Error: " + EX.ToString() + " " + string.Format("Compra: {0}", JsonConvert.SerializeObject(info)),
                    IdUsuario   = info.IdUsuario
                });
                return(false);
            }
        }
Beispiel #16
0
        public ActionResult CmbProveedor()
        {
            Compra_Info model = new Compra_Info();

            return(PartialView("_CmbProveedor", model));
        }
Beispiel #17
0
        public bool GuardarBD(Compra_Info info)
        {
            try
            {
                using (EntitiesGeneral db = new EntitiesGeneral())
                {
                    var info_dispositivo = data_dispositivo.get_info(info.Dispositivo);
                    if (info_dispositivo == null)
                    {
                        db.Dispositivo.Add(new Dispositivo
                        {
                            IdDispositivo  = data_dispositivo.get_id(),
                            Dispositivo1   = info.Dispositivo,
                            di_Descripcion = ""
                        });
                    }

                    db.Compra.Add(new Compra
                    {
                        IdCompra                 = info.IdCompra = get_id(),
                        ProvCedulaRuc            = info.ProvCedulaRuc,
                        ProvNombre               = info.ProvNombre,
                        ProvCodigo               = info.ProvCodigo,
                        ProvTipo                 = info.ProvTipo,
                        IdUsuario                = info.IdUsuario,
                        IdProducto               = info.IdProducto,
                        Calificacion             = info.Calificacion,
                        Precio                   = info.Precio,
                        Fecha                    = info.Fecha.Date,
                        Cantidad                 = info.Cantidad,
                        Total                    = info.Total,
                        Comentario               = info.Comentario,
                        Dispositivo              = info.Dispositivo,
                        SecuenciaDispositivoComp = info.SecuenciaDispositivoComp = get_SecuencialDispositivo(info.IdUsuario, info.Dispositivo),
                        Codigo                   = info.SecuenciaDispositivoComp.ToString().PadLeft(10, '0'),
                        Estado                   = info.Estado
                    });

                    if (info.lst_CompraDetProducto.Count > 0)
                    {
                        int Secuencia = 1;
                        foreach (var item in info.lst_CompraDetProducto)
                        {
                            db.CompraDetalle.Add(new CompraDetalle
                            {
                                IdCompra         = info.IdCompra,
                                Descripcion      = item.Descripcion,
                                Secuencia        = Secuencia++,
                                Minimo           = item.Minimo,
                                Maximo           = item.Maximo,
                                Ponderacion      = item.Ponderacion,
                                EsObligatorio    = item.EsObligatorio,
                                PorcentajeMinimo = item.PorcentajeMinimo,
                                ValorOptimo      = item.ValorOptimo,
                                Valor            = item.Valor
                            });
                        }
                    }

                    db.SaveChanges();
                }
                return(true);
            }
            catch (Exception EX)
            {
                data_log.GuardarDB(new LogError_Info
                {
                    Controlador = "GenerarOrdenCompra",
                    Error       = "Error: " + EX.ToString() + " " + string.Format("Compra: {0}", JsonConvert.SerializeObject(info)),
                    IdUsuario   = info.IdUsuario
                });
                return(true);
            }
        }
Beispiel #18
0
        public void AnularRow(Compra_Info info_det, decimal IdTransaccionSession)
        {
            Compra_Info edited_info = get_list(IdTransaccionSession).Where(m => m.IdCompra == info_det.IdCompra).FirstOrDefault();

            edited_info.Estado = "X";
        }