예제 #1
0
        public static void AddJournalRetur(DataRow dr)
        {
            using (Database db = new Database())
            {
                string Gudang   = AutoJournal.GetGudangIDByPTRowID(GlobalVar.GetPT.SAP);
                Guid   RowID    = Guid.NewGuid();
                string RecordID = Tools.CreateFingerPrint();
                string Uraian   = string.Format("Journal Nota RJ - {0}", dr["Gudang"].ToString());
                double RpNota   = Convert.ToDouble(dr["RpNota"]);

                db.BeginTransaction();

                int result = Journal.AddHeader(db, GlobalVar.GetPT.SAP, RowID, RecordID, Convert.ToDateTime(dr["TglNota"]), dr["NoNota"].ToString(),
                                               Uraian, "TRD", Gudang, false);
                if (result != 0)
                {
                    db.RollbackTransaction();
                    throw new Exception("Error ADD header");
                }

                Uraian = string.Format("Piutang {0} - Nota Retur Jual", dr["Gudang"].ToString());
                result = Journal.AddDetail(db, Guid.NewGuid(), RowID, Tools.CreateFingerPrint(), RecordID, dr["NoPerkHI"].ToString(),
                                           Uraian, 0, RpNota, "K", Guid.Empty, RpNota
                                           );
                if (result != 0)
                {
                    db.RollbackTransaction();
                    throw new Exception("Error ADD Detail Kredit");
                }
                DataTable dtDetail = NoPerkRetur((Guid)dr["RowID"]);
                string    NoPerk   = string.Empty;
                foreach (DataRow drd in dtDetail.Rows)
                {
                    Uraian = string.Format("Piutang {0} - Nota Retur Jual {1}", dr["Gudang"].ToString(), drd["KLP"].ToString());
                    NoPerk = Tools.isNull(drd["NoPerkiraan"], "").ToString();
                    RpNota = Convert.ToDouble(drd["RpNota"]);

                    if (NoPerk.Equals(""))
                    {
                        db.RollbackTransaction();
                        throw new Exception("Error ADD Detail Debet, Kelompok " + drd["KLP"].ToString() + " belum ada No Perkiraan");
                    }

                    result = Journal.AddDetail(db, Guid.NewGuid(), RowID, Tools.CreateFingerPrint(), RecordID, NoPerk,
                                               Uraian, RpNota, 0, "D", Guid.Empty, RpNota
                                               );
                    if (result != 0)
                    {
                        db.RollbackTransaction();
                        throw new Exception("Error ADD Detail Debet");
                    }
                }
                UpdateTrans(db, RowID, (Guid)dr["RowID"], "RET");
                db.CommitTransaction();
            }
        }
예제 #2
0
        public string DBPostJournal()
        {
            string            result   = "Ok";
            List <clsJournal> ljournal = GetGLJournal(enumJournalViewMode.Post);

            if (ljournal.Count > 0)
            {
                using (Database db = new Database())
                {
                    db.BeginTransaction();
                    foreach (clsJournal j in ljournal)
                    {
                        if (result == "Ok")
                        {
                            if (j.DBPostJournal(db))
                            {
                                if (j.PerusahaanRowID == _perusahaanDariRowID)
                                {
                                    result = AutoJournal.UpdateJournalRowID(db, "usp_HubunganIstimewa_UPDATE_JournalRowID", _rowID, j.RowID);
                                }
                                //if (result != 0) SetError(result, "Update Journal ID di DKN : " + result);
                                foreach (clsDKN d in DKNChilds)
                                {
                                    if (d.PerusahaanDariRowID == j.PerusahaanRowID)
                                    {
                                        result = AutoJournal.UpdateJournalRowID(db,
                                                                                "usp_HubunganIstimewa_UPDATE_JournalRowID", d.RowID, j.RowID);
                                        if (result != "Ok")
                                        {
                                            SetError(3, "Update Journal ID di DKN : \n" + result);
                                            break;
                                        }
                                    }
                                }
                            }
                            else
                            {
                                result = "Gagal Posting";
                                SetError(1, "Gagal Posting");
                                break;
                            }
                        }
                    }
                    if (result == "Ok")
                    {
                        db.CommitTransaction();
                    }
                    else
                    {
                        db.RollbackTransaction();
                    }
                }
            }
            return(result);
        }
예제 #3
0
        public static void AddJournalIden(DataRow dr)
        {
            using (Database db = new Database())
            {
                string Gudang   = AutoJournal.GetGudangIDByPTRowID(GlobalVar.GetPT.SAP);
                Guid   RowID    = Guid.NewGuid();
                string RecordID = Tools.CreateFingerPrint();
                string Uraian   = string.Format("Journal Identifikasi Piutang - {0}", dr["Gudang"].ToString());
                double RpNota   = Convert.ToDouble(dr["Nominal"]);
                RpNota = Math.Abs(RpNota);
                double RpKredit = RpNota;
                double RpDebet  = RpNota;
                db.BeginTransaction();

                int result = Journal.AddHeader(db, GlobalVar.GetPT.SAP, RowID, RecordID, Convert.ToDateTime(dr["TglTrans"]), dr["NoTrans"].ToString(),
                                               Uraian, "TRD", Gudang, false);
                if (result != 0)
                {
                    db.RollbackTransaction();
                    throw new Exception("Error ADD header");
                }
                string NoPerkD = string.Empty;
                string NoPerkK = string.Empty;
                string UraianD = string.Empty;
                string UraianK = string.Empty;

                NoPerkD = dr["NoperkHI"].ToString();
                NoPerkK = "1103.51.100";
                UraianD = string.Format("{0} ", dr["Uraian"].ToString());
                UraianK = string.Format("{0}  ", dr["Uraian"].ToString());


                result = Journal.AddDetail(db, Guid.NewGuid(), RowID, Tools.CreateFingerPrint(), RecordID, NoPerkD,
                                           UraianD, RpDebet, 0, "D", Guid.Empty, RpNota
                                           );
                if (result != 0)
                {
                    db.RollbackTransaction();
                    throw new Exception("Error ADD Detail Debet");
                }
                result = Journal.AddDetail(db, Guid.NewGuid(), RowID, Tools.CreateFingerPrint(), RecordID, NoPerkK,
                                           UraianK, 0, RpKredit, "K", Guid.Empty, RpNota
                                           );
                if (result != 0)
                {
                    db.RollbackTransaction();
                    throw new Exception("Error ADD Detail Kredit");
                }
                UpdateTrans(db, RowID, (Guid)dr["RowID"], "KAS");
                db.CommitTransaction();
            }
        }
