Ejemplo n.º 1
0
        public IDictionary <DateTime, decimal> GenerarPlanPagosFechas(int iddist, Pago item)
        {
            var _process = new BusinessLogic.Process();
            var ctxcr    = new DataAccess.SirCoCreditoDataContext();
            var dist     = ctxcr.Distribuidores.Where(i => i.iddistrib == iddist).Single();
            var fechas   = new HashSet <DataAccess.SirCoCredito.Calendario>();
            var helper   = new BusinessLogic.Data();
            var blindaje = helper.GetParametro <decimal?>(Parametros.BLINDAJE);
            var detalle  = _process.GenerarPlanPagosFechas(DateTime.Now, item, dist, fechas, blindaje);

            return(detalle);
        }
Ejemplo n.º 2
0
        public PromocionesValeResponse FindPromocionesVale(string sucursal)
        {
            var now       = BusinessLogic.Helpers.Common.GetNow();
            var ctx       = new DataAccess.SirCoCreditoDataContext();
            var promocion = ctx.PromocionesCredito.Where(i => i.sucursal == sucursal && i.status == "AC").SingleOrDefault();

            if (promocion == null)
            {
                return(null);
            }

            //var cal = ctx.Calendarios.Where(i => i.tipo == "CORTE" && i.tipocredito == "DISTRIBUIDOR"
            //            && i.fechaaplicarcorte == promocion.fechaaplicar).SingleOrDefault();

            //if (cal == null)
            //    return null;

            var q = ctx.Calendarios.Where(i => i.tipo == "CORTE" && i.tipocredito == "DISTRIBUIDOR" &&
                                          i.fechaaplicarcorte <= promocion.fechaaplicar && i.fechaaplicarcorte > now)
                    .OrderBy(i => i.fechaaplicarcorte).ToArray();

            var total = q.Count();

            var qfechas = ctx.Calendarios.Where(i => i.tipo == "CORTE" && i.tipocredito == "DISTRIBUIDOR" &&
                                                i.fechaaplicarcorte > now)
                          .OrderBy(i => i.fechaaplicarcorte)
                          .Take(total + promocion.pagosmax.Value).ToArray();

            var blin = _helpers.GetParametro <decimal>(Common.Constants.Parametros.BLINDAJE);

            return(new PromocionesValeResponse
            {
                Selected = promocion.pagosmin.Value,
                PagosMax = promocion.pagosmax.Value,
                //Plazos = Enumerable.Range(1, promocion.pagosmax.Value),
                Promociones = q.Select(i => i.fechapagocliente.Value),
                Fechas = qfechas.Select(i => i.fechapagocliente.Value),
                Blindaje = blin
            });
        }
Ejemplo 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);
        }