Esempio n. 1
0
        public Common.Entities.MedidasCorridas GetPrecios(int id)
        {
            var ctx      = new DataAccess.SirCoDataContext();
            var corridas = ctx.Corridas.Where(i => i.ArticuloId == id)
                           .Select(i => new Common.Entities.TallaPrecio
            {
                Corrida      = i.corrida,
                MedidaInicio = i.medini,
                MedidaFin    = i.medfin,
                Precio       = i.precio
            }).Distinct();


            var ctxc = new DataAccess.SirCoControlDataContext();
            var sucs = ctxc.Sucursales.Where(i => i.ordenweb.HasValue)
                       .Select(i => i.sucursal).ToArray();

            var status  = new string[] { Common.Constants.Status.ZC.ToString() };
            var medidas = ctx.Series.Where(i => i.ArticuloId == id &&
                                           !status.Contains(i.status))
                          .OrderBy(i => i.medida)
                          .Select(i => i.medida)
                          .Distinct();

            var res = new Common.Entities.MedidasCorridas
            {
                Corridas = corridas,
                Medidas  = medidas
            };

            return(res);
        }
Esempio n. 2
0
        public T GetParametro <T>(string key, string sucursal = null)
        {
            var converter = TypeDescriptor.GetConverter(typeof(T));

            if (converter == null)
            {
                throw new NotSupportedException();
            }

            var ctx = new DataAccess.SirCoControlDataContext();
            var q   = ctx.Parametros.Where(i => i.clave == key);
            var qs  = q.Where(i => i.sucursal == sucursal);

            if (qs.Any())
            {
                var item = qs.Single();
                return((T)converter.ConvertFrom(item.valor));
            }
            else
            {
                var item = q.Where(i => i.sucursal == "99").SingleOrDefault();
                if (item != null)
                {
                    return((T)converter.ConvertFrom(item.valor));
                }
                return(default(T));
            }
        }
Esempio n. 3
0
        public Sucursal FindSucursal(string sucursal)
        {
            var ctx  = new DataAccess.SirCoControlDataContext();
            var item = ctx.Sucursales.Where(i => i.sucursal == "06").Single();
            var res  = new Common.Entities.Sucursal
            {
                Id          = item.idsucursal,
                Clave       = item.sucursal,
                Descripcion = item.descrip
            };

            return(res);
        }
Esempio n. 4
0
        public IEnumerable <Common.Entities.NegocioExterno> GetNegocios()
        {
            var ctx = new DataAccess.SirCoControlDataContext();
            var q   = ctx.NegociosExternos
                      .OrderBy(i => i.descripcion)
                      .Select(i => new Common.Entities.NegocioExterno
            {
                Id          = i.idnegexterno,
                Negocio     = i.negocio,
                Descripcion = i.descripcion
            });

            return(q);
        }
Esempio n. 5
0
        public ReciboDevolucionReport GetReciboDevolucion(string sucursal, string folio)
        {
            var ctxpv = new DataAccess.SirCoPVDataContext();
            var ctxc  = new DataAccess.SirCoControlDataContext();
            var ctx   = new DataAccess.SirCoDataContext();

            var devolucion = ctxpv.Devoluciones.Where(i => i.sucursal == sucursal && i.devolvta == folio).Single();

            var vendedor = this.GetEmpleado(devolucion.idvendedor);
            var cajero   = this.GetEmpleado(devolucion.idcajero);

            var suc           = ctxc.Sucursales.Where(i => i.sucursal == devolucion.sucursal).Single();
            var ventaSucursal = devolucion.referencia.Substring(0, 2);
            var ventaFolio    = devolucion.referencia.Substring(2);

            var item = new ReciboDevolucionReport
            {
                Recibo = new ReciboDevolucion
                {
                    SucursalId     = devolucion.sucursal,
                    SucursalNombre = suc.descrip,
                    Fecha          = devolucion.fum.Value,
                    VendedorId     = $"{devolucion.idvendedor}",
                    VendedorNombre = vendedor,
                    CajeroId       = $"{devolucion.idcajero}",
                    CajeroNombre   = cajero,
                    Folio          = devolucion.devolvta,
                    SucursalVenta  = ventaSucursal,
                    FolioVenta     = ventaFolio
                }
            };
            var plist = new List <Producto>();

            foreach (var det in devolucion.Detalles)
            {
                var serie = ctx.Series.Where(i => i.serie == det.serie).Single();

                plist.Add(
                    new Producto {
                    Serie       = det.serie,
                    Precio      = det.precio.Value,
                    Importe     = det.precdesc.Value,
                    Marca       = det.marca,
                    Descripcion = serie.Articulo.Descripcion
                });
            }
            item.Productos = plist;
            return(item);
        }
