示例#1
0
        private void cmdSave_Click(object sender, EventArgs e)
        {
            if (!validate())
            {
                return;
            }
            if (updateMode == enumUpdateMode.Header)
            {
                string kode = "";
                if (Tools.isNull(cboPT.Text, "").ToString() != "")
                {
                    kode = cboPT.Text;
                }
                if (frmMode == enumFrmMode.New)
                {
                    try
                    {
                        Guid _RowID = Guid.NewGuid();
                        string _BankID=Tools.CreateFingerPrint(GlobalVar.PerusahaanID, SecurityManager.UserInitial);

                        using(Database db=new Database(GlobalVar.DBName))
                        {
                            Bank.addBank(db
                                        ,_RowID
                                        ,_BankID
                                        ,tbJenisRek.Text
                                        ,tbNamaBank.Text
                                        ,""                         //namaaccount
                                        ,tbNoAccount.Text
                                        ,tbAlamat1.Text
                                        ,tbAlamat2.Text
                                        ,tbKota.Text
                                        ,tbTelepon.Text
                                        ,tbCusService.Text
                                        ,tbNoTerakhirBG.Text
                                        ,tbCheque.Text
                                        ,""                         //nobkk
                                        ,"IDR"
                                        ,tbSaldo.Text
                                        ,tbLimitSaldo.Text
                                        ,(DateTime)SqlDateTime.Null //tglrek
                                        ,kode                       //kode
                                        ,""                         //sub
                                        ,""                         //maintitip
                                        ,""                         //subtitip
                                        ,tbNoPerkiraan.Text
                                        ,tbPerkiraanTP.Text);
                            //Bank.addBank(db, _RowID, _BankID, tbJenisRek.Text, tbNamaBank.Text, "", tbNoAccount.Text, tbAlamat1.Text, tbAlamat2.Text, tbKota.Text, tbTelepon.Text, tbCusService.Text, tbNoTerakhirBG.Text, tbCheque.Text, "", "IDR", tbSaldo.Text, tbLimitSaldo.Text, (DateTime)SqlDateTime.Null, "", "", "", "", tbNoPerkiraan.Text, tbPerkiraanTP.Text);
                        }
                        frmBukuBankBrowse frm = new frmBukuBankBrowse();
                        frm = (frmBukuBankBrowse)Caller;
                        frm.HeaderRefresh(_RowID);
                        frm.HeaderFindRow("RowIDH", _RowID.ToString());
                        this.Close();
                        
                    }
                    catch(Exception ex)
                    {
                        Error.LogError(ex);
                    }
                }
                else
                {
                    //SAVE UPDATE HEADER
                    try
                    {
                        using (Database db = new Database(GlobalVar.DBName))
                        {
                            db.Commands.Add(db.CreateCommand("usp_Bank_UPDATE"));
                            db.Commands[0].Parameters.Add(new Parameter("@RowID", SqlDbType.UniqueIdentifier, rowID));
                            db.Commands[0].Parameters.Add(new Parameter("@JRek", SqlDbType.VarChar, tbJenisRek.Text));
                            db.Commands[0].Parameters.Add(new Parameter("@NamaBank", SqlDbType.VarChar, tbNamaBank.Text));
                            db.Commands[0].Parameters.Add(new Parameter("@NoAccount", SqlDbType.VarChar, tbNoAccount.Text));
                            db.Commands[0].Parameters.Add(new Parameter("@Alamat1", SqlDbType.VarChar, tbAlamat1.Text));
                            db.Commands[0].Parameters.Add(new Parameter("@Alamat2", SqlDbType.VarChar, tbAlamat2.Text));
                            db.Commands[0].Parameters.Add(new Parameter("@Kota", SqlDbType.VarChar, tbKota.Text));
                            db.Commands[0].Parameters.Add(new Parameter("@Telp", SqlDbType.VarChar, tbTelepon.Text));
                            db.Commands[0].Parameters.Add(new Parameter("@CService", SqlDbType.VarChar, tbCusService.Text));
                            db.Commands[0].Parameters.Add(new Parameter("@NoGiro", SqlDbType.VarChar, tbNoTerakhirBG.Text));
                            db.Commands[0].Parameters.Add(new Parameter("@NoCheck", SqlDbType.VarChar, tbCheque.Text));
                            db.Commands[0].Parameters.Add(new Parameter("@SaldoAwal", SqlDbType.Money, tbSaldo.Text));
                            db.Commands[0].Parameters.Add(new Parameter("@Limit", SqlDbType.Money, tbLimitSaldo.Text));
                            db.Commands[0].Parameters.Add(new Parameter("@NoPerkiraan", SqlDbType.VarChar, tbNoPerkiraan.Text));
                            db.Commands[0].Parameters.Add(new Parameter("@MainPerkiraan", SqlDbType.VarChar, tbPerkiraanTP.Text));
                            db.Commands[0].Parameters.Add(new Parameter("@LastUpdatedBy", SqlDbType.VarChar, SecurityManager.UserID));
                            db.Commands[0].Parameters.Add(new Parameter("@Kode", SqlDbType.VarChar, kode));
                            db.Commands[0].ExecuteNonQuery();

                        }
                        frmBukuBankBrowse frm = new frmBukuBankBrowse();
                        frm = (frmBukuBankBrowse)Caller;
                        frm.HeaderRefresh(rowID);
                        frm.HeaderFindRow("RowIDH", rowID.ToString());
                        this.Close();

                    }
                    catch (Exception ex)
                    {
                        Error.LogError(ex);
                    }
                }
            }
            else
            {
                if (frmMode == enumFrmMode.New)
                {
                    //SAVE NEW DETAIL
                    DateTime _Tanggal = (DateTime)tbTglBank.DateValue;
                    if (PeriodeClosing.IsKasirClosed(_Tanggal))
                    {
                        MessageBox.Show("Sudah Closing!");
                        return;
                    }
                    rowIDDetail =Guid.NewGuid();
                    string recordID = Tools.CreateFingerPrint(GlobalVar.PerusahaanID, SecurityManager.UserInitial);
                    try
                    {
                        DateTime tglBank=(DateTime)tbTglBank.DateValue;
                        DateTime tglRK=(DateTime)tbTglRK.DateValue;
                        if (kdTransaksi == "KM1")
                        {
                            nobbk = Numerator.BookNumerator("BBK");
                            nobgch = Numerator.BookNumerator("BKM");
                            string recordIDBKM = recordID.TrimEnd() + "B";
                            string recordIDBKMDetail = recordIDBKM;
                            using (Database db = new Database(GlobalVar.DBName))
                            {
                                db.BeginTransaction();

                                Bank.AddBankDetail(db, rowIDDetail, Guid.Empty, nobbk, nobgch, rowID, "", tglBank, "BBK", tbKeterangan.Text, "IDR", tbDebet.Text, tbKredit.Text, tglBank, tglRK, "", "", "", "", noPerkiraan,bankID,recordID.TrimEnd()+"T");

                                BKM.AddHeader(db, rowIDDetail, rowIDDetail, recordIDBKM, nobgch, "", "BNK", tglBank, "Mutasi Dari " + namaBank, "", "", SecurityManager.UserName, "");
                                BKM.AddDetail(db, Guid.NewGuid(), rowIDDetail, recordIDBKMDetail, recordIDBKM, "", "", "", "", noPerkiraan, tbKeterangan.Text, tbKredit.Text);
                                db.CommitTransaction();
                            }

                            

                        }
                        else if (kdTransaksi == "KK1")
                        {
                            nobbk = Numerator.BookNumerator("BBM");
                            nobgch = Numerator.BookNumerator("BKK");


                            string recordIDBKK = recordID.TrimEnd() + "B";
                            string recordIDBKKDetail = recordIDBKK;
                            using (Database db = new Database(GlobalVar.DBName))
                            {
                                db.BeginTransaction();

                                Bank.AddBankDetail(db, rowIDDetail, Guid.Empty, nobbk, nobgch, rowID, "", tglBank, "BBM", tbKeterangan.Text, "IDR", tbDebet.Text, tbKredit.Text, tglBank, tglRK, "", "", "", "", noPerkiraan, bankID, recordID.TrimEnd() + "T");

                                BKK.AddHeader(db, rowIDDetail, rowIDDetail, recordIDBKK, nobgch, "", "BNK", tglBank, "Mutasi Ke " + namaBank, "", "", SecurityManager.UserName, "", "");
                                BKK.AddDetail(db, Guid.NewGuid(), rowIDDetail, recordIDBKKDetail, recordIDBKK, "", "", "", "", noPerkiraan, tbKeterangan.Text, tbDebet.Text);
                                db.CommitTransaction();
                            }
                        }
                        else if (kdTransaksi == "BM1")
                        {
                            nobbk = Numerator.BookNumerator("BBK");
                            nobgch = Numerator.BookNumerator("BBM");
                            string noBBKBank2, noBGCHBank2;
                            Guid LinkRowID = Guid.NewGuid() ;
                            using (Database db = new Database(GlobalVar.DBName))
                            {
                                db.BeginTransaction();

                                Bank.AddBankDetail(db, rowIDDetail, LinkRowID, nobbk, nobgch, rowID, "", tglBank, "BBK", tbKeterangan.Text, "IDR", tbDebet.Text, tbKredit.Text, tglBank, tglRK, "", "", "", "", noPerkiraan, bankID, recordID.TrimEnd() + "T");

                                noBBKBank2 = nobgch;
                                noBGCHBank2 = nobbk;
                                Bank.AddBankDetail(db, LinkRowID, rowIDDetail, noBBKBank2, noBGCHBank2, rowIDBank2, "", tglBank, "BBM", "Mutasi Bank, No : " + noBGCHBank2, "IDR", tbKredit.Text, tbDebet.Text, tglBank, tglRK, "", "", "", "", noPerkiraan, bankID2, recordID.TrimEnd() + "M");
                                db.CommitTransaction();
                            }
                        }
                        else if (kdTransaksi == "BK2")
                        {
                            nobbk = Numerator.BookNumerator("BBK");
                            nobgch = nobbk;

                            using (Database db = new Database(GlobalVar.DBName))
                            {
                                db.BeginTransaction();

                                Bank.AddBankDetail(db, rowIDDetail, Guid.Empty, nobbk, nobgch, rowID, "", tglBank, "BBK", tbKeterangan.Text, "IDR", tbDebet.Text, tbKredit.Text, tglBank, tglRK, "", "", "", "", noPerkiraan, bankID, recordID.TrimEnd() + "T");
                                
                                db.CommitTransaction();
                            }
                        }
                        else if (kdTransaksi == "BM2" || kdTransaksi == "BBM")
                        {
                            nobbk = Numerator.BookNumerator("BBM");
                            nobgch = nobbk;

                            using (Database db = new Database(GlobalVar.DBName))
                            {
                                db.BeginTransaction();

                                Bank.AddBankDetail(db, rowIDDetail, Guid.Empty, nobbk, nobgch, rowID, "", tglBank, "BBM", tbKeterangan.Text, "IDR", tbDebet.Text, tbKredit.Text, tglBank, tglRK, "", "", "", "", noPerkiraan, bankID, recordID.TrimEnd() + "T");
                                                                
                                db.CommitTransaction();
                            }
                        }

                        frmBukuBankBrowse frm = new frmBukuBankBrowse();
                        frm = (frmBukuBankBrowse)Caller;
                        //frm.HeaderRefresh(rowID);
                        frm.HeaderRefresh();
                        frm.HeaderFindRow("RowIDH", rowID.ToString());
                        //frm.DetailRefresh(rowIDDetail);
                        frm.DetailRefresh();
                        frm.DetailFindRow("RowID", rowIDDetail.ToString());
                        this.Close();

                        bool isPrinted = LookupInfoValue.CekPrintBukuBank();
                        if (isPrinted)
                        {
                            frm.cetakLaporan();
                        }

                    }
                    catch (Exception ex)
                    {
                        Error.LogError(ex);
                    }
                }
                else
                {
                    //SAVE UPDATE DETAIL
                    try
                    {
                        
                        tglRK = (DateTime)tbTglBank.DateValue;
                        keterangan = tbKeterangan.Text;
                        debet = tbDebet.Text;
                        kredit = tbKredit.Text;



                        using (Database db = new Database(GlobalVar.DBName))
                        {
                            
                            db.Commands.Add(db.CreateCommand("usp_BankDetail_RELASI_UPDATE"));
                            db.Commands[0].Parameters.Add(new Parameter("@jenis", SqlDbType.VarChar, nobgch.Substring(0, 3)));
                            db.Commands[0].Parameters.Add(new Parameter("@RowID2", SqlDbType.UniqueIdentifier, rowID));
                            db.Commands[0].Parameters.Add(new Parameter("@RowIDDetail", SqlDbType.UniqueIdentifier, rowIDDetail));
                            db.Commands[0].Parameters.Add(new Parameter("@NoBKK2", SqlDbType.VarChar, nobbk));
                            db.Commands[0].Parameters.Add(new Parameter("@NoBGCH2", SqlDbType.VarChar, nobgch));
                            db.Commands[0].Parameters.Add(new Parameter("@tglRK2", SqlDbType.DateTime, tglRK));
                            db.Commands[0].Parameters.Add(new Parameter("@keterangan2", SqlDbType.VarChar, keterangan));
                            db.Commands[0].Parameters.Add(new Parameter("@debet2", SqlDbType.Money, debet));
                            db.Commands[0].Parameters.Add(new Parameter("@kredit2", SqlDbType.Money, kredit));
                            db.Commands[0].Parameters.Add(new Parameter("@LastUpdatedBy2", SqlDbType.VarChar, SecurityManager.UserID));
                            db.BeginTransaction();
                            db.Commands[0].ExecuteNonQuery();
                            db.CommitTransaction();

                        }

                        frmBukuBankBrowse frm = new frmBukuBankBrowse();
                        frm = (frmBukuBankBrowse)Caller;
                        frm.HeaderRefresh(rowID);
                        frm.HeaderFindRow("RowIDH", rowID.ToString());
                        frm.DetailRefresh(rowIDDetail);
                        frm.DetailFindRow("RowID", rowIDDetail.ToString());
                        this.Close();

                    }
                    catch (Exception ex)
                    {
                        Error.LogError(ex);
                    }
                }
            }
        }
