private static void InsertToSPG(ApplicationDbContext sppDb, SPGContext spgDb, List <HR_TRANSAKSI_SAMBILAN_DETAIL> sppTrans) { List <string> noPekerja_all = sppTrans.Select(s => s.HR_NO_PEKERJA).Distinct().ToList(); int bulanDibayar = sppTrans.Where(s => s.HR_KOD == "GAJPS").Select(s => s.HR_BULAN_DIBAYAR).FirstOrDefault(); int tahunDibayar = sppTrans.Where(s => s.HR_KOD == "GAJPS").Select(s => s.HR_TAHUN).FirstOrDefault(); foreach (var noPekerja in noPekerja_all) { HR_MAKLUMAT_PEKERJAAN mPekerjaan = sppDb.HR_MAKLUMAT_PEKERJAAN .Where(s => s.HR_NO_PEKERJA == noPekerja).FirstOrDefault(); HR_MAKLUMAT_PERIBADI mPeribadi = sppDb.HR_MAKLUMAT_PERIBADI .Where(s => s.HR_NO_PEKERJA == noPekerja).FirstOrDefault(); PA_REPORT spgReport = spgDb.PA_REPORT .Where(s => s.PA_NO_PEKERJA == noPekerja && s.PA_TAHUN == bulanDibayar && s.PA_BULAN == tahunDibayar).FirstOrDefault(); decimal gajiPokok = sppDb.HR_TRANSAKSI_SAMBILAN_DETAIL .Where(s => s.HR_KOD == "GAJPS" && s.HR_NO_PEKERJA == noPekerja && s.HR_BULAN_DIBAYAR == bulanDibayar && s.HR_TAHUN == tahunDibayar) .Select(s => s.HR_JUMLAH).Sum().Value; if (spgReport == null) { //insert spgReport = new PA_REPORT { PA_NO_PEKERJA = noPekerja, PA_BULAN = (byte)bulanDibayar, PA_TAHUN = (short)tahunDibayar, PA_JABATAN = mPekerjaan.HR_JABATAN, PA_BAHAGIAN = mPekerjaan.HR_BAHAGIAN, PA_UNIT = mPekerjaan.HR_UNIT, PA_KAKITANGAN_IND = mPekerjaan.HR_KAKITANGAN_IND, PA_TARAF_JAWATAN = mPekerjaan.HR_TARAF_JAWATAN, PA_STATUS_KWSP = mPekerjaan.HR_STATUS_KWSP, PA_STATUS_SOCSO = mPekerjaan.HR_STATUS_SOCSO, PA_STATUS_PENCEN = mPekerjaan.HR_STATUS_PENCEN, PA_STATUS_PCB = mPekerjaan.HR_STATUS_PCB, PA_GRED = mPekerjaan.HR_GRED, PA_MATRIKS_GAJI = mPekerjaan.HR_MATRIKS_GAJI, PA_KOD_BANK = mPekerjaan.HR_KOD_BANK, //number 8,2 PA_CC_KENDERAAN = mPeribadi.HR_CC_KENDERAAN, PA_NO_KENDERAAN = mPeribadi.HR_NO_KENDERAAN, PA_JENIS_KENDERAAN = mPeribadi.HR_JENIS_KENDERAAN, PA_NO_AKAUN_BANK = mPekerjaan.HR_NO_AKAUN_BANK, //date PA_BULAN_KENAIKAN_GAJI = mPekerjaan.HR_BULAN_KENAIKAN_GAJI, PA_JAWATAN = mPekerjaan.HR_JAWATAN, //number 8,2 PA_GAJI_POKOK = gajiPokok }; spgDb.PA_REPORT.Add(spgReport); spgDb.SaveChanges(); } else { //update spgReport.PA_NO_PEKERJA = noPekerja; spgReport.PA_BULAN = (byte)bulanDibayar; spgReport.PA_TAHUN = (short)tahunDibayar; spgReport.PA_JABATAN = mPekerjaan.HR_JABATAN; spgReport.PA_BAHAGIAN = mPekerjaan.HR_BAHAGIAN; spgReport.PA_UNIT = mPekerjaan.HR_UNIT; spgReport.PA_KAKITANGAN_IND = mPekerjaan.HR_KAKITANGAN_IND; spgReport.PA_TARAF_JAWATAN = mPekerjaan.HR_TARAF_JAWATAN; spgReport.PA_STATUS_KWSP = mPekerjaan.HR_STATUS_KWSP; spgReport.PA_STATUS_SOCSO = mPekerjaan.HR_STATUS_SOCSO; spgReport.PA_STATUS_PENCEN = mPekerjaan.HR_STATUS_PENCEN; spgReport.PA_STATUS_PCB = mPekerjaan.HR_STATUS_PCB; spgReport.PA_GRED = mPekerjaan.HR_GRED; spgReport.PA_MATRIKS_GAJI = mPekerjaan.HR_MATRIKS_GAJI; spgReport.PA_KOD_BANK = mPekerjaan.HR_KOD_BANK; //number 8,2 spgReport.PA_CC_KENDERAAN = mPeribadi.HR_CC_KENDERAAN; spgReport.PA_NO_KENDERAAN = mPeribadi.HR_NO_KENDERAAN; spgReport.PA_JENIS_KENDERAAN = mPeribadi.HR_JENIS_KENDERAAN; spgReport.PA_NO_AKAUN_BANK = mPekerjaan.HR_NO_AKAUN_BANK; //date spgReport.PA_BULAN_KENAIKAN_GAJI = mPekerjaan.HR_BULAN_KENAIKAN_GAJI; spgReport.PA_JAWATAN = mPekerjaan.HR_JAWATAN; //number 8,2 spgReport.PA_GAJI_POKOK = gajiPokok; try { spgDb.Entry(spgReport).State = EntityState.Modified; spgDb.SaveChanges(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } } }
private static void InsertToSPG(ApplicationDbContext sppDb, SPGContext spgDb, List <HR_TRANSAKSI_SAMBILAN_DETAIL> sppTrans) { List <string> noPekerja_all = sppTrans.Select(s => s.HR_NO_PEKERJA).Distinct().ToList(); int bulanDibayar = sppTrans.Where(s => s.HR_KOD == "GAJPS").Select(s => s.HR_BULAN_DIBAYAR).FirstOrDefault(); int tahunDibayar = sppTrans.Where(s => s.HR_KOD == "GAJPS").Select(s => s.HR_TAHUN).FirstOrDefault(); foreach (string noPekerja in noPekerja_all) { //get List of transaksi by No Pekerja List <HR_TRANSAKSI_SAMBILAN_DETAIL> sppTransData = sppTrans.Where(s => s.HR_NO_PEKERJA == noPekerja).ToList(); var listCaruman = sppTransData.Where(s => s.HR_KOD_IND == "C").ToList(); foreach (string kodCaruman in listCaruman.Select(s => s.HR_KOD).ToList()) { List <HR_TRANSAKSI_SAMBILAN_DETAIL> sKod = sppTransData.Where(s => s.HR_KOD == kodCaruman).ToList(); PA_TRANSAKSI_CARUMAN spgTrans = spgDb.PA_TRANSAKSI_CARUMAN .Where(s => s.PA_NO_PEKERJA == noPekerja && s.PA_TAHUN_CARUMAN == tahunDibayar && s.PA_BULAN_CARUMAN == bulanDibayar && s.PA_KOD_CARUMAN == kodCaruman).FirstOrDefault(); var jumlahCaruman = sKod.Select(s => s.HR_JUMLAH).Sum(); var votCaruman = GetKodVOT(noPekerja, kodCaruman); if (spgTrans != null) { //update data //spgTrans.PA_NO_PEKERJA = noPekerja; //spgTrans.PA_KOD_PEMOTONGAN = kodElaun; spgTrans.PA_JUMLAH_CARUMAN = jumlahCaruman; //spgTrans.PA_BULAN_POTONGAN = (byte)bulanDibayar; //spgTrans.PA_TAHUN_POTONGAN = (short)tahunDibayar; spgTrans.PA_PROSES_IND = "P"; spgTrans.PA_TARIKH_PROSES = DateTime.Now; //spgTrans.PA_VOT_PEMOTONGAN = "VOT"; spgTrans.PA_TARIKH_KEYIN = DateTime.Now; try { spgDb.Entry(spgTrans).State = EntityState.Modified; spgDb.SaveChanges(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } else { //insert data spgTrans = new PA_TRANSAKSI_CARUMAN { PA_NO_PEKERJA = noPekerja, PA_KOD_CARUMAN = kodCaruman, PA_JUMLAH_CARUMAN = jumlahCaruman, PA_BULAN_CARUMAN = (byte)bulanDibayar, PA_TAHUN_CARUMAN = (short)tahunDibayar, PA_PROSES_IND = "P", PA_TARIKH_PROSES = DateTime.Now, PA_VOT_CARUMAN = votCaruman, PA_TARIKH_KEYIN = DateTime.Now }; spgDb.PA_TRANSAKSI_CARUMAN.Add(spgTrans); spgDb.SaveChanges(); } } } }
private static void InsertToSPG(ApplicationDbContext sppDb, SPGContext spgDb, List<HR_TRANSAKSI_SAMBILAN_DETAIL> sppTrans) { List<string> noPekerja_all = sppTrans.Select(s => s.HR_NO_PEKERJA).Distinct().ToList(); int bulanDibayar = sppTrans.Where(s => s.HR_KOD == "GAJPS").Select(s => s.HR_BULAN_DIBAYAR).FirstOrDefault(); int tahunDibayar = sppTrans.Where(s => s.HR_KOD == "GAJPS").Select(s => s.HR_TAHUN).FirstOrDefault(); foreach (var noPekerja in noPekerja_all) { //get List of transaksi by No Pekerja List<HR_TRANSAKSI_SAMBILAN_DETAIL> sppTransData = sppTrans.Where(s => s.HR_NO_PEKERJA == noPekerja).ToList(); var jumlahElaun = sppTransData.Where(s => s.HR_KOD_IND == "E") .Select(s => s.HR_JUMLAH).Sum(); jumlahElaun = jumlahElaun == null ? 0 : jumlahElaun; var jumlahPemotongan = sppTransData.Where(s => s.HR_KOD_IND == "P") .Select(s => s.HR_JUMLAH).Sum(); jumlahPemotongan = jumlahPemotongan == null ? 0 : jumlahPemotongan; var gajiPokok = sppTransData.Where(s => s.HR_KOD == "GAJPS") .Select(s => s.HR_JUMLAH).Sum(); gajiPokok = gajiPokok == null ? 0 : gajiPokok; var gajiBersih = gajiPokok + jumlahElaun - jumlahPemotongan; var jumlahCaruman = sppTransData.Where(s => s.HR_KOD_IND == "C") .Select(s => s.HR_JUMLAH).Sum(); jumlahCaruman = jumlahCaruman == null ? 0 : jumlahCaruman; PA_TRANSAKSI_GAJI spgTrans = spgDb.PA_TRANSAKSI_GAJI .Where(s => s.PA_NO_PEKERJA == noPekerja && s.PA_TAHUN_GAJI == tahunDibayar && s.PA_BULAN_GAJI == bulanDibayar).FirstOrDefault(); if (spgTrans == null) { spgTrans = new PA_TRANSAKSI_GAJI { PA_NO_PEKERJA = noPekerja, PA_TARIKH_PROCESS = DateTime.Now, PA_JUMLAH_ELAUN = jumlahElaun, PA_JUMLAH_PEMOTONGAN = jumlahPemotongan, PA_JUMLAH_PCB = null, PA_GAJI_POKOK = gajiPokok, PA_GAJI_BERSIH = gajiBersih, PA_NO_SLIP_GAJI = null, PA_TAHUN_GAJI = (short)tahunDibayar, PA_BULAN_GAJI = (byte)bulanDibayar, PA_JUMLAH_CARUMAN = jumlahCaruman, PA_JUMLAH_PELARASAN = null, PA_PROSES_IND = "P" }; spgDb.PA_TRANSAKSI_GAJI.Add(spgTrans); spgDb.SaveChanges(); } else { //spgTrans.PA_NO_PEKERJA = noPekerja; spgTrans.PA_TARIKH_PROCESS = DateTime.Now; spgTrans.PA_JUMLAH_ELAUN = jumlahElaun; spgTrans.PA_JUMLAH_PEMOTONGAN = jumlahPemotongan; spgTrans.PA_JUMLAH_PCB = null; spgTrans.PA_GAJI_POKOK = gajiPokok; spgTrans.PA_GAJI_BERSIH = gajiBersih; spgTrans.PA_NO_SLIP_GAJI = null; //spgTrans.PA_TAHUN_GAJI = (short)tahunDibayar; //spgTrans.PA_BULAN_GAJI = (byte)bulanDibayar; spgTrans.PA_JUMLAH_CARUMAN = jumlahCaruman; spgTrans.PA_JUMLAH_PELARASAN = null; spgTrans.PA_PROSES_IND = "P"; try { spgDb.Entry(spgTrans).State = EntityState.Modified; spgDb.SaveChanges(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } } }