コード例 #1
0
        private void uploadPegawaiMesinToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor;
            updater.DoUpdate(false);
            var log = fp.upload_download.Where(x => x.upload_download_jenis == "Upload Pegawai ke Mesin").OrderByDescending(x => x.upload_download_id).FirstOrDefault();

            if (log != null)
            {
                if (MessageBox.Show("Upload Terakhir " + log.upload_download_tanggal.ToString("dd MMMM yyyy, hh:mm:ss") + "\nApakah anda ingin upload?",
                                    "Konfirmasi", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    upload_download upload = new upload_download();
                    upload.upload_download_jenis   = "Upload Pegawai ke Mesin";
                    upload.upload_download_tanggal = DateTime.Now;
                    fp.upload_download.Add(upload);
                    fp.SaveChanges();

                    FormProsesUploadPegawaiKeMesin proses = new FormProsesUploadPegawaiKeMesin();
                    proses.StartPosition = FormStartPosition.CenterParent;
                    proses.ShowDialog(this);
                }
            }
            else
            {
                upload_download upload = new upload_download();
                upload.upload_download_jenis   = "Upload Pegawai ke Mesin";
                upload.upload_download_tanggal = DateTime.Now;
                fp.upload_download.Add(upload);
                fp.SaveChanges();

                FormProsesUploadPegawaiKeMesin proses = new FormProsesUploadPegawaiKeMesin();
                proses.StartPosition = FormStartPosition.CenterParent;
                proses.ShowDialog(this);
            }
        }
