Exemple #1
0
 private bool JournalValidating(enumJournalViewMode mode)
 {
     if (_state == enumState.Empty)
     {
         SetError(1, "Status DKN kosong");
     }
     if (_errorNo == 0)
     {
         if ((_perusahaanDariRowID == _perusahaanKeRowID) && (_cabangDariID == _cabangKeID))
         {
             SetError(3, "Jurnal : Bukan Transaksi DKN");
         }
     }
     if (_errorNo == 0)
     {
         if (_src == "KSR")
         {
             SetError(31, "DKN hasil import transaksi Kasir");
         }
     }
     if (_errorNo == 0)
     {
         if ((_journalRowID != null) && (_journalRowID != Guid.Empty))
         {
             SetError(5, "Sudah Pernah dijurnal");
         }
     }
     _dtDetail = DBGetDetail(_rowID);
     if (_errorNo == 0)
     {
         if (_dtDetail.Rows.Count <= 0)
         {
             SetError(2, "DKN tidak mempunyai detail.");
         }
     }
     return(_errorNo == 0);
 }
Exemple #2
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);
        }