public static SuratPengesahanHospitalModel GetByNoPekerja(string noPekerja) { SuratPengesahanHospitalModel model = new SuratPengesahanHospitalModel(); ApplicationDbContext db = new ApplicationDbContext(); HR_MAKLUMAT_PERIBADI mPeribadi = db.HR_MAKLUMAT_PERIBADI .Where(s => s.HR_NO_PEKERJA == noPekerja).FirstOrDefault(); HR_MAKLUMAT_PEKERJAAN mPekerjaan = db.HR_MAKLUMAT_PEKERJAAN .Where(s => s.HR_NO_PEKERJA == noPekerja).FirstOrDefault(); List <HR_MAKLUMAT_TANGGUNGAN> mTanggungan = db.HR_MAKLUMAT_TANGGUNGAN .Where(s => s.HR_NO_PEKERJA == noPekerja).ToList(); model.NamaPekerja = mPeribadi.HR_NAMA_PEKERJA; model.NoPekerja = noPekerja; model.NoKPBaru = mPeribadi.HR_NO_KPBARU; if (mPekerjaan.HR_JAWATAN != null) { string jawatanString = db.HR_JAWATAN .Where(s => s.HR_KOD_JAWATAN == mPekerjaan.HR_JAWATAN) .Select(s => s.HR_NAMA_JAWATAN).FirstOrDefault(); model.Jawatan = jawatanString; } model.GredGaji = mPekerjaan.HR_GRED; model.GajiBulanan = mPekerjaan.HR_GAJI_POKOK == null? 0: mPekerjaan.HR_GAJI_POKOK.Value; model.IsRawatanSendiri = true; model.TarikhString = DateTime.Now.ToString("dd/MM/yyyy"); model.IsHospital = true; model.HospitalName = string.Empty; model.IsPengesahanMajikan = false; model.MaklumatTanggungan = MaklumatTanggunganModel.GetListTanggungan(mTanggungan); return(model); }
public static List <BonusSambilanDetailModel> GetBonusSambilanDetailData(int month, int year) { ApplicationDbContext db = new ApplicationDbContext(); List <HR_BONUS_SAMBILAN_DETAIL> tableList = HR_BONUS_SAMBILAN_DETAIL.GetBonusSambilanDetailData(month, year); List <BonusSambilanDetailModel> outputList = new List <BonusSambilanDetailModel>(); foreach (HR_BONUS_SAMBILAN_DETAIL y in tableList) { BonusSambilanDetailModel d = new BonusSambilanDetailModel(); HR_MAKLUMAT_PERIBADI maklumat = db.HR_MAKLUMAT_PERIBADI .Where(m => m.HR_NO_PEKERJA == y.HR_NO_PEKERJA).FirstOrDefault(); HR_MAKLUMAT_PEKERJAAN kerja = db.HR_MAKLUMAT_PEKERJAAN .Where(m => m.HR_NO_PEKERJA == y.HR_NO_PEKERJA).FirstOrDefault(); d.BulanBonus = y.HR_BULAN_BONUS; d.TahunBonus = y.HR_TAHUN_BONUS; d.Nama = maklumat.HR_NAMA_PEKERJA; d.NoPekerja = y.HR_NO_PEKERJA; d.NoKadPengenalan = y.HR_NO_KPBARU; d.NoAkaunBank = kerja.HR_NO_AKAUN_BANK; d.NoKWSP = kerja.HR_NO_KWSP; d.TarikhLantikan = kerja.HR_TARIKH_LANTIKAN; d.Jan = y.HR_JANUARI; d.Feb = y.HR_FEBRUARI; d.Mac = y.HR_MAC; d.April = y.HR_APRIL; d.Mei = y.HR_MEI; d.Jun = y.HR_JUN; d.Julai = y.HR_JULAI; d.Ogos = y.HR_OGOS; d.September = y.HR_SEPTEMBER; d.Oktober = y.HR_OKTOBER; d.November = y.HR_NOVEMBER; d.Disember = y.HR_DISEMBER; d.JumlahGaji = y.HR_JUMLAH_GAJI; d.GajiPurata = y.HR_GAJI_PURATA; d.BonusDiterima = y.HR_BONUS_DITERIMA; d.BonusLayak = y.HR_BONUS_LAYAK; d.Catatan = y.HR_CATATAN; d.MinBulan = y.HR_BULAN_START; d.MaxBulan = y.HR_BULAN_END; if (y.HR_MUKTAMAD > 0) { d.IsMuktamad = true; } else { d.IsMuktamad = false; } outputList.Add(d); } //sort by nama outputList = outputList.OrderBy(x => x.Nama).ToList(); return(outputList); }
private static string GetKodVOT(string noPekerja, string kodElaun) { string retString = "11-00-00-00-0000"; ApplicationDbContext db = new ApplicationDbContext(); HR_MAKLUMAT_PEKERJAAN mWork = db.HR_MAKLUMAT_PEKERJAAN.Where (s => s.HR_NO_PEKERJA == noPekerja).FirstOrDefault(); HR_ELAUN mElaun = db.HR_ELAUN.Where (s => s.HR_KOD_ELAUN == kodElaun).FirstOrDefault(); if (mWork != null && mElaun != null) { retString = string.Format("{0}-{1}-{2}-{3}-{4}", PageSejarahModel.NoVOTKepala, mWork.HR_JABATAN, mWork.HR_BAHAGIAN, mWork.HR_UNIT, mElaun.HR_VOT_ELAUN); } return(retString); }
private static string GetKodVOT(string noPekerja, string kodCaruman) { string retString = "11-00-00-00-00000"; ApplicationDbContext db = new ApplicationDbContext(); HR_MAKLUMAT_PEKERJAAN mWork = db.HR_MAKLUMAT_PEKERJAAN.Where (s => s.HR_NO_PEKERJA == noPekerja).FirstOrDefault(); HR_CARUMAN mCaruman = db.HR_CARUMAN.Where (s => s.HR_KOD_CARUMAN == kodCaruman).FirstOrDefault(); if (mWork != null && mCaruman != null) { string cropString = string.Empty; if (mCaruman.HR_VOT_CARUMAN.Length > 5) { var indexChar = mCaruman.HR_VOT_CARUMAN.Length - 5; cropString = mCaruman.HR_VOT_CARUMAN.Substring(indexChar, 5); } else { cropString = mCaruman.HR_VOT_CARUMAN; } if (cropString.Length == 0) { cropString = "00000"; } retString = string.Format("{0}-{1}-{2}-{3}-{4}", PageSejarahModel.NoVOTKepala, mWork.HR_JABATAN, mWork.HR_BAHAGIAN, mWork.HR_UNIT, cropString); } return(retString); }
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); }
//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); }
/// <summary> /// Output BONUS_SAMBILAN_DETAIL data from HR_TRANSAKSI_SAMBILAN_DETAIL /// </summary> /// <param name="startMonth">start of month (if not Jan)</param> /// <param name="month">bulan bonus dibayar</param> /// <param name="year">tahun bonus dibayar</param> /// <returns>List BonusSambilanDetailModel</returns> public static List <BonusSambilanDetailModel> GetDetailsFromTransaksi (int startMonth, int month, int year, int endMonth) { ApplicationDbContext db = new ApplicationDbContext(); //get list of pekerja tidak aktif List <string> listHR_TidakAktif = db.HR_MAKLUMAT_PERIBADI .Where(s => s.HR_AKTIF_IND == "T" && s.HR_ALASAN != "A17").Select(s => s.HR_NO_PEKERJA).Distinct().ToList(); //exclude bulan dibayar (month) and filter out tidak aktif List <string> listHR_PEKERJA = db.HR_TRANSAKSI_SAMBILAN_DETAIL .Where(s => s.HR_BULAN_BEKERJA >= startMonth && s.HR_BULAN_BEKERJA <= endMonth && s.HR_TAHUN == year && !listHR_TidakAktif.Contains(s.HR_NO_PEKERJA)) .Select(s => s.HR_NO_PEKERJA).Distinct().ToList(); List <BonusSambilanDetailModel> outputList = new List <BonusSambilanDetailModel>(); foreach (string hr_pekerja in listHR_PEKERJA) { BonusSambilanDetailModel det = new BonusSambilanDetailModel(); List <HR_TRANSAKSI_SAMBILAN_DETAIL> elaunlain = db.HR_TRANSAKSI_SAMBILAN_DETAIL. Where(x => x.HR_NO_PEKERJA == hr_pekerja && x.HR_TAHUN == year && x.HR_BULAN_BEKERJA >= startMonth && x.HR_BULAN_BEKERJA <= endMonth //&& x.HR_BULAN_DIBAYAR == month ).ToList(); HR_MAKLUMAT_PERIBADI maklumat = db.HR_MAKLUMAT_PERIBADI .Where(m => m.HR_NO_PEKERJA == hr_pekerja).FirstOrDefault(); HR_MAKLUMAT_PEKERJAAN kerja = db.HR_MAKLUMAT_PEKERJAAN .Where(m => m.HR_NO_PEKERJA == hr_pekerja).FirstOrDefault(); det.BulanBonus = month; det.TahunBonus = year; det.Nama = maklumat.HR_NAMA_PEKERJA; det.NoPekerja = hr_pekerja; det.NoKadPengenalan = maklumat.HR_NO_KPBARU; det.NoAkaunBank = kerja.HR_NO_AKAUN_BANK; det.NoKWSP = kerja.HR_NO_KWSP; det.TarikhLantikan = kerja.HR_TARIKH_LANTIKAN; int totalBulanBerkhidmat = 0; det.Jan = GetGajiPokok(db, elaunlain, 1); if (det.Jan > 0) { totalBulanBerkhidmat++; } det.Feb = GetGajiPokok(db, elaunlain, 2); if (det.Feb > 0) { totalBulanBerkhidmat++; } det.Mac = GetGajiPokok(db, elaunlain, 3); if (det.Mac > 0) { totalBulanBerkhidmat++; } det.April = GetGajiPokok(db, elaunlain, 4); if (det.April > 0) { totalBulanBerkhidmat++; } det.Mei = GetGajiPokok(db, elaunlain, 5); if (det.Mei > 0) { totalBulanBerkhidmat++; } det.Jun = GetGajiPokok(db, elaunlain, 6); if (det.Jun > 0) { totalBulanBerkhidmat++; } det.Julai = GetGajiPokok(db, elaunlain, 7); if (det.Julai > 0) { totalBulanBerkhidmat++; } det.Ogos = GetGajiPokok(db, elaunlain, 8); if (det.Ogos > 0) { totalBulanBerkhidmat++; } det.September = GetGajiPokok(db, elaunlain, 9); if (det.September > 0) { totalBulanBerkhidmat++; } det.Oktober = GetGajiPokok(db, elaunlain, 10); if (det.Oktober > 0) { totalBulanBerkhidmat++; } det.November = GetGajiPokok(db, elaunlain, 11); if (det.November > 0) { totalBulanBerkhidmat++; } det.Disember = GetGajiPokok(db, elaunlain, 12); if (det.Disember > 0) { totalBulanBerkhidmat++; } det.JumlahGaji = GetSumGajiPokok(elaunlain); det.MinBulan = startMonth; det.MaxBulan = endMonth; int totalBulanDikira = endMonth - startMonth + 1; if (totalBulanBerkhidmat > 0) { det.GajiPurata = det.JumlahGaji == null ? 0 : decimal.Round(Convert.ToDecimal(det.JumlahGaji) / totalBulanBerkhidmat, 3); } //new changes: decimal totalGajiPokok = GetSumGajiPokok(elaunlain); decimal bonusLayak = totalGajiPokok / totalBulanDikira; det.BonusLayak = bonusLayak; det.BonusDiterima = bonusLayak * (decimal)1.0; //temp start with decimal 1.0 det.IsMuktamad = false; if (!IsNoData(det)) { outputList.Add(det); } } //sort by Nama outputList = outputList.OrderBy(x => x.Nama).ToList(); return(outputList); }
/// <summary> /// Output BONUS_SAMBILAN_DETAIL data from HR_TRANSAKSI_SAMBILAN_DETAIL /// </summary> /// <param name="startMonth">start of month (if not Jan)</param> /// <param name="month">bulan bonus dibayar</param> /// <param name="year">tahun bonus dibayar</param> /// <returns>List BonusSambilanDetailModel</returns> public static List <BonusSambilanDetailModel> GetDetailsFromTransaksi (int startMonth, int month, int year, int endMonth) { ApplicationDbContext db = new ApplicationDbContext(); List <string> listHR_PEKERJA = db.HR_TRANSAKSI_SAMBILAN_DETAIL .Where(s => s.HR_BULAN_DIBAYAR == month && s.HR_BULAN_BEKERJA >= startMonth && s.HR_BULAN_BEKERJA <= endMonth && s.HR_TAHUN == year).Select(s => s.HR_NO_PEKERJA).Distinct().ToList(); List <BonusSambilanDetailModel> outputList = new List <BonusSambilanDetailModel>(); foreach (string hr_pekerja in listHR_PEKERJA) { BonusSambilanDetailModel det = new BonusSambilanDetailModel(); List <HR_TRANSAKSI_SAMBILAN_DETAIL> elaunlain = db.HR_TRANSAKSI_SAMBILAN_DETAIL. Where(x => x.HR_NO_PEKERJA == hr_pekerja && x.HR_TAHUN == year && x.HR_BULAN_BEKERJA >= startMonth && x.HR_BULAN_BEKERJA <= endMonth && x.HR_BULAN_DIBAYAR == month).ToList(); HR_MAKLUMAT_PERIBADI maklumat = db.HR_MAKLUMAT_PERIBADI .Where(m => m.HR_NO_PEKERJA == hr_pekerja).FirstOrDefault(); HR_MAKLUMAT_PEKERJAAN kerja = db.HR_MAKLUMAT_PEKERJAAN .Where(m => m.HR_NO_PEKERJA == hr_pekerja).FirstOrDefault(); det.BulanBonus = month; det.TahunBonus = year; det.Nama = maklumat.HR_NAMA_PEKERJA; det.NoPekerja = hr_pekerja; det.NoKadPengenalan = maklumat.HR_NO_KPBARU; det.NoAkaunBank = kerja.HR_NO_AKAUN_BANK; det.NoKWSP = kerja.HR_NO_KWSP; det.TarikhLantikan = kerja.HR_TARIKH_LANTIKAN; det.Jan = elaunlain .Where(c => c.HR_BULAN_BEKERJA == 1).Sum(c => c.HR_JUMLAH); det.Feb = elaunlain .Where(c => c.HR_BULAN_BEKERJA == 2).Sum(c => c.HR_JUMLAH); det.Mac = elaunlain .Where(c => c.HR_BULAN_BEKERJA == 3).Sum(c => c.HR_JUMLAH); det.April = elaunlain .Where(c => c.HR_BULAN_BEKERJA == 4).Sum(c => c.HR_JUMLAH); det.Mei = elaunlain .Where(c => c.HR_BULAN_BEKERJA == 5).Sum(c => c.HR_JUMLAH); det.Jun = elaunlain .Where(c => c.HR_BULAN_BEKERJA == 6).Sum(c => c.HR_JUMLAH); det.Julai = elaunlain .Where(c => c.HR_BULAN_BEKERJA == 7).Sum(c => c.HR_JUMLAH); det.Ogos = elaunlain .Where(c => c.HR_BULAN_BEKERJA == 8).Sum(c => c.HR_JUMLAH); det.September = elaunlain .Where(c => c.HR_BULAN_BEKERJA == 9).Sum(c => c.HR_JUMLAH); det.Oktober = elaunlain .Where(c => c.HR_BULAN_BEKERJA == 10).Sum(c => c.HR_JUMLAH); det.November = elaunlain .Where(c => c.HR_BULAN_BEKERJA == 11).Sum(c => c.HR_JUMLAH); det.Disember = elaunlain .Where(c => c.HR_BULAN_BEKERJA == 12).Sum(c => c.HR_JUMLAH); det.JumlahGaji = elaunlain.Sum(c => c.HR_JUMLAH); det.MinBulan = startMonth; det.MaxBulan = endMonth; int totalBulan = endMonth - startMonth + 1; if (totalBulan > 0) { det.GajiPurata = det.JumlahGaji == null ? 0 : decimal.Round(Convert.ToDecimal(det.JumlahGaji) / totalBulan, 3); } det.IsMuktamad = false; outputList.Add(det); } //sort by Nama outputList = outputList.OrderBy(x => x.Nama).ToList(); return(outputList); }
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()); } } } }