예제 #4
0
 private void SetNoPerkiraan04()
 {
     _noPerkiraan04 = "";
     if ((_perusahaanKeRowID != null) && (_perusahaanKeRowID != Guid.Empty) && (_perusahaanDariRowID != _perusahaanKeRowID))
     {
         if (!GlobalVar.IsNewDNKN)
         {
             // antar PT
             _noPerkiraan04 = AutoJournal.GetPerkiraanDKNPT(_perusahaanKeRowID, _perusahaanDariRowID);
         }
         else
         {
             _noPerkiraan04 = _jnsTransaksi.Equals(GlobalVar.GetTransaksi.HLL) ? AutoJournal.GetPerkiraanDKNPT_HLL(_perusahaanDariRowID) :
                              AutoJournal.GetPerkiraanNewDKNPT(_perusahaanKeRowID, _perusahaanDariRowID);
         }
     }
 }
예제 #5
0
        private void SetNoPerkiraan02()
        {
            switch (_jnsPengeluaran)
            {
            case "K":
            {
                _noPerkiraan02 = AutoJournal.GetPerkiraanKas(_kasRowID);
            } break;

            case "B":
            {
                _noPerkiraan02 = AutoJournal.GetPerkiraanRekening(_rekeningRowID);
            } break;

            case "G":
                goto case "B";
                //{
                //    //_noPerkiraan02 = AutoJournal.GetPerkiraanKoneksiDetail("HUTBG");
                //} break;
            }
        }
예제 #6
0
        private void SetNoPerkiraan01()
        {
            switch (_pengeluaranKe)
            {
            case 0:
                _noPerkiraan01 = AutoJournal.GetPerkiraanDKNCabang(_cabangKeID);
                break;

            case 1: break;

            case 2:
                if (_perusahaanDariRowID != _perusahaanKeRowID)
                {
                    if (!GlobalVar.IsNewDNKN)
                    {
                        _noPerkiraan01 = AutoJournal.GetPerkiraanDKNPT(_perusahaanDariRowID, _perusahaanKeRowID);
                    }
                    else
                    {
                        if (_jnsTransaksi == GlobalVar.GetTransaksi.HLL)
                        {
                            _noPerkiraan01 = AutoJournal.GetPerkiraanDKNPT_HLL(_perusahaanKeRowID);
                        }
                        else if (_jnsTransaksi == GlobalVar.GetTransaksi.PLL)
                        {
                            _noPerkiraan01 = AutoJournal.GetPerkiraanDKNPT_PLL(_perusahaanKeRowID);
                        }
                        else
                        {
                            _noPerkiraan01 = AutoJournal.GetPerkiraanNewDKNPT(_perusahaanDariRowID, _perusahaanKeRowID);
                        }
                    }
                }

                break;

            default: break;
            }
        }
