Ejemplo n.º 1
0
        private bool UserCanAbsen(pengaturan setting, absen data)
        {
            var absenStatus = GetAbsenStatus(setting);

            if (absenStatus == AbsenStatus.Masuk && data == null)
            {
                return(true);
            }
            else if (absenStatus == AbsenStatus.Terlambat && data == null)
            {
                throw new SystemException("Maaf Anda Terlambat");
            }
            else if (absenStatus == AbsenStatus.Masuk && data != null)
            {
                throw new SystemException("Maaf Anda Sudah Absen Masuk");
            }
            else if (absenStatus == AbsenStatus.Terlambat && data != null)
            {
                throw new SystemException("Maaf Belum Saatnya Jam Pulang");
            }
            else if (absenStatus == AbsenStatus.Pulang && data == null)
            {
                throw new SystemException("Maaf Anda Tidak Tidak Masuk Hari Ini ");
            }
            else if (absenStatus == AbsenStatus.Pulang && data != null && data.JamPulang != new TimeSpan())
            {
                throw new SystemException("Maaf Anda Sudah Absen Jam Pulang ");
            }
            else
            {
                return(true);
            }
        }
Ejemplo n.º 2
0
 public bool Delete(absen item)
 {
     using (var db = new OcphDbContext())
     {
         var trans = db.Connection.BeginTransaction();
         try
         {
             if (db.Absens.Delete(O => O.IdAbsen == item.IdAbsen))
             {
                 var data = Source.Where(O => O.IdAbsen == item.IdAbsen).FirstOrDefault();
                 if (data != null)
                 {
                     Source.Remove(data);
                 }
                 trans.Commit();
                 return(true);
             }
             else
             {
                 return(false);
             }
         }
         catch (Exception)
         {
             trans.Rollback();
             return(false);
         }
     }
 }
Ejemplo n.º 3
0
 // PUT: api/Pegawai/5
 public HttpResponseMessage Put(int id, [FromBody] absen value)
 {
     try
     {
         if (ModelState.IsValid)
         {
             using (var db = new OcphDbContext())
             {
                 var isUpdate = db.Absen.Update(O => new { O.JamMasuk, O.JamPulang, O.PegawaiId, O.PengaturanId, O.PerizinanId, O.Status }, value, O => O.Id == value.Id);
                 if (isUpdate)
                 {
                     return(Request.CreateResponse(HttpStatusCode.OK, value));
                 }
                 else
                 {
                     throw new SystemException("Data tidak tersimpan");
                 }
             }
         }
         else
         {
             throw new SystemException("Data Tidak Valid");
         }
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.NotModified, ex.Message));
     }
 }
Ejemplo n.º 4
0
        private void AbsenCollection_OnChangeSource(absen obj)
        {
            var MainCollection = ResourcesBase.GetMainWindowViewModel().AbsenTodayCollection;

            Pegawai.AbsenToday = obj;
            MainCollection.SourceView.Refresh();
        }
Ejemplo n.º 5
0
 // POST: api/Pegawai
 public HttpResponseMessage Post([FromBody] absen value)
 {
     try
     {
         if (ModelState.IsValid)
         {
             var context = new Models.AbsenContext(value);
             if (context.Success)
             {
                 return(Request.CreateResponse(HttpStatusCode.OK, value));
             }
             else
             {
                 throw new SystemException("Anda Tidak Dapat Absen, Hubungi Administrator");
             }
         }
         else
         {
             throw new SystemException("Data Tidak Valid");
         }
     }
     catch (Exception ex)
     {
         return(new ErrorResponse(Request.CreateErrorResponse(HttpStatusCode.NotModified, ex.Message), ex.Message));
     }
 }
