public ActionResult Sejarah(PageSejarahModel page, string Command) { var user = User.Identity.GetUserId(); PageSejarahModel.Insert(page, user, Command); string info = string.Empty; if (Command == "Hantar") { info = ManageMessageId.Tambah.ToString(); PageSejarahModel newPage = new PageSejarahModel(); //open same page, buat empty form return(RedirectToAction("Sejarah", new { message = info, page.tahunbekerja, page.tahundibayar, page.bulandibayar, page.bulanbekerja })); } else if (Command == "Kemaskini") { info = ManageMessageId.Kemaskini.ToString(); //show same page return(RedirectToAction("Sejarah", new { message = info, page.HR_PEKERJA, page.tahunbekerja, page.tahundibayar, page.bulandibayar, page.bulanbekerja })); } else //Muktamad { info = ManageMessageId.Muktamad.ToString(); //redirect to menu return(RedirectToAction("ListTransaksiSambilan", "PengurusanKakitanganSambilan", new { message = info, month1 = page.bulanbekerja, year1 = page.tahunbekerja, year2 = page.tahundibayar, month2 = page.bulandibayar })); } }
public ActionResult Sejarah(ManageMessageId?message, string HR_PEKERJA, string tahunbekerja, string bulanbekerja, string tahundibayar, string bulandibayar) { ViewBag.StatusMessage = message == ManageMessageId.Tambah ? "Permohonan Telah Berjaya Disimpan." : message == ManageMessageId.Muktamad ? "Permohonan Anda Telah Muktamad." : message == ManageMessageId.Kemaskini ? "Permohonan Telah Berjaya Dikemaskini." : message == ManageMessageId.BayarTunggakan ? "Permohonan Telah Berjaya Dikemaskini." : ""; PageSejarahModel page = new PageSejarahModel(); if (!string.IsNullOrEmpty(HR_PEKERJA)) { //if got No pekerja page = new PageSejarahModel(HR_PEKERJA, tahunbekerja, bulanbekerja, tahundibayar, bulandibayar); page.jumlahhari = page.GetJumlahHari(); page.jumlahot = page.GetJumlahOT(); } else { if (!string.IsNullOrEmpty(bulanbekerja) && !string.IsNullOrEmpty(bulandibayar) && !string.IsNullOrEmpty(tahunbekerja) && !string.IsNullOrEmpty(tahundibayar)) { try { page.bulanbekerja = Convert.ToInt32(bulanbekerja); page.bulandibayar = Convert.ToInt32(bulandibayar); page.tahunbekerja = Convert.ToInt32(tahunbekerja); page.tahundibayar = Convert.ToInt32(tahundibayar); } catch { } } } ViewBag.bulandibayar = GetBulanDropdown(page.bulandibayar); ViewBag.tunggakanbulandibayar = ViewBag.bulandibayar; ViewBag.bulanbekerja = GetBulanDropdown(page.bulanbekerja); ViewBag.tunggakanbulanbekerja = GetBulanDropdown(page.tunggakanbulanbekerja); return(View(page)); }
//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); }
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); }