예제 #7
0
        public static void AddJournalPSL(DataRow dr, bool isSimulate, ref DataTable dtHeader, ref DataTable dtDetail)
        {
            using (Database db = new Database())
            {
                //string Gudang = AutoJournal.GetGudangIDByPTRowID(GlobalVar.GetPT.SAP);
                string Gudang   = AutoJournal.GetGudangIDByPTRowID(GlobalVar.GetPT.OTO);
                Guid   RowID    = Guid.NewGuid();
                string RecordID = Tools.CreateFingerPrint();
                string Uraian   = string.Format("Journal Penyelesaian BS  - {0}", dr["Uraian"].ToString());
                double RpNota   = Convert.ToDouble(dr["Debet"]) + Convert.ToDouble(dr["Kredit"]);
                RpNota = Math.Abs(RpNota);
                double RpKredit = RpNota;
                double RpDebet  = RpNota;
                string Jenis    = dr["No_bukti"].ToString().Substring(4, 3);

                if (isSimulate == true)
                {
                    dtHeader.Rows.Add();
                    dtHeader.Rows[dtHeader.Rows.Count - 1]["RowID"]    = RowID;
                    dtHeader.Rows[dtHeader.Rows.Count - 1]["RecordID"] = RecordID;
                    dtHeader.Rows[dtHeader.Rows.Count - 1]["Tanggal"]  = dr["Tanggal"];
                    dtHeader.Rows[dtHeader.Rows.Count - 1]["NoReff"]   = dr["No_bukti"];
                    dtHeader.Rows[dtHeader.Rows.Count - 1]["Cbg"]      = Gudang;
                    dtHeader.Rows[dtHeader.Rows.Count - 1]["Src"]      = "BS";
                    dtHeader.Rows[dtHeader.Rows.Count - 1]["Uraian"]   = Uraian;
                    dtHeader.Rows[dtHeader.Rows.Count - 1]["Debet"]    = RpDebet;
                    dtHeader.Rows[dtHeader.Rows.Count - 1]["Kredit"]   = RpKredit;
                    dtHeader.Rows[dtHeader.Rows.Count - 1]["Owner"]    = "ALL";

                    db.Commands.Add(db.CreateCommand("usp_Perkiraan_LIST"));
                    db.Commands[0].Parameters.Add(new Parameter("@noPerkiraan", SqlDbType.VarChar, dr["NoPerkiraan"].ToString()));
                    DataTable dttemp = db.Commands[0].ExecuteDataTable();
                    db.Commands.Clear();

                    string NamaPerkiraan = "";
                    if (dttemp.Rows.Count > 0)
                    {
                        NamaPerkiraan = dttemp.Rows[0]["NamaPerkiraan"].ToString();
                    }

                    dtDetail.Rows.Add();
                    dtDetail.Rows[dtDetail.Rows.Count - 1]["RowID"]     = Guid.NewGuid();
                    dtDetail.Rows[dtDetail.Rows.Count - 1]["HeaderID"]  = RowID;
                    dtDetail.Rows[dtDetail.Rows.Count - 1]["RecordID"]  = Tools.CreateFingerPrint();
                    dtDetail.Rows[dtDetail.Rows.Count - 1]["HRecordID"] = RecordID;
                    if (Jenis == "BKK")
                    {
                        dtDetail.Rows[dtDetail.Rows.Count - 1]["NoPerkiraan"]   = "116099100";
                        dtDetail.Rows[dtDetail.Rows.Count - 1]["NamaPerkiraan"] = "UM Lainnya";
                    }
                    else
                    {
                        dtDetail.Rows[dtDetail.Rows.Count - 1]["NoPerkiraan"]   = dr["NoPerkiraan"];
                        dtDetail.Rows[dtDetail.Rows.Count - 1]["NamaPerkiraan"] = NamaPerkiraan;
                    }
                    dtDetail.Rows[dtDetail.Rows.Count - 1]["Uraian"]   = dr["Uraian"].ToString();
                    dtDetail.Rows[dtDetail.Rows.Count - 1]["DK"]       = 'D';
                    dtDetail.Rows[dtDetail.Rows.Count - 1]["Debet"]    = RpDebet;
                    dtDetail.Rows[dtDetail.Rows.Count - 1]["Kredit"]   = 0;
                    dtDetail.Rows[dtDetail.Rows.Count - 1]["MataUang"] = null;
                    dtDetail.Rows[dtDetail.Rows.Count - 1]["NilaiOri"] = RpNota;

                    dtDetail.Rows.Add();
                    dtDetail.Rows[dtDetail.Rows.Count - 1]["RowID"]     = Guid.NewGuid();
                    dtDetail.Rows[dtDetail.Rows.Count - 1]["HeaderID"]  = RowID;
                    dtDetail.Rows[dtDetail.Rows.Count - 1]["RecordID"]  = Tools.CreateFingerPrint();
                    dtDetail.Rows[dtDetail.Rows.Count - 1]["HRecordID"] = RecordID;
                    if (Jenis != "BKK")
                    {
                        dtDetail.Rows[dtDetail.Rows.Count - 1]["NoPerkiraan"]   = "116099100";
                        dtDetail.Rows[dtDetail.Rows.Count - 1]["NamaPerkiraan"] = "UM Lainnya";
                    }
                    else
                    {
                        dtDetail.Rows[dtDetail.Rows.Count - 1]["NoPerkiraan"]   = dr["NoPerkiraan"];
                        dtDetail.Rows[dtDetail.Rows.Count - 1]["NamaPerkiraan"] = NamaPerkiraan;
                    }
                    dtDetail.Rows[dtDetail.Rows.Count - 1]["Uraian"]   = dr["Uraian"].ToString();
                    dtDetail.Rows[dtDetail.Rows.Count - 1]["DK"]       = 'K';
                    dtDetail.Rows[dtDetail.Rows.Count - 1]["Debet"]    = 0;
                    dtDetail.Rows[dtDetail.Rows.Count - 1]["Kredit"]   = RpKredit;
                    dtDetail.Rows[dtDetail.Rows.Count - 1]["MataUang"] = null;
                    dtDetail.Rows[dtDetail.Rows.Count - 1]["NilaiOri"] = RpNota;
                }
                else
                {
                    db.BeginTransaction();

                    int result = Journal.AddHeader(db, GlobalVar.GetPT.OTO, RowID, RecordID, Convert.ToDateTime(dr["Tanggal"]), dr["No_bukti"].ToString(),
                                                   Uraian, "BS", Gudang, false);
                    if (result != 0)
                    {
                        db.RollbackTransaction();
                        throw new Exception("Error ADD header");
                    }
                    string NoPerkD = dr["NoPerkiraan"].ToString();
                    string NoPerkK = "116099100"; // "1160.99.100";
                    string UraianD = dr["Uraian"].ToString();
                    string UraianK = dr["Uraian"].ToString();
                    //string UraianK = "UM Lainnya "; //sebelumnya

                    if (dr["DKR"].ToString() == "K")
                    {
                        NoPerkK = dr["NoPerkiraan"].ToString();
                        NoPerkD = "116099100"; // "1160.99.100";
                        UraianK = dr["Uraian"].ToString();
                        UraianD = dr["Uraian"].ToString();
                        //      UraianD = "UM Lainnya "; //sebelumnya
                    }


                    result = Journal.AddDetail(db, Guid.NewGuid(), RowID, Tools.CreateFingerPrint(), RecordID, NoPerkD,
                                               UraianD, RpDebet, 0, "D", Guid.Empty, RpNota
                                               );
                    if (result != 0)
                    {
                        db.RollbackTransaction();
                        throw new Exception("Error ADD Detail Debet");
                    }
                    result = Journal.AddDetail(db, Guid.NewGuid(), RowID, Tools.CreateFingerPrint(), RecordID, NoPerkK,
                                               UraianK, 0, RpKredit, "K", Guid.Empty, RpNota
                                               );
                    if (result != 0)
                    {
                        db.RollbackTransaction();
                        throw new Exception("Error ADD Detail Kredit");
                    }
                    UpdateTrans(db, RowID, (Guid)dr["RowID"], "PSL");
                    db.CommitTransaction();
                }
            }
        }