Ejemplo n.º 6
0
        public Task <absen> Absenbyadmin(absen model)
        {
            using (var db = new OcphDbContext())
            {
                try
                {
                    //edit
                    DateTimeOffset localTime1 = DateTime.SpecifyKind(model.jamdatang.Value, DateTimeKind.Utc);
                    model.jamdatang = localTime1.LocalDateTime;

                    if (model.jampulang != null)
                    {
                        DateTimeOffset localTime2 = DateTime.SpecifyKind(model.jampulang.Value, DateTimeKind.Utc);
                        model.jampulang = localTime2.LocalDateTime;
                    }


                    DateTime tanggalHariIni = model.jamdatang.Value;
                    var      todayabsen     = db.Absens.Where(x => x.idpegawai == model.idpegawai && x.jamdatang.Value.Day == tanggalHariIni.Day &&
                                                              x.jamdatang.Value.Month == tanggalHariIni.Month && x.jamdatang.Value.Year == tanggalHariIni.Year).FirstOrDefault();

                    if (todayabsen == null)
                    {
                        model.jamdatang = tanggalHariIni;
                        if (model.status != "masuk")
                        {
                            model.jampulang = null;
                        }

                        model.idabsen = db.Absens.InsertAndGetLastID(model);
                        if (model.idabsen <= 0)
                        {
                            throw new SystemException("Terjadi Kesalahan, Coba Ulangi Lagi");
                        }
                        return(Task.FromResult(model));
                    }
                    else
                    {
                        todayabsen.jamdatang  = model.jamdatang;
                        todayabsen.jampulang  = model.jampulang;
                        todayabsen.status     = model.status;
                        todayabsen.keterangan = model.keterangan;


                        if (!db.Absens.Update(x => new { x.status, x.jamdatang, x.jampulang, x.keterangan }, todayabsen,
                                              x => x.idabsen == todayabsen.idabsen))
                        {
                            throw new SystemException("Terjadi Kesalahan , Coba Ulangi Lagi");
                        }
                        model = todayabsen;
                        return(Task.FromResult(model));
                    }
                }
                catch (System.Exception ex)
                {
                    throw new AppException(ex.Message);
                }
            }
        }
Ejemplo n.º 7
0
        public async Task <IActionResult> Post([FromBody] absen model)
        {
            try {
                absen result = await absenService.Insert(model);

                return(Ok(result));
            } catch (System.Exception ex) {
                return(BadRequest(ex.Message));
            }
        }
Ejemplo n.º 8
0
        public async Task <IActionResult> PutAsync(int id, [FromBody] absen model)
        {
            try {
                var result = await absenService.Update(model);

                return(Ok(result));
            } catch (System.Exception ex) {
                return(BadRequest(ex.Message));
            }
        }
Ejemplo n.º 9
0
 public Task <bool> Update(absen item)
 {
     using (var db = new OcphDbContext()) {
         try {
             return(Task.FromResult(db.Absens.Update(x => new { x.jamdatang, x.jampulang, x.keterangan }, item, x => x.idabsen == item.idabsen)));
         } catch (System.Exception ex) {
             throw new AppException(ex.Message);
         }
     }
 }
Ejemplo n.º 10
0
        public bool CanIjin(absen ab)
        {
            var a = source.Where(o => o.Tanggal.Day == ab.Tanggal.Day && o.Tanggal.Month == ab.Tanggal.Month &&
                                 o.Tanggal.Year == ab.Tanggal.Year && o.Ijin == ab.Ijin);

            if (a != null)
            {
                return(true);
            }
            return(false);
        }
Ejemplo n.º 11
0
 public bool Update(absen item)
 {
     using (var db = new OcphDbContext())
     {
         var trans = db.Connection.BeginTransaction();
         try
         {
             if (db.Absens.Update(x => new {
                 x.Alpa,
                 x.Bulan,
                 x.Hadir,
                 x.Ijin,
                 x.Keterangan,
                 x.Sakit,
                 x.Tanggal,
                 x.WaktuMasuk,
                 x.WaktuPulang
             }, item, x => x.IdAbsen == item.IdAbsen))
             {
                 var res = Source.Where(O => O.IdAbsen == item.IdAbsen).FirstOrDefault();
                 if (res != null)
                 {
                     res.Alpa        = item.Alpa;
                     res.Bulan       = item.Bulan;
                     res.Hadir       = item.Hadir;
                     res.Ijin        = item.Ijin;
                     res.Keterangan  = item.Keterangan;
                     res.Sakit       = item.Sakit;
                     res.Tanggal     = item.Tanggal;
                     res.WaktuMasuk  = item.WaktuMasuk;
                     res.WaktuPulang = item.WaktuPulang;
                     trans.Commit();
                     return(true);
                 }
                 else
                 {
                     throw new SystemException();
                 }
             }
             else
             {
                 throw new SystemException();
             }
         }
         catch (Exception)
         {
             trans.Rollback();
             return(false);
         }
     }
 }
Ejemplo n.º 12
0
        public Task <absen> Insert(absen model)
        {
            using (var db = new OcphDbContext()) {
                try {
                    //edit
                    if (model.idabsen > 0)
                    {
                        if (!db.Absens.Update(x => new { x.status, x.jamdatang, x.jampulang, x.keterangan }, model,
                                              x => x.idabsen == model.idabsen))
                        {
                            throw new SystemException("Terjadi Kesalahan , Coba Ulangi Lagi");
                        }
                    }
                    else
                    {
                        int tanggal = model.jamdatang.Value.Day;
                        int bulan   = model.jamdatang.Value.Month;
                        int tahun   = model.jamdatang.Value.Year;

                        var today = db.Absens.Where(x => x.idpegawai == model.idpegawai && x.jamdatang.Value.Day == tanggal &&
                                                    x.jamdatang.Value.Month == bulan && x.jamdatang.Value.Year == tanggal).FirstOrDefault();

                        if (today == null)
                        {
                            model.idabsen = db.Absens.InsertAndGetLastID(model);
                        }
                        else
                        {
                            if (today.jampulang.Value.Day != model.jampulang.Value.Day || today.jampulang.Value.Month != model.jampulang.Value.Month ||
                                today.jampulang.Value.Year != model.jampulang.Value.Year)
                            {
                                if (!db.Absens.Update(x => new { x.jampulang }, today, x => x.idabsen == today.idabsen))
                                {
                                    throw new SystemException("Terjadi Kesalahan , Coba Ulangi Lagi");
                                }
                            }
                            else
                            {
                                throw new SystemException("Anda Sudah Absen hari Ini");
                            }
                        }
                    }
                    return(Task.FromResult(model));
                } catch (System.Exception ex) {
                    throw new AppException(ex.Message);
                }
            }
        }
Ejemplo n.º 13
0
        public void SendNewAbsen(absen ab)
        {
            Clients.All.AddNewAbsen(ab);

            using (var db = new OcphDbContext())
            {
                var result = db.Pegawai.Where(O => O.Id == ab.PegawaiId).FirstOrDefault();
                if (result != null)
                {
                    foreach (var connectionId in _connections.GetConnections(result.UserId))
                    {
                        Clients.Client(connectionId).addToUser(ab);
                    }
                }
            }
        }
Ejemplo n.º 14
0
        private async void Verification_OnIdentify(IdentificationControl IdentificationControl, IdentifyResult IdentificationResult)
        {
            if (IdentificationResult.Indexes != null && IdentificationResult.Indexes.Count() > 0)
            {
                await Task.Delay(6000);

                var ab = new absen {
                    PengaturanId = 1, PegawaiId = Pegawai.Id, Tanggal = DateTime.Now, JamMasuk = DateTime.Now.TimeOfDay
                };
                var absenCollection = ResourcesBase.GetMainWindowViewModel().AbsenCollection;
                absenCollection.OnChangeSource += AbsenCollection_OnChangeSource;
                absenCollection.Add(ab);


                this.Close();
            }
        }
Ejemplo n.º 15
0
 private void AbsenCommandAction(object obj)
 {
     try
     {
         var dataAbsen = new absen
         {
             IdMahasiswa = idAnggota, Tanggal = today
         };
         var isSaved = Absen.Add(dataAbsen);
         SourceView.Refresh();
         Helpers.ShowSuccessMessage("Anda Sudah Absen");
         IdAnggota = null;
     }
     catch (Exception ex)
     {
         Helpers.ShowErrorMessage(ex.Message);
     }
 }
