//TODO InsertData public static void InsertSpgPotongan(ApplicationDbContext sppDb, SPGContext spgDb, int tahunDibayar, int bulanDibayar) { List <HR_TRANSAKSI_SAMBILAN_DETAIL> sppTrans = HR_TRANSAKSI_SAMBILAN_DETAIL .GetTransaksiDibayar(sppDb, tahunDibayar, bulanDibayar); if (sppTrans != null) { InsertToSPG(sppDb, spgDb, sppTrans); } }
public static void InsertSPGGaji(ApplicationDbContext sppDb, SPGContext spgDb, int tahunDibayar, int bulanDibayar) { //ApplicationDbContext sppDb = new ApplicationDbContext(); //int tahun = 2019; //int bulanDibayar = 4; //string noPekerja = "01595"; List<HR_TRANSAKSI_SAMBILAN_DETAIL> sppTrans = HR_TRANSAKSI_SAMBILAN_DETAIL .GetTransaksiDibayar(sppDb, tahunDibayar, bulanDibayar); if (sppTrans != null) { InsertToSPG(sppDb, spgDb, sppTrans); } }
public static List <TextFileModel> GetPerkesoSambilanSukan(int bulan, int tahun) { List <TextFileModel> report = new List <TextFileModel>(); SPGContext spgDb = new SPGContext(); ApplicationDbContext db = new ApplicationDbContext(); string[] kwspSambilan = new string[] { "P0160", "P0163" }; //N = sambilan, A = sukan List <string> list_pekerja = db.HR_MAKLUMAT_PEKERJAAN .Where(s => s.HR_TARAF_JAWATAN == "A").Select(x => x.HR_NO_PEKERJA).ToList(); var potongList = spgDb.PA_TRANSAKSI_PEMOTONGAN .Where(s => s.PA_BULAN_POTONGAN == bulan && s.PA_TAHUN_POTONGAN == tahun && kwspSambilan.Contains(s.PA_KOD_PEMOTONGAN) && list_pekerja.Contains(s.PA_NO_PEKERJA)) .GroupBy(s => new { s.PA_NO_PEKERJA, s.PA_BULAN_POTONGAN, s.PA_TAHUN_POTONGAN }) .Select(g => new { PA_No_Pekerja = g.Key.PA_NO_PEKERJA, PA_Jumlah_Pemontongan = g.Sum(x => x.PA_JUMLAH_PEMOTONGAN), PA_Bulan = g.Key.PA_BULAN_POTONGAN, PA_Tahun = g.Key.PA_TAHUN_POTONGAN }) .ToList(); foreach (var item in potongList) { HR_MAKLUMAT_PERIBADI maklumatPeribat = db.HR_MAKLUMAT_PERIBADI .Where(s => s.HR_NO_PEKERJA == item.PA_No_Pekerja).FirstOrDefault(); HR_MAKLUMAT_PEKERJAAN kerja = db.HR_MAKLUMAT_PEKERJAAN .Where(m => m.HR_NO_PEKERJA == item.PA_No_Pekerja).FirstOrDefault(); string tarikhKerja = string.Format("{0:ddMMyyyy}", DateTime.Now); if (kerja != null) { tarikhKerja = string.Format("{0:ddMMyyyy}", kerja.HR_TARIKH_MASUK); } if (maklumatPeribat != null) { TextFileModel m = new TextFileModel(); m.String1 = "B3200000538V"; m.String2 = maklumatPeribat.HR_NO_KPBARU; m.String3 = maklumatPeribat.HR_NAMA_PEKERJA; m.String4 = string.Format("{0}{1}", bulan.ToString().PadLeft(2, '0'), tahun); try { decimal totalCaruman = Convert.ToDecimal(spgDb.PA_TRANSAKSI_CARUMAN .Where(p => p.PA_NO_PEKERJA == item.PA_No_Pekerja && p.PA_BULAN_CARUMAN == item.PA_Bulan && p.PA_TAHUN_CARUMAN == item.PA_Tahun && p.PA_KOD_CARUMAN == "C0034") .Sum(p => p.PA_JUMLAH_CARUMAN)); decimal totalPemotongan = Convert.ToDecimal(item.PA_Jumlah_Pemontongan); decimal totalSum = decimal.Round((totalCaruman + totalPemotongan) * 100); m.String5 = string.Format("{0}{1}", totalSum, tarikhKerja); } catch { m.String5 = string.Empty; } report.Add(m); } } return(report); }
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(); } } } }
public static List <PekerjaReportModel> GetPerkesoSambilanSukan (int bulanProses, int tahunProses, bool isSukan) { SPGContext spgDb = new SPGContext(); ApplicationDbContext db = new ApplicationDbContext(); //N = sambilan, A = sukan List <string> list_pekerja = new List <string>(); if (isSukan) { list_pekerja = PageSejarahModel.ListPekerjaSukan; } else { list_pekerja = PageSejarahModel.ListPekerjaSambilan; } var listGaji = db.HR_TRANSAKSI_SAMBILAN_DETAIL .Where(s => s.HR_BULAN_DIBAYAR == bulanProses && s.HR_TAHUN == tahunProses && s.HR_KOD_IND == "G" && list_pekerja.Contains(s.HR_NO_PEKERJA)).ToList(); List <PekerjaReportModel> pekerja = new List <PekerjaReportModel>(); int counter = 0; foreach (var item in listGaji) { var bulanBekerja = item.HR_BULAN_BEKERJA; var tahunBekerja = item.HR_TAHUN_BEKERJA; var bulanDibayar = item.HR_BULAN_DIBAYAR; var tahunDibayar = item.HR_TAHUN; HR_MAKLUMAT_PERIBADI maklumatPeribat = db.HR_MAKLUMAT_PERIBADI .Where(s => s.HR_NO_PEKERJA == item.HR_NO_PEKERJA) .FirstOrDefault(); var detail = PageSejarahModel.GetTRANSAKSI_SAMBILAN_DETAIL (db, item.HR_NO_PEKERJA, tahunDibayar, bulanDibayar, tahunBekerja, bulanBekerja); var sosco = PageSejarahModel.GetPotonganSocso(db, detail); if (maklumatPeribat != null) { PekerjaReportModel m = new PekerjaReportModel(); counter++; m.Bil = counter; m.NamaPekerja = maklumatPeribat.HR_NAMA_PEKERJA; m.NoKesSosial = string.Empty; m.NoKadPengenalan = maklumatPeribat.HR_NO_KPBARU; try { decimal totalVal = Convert.ToDecimal (sosco.HR_CARUMAN_PEKERJA); totalVal = decimal.Round(totalVal); m.CarumanRM = totalVal; } catch { m.CarumanRM = 0; } pekerja.Add(m); } } return(pekerja); }
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 (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()); } } } }
public static List <PekerjaReportModel> GetPerkesoSukan(int bulan, int tahun) { SPGContext spgDb = new SPGContext(); ApplicationDbContext db = new ApplicationDbContext(); string[] kwspSambilan = new string[] { "P0160", "P0163" }; //N = sambilan, A = sukan List <string> list_pekerja = db.HR_MAKLUMAT_PEKERJAAN .Where(s => s.HR_TARAF_JAWATAN == "A").Select(x => x.HR_NO_PEKERJA).ToList(); var potongList = spgDb.PA_TRANSAKSI_PEMOTONGAN .Where(s => s.PA_BULAN_POTONGAN == bulan && s.PA_TAHUN_POTONGAN == tahun && kwspSambilan.Contains(s.PA_KOD_PEMOTONGAN) && list_pekerja.Contains(s.PA_NO_PEKERJA)) .GroupBy(s => new { s.PA_NO_PEKERJA, s.PA_BULAN_POTONGAN, s.PA_TAHUN_POTONGAN }) .Select(g => new { PA_No_Pekerja = g.Key.PA_NO_PEKERJA, PA_Jumlah_Pemontongan = g.Sum(x => x.PA_JUMLAH_PEMOTONGAN), PA_Bulan = g.Key.PA_BULAN_POTONGAN, PA_Tahun = g.Key.PA_TAHUN_POTONGAN }) .ToList(); List <PekerjaReportModel> pekerja = new List <PekerjaReportModel>(); int counter = 0; foreach (var item in potongList) { HR_MAKLUMAT_PERIBADI maklumatPeribat = db.HR_MAKLUMAT_PERIBADI .Where(s => s.HR_NO_PEKERJA == item.PA_No_Pekerja).FirstOrDefault(); if (maklumatPeribat != null) { PekerjaReportModel m = new PekerjaReportModel(); counter++; m.Bil = counter; m.NamaPekerja = maklumatPeribat.HR_NAMA_PEKERJA; m.NoKesSosial = string.Empty; m.NoKadPengenalan = maklumatPeribat.HR_NO_KPBARU; try { decimal totalVal = Convert.ToDecimal(item.PA_Jumlah_Pemontongan); //* Convert.ToDecimal(caruman); totalVal = decimal.Round(totalVal); m.CarumanRM = totalVal; } catch { m.CarumanRM = 0; } pekerja.Add(m); } } return(pekerja); }