Exemplo n.º 1
0
        public ActionResult Producto(int?id, string marca, string modelo, int w = 100, int h = 100)
        {
            var ctx  = new DataAccess.SirCoDataContext();
            var ctxi = new DataAccess.SirCoImgDataContext();

            if (id.HasValue)
            {
                var item = ctx.Articulos.Where(i => i.Id == id).SingleOrDefault();
                if (item == null)
                {
                    return(HttpNotFound());
                }
                marca  = item.Marca;
                modelo = item.Modelo;
            }
            else
            {
                if (modelo.Length < 7)
                {
                    modelo = modelo.PadLeft(7);
                }
            }
            //=============================================================================================================================================
            var img = ctxi.Imagenes.Where(i => i.Marca == marca && i.Estilon == modelo).SingleOrDefault();

            if (img == null || img.Foto == null)
            {
                return(HttpNotFound());
            }

            var ms = new System.IO.MemoryStream();

            ImageResizer.ImageBuilder.Current.Build(img.Foto, ms,
                                                    new ImageResizer.ResizeSettings()
            {
                Mode   = ImageResizer.FitMode.None,
                Width  = w,
                Height = h,
                Format = "png"
            });
            ms.Position = 0;

            return(File(ms, "image/png", $"{marca}_{modelo.Replace(' ', '_')}.png"));
        }
Exemplo n.º 2
0
        public ActionResult Detalle(string sucursal, string folio)
        {
            var ctx  = new DataAccess.SirCoPVDataContext();
            var ctxc = new DataAccess.SirCoCreditoDataContext();
            var item = ctx.Devoluciones.Where(i => i.sucursal == sucursal && i.devolvta == folio).SingleOrDefault();

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

            var model = new Models.Devolucion
            {
                Sucursal   = item.sucursal,
                Folio      = item.devolvta,
                Fecha      = item.fecha,
                Estatus    = item.estatus,
                Disponible = item.disponible,
                Total      = item.Detalles.Sum(i => i.precdesc)
            };

            model.VentaSucursal = item.referencia.Substring(0, 2);
            model.VentaFolio    = item.referencia.Substring(2);

            Persona cliente = null;

            if (item.idcliente.HasValue)
            {
                var cli = ctxc.Clientes.Where(i => i.idcliente == item.idcliente).SingleOrDefault();
                if (cli == null)
                {
                    cliente = new Persona {
                        Id = item.idcliente.Value
                    }
                }
                ;
                else
                {
                    cliente = new Persona
                    {
                        Id        = cli.idcliente,
                        Nombre    = cli.nombre,
                        ApPaterno = cli.appaterno,
                        ApMaterno = cli.apmaterno
                    };
                }
            }
            model.Cliente = cliente;

            var plist = new List <Models.Producto>();

            foreach (var i in item.Detalles)
            {
                if (i.idrazon.HasValue)
                {
                    ctx.Entry(i).Reference(k => k.Razon).Load();
                }

                plist.Add(new Models.Producto
                {
                    Renglon = i.renglon,
                    Marca   = i.marca,
                    Modelo  = i.estilon,
                    Serie   = i.serie,
                    Precio  = i.precio,
                    Pago    = i.precdesc,

                    Notas     = i.notas,
                    NotaRazon = i.idrazon.HasValue ? i.Razon.descripcion : null
                });
            }
            model.Detalle = plist;

            var ctxi = new DataAccess.SirCoImgDataContext();

            foreach (var det in model.Detalle)
            {
                var q = ctxi.Imagenes.Where(i => i.Marca == det.Marca && i.Estilon == det.Modelo);
                det.HasImage = q.Any();
            }

            var dev = $"{model.Sucursal}{model.Folio}";
            var qpd = ctx.PagosDetalle.Where(i => i.idformapago == (int)Common.Constants.FormaPago.DV &&
                                             i.referencia == dev);

            model.Ventas = qpd.Select(i => new Models.DevolucionVenta
            {
                Sucursal = i.sucursal,
                Folio    = i.pago,
                Importe  = i.importe
            });
            return(View(model));
        }