Ejemplo n.º 16
0
 private void DoAbsen(absen value)
 {
     if (!NotHavePerizinan())
     {
         var setting = GetPengaturan();
         if (setting != null && NotHollyDay())
         {
             var todayController = new AbsenTodayController();
             var today           = todayController.Get(value.PegawaiId);
             if (UserCanAbsen(setting, today))
             {
                 using (var db = new OcphDbContext())
                 {
                     if (GetAbsenStatus(setting) == AbsenStatus.Masuk)
                     {
                         value.Status = Library.StatusKehadiran.Hadir;
                         value.Id     = db.Absen.InsertAndGetLastID(value);
                         if (value.Id < 0)
                         {
                             throw new SystemException("Terjadi Kesalahan, Hubungi Administrator");
                         }
                     }
                     else if (GetAbsenStatus(setting) == AbsenStatus.Pulang)
                     {
                         today.JamPulang = DateTime.Now.TimeOfDay;
                         if (!db.Absen.Update(O => new { O.JamPulang }, today, O => O.Id == today.Id))
                         {
                             throw new SystemException("Terjadi Kesalahan, Hubungi Administrator");
                         }
                     }
                 }
                 this.Success = true;
             }
             else
             {
                 throw new SystemException("Terjadi Kesalahan, Hubungi Administrator");
             }
         }
     }
     else
     {
         throw new SystemException("Anda Sedang  " + Perizinan.Jenis);
     }
 }
Ejemplo n.º 17
0
 public bool Add(absen absen)
 {
     try
     {
         using (var db = new OcphDbContext())
         {
             var dataAnggota = db.Anggotas.Where(O => O.IdMahasiswa == absen.IdMahasiswa).FirstOrDefault();
             if (dataAnggota == null)
             {
                 throw new SystemException("Data Mahasiswa Tidak Ditemukan");
             }
             else
             {
                 var dataAbsen = Source.Where(O =>
                                              O.IdMahasiswa == absen.IdMahasiswa &&
                                              O.Tanggal.Day == absen.Tanggal.Day &&
                                              O.Tanggal.Month == absen.Tanggal.Month &&
                                              O.Tanggal.Year == absen.Tanggal.Year).FirstOrDefault();
                 DateTime today  = DateTime.Now;
                 var      result = CanAbsen(dataAbsen);
                 if (result == StatusBisaAbsen.Datang)
                 {
                     absen.WaktuMasuk = today.TimeOfDay;
                     absen.Hadir      = Status.Ya;
                     absen.Bulan      = today.Month.ToString();
                     absen.IdAbsen    = db.Absens.InsertAndGetLastID(absen);
                     absen.Anggota    = dataAnggota;
                     Source.Add(absen);
                     return(true);
                 }
                 else
                 {
                     dataAbsen.WaktuPulang = today.TimeOfDay;
                     return(db.Absens.Update(O => new { O.WaktuPulang }, dataAbsen, O => O.IdAbsen == dataAbsen.IdAbsen));
                 }
             }
         }
     }
     catch (Exception ex)
     {
         throw new SystemException(ex.Message);
     }
 }