コード例 #2
0
        private void btnSimpan_Click(object sender, EventArgs e)
        {
            try
            {
                fingerprintEntities fp     = new fingerprintEntities();
                upload_download     upload = new upload_download();
                upload.upload_download_keterangan = "Data " + dtTanggal1.Value.ToString("dd MMMM yyyy") + " s/d " + dtTanggal2.Value.ToString("dd MMMM yyyy");
                upload.upload_download_jenis      = "Upload Absen";
                upload.upload_download_tanggal    = DateTime.Now;
                fp.upload_download.Add(upload);
                fp.SaveChanges();

                FormProsesUploadAbsensiKeWeb proses = new FormProsesUploadAbsensiKeWeb();
                proses.tgl1          = dtTanggal1.Value;
                proses.tgl2          = dtTanggal2.Value;
                proses.StartPosition = FormStartPosition.CenterParent;
                proses.ShowDialog(this);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
コード例 #3
0
 private void btnSimpan_Click(object sender, EventArgs e)
 {
     try
     {
         Cursor.Current = Cursors.WaitCursor;
         foreach (DataGridViewRow row in dgLog.Rows)
         {
             DateTime wkt  = DateTime.Parse(row.Cells["Waktu"].Value.ToString());
             log      data = new log();
             data.pegawai_id  = row.Cells["ID"].Value.ToString();
             data.log_tanggal = DateTime.Parse(row.Cells["Tanggal"].Value.ToString());
             data.log_jam     = wkt.TimeOfDay;
             data.log_kode    = "100";
             data.log_status  = row.Cells["Jenis"].Value.ToString();
             fp.logs.Add(data);
             fp.SaveChanges();
         }
         MessageBox.Show("Berhasil menyimpan data log");
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
コード例 #4
0
        private void btnSimpan_Click(object sender, EventArgs e)
        {
            try
            {
                Cursor.Current = Cursors.WaitCursor;
                fingerprintEntities fp = new fingerprintEntities();
                fp.Database.ExecuteSqlCommand("delete from aturan");

                aturan senin = new aturan();
                senin.aturan_hari              = 2;
                senin.aturan_kegiatan          = cbHariSenin.Checked;
                senin.aturan_jam_masuk         = dtMasukSenin.Value.TimeOfDay;
                senin.aturan_jam_pulang        = dtPulangSenin.Value.TimeOfDay;
                senin.aturan_jam_masuk_khusus  = dtMasukKhususSenin.Value.TimeOfDay;
                senin.aturan_jam_pulang_khusus = dtPulangKhususSenin.Value.TimeOfDay;
                fp.aturans.Add(senin);

                aturan selasa = new aturan();
                selasa.aturan_hari              = 3;
                selasa.aturan_kegiatan          = cbHariSelasa.Checked;
                selasa.aturan_jam_masuk         = dtMasukSelasa.Value.TimeOfDay;
                selasa.aturan_jam_pulang        = dtPulangSelasa.Value.TimeOfDay;
                selasa.aturan_jam_masuk_khusus  = dtMasukKhususSelasa.Value.TimeOfDay;
                selasa.aturan_jam_pulang_khusus = dtPulangKhususSelasa.Value.TimeOfDay;
                fp.aturans.Add(selasa);

                aturan rabu = new aturan();
                rabu.aturan_hari              = 4;
                rabu.aturan_kegiatan          = cbHariRabu.Checked;
                rabu.aturan_jam_masuk         = dtMasukRabu.Value.TimeOfDay;
                rabu.aturan_jam_pulang        = dtPulangRabu.Value.TimeOfDay;
                rabu.aturan_jam_masuk_khusus  = dtMasukKhususRabu.Value.TimeOfDay;
                rabu.aturan_jam_pulang_khusus = dtPulangKhususRabu.Value.TimeOfDay;
                fp.aturans.Add(rabu);

                aturan kamis = new aturan();
                kamis.aturan_hari              = 5;
                kamis.aturan_kegiatan          = cbHariKamis.Checked;
                kamis.aturan_jam_masuk         = dtMasukKamis.Value.TimeOfDay;
                kamis.aturan_jam_pulang        = dtPulangKamis.Value.TimeOfDay;
                kamis.aturan_jam_masuk_khusus  = dtMasukKhususKamis.Value.TimeOfDay;
                kamis.aturan_jam_pulang_khusus = dtPulangKhususKamis.Value.TimeOfDay;
                fp.aturans.Add(kamis);

                aturan jumat = new aturan();
                jumat.aturan_hari              = 6;
                jumat.aturan_kegiatan          = cbHariJumat.Checked;
                jumat.aturan_jam_masuk         = dtMasukJumat.Value.TimeOfDay;
                jumat.aturan_jam_pulang        = dtPulangJumat.Value.TimeOfDay;
                jumat.aturan_jam_masuk_khusus  = dtMasukKhususJumat.Value.TimeOfDay;
                jumat.aturan_jam_pulang_khusus = dtPulangKhususJumat.Value.TimeOfDay;
                fp.aturans.Add(jumat);

                aturan sabtu = new aturan();
                sabtu.aturan_hari              = 7;
                sabtu.aturan_kegiatan          = cbHariSabtu.Checked;
                sabtu.aturan_jam_masuk         = dtMasukSabtu.Value.TimeOfDay;
                sabtu.aturan_jam_pulang        = dtPulangSabtu.Value.TimeOfDay;
                sabtu.aturan_jam_masuk_khusus  = dtMasukKhususSabtu.Value.TimeOfDay;
                sabtu.aturan_jam_pulang_khusus = dtPulangKhususSabtu.Value.TimeOfDay;
                fp.aturans.Add(sabtu);

                aturan minggu = new aturan();
                minggu.aturan_hari              = 1;
                minggu.aturan_kegiatan          = cbHariMinggu.Checked;
                minggu.aturan_jam_masuk         = dtMasukMinggu.Value.TimeOfDay;
                minggu.aturan_jam_pulang        = dtPulangMinggu.Value.TimeOfDay;
                minggu.aturan_jam_masuk_khusus  = dtMasukKhususMinggu.Value.TimeOfDay;
                minggu.aturan_jam_pulang_khusus = dtPulangKhususMinggu.Value.TimeOfDay;
                fp.aturans.Add(minggu);

                fp.SaveChanges();
                MessageBox.Show("Berhasil menyimpan data aturan");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
コード例 #5
0
        private void bwPosting_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
        {
            try
            {
                var noNIP = fp.pegawais.Where(x => x.pegawai_nip.Equals(null) || x.pegawai_nip.Trim().Equals("")).Count();
                if (noNIP > 0)
                {
                    MessageBox.Show("Tidak dapat memposting.\nMasih ada data pegawai dengan nip kosong");
                    e.Cancel = true;
                    return;
                }

                upload_download upload = new upload_download();
                upload.upload_download_keterangan = "Data " + tgl1.ToString("dd MMMM yyyy") + " s/d " + tgl1.ToString("dd MMMM yyyy");
                upload.upload_download_jenis      = "Rekap Absen";
                upload.upload_download_tanggal    = DateTime.Now;
                fp.upload_download.Add(upload);
                fp.SaveChanges();

                lblProses.Invoke(new Action(() => lblProses.Text = "Menghapus data " + tgl1.ToString("dd MMMM yyyy") + " s/d " + tgl1.ToString("dd MMMM yyyy")));
                fp.absens.RemoveRange(fp.absens.Where(x => x.absen_tanggal >= tgl1.Date || x.absen_tanggal <= tgl1.Date));
                fp.SaveChanges();

                lblProses.Invoke(new Action(() => lblProses.Text = "Mengambil data aturan"));
                var dtAturan = fp.aturans.ToList();
                lblProses.Invoke(new Action(() => lblProses.Text = "Mengambil data hari khusus"));
                var dtKhusus = fp.hari_khusus.Where(x => x.hari_khusus_tanggal >= tgl1 && x.hari_khusus_tanggal <= tgl2).ToList();
                lblProses.Invoke(new Action(() => lblProses.Text = "Mengambil data hari libur"));
                var dtLibur = fp.liburs.Where(x => x.libur_tanggal >= tgl1 || x.libur_tanggal <= tgl2).ToList();
                lblProses.Invoke(new Action(() => lblProses.Text = "Mengambil data hari log"));
                var log = fp.logs.Where(x => x.log_tanggal >= tgl1 && x.log_tanggal <= tgl2).ToList();
                Console.WriteLine(log.Count);
                lblProses.Invoke(new Action(() => lblProses.Text = "Mengambil data izin"));
                var izin    = fp.izins.Where(x => x.izin_tanggal >= tgl1 && x.izin_tanggal <= tgl2).ToList();
                var pegawai = fp.pegawais.ToList();
                var jml     = pegawai.Count() <= 0 ? 1 : pegawai.Count();
                int i       = 1;
                foreach (var row in pegawai)
                {
                    var          pegawai_id = row.pegawai_id;
                    List <absen> dtAbsen    = new List <absen>();
                    for (var tgl = tgl1; tgl <= tgl2; tgl = tgl.AddDays(1))
                    {
                        lblProses.Invoke(new Action(() => lblProses.Text = "Memproses log " + row.pegawai_nama + " tanggal " + tgl.ToString()));
                        var aturan = dtAturan.Where(x => x.aturan_hari.Equals((int)tgl.DayOfWeek + 1)).FirstOrDefault();

                        string   absen_hari = "b";
                        TimeSpan masuk      = aturan.aturan_jam_masuk;
                        TimeSpan pulang     = aturan.aturan_jam_pulang;

                        var khusus = dtKhusus.Where(x => x.hari_khusus_tanggal.Equals(tgl)).FirstOrDefault();
                        var libur  = dtLibur.Where(x => x.libur_tanggal.Equals(tgl)).FirstOrDefault();
                        if (aturan.aturan_kegiatan == false)
                        {
                            absen_hari = "l";
                        }
                        else
                        {
                            if (libur != null)
                            {
                                absen_hari = "l";
                            }
                            else
                            {
                                if (khusus != null)
                                {
                                    absen_hari = "k";
                                    masuk      = aturan.aturan_jam_masuk_khusus;
                                    pulang     = aturan.aturan_jam_pulang_khusus;
                                }
                                else
                                {
                                    absen_hari = "b";
                                }
                            }
                        }

                        DateTime absen_tanggal = tgl;
                        string   absen_izin    = izin.Where(x => x.izin_tanggal.Equals(tgl) && x.pegawai_id.Equals(pegawai_id)).Select(x => x.izin_jenis).SingleOrDefault();

                        TimeSpan absen_masuk = TimeSpan.Parse("00:00:00");
                        if (kd_masuk != "")
                        {
                            absen_masuk = log.Where(x => x.pegawai_id.Equals(pegawai_id) && x.log_tanggal.Equals(tgl) && x.log_status.Equals(kd_masuk)).OrderBy(x => x.log_jam).Select(x => x.log_jam).FirstOrDefault();
                        }
                        else
                        {
                            absen_masuk = log.Where(x => x.pegawai_id.Equals(pegawai_id) && x.log_tanggal.Equals(tgl)).OrderBy(x => x.log_jam).Select(x => x.log_jam).FirstOrDefault();
                        }

                        TimeSpan absen_telat = TimeSpan.Parse("00:00:00");
                        if (absen_hari == "b")
                        {
                            if (absen_masuk > aturan.aturan_jam_masuk)
                            {
                                absen_telat = absen_masuk - aturan.aturan_jam_masuk;
                            }
                        }

                        TimeSpan absen_pulang = TimeSpan.Parse("00:00:00");
                        if (kd_pulang != "")
                        {
                            absen_pulang = log.Where(x => x.pegawai_id.Equals(pegawai_id) && x.log_tanggal.Equals(tgl) && x.log_status.Equals(kd_pulang)).OrderByDescending(x => x.log_jam).Select(x => x.log_jam).FirstOrDefault();
                        }
                        else
                        {
                            absen_pulang = log.Where(x => x.pegawai_id.Equals(pegawai_id) && x.log_tanggal.Equals(tgl)).OrderByDescending(x => x.log_jam).Select(x => x.log_jam).FirstOrDefault();
                        }


                        absen data = new absen()
                        {
                            pegawai_id          = pegawai_id,
                            absen_tanggal       = absen_tanggal,
                            absen_hari          = absen_hari,
                            absen_izin          = absen_izin,
                            absen_telat         = (absen_izin != null || absen_hari == "l"? TimeSpan.Parse("00:00:00") : absen_telat),
                            absen_masuk         = (absen_izin != null || absen_hari == "l" ? TimeSpan.Parse("00:00:00") : absen_masuk),
                            absen_pulang        = (absen_izin != null || absen_hari == "l" ? TimeSpan.Parse("00:00:00") : absen_pulang),
                            absen_istirahat     = TimeSpan.Parse("00:00:00"),
                            absen_kembali       = TimeSpan.Parse("00:00:00"),
                            absen_lembur        = TimeSpan.Parse("00:00:00"),
                            absen_lembur_pulang = TimeSpan.Parse("00:00:00")
                        };
                        fp.absens.Add(data);
                        fp.SaveChanges();
                    }
                    var persentage = i * 100 / jml;
                    bwUpload.ReportProgress(persentage);
                    i += 1;
                }
                bwUpload.ReportProgress(100);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
コード例 #6
0
        private void bwPosting_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
        {
            bool bIsConnected = false;
            int  idwErrorCode = 0;

            lblProses.Invoke(new Action(() => lblProses.Text = "Mengambil data mesin"));
            var mesin  = fp.mesins.ToList();
            int no     = 1;
            int jumlah = 0;

            foreach (var msn in mesin)
            {
                progressBar.Value = 0;
                bwDownload.ReportProgress(0);
                lblProses.Invoke(new Action(() => lblProses.Text = "Melakukan koneksi ke mesin " + msn.mesin_nama + ", IP " + msn.mesin_ip + ", port " + msn.mesin_key));
                bIsConnected = axCZKEM1.Connect_Net(msn.mesin_ip.Trim(), Convert.ToInt32(msn.mesin_key.Trim()));

                if (bIsConnected == false)
                {
                    axCZKEM1.GetLastError(ref idwErrorCode);
                    lblProses.Invoke(new Action(() => lblProses.Text = "Koneksi ke mesin " + msn.mesin_nama + ", IP " + msn.mesin_ip + ", port " + msn.mesin_key + " GAGAL " + idwErrorCode.ToString()));
                    gagal.Add("gagal");
                }
                else
                {
                    iMachineNumber = no;
                    axCZKEM1.RegEvent(iMachineNumber, 65535);

                    string sdwEnrollNumber = "";
                    int    idwVerifyMode   = 0;
                    int    idwInOutMode    = 0;
                    int    idwYear         = 0;
                    int    idwMonth        = 0;
                    int    idwDay          = 0;
                    int    idwHour         = 0;
                    int    idwMinute       = 0;
                    int    idwSecond       = 0;
                    int    idwWorkcode     = 0;

                    int iValue = 400;

                    axCZKEM1.EnableDevice(iMachineNumber, false);
                    lblProses.Invoke(new Action(() => lblProses.Text = "Menghitung jumlah data absensi"));
                    if (!axCZKEM1.GetDeviceStatus(iMachineNumber, 6, ref iValue))
                    {
                        axCZKEM1.GetLastError(ref idwErrorCode);
                        lblProses.Invoke(new Action(() => lblProses.Text = "Operation failed,ErrorCode=" + idwErrorCode.ToString()));
                        e.Cancel = true;
                        return;
                    }
                    lblProses.Invoke(new Action(() => lblProses.Text = "Mendownload " + iValue.ToString() + " data absensi"));
                    if (axCZKEM1.ReadAllGLogData(iMachineNumber))
                    {
                        var pegawai = fp.pegawais.ToList();
                        int nomor   = 1;
                        while (axCZKEM1.SSR_GetGeneralLogData(iMachineNumber, out sdwEnrollNumber, out idwVerifyMode,
                                                              out idwInOutMode, out idwYear, out idwMonth, out idwDay, out idwHour, out idwMinute, out idwSecond, ref idwWorkcode))
                        {
                            try
                            {
                                if (pegawai.Where(s => s.pegawai_id.Equals(sdwEnrollNumber)).Count() > 0)
                                {
                                    log data = new log();
                                    data.pegawai_id  = sdwEnrollNumber;
                                    data.log_tanggal = DateTime.Parse(idwYear + "-" + idwMonth + "-" + idwDay);
                                    data.log_jam     = TimeSpan.Parse(idwHour + ":" + idwMinute + ":" + idwSecond);
                                    data.log_kode    = idwVerifyMode.ToString();
                                    data.log_status  = idwInOutMode.ToString();
                                    fp.logs.Add(data);
                                    lblProses.Invoke(new Action(() => lblProses.Text = "Menyimpan data ke " + nomor + "/" + iValue + " ID " + sdwEnrollNumber + ", tanggal " + idwYear + "-" + idwMonth + "-" + idwDay + ", waktu " + idwHour + ":" + idwMinute + ":" + idwSecond + " status " + idwInOutMode.ToString() + ", BERHASIL"));
                                    jumlah += 1;
                                }
                            }
                            catch (Exception ex)
                            {
                                gagal.Add("ID " + sdwEnrollNumber + ", tanggal " + idwYear + "-" + idwMonth + "-" + idwDay + ", waktu " + idwHour + ":" + idwMinute + ":" + idwSecond + " status " + idwInOutMode.ToString() + " ke " + nomor + "/" + iValue);
                                lblProses.Invoke(new Action(() => lblProses.Text = "Menyimpan data ke " + nomor + "/" + iValue + " ID " + sdwEnrollNumber + ", tanggal " + idwYear + "-" + idwMonth + "-" + idwDay + ", waktu " + idwHour + ":" + idwMinute + ":" + idwSecond + " status " + idwInOutMode.ToString() + ", GAGAL " + ex.Message));
                            }
                            fp.SaveChanges();
                            int percentage = nomor * 100 / iValue;
                            nomor++;
                            bwDownload.ReportProgress(percentage);
                        }
                        if (axCZKEM1.ClearGLog(iMachineNumber))
                        {
                            axCZKEM1.RefreshData(iMachineNumber);
                            lblProses.Invoke(new Action(() => lblProses.Text = "Menghapus Data absen di mesin"));
                        }
                        else
                        {
                            axCZKEM1.GetLastError(ref idwErrorCode);
                            lblProses.Invoke(new Action(() => lblProses.Text = "Operation failed,ErrorCode=" + idwErrorCode.ToString()));
                        }
                    }
                    else
                    {
                        Cursor = Cursors.Default;
                        axCZKEM1.GetLastError(ref idwErrorCode);

                        if (idwErrorCode != 0)
                        {
                            lblProses.Invoke(new Action(() => lblProses.Text = "Reading data from terminal failed,ErrorCode: " + idwErrorCode.ToString().ToString()));
                        }
                        else
                        {
                            lblProses.Invoke(new Action(() => lblProses.Text = "No data from terminal returns!"));
                        }
                    }
                    no += 1;
                    axCZKEM1.EnableDevice(iMachineNumber, true);
                    axCZKEM1.Disconnect();
                }
            }
            if (gagal.Count > 0)
            {
                lblProses.Invoke(new Action(() => lblProses.Text = "Gagal mendownload " + gagal.Count + " data absensi"));
                MessageBox.Show("Gagal mendownload " + gagal.Count + " data absensi");
                e.Cancel = true;
            }
            else
            {
                lblProses.Invoke(new Action(() => lblProses.Text = "Berhasil mendownload " + jumlah.ToString() + " data absensi dari mesin"));
                MessageBox.Show("Berhasil mendownload " + jumlah.ToString() + " data absensi dari mesin");
            }
        }
コード例 #7
0
        private void bwPosting_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
        {
            try
            {
                bool bIsConnected = false;
                int  idwErrorCode = 0;

                lblProses.Invoke(new Action(() => lblProses.Text = "Mengambil data mesin"));
                var mesin  = fp.mesins.ToList();
                int no     = 1;
                int jumlah = 0;
                foreach (var msn in mesin)
                {
                    progressBar.Value = 0;
                    bwDownload.ReportProgress(0);
                    lblProses.Invoke(new Action(() => lblProses.Text = "Melakukan koneksi ke mesin " + msn.mesin_nama + ", IP " + msn.mesin_ip + ", port " + msn.mesin_key));
                    bIsConnected = axCZKEM1.Connect_Net(msn.mesin_ip, Convert.ToInt32(msn.mesin_key));

                    if (bIsConnected == false)
                    {
                        axCZKEM1.GetLastError(ref idwErrorCode);
                        lblProses.Invoke(new Action(() => lblProses.Text = "Koneksi ke mesin " + msn.mesin_nama + ", IP " + msn.mesin_ip + ", port " + msn.mesin_key + " GAGAL " + idwErrorCode.ToString()));
                        gagal.Add("gagal");
                    }
                    else
                    {
                        iMachineNumber = no;
                        axCZKEM1.RegEvent(iMachineNumber, 65535);

                        int iUpdateFlag = 1;
                        axCZKEM1.EnableDevice(iMachineNumber, false);
                        if (axCZKEM1.BeginBatchUpdate(iMachineNumber, iUpdateFlag))//create memory space for batching data
                        {
                            string sdwEnrollNumber = "";
                            string nip             = "";
                            string sName           = "";
                            int    idwFingerIndex  = 0;
                            string sTmpData        = "";
                            int    iPrivilege      = 0;
                            string sPassword       = "";
                            bool   bEnabled        = true;
                            int    iFlag           = 1;
                            lblProses.Invoke(new Action(() => lblProses.Text = "Mengambil data pegawai"));
                            var    pegawai           = fp.pegawais.ToList();
                            string sLastEnrollNumber = "";//the former enrollnumber you have upload(define original value as 0)
                            var    nomor             = 1;
                            int    iValue            = pegawai.Count();
                            foreach (var row in pegawai)
                            {
                                sdwEnrollNumber = row.pegawai_id.ToString();
                                sName           = row.pegawai_panggilan;
                                nip             = row.pegawai_nip;
                                iPrivilege      = row.pegawai_izin == "0" ? 3 : 0;
                                sPassword       = row.pegawai_sandi;

                                if (axCZKEM1.SSR_SetUserInfo(iMachineNumber, sdwEnrollNumber, sName, sPassword, iPrivilege, bEnabled))
                                {
                                    lblProses.Invoke(new Action(() => lblProses.Text = "Mengupload data pegawai " + nip));
                                    var data = fp.pegawais.Where(x => x.pegawai_id.Equals(sdwEnrollNumber)).FirstOrDefault();
                                    data.upload = true;
                                    fp.SaveChanges();
                                    jumlah += 1;
                                }
                                else
                                {
                                    axCZKEM1.GetLastError(ref idwErrorCode);
                                    lblProses.Invoke(new Action(() => lblProses.Text = "Operation failed,ErrorCode=" + idwErrorCode.ToString()));
                                    gagal.Add("ID " + sdwEnrollNumber + ", nip " + nip);
                                }

                                int percentage = nomor * 100 / iValue;
                                nomor++;
                                bwDownload.ReportProgress(percentage);
                            }
                        }
                        axCZKEM1.BatchUpdate(iMachineNumber); //upload all the information in the memory
                        axCZKEM1.RefreshData(iMachineNumber); //the data in the device should be refreshed
                        axCZKEM1.EnableDevice(iMachineNumber, true);
                    }
                    no += 1;
                    axCZKEM1.EnableDevice(iMachineNumber, true);
                    axCZKEM1.Disconnect();
                }
                if (gagal.Count > 0)
                {
                    lblProses.Invoke(new Action(() => lblProses.Text = "Gagal mengupload " + gagal.Count + " data pegawai"));
                    MessageBox.Show("Gagal mendownload " + gagal.Count + " data pegawai");
                    e.Cancel = true;
                }
                else
                {
                    lblProses.Invoke(new Action(() => lblProses.Text = "Berhasil mengupload " + jumlah.ToString() + " data pegawai ke mesin"));
                    MessageBox.Show("Berhasil mengupload " + jumlah.ToString() + " data pegawai ke mesin");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
コード例 #8
0
        private void bwPosting_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
        {
            bool bIsConnected = false;
            int  idwErrorCode = 0;

            lblProses.Invoke(new Action(() => lblProses.Text = "Mengambil data mesin"));
            var mesin  = fp.mesins.ToList();
            int no     = 1;
            int jumlah = 0;

            foreach (var msn in mesin)
            {
                progressBar.Value = 0;
                bwDownload.ReportProgress(0);
                lblProses.Invoke(new Action(() => lblProses.Text = "Melakukan koneksi ke mesin " + msn.mesin_nama + ", IP " + msn.mesin_ip + ", port " + msn.mesin_key));
                bIsConnected = axCZKEM1.Connect_Net(msn.mesin_ip.Trim(), Convert.ToInt32(msn.mesin_key.Trim()));

                if (bIsConnected == false)
                {
                    axCZKEM1.GetLastError(ref idwErrorCode);
                    lblProses.Invoke(new Action(() => lblProses.Text = "Koneksi ke mesin " + msn.mesin_nama + ", IP " + msn.mesin_ip + ", port " + msn.mesin_key + " GAGAL " + idwErrorCode.ToString()));
                    gagal.Add("gagal");
                }
                else
                {
                    iMachineNumber = no;
                    axCZKEM1.RegEvent(iMachineNumber, 65535);

                    string sdwEnrollNumber = "";
                    string sName           = "";
                    string sPassword       = "";
                    int    iPrivilege      = 0;
                    bool   bEnabled        = false;
                    int    iValue          = 0;
                    lblProses.Invoke(new Action(() => lblProses.Text = "Menghitung jumlah data pegawai"));
                    axCZKEM1.EnableDevice(iMachineNumber, false);

                    if (axCZKEM1.GetDeviceStatus(iMachineNumber, 2, ref iValue))
                    {
                        int nomor = 1;
                        axCZKEM1.ReadAllUserID(iMachineNumber);
                        lblProses.Invoke(new Action(() => lblProses.Text = "Mendownload " + iValue.ToString() + " data pegawai"));
                        while (axCZKEM1.SSR_GetAllUserInfo(iMachineNumber, out sdwEnrollNumber, out sName, out sPassword, out iPrivilege, out bEnabled))
                        {
                            try
                            {
                                if (fp.pegawais.Where(x => x.pegawai_id.Equals(sdwEnrollNumber)).Count() == 0)
                                {
                                    pegawai data = new pegawai();
                                    data.pegawai_id            = sdwEnrollNumber;
                                    data.pegawai_nip           = "";
                                    data.pegawai_nama          = "";
                                    data.pegawai_panggilan     = sName;
                                    data.pegawai_golongan      = "";
                                    data.pegawai_jenis_kelamin = "";
                                    data.pegawai_izin          = iPrivilege == 3 ? "0" : "1";
                                    data.pegawai_sandi         = sPassword;
                                    data.upload = true;
                                    fp.pegawais.Add(data);
                                    fp.SaveChanges();
                                }
                                else
                                {
                                    var data = fp.pegawais.Where(x => x.pegawai_id.Equals(sdwEnrollNumber)).FirstOrDefault();
                                    data.pegawai_id        = sdwEnrollNumber;
                                    data.pegawai_panggilan = sName;
                                    data.pegawai_izin      = iPrivilege == 3 ? "0" : "1";
                                    data.pegawai_sandi     = sPassword;
                                    data.upload            = true;
                                    fp.SaveChanges();
                                }
                                jumlah += 1;
                                lblProses.Invoke(new Action(() => lblProses.Text = "Menyimpan data ID " + sdwEnrollNumber + ", nama " + sName + ", BERHASIL"));
                            }
                            catch
                            {
                                gagal.Add("ID " + sdwEnrollNumber + ", nama " + sName);
                                lblProses.Invoke(new Action(() => lblProses.Text = "Menyimpan data ID " + sdwEnrollNumber + ", nama " + sName + ", GAGAL"));
                            }
                            int percentage = nomor * 100 / iValue;
                            nomor++;
                            bwDownload.ReportProgress(percentage);
                        }
                        axCZKEM1.EnableDevice(iMachineNumber, true);
                    }
                    else
                    {
                        axCZKEM1.GetLastError(ref idwErrorCode);
                        lblProses.Invoke(new Action(() => lblProses.Text = "Operation failed,ErrorCode=" + idwErrorCode.ToString()));
                    }
                    no += 1;
                    axCZKEM1.EnableDevice(iMachineNumber, true);
                    axCZKEM1.Disconnect();
                }
            }
            if (gagal.Count > 0)
            {
                lblProses.Invoke(new Action(() => lblProses.Text = "Gagal mendownload " + gagal.Count + " data pegawai"));
                MessageBox.Show("Gagal mendownload " + gagal.Count + " data pegawai");
                e.Cancel = true;
            }
            else
            {
                lblProses.Invoke(new Action(() => lblProses.Text = "Berhasil mendownload " + jumlah.ToString() + " data pegawai dari mesin"));
                MessageBox.Show("Berhasil mendownload " + jumlah.ToString() + " data pegawai dari mesin");
            }
        }