Esempio n. 6
0
        public IEnumerable <Colonia> FindColonias(string cp)
        {
            var ctx = new DataAccess.SirCoControlDataContext();
            var q   = ctx.Colonias.Where(i => i.codigopostal == cp);
            var res = q.Select(i => new Common.Entities.Colonia
            {
                Id           = i.idcolonia,
                Nombre       = i.colonia,
                CodigoPostal = i.codigopostal,
                CiudadId     = i.idciudad,
                CiudadNombre = i.Ciudad.ciudad,
                EstadoId     = i.idestado,
                EstadoNombre = i.Ciudad.Estado.estado
            }).ToArray();

            return(res);
        }
Esempio n. 7
0
        public IEnumerable <Common.Entities.SucursalExistencia> GetExistencias(int id, string medida)
        {
            var ctx = new DataAccess.SirCoDataContext();

            var status = new string[] {
                Common.Constants.Status.AC.ToString(),
                Common.Constants.Status.IF.ToString()
            };

            var ctxc = new DataAccess.SirCoControlDataContext();
            var sucs = ctxc.Sucursales.Where(i => i.ordenweb.HasValue)
                       .Select(i => i.sucursal).ToArray();

            var res = ctx.Series.Where(i => i.ArticuloId == id && i.medida == medida &&
                                       status.Contains(i.status) && sucs.Contains(i.sucursal))
                      .GroupBy(i => i.sucursal)
                      .Select(i => new Common.Entities.SucursalExistencia
            {
                Sucursal = i.Key,
                Count    = i.Count()
            });

            return(res);
        }
Esempio n. 8
0
        public ValeResponse FindTarjetahabiente(string id)
        {
            var ctx  = new DataAccess.SirCoCreditoDataContext();
            var ctxc = new DataAccess.SirCoControlDataContext();

            var item = ctx.Distribuidores.Where(i => i.distrib == id
                                                //&& i.tipodistrib == Common.Constants.TipoDistribuidor.NORMAL
                                                && i.clasificacion == Common.Constants.TipoCredito.TARJETAHABIENTE
                                                ).SingleOrDefault();

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

            var dis = new Common.Entities.Distribuidor
            {
                Id = item.iddistrib,
                //Nombre = item.nombre,
                //ApPaterno = item.appaterno,
                //ApMaterno = item.apmaterno,
                Nombre       = item.nombrecompleto,
                Status       = item.idestatus.Value,
                Electronica  = item.solocalzado == 0,
                Electronica2 = item.negext == 0,
                Plazos       = item.idperiodicidad.Value,
                Promocion    = item.promocion == 1
                , Number     = item.distrib
            };

            var model = dis;

            var num   = int.Parse(item.distrib).ToString();
            var qpp   = ctx.PlanPagos.Where(i => i.vale.Trim() == num);
            var qp    = qpp.Where(i => i.pagado == "0");
            var usado = qp.Any() ? qp.Sum(i => i.saldo) : 0;

            model.Disponible = Math.Min(item.limitevale.Value, item.disponible.Value);// - usado;
            model.Disponible = model.Disponible < 0 ? 0 : model.Disponible;

            var q = ctx.DistribuidorFirmas.Where(i => i.distrib == item.distrib);

            model.Firmas = q.Select(i => i.numfirma).ToArray();


            //var last = qpp.OrderByDescending(i => i.fum).FirstOrDefault();
            //if (last != null)
            //{
            //    var suc = ctxc.Sucursales.Where(i => i.sucursal == last.succliente).Single();

            //    var cli = ctx.Clientes.Where(i => i.cliente == last.cliente && i.idsucursal == suc.idsucursal).Single();
            //    model.ClienteId = cli.idcliente;
            //}

            if (item.clientedi != null)
            {
                var suc = ctxc.Sucursales.Where(i => i.sucursal == item.succtedi).Single();
                var cli = ctx.Clientes.Where(i => i.idsucursal == suc.idsucursal && i.cliente == item.clientedi).Single();
                model.ClienteId = cli.idcliente;
            }

            return(new ValeResponse {
                Distribuidor = model,

                Vale = id,
                Disponible = model.Disponible ?? 0,
                //public bool Cancelado { get; set; }
                //public string CanceladoMotivo { get; set; }
                ClienteId = model.ClienteId,
                //public bool WithLimite { get; set; }
                //public decimal? Limite { get; set; }
            });
        }
