예제 #1
0
        public BukuPiutangModel GenBukuPiutang(BukuKasModel bukuKas)
        {
            var bukuPiutang = CreateBukuPiutang(bukuKas);
            var result      = Save(bukuPiutang);

            return(result);
        }
예제 #2
0
        public void Update(BukuKasModel bukuKas)
        {
            var sSql = @"
                UPDATE
                    BukuKas 
                SET 
                    TglBuku = @TglBuku, 
                    JamBuku = @JamBuku, 
                    UserrID = @UserrID,
                    NilaiKas = @NilaiKas, 
                    JenisTrsKasirID = @JenisTrsKasirID,
                    ReffID = @ReffID, 
                    Keterangan = @Keterangan,
                    PihakKetigaID = @PihakKetigaID
                WHERE
                    BukuKasID = @BukuKasID ";

            using (var conn = new SqlConnection(_connString))
                using (var cmd = new SqlCommand(sSql, conn))
                {
                    cmd.AddParam("@BukuKasID", bukuKas.BukuKasID);
                    cmd.AddParam("@TglBuku", bukuKas.TglBuku.ToTglYMD());
                    cmd.AddParam("@JamBuku", bukuKas.JamBuku);
                    cmd.AddParam("@UserrID", bukuKas.UserrID);
                    cmd.AddParam("@NilaiKas", bukuKas.NilaiKas);
                    cmd.AddParam("@JenisTrsKasirID", bukuKas.JenisTrsKasirID);
                    cmd.AddParam("@ReffID", bukuKas.ReffID);
                    cmd.AddParam("@Keterangan", bukuKas.Keterangan);
                    cmd.AddParam("@PihakKetigaID", bukuKas.PihakKetigaID);
                    conn.Open();
                    cmd.ExecuteNonQuery();
                }
        }
예제 #3
0
        public void Insert(BukuKasModel bukuKas)
        {
            var sSql = @"
                INSERT INTO
                    BukuKas (
                        BukuKasID, TglBuku, JamBuku, UserrID,
                        NilaiKas, JenisTrsKasirID,
                        ReffID, Keterangan, PihakKetigaID)
                VALUES (
                        @BukuKasID, @TglBuku, @JamBuku, @UserrID,
                        @NilaiKas, @JenisTrsKasirID,
                        @ReffID, @Keterangan, @PihakKetigaID) ";

            using (var conn = new SqlConnection(_connString))
                using (var cmd = new SqlCommand(sSql, conn))
                {
                    cmd.AddParam("@BukuKasID", bukuKas.BukuKasID);
                    cmd.AddParam("@TglBuku", bukuKas.TglBuku.ToTglYMD());
                    cmd.AddParam("@JamBuku", bukuKas.JamBuku);
                    cmd.AddParam("@UserrID", bukuKas.UserrID);

                    cmd.AddParam("@NilaiKas", bukuKas.NilaiKas);
                    cmd.AddParam("@JenisTrsKasirID", bukuKas.JenisTrsKasirID);

                    cmd.AddParam("@ReffID", bukuKas.ReffID);
                    cmd.AddParam("@Keterangan", bukuKas.Keterangan);
                    cmd.AddParam("@PihakKetigaID", bukuKas.PihakKetigaID);
                    conn.Open();
                    cmd.ExecuteNonQuery();
                }
        }
예제 #4
0
        public BukuPiutangModel GenBukuPiutangLunas(BukuKasModel bukuKas)
        {
            //  ambil data piutang lunas lama
            BukuPiutangModel bukuPiutangLama = null;
            var bukuPiutangID = GetBukuPiutangID(bukuKas);

            if (bukuPiutangID != null)
            {
                bukuPiutangLama = GetData(bukuPiutangID);
                var listLunasLama = bukuPiutangLama.ListLunas.ToList();
                for (int i = 0; i <= listLunasLama.Count - 1; i++)
                {
                    if (listLunasLama[i].BukuKasID == bukuKas.BukuKasID)
                    {
                        listLunasLama.RemoveAt(i);
                        break;
                    }
                }
                bukuPiutangLama.ListLunas = listLunasLama;
            }

            //  ambil data piutang yang baru
            var bukuPiutangBaru = GetData(bukuKas.ReffID);
            var piutangLunas    = new BukuPiutangLunasModel
            {
                TglLunas   = bukuKas.TglBuku,
                JamLunas   = bukuKas.JamBuku,
                NilaiLunas = bukuKas.NilaiKas,
                BukuKasID  = bukuKas.BukuKasID
            };
            var listLunas = bukuPiutangBaru.ListLunas.ToList();

            //  hapus detil lunas lama yang bukukas-nya sama
            if (listLunas != null)
            {
                for (int i = 0; i <= listLunas.Count - 1; i++)
                {
                    if (listLunas[i].BukuKasID == bukuKas.BukuKasID)
                    {
                        listLunas.RemoveAt(i);
                        break;
                    }
                }
            }
            //bukuPiutangBaru.ListLunas = listLunas;
            listLunas.Add(piutangLunas);
            bukuPiutangBaru.ListLunas = listLunas;

            BukuPiutangModel result = null;

            //  simpan update data lama
            if (bukuPiutangLama != null)
            {
                result = Save(bukuPiutangLama);
            }
            //  simpan data baru
            result = Save(bukuPiutangBaru);
            return(result);
        }
