//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); } }
//will be used in to Store claculation Related to Transaksi Sambilan public static AgreementModels Maklumat(string HR_PEKERJA, int?tahunbekerja, int?bulanbekerja, int?tahundibayar, int?bulandibayar, string tahunbulannotis, string tahunbulanbonus, string bulankiradari, string bulankirahingga, decimal?jumlahot, int?jumlahhari) { ApplicationDbContext db = new ApplicationDbContext(); MajlisContext mc = new MajlisContext(); db.Configuration.ProxyCreationEnabled = false; int consHariBekerja = PageSejarahModel.ConstHariBekerja; //value is 21 //Cari Maklumat Pekerjaan HR_MAKLUMAT_PEKERJAAN userMaklumat = db.HR_MAKLUMAT_PEKERJAAN.Where(s => s.HR_NO_PEKERJA == HR_PEKERJA).SingleOrDefault(); List <string> listElaunKa = PageSejarahModel.ListElaunKa; if (userMaklumat != null) { GE_JABATAN userJabatan = mc.GE_JABATAN.Where(s => s.GE_KOD_JABATAN == userMaklumat.HR_JABATAN).SingleOrDefault(); GE_BAHAGIAN userBahagian = mc.GE_BAHAGIAN.Where(s => s.GE_KOD_BAHAGIAN == userMaklumat.HR_BAHAGIAN && s.GE_KOD_JABATAN == userMaklumat.HR_JABATAN).SingleOrDefault(); //dapatkan Transaksi Sambilan Detail. ada banyak kod: C0020, E0064, E0164, E0234, GAJPS, P0015, P0035 List <HR_TRANSAKSI_SAMBILAN_DETAIL> userTransaksiDetail = db.HR_TRANSAKSI_SAMBILAN_DETAIL .Where(s => s.HR_NO_PEKERJA == HR_PEKERJA && s.HR_BULAN_BEKERJA == bulanbekerja && s.HR_BULAN_DIBAYAR == bulandibayar && s.HR_TAHUN == tahundibayar && s.HR_TAHUN_BEKERJA == tahunbekerja).ToList(); HR_MAKLUMAT_PERIBADI userPeribadi = db.HR_MAKLUMAT_PERIBADI.SingleOrDefault(s => s.HR_NO_PEKERJA == HR_PEKERJA); HR_MAKLUMAT_PEKERJAAN userPekerjaan = db.HR_MAKLUMAT_PEKERJAAN.SingleOrDefault(s => s.HR_NO_PEKERJA == HR_PEKERJA); HR_JAWATAN jawatan = db.HR_JAWATAN.SingleOrDefault(s => s.HR_KOD_JAWATAN == userPekerjaan.HR_JAWATAN); HR_MAKLUMAT_PEKERJAAN mpekerjaan = db.HR_MAKLUMAT_PEKERJAAN.Where(s => s.HR_NO_PEKERJA == HR_PEKERJA).SingleOrDefault(); AgreementModels kerjaelaun = new AgreementModels(); //if (transaksisambilandetail.Count != 0 && transaksisambilan.Count != 0) if (userTransaksiDetail.Count != 0) { //kalau ada tranaksi, ambik gaji dan potongan dari tranasksi decimal gajiSehari = PageSejarahModel.GetGajiSehari(db, HR_PEKERJA); HR_TRANSAKSI_SAMBILAN_DETAIL gaji = userTransaksiDetail.SingleOrDefault(s => s.HR_KOD_IND == "G"); kerjaelaun.GAJISEHARI = gajiSehari.ToString("0.00"); kerjaelaun.GAJIPOKOK = gaji.HR_JUMLAH; kerjaelaun.GAJIPER3 = (gaji.HR_JUMLAH / 3).Value.ToString("0.00"); //elaun List <HR_TRANSAKSI_SAMBILAN_DETAIL> elaunka = userTransaksiDetail .Where(s => listElaunKa.Contains(s.HR_KOD)).ToList(); List <HR_TRANSAKSI_SAMBILAN_DETAIL> elaunot = userTransaksiDetail .Where(s => s.HR_KOD == "E0164").ToList(); List <HR_TRANSAKSI_SAMBILAN_DETAIL> elaunlain = userTransaksiDetail .Where(s => s.HR_KOD_IND == "E" && (!listElaunKa.Contains(s.HR_KOD) && s.HR_KOD != "E0164")).ToList(); //potongan List <HR_TRANSAKSI_SAMBILAN_DETAIL> potonganksdk = userTransaksiDetail .Where(s => s.HR_KOD == "P0015").ToList(); List <HR_TRANSAKSI_SAMBILAN_DETAIL> potonganlain = userTransaksiDetail .Where(s => s.HR_KOD_IND == "P" && (s.HR_KOD != "P0015" && s.HR_KOD != "P0035")).ToList(); HR_MAKLUMAT_ELAUN_POTONGAN potonganKWSP = PageSejarahModel.GetPotonganKWSP(db, HR_PEKERJA, kerjaelaun.GAJIPOKOK.Value); kerjaelaun.JABATAN = userJabatan.GE_KETERANGAN_JABATAN; kerjaelaun.BAHAGIAN = userBahagian.GE_KETERANGAN; kerjaelaun.NOKP = userPeribadi.HR_NO_KPBARU; kerjaelaun.JAWATAN = jawatan.HR_NAMA_JAWATAN; kerjaelaun.JAMBEKERJA = elaunot.SingleOrDefault().HR_JAM_HARI; kerjaelaun.HARIBEKERJA = gaji.HR_JAM_HARI; //elaun kerjaelaun.ELAUNKA = elaunka.Sum(s => s.HR_JUMLAH).Value.ToString("0.00"); kerjaelaun.JUMLAHBAYARANOT = elaunot.Sum(s => s.HR_JUMLAH).Value.ToString("0.00"); kerjaelaun.ELAUNLAIN = elaunlain.Sum(s => s.HR_JUMLAH).Value.ToString("0.00"); //potongan decimal potonganSocso = PageSejarahModel.GetPotonganSocso(db, gaji.HR_JUMLAH.Value, elaunot.Sum(s => s.HR_JUMLAH).Value); kerjaelaun.POTONGANSOCSO = potonganSocso; kerjaelaun.POTONGANKWSP = potonganKWSP.HR_JUMLAH; kerjaelaun.POTONGANKSDK = potonganksdk.Sum(s => s.HR_JUMLAH).Value.ToString("0.00"); kerjaelaun.POTONGLAIN = potonganlain.Sum(s => s.HR_JUMLAH).Value.ToString("0.00"); kerjaelaun.TUNGGAKANIND = userTransaksiDetail .Where(s => s.HR_KOD == "GAJPS").SingleOrDefault().HR_TUNGGAKAN_IND; //calculation var gajikasar = gaji.HR_JUMLAH + elaunka.Sum(s => s.HR_JUMLAH) + elaunlain.Sum(s => s.HR_JUMLAH) + elaunot.Sum(s => s.HR_JUMLAH); kerjaelaun.GAJIKASAR = gajikasar.Value.ToString("0.00"); var gajiSebelumKWSP = gajikasar - potonganSocso - potonganksdk.Sum(s => s.HR_JUMLAH) - potonganlain.Sum(s => s.HR_JUMLAH); kerjaelaun.GAJISEBELUMKWSP = gajiSebelumKWSP.Value.ToString("0.00"); //gaji bersih = gaji pokok + elaun - potongan var bersih = kerjaelaun.GAJIPOKOK + elaunka.Sum(s => s.HR_JUMLAH) + elaunot.Sum(s => s.HR_JUMLAH) + elaunlain.Sum(s => s.HR_JUMLAH) - potonganSocso - potonganKWSP.HR_JUMLAH - potonganksdk.Sum(s => s.HR_JUMLAH) - potonganlain.Sum(s => s.HR_JUMLAH); kerjaelaun.GAJIBERSIH = decimal.Parse(bersih.Value.ToString("0.00")); kerjaelaun.MUKTAMAD = gaji.HR_MUKTAMAD; return(kerjaelaun); } else if (userTransaksiDetail.Count == 0) { //gaji related var gajiSehari = PageSejarahModel.GetGajiSehari(db, HR_PEKERJA); kerjaelaun.GAJISEHARI = gajiSehari.ToString("0.00"); decimal gajiPokok = PageSejarahModel.GetGajiPokok(db, HR_PEKERJA, jumlahhari.Value); kerjaelaun.GAJIPOKOK = gajiPokok; decimal?gajiper3 = kerjaelaun.GAJIPOKOK / 3; kerjaelaun.GAJIPER3 = gajiper3.Value.ToString("0.00"); List <HR_MAKLUMAT_ELAUN_POTONGAN> potonganksdk = PageSejarahModel.GetPotonganKSDK(db, HR_PEKERJA); List <HR_MAKLUMAT_ELAUN_POTONGAN> potonganlain = PageSejarahModel.GetPotonganLain(db, HR_PEKERJA); HR_MAKLUMAT_ELAUN_POTONGAN potonganKWSP = PageSejarahModel.GetPotonganKWSP(db, HR_PEKERJA, kerjaelaun.GAJIPOKOK.Value); List <HR_MAKLUMAT_ELAUN_POTONGAN> elaunka = PageSejarahModel.GetElaunKa(db, HR_PEKERJA); List <HR_MAKLUMAT_ELAUN_POTONGAN> elaunLain = PageSejarahModel.GetElaunLain(db, HR_PEKERJA); //semua Elaun int jumlahHariInt = Convert.ToInt32(jumlahhari != null ? jumlahhari : 0); decimal jumlahJamOT = Convert.ToDecimal(jumlahot != null ? jumlahot : 0); var elaunot = PageSejarahModel.GetElaunOT(db, HR_PEKERJA, jumlahHariInt, jumlahJamOT); kerjaelaun.JUMLAHBAYARANOT = elaunot.ToString("0.00"); kerjaelaun.ELAUNKA = elaunka.Sum(s => s.HR_JUMLAH).Value.ToString("0.00"); kerjaelaun.ELAUNLAIN = elaunLain.Sum(s => s.HR_JUMLAH).Value.ToString("0.00"); //semua potongan decimal potonganSocso = PageSejarahModel.GetPotonganSocso(db, gajiPokok, elaunot); kerjaelaun.POTONGANSOCSO = potonganSocso; kerjaelaun.POTONGANKWSP = potonganKWSP.HR_JUMLAH; kerjaelaun.POTONGANKSDK = potonganksdk.Sum(s => s.HR_JUMLAH).Value.ToString("0.00"); kerjaelaun.POTONGLAIN = potonganlain.Sum(s => s.HR_JUMLAH).Value.ToString("0.00"); //other info kerjaelaun.JABATAN = userJabatan.GE_KETERANGAN_JABATAN; kerjaelaun.BAHAGIAN = userBahagian.GE_KETERANGAN; kerjaelaun.NOKP = userPeribadi.HR_NO_KPBARU; kerjaelaun.JAWATAN = jawatan.HR_NAMA_JAWATAN; decimal?gajikasar = kerjaelaun.GAJIPOKOK + elaunka.Sum(s => s.HR_JUMLAH) + elaunLain.Sum(s => s.HR_JUMLAH) + elaunot; kerjaelaun.GAJIKASAR = gajikasar.Value.ToString("0.00"); //double? gajikasar1 = (double)gajikasar * 0.11; var gajiSebelumKWSP = gajikasar - potonganSocso - potonganksdk.Sum(s => s.HR_JUMLAH) - potonganlain.Sum(s => s.HR_JUMLAH); kerjaelaun.GAJISEBELUMKWSP = gajiSebelumKWSP.Value.ToString("0.00"); //gaji bersih = gaji pokok + elaun - potongan var bersih = kerjaelaun.GAJIPOKOK + elaunka.Sum(s => s.HR_JUMLAH) + elaunLain.Sum(s => s.HR_JUMLAH) + elaunot - potonganSocso - potonganKWSP.HR_JUMLAH - potonganksdk.Sum(s => s.HR_JUMLAH) - potonganlain.Sum(s => s.HR_JUMLAH); kerjaelaun.GAJIBERSIH = decimal.Parse(bersih.Value.ToString("0.00")); return(kerjaelaun); } } return(null); }