Ejemplo n.º 1
0
        public int SaveNote(NoteRequest request)
        {
            var nitem = new DataAccess.SirCoPOS.Nota
            {
                Date       = DateTime.Now,
                Sucursal   = request.Sucursal,
                CajeroId   = 0,
                VendedorId = request.VendedorId
            };

            _ctx.Notas.Add(nitem);
            nitem.Items = new HashSet <DataAccess.SirCoPOS.NotaDetalle>();
            nitem.Pagos = new HashSet <DataAccess.SirCoPOS.NotaPago>();
            foreach (var item in request.Items)
            {
                nitem.Items.Add(new DataAccess.SirCoPOS.NotaDetalle
                {
                    Serie   = item.Serie,
                    Amount  = item.Amount,
                    Coments = item.Comments
                });
            }
            _ctx.SaveChanges();

            return(nitem.Id);
        }
Ejemplo n.º 2
0
        public void Transfer(byte from, byte to, decimal amount, int userId)
        {
            var now = Helpers.Common.GetNow();
            var ctx = new DataAccess.SirCoPOSDataContext();
            var gid = Guid.NewGuid();

            var cfrom = ctx.Fondos.Where(i => i.ResponsableId == userId && i.Tipo == (Common.Constants.TipoFondo)from).Single();
            var cto   = ctx.Fondos.Where(i => i.ResponsableId == userId && i.Tipo == (Common.Constants.TipoFondo)to).Single();

            cfrom.Movimientos.Add(new DataAccess.SirCoPOS.FondoMovimiento
            {
                Entrada    = false,
                Fecha      = now,
                Importe    = amount,
                Referencia = gid,
                UsuarioId  = userId
            });
            cfrom.Disponible -= amount;
            cto.Movimientos.Add(new DataAccess.SirCoPOS.FondoMovimiento
            {
                Entrada    = true,
                Fecha      = now,
                Importe    = amount,
                Referencia = gid,
                UsuarioId  = userId
            });
            cto.Disponible += amount;
            ctx.SaveChanges();
        }
Ejemplo n.º 3
0
        protected override void Execute(CodeActivityContext context)
        {
            var ctx = new DataAccess.SirCoPOSDataContext();
            var ctxc = new DataAccess.SirCoCreditoDataContext();
            var reply = context.GetValue(this.Reply);

            var item = ctx.SolicitudesCreditoVales.Where(i => i.Id == reply.Id).Single();
            item.fechaAprobacion = DateTime.Now;
            item.Approved = reply.Approved;
            if (reply.Approved)
            {
                item.electronicaAprobacion = reply.Electronica;
                item.montoAprobacion = reply.MontoVale - item.ValeCliente.cantidad;
                item.ValeCliente.cantidad = reply.MontoVale.Value;

                var dis = ctxc.Distribuidores.Where(i => i.iddistrib == item.ValeCliente.iddistrib).Single();
                if (reply.LimiteCredito.HasValue && reply.LimiteCredito.Value != dis.limitecredito)
                {
                    item.creditoAprobacion = reply.LimiteCredito - dis.limitecredito;
                    dis.limitecredito = reply.LimiteCredito;
                    if (reply.Electronica.HasValue)
                        dis.solocalzado = (short)(reply.Electronica.Value ? 0 : 1);
                    dis.fum = DateTime.Now;
                    ctxc.SaveChanges();
                }
            }
            ctx.SaveChanges();
        }
