示例#1
0
        public ActionResult AuthKey(int id)
        {
            var ctx = new DataAccess.SirCoNominaDataContext();
            var emp = ctx.Empleados.Where(i => i.idempleado == id).Single();

            byte[] secretKey  = KeyGeneration.GenerateRandomKey(20);
            var    issuer     = "ZapateriaTorreon";
            string barcodeUrl = KeyUrl.GetTotpUrl(secretKey, $"{emp.idempleado}") + $"&issuer={issuer}";

            //barcodeUrl = HttpUtility.UrlDecode(barcodeUrl);

            ViewBag.id         = id;
            ViewBag.SecretKey  = Base32Encoder.Encode(secretKey);
            ViewBag.BarcodeUrl = barcodeUrl;
            //ViewBag.issuer = issuer;
            return(View());
        }
示例#2
0
        private string GetEmpleado(int?id)
        {
            var ctxn = new DataAccess.SirCoNominaDataContext();

            if (!id.HasValue)
            {
                return(null);
            }

            var emp = ctxn.Empleados.Where(i => i.idempleado == id).SingleOrDefault();

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

            return($"{emp.nombre} {emp.appaterno} {emp.apmaterno}");
        }
示例#3
0
        public ActionResult AuthKey(int id, string key, string code)
        {
            var ctx = new DataAccess.SirCoNominaDataContext();
            var emp = ctx.Empleados.Where(i => i.idempleado == id).Single();

            byte[] secretKey = Base32Encoder.Decode(key);

            long timeStepMatched = 0;
            var  otp             = new Totp(secretKey);

            if (otp.VerifyTotp(code, out timeStepMatched, new VerificationWindow(2, 2)))
            {
                emp.authkey = key;
                ctx.SaveChanges();

                return(Content("SUCCESS"));
            }

            return(Content("FAILED"));
        }
示例#4
0
        public Empleado FindCajero(string user)
        {
            var ctx  = new DataAccess.SirCoNominaDataContext();
            var item = ctx.Empleados.Where(i => i.usuariosistema == user &&
                                           i.iddepto == (int)Common.Constants.Departamento.TDA &&
                                           i.idpuesto == (int)Common.Constants.Puesto.CJA &&
                                           i.estatus == "A").SingleOrDefault();

            if (item != null)
            {
                return(new Empleado
                {
                    Id = item.idempleado,
                    ApellidoMaterno = item.apmaterno,
                    ApellidoPaterno = item.appaterno,
                    Nombre = item.nombre,
                    Usuario = item.usuariosistema,
                    Clave = item.clave
                });
            }
            return(null);
        }
示例#5
0
        public Empleado Login(string user, string pass)
        {
            var puestos = new int[] {
                (int)Common.Constants.Puesto.CJA,
                (int)Common.Constants.Puesto.ENC,
                (int)Common.Constants.Puesto.SUP
            };
            var ctx  = new DataAccess.SirCoNominaDataContext();
            var item = ctx.Empleados.Where(i => i.usuariosistema.Trim() == user &&
                                           i.password.Trim() == pass &&
                                           i.iddepto == (int)Common.Constants.Departamento.TDA &&
                                           puestos.Contains(i.idpuesto) &&
                                           i.estatus == "A").SingleOrDefault();

            //if (!int.TryParse(user, out id))
            //    return null;
            //if (pass != "123")
            //    return null;
            //var item = ctx.Empleados.Where(i => i.idempleado == id
            //    && i.iddepto == (int)Common.Constants.Departamento.TDA
            //    && puestos.Contains(i.idpuesto)
            //    && i.estatus == "A"
            //    && i.clave.Substring(0, 2) == sucursal).SingleOrDefault();
            if (item != null)
            {
                return(new Empleado
                {
                    Id = item.idempleado,
                    ApellidoMaterno = item.apmaterno,
                    ApellidoPaterno = item.appaterno,
                    Nombre = item.nombre,
                    Usuario = item.usuariosistema,
                    Clave = item.clave,
                    Puesto = item.idpuesto,
                    Depto = item.iddepto
                });
            }
            return(null);
        }
示例#6
0
        public Empleado FindAuditorEntrega(int id, int idcajero)
        {
            var ctx    = new DataAccess.SirCoNominaDataContext();
            var ctxpos = new DataAccess.SirCoPOSDataContext();
            var cajero = ctx.Empleados.Where(i => i.idempleado == idcajero &&
                                             i.estatus == "A").Single();

            var auditor = ctx.Empleados.Where(i => i.idempleado == id &&
                                              i.estatus == "A").SingleOrDefault();

            if (auditor != null)
            {
                var asuc = auditor.clave.Substring(0, 2);
                var suc  = cajero.clave.Substring(0, 2);
                if (Common.Constants.Puestos.Gerentes.Contains(cajero.idpuesto) ||
                    cajero.idpuesto == (int)Common.Constants.Puesto.CJA)
                {
                    if (Common.Constants.Puestos.Gerentes.Contains(auditor.idpuesto))
                    {
                        var fondo = ctxpos.Fondos.Where(i => i.ResponsableId == auditor.idempleado && !i.FechaCierre.HasValue).SingleOrDefault();
                        if (fondo == null)
                        {
                            return(null);
                        }
                    }
                    else if (auditor.idpuesto == (int)Common.Constants.Puesto.MEN)
                    {
                        var fondo = ctxpos.Fondos.Where(i => i.ResponsableId == auditor.idempleado && !i.FechaCierre.HasValue).SingleOrDefault();
                        if (fondo == null)
                        {
                            return(null);
                        }
                    }
                    else if (!Common.Constants.Puestos.Admin.Contains(auditor.idpuesto))
                    {
                        return(null);
                    }
                }
                //else if (cajero.idpuesto == (int)Common.Constants.Puesto.CJA)
                //{

                //}
                else
                {
                    return(null);
                }


                return(new Empleado
                {
                    Id = auditor.idempleado,
                    ApellidoMaterno = auditor.apmaterno,
                    ApellidoPaterno = auditor.appaterno,
                    Nombre = auditor.nombre,
                    Usuario = auditor.usuariosistema,
                    Clave = auditor.clave,
                    Puesto = auditor.idpuesto
                });
            }
            return(null);
        }
示例#7
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);
        }