예제 #5
0
        public IEnumerable <BukuKasModel> ListData(string tgl1, string tgl2)
        {
            List <BukuKasModel> result = null;
            var sSql = @"
                SELECT
                    aa.BukuKasID, aa.TglBuku, aa.JamBuku,
                    aa.UserrID, aa.NilaiKas, 
                    aa.JenisTrsKasirID,
                    aa.ReffID, aa.Keterangan, aa.PihakKetigaID,
                    ISNULL(bb.PihakKetigaName,'')PihakKetigaName,
                    ISNULL(cc.JenisTrsKasirName, '') JenisTrsKasirName

                FROM    
                    BukuKas aa
                    LEFT JOIN PihakKetiga bb ON aa.PihakKetigaID = bb.PihakKetigaID
                    LEFT JOIN JenisTrsKasir cc ON aa.JenisTrsKasirID = cc.JenisTrsKasirID
                WHERE
                    TglBuku BETWEEN @Tgl1 AND @Tgl2 ";

            using (var conn = new SqlConnection(_connString))
                using (var cmd = new SqlCommand(sSql, conn))
                {
                    cmd.AddParam("@Tgl1", tgl1.ToTglYMD());
                    cmd.AddParam("@Tgl2", tgl2.ToTglYMD());
                    conn.Open();

                    using (var dr = cmd.ExecuteReader())
                    {
                        if (!dr.HasRows)
                        {
                            return(null);
                        }
                        result = new List <BukuKasModel>();
                        while (dr.Read())
                        {
                            var item = new BukuKasModel
                            {
                                BukuKasID = dr["BukuKasID"].ToString(),
                                TglBuku   = dr["TglBuku"].ToString().ToTglDMY(),
                                JamBuku   = dr["JamBuku"].ToString(),
                                UserrID   = dr["USerrID"].ToString(),

                                NilaiKas          = Convert.ToDecimal(dr["NilaiKas"]),
                                JenisTrsKasirID   = dr["JenisTrsKasirID"].ToString(),
                                JenisTrsKasirName = dr["JenisTrsKasirName"].ToString(),

                                ReffID          = dr["ReffID"].ToString(),
                                Keterangan      = dr["Keterangan"].ToString(),
                                PihakKetigaID   = dr["PihakKetigaID"].ToString(),
                                PihakKetigaName = dr["PihakKetigaName"].ToString()
                            };
                            result.Add(item);
                        }
                    }
                }
            return(result);
        }
예제 #6
0
        private string GetBukuPiutangID(BukuKasModel bukuKas)
        {
            string result           = null;
            var    listPiutangDetil = _bukuPiutangLunasDal.ListData(bukuKas);

            if (listPiutangDetil != null)
            {
                result = listPiutangDetil.First().BukuPiutangID;
            }
            return(result);
        }
예제 #7
0
        public BukuKasModel GetData(string bukuKasID)
        {
            BukuKasModel result = null;
            var          sSql   = @"
                SELECT
                    aa.BukuKasID, aa.TglBuku, aa.JamBuku,
                    aa.UserrID, aa.NilaiKas, 
                    aa.JenisTrsKasirID,
                    aa.ReffID, aa.Keterangan, aa.PihakKetigaID,
                    ISNULL(bb.PihakKetigaName,'')PihakKetigaName,
                    ISNULL(cc.JenisTrsKasirName, '') JenisTrsKasirName

                FROM    
                    BukuKas aa
                    LEFT JOIN PihakKetiga bb ON aa.PihakKetigaID = bb.PihakKetigaID
                    LEFT JOIN JenisTrsKasir cc ON aa.JenisTrsKasirID = cc.JenisTrsKasirID
                WHERE
                    aa.BukuKasID = @BukuKasID ";

            using (var conn = new SqlConnection(_connString))
                using (var cmd = new SqlCommand(sSql, conn))
                {
                    cmd.AddParam("@BukuKasID", bukuKasID);
                    conn.Open();

                    using (var dr = cmd.ExecuteReader())
                    {
                        if (!dr.HasRows)
                        {
                            return(null);
                        }
                        dr.Read();
                        result = new BukuKasModel
                        {
                            BukuKasID = bukuKasID,
                            TglBuku   = dr["TglBuku"].ToString().ToTglDMY(),
                            JamBuku   = dr["JamBuku"].ToString(),
                            UserrID   = dr["USerrID"].ToString(),

                            NilaiKas          = Convert.ToDecimal(dr["NilaiKas"]),
                            JenisTrsKasirID   = dr["JenisTrsKasirID"].ToString(),
                            JenisTrsKasirName = dr["JenisTrsKasirName"].ToString(),
                            ReffID            = dr["ReffID"].ToString(),

                            Keterangan      = dr["Keterangan"].ToString(),
                            PihakKetigaID   = dr["PihakKetigaID"].ToString(),
                            PihakKetigaName = dr["PihakKetigaName"].ToString()
                        };
                    }
                }
            return(result);
        }
