Beispiel #1
0
        public static int SignIn(string userName, string userId, double lng, double lat)
        {
            TreatFee        f   = new TreatFee();
            List <TreatFee> fee = f.Select(" and billman='" + userName + "' and VBCODE= '打卡申请'  and  left(createtime, 10) = CONVERT(varchar(10), GETDATE(), 120)  and state=10 order by id desc ");

            if (fee.Count > 0)
            {
                double   lng_kf = fee[0].KFLNG == null ? -1 : Convert.ToDouble(fee[0].KFLNG);
                double   lat_kf = fee[0].KFLAT == null ? -1 : Convert.ToDouble(fee[0].KFLAT);
                DateTime now    = System.DateTime.Now;

                if (MyGlobal.AERA_CHECK)//是否距离校验
                {
                    if (LngLatDis.GetDistance(lng, lat, lng_kf, lat_kf) > MyGlobal.VISITAERA)
                    {
                        return(-3);//距离超长
                    }
                }
                //else
                //{
                L_SIGN        s      = new L_SIGN();
                string        date_s = now.ToString("yyyy-MM-dd");
                List <L_SIGN> l      = s.Select(" AND USERID='" + userId + "'  AND  DATE='" + date_s + "'  ");
                if (l.Count <= 0)//今日无签到记录
                {
                    L_SIGN mm = new L_SIGN();
                    mm.USERID    = userId;
                    mm.TURENAME  = userName;
                    mm.DATE      = date_s;
                    mm.TIME_A    = SysTime.GetTime.ToString("yyyy-MM-dd HH:mm:ss");
                    mm.NAME_A    = fee[0].CLIENT;
                    mm.LAT_A     = lat.ToString();
                    mm.LNG_A     = lng.ToString();
                    mm.R_CODE_IN = fee[0].BILLCODE;
                    mm.Insert();
                    return(0);
                }
                else//今日记录已存在
                {
                    string sign_in  = l[0].TIME_A == null ? "" : l[0].TIME_A;
                    string sign_out = l[0].TIME_D == null ? "" : l[0].TIME_D;
                    if (sign_in.Trim() != "") //上班已签到
                    {
                        return(-4);           //已签到
                    }
                    else if (sign_out != "")
                    {
                        return(-5);//已签到下班
                    }
                    else
                    {
                        L_SIGN mm = new L_SIGN();
                        mm.TIME_A    = SysTime.GetTime.ToString("yyyy-MM-dd HH:mm:ss");
                        mm.NAME_A    = fee[0].CLIENT;
                        mm.LAT_A     = lat.ToString();
                        mm.LNG_A     = lng.ToString();
                        mm.R_CODE_IN = fee[0].BILLCODE;
                        mm.Updata(" and  id=" + l[0].ID);
                        return(0);
                    }
                }
            }
            else
            {
                return(-2);//没有任何单子
            }
        }
Beispiel #2
0
        /// <summary>
        /// 返回 -1:没有该人员  -2:没有任何单子  -3:距离超长  -4:已签到  -5;已签到下班  0:成功
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="lng"></param>
        /// <param name="lat"></param>
        /// <returns></returns>
        public static int SignOut(string userName, string userId, double lng, double lat)
        {
            puku_user        user  = new puku_user();
            List <puku_user> pukus = user.Select(" and USERPU='" + userId + "'  and ISSTOP='否'  and left(ZF4, 10)= CONVERT(varchar(10), GETDATE(), 120)  ");

            if (pukus.Count > 0)
            {
                //double lng_kf = pukus[0].ZF2 == null ? -1 : Convert.ToDouble(pukus[0].ZF2);
                //double lat_kf = pukus[0].ZF3 == null ? -1 : Convert.ToDouble(pukus[0].ZF3);
                //if (lng_kf == -1 || lat_kf == -1)
                //{
                //    return -2;//没有任何单子
                //}
                //else
                //{
                string date = System.DateTime.Now.ToString("yyyy-MM-dd");
                if (MyGlobal.AERA_CHECK)    //是否距离校验
                {
                    if (LngLatDis.GetDistance(lng, lat, Convert.ToDouble(pukus[0].ZF2), Convert.ToDouble(pukus[0].ZF3)) > MyGlobal.VISITAERA)
                    {
                        return(-3);   //距离超长
                    }
                }
                //else
                //{
                L_SIGN        s = new L_SIGN();
                List <L_SIGN> l = s.Select(" AND USERID='" + userId + "'  AND  DATE='" + date + "'  ");
                if (l.Count <= 0)    //今日无签到记录
                {
                    L_SIGN mm = new L_SIGN();
                    mm.USERID     = userId;
                    mm.TURENAME   = pukus[0].TURENAME;
                    mm.DATE       = date;
                    mm.TIME_D     = SysTime.GetTime.ToString("yyyy-MM-dd HH:mm:ss");
                    mm.NAME_D     = pukus[0].ZF1;
                    mm.LAT_D      = lat.ToString();     //签到时 用户的位置
                    mm.LNG_D      = lng.ToString();
                    mm.R_CODE_OUT = pukus[0].REFERCODE; //签到依据的单据
                    mm.Insert();
                    return(0);
                }
                else    //今日记录已存在
                {
                    string sign_out = l[0].TIME_D == null ? "" : l[0].TIME_D;
                    if (sign_out.Trim() != "") //下班已签到
                    {
                        return(-4);            //已签到
                    }
                    else
                    {
                        L_SIGN mm = new L_SIGN();
                        mm.TIME_D     = SysTime.GetTime.ToString("yyyy-MM-dd HH:mm:ss");
                        mm.NAME_D     = pukus[0].ZF1;
                        mm.LAT_D      = lat.ToString();
                        mm.LNG_D      = lng.ToString();
                        mm.R_CODE_OUT = pukus[0].REFERCODE;
                        mm.Updata(" and  id=" + l[0].ID);
                        return(0);
                    }
                }
                //}
            }
            else
            {
                return(-2);//没有该人员
            }
        }