Exemplo n.º 3
0
        public Producto FindProducto(string marca, string modelo, string sucursal)
        {
            var ctx  = new DataAccess.SirCoDataContext();
            var ctxi = new DataAccess.SirCoImgDataContext();
            //var status = new string[] { Common.Constants.Status.ZC.ToString() };
            var item = ctx.Corridas.Include(i => i.Articulo)
                       .Where(i => i.marca == marca && i.estilon == modelo)
                       .OrderByDescending(i => i.ult_vta)
                       .FirstOrDefault();

            //var q = ctx.Series.Where(i => i.serie == serie
            //    && !status.Contains(i.status));
            //var item = q.Where(i => i.sucursal == sucursal).SingleOrDefault();
            //if (item == null)
            //{
            //    var ctxc = new DataAccess.SirCoControlDataContext();
            //    var sucs = ctxc.Sucursales.Where(i => i.ordenweb.HasValue)
            //        .Select(i => i.sucursal).ToArray();
            //    item = q.Where(i => sucs.Contains(i.sucursal)).SingleOrDefault();
            //}
            if (item != null)
            {
                if (item.ArticuloId > 0)
                {
                    var isElectronica = item.Articulo.iddivisiones == (int)Divisiones.Electronica;
                    var isParUnico    = _sale.IsParUnico(item.Articulo.idagrupacion);
                    var corrida       = item;
                    //if (corrida == null)
                    //    return null;
                    var qimg = ctxi.Imagenes.Where(i => i.Marca == item.marca && i.Estilon == item.estilon);

                    byte?maxPlazos = null;
                    if (isElectronica)
                    {
                        var com = new BusinessLogic.Data();
                        maxPlazos = com.GetParametro <byte?>($"{corrida.marca}{corrida.estilon.Replace(' ', '_')}", sucursal);
                        if (!maxPlazos.HasValue)
                        {
                            maxPlazos = com.GetParametro <byte?>(Common.Constants.Parametros.ELECTRONICA);
                        }
                    }

                    return(new Producto
                    {
                        Id = item.ArticuloId,
                        Corrida = corrida.corrida,
                        Marca = item.marca,
                        Modelo = item.estilon,
                        //Precio = corrida.precio,
                        //Serie = item.serie,
                        //Talla = item.medida,
                        Total = corrida.precio,
                        HasImage = qimg.Any(),
                        Electronica = isElectronica,
                        ParUnico = isParUnico,
                        MaxPlazos = maxPlazos,
                        //Sucursal = item.sucursal
                    });
                }
                else
                {
                    return(new Producto
                    {
                        Id = item.ArticuloId,
                        //Corrida = corrida.corrida,
                        Marca = item.marca,
                        Modelo = item.estilon
                                 //Precio = corrida.precio,

                                 //,Serie = item.serie
                                 //,Talla = item.medida,

                                 //Total = corrida.precio,
                                 //HasImage = qimg.Any(),
                                 //Electronica = isElectronica,
                                 //ParUnico = isParUnico,
                                 //MaxPlazos = maxPlazos
                    });
                }
            }
            return(null);
        }