예제 #8
0
        public static void AddJournalKRJ(DataRow dr)
        {
            using (Database db = new Database())
            {
                string Gudang   = AutoJournal.GetGudangIDByPTRowID(GlobalVar.GetPT.SAP);
                Guid   RowID    = Guid.NewGuid();
                string RecordID = Tools.CreateFingerPrint();
                string Uraian   = string.Format("Journal Koreksi Retur Penjualan - {0}", dr["Gudang"].ToString());
                double RpNota   = Convert.ToDouble(dr["RpKoreksi"]);
                RpNota = Math.Abs(RpNota);
                double RpKredit = RpNota;
                double RpDebet  = RpNota;
                db.BeginTransaction();

                int result = Journal.AddHeader(db, GlobalVar.GetPT.SAP, RowID, RecordID, Convert.ToDateTime(dr["TglKoreksi"]), dr["NoKoreksi"].ToString(),
                                               Uraian, "TRD", Gudang, false);
                if (result != 0)
                {
                    db.RollbackTransaction();
                    throw new Exception("Error ADD header");
                }
                string NoPerkD = string.Empty;
                string NoPerkK = string.Empty;
                string UraianD = string.Empty;
                string UraianK = string.Empty;
                if (dr["DKR"].ToString() == "D")
                {
                    NoPerkD = dr["NoperkHI"].ToString();
                    NoPerkK = dr["NoPerkiraan"].ToString();
                    UraianD = string.Format("Piutang {0} - Koreksi Retur Penjualan ", dr["Gudang"].ToString());
                    UraianK = string.Format("Piutang {0} - Koreksi Retur Penjualan {1}", dr["Gudang"].ToString(), dr["KLP"].ToString());
                }
                else
                {
                    NoPerkD = dr["NoPerkiraan"].ToString();
                    NoPerkK = dr["NoperkHI"].ToString();
                    UraianD = string.Format("Piutang {0} - Koreksi Retur Penjualan {1}", dr["Gudang"].ToString(), dr["KLP"].ToString());
                    UraianK = string.Format("Piutang {0} - Koreksi Retur Penjualan ", dr["Gudang"].ToString());
                }


                result = Journal.AddDetail(db, Guid.NewGuid(), RowID, Tools.CreateFingerPrint(), RecordID, NoPerkD,
                                           UraianD, RpDebet, 0, "D", Guid.Empty, RpNota
                                           );
                if (result != 0)
                {
                    db.RollbackTransaction();
                    throw new Exception("Error ADD Detail Debet");
                }
                result = Journal.AddDetail(db, Guid.NewGuid(), RowID, Tools.CreateFingerPrint(), RecordID, NoPerkK,
                                           Uraian, 0, RpKredit, "K", Guid.Empty, RpNota
                                           );
                if (result != 0)
                {
                    db.RollbackTransaction();
                    throw new Exception("Error ADD Detail Kredit");
                }


                UpdateTrans(db, RowID, (Guid)dr["RowID"], "KRJ");
                db.CommitTransaction();
            }
        }
예제 #9
0
        private int DBGetByRowID(Guid t_rowID)
        {
            SetError(0, "Ok");
            if ((t_rowID == null) || (t_rowID == Guid.Empty))
            {
                SetError(1, "ID DKN kosong");
            }
            if (_errorNo == 0)
            {
                try
                {
                    using (Database db = new Database())
                    {
                        db.Commands.Add(db.CreateCommand("usp_HubunganIstimewa_LIST"));
                        db.Commands[0].Parameters.Add(new Parameter("@RowID", SqlDbType.UniqueIdentifier, t_rowID));
                        DataTable dt = db.Commands[0].ExecuteDataTable();
                        if (dt.Rows.Count > 0)
                        {
                            DataRow dr = dt.Rows[0];
                            RowID = (Guid)Tools.isNull(dr["RowID"], Guid.Empty);
                            if (RowID != Guid.Empty)
                            {
                                _noBukti             = Tools.isNull(dr["NoBukti"], "").ToString();
                                _groupRowID          = (Guid)Tools.isNull(dr["GroupRowID"], Guid.Empty);
                                _isGroup             = (_groupRowID == Guid.Empty);
                                _tanggal             = (DateTime)Tools.isNull(dr["Tanggal"], DateTime.MinValue);
                                _tipeNota            = (enumTipeNota)int.Parse(Tools.isNull(dr["TipeNota"], "0").ToString());
                                _perusahaanDariRowID = (Guid)Tools.isNull(dr["PerusahaanDariRowID"], Guid.Empty);
                                _perusahaanKeRowID   = (Guid)Tools.isNull(dr["PerusahaanKeRowID"], Guid.Empty);
                                _cabangDariID        = Tools.isNull(dr["CabangDariID"], "").ToString();
                                _cabangKeID          = Tools.isNull(dr["CabangKeID"], "").ToString();
                                _gudangID            = AutoJournal.GetGudangIDByPTRowID(_perusahaanDariRowID);
                                _lingkupNota         = (_perusahaanDariRowID == _perusahaanKeRowID) ? enumLingkupNota.AntarCabang : enumLingkupNota.AntarPT;
                                //_noPerkiraan = DBGetNoPerkiraan();
                                _isPosted     = (bool)Tools.isNull(dr["IsPosted"], false);
                                _journalRowID = (Guid)Tools.isNull(dr["JournalRowID"], Guid.Empty);
                                if (_journalRowID != Guid.Empty)
                                {
                                    _isPosted = true;
                                }
                                _mataUangRowID = (Guid)Tools.isNull(dr["MataUangRowID"], Guid.Empty);
                                //if (Kodomain)
                                //{
                                //    _journalRowID2 = (Guid)Tools.isNull(dr["JournalRowID2"], Guid.Empty);
                                //    _journalStatus = ((_journalRowID2 != Guid.Empty)) ? enumJournalStatus.SudahJournal : enumJournalStatus.BelumJournal;
                                //}
                                //else
                                //{
                                _journalStatus = ((_isPosted) || (_journalRowID != Guid.Empty)) ? enumJournalStatus.SudahJournal : enumJournalStatus.BelumJournal;
                                //}

                                _src      = Tools.isNull(dr["Src"], "").ToString();
                                BranchTo  = Tools.isNull(dr["BranchTo"], "").ToString();
                                CompanyTo = (Guid)Tools.isNull(dr["CompanyTo"], Guid.Empty);
                            }
                        }

                        if (_groupRowID == Guid.Empty)
                        {
                            db.Commands.Clear();
                            db.Commands.Add(db.CreateCommand("usp_HubunganIstimewa_LIST_FILTER_Group"));
                            db.Commands[0].Parameters.Add(new Parameter("@GroupRowID", SqlDbType.UniqueIdentifier, _rowID));
                            dt = db.Commands[0].ExecuteDataTable();
                            if (dt.Rows.Count > 0)
                            {
                                foreach (DataRow dr in dt.Rows)
                                {
                                    Guid drowID = (Guid)Tools.isNull(dr["RowID"], Guid.Empty);
                                    if (drowID != Guid.Empty)
                                    {
                                        DKNChilds.Add(new clsDKN(drowID, _noBukti));
                                    }
                                }
                            }
                            _isGroup = (DKNChilds.Count > 0);
                        }
                    }
                }
                catch (Exception ex)
                {
                    string s = ex.Message;
                    SetError(2, "(DBGetByRowID) \n" + ex.Message);
                }
            }
            return(_errorNo);
        }