示例#2
0
        private void cmdSave_Click(object sender, EventArgs e)
        {
            totalPiutang = tbJumlah.GetDoubleValue + tbTotal.GetDoubleValue;
            if ((tbUraian.Text != "") && (tbJumlah.Text != ""))
            {
                try
                {
                    if (detailMode == enumDetailMode.New)
                    {
                        _recordIDDetail = Tools.CreateFingerPrint(GlobalVar.PerusahaanID, SecurityManager.UserInitial);
                        _rowIDDetail    = Guid.NewGuid();
                        using (Database db = new Database(GlobalVar.DBFinance))
                        {
                            if (linkPembelian)
                            {
                                BKK.AddDetail(db, _rowIDDetail, _rowID, _recordIDDetail, _recordID, "", "", "", tbAcc.Text, "".Trim().Equals("") ? "?" : "", tbUraian.Text, tbJumlah.Text);
                            }
                            else if (_isFromPiutang == false)
                            {
                                BKK.AddDetail(db, _rowIDDetail, _rowID, _recordIDDetail, _recordID, "", "", "", tbAcc.Text, "".Trim().Equals("")? "?":"", tbUraian.Text, tbJumlah.Text);


                                frmBKKBrowse frm = new frmBKKBrowse();
                                frm = (frmBKKBrowse)this.Caller;
                                frm.HeaderRowRefresh(_rowID);
                                frm.DetailRowRefresh(_rowIDDetail);
                                frm.FindRowDetail("RowIDD", _rowIDDetail.ToString());
                            }
                            else
                            {
                                db.BeginTransaction();
                                BKK.AddDetail(db, _rowIDDetail, _rowID, _recordIDDetail, _recordID, "", "", "", tbAcc.Text, "", tbUraian.Text, tbJumlah.Text);
                                BKK.UpdatePinjamanPegawai(db, _rowID, _recordID, _Nip, _Tanggal, "BKK", _noBukti, tbUraian.Text, string.Empty, _jp);
                                db.CommitTransaction();

                                Kasir.frmPiutangKaryawan frmUtang = new Kasir.frmPiutangKaryawan();
                                frmUtang = (frmPiutangKaryawan)this.Caller;

                                frmUtang.RefreshPegawai(_Nip);
                                frmUtang.FindRowPegawsai("NIP", _Nip);
                                //frmUtang.RefreshPiutang(_rowID);
                                frmUtang.RefreshPiutang();
                                frmUtang.FindRowPiutang("RowID", _rowID.ToString());
                            }

                            tbUraian.Text = "";

                            tbJumlah.Text = "0";
                            tbAcc.Text    = "";
                            DetailRowRefresh(_rowIDDetail);
                            FindRowDetail("rowID", _rowIDDetail.ToString());
                            refreshTerbilang();

                            gbBKKUpdate.Enabled       = true;
                            gbUpdateDetailBKK.Visible = false;
                            dgDetailBKK.Focus();
                        }
                    }
                    else if (detailMode == enumDetailMode.Update)
                    {
                        using (Database db = new Database(GlobalVar.DBFinance))
                        {
                            if (linkPembelian)
                            {
                                BKK.UpdateBuktiDetail(db, _rowIDDetail, "", tbUraian.Text, tbJumlah.Text);
                            }
                            else if (_isFromPiutang == false)
                            {
                                BKK.UpdateBuktiDetail(db, _rowIDDetail, "", tbUraian.Text, tbJumlah.Text);
                                frmBKKBrowse frm = new frmBKKBrowse();
                                frm = (frmBKKBrowse)this.Caller;
                                frm.HeaderRowRefresh(_rowID);
                                frm.DetailRowRefresh(_rowIDDetail);
                            }
                            else
                            {
                                db.BeginTransaction();
                                BKK.UpdateBuktiDetail(db, _rowIDDetail, "", tbUraian.Text, tbJumlah.Text);
                                BKK.UpdatePinjamanPegawai(db, _rowID, _recordID, _Nip, _Tanggal, "BKK", _noBukti, tbUraian.Text, string.Empty, _jp);
                                db.CommitTransaction();

                                Kasir.frmPiutangKaryawan frmUtang = new Kasir.frmPiutangKaryawan();
                                frmUtang = (frmPiutangKaryawan)this.Caller;
                                frmUtang.RefreshPegawai(_Nip);
                                frmUtang.FindRowPegawsai("NIP", _Nip);
                                frmUtang.RefreshPiutang(_rowID);
                                frmUtang.FindRowPiutang("RowID", _rowID.ToString());
                            }



                            tbUraian.Text = "";
                            //"" = "?";
                            tbJumlah.Text = "0";
                            DetailRowRefresh(_rowIDDetail);
                            refreshTerbilang();


                            gbBKKUpdate.Enabled       = true;
                            gbUpdateDetailBKK.Visible = false;
                        }
                    }
                }
                catch (Exception ex)
                {
                    Error.LogError(ex);
                }
            }
        }