Esempio n. 9
0
        protected override void Execute(CodeActivityContext context)
        {
            var now = DateTime.Now;
            var ctx = new DataAccess.SirCoPOSDataContext();

            var request = context.GetValue(this.Request);

            var item = new DataAccess.SirCoPOS.SolicitudCreditoVale
            {
                Id          = Guid.NewGuid(),
                date        = DateTime.Now,
                electronica = request.Electronica,
                idusuario   = request.idusuario,
                monto       = request.Monto,
                vale        = request.Vale
            };

            ctx.SolicitudesCreditoVales.Add(item);
            ctx.SaveChanges();

            //-----------------------------
            bool?processing = null;
            var  cctx       = new DataAccess.SirCoCreditoDataContext();
            var  ctxc       = new DataAccess.SirCoControlDataContext();

            var vale = ctx.ValesCliente.Where(i => i.vale == request.Vale).Single();

            var ditem = cctx.Distribuidores.Where(i => i.iddistrib == item.ValeCliente.iddistrib).Single();

            if (ditem.tipodistrib == "NORMAL" && request.Monto == vale.cantidad)
            {
                if (request.Electronica && ditem.solocalzado == 1)
                {
                    ditem.solocalzado = 0;
                    cctx.SaveChanges();
                    processing = false;
                }
                //if (request.Electronica && ditem.solocalzado == 1)
                //{
                //    var q = cctx.Pagos.Where(i => i.distrib == ditem.distrib && i.status == "AP");
                //    var primero = q.OrderBy(i => i.fum)
                //        .FirstOrDefault();
                //    var fchecar = primero.fecha.Value.AddMonths(6);
                //    if (now > fchecar)
                //    {
                //        var dif = ditem.limitecredito - ditem.disponible;
                //        if (dif > 0)
                //        {
                //            var por = dif / ditem.limitecredito;
                //            if (por <= .1m)
                //            {
                //                ditem.solocalzado = 0;
                //                cctx.SaveChanges();
                //                processing = false;
                //            }
                //        }
                //        else
                //        {
                //            ditem.solocalzado = 0;
                //            cctx.SaveChanges();
                //            processing = false;
                //        }
                //    }
                //}
            }
            //-----------------------------

            var response = new Common.Entities.SolicitudCreditoResponse
            {
                Id         = item.Id,
                Processing = processing
            };

            context.SetValue(this.Response, response);
        }
Esempio n. 10
0
        public ActionResult Credito(Guid id)
        {
            var ctx  = new DataAccess.SirCoPOSDataContext();
            var cctx = new DataAccess.SirCoCreditoDataContext();
            var ctxc = new DataAccess.SirCoControlDataContext();

            var item = ctx.SolicitudesCreditoVales.Where(i => i.Id == id).SingleOrDefault();

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

            var ditem = cctx.Distribuidores.Where(i => i.iddistrib == item.ValeCliente.iddistrib).Single();

            //var usado = ctx.PlanPagos.Where(i => i.vale == vale).Sum(i => i.saldo);
            //var disponible = Math.Min(item.limitevale.Value, item.disponible.Value) - usado;

            var model = new Models.Distribuidor
            {
                Id            = ditem.iddistrib,
                Cuenta        = ditem.distrib,
                Nombre        = ditem.nombre,
                ApMaterno     = ditem.appaterno,
                ApPaterno     = ditem.apmaterno,
                Status        = ditem.idestatus.Value,
                Electronica   = ditem.solocalzado == 0,
                Plazos        = ditem.idperiodicidad.Value,
                Promocion     = ditem.promocion == 1,
                Disponible    = ditem.disponible,
                Date          = ditem.fum,
                Tipo          = ditem.tipodistrib,
                LimiteVale    = ditem.limitevale,
                LimiteCredito = ditem.limitecredito
            };
            var q       = cctx.Pagos.Where(i => i.distrib == ditem.distrib && i.status == "AP");
            var primero = q.OrderBy(i => i.fum)
                          .FirstOrDefault();

            if (primero != null)
            {
                model.PrimerPago = primero.fum;
            }

            var ultimos = q.OrderByDescending(i => i.fum)
                          .Select(i => new Models.Pago {
                Fecha     = i.fecha.Value,
                Descuento = i.descuento.Value,
                Subtotal  = i.subtotal.Value,
                Importe   = i.importe.Value
            })
                          .Take(10);

            ViewBag.ultimos = ultimos;

            var qd = cctx.PlanPagos.Where(i =>
                                          i.distrib == ditem.distrib &&
                                          i.saldo > 0 &&
                                          i.status == "AP");
            var saldo = qd.Any() ?
                        qd.Sum(i => i.saldo) : 0;

            ViewBag.saldodis = saldo;

            var cliente = cctx.Clientes.Where(i => i.idcliente == item.ValeCliente.idcliente).Single();
            var suc     = ctxc.Sucursales.Where(i => i.idsucursal == cliente.idsucursal).Single();

            var qp = cctx.PlanPagos.Where(i =>
                                          i.cliente == cliente.cliente && i.succliente == suc.sucursal &&
                                          i.saldo > 0 &&
                                          i.status == "AP");
            var saldodis = qp.Where(i => i.distrib == ditem.distrib).Any() ?
                           qp.Where(i => i.distrib == ditem.distrib).Sum(i => i.saldo) : 0;

            ViewBag.saldocli = saldodis;

            var saldoot = qp.Where(i => i.distrib != ditem.distrib).Any() ?
                          qp.Where(i => i.distrib != ditem.distrib).Sum(i => i.saldo) : 0;

            ViewBag.saldoOtros = saldoot;

            var credito = new Models.SolicitudCliente
            {
                Vale        = item.vale,
                ApMaterno   = cliente.apmaterno,
                ApPaterno   = cliente.appaterno,
                Electronica = item.electronica,
                Id          = cliente.idcliente,
                Cliente     = cliente.cliente,
                Nombre      = cliente.nombre,
                MontoVale   = item.ValeCliente.cantidad,
                Monto       = item.monto,
                Faltante    = item.monto - item.ValeCliente.cantidad
            };

            ViewBag.credito = credito;

            var uid = this.User.GetUID();

            if (item.idusuarioAprobacion.HasValue)
            {
                ViewBag.mia = uid == item.idusuarioAprobacion;
            }
            ViewBag.completado = item.fechaAprobacion.HasValue;

            ViewBag.id = id;
            return(View(model));
        }