예제 #10
0
        public List <clsJournal> GetGLJournal(enumJournalViewMode mode)
        {
            List <clsJournal> _j = new List <clsJournal>();
            clsJournal        jh;
            clsJournalDetail  jd;

            _isPosted = false;

            if (JournalValidating(mode))
            {
                string l_cabangHO = clsPerusahaan.DBGetInitCabang(_perusahaanDariRowID);
                string l_noperk1, l_noperk2, l_uraian, l_dk1, l_dk2;
                double l_nominalRp, l_nominalOri;
                //double l_totalRp = 0;
                //double l_totalOri = 0;
                Guid          l_mataUangRowID;
                clsPerusahaan _hts = new clsPerusahaan("HTS");

                #region Journal #1
                // Insert Header#1 :
                jh = new clsJournal(_perusahaanDariRowID, _tanggal, _noBukti, "Journal DKN ", "DKN", _gudangID);

                // Insert Detail#1 di Header#1 :
                // Case : 1. CabangDari = CabangHO --> getPerkiraanDetal
                //        2. getPerkiraanDKNCabangDari
                if (CompanyTo == Guid.Empty)
                {
                    l_noperk1 = AutoJournal.GetPerkiraanDKNCabang(_cabangDariID);
                    l_noperk2 = (_perusahaanDariRowID == _perusahaanKeRowID) ?
                                AutoJournal.GetPerkiraanDKNCabang(_cabangKeID) :
                                ((_perusahaanDariRowID == _hts.RowID) ? AutoJournal.GetPerkiraanDKNHTS(_perusahaanKeRowID)
                                : AutoJournal.GetPerkiraanDKNPT(_perusahaanKeRowID));
                    l_dk1 = (_tipeNota == 0) ? "K" : "D";
                    l_dk2 = (_tipeNota == 0) ? "D" : "K";

                    foreach (DataRow dr in _dtDetail.Rows)
                    {
                        if (_cabangDariID == l_cabangHO)
                        {
                            l_noperk1 = dr["NoPerkiraan"].ToString();
                        }
                        l_uraian     = dr["Uraian"].ToString();
                        l_nominalRp  = double.Parse(Tools.isNull(dr["Nominal"], "0").ToString());
                        l_nominalOri = double.Parse(Tools.isNull(dr["NominalRp"], "0").ToString());
                        if (l_nominalRp == 0)
                        {
                            l_nominalRp = l_nominalOri;
                        }
                        l_mataUangRowID = (Guid)Tools.isNull(dr["MataUangRowID"], Guid.Empty);

                        //--> case 1 : jika cabangdari = cabangHO, bikin detilnya di sini
                        //                    if (_cabangDariID == l_cabangHO)
                        //                    {
                        jd = new clsJournalDetail(jh.RowID, l_noperk1, l_uraian, l_dk1, l_nominalRp,
                                                  l_mataUangRowID, l_nominalOri, _noBukti);
                        jh.AddDetail(jd);
                        //                    }
                        jd = new clsJournalDetail(jh.RowID, l_noperk2, l_uraian, l_dk2, l_nominalRp,
                                                  l_mataUangRowID, l_nominalOri, _noBukti);
                        jh.AddDetail(jd);

                        //l_totalRp = l_totalRp + l_nominalRp;
                        //l_totalOri = l_totalOri + l_nominalOri;
                    }
                }
                else
                {
                    //1
                    if (_tipeNota != 0)
                    {
                        l_dk1 = (_tipeNota == 0) ? "K" : "D"; //D
                        l_dk2 = (_tipeNota == 0) ? "D" : "K"; //K
                        //D
                        l_noperk1 = AutoJournal.GetPerkiraanDKNPT_PLL(CompanyTo);
                        //K
                        l_noperk2 = AutoJournal.GetPerkiraanDKNCabang(_cabangKeID);
                    }
                    else//0
                    {
                        l_dk2 = (_tipeNota == 0) ? "K" : "D"; //K
                        l_dk1 = (_tipeNota == 0) ? "D" : "K"; //D

                        l_noperk1 = AutoJournal.GetPerkiraanDKNCabang(_cabangKeID);
                        l_noperk2 = AutoJournal.GetPerkiraanDKNPT_HLL(CompanyTo);
                    }

                    foreach (DataRow dr in _dtDetail.Rows)
                    {
                        // if (_cabangDariID == l_cabangHO) l_noperk1 = dr["NoPerkiraan"].ToString();
                        l_uraian     = dr["Uraian"].ToString();
                        l_nominalRp  = double.Parse(Tools.isNull(dr["Nominal"], "0").ToString());
                        l_nominalOri = double.Parse(Tools.isNull(dr["NominalRp"], "0").ToString());
                        if (l_nominalRp == 0)
                        {
                            l_nominalRp = l_nominalOri;
                        }
                        l_mataUangRowID = (Guid)Tools.isNull(dr["MataUangRowID"], Guid.Empty);

                        //--> case 1 : jika cabangdari = cabangHO, bikin detilnya di sini
                        //                    if (_cabangDariID == l_cabangHO)
                        //                    {
                        jd = new clsJournalDetail(jh.RowID, l_noperk1, l_uraian, l_dk1, l_nominalRp,
                                                  l_mataUangRowID, l_nominalOri, _noBukti);
                        jh.AddDetail(jd);
                        //                    }
                        jd = new clsJournalDetail(jh.RowID, l_noperk2, l_uraian, l_dk2, l_nominalRp,
                                                  l_mataUangRowID, l_nominalOri, _noBukti);
                        jh.AddDetail(jd);

                        //l_totalRp = l_totalRp + l_nominalRp;
                        //l_totalOri = l_totalOri + l_nominalOri;
                    }
                }


                /*
                 *              // --> lha klu yang ini case 2 : klu cabangdari gak sama cabangHO, nambah detilnya di sini
                 *              // \m/ --> klu di YM, nongol smiley-icon metalll !!!!!
                 *              if (_cabangDariID != l_cabangHO)
                 *              {
                 *                  l_noperk = AutoJournal.GetPerkiraanDKNCabang(_cabangDariID);
                 *                  jd = new clsJournalDetail(jh.RowID, l_noperk, "HI Cabang " + _cabangDariID, l_dk, l_totalRp, _mataUangRowID, l_totalOri, _noBukti);
                 *                  jh.AddDetail(jd);
                 *              }
                 *
                 *              // Insert Detail#2 di Header#1 :
                 *              // Case : 1. PerusahaanDari = PerusahaanKe --> getPerkiraanDKNPTKe
                 *              //        2. getPerkiraanCabangKe
                 *              l_dk = (_tipeNota == 0) ? "D" : "K";
                 *              l_noperk = (_perusahaanDariRowID == _perusahaanKeRowID) ? AutoJournal.GetPerkiraanDKNCabang(_cabangKeID) : AutoJournal.GetPerkiraanDKNPT(_perusahaanKeRowID);
                 *              jd = new clsJournalDetail(jh.RowID, l_noperk, "Journal DKN", l_dk, l_totalRp, _mataUangRowID, l_totalOri, _noBukti);
                 *              jh.AddDetail(jd);
                 */
                _j.Add(jh);

                #endregion

                #region Journal #2
                // Insert Header#2 (Jika Beda PT) :
                if ((_perusahaanDariRowID != _perusahaanKeRowID))
                {
                    if (CompanyTo == Guid.Empty)
                    {
                        jh = new clsJournal(_perusahaanKeRowID, _tanggal, _noBukti, "Journal DKN", "DKN",
                                            clsPerusahaan.DBGetInitGudang(_perusahaanKeRowID));

                        l_dk1 = (_tipeNota == 0) ? "K" : "D";
                        l_dk2 = (_tipeNota == 0) ? "D" : "K";

                        l_noperk1  = (_perusahaanKeRowID == _hts.RowID) ? AutoJournal.GetPerkiraanDKNHTS(_perusahaanDariRowID) : AutoJournal.GetPerkiraanDKNPT(_perusahaanDariRowID);
                        l_noperk2  = AutoJournal.GetPerkiraanDKNCabang(_cabangKeID);
                        l_cabangHO = clsPerusahaan.DBGetInitCabang(_perusahaanKeRowID);
                        // Insert Detail#1 di Header#2 : getPerkiraanDKNPTDari
                        //jd = new clsJournalDetail(jh.RowID, AutoJournal.GetPerkiraanDKNPT(_perusahaanDariRowID),
                        //                    "Journal DKN", ((_tipeNota == 0) ? "K" : "D"), l_totalRp, _mataUangRowID,
                        //                    l_totalOri, _noBukti);
                        //jh.AddDetail(jd);

                        // Insert Detail#2 di Header#2 :
                        // case 1. cabangKe = cabangHOKe -> getPerkiraanDetail
                        //      2. getPerkiraanDKNCabangKe
                        //                    if (_cabangKeID == clsPerusahaan.DBGetInitCabang(_perusahaanKeRowID))
                        foreach (DataRow dr in _dtDetail.Rows)
                        {
                            if (_cabangKeID == l_cabangHO)
                            {
                                l_noperk2 = dr["NoPerkiraan"].ToString();
                            }
                            l_uraian     = dr["Uraian"].ToString();
                            l_nominalRp  = double.Parse(Tools.isNull(dr["Nominal"], "0").ToString());
                            l_nominalOri = double.Parse(Tools.isNull(dr["NominalRp"], "0").ToString());
                            if (l_nominalRp == 0)
                            {
                                l_nominalRp = l_nominalOri;
                            }
                            l_mataUangRowID = (Guid)Tools.isNull(dr["MataUangRowID"], Guid.Empty);

                            jd = new clsJournalDetail(jh.RowID, l_noperk1, l_uraian, l_dk1, l_nominalRp,
                                                      l_mataUangRowID, l_nominalOri, _noBukti);
                            jh.AddDetail(jd);

                            jd = new clsJournalDetail(jh.RowID, l_noperk2, l_uraian, l_dk2, l_nominalRp,
                                                      l_mataUangRowID, l_nominalOri, _noBukti);
                            jh.AddDetail(jd);
                        }

                        /*
                         *                  else
                         *                  {
                         *                      jd = new clsJournalDetail(jh.RowID, AutoJournal.GetPerkiraanDKNCabang(_cabangKeID),
                         *                                          "Journal DKN", ((_tipeNota == 0) ? "D" : "K"), l_totalRp, _mataUangRowID,
                         *                                          l_totalOri, _noBukti);
                         *                      jh.AddDetail(jd);
                         *                  }
                         */
                        _j.Add(jh);
                    }
                    else
                    {
                        /*
                         *                  else
                         *                  {
                         *                      jd = new clsJournalDetail(jh.RowID, AutoJournal.GetPerkiraanDKNCabang(_cabangKeID),
                         *                                          "Journal DKN", ((_tipeNota == 0) ? "D" : "K"), l_totalRp, _mataUangRowID,
                         *                                          l_totalOri, _noBukti);
                         *                      jh.AddDetail(jd);
                         *                  }
                         */
                        _j.Add(jh);
                    }
                }
                #endregion
            }
            else
            {
                if (_errorNo == 5)
                {
                    _isPosted = true;
                    if (DKNChilds.Count > 0)
                    {
                        foreach (clsDKN d in DKNChilds)
                        {
                            jh = new clsJournal(d._journalRowID);
                            SetError(jh.ErrNo, jh.ErrMsg);
                            if (jh.ErrNo == 0)
                            {
                                if (_j.Find(delegate(clsJournal j) { return(j.RowID == jh.RowID); }) == null)
                                {
                                    _j.Add(jh);
                                }
                                else
                                {
                                    break;
                                }
                            }
                        }
                    }
                    else
                    {
                        if ((Guid)Tools.isNull(_journalRowID, Guid.Empty) != Guid.Empty)
                        {
                            jh = new clsJournal(_journalRowID);
                            SetError(jh.ErrNo, jh.ErrMsg);
                            if (jh.ErrNo == 0)
                            {
                                _j.Add(jh);
                            }
                        }
                    }
                }
            }
            return(_j);
        }