예제 #8
0
        BukuKasModel BukuKasDataFactory()
        {
            var result = new BukuKasModel
            {
                BukuKasID       = "A1",
                TglBuku         = "20-01-2019",
                JamBuku         = "11:00:12",
                UserrID         = "B2",
                NilaiKas        = 21000,
                JenisTrsKasirID = "F2",
                ReffID          = "C2",
                Keterangan      = "D2",
                PihakKetigaID   = "E2"
            };

            return(result);
        }
예제 #9
0
        private void SaveTransaksi()
        {
            var jenisTrsID = JenisTrsCombo.SelectedValue.ToString();

            var bukuKas = new BukuKasModel
            {
                BukuKasID       = BukuKasIDTextBox.Text,
                TglBuku         = TglBukuTextBox.Value.ToString("dd-MM-yyyy"),
                JamBuku         = JamBukuTextBox.Text,
                JenisTrsKasirID = JenisTrsCombo.SelectedValue.ToString(),
                ReffID          = ReffIDText.Text,
                Keterangan      = KeteranganText.Text,
                NilaiKas        = NilaiText.Value,
                PihakKetigaID   = PihakKetigaText.Text,
                UserrID         = "",
            };

            _bukuKasBL.Save(bukuKas);
        }
예제 #10
0
        public IEnumerable <BukuPiutangLunasModel> ListData(BukuKasModel bukuKas)
        {
            List <BukuPiutangLunasModel> result = null;
            var sSql = @"
                SELECT
                    BukuPiutangLunasID, BukuPiutangID, TglLunas,
                    JamLunas, NilaiLunas, BukuKasID                 
                FROM
                    BukuPiutangLunas
                WHERE
                    BukuKasID = @BukuKasID ";

            using (var conn = new SqlConnection(_connString))
                using (var cmd = new SqlCommand(sSql, conn))
                {
                    cmd.AddParam("@BukuKasID", bukuKas.BukuKasID);
                    conn.Open();
                    using (var dr = cmd.ExecuteReader())
                    {
                        if (!dr.HasRows)
                        {
                            return(result);
                        }
                        result = new List <BukuPiutangLunasModel>();

                        while (dr.Read())
                        {
                            var item = new BukuPiutangLunasModel
                            {
                                BukuPiutangLunasID = dr["BukuPiutangLunasID"].ToString(),
                                BukuPiutangID      = dr["BukuPiutangID"].ToString(),
                                TglLunas           = dr["TglLunas"].ToString().ToTglDMY(),
                                JamLunas           = dr["JamLunas"].ToString(),
                                NilaiLunas         = Convert.ToDecimal(dr["NilaiLunas"]),
                                BukuKasID          = dr["BukuKasID"].ToString(),
                            };
                            result.Add(item);
                        }
                    }
                }
            return(result);
        }