Ejemplo n.º 4
0
        public Response <SaleResponse> Sale(SaleRequest item)
        {
            var uid = this.GetUserIdOrDefault() ?? 0;
            var res = this.Reply(() => {
                var multiple = false;
                if (item.Tipo == SaleType.Sale)
                {
                    var response = _process.Sale(item, uid);
                    if (response.Multiple)
                    {
                        item.Tipo = SaleType.Note;
                        multiple  = true;
                    }
                    else
                    {
                        return(response);
                    }
                }
                if (item.Tipo == SaleType.Note)
                {
                    var xml   = BusinessLogic.Helpers.Serializer.Serialize(item);
                    var ctx   = new DataAccess.SirCoPOSDataContext();
                    var eitem = new DataAccess.SirCoPOS.Nota
                    {
                        Date     = DateTime.Now,
                        CajeroId = uid,
                        Sucursal = item.Sucursal,
                        Data     = xml,
                        Multiple = multiple
                    };
                    ctx.Notas.Add(eitem);
                    ctx.SaveChanges();
                    return(new SaleResponse
                    {
                        Folio = $"Nota-{eitem.Id}"
                    });
                }
                return(null);
            });

            //if (res.Success)
            //{
            //    //var txt = System.Web.HttpUtility.UrlEncode($"Gracias por tu compra, folio: {res.Item.Folio}");
            //    //var url = $"http://dev.itnnovation.net:81/FCM/api/sendMessage?number={8112123587}&txt={txt}";
            //    var url = $"http://dev.itnnovation.net:81/FCM/api/sendMessage";

            //    var client = new WebClient();
            //    client.QueryString.Add("number", "8112123587");
            //    client.QueryString.Add("txt", $"Gracias por tu compra, folio: {res.Item.Folio}");
            //    var reqparm = new System.Collections.Specialized.NameValueCollection();
            //    //var response = client.UploadValues(url, "POST", reqparm);
            //}
            return(res);
        }
Ejemplo n.º 5
0
        public void Cancel(int idcajero, string sucursal, decimal importe, DateTime now, Guid gid, Common.Constants.FormaPago formaPago)
        {
            var ctx = new DataAccess.SirCoPOSDataContext();

            var fondo = ctx.Fondos.Where(i => i.ResponsableId == idcajero && !i.FechaCierre.HasValue).Single();

            if (formaPago == Common.Constants.FormaPago.EF)
            {
                fondo.Movimientos.Add(
                    new DataAccess.SirCoPOS.FondoMovimiento
                {
                    Importe    = importe,
                    UsuarioId  = null,
                    Entrada    = false,
                    Fecha      = now,
                    Referencia = gid,
                    Tipo       = "VentaCancela"
                });
                fondo.Disponible      -= importe;
                fondo.Caja.Disponible -= importe;
            }
            else
            {
                var fp = fondo.Caja.FormasPago.Where(i => i.FormaPago == (int)formaPago).SingleOrDefault();
                if (fp == null)
                {
                    fp = new DataAccess.SirCoPOS.CajaFormaPago
                    {
                        FormaPago = (int)formaPago,
                        Unidades  = 0,
                        Monto     = 0
                    };
                    fondo.Caja.FormasPago.Add(fp);
                }
                fp.Unidades--;
                fp.Monto -= importe;
                fondo.FormasPago.Add(new DataAccess.SirCoPOS.FondoFormaPago
                {
                    Entrada    = false,
                    Fecha      = now,
                    FormaPago  = (int)formaPago,
                    Monto      = importe,
                    Cantidad   = 1,
                    UsuarioId  = null,
                    Referencia = gid
                });
            }
            ctx.SaveChanges();
        }
Ejemplo n.º 6
0
        protected override void Execute(CodeActivityContext context)
        {
            var ctx = new DataAccess.SirCoPOSDataContext();

            var gid = context.GetValue(this.GID);

            var item = ctx.SolicitudesCreditoVales.Where(i => i.Id == gid).Single();

            if (item.fechaAprobacion.HasValue)
            {
                throw new NotSupportedException();
            }

            item.fechaAprobacion = DateTime.Now;
            item.Approved        = false;
            ctx.SaveChanges();
        }
Ejemplo n.º 7
0
        public void ProcesarNotas()
        {
            var ctx = new DataAccess.SirCoPOSDataContext();
            var q   = ctx.Notas.Where(i => i.Venta == null)
                      .OrderBy(i => i.Date);

            foreach (var item in q)
            {
                var request = BusinessLogic.Helpers.Serializer.Deserialize <Common.Entities.SaleRequest>(item.Data);
                foreach (var pitem in request.Productos)
                {
                    _process.RequestProducto(pitem.Serie, item.CajeroId);
                }
                var res = _process.Sale(request, item.CajeroId);
                item.Venta = res.Folio;
                ctx.SaveChanges();
            }
        }
Ejemplo n.º 8
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);
        }