Ejemplo n.º 18
0
        public Task <absen> TodayAbsen(absen model)
        {
            using (var db = new OcphDbContext()) {
                try {
                    //edit
                    DateTime tanggalHariIni   = DateTime.Now;
                    TimeSpan waktuHariIni     = tanggalHariIni.TimeOfDay;
                    TimeSpan jamMasuk         = new TimeSpan(8, 0, 0);
                    TimeSpan batasTerlambat   = new TimeSpan(10, 0, 0);
                    TimeSpan batasSiang       = new TimeSpan(12, 0, 0);
                    TimeSpan batasPulangCepat = new TimeSpan(16, 0, 0);
                    TimeSpan jamPulang        = new TimeSpan(17, 0, 0);

                    var todayabsen = db.Absens.Where(x => x.idpegawai == model.idpegawai && x.jamdatang.Value.Day == tanggalHariIni.Day &&
                                                     x.jamdatang.Value.Month == tanggalHariIni.Month && x.jamdatang.Value.Year == tanggalHariIni.Year).FirstOrDefault();

                    if (todayabsen == null)
                    {
                        if (model.status == "masuk")
                        {
                            if (waktuHariIni > batasTerlambat)
                            {
                                throw new SystemException("Anda Tidak Dapat Absen Karena Terlambat");
                            }
                            else
                            {
                                model.jamdatang = tanggalHariIni;
                                model.jampulang = null;
                                if (waktuHariIni > jamMasuk)
                                {
                                    model.keterangan = "Datang : Terlambat, ";
                                }
                                else
                                {
                                    model.keterangan = "Datang : Tepat Waktu,";
                                }
                                model.idabsen = db.Absens.InsertAndGetLastID(model);
                                if (model.idabsen <= 0)
                                {
                                    throw new SystemException("Terjadi Kesalahan, Coba Ulangi Lagi");
                                }
                                return(Task.FromResult(model));
                            }
                        }
                        else
                        {
                            model.jamdatang = tanggalHariIni;
                            model.jampulang = null;
                            model.idabsen   = db.Absens.InsertAndGetLastID(model);
                            if (model.idabsen <= 0)
                            {
                                throw new SystemException("Terjadi Kesalahan, Coba Ulangi Lagi");
                            }
                            return(Task.FromResult(model));
                        }
                    }
                    else
                    {
                        if (waktuHariIni <= batasTerlambat)
                        {
                            throw new SystemException("Anda Sudah Absen Datang");
                        }

                        if (waktuHariIni > batasTerlambat && waktuHariIni < batasPulangCepat)
                        {
                            throw new SystemException("belum Saatnya Pulang");
                        }

                        if (todayabsen.jampulang != null)
                        {
                            throw new SystemException("Anda Sudah Absen Pulang");
                        }

                        if (waktuHariIni > batasPulangCepat)
                        {
                            todayabsen.keterangan += $"\r Pulang : Terlalu Cepat";
                        }

                        if (waktuHariIni > jamPulang)
                        {
                            todayabsen.keterangan += $"\r Pulang : Tepat Waktu";
                        }

                        todayabsen.jampulang = tanggalHariIni;

                        if (!db.Absens.Update(x => new { x.status, x.jamdatang, x.jampulang, x.keterangan }, todayabsen,
                                              x => x.idabsen == todayabsen.idabsen))
                        {
                            throw new SystemException("Terjadi Kesalahan , Coba Ulangi Lagi");
                        }
                        model = todayabsen;
                        return(Task.FromResult(model));
                    }
                } catch (System.Exception ex) {
                    throw new AppException(ex.Message);
                }
            }
        }
Ejemplo n.º 19
0
 public AbsenContext(absen value)
 {
     this.value = value;
     DoAbsen(value);
 }
Ejemplo n.º 20
0
        private StatusBisaAbsen CanAbsen(absen ab)
        {
            TimeSpan time = DateTime.Now.TimeOfDay;

            if (time <= new TimeSpan(12, 0, 0))
            {
                if (ab == null)
                {
                    if (time <= new TimeSpan(8, 30, 0))
                    {
                        return(StatusBisaAbsen.Datang);
                    }
                    else
                    {
                        throw new SystemException("Maaf Anda Terlmabat");
                    }
                }
                else
                {
                    if (time <= new TimeSpan(12, 0, 0))
                    {
                        throw new SystemException("Anda Sudah Absen Masuk Hari Ini");
                    }
                    else
                    {
                        if (ab.WaktuPulang != new TimeSpan(0, 0, 0))
                        {
                            throw new SystemException("Anda Sudah Absen Pulang Hari Ini");
                        }
                        else if (time <= new TimeSpan(15, 00, 0))
                        {
                            throw new SystemException("Maaf Belum Saatnya Absen Pulang");
                        }
                        else
                        {
                            return(StatusBisaAbsen.Pulang);
                        }
                    }
                }
            }
            else
            {
                if (ab == null)
                {
                    throw new SystemException("Maaf Anda Alpha Hari Ini");
                }
                else
                {
                    if (ab.WaktuPulang != new TimeSpan(0, 0, 0))
                    {
                        throw new SystemException("Anda Sudah Absen Pulang Hari Ini");
                    }
                    else if (time <= new TimeSpan(15, 0, 0))
                    {
                        throw new SystemException("Maaf Belum Saatnya Absen Pulang");
                    }
                    else
                    {
                        return(StatusBisaAbsen.Pulang);
                    }
                }
            }
        }