Exemplo n.º 4
0
        public ActionResult Detalle(string sucursal, string folio)
        {
            var ctx  = new DataAccess.SirCoPVDataContext();
            var ctxc = new DataAccess.SirCoCreditoDataContext();
            var item = ctx.Ventas.Where(i => i.sucursal == sucursal && i.venta == folio).SingleOrDefault();

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

            Persona cliente = null;

            if (item.idcliente.HasValue)
            {
                var cli = ctxc.Clientes.Where(i => i.idcliente == item.idcliente).SingleOrDefault();
                if (cli == null)
                {
                    cliente = new Persona {
                        Id = item.idcliente.Value
                    }
                }
                ;
                else
                {
                    cliente = new Persona
                    {
                        Id        = cli.idcliente,
                        Nombre    = cli.nombre,
                        ApPaterno = cli.appaterno,
                        ApMaterno = cli.apmaterno
                    };
                }
            }

            var model = new Models.Venta
            {
                Sucursal = item.sucursal,
                Folio    = item.venta,
                Fecha    = item.fum,
                Estatus  = item.estatus,
                Cajero   = this.GetEmpleado(item.idcajero),
                Vendedor = this.GetEmpleado(item.idvendedor),
                Cliente  = cliente
            };
            var plist = new List <Models.Producto>();

            foreach (var i in item.Detalles)
            {
                if (i.idrazon.HasValue)
                {
                    ctx.Entry(i).Reference(k => k.NotaRazon).Load();
                }
                plist.Add(new Models.Producto
                {
                    Renglon   = i.renglon,
                    Marca     = i.marca,
                    Modelo    = i.estilon,
                    Serie     = i.serie,
                    Precio    = i.precio,
                    Pago      = i.precdesc,
                    Comments  = i.descuentoespecialdesc,
                    Notas     = i.notas,
                    NotaRazon = i.idrazon.HasValue ? i.NotaRazon.descripcion : null
                });
            }
            model.Detalle = plist;

            var ctxi = new DataAccess.SirCoImgDataContext();

            foreach (var det in model.Detalle)
            {
                var q = ctxi.Imagenes.Where(i => i.Marca == det.Marca && i.Estilon == det.Modelo);
                det.HasImage = q.Any();
            }

            model.ContraVales = ctxc.ContraVales.Where(i => i.sucursal == item.sucursal && i.referenc == item.venta)
                                .Select(i => new Models.ContraVale {
                Folio = i.cvale, Disponible = i.saldo, Importe = i.importe
            });

            model.Devoluciones = ctx.Devoluciones.Where(i => i.referencia == item.sucursal + item.venta)
                                 .Select(i => new Models.DevolucionVenta {
                Sucursal = i.sucursal,
                Folio    = i.devolvta,
                Importe  = i.disponible
            });

            model.Pago = new Models.Pago
            {
                Fecha   = item.Pago.fum,
                Estatus = item.Pago.estatus
            };
            var pagos = new List <Models.PagoDetalle>();

            foreach (var i in item.Pago.Detalle)
            {
                var pd = new Models.PagoDetalle
                {
                    FormaPago = i.idformapago,
                    Importe   = i.importe
                };
                if (pd.FormaPago == (int)Common.Constants.FormaPago.DV &&
                    i.referencia != null)
                {
                    pd.Sucursal = i.referencia.Substring(0, 2);
                    pd.Folio    = i.referencia.Substring(2);
                }
                else if ((pd.FormaPago == (int)Common.Constants.FormaPago.TC || pd.FormaPago == (int)Common.Constants.FormaPago.TD) &&
                         i.terminacion != null)
                {
                    pd.Terminacion = i.terminacion;
                    pd.Transaccion = i.transaccion;
                }
                else if (pd.FormaPago == (int)Common.Constants.FormaPago.VA)
                {
                    pd.Folio = i.vale;
                    var qpp = ctxc.PlanPagos.Where(k => k.sucursal == sucursal && k.nota == folio && k.vale == i.vale);
                    if (qpp.Any())
                    {
                        ViewBag.hasPlanPagos = true;
                        var list = new List <Models.PlanPago>();
                        model.PlanPago = list;
                        foreach (var pp in qpp)
                        {
                            //pd.Sucursal = pp.sucursal;
                            //pd.Folio = pp.vale;

                            list.Add(new Models.PlanPago
                            {
                                Vale    = pp.vale,
                                Detalle = pp.Detalle.Select(k => new Models.PlanPagoDetalle
                                {
                                    Fecha   = k.fechaaplicar,
                                    Importe = k.importe,
                                    Number  = k.pago
                                })
                            });
                        }
                    }
                }
                pagos.Add(pd);
            }
            model.Pago.Detalle = pagos;

            return(View(model));
        }