示例#3
0
        private void cmdLinkBKK_Click(object sender, EventArgs e)
        {
            if (dgvHeader.Rows.Count > 0)
            {
                try
                {
                    Guid   headerRowID = (Guid)dgvHeader.SelectedCells[0].OwningRow.Cells["HeaderRowID"].Value;
                    int    link        = int.Parse(Tools.isNull(dgvHeader.SelectedCells[0].OwningRow.Cells["Link"].Value, string.Empty).ToString());
                    string pin         = Tools.isNull(dgvHeader.SelectedCells[0].OwningRow.Cells["PIN"].Value, string.Empty).ToString();

                    string Nama = Tools.isNull(dgvHeader.SelectedCells[0].OwningRow.Cells["Nama"].Value, string.Empty).ToString();

                    if (pin == string.Empty || pin == "")
                    {
                        try
                        {
                            DateTime fromDate = (DateTime)rdbTanggal.FromDate;
                            DateTime toDate   = (DateTime)rdbTanggal.ToDate;
                            DataSet  ds       = new DataSet();
                            using (Database db = new Database(GlobalVar.DBName))
                            {
                                db.Commands.Add(db.CreateCommand("usp_BiayaOperasional_LIST"));
                                db.Commands[0].Parameters.Add(new Parameter("@FromDate", SqlDbType.DateTime, fromDate));
                                db.Commands[0].Parameters.Add(new Parameter("@ToDate", SqlDbType.DateTime, toDate));
                                ds = db.Commands[0].ExecuteDataSet();
                            }
                            GenerateExcell(ds);
                            MessageBox.Show("Belum Isi PIN");
                            return;
                        }
                        catch (Exception ex)
                        {
                            Error.LogError(ex);
                        }
                    }

                    if (link == 1)
                    {
                        MessageBox.Show("Biaya Operasional sudah di-link..");
                        return;
                    }

                    string _recordID = Tools.CreateFingerPrint(GlobalVar.PerusahaanID, SecurityManager.UserInitial);
                    string src       = "OUT";


                    _recordID = BKK.GetRecordIDBukti(_recordID, src);

                    DateTime _Tanggal = GlobalVar.DateOfServer.Date;
                    Guid     _rowID = Guid.NewGuid();
                    string   _noBukti = Numerator.BookNumerator("BKK", _Tanggal);
                    string   _recordIDDetail; Guid _rowIDDetail;
                    string   noACC         = "";
                    string   _uraianDetail = "";
                    string   _noperkiraan  = "";
                    double   _rpbiaya      = 0;
                    double   _rpSisaBudget = 0;
                    //string _attachment = "";

                    using (Database db = new Database(GlobalVar.DBName))
                    {
                        //db.BeginTransaction();
                        BKK.AddHeader(db, _rowID, _rowID, _recordID, _noBukti, "", src, _Tanggal, Nama, "", "", SecurityManager.UserName, "", "");

                        foreach (DataGridViewRow row in dgvDetail.Rows)
                        {
                            _rpSisaBudget = double.Parse(Tools.isNull(row.Cells["SisaBudget"].Value, "0").ToString());
                            _rpbiaya      = double.Parse(Tools.isNull(row.Cells["RpBiayaAcc"].Value, "0").ToString());

                            if (_rpSisaBudget < 0)
                            {
                                _rpbiaya = double.Parse(Tools.isNull(row.Cells["RpBiayaACC11"].Value, "0").ToString());
                            }

                            _noperkiraan  = Tools.isNull(row.Cells["NoPerkiraan"].Value, string.Empty).ToString();
                            _uraianDetail = Tools.isNull(row.Cells["Keterangan"].Value, string.Empty).ToString();

                            _recordIDDetail = Tools.CreateFingerPrint(GlobalVar.PerusahaanID, SecurityManager.UserInitial);
                            _rowIDDetail    = Guid.NewGuid();

                            if (_rpbiaya > 0)
                            {
                                BKK.AddDetail(db, _rowIDDetail, _rowID, _recordIDDetail, _recordID, "", "", "", noACC, _noperkiraan, _uraianDetail, _rpbiaya.ToString());
                            }
                        }
                        //db.CommitTransaction();
                    }


                    using (Database db = new Database(GlobalVar.DBName))
                    {
                        db.Commands.Add(db.CreateCommand("usp_BiayaOperasional_UPDATE"));
                        db.Commands[0].Parameters.Add(new Parameter("@RowID", SqlDbType.UniqueIdentifier, headerRowID));
                        db.Commands[0].Parameters.Add(new Parameter("@Link", SqlDbType.Int, 1));
                        db.Commands[0].Parameters.Add(new Parameter("@LastUpdatedBy", SqlDbType.VarChar, SecurityManager.UserID));
                        db.Commands[0].ExecuteNonQuery();
                    }

                    MessageBox.Show("Link data Biaya operasional ke BKK berhasil. Silahkan cek BKK no. " + _noBukti + " tanggal " + _Tanggal.ToString("dd-MM-yyyy"));

                    cmdSearch_Click(sender, e);

                    dgvHeader.FindRow("HeaderRowID", headerRowID.ToString());
                }
                catch (Exception ex)
                {
                    Error.LogError(ex);
                }
            }
        }
