Exemplo n.º 1
0
        private bool InsertWeixinClock(Enum打卡类型 type, GetMemberResult member)
        {
            var rtId = "144.1";

            var rcId = pinhuaContext.GetNewRcId();

            var repCase = new EsRepCase
            {
                RcId          = rcId,
                RtId          = rtId,
                LstFiller     = 2,
                LstFillerName = member.name,
                LstFillDate   = DateTime.Now,
                FillDate      = DateTime.Now,
            };

            var record = new WeixinClock
            {
                ExcelServerRtid = rtId,
                ExcelServerRcid = rcId,
                ClockPlanId     = pinhuaContext.GetCurrentClockRange().ExcelServerRcid,
                ClockRangeId    = pinhuaContext.GetCurrentClockRange().RangeId,
                Clocktype       = (int?)type,
                Weixinid        = member.weixinid,
                Userid          = member.userid,
                Name            = member.name,
                Clocktime       = DateTime.Now,
            };

            pinhuaContext.EsRepCase.Add(repCase);
            pinhuaContext.WeixinClock.Add(record);

            var b = pinhuaContext.SaveChanges();

            if (b > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemplo n.º 2
0
        private bool CheckClockOut(GetMemberResult member, Enum打卡类型 type, out List <string> errors)
        {
            var b = true;

            errors = new List <string>();
            var sType = "签退";

            if (!pinhuaContext.IsInternalNetwork())
            {
                errors.Add($"你的IP地址为 {pinhuaContext.ClientIp()} ,非公司网络");
                b = false;
            }

            var planDetail = pinhuaContext.GetCurrentClockRange();

            if (planDetail == null)
            {
                errors.Add("非工作时段");
                b = false;
            }
            else
            {
                planDetail.今天的签退区间(out var t1, out var t2);
                if (!DateTime.Now.IsBetween(t1, t2))
                {
                    errors.Add($"{planDetail.Name}的{sType}时间是 {t1.ToShortTimeString()}~{t2.ToShortTimeString()}");
                    b = false;
                }
                var r = from p in pinhuaContext.WeixinClock
                        where member.userid == p.Userid && p.Clocktime.Value.IsBetween(t1, t2) && p.Clocktype == (int)Enum打卡类型.签退
                        select p;
                if (r.Count() > 0)
                {
                    errors.Add($"当前班段 {r.FirstOrDefault().Clocktime.Value.ToShortTimeString()} 已经有过{sType}记录,请勿重复打卡!");
                    b = false;
                }
            }

            return(b);
        }