예제 #11
0
        private void SetNoPerkiraan03()
        {
            _noPerkiraan03 = "";
            if (!string.IsNullOrEmpty(_cabangOriID) && (_cabangOriID != _cabangKeID))
            {
                // beda cabang lintas pt
                _noPerkiraan03 = AutoJournal.GetPerkiraanDKNCabang(_cabangOriID);
            }
            else if ((_perusahaanKeRowID != null) && (_perusahaanKeRowID != Guid.Empty) && (_perusahaanDariRowID != _perusahaanKeRowID))
            {
                // antar PT
                // klu trx pengeluaran cuma 1 record, musti dicari cabang HO penerima
                if (!GlobalVar.IsNewDNKN)//
                {
                    if (string.IsNullOrEmpty(_cabangOriID) || (_cabangKeID == _cabangOriID))
                    {
                        // klu trx pengeluaran cuma 1 record, gak perlu nyari trx penerimaan-nya ...
                        List <Parameter> prm = new List <Parameter>();
                        prm.Add(new Parameter("@GroupRowID", SqlDbType.UniqueIdentifier, _rowID));
                        DataTable dt = Tools.DBGetDataTable("usp_PenerimaanUang_LIST_FILTER_Group", prm);
                        if (dt.Rows.Count > 0)
                        {
                            string _jnsPenerimaan = Tools.isNull(dt.Rows[0]["JnsPenerimaan"], "").ToString();
                            switch (_jnsPenerimaan)
                            {
                            case "K":
                            {
                                Guid _kasTrmRowID = (Guid)Tools.isNull(dt.Rows[0]["KasRowID"], Guid.Empty);
                                _noPerkiraan03 = AutoJournal.GetPerkiraanKas(_kasTrmRowID);
                            } break;

                            case "B":
                            {
                                Guid _rekRowID = (Guid)Tools.isNull(dt.Rows[0]["RekeningRowID"], Guid.Empty);
                                _noPerkiraan03 = AutoJournal.GetPerkiraanRekening(_rekRowID);
                            } break;

                            default: break;
                            }
                        }
                    }
                    else
                    {
                        _noPerkiraan03 = AutoJournal.GetPerkiraanDKNPT(_perusahaanKeRowID, _perusahaanDariRowID);
                    }
                }
                else // DKN baru
                {
                    if (string.IsNullOrEmpty(_cabangOriID) || (_cabangKeID == _cabangOriID))
                    {
                        // klu trx pengeluaran cuma 1 record, gak perlu nyari trx penerimaan-nya ...
                        List <Parameter> prm = new List <Parameter>();
                        prm.Add(new Parameter("@GroupRowID", SqlDbType.UniqueIdentifier, _rowID));
                        DataTable dt = Tools.DBGetDataTable("usp_PenerimaanUang_LIST_FILTER_Group", prm);
                        if (dt.Rows.Count > 0)
                        {
                            string _jnsPenerimaan = Tools.isNull(dt.Rows[0]["JnsPenerimaan"], "").ToString();
                            switch (_jnsPenerimaan)
                            {
                            case "K":
                            {
                                Guid _kasTrmRowID = (Guid)Tools.isNull(dt.Rows[0]["KasRowID"], Guid.Empty);
                                _noPerkiraan03 = AutoJournal.GetPerkiraanKas(_kasTrmRowID);
                            } break;

                            case "B":
                            {
                                Guid _rekRowID = (Guid)Tools.isNull(dt.Rows[0]["RekeningRowID"], Guid.Empty);
                                _noPerkiraan03 = AutoJournal.GetPerkiraanRekening(_rekRowID);
                            } break;

                            default: break;
                            }
                        }
                    }
                    else
                    {
                        _noPerkiraan03 =
                            _jnsTransaksi.Equals(GlobalVar.GetTransaksi.HLL) ? AutoJournal.GetPerkiraanDKNPT_HLL(_perusahaanDariRowID) :
                            AutoJournal.GetPerkiraanNewDKNPT(_perusahaanKeRowID, _perusahaanDariRowID);
                    }
                }
            }
        }