Esempio n. 11
0
        public ReciboCompraReport GetReciboCompra(string sucursal, string folio)
        {
            var ctxpv = new DataAccess.SirCoPVDataContext();
            var ctxc  = new DataAccess.SirCoControlDataContext();
            var ctxn  = new DataAccess.SirCoNominaDataContext();
            var ctx   = new DataAccess.SirCoDataContext();
            var ctxa  = new DataAccess.SirCoAPPDataContext();

            var venta  = ctxpv.Ventas.Where(i => i.sucursal == sucursal && i.venta == folio).Single();
            var dinero = ctxa.DinerosDetalle.Where(i => i.sucnota == sucursal && i.nota == folio).SingleOrDefault();

            var vendedor = this.GetEmpleado(venta.idvendedor);
            var cajero   = this.GetEmpleado(venta.idcajero);

            var suc = ctxc.Sucursales.Where(i => i.sucursal == venta.sucursal).Single();

            var item = new ReciboCompraReport
            {
                Recibo = new Common.Entities.Reports.ReciboCompra
                {
                    SucursalId     = venta.sucursal,
                    SucursalNombre = suc.descrip,
                    RFC            = "CTO-911211JL9",
                    Direccion      = suc.calle,
                    Colonia        = suc.colonia,
                    Fecha          = venta.fum.Value,
                    VendedorId     = $"{venta.idvendedor}",
                    VendedorNombre = vendedor,
                    CajeroId       = $"{venta.idcajero}",
                    CajeroNombre   = cajero,
                    Folio          = venta.venta,
                    Efectivo       = 3975,
                    Descuento      = 500,
                    Cambio         = DateTime.Parse("2019-07-13"),
                    Dinero         = dinero?.importe
                }
            };

            var plist = new List <Common.Entities.Reports.Producto>();

            foreach (var det in venta.Detalles)
            {
                var serie = ctx.Series.Where(i => i.serie == det.serie).Single();

                plist.Add(
                    new Common.Entities.Reports.Producto {
                    Serie       = det.serie,
                    Precio      = det.precio.Value,
                    Importe     = det.precdesc.Value,
                    Marca       = det.marca,
                    Descripcion = serie.Articulo.Descripcion
                });
            }
            item.Productos = plist;

            var pdlist = new List <Common.Entities.Reports.Pago>();
            //if(!ctxpv.Entry(venta).Reference(i => i.Pago).IsLoaded)
            //    ctxpv.Entry(venta).Reference(i => i.Pago).Load();
            //if (!ctxpv.Entry(venta.Pago).Collection(i => i.Detalle).IsLoaded)
            //    ctxpv.Entry(venta.Pago).Collection(i => i.Detalle).Load();

            var pagos = venta.Pago.Detalle;

            foreach (var det in pagos)
            {
                var pa = new Pago
                {
                    FormaPago  = ((Common.Constants.FormaPago)det.idformapago).ToString(),
                    Importe    = det.importe.Value,
                    Referencia = null,
                    Folio      = null
                };
                pdlist.Add(pa);
            }
            item.Pagos = pdlist;

            var pplist = new List <Common.Entities.Reports.PlanPago>();
            var ctxcr  = new DataAccess.SirCoCreditoDataContext();
            //==============================================================================================
            var ppagos = ctxcr.PlanPagosDetalle.Where(i => i.sucursal == "447279");

            foreach (var det in ppagos)
            {
                pplist.Add(new PlanPago
                {
                    Pago    = (int)det.pago,
                    Date    = det.fechaaplicar,
                    Importe = det.importe
                });
            }
            item.PlanPagos = pplist;

            return(item);
        }