Exemplo n.º 1
0
        private void SuaGio(cCheckInOut CIO, MayCheck LoaiCheck, TimeSpan gioMoi, int UEN)
        {
            if (CIO.HaveINOUT == -1 && LoaiCheck.ToString() == MayCheck.O.ToString())
            {
                return;                                                                                   // sửa giờ cùng loại, khác loại bỏ qua
            }
            if (CIO.HaveINOUT == -2 && LoaiCheck.ToString() == MayCheck.I.ToString())
            {
                return;                                                                                  // sửa giờ cùng loại, khác loại bỏ qua
            }
            DateTime timeStringOld;
            int      machineNoOld;
            string   sourceOld;

            if (CIO.HaveINOUT == -1)
            {
                timeStringOld = CIO.Vao.Time;
                machineNoOld  = CIO.Vao.MachineNo;
                sourceOld     = CIO.Vao.Source;
            }
            else if (CIO.HaveINOUT == -2)
            {
                timeStringOld = CIO.Raa.Time;
                machineNoOld  = CIO.Raa.MachineNo;
                sourceOld     = CIO.Raa.Source;
            }
            else
            {
                return;
            }

            DateTime ngayGioMoi = timeStringOld.Date.Add(gioMoi);

            if (CIO.HaveINOUT == -1)
            {
                ngayGioMoi = ngayGioMoi.Add(XL2._01giay);                                  // nếu sửa giờ vào thì add thêm 1 giây.
            }
            #region

            int kq = SqlDataAccessHelper.ExecSPNoneQuery(SPName.CheckInOut_Update.ToString(),
                                                         new SqlParameter("@UserEnrollNumber", UEN),
                                                         new SqlParameter("@TimeStrOld", timeStringOld),
                                                         new SqlParameter("@MachineNoOld", machineNoOld),
                                                         new SqlParameter("@SourceOld", sourceOld),
                                                         new SqlParameter("@OriginTypeNew", LoaiCheck.ToString()),
                                                         new SqlParameter("@TimeDateNew", ngayGioMoi.Date),
                                                         new SqlParameter("@TimeStrNew", ngayGioMoi),
                                                         new SqlParameter("@MachineNoNew", (int)LoaiCheck),
                                                         new SqlParameter("@SourceNew", "PC"));

            #endregion
        }
Exemplo n.º 2
0
        private void BoSungGio(cCheckInOut CIO, MayCheck LoaiCheck, TimeSpan gioBoSung, int UEN)
        {
            if (CIO.HaveINOUT == -1 && LoaiCheck.ToString() == MayCheck.I.ToString())
            {
                return;                                                                                   // có vào thiếu ra , bổ sung ra thì trùng bỏ qua
            }
            if (CIO.HaveINOUT == -2 && LoaiCheck.ToString() == MayCheck.O.ToString())
            {
                return;                          // có ra thiếu vào, bổ sung vào thì trùng bỏ qua
            }
            if (CIO.HaveINOUT == -2)             // bổ sung giờ vào cho CIO thiếu vào --> ok
            {
                //if (LoaiCheck.ToString() == MayCheck.I.ToString())

                /* xác định giờ ra đã có, ngày ra đã có, bỏ phần dư giây giờ bổ sung (vào = 0, ra =1) (hh:mm:00)
                * tạo NGÀY giờ vào mới để thêm vào CSDL, (nếu vào sau ra thì có qua đêm phải add thêm 1 ngày) */
                TimeSpan gioRa         = CIO.Raa.Time.TimeOfDay;        // xác định giờ ra
                DateTime ngayGioVaoMoi = CIO.Raa.Time.Date;             //ngày
                gioBoSung     = new TimeSpan(gioBoSung.Hours, gioBoSung.Minutes, 0);
                ngayGioVaoMoi = (gioBoSung >= gioRa)
                                        ? ngayGioVaoMoi.AddDays(-1d).Add(gioBoSung).Add(XL2._01giay) // giây = 1 --> hh:mm:01 vào ca sau phải sau ra ca trước
                                        : ngayGioVaoMoi.Add(gioBoSung).Add(XL2._01giay);             // thêm 1 ngày nếu vào sau ra

                #region

                int kq = SqlDataAccessHelper.ExecSPNoneQuery(SPName.CheckInOut_Ins.ToString(),
                                                             new SqlParameter("@UserEnrollNumber", UEN),
                                                             new SqlParameter("@TimeDate", ngayGioVaoMoi.Date),
                                                             new SqlParameter("@TimeStr", ngayGioVaoMoi),
                                                             new SqlParameter("@OriginType", LoaiCheck.ToString()),
                                                             new SqlParameter("@MachineNo", (int)LoaiCheck),
                                                             new SqlParameter("@Source", "PC"));

                #endregion

                if (kq == 0)
                {
                }
            }
            else if (CIO.HaveINOUT == -1)              //bổ sung giờ vào cho CIO đã có vào

            /* xác định giờ vào đã có, ngày ra đã có, bỏ phần dư giây giờ bổ sung (vào = 0, ra =1) (hh:mm:00)
             * tạo NGÀY giờ vào mới để thêm vào CSDL, () */
            {
                TimeSpan gioVao        = CIO.Vao.Time.TimeOfDay;         // xác định giờ vào
                DateTime ngayGioRaaMoi = CIO.Vao.Time.Date;              //ngày
                gioBoSung     = new TimeSpan(gioBoSung.Hours, gioBoSung.Minutes, 0);
                ngayGioRaaMoi = (gioVao >= gioBoSung)
                                        ? ngayGioRaaMoi.AddDays(1d).Add(gioBoSung) // giây = 0--> hh:mm:00 ko cần add thêm 1 giây
                                        : ngayGioRaaMoi.Add(gioBoSung);            // thêm 1 ngày nếu ra trước vào

                #region

                int kq = SqlDataAccessHelper.ExecSPNoneQuery(SPName.CheckInOut_Ins.ToString(),
                                                             new SqlParameter("@UserEnrollNumber", UEN),
                                                             new SqlParameter("@TimeDate", ngayGioRaaMoi.Date),
                                                             new SqlParameter("@TimeStr", ngayGioRaaMoi),
                                                             new SqlParameter("@OriginType", LoaiCheck.ToString()),
                                                             new SqlParameter("@MachineNo", (int)LoaiCheck),
                                                             new SqlParameter("@Source", "PC"));

                #endregion
            }
            else
            {
            }
        }