示例#4
0
        private void cmdSave_Click(object sender, EventArgs e)
        {
            //if (lookupPerkiraanKoneksi1.NoPerkiraan == "" || lookupPerkiraanKoneksi1.NoPerkiraan == "[CODE]")
            //{
            //    MessageBox.Show("No Perkiraan masih kosong.");
            //    return;
            //}

            bool isPrinted = LookupInfoValue.CekPrintBs();

            if (formMode == enumformMode.New)
            {
                if (txtAcc.Text == "")
                {
                    MessageBox.Show("Masih ada Kasbon yang belum diselesaikan, dan belum ada PIN dari HO.");
                    lookupPegawai1.Focus();
                    return;
                }

                if (!validate())
                {
                    return;
                }
                DateTime _Tanggal = (DateTime)tbTanggal.DateValue;
                if (PeriodeClosing.IsKasirClosed(_Tanggal))
                {
                    MessageBox.Show("Sudah Closing!");
                    return;
                }
                _RowID = Guid.NewGuid();
                string _RecordID          = ISA.Common.Tools.CreateShortFingerPrint(GlobalVar.PerusahaanID, SecurityManager.UserInitial, 1);
                string _RecordIDBKKDetail = ISA.Common.Tools.CreateShortFingerPrint(GlobalVar.PerusahaanID, SecurityManager.UserInitial, 2);
                string _NoBKK             = Numerator.BookNumerator("BKK", tbTanggal.DateValue);
                string _NoBukti           = Numerator.BookNumerator("BON", tbTanggal.DateValue);
                try
                {
                    using (Database db = new Database(GlobalVar.DBName))
                    {
                        db.Commands.Add(db.CreateCommand("usp_Kasbon_INSERT"));
                        db.Commands[0].Parameters.Add(new Parameter("@RowID", SqlDbType.UniqueIdentifier, _RowID));
                        db.Commands[0].Parameters.Add(new Parameter("@RecordID", SqlDbType.VarChar, _RecordID));
                        db.Commands[0].Parameters.Add(new Parameter("@NIP", SqlDbType.VarChar, lookupPegawai1.Nip));
                        db.Commands[0].Parameters.Add(new Parameter("@Nama", SqlDbType.VarChar, lookupPegawai1.Nama));
                        db.Commands[0].Parameters.Add(new Parameter("@UnitKerja", SqlDbType.VarChar, lookupPegawai1.Unitkerja));
                        db.Commands[0].Parameters.Add(new Parameter("@NoBukti", SqlDbType.VarChar, _NoBukti));
                        db.Commands[0].Parameters.Add(new Parameter("@Tgl", SqlDbType.DateTime, tbTanggal.DateValue));
                        db.Commands[0].Parameters.Add(new Parameter("@Keperluan", SqlDbType.VarChar, tbKeperluan.Text.Trim()));
                        db.Commands[0].Parameters.Add(new Parameter("@BKKNo1", SqlDbType.VarChar, _NoBKK));
                        db.Commands[0].Parameters.Add(new Parameter("@BKKRp1", SqlDbType.Money, tbNominal.Text));
                        db.Commands[0].Parameters.Add(new Parameter("@Total1", SqlDbType.Money, tbNominal.Text));
                        db.Commands[0].Parameters.Add(new Parameter("@Kode", SqlDbType.VarChar, ""));
                        db.Commands[0].Parameters.Add(new Parameter("@Sub", SqlDbType.VarChar, ""));
                        db.Commands[0].Parameters.Add(new Parameter("@Hari", SqlDbType.VarChar, tbHari.Text));
                        db.Commands[0].Parameters.Add(new Parameter("@NoPerkiraan", SqlDbType.VarChar, lookupPerkiraanKoneksi1.NoPerkiraan));
                        db.Commands[0].Parameters.Add(new Parameter("@LastUpdatedBy", SqlDbType.VarChar, SecurityManager.UserID));
                        db.BeginTransaction();
                        db.Commands[0].ExecuteNonQuery();
                        BKK.AddHeader(db, _RowID, _RowID, BKK.GetRecordIDBukti(_RecordID, "BSA"), _NoBKK, "", "BSA", (DateTime)tbTanggal.DateValue, lookupPegawai1.Nama, "", "", SecurityManager.UserName, "", "TT");
                        BKK.AddDetail(db, Guid.NewGuid(), _RowID, _RecordIDBKKDetail, BKK.GetRecordIDBukti(_RecordID, "BSA"), "", "", "", "", lookupPerkiraanKoneksi1.NoPerkiraan, tbKeperluan.Text.Trim() + " (" + _NoBukti + ")", tbNominal.Text);
                        db.CommitTransaction();
                    }
                    string nominal = tbNominal.GetDoubleValue.ToString("#,###");

                    if (isPrinted)
                    {
                        cetakLaporan(_NoBKK, tbKeperluan.Text.Trim() + " (" + _NoBukti + ")", nominal, tbTanggal.DateValue.Value.ToString("dd/MM/yyyy"), "K");
                    }
                    frmKasbonBrowse frm = new frmKasbonBrowse();
                    frm = (frmKasbonBrowse)Caller;
                    //frm.KasbonRefresh(_RowID);
                    frm.KasbonRefresh();
                    frm.KasbonFindRow("RowID", _RowID.ToString());
                    this.Close();
                }
                catch (Exception ex)
                {
                    Error.LogError(ex);
                }
            }
            else
            {
                if (tbSisa.Text != "0")
                {
                    MessageBox.Show("Masih ada sisa BS, tidak boleh di update.");
                    return;
                }
                if (tbRpTrm.Text != "0" && bankID == "")
                {
                    MessageBox.Show("Detail transfer belum diisi.");
                    return;
                }

                string noVJU = "", noBKK3 = "", noBKM3 = "", noTRM3 = "";
                double rpVJU = 0, rpBKK3 = 0, rpBKM3 = 0, rpTRM3 = 0, rpTotle = 0, rpTotku = 0;

                if (dtVoucher.Rows.Count > 0)
                {
                    noVJU = Numerator.BookNumerator("VJU", tbTanggal.DateValue);
                    rpVJU = Convert.ToDouble(tbTotal.Text);
                }
                if (selisih < 0)
                {
                    rpTotku = selisih * -1;
                    rpBKK3  = Convert.ToDouble(tbBKK.Text);
                    noBKK3  = Numerator.BookNumerator("BKK", tbTanggal.DateValue);
                }
                else
                {
                    rpTotle = Convert.ToDouble(tbBKM.Text) + Convert.ToDouble(tbRpTrm.Text);
                    if (cbBkm.Checked == true)
                    {
                        rpBKM3 = Convert.ToDouble(tbBKM.Text);
                        noBKM3 = Numerator.BookNumerator("BKM", tbTanggal.DateValue);
                    }

                    if (cbTrm.Checked == true)
                    {
                        rpTRM3 = Convert.ToDouble(tbRpTrm.Text);
                        noTRM3 = Numerator.BookNumerator("BBM", tbTanggal.DateValue);
                    }
                }

                try
                {
                    using (Database db = new Database(GlobalVar.DBName))
                    {
                        db.BeginTransaction();

                        db.Commands.Add(db.CreateCommand("usp_Kasbon_UPDATE"));
                        db.Commands[0].Parameters.Add(new Parameter("@RowID", SqlDbType.UniqueIdentifier, _RowID));
                        db.Commands[0].Parameters.Add(new Parameter("@JVNo1", SqlDbType.VarChar, noVJU));
                        db.Commands[0].Parameters.Add(new Parameter("@BKKNo3", SqlDbType.VarChar, noBKK3));
                        db.Commands[0].Parameters.Add(new Parameter("@BKMNo3", SqlDbType.VarChar, noBKM3));
                        db.Commands[0].Parameters.Add(new Parameter("@TRNNo3", SqlDbType.VarChar, noTRM3));
                        db.Commands[0].Parameters.Add(new Parameter("@JVRp1", SqlDbType.Money, rpVJU));
                        db.Commands[0].Parameters.Add(new Parameter("@Total2", SqlDbType.Money, Convert.ToDouble(tbTotal.Text)));
                        db.Commands[0].Parameters.Add(new Parameter("@BKKRp3", SqlDbType.Money, rpBKK3));
                        db.Commands[0].Parameters.Add(new Parameter("@BKMRp3", SqlDbType.Money, rpBKM3));
                        db.Commands[0].Parameters.Add(new Parameter("@TRNRp3", SqlDbType.Money, rpTRM3));
                        db.Commands[0].Parameters.Add(new Parameter("@Totle3", SqlDbType.Money, rpTotle));
                        db.Commands[0].Parameters.Add(new Parameter("@Totku3", SqlDbType.Money, rpTotku));
                        db.Commands[0].Parameters.Add(new Parameter("@LastUpdatedBy", SqlDbType.VarChar, SecurityManager.UserID));
                        if (_biayaOperasionalRowId != Guid.Empty)
                        {
                            db.Commands[0].Parameters.Add(new Parameter("@BiayaOperasionalRowID", SqlDbType.UniqueIdentifier, _biayaOperasionalRowId));
                        }
                        db.Commands[0].ExecuteNonQuery();


                        if (dtVoucher.Rows.Count > 0)
                        {
                            string vjRecID = _RecordID + "X";

                            VoucherJournal.AddHeader(db, _RowID, _RowID, vjRecID, "UM", DateTime.Today, noVJU, tbKeperluan.Text.Trim() + " (" + TBNoKasbon.Text + ")", "", "", SecurityManager.UserName, "", "", "", "", 0, true);

                            foreach (DataRow dr in dtVoucher.Rows)
                            {
                                VoucherJournal.AddDetail(db, (Guid)dr["RowID"], _RowID, dr["RecordID"].ToString(), vjRecID, "", "", dr["NoAcc"].ToString(), "", dr["NoPerkiraan"].ToString(), dr["Keterangan"].ToString() + " (" + TBNoKasbon.Text + ")", (Double)dr["Debet"], 0, true);
                            }


                            if (isPrinted)
                            {
                                cetakLaporanVju(noVJU, String.Format("{0:dd/MM/yyyy}", DateTime.Today));
                            }
                        }

                        if (cbBkm.Checked == true)
                        {
                            Guid   rowID  = Guid.NewGuid();
                            string recIDD = Tools.CreateShortFingerPrint(GlobalVar.PerusahaanID, SecurityManager.UserInitial, 2);
                            string uraian = "KELEBIHAN BS " + tbKeperluan.Text.Trim() + " (" + TBNoKasbon.Text + ")";
                            BKM.AddHeader(db, rowID, _RowID, BKM.GetRecordIDBukti(_RecordID, "BSL"), noBKM3, "", "BSL", DateTime.Today, lookupPegawai1.Nama, "", "", SecurityManager.UserName, "");
                            BKM.AddDetail(db, Guid.NewGuid(), rowID, recIDD, BKM.GetRecordIDBukti(_RecordID, "BSL"), "", "", "", "", "", uraian, rpBKM3.ToString());

                            if (isPrinted)
                            {
                                cetakLaporan(noBKM3, uraian, rpBKM3.ToString("#,###"), String.Format("{0:dd/MM/yyyy}", DateTime.Today), "M");
                            }
                        }

                        if (cbBkk.Checked == true)
                        {
                            Guid   rowID  = Guid.NewGuid();
                            string recIDD = Tools.CreateShortFingerPrint(GlobalVar.PerusahaanID, SecurityManager.UserInitial, 2);
                            string uraian = "KEKURANGAN BS " + tbKeperluan.Text.Trim() + " (" + TBNoKasbon.Text + ")";
                            BKK.AddHeader(db, rowID, _RowID, BKK.GetRecordIDBukti(_RecordID, "BSK"), noBKK3, "", "BSK", DateTime.Today, lookupPegawai1.Nama, "", "", SecurityManager.UserName, "", "");
                            BKK.AddDetail(db, Guid.NewGuid(), rowID, recIDD, BKK.GetRecordIDBukti(_RecordID, "BSK"), "", "", "", "", "", uraian, rpBKK3.ToString());

                            if (isPrinted)
                            {
                                cetakLaporan(noBKK3, uraian, rpBKK3.ToString("#,###"), String.Format("{0:dd/MM/yyyy}", DateTime.Today), "K");
                            }
                        }

                        if (cbTrm.Checked == true)
                        {
                            Guid   rowID  = _RowID;
                            string uraian = "KELEBIHAN BS " + tbKeperluan.Text.Trim() + " (" + TBNoKasbon.Text + ")";

                            TransferBank.addHeader(db, rowID, _RowID, _RecordID.TrimEnd() + "8", DateTime.Today, noTRM3, "M", bankID, bankAsal, "", "", SecurityManager.UserName, lookupPegawai1.Nama);
                            TransferBank.addDetail(db, rowID, rowID, _RecordID.TrimEnd() + "8", _RecordID.TrimEnd() + "8", "", uraian, bankAsal, "", nomor, DateTime.Today, rpTRM3.ToString(), "", "", "", "", bankID, "", "");

                            Bank.AddBankDetail(db, rowID, Guid.Empty, noTRM3, "", Guid.Empty, "", DateTime.Today, "BBM", "TRANSFER DARI : " + uraian, "IDR", rpTRM3.ToString(), "0", DateTime.Today, DateTime.Today, "", "", "", "", "", bankID, _RecordID.TrimEnd() + "8");
                        }

                        db.CommitTransaction();
                    }

                    frmKasbonBrowse frm = new frmKasbonBrowse();
                    frm = (frmKasbonBrowse)Caller;
                    frm.KasbonRefresh(_RowID);
                    frm.KasbonFindRow("RowID", _RowID.ToString());
                    this.Close();
                }
                catch (Exception ex)
                {
                    Error.LogError(ex);
                }
            }
        }