예제 #11
0
        private BukuPiutangModel CreateBukuPiutang(BukuKasModel bukuKas)
        {
            BukuPiutangModel result = null;

            //  piutang, nilai kas harus minus
            if (bukuKas.NilaiKas >= 0)
            {
                throw new ArgumentException("Generate Piutang harus Kas Keluar");
            }

            //  bentuk object bukuPiutang utuh atas bukuKas ini;
            //
            //  cari bukuPiutangID-nya
            var bukuPiutangID = GetBukuPiutangID(bukuKas);

            //  jika ngga ada, bikin id baru (berarti data baru)
            if (bukuPiutangID == null)
            {
                bukuPiutangID = GenNewBukuPiutangID();
            }

            //  ambil data bukuPiutang berdasarkan piutangID-nya
            result = GetData(bukuPiutangID);
            if (result == null)
            {
                result = new BukuPiutangModel();
            }
            //
            //  update header-nya dengan data baru
            result.BukuPiutangID = bukuPiutangID;
            result.TglBuku       = bukuKas.TglBuku;
            result.JamBuku       = bukuKas.JamBuku;
            result.UserrID       = bukuKas.UserrID;
            result.PihakKetigaID = bukuKas.PihakKetigaID;
            result.NilaiPiutang  = bukuKas.NilaiKas;
            result.NilaiSisa     = bukuKas.NilaiKas;
            result.Keterangan    = bukuKas.Keterangan;
            result.BukuKasID     = bukuKas.BukuKasID;
            //
            //  bikin list detil baru
            var newListDetil = new List <BukuPiutangLunasModel>();
            var noUrut       = 0;
            var item         = new BukuPiutangLunasModel
            {
                BukuPiutangLunasID = bukuPiutangID + "-" + noUrut.ToString().PadLeft(2, '0'),
                BukuPiutangID      = bukuPiutangID,
                TglLunas           = bukuKas.TglBuku,
                JamLunas           = bukuKas.JamBuku,
                NilaiLunas         = bukuKas.NilaiKas,
                BukuKasID          = bukuKas.BukuKasID
            };

            newListDetil.Add(item);
            //
            //  tambahkan dari item2 listDetil yang lama
            //  kecuali yang bukuKasID yang "ini"
            if (result.ListLunas != null)
            {
                foreach (var item2 in result.ListLunas.Where(x => x.BukuKasID != bukuKas.BukuKasID))
                {
                    noUrut++;
                    item2.BukuPiutangLunasID = bukuPiutangID + "-" + noUrut.ToString().PadLeft(2, '0');
                    item2.BukuPiutangID      = bukuPiutangID;
                    newListDetil.Add(item);
                }
            }
            //  tempelkan ke object buku piutang yag baru
            result.ListLunas = newListDetil;
            //
            //  Proses Save
            return(result);
        }
예제 #12
0
        public BukuKasModel Save(BukuKasModel bukuKas)
        {
            #region VALIDASI-DATA
            //  validasi null
            if (bukuKas == null)
            {
                throw new ArgumentNullException(nameof(bukuKas));
            }
            //  validasi tglBuku
            if (!bukuKas.TglBuku.IsValidTgl("dd-MM-yyyy"))
            {
                var errMsg = string.Format("Invalid TglBuku: {0}", bukuKas.TglBuku);
                throw new ArgumentException(errMsg);
            }
            //  validasi jamBuku
            if (!bukuKas.JamBuku.IsValidJam("HH:mm:ss"))
            {
                var errMsg = string.Format("Invalid JamBuku: {0}", bukuKas.JamBuku);
                throw new ArgumentException(errMsg);
            }

            //  validasi PihakKetigaID
            var pihakKetiga = _pihakKetigaDal.GetData(bukuKas.PihakKetigaID);
            if (pihakKetiga == null)
            {
                var errMsg = string.Format("Invalid PihakKetigaID {0}", bukuKas.PihakKetigaID);
                throw new ArgumentException(errMsg);
            }
            else
            {
                bukuKas.PihakKetigaName = pihakKetiga.PihakKetigaName;
            }

            //  validasi jenisTrsKasir
            var jenisTrsKasir = _jenisTrsKasirDal.GetData(bukuKas.JenisTrsKasirID);
            if (jenisTrsKasir == null)
            {
                var errMsg = string.Format("Invalid JenisTrsKasirID: {0}", bukuKas.JenisTrsKasirID);
                throw new ArgumentException(errMsg);
            }

            //  jumlahkan kasMasuk dan kasKeluar untuk menentukan
            //  untuk menentukan
            if (bukuKas.NilaiKas > 0)
            {
                if (jenisTrsKasir.IsKasKeluar)
                {
                    var errMsg = string.Format("Invalid NilaiKas vs JenisTrsKasir");
                    throw new ArgumentException(errMsg);
                }
            }
            #endregion

            #region PROSES-SAVE
            //  generate id
            using (var trans = TransHelper.NewScope())
            {
                var isNew = false;
                if (bukuKas.BukuKasID.Trim() == "")
                {
                    bukuKas.BukuKasID = this.GenNewID();
                    isNew             = true;
                }
                if (isNew)
                {
                    _bukuKasDal.Insert(bukuKas);
                }
                else
                {
                    _bukuKasDal.Update(bukuKas);
                }
                #endregion

                switch (bukuKas.JenisTrsKasirID)
                {
                case "PTG":
                    _bukuPiutangBL.GenBukuPiutang(bukuKas);
                    break;

                case "PTL":
                    _bukuPiutangBL.GenBukuPiutangLunas(bukuKas);
                    break;

                default:
                    break;
                }
                trans.Complete();
            }
            return(bukuKas);
        }
예제 #13
0
 public void Generate(BukuKasModel bukuKas)
 {
     throw new NotImplementedException();
 }