Ejemplo n.º 1
0
        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());
                    }
                }
            }
        }
Ejemplo n.º 2
0
        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());
                    }
                }
            }
        }