예제 #12
0
        private int DBGetByRowID(Guid t_rowID)
        {
            int nresult = 0;

            if ((t_rowID == null) || (t_rowID == Guid.Empty))
            {
                nresult = 1;
            }
            else
            {
                try
                {
                    using (Database db = new Database())
                    {
                        db.Commands.Add(db.CreateCommand("usp_PengeluaranUang_LIST"));
                        db.Commands[0].Parameters.Add(new Parameter("@RowID", SqlDbType.UniqueIdentifier, t_rowID));
                        DataTable dt = db.Commands[0].ExecuteDataTable();
                        if (dt.Rows.Count > 0)
                        {
                            DataRow dr = dt.Rows[0];
                            _dr    = dr;
                            _rowID = t_rowID;
                            _perusahaanDariRowID = (Guid)dr["PerusahaanDariRowID"];
                            _perusahaanKeRowID   = (Convert.IsDBNull(dr["PerusahaanKeRowID"]) ? Guid.Empty : (Guid)dr["PerusahaanKeRowID"]);
                            _noBukti             = dr["NoBukti"].ToString();
                            _tanggal             = (Convert.IsDBNull(dr["Tanggal"])) ? DateTime.MinValue : (DateTime)dr["Tanggal"];
                            _dueDateGiro         = (Convert.IsDBNull(dr["DueDateGiro"])) ? DateTime.MinValue : (DateTime)dr["DueDateGiro"];
                            _cabangDariID        = dr["CabangDariID"].ToString();
                            _cabangKeID          = (Convert.IsDBNull(dr["CabangkeID"]) ? "" : dr["CabangKeID"].ToString());
                            _cabangOriID         = (Convert.IsDBNull(dr["CabangIDOri"]) ? _cabangKeID : dr["CabangIDOri"].ToString());
                            _gudangID            = AutoJournal.GetGudangIDByPTRowID(_perusahaanDariRowID);
                            _uraian         = (Convert.IsDBNull(dr["Uraian"]) ? "" : dr["Uraian"].ToString());
                            _jnsPengeluaran = dr["JnsPengeluaran"].ToString();
                            //                            _jnsTransaksiRowID = dr["JnsTransaksiRowID"];
                            _pengeluaranKe = Convert.IsDBNull(dr["PengeluaranKe"]) ? 0 : int.Parse(dr["PengeluaranKe"].ToString());
                            _noPerkiraan01 = dr["NoPerkiraan01"].ToString();
                            _nominal       = (Convert.IsDBNull(dr["Nominal"])) ? 0 : double.Parse(dr["Nominal"].ToString());
                            _nominalRp     = (Convert.IsDBNull(dr["NominalRp"])) ? _nominal : double.Parse(dr["NominalRp"].ToString());
                            if (_nominalRp == 0)
                            {
                                _nominalRp = _nominal;
                            }
                            _statusApproval = (GlobalVar.enumStatusApproval)dr.Field <byte>("StatusApproval");
                            _kasRowID       = (Guid)Tools.isNull(dr["KasRowID"], Guid.Empty);
                            _rekeningRowID  = (Guid)Tools.isNull(dr["RekeningRowID"], Guid.Empty);
                            _journalRowID   = (Guid)Tools.isNull(dr["JournalRowID"], Guid.Empty);
                            _mataUangRowID  = (Guid)Tools.isNull(dr["MataUangRowID"], Guid.Empty);
                            _jnsTransaksi   = (Guid)Tools.isNull(dr["JnsTransaksiRowID"], Guid.Empty);
                            _unitusaha      = dr["UnitUsaha"].ToString();
                            if ((_perusahaanKeRowID == Guid.Empty) || (_cabangKeID != _cabangOriID))
                            {
                                GetPerusahaanKeRowID();
                            }
                            SetNoPerkiraan01();
                            SetNoPerkiraan02();
                            if ((_perusahaanKeRowID != null) && (_perusahaanKeRowID != Guid.Empty) && (_perusahaanKeRowID != _perusahaanDariRowID))
                            {
                                SetNoPerkiraan03();
                                SetNoPerkiraan04();

                                if (!GlobalVar.IsNewDNKN && (_jnsTransaksi != GlobalVar.GetTransaksi.PLL || _jnsTransaksi != GlobalVar.GetTransaksi.HLL))
                                {
                                    _journal2 = true;
                                }
                            }
                            else
                            {
                                _journal2 = false;
                            }
                            _state = enumState.Update;
                        }
                        else
                        {
                            nresult = 2;
                        }
                    }
                }
                catch (Exception ex)
                {
                    nresult = 3;
                    string s = ex.Message;
                }
            }
            if (nresult != 0)
            {
                Kosongkan();
            }
            return(nresult);
        }