Beispiel #1
0
        private void bgWork_DoWork(object sender, DoWorkEventArgs e)
        {
            lblInfoPencarian.SafeControlInvoke(Label => lblInfoPencarian.Visible = true);
            lblInfoPencarian.SafeControlInvoke(Label => lblInfoPencarian.Text = "Loading Database");
            dtpFilterTgl1.SafeControlInvoke(DateTimePicker => dtpFilterTgl1.Enabled = false);
            dtpFilterTgl2.SafeControlInvoke(DateTimePicker => dtpFilterTgl2.Enabled = false);
            txtHari.SafeControlInvoke(TextBox => txtHari.Enabled = false);
            txtNomor.SafeControlInvoke(TextBox => txtNomor.Enabled = false);
            cmbKode.SafeControlInvoke(ComboBox => cmbKode.Enabled = false);
            btnCari.SafeControlInvoke(Button => btnCari.Enabled = false);

            this.strErr = "";
            C4Module.MainModule.strRegKey = halamanUtama.FULL_REG_CONN;

            SqlConnection conn = modDb.pbconnKoneksiSQL(ref strErr);
            if (strErr != "")
            {
                modMsg.pvDlgErr(modMsg.IS_DEV, strErr, modMsg.DB_CON, modMsg.TITLE_ERR);
                return;
            }

            this.strQuerySQL = "Select Idbl_Norek,Uraianrek,Dipakai " +
                               "FROM BL_NOREK With (nolock) " +
                               "WHERE IDBL_NOREK <> '-' order by IDBL_NOREK";

            SqlDataReader reader = modDb.pbreaderSQL(conn, strQuerySQL, ref strErr);
            if (strErr != "")
            {
                modMsg.pvDlgErr(modMsg.IS_DEV, strErr, modMsg.DB_GET, modMsg.TITLE_ERR);
                conn.Close();
                return;
            }

            if (reader.HasRows)
            {
                while (reader.Read())
                {

                    lstNOREK itemNorek = new lstNOREK();
                    itemNorek.strIdBl_NoRek = modMain.pbstrgetCol(reader, 0, ref strErr, "");
                    itemNorek.strUraianRek = modMain.pbstrgetCol(reader, 1, ref strErr, "");
                    itemNorek.strDipakai = modMain.pbstrgetCol(reader, 2, ref strErr, "");
                    grpNorek.Add(itemNorek);

                }
            }

            reader.Close();

            this.strQuerySQL = "SELECT Idbl_keltarip,Urutan,Lapjp,Rekapjp " +
                               "FROM BL_KELTARIP WITH (NOLOCK) " +
                               "WHERE lapjp <> '-' " +
                               "ORDER BY lapjp, urutan";

            reader = modDb.pbreaderSQL(conn, strQuerySQL, ref strErr);
            if (strErr != "")
            {
                modMsg.pvDlgErr(modMsg.IS_DEV, strErr, modMsg.DB_GET, modMsg.TITLE_ERR);
                conn.Close();
                return;
            }

            if (reader.HasRows)
            {
                while (reader.Read())
                {

                    lstKelTarip itemKelTarip = new lstKelTarip();
                    itemKelTarip.strIdBl_KelTarip = modMain.pbstrgetCol(reader, 0, ref strErr, "");
                    itemKelTarip.intUrutan = Convert.ToInt32(modMain.pbstrgetCol(reader, 1, ref strErr, ""));
                    itemKelTarip.strLapJP = modMain.pbstrgetCol(reader, 2, ref strErr, "");
                    itemKelTarip.strRekapJP = modMain.pbstrgetCol(reader, 3, ref strErr, "");

                    grpKelTarip.Add(itemKelTarip);

                }
            }

            reader.Close();

            this.strQuerySQL = "SELECT "+
                                    "BL_TARIP.Idbl_keltarip, "+                                                 //0
                                    "BL_TARIP.pisahsetor, "+                                                    //1
                                    "BL_TRANSAKSI_1.idmr_tsmf, " +                                              //2
                                    "BL_TARIP.idbl_norek, "+                                                    //3
                                    "BL_TARIP.uraianrek, " +                                                    //4
                                    "BL_TRANSAKSIDETAIL_1.idbl_komponen, "+                                     //5
                                    "BL_KOMPONEN.Lapurut, " +                                                   //6
                                    "BL_TRANSAKSIDETAIL_1.nilai - BL_TRANSAKSIDETAIL_1.Ringan AS TUNAINYA, " +  //7
                                    "BL_TRANSAKSIDETAIL_1.nilai, "+                                             //8
                                    "BL_TRANSAKSIDETAIL_1.Ringan, " +                                           //9
                                    "BL_TRANSAKSI_1.TUNAI, "+                                                   //10
                                    "BL_TRANSAKSIDETAIL_1.idbl_transaksi " +                                    //11
                               "FROM BL_TRANSAKSI_1  With (nolock) "+
                               "INNER JOIN BL_TRANSAKSIDETAIL_1 "+
                                    "ON BL_TRANSAKSI_1.idbl_transaksi = BL_TRANSAKSIDETAIL_1.idbl_transaksi " +
                               "INNER JOIN BL_TARIP "+
                                    "ON BL_TRANSAKSI_1.idbl_tarip = BL_TARIP.IdBl_tarip " +
                               "INNER JOIN BL_KASUMUM "+
                                    "ON BL_TRANSAKSI_1.idbl_pembayaran = BL_KASUMUM.Idbl_Pembayaran "+
                                    "AND BL_TRANSAKSI_1.idmr_mutasipasien = BL_KASUMUM.idmr_mutasipasien " +
                               "INNER JOIN BL_KOMPONEN "+
                                    "ON BL_TRANSAKSIDETAIL_1.idbl_komponen = BL_KOMPONEN.idbl_komponen " +
                               "WHERE "+
                                    "BL_KASUMUM.Batal = '' "+
                                    "AND BL_TRANSAKSI_1.batal = '' " +
                                    "AND BL_KASUMUM.Tanggal between '" + dtpFilterTgl1.Value.ToString("MM/dd/yyyy 00:00:00") +
                                        "' AND '" + dtpFilterTgl2.Value.ToString("MM/dd/yyyy 23:59:59") + "' " +
                                    "AND BL_TRANSAKSI_1.idmr_tsmf <> 'DARAH' "+
                                    "AND BL_TRANSAKSI_1.idmr_tsmf <> 'PENDORONG' " +
                                    "AND BL_TRANSAKSI_1.idmr_tsmf <> 'DEPO FARMASI' " +
                                    "AND BL_TRANSAKSI_1.idmr_tsmf <> 'OBAT/ALKES-KPRI' " +
                                    "AND BL_TARIP.pisahsetor = ''";

            reader = modDb.pbreaderSQL(conn, strQuerySQL, ref strErr);
            if (strErr != "")
            {
                modMsg.pvDlgErr(modMsg.IS_DEV, strErr, modMsg.DB_GET, modMsg.TITLE_ERR);
                conn.Close();
                return;
            }

            if (reader.HasRows)
            {
                while (reader.Read())
                {

                    lstKasum itemKasum = new lstKasum();
                    itemKasum.strIdBl_KelTarip = modMain.pbstrgetCol(reader, 0, ref strErr, "");
                    itemKasum.strPisahSetor = modMain.pbstrgetCol(reader, 1, ref strErr, "");
                    itemKasum.strIdMR_TSMF = modMain.pbstrgetCol(reader, 2, ref strErr, "");
                    itemKasum.strIdBl_Norek = modMain.pbstrgetCol(reader, 3, ref strErr, "");
                    itemKasum.strUraianRek = modMain.pbstrgetCol(reader, 4, ref strErr, "");
                    itemKasum.strIdBl_Komponen = modMain.pbstrgetCol(reader, 5, ref strErr, "");
                    itemKasum.intLapUrut = Convert.ToInt32(modMain.pbstrgetCol(reader, 6, ref strErr, ""));
                    itemKasum.dblTunainya = Convert.ToDouble(modMain.pbstrgetCol(reader, 7, ref strErr, ""));
                    itemKasum.dblNilai = Convert.ToDouble(modMain.pbstrgetCol(reader, 8, ref strErr, ""));
                    itemKasum.dblRingan = Convert.ToDouble(modMain.pbstrgetCol(reader, 9, ref strErr, ""));
                    itemKasum.dblTunai = Convert.ToDouble(modMain.pbstrgetCol(reader, 10, ref strErr, ""));
                    itemKasum.strIdBl_Transaksi = modMain.pbstrgetCol(reader, 11, ref strErr, "");
                    grpKasum.Add(itemKasum);

                }
            }

            reader.Close();

            this.strQuerySQL = "SELECT "+
                                    "BL_KASASKES.JUMLAH + BL_KASASKES.nonrs AS TUNAI, "+
                                    "MR_SJASKES.idmr_tstatus "+
                               "FROM BL_KASASKES  With (nolock) "+
                               "INNER JOIN MR_SJASKES "+
                                    "ON BL_KASASKES.idmr_mutasipasien = MR_SJASKES.idmr_mutasipasien "+
                               "WHERE BL_KASASKES.Batal = '' AND MR_SJASKES.Batal = '' "+
                                    "AND MR_SJASKES.idmr_tstatus = 'ASKES' "+
                                    "AND BL_KASASKES.Tanggal between '" + dtpFilterTgl1.Value.ToString("MM/dd/yyyy 00:00:00") +
                                        "' AND '" + dtpFilterTgl2.Value.ToString("MM/dd/yyyy 23:59:59") + "'";
            reader = modDb.pbreaderSQL(conn, strQuerySQL, ref strErr);
            if (strErr != "")
            {
                modMsg.pvDlgErr(modMsg.IS_DEV, strErr, modMsg.DB_GET, modMsg.TITLE_ERR);
                conn.Close();
                return;
            }

            if (reader.HasRows)
            {
                while (reader.Read())
                {

                    lstKasAskes itemKasAskes = new lstKasAskes();
                    itemKasAskes.dblTunai = Convert.ToDouble(modMain.pbstrgetCol(reader, 0, ref strErr, ""));
                    itemKasAskes.strIdMR_Status = modMain.pbstrgetCol(reader, 1, ref strErr, "");
                    grpKasAskes.Add(itemKasAskes);

                }
            }

            reader.Close();

            this.strQuerySQL = "SELECT "+
                                    "BL_KASASKES.Idmr_mutasipasien, "+
                                    "BL_TRANSAKSI.JUMLAH, "+
                                    "BL_TARIP.Idbl_keltarip, "+
                                    "BL_TARIP.pisahsetor "+
                               "FROM BL_KASASKES With (nolock) "+
                               "INNER JOIN BL_TRANSAKSI "+
                                    "ON BL_KASASKES.Idmr_mutasipasien = BL_TRANSAKSI.idmr_mutasipasien "+
                               "INNER JOIN BL_TARIP "+
                                    "ON BL_TRANSAKSI.idbl_tarip = BL_TARIP.IdBl_tarip "+
                               "INNER JOIN MR_SJASKES "+
                                    "ON BL_KASASKES.idmr_mutasipasien = MR_SJASKES.idmr_mutasipasien "+
                               "WHERE BL_KASASKES.Batal = '' "+
                                    "AND BL_TRANSAKSI.batal = '' "+
                                    "AND BL_TRANSAKSI.idmr_tsmf = 'ADMINISTRASI' "+
                                    "AND BL_TARIP.pisahsetor <> '' "+
                                    "AND MR_SJASKES.Batal = '' "+
                                    "AND MR_SJASKES.idmr_tstatus = 'ASKES' "+
                                    "AND BL_KASASKES.Tanggal between '" + dtpFilterTgl1.Value.ToString("MM/dd/yyyy 00:00:00") +
                                        "' AND '" + dtpFilterTgl2.Value.ToString("MM/dd/yyyy 23:59:59") + "' ";

            reader = modDb.pbreaderSQL(conn, strQuerySQL, ref strErr);
            if (strErr != "")
            {
                modMsg.pvDlgErr(modMsg.IS_DEV, strErr, modMsg.DB_GET, modMsg.TITLE_ERR);
                conn.Close();
                return;
            }

            if (reader.HasRows)
            {
                while (reader.Read())
                {

                    lstAdmAskes itemAdmAskes = new lstAdmAskes();
                    itemAdmAskes.strIdMR_Mutasipasien = modMain.pbstrgetCol(reader, 0, ref strErr, "");
                    itemAdmAskes.dblJumlah = Convert.ToDouble(modMain.pbstrgetCol(reader, 1, ref strErr, ""));
                    itemAdmAskes.strIdBl_KelTarip = modMain.pbstrgetCol(reader, 2, ref strErr, "");
                    itemAdmAskes.strPisahSetor = modMain.pbstrgetCol(reader, 3, ref strErr, "");
                    grpAdmAkses.Add(itemAdmAskes);

                }
            }

            reader.Close();

            this.strQuerySQL = "SELECT "+
                                    "BL_TARIP.Idbl_keltarip, "+
                                    "BL_TARIP.pisahsetor,"+
                                    "BL_TRANSAKSI.idmr_tsmf, "+
                                    "BL_TRANSAKSIDETAIL.idbl_komponen, "+
                                    "BL_KOMPONEN.Lapurut, "+
                                    "BL_TRANSAKSIDETAIL.nilai - BL_TRANSAKSIDETAIL.Ringan AS TUNAINYA,"+
                                    "BL_TRANSAKSIDETAIL.nilai, "+
                                    "BL_TRANSAKSIDETAIL.Ringan, "+
                                    "BL_TRANSAKSI.JUMLAH AS TUNAI, "+
                                    "BL_TRANSAKSIDETAIL.idbl_transaksi "+
                               "FROM BL_TRANSAKSI  With (nolock) "+
                               "INNER JOIN BL_TRANSAKSIDETAIL "+
                                    "ON BL_TRANSAKSI.idbl_transaksi = BL_TRANSAKSIDETAIL.idbl_transaksi "+
                               "INNER JOIN BL_TARIP "+
                                    "ON BL_TRANSAKSI.idbl_tarip = BL_TARIP.IdBl_tarip "+
                               "INNER JOIN BL_KASASKES "+
                                    "ON BL_TRANSAKSI.idbl_pembayaran = BL_KASASKES.Idbl_Pembayaran "+
                                    "AND BL_TRANSAKSI.idmr_mutasipasien = BL_KASASKES.idmr_mutasipasien "+
                               "INNER JOIN BL_KOMPONEN "+
                                    "ON BL_TRANSAKSIDETAIL.idbl_komponen = BL_KOMPONEN.idbl_komponen "+
                               "INNER JOIN MR_SJASKES "+
                                    "ON BL_KASASKES.idmr_mutasipasien = MR_SJASKES.idmr_mutasipasien "+
                               "WHERE BL_KASASKES.Batal = '' "+
                                    "AND BL_TRANSAKSI.batal = '' "+
                                    "AND MR_SJASKES.Batal = '' "+
                                    "AND BL_TRANSAKSI.idmr_tsmf <> 'DARAH' "+
                                    "AND BL_TRANSAKSI.idmr_tsmf <> 'PENDORONG'  "+
                                    "AND BL_TRANSAKSI.idmr_tsmf <> 'DEPO FARMASI' "+
                                    "AND BL_TRANSAKSI.idmr_tsmf <> 'OBAT/ALKES-KPRI' "+
                                    "AND BL_TARIP.pisahsetor = '' "+
                                    "AND BL_KASASKES.jumlah > 0 "+
                                    "AND BL_KASASKES.Tanggal between '" + dtpFilterTgl1.Value.ToString("MM/dd/yyyy 00:00:00") +
                                        "' AND '" + dtpFilterTgl2.Value.ToString("MM/dd/yyyy 23:59:59") + "' " +
                                    "AND MR_SJASKES.idmr_tstatus = 'ASKESGAKIN'";

            reader = modDb.pbreaderSQL(conn, strQuerySQL, ref strErr);
            if (strErr != "")
            {
                modMsg.pvDlgErr(modMsg.IS_DEV, strErr, modMsg.DB_GET, modMsg.TITLE_ERR);
                conn.Close();
                return;
            }

            if (reader.HasRows)
            {
                while (reader.Read())
                {

                    lstKasAskin itemKasAskin = new lstKasAskin();
                    itemKasAskin.strIdBl_KelTarip = modMain.pbstrgetCol(reader, 0, ref strErr, "");
                    itemKasAskin.strPisahSetor = modMain.pbstrgetCol(reader, 1, ref strErr, "");
                    itemKasAskin.strIdMR_TSMF = modMain.pbstrgetCol(reader, 2, ref strErr, "");
                    itemKasAskin.strIdBl_Komponen = modMain.pbstrgetCol(reader, 3, ref strErr, "");
                    itemKasAskin.intLapUrut = Convert.ToInt32(modMain.pbstrgetCol(reader, 4, ref strErr, ""));
                    itemKasAskin.dblTunainya = Convert.ToDouble(modMain.pbstrgetCol(reader, 5, ref strErr, ""));
                    itemKasAskin.dblNilai = Convert.ToDouble(modMain.pbstrgetCol(reader, 6, ref strErr, ""));
                    itemKasAskin.dblRingan = Convert.ToDouble(modMain.pbstrgetCol(reader, 7, ref strErr, ""));
                    itemKasAskin.dblTunai = Convert.ToDouble(modMain.pbstrgetCol(reader, 8, ref strErr, ""));
                    itemKasAskin.strIdBl_Transaksi = modMain.pbstrgetCol(reader, 9, ref strErr, "");
                    grpKasAskin.Add(itemKasAskin);

                }
            }

            reader.Close();

            this.strQuerySQL = "SELECT "+
                                    "BL_TARIP.Idbl_keltarip, "+
                                    "BL_TARIP.pisahsetor,"+
                                    "BL_TRANSAKSI.idmr_tsmf, "+
                                    "BL_TRANSAKSIDETAIL.idbl_komponen, "+
                                    "BL_KOMPONEN.Lapurut, "+
                                    "BL_TRANSAKSIDETAIL.nilai - BL_TRANSAKSIDETAIL.Ringan AS TUNAINYA, "+
                                    "BL_TRANSAKSIDETAIL.nilai, "+
                                    "BL_TRANSAKSIDETAIL.Ringan, "+
                                    "BL_TRANSAKSI.JUMLAH AS TUNAI, "+
                                    "BL_TRANSAKSIDETAIL.idbl_transaksi "+
                               "FROM BL_TRANSAKSI  With (nolock) "+
                                "INNER JOIN BL_TRANSAKSIDETAIL "+
                                    "ON BL_TRANSAKSI.idbl_transaksi = BL_TRANSAKSIDETAIL.idbl_transaksi "+
                               "INNER JOIN BL_TARIP "+
                                    "ON BL_TRANSAKSI.idbl_tarip = BL_TARIP.IdBl_tarip "+
                               "INNER JOIN BL_KASASKES "+
                                    "ON BL_TRANSAKSI.idbl_pembayaran = BL_KASASKES.Idbl_Pembayaran "+
                                    "AND BL_TRANSAKSI.idmr_mutasipasien = BL_KASASKES.idmr_mutasipasien "+
                               "INNER JOIN BL_KOMPONEN "+
                                    "ON BL_TRANSAKSIDETAIL.idbl_komponen = BL_KOMPONEN.idbl_komponen "+
                               "INNER JOIN MR_SJASKES "+
                                    "ON BL_KASASKES.idmr_mutasipasien = MR_SJASKES.idmr_mutasipasien "+
                               "WHERE BL_KASASKES.Batal = '' "+
                                    "AND BL_TRANSAKSI.batal = '' "+
                                    "AND MR_SJASKES.Batal = '' "+
                                    "AND BL_TRANSAKSI.idmr_tsmf <> 'DARAH' "+
                                    "AND BL_TRANSAKSI.idmr_tsmf <> 'PENDORONG' "+
                                    "AND BL_TRANSAKSI.idmr_tsmf <> 'DEPO FARMASI' "+
                                    "AND BL_TRANSAKSI.idmr_tsmf <> 'OBAT/ALKES-KPRI' "+
                                    "AND BL_TARIP.pisahsetor = '' and BL_KASASKES.jumlah > 0 "+
                                    "AND BL_KASASKES.Tanggal between '" + dtpFilterTgl1.Value.ToString("MM/dd/yyyy 00:00:00") +
                                        "' AND '" + dtpFilterTgl2.Value.ToString("MM/dd/yyyy 23:59:59") + "' " +
                                    "AND MR_SJASKES.idmr_tstatus = 'ASKESJAMKESMAS'";

            reader = modDb.pbreaderSQL(conn, strQuerySQL, ref strErr);
            if (strErr != "")
            {
                modMsg.pvDlgErr(modMsg.IS_DEV, strErr, modMsg.DB_GET, modMsg.TITLE_ERR);
                conn.Close();
                return;
            }

            if (reader.HasRows)
            {
                while (reader.Read())
                {

                    lstKasJamkesmas itemKasJamkesmas = new lstKasJamkesmas();
                    itemKasJamkesmas.strIdBl_KelTarip = modMain.pbstrgetCol(reader, 0, ref strErr, "");
                    itemKasJamkesmas.strPisahSetor = modMain.pbstrgetCol(reader, 1, ref strErr, "");
                    itemKasJamkesmas.strIdMR_TSMF = modMain.pbstrgetCol(reader, 2, ref strErr, "");
                    itemKasJamkesmas.strIdBl_Komponen = modMain.pbstrgetCol(reader, 3, ref strErr, "");
                    itemKasJamkesmas.intLapUrut = Convert.ToInt32(modMain.pbstrgetCol(reader, 4, ref strErr, ""));
                    itemKasJamkesmas.dblTunainya = Convert.ToDouble(modMain.pbstrgetCol(reader, 5, ref strErr, ""));
                    itemKasJamkesmas.dblNilai = Convert.ToDouble(modMain.pbstrgetCol(reader, 6, ref strErr, ""));
                    itemKasJamkesmas.dblRingan = Convert.ToDouble(modMain.pbstrgetCol(reader, 7, ref strErr, ""));
                    itemKasJamkesmas.dblTunai = Convert.ToDouble(modMain.pbstrgetCol(reader, 8, ref strErr, ""));
                    itemKasJamkesmas.strIdBl_Transaksi = modMain.pbstrgetCol(reader, 9, ref strErr, "");
                    grpKasJamkesmas.Add(itemKasJamkesmas);

                }
            }

            reader.Close();

            this.strQuerySQL = "SELECT "+
                                    "BL_TARIP.Idbl_keltarip, "+
                                    "BL_TRANSLAIN.idmr_tsmf, "+
                                    "BL_TRANSLAINDET.idbl_komponen, "+
                                    "BL_KOMPONEN.Lapurut, "+
                                    "BL_TRANSLAINDET.nilai AS TUNAINYA, "+
                                    "BL_TRANSLAINDET.nilai, "+
                                    "BL_TRANSLAIN.jumlah, "+
                                    "BL_TRANSLAINDET.idbl_translain "+
                            "FROM BL_TRANSLAIN  With (nolock) "+
                            "INNER JOIN BL_TRANSLAINDET "+
                                    "ON BL_TRANSLAIN.idbl_translain = BL_TRANSLAINDET.idbl_translain "+
                            "INNER JOIN BL_TARIP "+
                                    "ON BL_TRANSLAIN.idbl_tarip = BL_TARIP.IdBl_tarip "+
                            "INNER JOIN BL_KASLAIN "+
                                    "ON BL_TRANSLAIN.idbl_kaslain = BL_KASLAIN.Idbl_kaslain "+
                            "INNER JOIN BL_KOMPONEN "+
                                    "ON BL_TRANSLAINDET.idbl_komponen = BL_KOMPONEN.idbl_komponen "+
                            "WHERE BL_KASLAIN.Batal = '' "+
                                    "AND BL_TRANSLAIN.Batal = '' "+
                                    "AND BL_KASLAIN.Tanggal between '" + dtpFilterTgl1.Value.ToString("MM/dd/yyyy 00:00:00") +
                                        "' AND '" + dtpFilterTgl2.Value.ToString("MM/dd/yyyy 23:59:59") + "' " +
                                    "AND BL_TRANSLAIN.idmr_tsmf <> 'DARAH' "+
                                    "AND BL_TRANSLAIN.idmr_tsmf <> 'PENDORONG' "+
                                    "AND BL_TRANSLAIN.idmr_tsmf <> 'DEPO FARMASI' "+
                                    "AND BL_TRANSLAIN.idmr_tsmf <> 'OBAT/ALKES-KPRI' "+
                                    "ORDER BY BL_TARIP.Idbl_keltarip, BL_TRANSLAINDET.idbl_komponen";

            reader = modDb.pbreaderSQL(conn, strQuerySQL, ref strErr);
            if (strErr != "")
            {
                modMsg.pvDlgErr(modMsg.IS_DEV, strErr, modMsg.DB_GET, modMsg.TITLE_ERR);
                conn.Close();
                return;
            }

            if (reader.HasRows)
            {
                while (reader.Read())
                {

                    lstKasLain itemKasLain = new lstKasLain();
                    itemKasLain.strIdBl_KelTarip = modMain.pbstrgetCol(reader, 0, ref strErr, "");
                    itemKasLain.strIdMR_TSMF = modMain.pbstrgetCol(reader, 1, ref strErr, "");
                    itemKasLain.strIdBl_Komponen = modMain.pbstrgetCol(reader, 2, ref strErr, "");
                    itemKasLain.intLapUrut = Convert.ToInt32(modMain.pbstrgetCol(reader, 3, ref strErr, ""));
                    itemKasLain.dblTunainya = Convert.ToDouble(modMain.pbstrgetCol(reader, 4, ref strErr, ""));
                    itemKasLain.dblNilai = Convert.ToDouble(modMain.pbstrgetCol(reader, 5, ref strErr, ""));
                    itemKasLain.strIdBl_TransLain = modMain.pbstrgetCol(reader, 6, ref strErr, "");
                    grpKasLain.Add(itemKasLain);

                }
            }

            reader.Close();

            conn.Close();

            //MessageBox.Show("OK");

            lblInfoPencarian.SafeControlInvoke(Label => lblInfoPencarian.Visible = false);
            lblInfoPencarian.SafeControlInvoke(Label => lblInfoPencarian.Text = "");

            dtpFilterTgl1.SafeControlInvoke(DateTimePicker => dtpFilterTgl1.Enabled = true);
            dtpFilterTgl2.SafeControlInvoke(DateTimePicker => dtpFilterTgl2.Enabled = true);
            txtHari.SafeControlInvoke(TextBox => txtHari.Enabled = true);
            txtNomor.SafeControlInvoke(TextBox => txtNomor.Enabled = true);
            cmbKode.SafeControlInvoke(ComboBox => cmbKode.Enabled = true);
            btnCari.SafeControlInvoke(Button => btnCari.Enabled = true);
            txtNomor.SafeControlInvoke(TextBox => txtNomor.Focus());
        }
        private void bgWorkLoadFromDB_DoWork(object sender, DoWorkEventArgs e)
        {
            /*CLEAN DATA*/

            grpLstKASUM.Clear();
            //grpLstKASASKIN.Clear();
            grpLstKASJKM.Clear();
            grpLstKASJKD.Clear();
            grpKelTarip.Clear();
            grpLstReg.Clear();
            grpTransak.Clear();
            grpTransaknya.Clear();
            grpTind.Clear();

            dtpFilterTgl1.SafeControlInvoke(DateTimePicker => dtpFilterTgl1.Enabled = false);
            dtpFilterTgl2.SafeControlInvoke(DateTimePicker => dtpFilterTgl2.Enabled = false);
            cmbJenisLaporan.SafeControlInvoke(ComboBox => cmbJenisLaporan.Enabled = false);
            cmbUnit.SafeControlInvoke(ComboBox => cmbUnit.Enabled = false);
            btnCari.SafeControlInvoke(Button => btnCari.Enabled = false);
            lblInfoPencarian.SafeControlInvoke(Label => lblInfoPencarian.Visible = true);
            cmbPilihanExport.SafeControlInvoke(ComboBox => cmbPilihanExport.Enabled = false);
            btnExport.SafeControlInvoke(Button => btnExport.Enabled = false);
            btnTampilkan.SafeControlInvoke(Button => btnTampilkan.Enabled = false);

            this.strErr = "";
            C4Module.MainModule.strRegKey = halamanUtama.FULL_REG_CONN;

            SqlConnection conn = modDb.pbconnKoneksiSQL(ref strErr);
            if (strErr != "")
            {
                tmrBlink.Enabled = false;
                tmrBlink.Stop();
                lblInfoPencarian.SafeControlInvoke(Label => lblInfoPencarian.Visible = false);
                modMsg.pvDlgErr(modMsg.IS_DEV, strErr, modMsg.DB_CON, modMsg.TITLE_ERR);
                return;
            }

            lblInfoPencarian.SafeControlInvoke(Label => lblInfoPencarian.Text = "Proses Load - KELOMPOK TARIP");
            this.strQuerySQL = "SELECT Idbl_keltarip,Urutan,Lapjp,Rekapjp "+
                               "FROM BL_KELTARIP WITH (NOLOCK) "+
                               "WHERE lapjp <> '-' "+
                               "ORDER BY lapjp, urutan";

            SqlDataReader reader = modDb.pbreaderSQL(conn, strQuerySQL, ref strErr);
            if (strErr != "")
            {
                tmrBlink.Enabled = false;
                tmrBlink.Stop();
                lblInfoPencarian.SafeControlInvoke(Label => lblInfoPencarian.Visible = false);
                modMsg.pvDlgErr(modMsg.IS_DEV, strErr, modMsg.DB_GET, modMsg.TITLE_ERR);
                conn.Close();
                return;
            }

            if (reader.HasRows)
            {
                while (reader.Read())
                {

                    lstKelTarip itemKelTarip = new lstKelTarip();
                    itemKelTarip.strIdBl_KelTarip = modMain.pbstrgetCol(reader, 0, ref strErr, "");
                    itemKelTarip.intUrutan = Convert.ToInt32(modMain.pbstrgetCol(reader, 1, ref strErr, ""));
                    itemKelTarip.strLapJP = modMain.pbstrgetCol(reader, 2, ref strErr, "");
                    itemKelTarip.strRekapJP = modMain.pbstrgetCol(reader, 3, ref strErr, "");

                    grpKelTarip.Add(itemKelTarip);

                }
            }

            reader.Close();

            intWaktuLoad = 0;
            intPenandaProses = 1;
            tmrWaktuLoad.Enabled = true;
            tmrWaktuLoad.Start();

            /* QUERY KASUM */
            this.strQuerySQL = "SELECT " +
                                    "BL_TRANSAKSI_1.Regbilling, " +                                              //0
                                    "MR_PASIEN.Nama, " +                                                         //1
                                    "MR_TRUANGAN.ruangan, " +                                                    //2
                                    "BL_TRANSAKSI_1.Jumlah, " +                                                  //3
                                    "BL_TRANSAKSI_1.subsidi, " +                                                 //4
                                    "BL_TRANSAKSI_1.tunai, " +                                                   //5
                                    "BL_TRANSAKSIDETAIL_1.Idbl_komponen, " +                                     //6
                                    "BL_TRANSAKSIDETAIL_1.Nilai, " +                                             //7
                                    "BL_TRANSAKSIDETAIL_1.Ringan, " +                                            //8
                                    "BL_KELTARIP.urutan, " +                                                     //9
                                    "BL_KELTARIP.rekapjp," +                                                     //10
                                    "BL_TRANSAKSIDETAIL_1.Nilai - BL_TRANSAKSIDETAIL_1.Ringan as tunainya , " +  //11
                                    "BL_TRANSAKSIDETAIL_1.Noambil, " +                                           //12
                                    "BL_TRANSAKSIDETAIL_1.tglambil, " +                                          //13
                                    "BL_KELTARIP.Idbl_keltarip, " +                                              //14
                                    "BL_KELTARIP.Lapjp, " +                                                      //15
                                    "BL_TRANSAKSI_1.idmr_tsmf, " +                                               //16
                                    "MR_SMFTARIP.idmr_tupf, " +                                                  //17
                                    "BL_TRANSAKSI_1.idbl_tarip, " +                                              //18
                                    "BL_TRANSAKSI_1.uraiantarip, " +                                             //19
                                    "BL_TRANSAKSI_1.jml_kasus_tarip, " +                                         //20
                                    "BL_TRANSAKSI_1.idbl_transaksi, " +                                          //21
                                    "BL_KASUMUM.Idbl_Pembayaran, " +                                             //22
                                    "BL_TRANSAKSI_1.Tgltransaksi, " +                                            //23
                                    "BL_KASUMUM.Tanggal, " +                                                     //24
                                    "BL_TARIP.Idmr_jeniskelas, " +                                               //25
                                    "BL_TRANSAKSI_1.Idmr_truangan, " +                                           //26
                                    "BL_TRANSAKSIDETAIL_1.idmr_dokter, " +                                                  //27
                                    "MR_DOKTER.Nama " +                                                          //28
                               "FROM BL_KELTARIP  With (nolock) "+
                               "INNER JOIN BL_TRANSAKSI_1 " +
                               "INNER JOIN BL_TRANSAKSIDETAIL_1 "+
                                    "ON BL_TRANSAKSI_1.idbl_transaksi = BL_TRANSAKSIDETAIL_1.Idbl_transaksi "+
                               "INNER JOIN BL_TARIP "+
                                    "ON BL_TRANSAKSI_1.idbl_tarip = BL_TARIP.IdBl_tarip "+
                                    "ON BL_KELTARIP.Idbl_keltarip = BL_TARIP.Idbl_keltarip "+
                               "INNER JOIN MR_SMFTARIP "+
                                    "ON BL_TRANSAKSI_1.idmr_tsmf = MR_SMFTARIP.idmr_tsmf "+
                               "INNER JOIN BL_KASUMUM "+
                                    "ON BL_TRANSAKSI_1.idbl_pembayaran = BL_KASUMUM.Idbl_Pembayaran "+
                                    " AND BL_TRANSAKSI_1.idmr_mutasipasien = BL_KASUMUM.idmr_mutasipasien "+
                               "INNER JOIN MR_PASIEN "+
                                    "ON BL_KASUMUM.Idmr_pasien = MR_PASIEN.IDMR_PASIEN "+
                               "INNER JOIN MR_TRUANGAN "+
                                    "ON BL_KASUMUM.Idmr_truangan = MR_TRUANGAN.idmr_truangan "+
                               "LEFT JOIN MR_DOKTER " +
                                    "ON BL_TRANSAKSIDETAIL_1.idmr_dokter = MR_DOKTER.idmr_dokter " +
                               "WHERE (BL_TRANSAKSI_1.Batal <> 'Y') " +
                                    "AND (BL_KASUMUM.Batal = '') " +
                                    " AND (BL_TRANSAKSIDETAIL_1.Idbl_komponen <> 'JASA SARANA') "+
                                    " AND BL_KASUMUM.Tanggal between '" + dtpFilterTgl1.Value.ToString("MM/dd/yyyy 00:00:00") +
                                        "' AND '" + dtpFilterTgl2.Value.ToString("MM/dd/yyyy 23:59:59") +  "' "+
                                    " AND BL_TARIP.pisahsetor = '' "+
                                    " AND BL_TRANSAKSIDETAIL_1.noambil <> 999 "+
                                    " AND BL_TRANSAKSI_1.idmr_tsmf <> 'DARAH' "+
                                    " AND BL_TRANSAKSI_1.idmr_tsmf <> 'PENDORONG'"+
                                    " AND BL_TRANSAKSI_1.idmr_tsmf <> 'OBAT/ALKES-FARMASI' "+
                                    " AND BL_TRANSAKSI_1.idmr_tsmf <> 'OBAT/ALKES-KPRI'"+
                                    " AND BL_TRANSAKSI_1.idbl_pembayaran > 0 "+
                                    " AND BL_KELTARIP.Lapjp <> '-'";

            reader = modDb.pbreaderSQL(conn, strQuerySQL, ref strErr);
            if (strErr != "")
            {
                tmrBlink.Enabled = false;
                tmrBlink.Stop();
                lblInfoPencarian.SafeControlInvoke(Label => lblInfoPencarian.Visible = false);
                modMsg.pvDlgErr(modMsg.IS_DEV, strErr, modMsg.DB_GET, modMsg.TITLE_ERR);
                conn.Close();
                return;
            }

            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    lstKASUM itemKASUM = new lstKASUM();

                    itemKASUM.strRegBilling = modMain.pbstrgetCol(reader, 0, ref strErr, "");
                    itemKASUM.strNama = modMain.pbstrgetCol(reader, 1, ref strErr, "");
                    itemKASUM.strRuangan = modMain.pbstrgetCol(reader, 2, ref strErr, "");
                    itemKASUM.dblJumlah = Convert.ToDouble(modMain.pbstrgetCol(reader, 3, ref strErr, ""));
                    itemKASUM.dblSubsidi = Convert.ToDouble(modMain.pbstrgetCol(reader, 4, ref strErr, ""));
                    itemKASUM.dblTunai = Convert.ToDouble(modMain.pbstrgetCol(reader, 5, ref strErr, ""));
                    itemKASUM.strIdBl_Komponen = modMain.pbstrgetCol(reader, 6, ref strErr, "");
                    itemKASUM.dblNilai = Convert.ToDouble(modMain.pbstrgetCol(reader, 7, ref strErr, ""));
                    itemKASUM.dblRingan = Convert.ToDouble(modMain.pbstrgetCol(reader, 8, ref strErr, ""));
                    itemKASUM.dblUrutan = Convert.ToDouble(modMain.pbstrgetCol(reader, 9, ref strErr, ""));
                    itemKASUM.strRekapJp = modMain.pbstrgetCol(reader, 10, ref strErr, "");
                    itemKASUM.dblTunainya = Convert.ToDouble(modMain.pbstrgetCol(reader, 11, ref strErr, ""));
                    itemKASUM.dblNoAmbil = Convert.ToDouble(modMain.pbstrgetCol(reader, 12, ref strErr, ""));
                    itemKASUM.dtTglAmbil = Convert.ToDateTime(modMain.pbstrgetCol(reader, 13, ref strErr, ""));
                    itemKASUM.strIdBl_KelTarip = modMain.pbstrgetCol(reader, 14, ref strErr, "");
                    itemKASUM.strLapJP = modMain.pbstrgetCol(reader, 15, ref strErr, "");
                    itemKASUM.strIdMR_TSMF = modMain.pbstrgetCol(reader, 16, ref strErr, "");
                    itemKASUM.strIdMR_TUPF = modMain.pbstrgetCol(reader, 17, ref strErr, "");
                    itemKASUM.strIdBl_Tarip = modMain.pbstrgetCol(reader, 18, ref strErr, "");
                    itemKASUM.strUraianTarip = modMain.pbstrgetCol(reader, 19, ref strErr, "");
                    itemKASUM.dblJumlahKasusTarip = Convert.ToDouble(modMain.pbstrgetCol(reader, 20, ref strErr, ""));
                    itemKASUM.strIdBl_Transaksi = modMain.pbstrgetCol(reader, 21, ref strErr, "");
                    itemKASUM.strIdBl_Pembayaran = modMain.pbstrgetCol(reader, 22, ref strErr, "");
                    itemKASUM.dtTglTransaksi = Convert.ToDateTime(modMain.pbstrgetCol(reader, 23, ref strErr, ""));
                    itemKASUM.dtTgl = Convert.ToDateTime(modMain.pbstrgetCol(reader, 24, ref strErr, ""));
                    itemKASUM.strIdMR_JenisKelas = modMain.pbstrgetCol(reader, 25, ref strErr, "");
                    itemKASUM.strIdMR_Ruangan = modMain.pbstrgetCol(reader, 26, ref strErr, "");
                    itemKASUM.strIdMR_Dokter = modMain.pbstrgetCol(reader, 27, ref strErr, "");
                    itemKASUM.strNamaDokter = modMain.pbstrgetCol(reader, 28, ref strErr, "");

                    grpLstKASUM.Add(itemKASUM);
                }
            }

            reader.Close();
            conn.Close();

            if (grpLstKASUM.Count > 0)
            {
                /*JIKA DITEMUKAN DATA PADA grpLstKASUM maka lakukan perhitungan disini*/

                var KasumJP = (from fetch in grpLstKASUM
                               where (fetch.strIdBl_Komponen == "JASA PELAYANAN" && fetch.dblTunainya > 0)
                               group fetch by new
                               {
                                   fetch.strRegBilling,
                                   fetch.strNama,
                                   fetch.strIdBl_Komponen,
                                   fetch.strLapJP,
                                   fetch.strIdMR_TUPF,
                                   fetch.strIdMR_TSMF,
                                   fetch.strRuangan
                                } into groupData
                              select new
                              {
                                  regBilling = groupData.Key.strRegBilling,
                                    Nama = groupData.Key.strNama,
                                    Ruangan = groupData.Key.strRuangan,
                                    TUPF = groupData.Key.strIdMR_TUPF,
                                    IdBl_Komponen = groupData.Key.strIdBl_Komponen,
                                    IdMR_TSMF = groupData.Key.strIdMR_TSMF,
                                    tunainya = groupData.Sum(fetchKasum => fetchKasum.dblTunainya),
                                    LapJP = groupData.Key.strLapJP
                              }).OrderBy(groupData => groupData.regBilling).ToList();

                var KasumJA = (from fetch in grpLstKASUM
                               where (fetch.strIdBl_Komponen != "JASA PELAYANAN" && fetch.dblTunainya > 0)
                               group fetch by new
                               {
                                   fetch.strRegBilling,
                                   fetch.strNama,
                                   fetch.strIdBl_Komponen,
                                   fetch.strLapJP,
                                   fetch.strIdMR_TUPF,
                                   fetch.strIdMR_TSMF,
                                   fetch.strRuangan
                               } into groupData
                               select new
                               {
                                   regBilling = groupData.Key.strRegBilling,
                                   Nama = groupData.Key.strNama,
                                   Ruangan = groupData.Key.strRuangan,
                                   TUPF = groupData.Key.strIdMR_TUPF,
                                   IdBl_Komponen = groupData.Key.strIdBl_Komponen,
                                   IdMR_TSMF = groupData.Key.strIdMR_TSMF,
                                   tunainya = groupData.Sum(fetchKasum => fetchKasum.dblTunainya),
                                   LapJP = groupData.Key.strLapJP
                               }).OrderBy(groupData => groupData.regBilling).ToList();

                var reg = (from fetch in grpLstKASUM
                          select new
                          {
                              Regbilling = fetch.strRegBilling,
                              Nama = fetch.strNama,
                              Ruangan = fetch.strRuangan,
                              idmr_tupf = fetch.strIdMR_TUPF,
                              idmr_tsmf = fetch.strIdMR_TSMF
                          }).Distinct().OrderBy( a => a.Regbilling).ToList();

                if (reg.Count > 0)
                {
                    foreach (var fetch in reg)
                    {
                        lstTransak itemTransak = new lstTransak();
                        itemTransak.strRegbilling = fetch.Regbilling;
                        itemTransak.strNama = fetch.Nama;
                        itemTransak.strRuangan = fetch.Ruangan;
                        itemTransak.strUnit = fetch.idmr_tupf;
                        itemTransak.strSMF = fetch.idmr_tsmf;
                        itemTransak.dblKonsul = 0;
                        itemTransak.dblVisite = 0;
                        itemTransak.dblOperasi = 0;
                        itemTransak.dblTindakan = 0;
                        itemTransak.dblDiagelect = 0;
                        itemTransak.dblPemRK = 0;
                        grpTransak.Add(itemTransak);
                    }
                }

                if (grpTransak.Count > 0)
                {
                    /*JASA PELAYANAN*/
                    foreach (var fetchKasumJP in KasumJP)
                    {

                        if (fetchKasumJP.LapJP.Substring(0, 1) == "1")
                        {
                            int intUrut = 0;
                            foreach (var fetchTransak in grpTransak)
                            {
                                if (fetchTransak.strRegbilling == fetchKasumJP.regBilling
                                    && fetchKasumJP.LapJP.Substring(0, 1) == "1"
                                    && fetchTransak.strRuangan == fetchKasumJP.Ruangan
                                    && fetchTransak.strSMF == fetchKasumJP.IdMR_TSMF)
                                {
                                    grpTransak[intUrut].dblKonsul = grpTransak[intUrut].dblKonsul + fetchKasumJP.tunainya;
                                    //fetchTransak.dblKonsul = fetchTransak.dblKonsul + fetchKasumJP.tunainya;
                                }
                                intUrut++;
                            } /* EOF foreach (var fetchTransak in grpTransak) */
                        } /* EOF if (fetchKasumJP.LapJP.Substring(1, 1) == "1") */

                        else if (fetchKasumJP.LapJP.Substring(0, 1) == "2")
                        {
                            int intUrut = 0;
                            foreach (var fetchTransak in grpTransak)
                            {
                                if (fetchTransak.strRegbilling == fetchKasumJP.regBilling
                                    && fetchKasumJP.LapJP.Substring(0, 1) == "2"
                                    && fetchTransak.strRuangan == fetchKasumJP.Ruangan
                                    && fetchTransak.strSMF == fetchKasumJP.IdMR_TSMF)
                                {
                                    grpTransak[intUrut].dblVisite = grpTransak[intUrut].dblVisite + fetchKasumJP.tunainya;
                                }
                                intUrut++;
                            } /* EOF foreach (var fetchTransak in grpTransak) */

                        } /* EOF else if (fetchKasumJP.LapJP.Substring(1, 1) == "2") */
                        else if (fetchKasumJP.LapJP.Substring(0, 1) == "3")
                        {
                            int intUrut = 0;
                            foreach (var fetchTransak in grpTransak)
                            {
                                if (fetchTransak.strRegbilling == fetchKasumJP.regBilling
                                    && fetchKasumJP.LapJP.Substring(0, 1) == "3"
                                    && fetchTransak.strRuangan == fetchKasumJP.Ruangan
                                    && fetchTransak.strSMF == fetchKasumJP.IdMR_TSMF)
                                {
                                    grpTransak[intUrut].dblOperasi = grpTransak[intUrut].dblOperasi + fetchKasumJP.tunainya;
                                }
                                intUrut++;
                            } /* EOF foreach (var fetchTransak in grpTransak) */

                        } /* EOF else if (fetchKasumJP.LapJP.Substring(1, 1) == "3") */
                        else if (fetchKasumJP.LapJP.Substring(0, 1) == "4")
                        {
                            int intUrut = 0;
                            foreach (var fetchTransak in grpTransak)
                            {
                                if (fetchTransak.strRegbilling == fetchKasumJP.regBilling
                                    && fetchKasumJP.LapJP.Substring(0, 1) == "4"
                                    && fetchTransak.strRuangan == fetchKasumJP.Ruangan
                                    && fetchTransak.strSMF == fetchKasumJP.IdMR_TSMF)
                                {
                                    grpTransak[intUrut].dblTindakan = grpTransak[intUrut].dblTindakan + fetchKasumJP.tunainya;
                                }
                                intUrut++;
                            } /* EOF foreach (var fetchTransak in grpTransak) */

                        } /* EOF else if (fetchKasumJP.LapJP.Substring(1, 1) == "4") */
                        else if (fetchKasumJP.LapJP.Substring(0, 1) == "5")
                        {
                            int intUrut = 0;
                            foreach (var fetchTransak in grpTransak)
                            {
                                if (fetchTransak.strRegbilling == fetchKasumJP.regBilling
                                    && fetchKasumJP.LapJP.Substring(0, 1) == "5"
                                    && fetchTransak.strRuangan == fetchKasumJP.Ruangan
                                    && fetchTransak.strSMF == fetchKasumJP.IdMR_TSMF)
                                {
                                    grpTransak[intUrut].dblDiagelect = grpTransak[intUrut].dblDiagelect + fetchKasumJP.tunainya;
                                }
                                intUrut++;
                            } /* EOF foreach (var fetchTransak in grpTransak) */

                        } /* EOF else if (fetchKasumJP.LapJP.Substring(1, 1) == "5") */
                        else if (fetchKasumJP.LapJP.Substring(0, 1) == "6")
                        {
                            int intUrut = 0;
                            foreach (var fetchTransak in grpTransak)
                            {
                                if (fetchTransak.strRegbilling == fetchKasumJP.regBilling
                                    && fetchKasumJP.LapJP.Substring(0, 1) == "6"
                                    && fetchTransak.strRuangan == fetchKasumJP.Ruangan
                                    && fetchTransak.strSMF == fetchKasumJP.IdMR_TSMF)
                                {
                                    grpTransak[intUrut].dblPemRK = grpTransak[intUrut].dblPemRK + fetchKasumJP.tunainya;
                                }
                                intUrut++;
                            } /* EOF foreach (var fetchTransak in grpTransak) */

                        } /* EOF else if (fetchKasumJP.LapJP.Substring(1, 1) == "6") */

                        /* 2 SAMPAI 6 */

                    } /* EOF foreach (var fetchKasumJP in KasumJP) */

                    /*JASA ANASTHESI*/

                    if (KasumJA.Count > 0)
                    {
                        foreach (var fetchKasumJA in KasumJA)
                        {

                            lstTransak itemTransak = new lstTransak();
                            itemTransak.strRegbilling = fetchKasumJA.regBilling;
                            itemTransak.strNama = fetchKasumJA.Nama;
                            itemTransak.strRuangan = fetchKasumJA.Ruangan;
                            itemTransak.strUnit = "ANASTHESI";
                            itemTransak.strSMF = fetchKasumJA.IdMR_TSMF;
                            itemTransak.dblKonsul = 0;
                            itemTransak.dblVisite = 0;
                            itemTransak.dblOperasi = fetchKasumJA.tunainya;
                            itemTransak.dblTindakan = 0;
                            itemTransak.dblDiagelect = 0;
                            itemTransak.dblPemRK = 0;

                            grpTransak.Add(itemTransak);

                        } /* EOF foreach (var fetchKasumJA in KasumJA) */
                    }

                } /* EOF if (grpTransak.Count > 0) */

            } /* EOF if(grpLstKasum.Count > 0) */

            intWaktuLoad = 0;
            intPenandaProses = 2;

            ///* QUERY ASKESGAKIN*/
            //this.strQuerySQL = " SELECT  " +
            //                        "BL_TRANSAKSI.Regbilling, " +                                            //0
            //                        "MR_PASIEN.Nama, " +                                                     //1
            //                        "MR_TRUANGAN.ruangan, " +                                                //2
            //                        "BL_TRANSAKSI.Jumlah, " +                                                //3
            //                        "BL_TRANSAKSI.subsidi, " +                                               //4
            //                        "BL_TRANSAKSI.tunai, " +                                                 //5
            //                        "BL_TRANSAKSIDETAIL.Idbl_komponen, " +                                   //6
            //                        "BL_TRANSAKSIDETAIL.Nilai, " +                                           //7
            //                        "BL_TRANSAKSIDETAIL.Ringan, " +                                          //8
            //                        "BL_KELTARIP.urutan, " +                                                 //9
            //                        "BL_KELTARIP.rekapjp," +                                                 //10
            //                        "BL_TRANSAKSIDETAIL.Nilai - BL_TRANSAKSIDETAIL.Ringan as tunainya , " +  //11
            //                        "BL_TRANSAKSIDETAIL.Noambil, " +                                         //12
            //                        "BL_TRANSAKSIDETAIL.tglambil, " +                                        //13
            //                        "BL_KELTARIP.Idbl_keltarip, " +                                          //14
            //                        "BL_KELTARIP.Lapjp, " +                                                  //15
            //                        "BL_TRANSAKSI.idmr_tsmf, " +                                             //16
            //                        "MR_SMFTARIP.idmr_tupf, " +                                              //17
            //                        "BL_TRANSAKSI.idbl_tarip, " +                                            //18
            //                        "BL_TRANSAKSI.uraiantarip, " +                                           //19
            //                        "BL_TRANSAKSI.jml_kasus_tarip, " +                                       //20
            //                        "BL_TRANSAKSI.idbl_transaksi, " +                                        //21
            //                        "BL_KASASKES.Idbl_Pembayaran, " +                                        //22
            //                        "BL_TRANSAKSI.Tgltransaksi, " +                                          //23
            //                        "BL_KASASKES.Tanggal, " +                                                //24
            //                        "BL_TARIP.Idmr_jeniskelas, " +                                           //25
            //                        "BL_TRANSAKSI.Idmr_truangan, " +                                         //26
            //                        "BL_TRANSAKSIDETAIL.Idmr_dokter, " +                                             //27
            //                        "MR_DOKTER.Nama " +                                                     //28
            //                   " FROM BL_KELTARIP With (nolock)  " +
            //                   " INNER JOIN BL_TRANSAKSI " +
            //                   " INNER JOIN BL_TRANSAKSIDETAIL " +
            //                        "ON BL_TRANSAKSI.idbl_transaksi = BL_TRANSAKSIDETAIL.Idbl_transaksi " +
            //                   " INNER JOIN BL_TARIP " +
            //                        "ON BL_TRANSAKSI.idbl_tarip = BL_TARIP.IdBl_tarip " +
            //                        "ON BL_KELTARIP.Idbl_keltarip = BL_TARIP.Idbl_keltarip " +
            //                   " INNER JOIN MR_SMFTARIP " +
            //                        "ON BL_TRANSAKSI.idmr_tsmf = MR_SMFTARIP.idmr_tsmf " +
            //                   " INNER JOIN BL_KASASKES " +
            //                        "ON BL_TRANSAKSI.idbl_pembayaran = BL_KASASKES.Idbl_Pembayaran " +
            //                            "AND BL_TRANSAKSI.idmr_mutasipasien = BL_KASASKES.idmr_mutasipasien " +
            //                   " INNER JOIN MR_PASIEN " +
            //                        "ON BL_KASASKES.Idmr_pasien = MR_PASIEN.IDMR_PASIEN " +
            //                   " INNER JOIN MR_TRUANGAN " +
            //                        "ON BL_KASASKES.Idmr_truangan = MR_TRUANGAN.idmr_truangan " +
            //                   " INNER JOIN MR_SJASKES " +
            //                        "ON BL_KASASKES.idmr_mutasipasien = MR_SJASKES.idmr_mutasipasien " +
            //                   "INNER JOIN MR_DOKTER " +
            //                        "ON MR_DOKTER.Idmr_dokter = BL_TRANSAKSIDETAIL.Idmr_dokter " +
            //                   " WHERE (BL_TRANSAKSI.Batal <> 'Y') " +
            //                      " AND (BL_KASASKES.Batal = '') " +
            //                      " AND (MR_SJASKES.BATAL = '') " +
            //                      " AND MR_SJASKES.idmr_tstatus = 'ASKESGAKIN' " +
            //                      " AND (BL_TRANSAKSIDETAIL.Idbl_komponen <> 'JASA SARANA') " +
            //                      " AND BL_KASASKES.Tanggal BETWEEN '" + dtpFilterTgl1.Value.ToString("MM/dd/yyyy 00:00:00") +
            //                        "' and '" + dtpFilterTgl2.Value.ToString("MM/dd/yyyy 23:59:59") + "' " +
            //                      " AND BL_TARIP.pisahsetor = '' AND BL_KASASKES.jumlah > 0 " +
            //                      " AND BL_TRANSAKSIDETAIL.noambil <> 999 " +
            //                      " AND BL_TRANSAKSI.idmr_tsmf <> 'DARAH' and BL_TRANSAKSI.idmr_tsmf <> 'PENDORONG'" +
            //                      " AND BL_TRANSAKSI.idmr_tsmf <> 'OBAT/ALKES-FARMASI' " +
            //                      " AND BL_TRANSAKSI.idmr_tsmf <> 'OBAT/ALKES-KPRI'" +
            //                      " AND BL_TRANSAKSI.idbl_pembayaran > 0 AND BL_KELTARIP.Lapjp <> '-'";

            //conn = modDb.pbconnKoneksiSQL(ref strErr);
            //if (strErr != "")
            //{
            //    tmrBlink.Enabled = false;
            //    tmrBlink.Stop();
            //    lblInfoPencarian.SafeControlInvoke(Label => lblInfoPencarian.Visible = false);
            //    modMsg.pvDlgErr(modMsg.IS_DEV, strErr, modMsg.DB_CON, modMsg.TITLE_ERR);
            //    return;
            //}

            //reader = modDb.pbreaderSQL(conn, strQuerySQL, ref strErr);
            //if (strErr != "")
            //{
            //    tmrBlink.Enabled = false;
            //    tmrBlink.Stop();
            //    lblInfoPencarian.SafeControlInvoke(Label => lblInfoPencarian.Visible = false);
            //    modMsg.pvDlgErr(modMsg.IS_DEV, strErr, modMsg.DB_GET, modMsg.TITLE_ERR);
            //    conn.Close();
            //    return;
            //}

            //if (reader.HasRows)
            //{
            //    while (reader.Read())
            //    {
            //        lstKASASKIN itemKASASKIN = new lstKASASKIN();

            //        itemKASASKIN.strRegBilling = modMain.pbstrgetCol(reader, 0, ref strErr, "");
            //        itemKASASKIN.strNama = modMain.pbstrgetCol(reader, 1, ref strErr, "");
            //        itemKASASKIN.strRuangan = modMain.pbstrgetCol(reader, 2, ref strErr, "");
            //        itemKASASKIN.dblJumlah = Convert.ToDouble(modMain.pbstrgetCol(reader, 3, ref strErr, ""));
            //        itemKASASKIN.dblSubsidi = Convert.ToDouble(modMain.pbstrgetCol(reader, 4, ref strErr, ""));
            //        itemKASASKIN.dblTunai = Convert.ToDouble(modMain.pbstrgetCol(reader, 5, ref strErr, ""));
            //        itemKASASKIN.strIdBl_Komponen = modMain.pbstrgetCol(reader, 6, ref strErr, "");
            //        itemKASASKIN.dblNilai = Convert.ToDouble(modMain.pbstrgetCol(reader, 7, ref strErr, ""));
            //        itemKASASKIN.dblRingan = Convert.ToDouble(modMain.pbstrgetCol(reader, 8, ref strErr, ""));
            //        itemKASASKIN.dblUrutan = Convert.ToDouble(modMain.pbstrgetCol(reader, 9, ref strErr, ""));
            //        itemKASASKIN.strRekapJp = modMain.pbstrgetCol(reader, 10, ref strErr, "");
            //        itemKASASKIN.dblTunainya = Convert.ToDouble(modMain.pbstrgetCol(reader, 11, ref strErr, ""));
            //        itemKASASKIN.dblNoAmbil = Convert.ToDouble(modMain.pbstrgetCol(reader, 12, ref strErr, ""));
            //        itemKASASKIN.dtTglAmbil = Convert.ToDateTime(modMain.pbstrgetCol(reader, 13, ref strErr, ""));
            //        itemKASASKIN.strIdBl_KelTarip = modMain.pbstrgetCol(reader, 14, ref strErr, "");
            //        itemKASASKIN.strLapJP = modMain.pbstrgetCol(reader, 15, ref strErr, "");
            //        itemKASASKIN.strIdMR_TSMF = modMain.pbstrgetCol(reader, 16, ref strErr, "");
            //        itemKASASKIN.strIdMR_TUPF = modMain.pbstrgetCol(reader, 17, ref strErr, "");
            //        itemKASASKIN.strIdBl_Tarip = modMain.pbstrgetCol(reader, 18, ref strErr, "");
            //        itemKASASKIN.strUraianTarip = modMain.pbstrgetCol(reader, 19, ref strErr, "");
            //        itemKASASKIN.dblJumlahKasusTarip = Convert.ToDouble(modMain.pbstrgetCol(reader, 20, ref strErr, ""));
            //        itemKASASKIN.strIdBl_Transaksi = modMain.pbstrgetCol(reader, 21, ref strErr, "");
            //        itemKASASKIN.strIdBl_Pembayaran = modMain.pbstrgetCol(reader, 22, ref strErr, "");
            //        itemKASASKIN.dtTglTransaksi = Convert.ToDateTime(modMain.pbstrgetCol(reader, 23, ref strErr, ""));
            //        itemKASASKIN.dtTgl = Convert.ToDateTime(modMain.pbstrgetCol(reader, 24, ref strErr, ""));
            //        itemKASASKIN.strIdMR_JenisKelas = modMain.pbstrgetCol(reader, 25, ref strErr, "");
            //        itemKASASKIN.strIdMR_Ruangan = modMain.pbstrgetCol(reader, 26, ref strErr, "");
            //        itemKASASKIN.strIdMR_Dokter = modMain.pbstrgetCol(reader, 27, ref strErr, "");
            //        itemKASASKIN.strNamaDokter = modMain.pbstrgetCol(reader, 28, ref strErr, "");

            //        grpLstKASASKIN.Add(itemKASASKIN);
            //    }
            //}
            //reader.Close();
            //conn.Close();

            ////MessageBox.Show(grpLstKASASKIN.Count.ToString());

            //if (grpLstKASASKIN.Count > 0)
            //{

            //    var KaskinJP = (from fetch in grpLstKASASKIN
            //                   where (fetch.strIdBl_Komponen == "JASA PELAYANAN" && fetch.dblTunainya > 0)
            //                   group fetch by new
            //                   {
            //                       fetch.strRegBilling,
            //                       fetch.strNama,
            //                       fetch.strIdBl_Komponen,
            //                       fetch.strLapJP,
            //                       fetch.strIdMR_TUPF,
            //                       fetch.strIdMR_TSMF,
            //                       fetch.strRuangan
            //                   } into groupData
            //                   select new
            //                   {
            //                       regBilling = groupData.Key.strRegBilling,
            //                       Nama = groupData.Key.strNama,
            //                       Ruangan = groupData.Key.strRuangan,
            //                       TUPF = groupData.Key.strIdMR_TUPF,
            //                       IdBl_Komponen = groupData.Key.strIdBl_Komponen,
            //                       IdMR_TSMF = groupData.Key.strIdMR_TSMF,
            //                       tunainya = groupData.Sum(fetchKasum => fetchKasum.dblTunainya),
            //                       LapJP = groupData.Key.strLapJP
            //                   }).OrderBy(groupData => groupData.regBilling).ToList();

            //    var KaskinJA = (from fetch in grpLstKASASKIN
            //                   where (fetch.strIdBl_Komponen != "JASA PELAYANAN" && fetch.dblTunainya > 0)
            //                   group fetch by new
            //                   {
            //                       fetch.strRegBilling,
            //                       fetch.strNama,
            //                       fetch.strIdBl_Komponen,
            //                       fetch.strLapJP,
            //                       fetch.strIdMR_TUPF,
            //                       fetch.strIdMR_TSMF,
            //                       fetch.strRuangan
            //                   } into groupData
            //                   select new
            //                   {
            //                       regBilling = groupData.Key.strRegBilling,
            //                       Nama = groupData.Key.strNama,
            //                       Ruangan = groupData.Key.strRuangan,
            //                       TUPF = groupData.Key.strIdMR_TUPF,
            //                       IdBl_Komponen = groupData.Key.strIdBl_Komponen,
            //                       IdMR_TSMF = groupData.Key.strIdMR_TSMF,
            //                       tunainya = groupData.Sum(fetchKasum => fetchKasum.dblTunainya),
            //                       LapJP = groupData.Key.strLapJP
            //                   }).OrderBy(groupData => groupData.regBilling).ToList();

            //    var reg = (from fetch in grpLstKASASKIN
            //               select new
            //               {
            //                   Regbilling = fetch.strRegBilling,
            //                   Nama = fetch.strNama,
            //                   Ruangan = fetch.strRuangan,
            //                   idmr_tupf = fetch.strIdMR_TUPF,
            //                   idmr_tsmf = fetch.strIdMR_TSMF
            //               }).Distinct().OrderBy(a => a.Regbilling).ToList();

            //    if (reg.Count > 0)
            //    {
            //        foreach (var fetch in reg)
            //        {
            //            lstTransak itemTransak = new lstTransak();
            //            itemTransak.strRegbilling = fetch.Regbilling;
            //            itemTransak.strNama = fetch.Nama;
            //            itemTransak.strRuangan = fetch.Ruangan;
            //            itemTransak.strUnit = fetch.idmr_tupf;
            //            itemTransak.strSMF = fetch.idmr_tsmf;
            //            itemTransak.dblKonsul = 0;
            //            itemTransak.dblVisite = 0;
            //            itemTransak.dblOperasi = 0;
            //            itemTransak.dblTindakan = 0;
            //            itemTransak.dblDiagelect = 0;
            //            itemTransak.dblPemRK = 0;
            //            grpTransak.Add(itemTransak);
            //        }
            //    }

            //    if (grpTransak.Count > 0)
            //    {
            //        /*JASA PELAYANAN*/
            //        foreach (var fetch in KaskinJP)
            //        {

            //            if (fetch.LapJP.Substring(0, 1) == "1")
            //            {
            //                int intUrut = 0;
            //                foreach (var fetchTransak in grpTransak)
            //                {
            //                    if (fetchTransak.strRegbilling == fetch.regBilling
            //                        && fetch.LapJP.Substring(0, 1) == "1"
            //                        && fetchTransak.strRuangan == fetch.Ruangan
            //                        && fetchTransak.strSMF == fetch.IdMR_TSMF)
            //                    {
            //                        grpTransak[intUrut].dblKonsul = grpTransak[intUrut].dblKonsul + fetch.tunainya;
            //                        //fetchTransak.dblKonsul = fetchTransak.dblKonsul + fetchKasumJP.tunainya;
            //                    }
            //                    intUrut++;
            //                } /* EOF foreach (var fetchTransak in grpTransak) */
            //            } /* EOF if (fetchKasumJP.LapJP.Substring(1, 1) == "1") */

            //            else if (fetch.LapJP.Substring(0, 1) == "2")
            //            {
            //                int intUrut = 0;
            //                foreach (var fetchTransak in grpTransak)
            //                {
            //                    if (fetchTransak.strRegbilling == fetch.regBilling
            //                        && fetch.LapJP.Substring(0, 1) == "2"
            //                        && fetchTransak.strRuangan == fetch.Ruangan
            //                        && fetchTransak.strSMF == fetch.IdMR_TSMF)
            //                    {
            //                        grpTransak[intUrut].dblVisite = grpTransak[intUrut].dblVisite + fetch.tunainya;
            //                    }
            //                    intUrut++;
            //                } /* EOF foreach (var fetchTransak in grpTransak) */

            //            } /* EOF else if (fetchKasumJP.LapJP.Substring(1, 1) == "2") */
            //            else if (fetch.LapJP.Substring(0, 1) == "3")
            //            {
            //                int intUrut = 0;
            //                foreach (var fetchTransak in grpTransak)
            //                {
            //                    if (fetchTransak.strRegbilling == fetch.regBilling
            //                        && fetch.LapJP.Substring(0, 1) == "3"
            //                        && fetchTransak.strRuangan == fetch.Ruangan
            //                        && fetchTransak.strSMF == fetch.IdMR_TSMF)
            //                    {
            //                        grpTransak[intUrut].dblOperasi = grpTransak[intUrut].dblOperasi + fetch.tunainya;
            //                    }
            //                    intUrut++;
            //                } /* EOF foreach (var fetchTransak in grpTransak) */

            //            } /* EOF else if (fetchKasumJP.LapJP.Substring(1, 1) == "3") */
            //            else if (fetch.LapJP.Substring(0, 1) == "4")
            //            {
            //                int intUrut = 0;
            //                foreach (var fetchTransak in grpTransak)
            //                {
            //                    if (fetchTransak.strRegbilling == fetch.regBilling
            //                        && fetch.LapJP.Substring(0, 1) == "4"
            //                        && fetchTransak.strRuangan == fetch.Ruangan
            //                        && fetchTransak.strSMF == fetch.IdMR_TSMF)
            //                    {
            //                        grpTransak[intUrut].dblTindakan = grpTransak[intUrut].dblTindakan + fetch.tunainya;
            //                    }
            //                    intUrut++;
            //                } /* EOF foreach (var fetchTransak in grpTransak) */

            //            } /* EOF else if (fetchKasumJP.LapJP.Substring(1, 1) == "4") */
            //            else if (fetch.LapJP.Substring(0, 1) == "5")
            //            {
            //                int intUrut = 0;
            //                foreach (var fetchTransak in grpTransak)
            //                {
            //                    if (fetchTransak.strRegbilling == fetch.regBilling
            //                        && fetch.LapJP.Substring(0, 1) == "5"
            //                        && fetchTransak.strRuangan == fetch.Ruangan
            //                        && fetchTransak.strSMF == fetch.IdMR_TSMF)
            //                    {
            //                        grpTransak[intUrut].dblDiagelect = grpTransak[intUrut].dblDiagelect + fetch.tunainya;
            //                    }
            //                    intUrut++;
            //                } /* EOF foreach (var fetchTransak in grpTransak) */

            //            } /* EOF else if (fetchKasumJP.LapJP.Substring(1, 1) == "5") */
            //            else if (fetch.LapJP.Substring(0, 1) == "6")
            //            {
            //                int intUrut = 0;
            //                foreach (var fetchTransak in grpTransak)
            //                {
            //                    if (fetchTransak.strRegbilling == fetch.regBilling
            //                        && fetch.LapJP.Substring(0, 1) == "6"
            //                        && fetchTransak.strRuangan == fetch.Ruangan
            //                        && fetchTransak.strSMF == fetch.IdMR_TSMF)
            //                    {
            //                        grpTransak[intUrut].dblPemRK = grpTransak[intUrut].dblPemRK + fetch.tunainya;
            //                    }
            //                    intUrut++;
            //                } /* EOF foreach (var fetchTransak in grpTransak) */

            //            } /* EOF else if (fetchKasumJP.LapJP.Substring(1, 1) == "6") */

            //            /* 2 SAMPAI 6 */

            //        } /* EOF foreach (var fetchKasumJP in KasumJP) */

            //        /*JASA ANASTHESI*/
            //        foreach (var fetch in KaskinJA)
            //        {

            //            lstTransak itemTransak = new lstTransak();
            //            itemTransak.strRegbilling = fetch.regBilling;
            //            itemTransak.strNama = fetch.Nama;
            //            itemTransak.strRuangan = fetch.Ruangan;
            //            itemTransak.strUnit = "ANASTHESI";
            //            itemTransak.strSMF = fetch.IdMR_TSMF;
            //            itemTransak.dblKonsul = 0;
            //            itemTransak.dblVisite = 0;
            //            itemTransak.dblOperasi = fetch.tunainya;
            //            itemTransak.dblTindakan = 0;
            //            itemTransak.dblDiagelect = 0;
            //            itemTransak.dblPemRK = 0;

            //            grpTransak.Add(itemTransak);

            //        } /* EOF foreach (var fetchKasumJA in KasumJA) */

            //    } /* EOF if (grpTransak.Count > 0) */

            //} /* EOF  if (grpLstKASASKIN.Count > 0) */

            intWaktuLoad = 0;
            intPenandaProses = 3;

            /* QUERY ASKES JAMKESMAS*/
            this.strQuerySQL = "SELECT  " +
                                    "BL_TRANSAKSI.Regbilling, " +                                            //0
                                    "MR_PASIEN.Nama, " +                                                     //1
                                    "MR_TRUANGAN.ruangan, " +                                                //2
                                    "BL_TRANSAKSI.Jumlah, " +                                                //3
                                    "BL_TRANSAKSI.subsidi, " +                                               //4
                                    "BL_TRANSAKSI.tunai, " +                                                 //5
                                    "BL_TRANSAKSIDETAIL.Idbl_komponen, " +                                   //6
                                    "BL_TRANSAKSIDETAIL.Nilai, " +                                           //7
                                    "BL_TRANSAKSIDETAIL.Ringan, " +                                          //8
                                    "BL_KELTARIP.urutan, " +                                                 //9
                                    "BL_KELTARIP.rekapjp," +                                                 //10
                                    "BL_TRANSAKSIDETAIL.Nilai - BL_TRANSAKSIDETAIL.Ringan as tunainya , " +  //11
                                    "BL_TRANSAKSIDETAIL.Noambil," +                                          //12
                                    "BL_TRANSAKSIDETAIL.tglambil, " +                                        //13
                                    "BL_KELTARIP.Idbl_keltarip, " +                                          //14
                                    "BL_KELTARIP.Lapjp, " +                                                  //15
                                    "BL_TRANSAKSI.idmr_tsmf, " +                                             //16
                                    "MR_SMFTARIP.idmr_tupf, " +                                              //17
                                    "BL_TRANSAKSI.idbl_tarip, " +                                            //18
                                    "BL_TRANSAKSI.uraiantarip, " +                                           //19
                                    "BL_TRANSAKSI.jml_kasus_tarip, " +                                       //20
                                    "BL_TRANSAKSI.idbl_transaksi, " +                                        //21
                                    "BL_KASASKES.Idbl_Pembayaran, " +                                        //22
                                    "BL_TRANSAKSI.Tgltransaksi, " +                                          //23
                                    "BL_KASASKES.Tanggal, " +                                                //24
                                    "BL_TARIP.Idmr_jeniskelas, " +                                           //25
                                    "BL_TRANSAKSI.Idmr_truangan, " +                                         //26
                                    "MR_DOKTER.Idmr_dokter, " +                                             //27
                                    "MR_DOKTER.Nama " +                                                     //28
                               "FROM BL_KELTARIP With (nolock)  " +
                               "INNER JOIN BL_TRANSAKSI " +
                               "INNER JOIN BL_TRANSAKSIDETAIL " +
                                    "ON BL_TRANSAKSI.idbl_transaksi = BL_TRANSAKSIDETAIL.Idbl_transaksi " +
                               "INNER JOIN BL_TARIP " +
                                    "ON BL_TRANSAKSI.idbl_tarip = BL_TARIP.IdBl_tarip " +
                                    "ON BL_KELTARIP.Idbl_keltarip = BL_TARIP.Idbl_keltarip " +
                               "INNER JOIN MR_SMFTARIP " +
                                    "ON BL_TRANSAKSI.idmr_tsmf = MR_SMFTARIP.idmr_tsmf " +
                               "INNER JOIN BL_KASASKES " +
                                    "ON BL_TRANSAKSI.idbl_pembayaran = BL_KASASKES.Idbl_Pembayaran " +
                                    "AND BL_TRANSAKSI.idmr_mutasipasien = BL_KASASKES.idmr_mutasipasien " +
                               "INNER JOIN MR_PASIEN " +
                                    "ON BL_KASASKES.Idmr_pasien = MR_PASIEN.IDMR_PASIEN " +
                               "INNER JOIN MR_TRUANGAN " +
                                    "ON BL_KASASKES.Idmr_truangan = MR_TRUANGAN.idmr_truangan " +
                               "INNER JOIN MR_SJASKES " +
                                    "ON BL_KASASKES.idmr_mutasipasien = MR_SJASKES.idmr_mutasipasien " +
                               "INNER JOIN MR_DOKTER " +
                                    "ON MR_DOKTER.Idmr_dokter = BL_TRANSAKSIDETAIL.Idmr_dokter " +
                               "WHERE (BL_TRANSAKSI.Batal <> 'Y') AND (BL_KASASKES.Batal = '') " +
                                  " AND (MR_SJASKES.BATAL = '') AND MR_SJASKES.idmr_tstatus = 'ASKESJAMKESMAS' " +
                                  " AND (BL_TRANSAKSIDETAIL.Idbl_komponen <> 'JASA SARANA') " +
                                  " AND BL_KASASKES.Tanggal between '" + dtpFilterTgl1.Value.ToString("MM/dd/yyyy 00:00:00") +
                                    "' AND '" + dtpFilterTgl2.Value.ToString("MM/dd/yyyy 23:59:59") + "' " +
                                  " AND BL_TARIP.pisahsetor = '' and BL_KASASKES.jumlah > 0 " +
                                  " AND BL_TRANSAKSIDETAIL.noambil <> 999 " +
                                  " AND BL_TRANSAKSI.idmr_tsmf <> 'DARAH' AND BL_TRANSAKSI.idmr_tsmf <> 'PENDORONG'" +
                                  " AND BL_TRANSAKSI.idmr_tsmf <> 'OBAT/ALKES-FARMASI' " +
                                  " AND BL_TRANSAKSI.idmr_tsmf <> 'OBAT/ALKES-KPRI'" +
                                  " AND BL_TRANSAKSI.idbl_pembayaran > 0 and BL_KELTARIP.Lapjp <> '-'";

            conn = modDb.pbconnKoneksiSQL(ref strErr);
            if (strErr != "")
            {
                tmrBlink.Enabled = false;
                tmrBlink.Stop();
                lblInfoPencarian.SafeControlInvoke(Label => lblInfoPencarian.Visible = false);
                modMsg.pvDlgErr(modMsg.IS_DEV, strErr, modMsg.DB_CON, modMsg.TITLE_ERR);
                return;
            }

            reader = modDb.pbreaderSQL(conn, strQuerySQL, ref strErr);
            if (strErr != "")
            {
                tmrBlink.Enabled = false;
                tmrBlink.Stop();
                lblInfoPencarian.SafeControlInvoke(Label => lblInfoPencarian.Visible = false);
                modMsg.pvDlgErr(modMsg.IS_DEV, strErr, modMsg.DB_GET, modMsg.TITLE_ERR);
                conn.Close();
                return;
            }

            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    lstKASJKM itemKASJKM = new lstKASJKM();

                    itemKASJKM.strRegBilling = modMain.pbstrgetCol(reader, 0, ref strErr, "");
                    itemKASJKM.strNama = modMain.pbstrgetCol(reader, 1, ref strErr, "");
                    itemKASJKM.strRuangan = modMain.pbstrgetCol(reader, 2, ref strErr, "");
                    itemKASJKM.dblJumlah = Convert.ToDouble(modMain.pbstrgetCol(reader, 3, ref strErr, ""));
                    itemKASJKM.dblSubsidi = Convert.ToDouble(modMain.pbstrgetCol(reader, 4, ref strErr, ""));
                    itemKASJKM.dblTunai = Convert.ToDouble(modMain.pbstrgetCol(reader, 5, ref strErr, ""));
                    itemKASJKM.strIdBl_Komponen = modMain.pbstrgetCol(reader, 6, ref strErr, "");
                    itemKASJKM.dblNilai = Convert.ToDouble(modMain.pbstrgetCol(reader, 7, ref strErr, ""));
                    itemKASJKM.dblRingan = Convert.ToDouble(modMain.pbstrgetCol(reader, 8, ref strErr, ""));
                    itemKASJKM.dblUrutan = Convert.ToDouble(modMain.pbstrgetCol(reader, 9, ref strErr, ""));
                    itemKASJKM.strRekapJp = modMain.pbstrgetCol(reader, 10, ref strErr, "");
                    itemKASJKM.dblTunainya = Convert.ToDouble(modMain.pbstrgetCol(reader, 11, ref strErr, ""));
                    itemKASJKM.dblNoAmbil = Convert.ToDouble(modMain.pbstrgetCol(reader, 12, ref strErr, ""));
                    itemKASJKM.dtTglAmbil = Convert.ToDateTime(modMain.pbstrgetCol(reader, 13, ref strErr, ""));
                    itemKASJKM.strIdBl_KelTarip = modMain.pbstrgetCol(reader, 14, ref strErr, "");
                    itemKASJKM.strLapJP = modMain.pbstrgetCol(reader, 15, ref strErr, "");
                    itemKASJKM.strIdMR_TSMF = modMain.pbstrgetCol(reader, 16, ref strErr, "");
                    itemKASJKM.strIdMR_TUPF = modMain.pbstrgetCol(reader, 17, ref strErr, "");
                    itemKASJKM.strIdBl_Tarip = modMain.pbstrgetCol(reader, 18, ref strErr, "");
                    itemKASJKM.strUraianTarip = modMain.pbstrgetCol(reader, 19, ref strErr, "");
                    itemKASJKM.dblJumlahKasusTarip = Convert.ToDouble(modMain.pbstrgetCol(reader, 20, ref strErr, ""));
                    itemKASJKM.strIdBl_Transaksi = modMain.pbstrgetCol(reader, 21, ref strErr, "");
                    itemKASJKM.strIdBl_Pembayaran = modMain.pbstrgetCol(reader, 22, ref strErr, "");
                    itemKASJKM.dtTglTransaksi = Convert.ToDateTime(modMain.pbstrgetCol(reader, 23, ref strErr, ""));
                    itemKASJKM.dtTgl = Convert.ToDateTime(modMain.pbstrgetCol(reader, 24, ref strErr, ""));
                    itemKASJKM.strIdMR_JenisKelas = modMain.pbstrgetCol(reader, 25, ref strErr, "");
                    itemKASJKM.strIdMR_Ruangan = modMain.pbstrgetCol(reader, 26, ref strErr, "");
                    itemKASJKM.strIdMR_Dokter = modMain.pbstrgetCol(reader, 27, ref strErr, "");
                    itemKASJKM.strNamaDokter = modMain.pbstrgetCol(reader, 28, ref strErr, "");

                    grpLstKASJKM.Add(itemKASJKM);
                }
            }

            reader.Close();
            conn.Close();

            if (grpLstKASJKM.Count > 0)
            {

                var KasJKMJP = (from fetch in grpLstKASJKM
                                where (fetch.strIdBl_Komponen == "JASA PELAYANAN" && fetch.dblTunainya > 0)
                                group fetch by new
                                {
                                    fetch.strRegBilling,
                                    fetch.strNama,
                                    fetch.strIdBl_Komponen,
                                    fetch.strLapJP,
                                    fetch.strIdMR_TUPF,
                                    fetch.strIdMR_TSMF,
                                    fetch.strRuangan
                                } into groupData
                                select new
                                {
                                    regBilling = groupData.Key.strRegBilling,
                                    Nama = groupData.Key.strNama,
                                    Ruangan = groupData.Key.strRuangan,
                                    TUPF = groupData.Key.strIdMR_TUPF,
                                    IdBl_Komponen = groupData.Key.strIdBl_Komponen,
                                    IdMR_TSMF = groupData.Key.strIdMR_TSMF,
                                    tunainya = groupData.Sum(fetchKasum => fetchKasum.dblTunainya),
                                    LapJP = groupData.Key.strLapJP
                                }).OrderBy(groupData => groupData.regBilling).ToList();

                var KasJKMJA = (from fetch in grpLstKASJKM
                                where (fetch.strIdBl_Komponen != "JASA PELAYANAN" && fetch.dblTunainya > 0)
                                group fetch by new
                                {
                                    fetch.strRegBilling,
                                    fetch.strNama,
                                    fetch.strIdBl_Komponen,
                                    fetch.strLapJP,
                                    fetch.strIdMR_TUPF,
                                    fetch.strIdMR_TSMF,
                                    fetch.strRuangan
                                } into groupData
                                select new
                                {
                                    regBilling = groupData.Key.strRegBilling,
                                    Nama = groupData.Key.strNama,
                                    Ruangan = groupData.Key.strRuangan,
                                    TUPF = groupData.Key.strIdMR_TUPF,
                                    IdBl_Komponen = groupData.Key.strIdBl_Komponen,
                                    IdMR_TSMF = groupData.Key.strIdMR_TSMF,
                                    tunainya = groupData.Sum(fetchKasum => fetchKasum.dblTunainya),
                                    LapJP = groupData.Key.strLapJP
                                }).OrderBy(groupData => groupData.regBilling).ToList();

                var reg = (from fetch in grpLstKASJKM
                           select new
                           {
                               Regbilling = fetch.strRegBilling,
                               Nama = fetch.strNama,
                               Ruangan = fetch.strRuangan,
                               idmr_tupf = fetch.strIdMR_TUPF,
                               idmr_tsmf = fetch.strIdMR_TSMF
                           }).Distinct().OrderBy(a => a.Regbilling).ToList();

                if (reg.Count > 0)
                {
                    foreach (var fetch in reg)
                    {
                        lstTransak itemTransak = new lstTransak();
                        itemTransak.strRegbilling = fetch.Regbilling;
                        itemTransak.strNama = fetch.Nama;
                        itemTransak.strRuangan = fetch.Ruangan;
                        itemTransak.strUnit = fetch.idmr_tupf;
                        itemTransak.strSMF = fetch.idmr_tsmf;
                        itemTransak.dblKonsul = 0;
                        itemTransak.dblVisite = 0;
                        itemTransak.dblOperasi = 0;
                        itemTransak.dblTindakan = 0;
                        itemTransak.dblDiagelect = 0;
                        itemTransak.dblPemRK = 0;
                        grpTransak.Add(itemTransak);
                    }
                }

                if (grpTransak.Count > 0)
                {
                    /*JASA PELAYANAN*/
                    foreach (var fetch in KasJKMJP)
                    {

                        if (fetch.LapJP.Substring(0, 1) == "1")
                        {
                            int intUrut = 0;
                            foreach (var fetchTransak in grpTransak)
                            {
                                if (fetchTransak.strRegbilling == fetch.regBilling
                                    && fetch.LapJP.Substring(0, 1) == "1"
                                    && fetchTransak.strRuangan == fetch.Ruangan
                                    && fetchTransak.strSMF == fetch.IdMR_TSMF)
                                {
                                    grpTransak[intUrut].dblKonsul = grpTransak[intUrut].dblKonsul + fetch.tunainya;
                                    //fetchTransak.dblKonsul = fetchTransak.dblKonsul + fetchKasumJP.tunainya;
                                }
                                intUrut++;
                            } /* EOF foreach (var fetchTransak in grpTransak) */
                        } /* EOF if (fetchKasumJP.LapJP.Substring(1, 1) == "1") */

                        else if (fetch.LapJP.Substring(0, 1) == "2")
                        {
                            int intUrut = 0;
                            foreach (var fetchTransak in grpTransak)
                            {
                                if (fetchTransak.strRegbilling == fetch.regBilling
                                    && fetch.LapJP.Substring(0, 1) == "2"
                                    && fetchTransak.strRuangan == fetch.Ruangan
                                    && fetchTransak.strSMF == fetch.IdMR_TSMF)
                                {
                                    grpTransak[intUrut].dblVisite = grpTransak[intUrut].dblVisite + fetch.tunainya;
                                }
                                intUrut++;
                            } /* EOF foreach (var fetchTransak in grpTransak) */

                        } /* EOF else if (fetchKasumJP.LapJP.Substring(1, 1) == "2") */
                        else if (fetch.LapJP.Substring(0, 1) == "3")
                        {
                            int intUrut = 0;
                            foreach (var fetchTransak in grpTransak)
                            {
                                if (fetchTransak.strRegbilling == fetch.regBilling
                                    && fetch.LapJP.Substring(0, 1) == "3"
                                    && fetchTransak.strRuangan == fetch.Ruangan
                                    && fetchTransak.strSMF == fetch.IdMR_TSMF)
                                {
                                    grpTransak[intUrut].dblOperasi = grpTransak[intUrut].dblOperasi + fetch.tunainya;
                                }
                                intUrut++;
                            } /* EOF foreach (var fetchTransak in grpTransak) */

                        } /* EOF else if (fetchKasumJP.LapJP.Substring(1, 1) == "3") */
                        else if (fetch.LapJP.Substring(0, 1) == "4")
                        {
                            int intUrut = 0;
                            foreach (var fetchTransak in grpTransak)
                            {
                                if (fetchTransak.strRegbilling == fetch.regBilling
                                    && fetch.LapJP.Substring(0, 1) == "4"
                                    && fetchTransak.strRuangan == fetch.Ruangan
                                    && fetchTransak.strSMF == fetch.IdMR_TSMF)
                                {
                                    grpTransak[intUrut].dblTindakan = grpTransak[intUrut].dblTindakan + fetch.tunainya;
                                }
                                intUrut++;
                            } /* EOF foreach (var fetchTransak in grpTransak) */

                        } /* EOF else if (fetchKasumJP.LapJP.Substring(1, 1) == "4") */
                        else if (fetch.LapJP.Substring(0, 1) == "5")
                        {
                            int intUrut = 0;
                            foreach (var fetchTransak in grpTransak)
                            {
                                if (fetchTransak.strRegbilling == fetch.regBilling
                                    && fetch.LapJP.Substring(0, 1) == "5"
                                    && fetchTransak.strRuangan == fetch.Ruangan
                                    && fetchTransak.strSMF == fetch.IdMR_TSMF)
                                {
                                    grpTransak[intUrut].dblDiagelect = grpTransak[intUrut].dblDiagelect + fetch.tunainya;
                                }
                                intUrut++;
                            } /* EOF foreach (var fetchTransak in grpTransak) */

                        } /* EOF else if (fetchKasumJP.LapJP.Substring(1, 1) == "5") */
                        else if (fetch.LapJP.Substring(0, 1) == "6")
                        {
                            int intUrut = 0;
                            foreach (var fetchTransak in grpTransak)
                            {
                                if (fetchTransak.strRegbilling == fetch.regBilling
                                    && fetch.LapJP.Substring(0, 1) == "6"
                                    && fetchTransak.strRuangan == fetch.Ruangan
                                    && fetchTransak.strSMF == fetch.IdMR_TSMF)
                                {
                                    grpTransak[intUrut].dblPemRK = grpTransak[intUrut].dblPemRK + fetch.tunainya;
                                }
                                intUrut++;
                            } /* EOF foreach (var fetchTransak in grpTransak) */

                        } /* EOF else if (fetchKasumJP.LapJP.Substring(1, 1) == "6") */

                        /* 2 SAMPAI 6 */

                    } /* EOF foreach (var fetchKasumJP in KasumJP) */

                    /*JASA ANASTHESI*/
                    foreach (var fetch in KasJKMJA)
                    {

                        lstTransak itemTransak = new lstTransak();
                        itemTransak.strRegbilling = fetch.regBilling;
                        itemTransak.strNama = fetch.Nama;
                        itemTransak.strRuangan = fetch.Ruangan;
                        itemTransak.strUnit = "ANASTHESI";
                        itemTransak.strSMF = fetch.IdMR_TSMF;
                        itemTransak.dblKonsul = 0;
                        itemTransak.dblVisite = 0;
                        itemTransak.dblOperasi = fetch.tunainya;
                        itemTransak.dblTindakan = 0;
                        itemTransak.dblDiagelect = 0;
                        itemTransak.dblPemRK = 0;

                        grpTransak.Add(itemTransak);

                    } /* EOF foreach (var fetch in KasJKMJA) */

                } /* EOF if (grpTransak.Count > 0) */

            } /* EOF  if (grpLstKasJKM.Count > 0) */

            intWaktuLoad = 0;
            intPenandaProses = 4;

            /* QUERY ASKES JAMKESDA*/
            this.strQuerySQL = "SELECT  " +
                                    "BL_TRANSAKSI.Regbilling, " +                                            //0
                                    "MR_PASIEN.Nama, " +                                                     //1
                                    "MR_TRUANGAN.ruangan, " +                                               //2
                                    "BL_TRANSAKSI.Jumlah, " +                                                //3
                                    "BL_TRANSAKSI.subsidi, " +                                               //4
                                    "BL_TRANSAKSI.tunai, " +                                                //5
                                    "BL_TRANSAKSIDETAIL.Idbl_komponen, " +                                   //6
                                    "BL_TRANSAKSIDETAIL.Nilai, " +                                          //7
                                    "BL_TRANSAKSIDETAIL.Ringan, " +                                          //8
                                    "BL_KELTARIP.urutan, " +                                                 //9
                                    "BL_KELTARIP.rekapjp," +                                                //10
                                    "BL_TRANSAKSIDETAIL.Nilai - BL_TRANSAKSIDETAIL.Ringan as tunainya , " + //11
                                    "BL_TRANSAKSIDETAIL.Noambil," +                                          //12
                                    "BL_TRANSAKSIDETAIL.tglambil, " +                                       //13
                                    "BL_KELTARIP.Idbl_keltarip, " +                                          //14
                                    "BL_KELTARIP.Lapjp, " +                                                  //15
                                    "BL_TRANSAKSI.idmr_tsmf, " +                                            //16
                                    "MR_SMFTARIP.idmr_tupf, " +                                              //17
                                    "BL_TRANSAKSI.idbl_tarip, " +                                            //18
                                    "BL_TRANSAKSI.uraiantarip, " +                                          //19
                                    "BL_TRANSAKSI.jml_kasus_tarip, " +                                       //20
                                    "BL_TRANSAKSI.idbl_transaksi, " +                                       //21
                                    "BL_KASASKES.Idbl_Pembayaran, " +                                        //22
                                    "BL_TRANSAKSI.Tgltransaksi, " +                                          //23
                                    "BL_KASASKES.Tanggal, " +                                               //24
                                    "BL_TARIP.Idmr_jeniskelas, " +                                           //25
                                    "BL_TRANSAKSI.Idmr_truangan, " +                                        //26
                                    "MR_DOKTER.Idmr_dokter, " +                                             //27
                                    "MR_DOKTER.Nama " +                                                     //28
                                " FROM BL_KELTARIP With (nolock)  " +
                                " INNER JOIN BL_TRANSAKSI " +
                                " INNER JOIN BL_TRANSAKSIDETAIL "+
                                        "ON BL_TRANSAKSI.idbl_transaksi = BL_TRANSAKSIDETAIL.Idbl_transaksi " +
                                " INNER JOIN BL_TARIP " +
                                        "ON BL_TRANSAKSI.idbl_tarip = BL_TARIP.IdBl_tarip " +
                                        "ON BL_KELTARIP.Idbl_keltarip = BL_TARIP.Idbl_keltarip " +
                                " INNER JOIN MR_SMFTARIP " +
                                        "ON BL_TRANSAKSI.idmr_tsmf = MR_SMFTARIP.idmr_tsmf " +
                                " INNER JOIN BL_KASASKES " +
                                        "ON BL_TRANSAKSI.idbl_pembayaran = BL_KASASKES.Idbl_Pembayaran " +
                                  " AND BL_TRANSAKSI.idmr_mutasipasien = BL_KASASKES.idmr_mutasipasien " +
                                " INNER JOIN MR_PASIEN ON BL_KASASKES.Idmr_pasien = MR_PASIEN.IDMR_PASIEN " +
                                " INNER JOIN MR_TRUANGAN ON BL_KASASKES.Idmr_truangan = MR_TRUANGAN.idmr_truangan " +
                                " INNER JOIN MR_SJASKES ON BL_KASASKES.idmr_mutasipasien = MR_SJASKES.idmr_mutasipasien " +
                                "INNER JOIN MR_DOKTER " +
                                    "ON MR_DOKTER.Idmr_dokter = BL_TRANSAKSIDETAIL.Idmr_dokter " +
                                " WHERE (BL_TRANSAKSI.Batal <> 'Y') AND (BL_KASASKES.Batal = '') " +
                                  " AND (MR_SJASKES.BATAL = '') and MR_SJASKES.idmr_tstatus = 'ASKESJAMKESDA' " +
                                  " AND (BL_TRANSAKSIDETAIL.Idbl_komponen <> 'JASA SARANA') " +
                                  " AND BL_KASASKES.Tanggal between '" + dtpFilterTgl1.Value.ToString("MM/dd/yyyy 00:00:00") +
                                  "' and '" + dtpFilterTgl2.Value.ToString("MM/dd/yyyy 23:59:59") + "' " +
                                  " AND BL_TARIP.pisahsetor = '' AND BL_KASASKES.jumlah > 0 " +
                                  " AND BL_TRANSAKSIDETAIL.noambil <> 999 " +
                                  " AND BL_TRANSAKSI.idmr_tsmf <> 'DARAH' and BL_TRANSAKSI.idmr_tsmf <> 'PENDORONG'" +
                                  " AND BL_TRANSAKSI.idmr_tsmf <> 'OBAT/ALKES-FARMASI' " +
                                  " AND BL_TRANSAKSI.idmr_tsmf <> 'OBAT/ALKES-KPRI'" +
                                  " AND BL_TRANSAKSI.idbl_pembayaran > 0 and BL_KELTARIP.Lapjp <> '-'";

            conn = modDb.pbconnKoneksiSQL(ref strErr);
            if (strErr != "")
            {
                tmrBlink.Enabled = false;
                tmrBlink.Stop();
                lblInfoPencarian.SafeControlInvoke(Label => lblInfoPencarian.Visible = false);
                modMsg.pvDlgErr(modMsg.IS_DEV, strErr, modMsg.DB_CON, modMsg.TITLE_ERR);
                return;
            }

            reader = modDb.pbreaderSQL(conn, strQuerySQL, ref strErr);
            if (strErr != "")
            {
                tmrBlink.Enabled = false;
                tmrBlink.Stop();
                lblInfoPencarian.SafeControlInvoke(Label => lblInfoPencarian.Visible = false);
                modMsg.pvDlgErr(modMsg.IS_DEV, strErr, modMsg.DB_GET, modMsg.TITLE_ERR);
                conn.Close();
                return;
            }

            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    lstKASJKD itemKASJKD = new lstKASJKD();

                    itemKASJKD.strRegBilling = modMain.pbstrgetCol(reader, 0, ref strErr, "");
                    itemKASJKD.strNama = modMain.pbstrgetCol(reader, 1, ref strErr, "");
                    itemKASJKD.strRuangan = modMain.pbstrgetCol(reader, 2, ref strErr, "");
                    itemKASJKD.dblJumlah = Convert.ToDouble(modMain.pbstrgetCol(reader, 3, ref strErr, ""));
                    itemKASJKD.dblSubsidi = Convert.ToDouble(modMain.pbstrgetCol(reader, 4, ref strErr, ""));
                    itemKASJKD.dblTunai = Convert.ToDouble(modMain.pbstrgetCol(reader, 5, ref strErr, ""));
                    itemKASJKD.strIdBl_Komponen = modMain.pbstrgetCol(reader, 6, ref strErr, "");
                    itemKASJKD.dblNilai = Convert.ToDouble(modMain.pbstrgetCol(reader, 7, ref strErr, ""));
                    itemKASJKD.dblRingan = Convert.ToDouble(modMain.pbstrgetCol(reader, 8, ref strErr, ""));
                    itemKASJKD.dblUrutan = Convert.ToDouble(modMain.pbstrgetCol(reader, 9, ref strErr, ""));
                    itemKASJKD.strRekapJp = modMain.pbstrgetCol(reader, 10, ref strErr, "");
                    itemKASJKD.dblTunainya = Convert.ToDouble(modMain.pbstrgetCol(reader, 11, ref strErr, ""));
                    itemKASJKD.dblNoAmbil = Convert.ToDouble(modMain.pbstrgetCol(reader, 12, ref strErr, ""));
                    itemKASJKD.dtTglAmbil = Convert.ToDateTime(modMain.pbstrgetCol(reader, 13, ref strErr, ""));
                    itemKASJKD.strIdBl_KelTarip = modMain.pbstrgetCol(reader, 14, ref strErr, "");
                    itemKASJKD.strLapJP = modMain.pbstrgetCol(reader, 15, ref strErr, "");
                    itemKASJKD.strIdMR_TSMF = modMain.pbstrgetCol(reader, 16, ref strErr, "");
                    itemKASJKD.strIdMR_TUPF = modMain.pbstrgetCol(reader, 17, ref strErr, "");
                    itemKASJKD.strIdBl_Tarip = modMain.pbstrgetCol(reader, 18, ref strErr, "");
                    itemKASJKD.strUraianTarip = modMain.pbstrgetCol(reader, 19, ref strErr, "");
                    itemKASJKD.dblJumlahKasusTarip = Convert.ToDouble(modMain.pbstrgetCol(reader, 20, ref strErr, ""));
                    itemKASJKD.strIdBl_Transaksi = modMain.pbstrgetCol(reader, 21, ref strErr, "");
                    itemKASJKD.strIdBl_Pembayaran = modMain.pbstrgetCol(reader, 22, ref strErr, "");
                    itemKASJKD.dtTglTransaksi = Convert.ToDateTime(modMain.pbstrgetCol(reader, 23, ref strErr, ""));
                    itemKASJKD.dtTgl = Convert.ToDateTime(modMain.pbstrgetCol(reader, 24, ref strErr, ""));
                    itemKASJKD.strIdMR_JenisKelas = modMain.pbstrgetCol(reader, 25, ref strErr, "");
                    itemKASJKD.strIdMR_Ruangan = modMain.pbstrgetCol(reader, 26, ref strErr, "");
                    itemKASJKD.strIdMR_Dokter = modMain.pbstrgetCol(reader, 27, ref strErr, "");
                    itemKASJKD.strNamaDokter = modMain.pbstrgetCol(reader, 28, ref strErr, "");

                    grpLstKASJKD.Add(itemKASJKD);
                }
            }

            reader.Close();
            conn.Close();

            if (grpLstKASJKD.Count > 0)
            {

                var KasJKDJP = (from fetch in grpLstKASJKD
                                where (fetch.strIdBl_Komponen == "JASA PELAYANAN" && fetch.dblTunainya > 0)
                                group fetch by new
                                {
                                    fetch.strRegBilling,
                                    fetch.strNama,
                                    fetch.strIdBl_Komponen,
                                    fetch.strLapJP,
                                    fetch.strIdMR_TUPF,
                                    fetch.strIdMR_TSMF,
                                    fetch.strRuangan
                                } into groupData
                                select new
                                {
                                    regBilling = groupData.Key.strRegBilling,
                                    Nama = groupData.Key.strNama,
                                    Ruangan = groupData.Key.strRuangan,
                                    TUPF = groupData.Key.strIdMR_TUPF,
                                    IdBl_Komponen = groupData.Key.strIdBl_Komponen,
                                    IdMR_TSMF = groupData.Key.strIdMR_TSMF,
                                    tunainya = groupData.Sum(fetchKasum => fetchKasum.dblTunainya),
                                    LapJP = groupData.Key.strLapJP
                                }).OrderBy(groupData => groupData.regBilling).ToList();

                var KasJKDJA = (from fetch in grpLstKASJKD
                                where (fetch.strIdBl_Komponen != "JASA PELAYANAN" && fetch.dblTunainya > 0)
                                group fetch by new
                                {
                                    fetch.strRegBilling,
                                    fetch.strNama,
                                    fetch.strIdBl_Komponen,
                                    fetch.strLapJP,
                                    fetch.strIdMR_TUPF,
                                    fetch.strIdMR_TSMF,
                                    fetch.strRuangan
                                } into groupData
                                select new
                                {
                                    regBilling = groupData.Key.strRegBilling,
                                    Nama = groupData.Key.strNama,
                                    Ruangan = groupData.Key.strRuangan,
                                    TUPF = groupData.Key.strIdMR_TUPF,
                                    IdBl_Komponen = groupData.Key.strIdBl_Komponen,
                                    IdMR_TSMF = groupData.Key.strIdMR_TSMF,
                                    tunainya = groupData.Sum(fetchKasum => fetchKasum.dblTunainya),
                                    LapJP = groupData.Key.strLapJP
                                }).OrderBy(groupData => groupData.regBilling).ToList();

                var reg = (from fetch in grpLstKASJKD
                           select new
                           {
                               Regbilling = fetch.strRegBilling,
                               Nama = fetch.strNama,
                               Ruangan = fetch.strRuangan,
                               idmr_tupf = fetch.strIdMR_TUPF,
                               idmr_tsmf = fetch.strIdMR_TSMF
                           }).Distinct().OrderBy(a => a.Regbilling).ToList();

                if (reg.Count > 0)
                {
                    foreach (var fetch in reg)
                    {
                        lstTransak itemTransak = new lstTransak();
                        itemTransak.strRegbilling = fetch.Regbilling;
                        itemTransak.strNama = fetch.Nama;
                        itemTransak.strRuangan = fetch.Ruangan;
                        itemTransak.strUnit = fetch.idmr_tupf;
                        itemTransak.strSMF = fetch.idmr_tsmf;
                        itemTransak.dblKonsul = 0;
                        itemTransak.dblVisite = 0;
                        itemTransak.dblOperasi = 0;
                        itemTransak.dblTindakan = 0;
                        itemTransak.dblDiagelect = 0;
                        itemTransak.dblPemRK = 0;
                        grpTransak.Add(itemTransak);
                    }
                }

                if (grpTransak.Count > 0)
                {
                    /*JASA PELAYANAN*/
                    foreach (var fetch in KasJKDJP)
                    {

                        if (fetch.LapJP.Substring(0, 1) == "1")
                        {
                            int intUrut = 0;
                            foreach (var fetchTransak in grpTransak)
                            {
                                if (fetchTransak.strRegbilling == fetch.regBilling
                                    && fetch.LapJP.Substring(0, 1) == "1"
                                    && fetchTransak.strRuangan == fetch.Ruangan
                                    && fetchTransak.strSMF == fetch.IdMR_TSMF)
                                {
                                    grpTransak[intUrut].dblKonsul = grpTransak[intUrut].dblKonsul + fetch.tunainya;
                                    //fetchTransak.dblKonsul = fetchTransak.dblKonsul + fetchKasumJP.tunainya;
                                }
                                intUrut++;
                            } /* EOF foreach (var fetchTransak in grpTransak) */
                        } /* EOF if (fetchKasumJP.LapJP.Substring(1, 1) == "1") */

                        else if (fetch.LapJP.Substring(0, 1) == "2")
                        {
                            int intUrut = 0;
                            foreach (var fetchTransak in grpTransak)
                            {
                                if (fetchTransak.strRegbilling == fetch.regBilling
                                    && fetch.LapJP.Substring(0, 1) == "2"
                                    && fetchTransak.strRuangan == fetch.Ruangan
                                    && fetchTransak.strSMF == fetch.IdMR_TSMF)
                                {
                                    grpTransak[intUrut].dblVisite = grpTransak[intUrut].dblVisite + fetch.tunainya;
                                }
                                intUrut++;
                            } /* EOF foreach (var fetchTransak in grpTransak) */

                        } /* EOF else if (fetchKasumJP.LapJP.Substring(1, 1) == "2") */
                        else if (fetch.LapJP.Substring(0, 1) == "3")
                        {
                            int intUrut = 0;
                            foreach (var fetchTransak in grpTransak)
                            {
                                if (fetchTransak.strRegbilling == fetch.regBilling
                                    && fetch.LapJP.Substring(0, 1) == "3"
                                    && fetchTransak.strRuangan == fetch.Ruangan
                                    && fetchTransak.strSMF == fetch.IdMR_TSMF)
                                {
                                    grpTransak[intUrut].dblOperasi = grpTransak[intUrut].dblOperasi + fetch.tunainya;
                                }
                                intUrut++;
                            } /* EOF foreach (var fetchTransak in grpTransak) */

                        } /* EOF else if (fetchKasumJP.LapJP.Substring(1, 1) == "3") */
                        else if (fetch.LapJP.Substring(0, 1) == "4")
                        {
                            int intUrut = 0;
                            foreach (var fetchTransak in grpTransak)
                            {
                                if (fetchTransak.strRegbilling == fetch.regBilling
                                    && fetch.LapJP.Substring(0, 1) == "4"
                                    && fetchTransak.strRuangan == fetch.Ruangan
                                    && fetchTransak.strSMF == fetch.IdMR_TSMF)
                                {
                                    grpTransak[intUrut].dblTindakan = grpTransak[intUrut].dblTindakan + fetch.tunainya;
                                }
                                intUrut++;
                            } /* EOF foreach (var fetchTransak in grpTransak) */

                        } /* EOF else if (fetchKasumJP.LapJP.Substring(1, 1) == "4") */
                        else if (fetch.LapJP.Substring(0, 1) == "5")
                        {
                            int intUrut = 0;
                            foreach (var fetchTransak in grpTransak)
                            {
                                if (fetchTransak.strRegbilling == fetch.regBilling
                                    && fetch.LapJP.Substring(0, 1) == "5"
                                    && fetchTransak.strRuangan == fetch.Ruangan
                                    && fetchTransak.strSMF == fetch.IdMR_TSMF)
                                {
                                    grpTransak[intUrut].dblDiagelect = grpTransak[intUrut].dblDiagelect + fetch.tunainya;
                                }
                                intUrut++;
                            } /* EOF foreach (var fetchTransak in grpTransak) */

                        } /* EOF else if (fetchKasumJP.LapJP.Substring(1, 1) == "5") */
                        else if (fetch.LapJP.Substring(0, 1) == "6")
                        {
                            int intUrut = 0;
                            foreach (var fetchTransak in grpTransak)
                            {
                                if (fetchTransak.strRegbilling == fetch.regBilling
                                    && fetch.LapJP.Substring(0, 1) == "6"
                                    && fetchTransak.strRuangan == fetch.Ruangan
                                    && fetchTransak.strSMF == fetch.IdMR_TSMF)
                                {
                                    grpTransak[intUrut].dblPemRK = grpTransak[intUrut].dblPemRK + fetch.tunainya;
                                }
                                intUrut++;
                            } /* EOF foreach (var fetchTransak in grpTransak) */

                        } /* EOF else if (fetchKasumJP.LapJP.Substring(1, 1) == "6") */

                        /* 2 SAMPAI 6 */

                    } /* EOF foreach (var fetchKasumJP in KasumJP) */

                    /*JASA ANASTHESI*/
                    foreach (var fetch in KasJKDJA)
                    {

                        lstTransak itemTransak = new lstTransak();
                        itemTransak.strRegbilling = fetch.regBilling;
                        itemTransak.strNama = fetch.Nama;
                        itemTransak.strRuangan = fetch.Ruangan;
                        itemTransak.strUnit = "ANASTHESI";
                        itemTransak.strSMF = fetch.IdMR_TSMF;
                        itemTransak.dblKonsul = 0;
                        itemTransak.dblVisite = 0;
                        itemTransak.dblOperasi = fetch.tunainya;
                        itemTransak.dblTindakan = 0;
                        itemTransak.dblDiagelect = 0;
                        itemTransak.dblPemRK = 0;

                        grpTransak.Add(itemTransak);

                    } /* EOF foreach (var fetch in KasJKMJA) */

                } /* EOF if (grpTransak.Count > 0) */

            } /* EOF  if (grpLstKasJKM.Count > 0) */

            tmrWaktuLoad.Stop();
            tmrWaktuLoad.Enabled = false;

            if (grpTransak.Count > 0)
            {
                var transaknya = (from x in grpTransak
                                  group x by new
                                  {
                                      x.strRegbilling,
                                      x.strUnit,
                                      x.strRuangan,
                                      x.strNama
                                  } into groupTransak
                                  select new
                                  {
                                      regBilling = groupTransak.Key.strRegbilling,
                                      Nama = groupTransak.Key.strNama,
                                      Ruangan = groupTransak.Key.strRuangan,
                                      Unit = groupTransak.Key.strUnit,
                                      konsul = groupTransak.Sum(x => x.dblKonsul),
                                      visite = groupTransak.Sum(x => x.dblVisite),
                                      operasi = groupTransak.Sum(x => x.dblOperasi),
                                      tindakan = groupTransak.Sum(x => x.dblTindakan),
                                      diagelect = groupTransak.Sum(x => x.dblDiagelect),
                                      pemrk = groupTransak.Sum(x => x.dblPemRK)
                                  }).ToList();

                foreach (var fetch in transaknya)
                {

                    lstTransaknya itemTransaknya = new lstTransaknya();
                    itemTransaknya.strRegBilling = fetch.regBilling;
                    itemTransaknya.strNama = fetch.Nama;
                    itemTransaknya.strRuangan = fetch.Ruangan;
                    itemTransaknya.strUnit = fetch.Unit;
                    itemTransaknya.dblKonsul = fetch.konsul;
                    itemTransaknya.dblVisite = fetch.visite;
                    itemTransaknya.dblOperasi = fetch.operasi;
                    itemTransaknya.dblTindakan = fetch.tindakan;
                    itemTransaknya.dblDiagelect = fetch.diagelect;
                    itemTransaknya.dblPemRK = fetch.pemrk;

                    grpTransaknya.Add(itemTransaknya);

                }

            }

            if (grpKelTarip.Count > 0)
            {

                var xsatu = (from x in grpKelTarip
                             where x.strIdBl_KelTarip.Substring(1, 1) == "1"
                             select x.strLapJP);

                var xdua = from x in grpKelTarip
                           where x.strIdBl_KelTarip.Substring(1, 1) == "2"
                           select x.strLapJP;

                var xtiga = from x in grpKelTarip
                            where x.strIdBl_KelTarip.Substring(1, 1) == "3"
                            select x.strLapJP;

                var xempat = from x in grpKelTarip
                             where x.strIdBl_KelTarip.Substring(1, 1) == "4"
                             select x.strLapJP;

                var xlima = from x in grpKelTarip
                            where x.strIdBl_KelTarip.Substring(1, 1) == "5"
                            select x.strLapJP;

                var xenam = from x in grpKelTarip
                            where x.strIdBl_KelTarip.Substring(1, 1) == "6"
                            select x.strLapJP;

            }

            //conn.Close();

            lblInfoPencarian.SafeControlInvoke(Label => lblInfoPencarian.Text = "Proses Load - SELESAI");
            dtpFilterTgl1.SafeControlInvoke(DateTimePicker => dtpFilterTgl1.Enabled = false);
            dtpFilterTgl2.SafeControlInvoke(DateTimePicker => dtpFilterTgl2.Enabled = false);
            cmbJenisLaporan.SafeControlInvoke(ComboBox => cmbJenisLaporan.Enabled = true);
            cmbUnit.SafeControlInvoke(ComboBox => cmbUnit.Enabled = true);
            btnCari.SafeControlInvoke(Button => btnCari.Enabled = true);
            btnCari.SafeControlInvoke(Button => btnCari.Text = "Pilih Tanggal");
            cmbJenisLaporan.SafeControlInvoke(ComboBox => cmbJenisLaporan.Focus());
            cmbPilihanExport.SafeControlInvoke(ComboBox => cmbPilihanExport.Enabled = true);
            btnExport.SafeControlInvoke(Button => btnExport.Enabled = true);
            btnTampilkan.SafeControlInvoke(Button => btnTampilkan.Enabled = true);
        }