Example #1
0
        public void Update(LunasKasBonModel model)
        {
            var sSql = @"
                UPDATE
                    LunasKasBon 
                SET
                    Tgl = @Tgl, 
                    Jam = @Jam, 
                    PihakKeduaID = @PihakKeduaID,
                    KasBonID = @KasBonID,
                    NilaiSisaPiutang = @NilaiSisaPiutang, 
                    NilaiTotLunas = @NilaiTotLunas 
                WHERE
                    LunasKasBonID = @LunasKasBonID  ";

            using (var conn = new SqlConnection(_connString))
                using (var cmd = new SqlCommand(sSql, conn))
                {
                    cmd.AddParam("@LunasKasBonID", model.LunasKasBonID);
                    cmd.AddParam("@Tgl", model.Tgl.ToTglYMD());
                    cmd.AddParam("@Jam", model.Jam);
                    cmd.AddParam("@PihakKeduaID", model.PihakKeduaID);
                    cmd.AddParam("@KasBonID", model.KasBonID);
                    cmd.AddParam("@NilaiSisaPiutang", model.NilaiSisaPiutang);
                    cmd.AddParam("@NilaiTotLunas", model.NilaiTotLunas);
                    conn.Open();
                    cmd.ExecuteNonQuery();
                }
        }
Example #2
0
        public void Insert(LunasKasBonModel model)
        {
            var sSql = @"
                INSERT INTO 
                    LunasKasBon (
                        LunasKasBonID, Tgl, Jam, 
                        PihakKeduaID, KasBonID, 
                        NilaiSisaPiutang, NilaiTotLunas) 
                VALUES (
                        @LunasKasBonID, @Tgl, @Jam, 
                        @PihakKeduaID, @KasBonID, 
                        @NilaiSisaPiutang, @NilaiTotLunas ) ";

            using (var conn = new SqlConnection(_connString))
                using (var cmd = new SqlCommand(sSql, conn))
                {
                    cmd.AddParam("@LunasKasBonID", model.LunasKasBonID);
                    cmd.AddParam("@Tgl", model.Tgl.ToTglYMD());
                    cmd.AddParam("@Jam", model.Jam);
                    cmd.AddParam("@PihakKeduaID", model.PihakKeduaID);
                    cmd.AddParam("@KasBonID", model.KasBonID);
                    cmd.AddParam("@NilaiSisaPiutang", model.NilaiSisaPiutang);
                    cmd.AddParam("@NilaiTotLunas", model.NilaiTotLunas);
                    conn.Open();
                    cmd.ExecuteNonQuery();
                }
        }
Example #3
0
        private void Save()
        {
            var lunasKasBon = new LunasKasBonModel
            {
                LunasKasBonID    = LunasKasBonIDText.Text,
                Tgl              = TglText.Value.ToString("dd-MM-yyyy"),
                Jam              = JamText.Text,
                KasBonID         = KasBonIDText.Text,
                PihakKeduaID     = PihakKeduaIDText.Text,
                NilaiSisaPiutang = NilaiSisaPiutangText.Value,
                NilaiTotLunas    = NilaiTotLunasText.Value
            };

            List <LunasKasBonDetilModel> listLunas = null;

            foreach (DataRow dr in ListLunasTable.Rows)
            {
                if (listLunas == null)
                {
                    listLunas = new List <LunasKasBonDetilModel>();
                }
                if (dr["KeteranganCol"].ToString().Trim() == "")
                {
                    continue;
                }

                listLunas.Add(new LunasKasBonDetilModel
                {
                    LunasKasBonID      = "",
                    LunasKasBonDetilID = "",
                    JenisLunasID       = dr["JenisLunasIDCol"].ToString(),
                    Keterangan         = dr["KeteranganCol"].ToString(),
                    NilaiLunas         = Convert.ToDecimal(dr["NilaiLunasCol"]),
                    PenjualanID        = dr["PenjualanID"].ToString(),
                });
            }
            lunasKasBon.ListLunas = listLunas;
            var kasBon = _kasBonBL.GetData(lunasKasBon.KasBonID);

            using (var trans = TransHelper.NewScope())
            {
                var result       = _lunasKasBonBL.Save(lunasKasBon);
                var bpKas        = _bpKasBL.Generate(lunasKasBon, kasBon);
                var bpPiutang    = _bpPiutangBL.GenPiutang(lunasKasBon, kasBon);
                var biaya        = _biayaBL.Generate(lunasKasBon);
                var listBPHutang = _bpHutangBL.GenHutang(lunasKasBon);

                trans.Complete();
            }
        }
Example #4
0
        private LunasKasBonModel LunasKasBonDataFactory()
        {
            var result = new LunasKasBonModel
            {
                LunasKasBonID  = "A1",
                Tgl            = "11-02-2019",
                Jam            = "01:38:00",
                PihakKeduaID   = "B1",
                PihakKeduaName = "",
                KasBonID       = "C1",
                NilaiTotLunas  = 250000
            };

            return(result);
        }
Example #5
0
        public BPKasModel Generate(LunasKasBonModel lunasKasBon, KasBonModel kasBon)
        {
            if (lunasKasBon == null)
            {
                throw new ArgumentNullException(nameof(lunasKasBon));
            }

            if (kasBon == null)
            {
                throw new ArgumentNullException(nameof(kasBon));
            }

            if (lunasKasBon.KasBonID != kasBon.KasBonID)
            {
                throw new ArgumentException("KasBonID invalid");
            }

            //  convert lunasKasBon menjadi object kasBon
            BPKasModel bpKas = new BPKasModel
            {
                BPKasID       = lunasKasBon.LunasKasBonID,
                Tgl           = lunasKasBon.Tgl,
                Jam           = lunasKasBon.Jam,
                Keterangan    = "Lunas KasBon " + kasBon.Keterangan,
                NilaiTotalKas = 0,
            };
            BPKasDetilModel detil = new BPKasDetilModel
            {
                BPKasID       = bpKas.BPKasID,
                BPKasDetilID  = bpKas.BPKasID + '-' + "01",
                JenisKasID    = "K01",
                NilaiKasMasuk =
                    lunasKasBon.ListLunas
                    .Where(x => x.JenisLunasID == "KAS")
                    .Sum(x => x.NilaiLunas)
            };

            bpKas.ListDetil = new List <BPKasDetilModel>
            {
                detil
            };

            var result = Save(bpKas);

            return(result);
        }
Example #6
0
        public IEnumerable <LunasKasBonModel> ListData(string kasBonID)
        {
            List <LunasKasBonModel> result = null;
            var sSql = @"
                SELECT
                    aa.LunasKasBonID, aa.Tgl, aa.Jam, aa.PihakKeduaID,
                    aa.KasBonID, aa.NilaiTotLunas,
                    ISNULL(bb.PihakKeduaName, '') PihakKeduaName 
                FROM    
                    LunasKasBon aa
                    LEFT JOIN PihakKedua bb ON aa.PihakKeduaID = bb.PihakKeduaID 
                WHERE
                    aa.KasBonID BETWEEN @KasBonID  ";

            using (var conn = new SqlConnection(_connString))
                using (var cmd = new SqlCommand(sSql, conn))
                {
                    cmd.AddParam("@KasBonID", kasBonID);
                    conn.Open();
                    using (var dr = cmd.ExecuteReader())
                    {
                        if (!dr.HasRows)
                        {
                            return(null);
                        }
                        result = new List <LunasKasBonModel>();
                        while (dr.Read())
                        {
                            var item = new LunasKasBonModel
                            {
                                LunasKasBonID    = dr["LunasKasBonID"].ToString(),
                                Tgl              = dr["Tgl"].ToString().ToTglDMY(),
                                Jam              = dr["Jam"].ToString(),
                                PihakKeduaID     = dr["PihakKeduaID"].ToString(),
                                PihakKeduaName   = dr["PihakKeduaName"].ToString(),
                                KasBonID         = dr["KasBonID"].ToString(),
                                NilaiSisaPiutang = Convert.ToDecimal(dr["NilaiSisaPiutang"]),
                                NilaiTotLunas    = Convert.ToDecimal(dr["NilaiTotLunas"]),
                            };
                            result.Add(item);
                        }
                    }
                }
            return(result);
        }
Example #7
0
        public BPPiutangModel GenPiutang(LunasKasBonModel lunasKasBon, KasBonModel kasBon)
        {
            //  ambil data piutang berdasarkan kasBon
            var bpPiutang = GetData(kasBon.KasBonID);
            if(bpPiutang == null)
            {
                var errMsg = string.Format("Piutang {0} tidak ditemukan ", kasBon.KasBonID);
                throw new ArgumentException(errMsg);
            }

            //  hapus detil lunas yang id-nya = lunasKasBonID
            List<BPPiutangDetilModel> newListLunas = 
                (
                    from c in bpPiutang.ListLunas
                    where c.ReffID != lunasKasBon.LunasKasBonID
                    select c
                ).ToList();

            //  tambahkan pelunasan dari lunasKasBon
            int noUrut = newListLunas.Count + 1;
            foreach(var item in lunasKasBon.ListLunas)
            {
                newListLunas.Add(new BPPiutangDetilModel
                {
                    BPPiutangID = bpPiutang.BPPiutangID,
                    BPPiutangDetilID = bpPiutang.BPPiutangID + '-' + noUrut.ToString().PadLeft(2, '0'),
                    Tgl = lunasKasBon.Tgl,
                    Jam = lunasKasBon.Jam,
                    ReffID = item.LunasKasBonID,
                    Keterangan = "   Pelunasan " + item.Keterangan,
                    NilaiPiutang = 0,
                    NilaiLunas = item.NilaiLunas
                });
                noUrut++;
            }

            bpPiutang.ListLunas = newListLunas;
            //  simpan
            var result = Save(bpPiutang);
            return result;
        }
Example #8
0
        public IEnumerable <BiayaModel> Generate(LunasKasBonModel lunasKasBon)
        {
            List <BiayaModel> result = null;

            if (lunasKasBon == null)
            {
                throw new ArgumentNullException(nameof(lunasKasBon));
            }
            if (lunasKasBon.ListLunas == null)
            {
                throw new ArgumentNullException(nameof(lunasKasBon.ListLunas));
            }

            //  cek kasbon-nya exist atau tidak
            var kasBon = _kasBonBL.GetData(lunasKasBon.KasBonID);

            if (kasBon == null)
            {
                throw new ArgumentException("KasBon tidak ditemukasn");
            }

            //  cek apakah ada detil ListLunas yang BIAYA
            IEnumerable <LunasKasBonDetilModel> listDetilLunasKasBonBiaya =
                from c in lunasKasBon.ListLunas
                where c.JenisLunasID != "KAS"
                select c;

            if (listDetilLunasKasBonBiaya == null)
            {
                return(null);
            }

            // Generate Biaya
            var noUrut = 0;

            foreach (var item in listDetilLunasKasBonBiaya)
            {
                var jenisLunas = _jenisLunasBL.GetData(item.JenisLunasID);
                if (jenisLunas == null)
                {
                    throw new ArgumentException("Generate Biaya failed. JenisLunas invalid");
                }

                var biaya = new BiayaModel
                {
                    BiayaID      = lunasKasBon.LunasKasBonID + '-' + noUrut.ToString().PadLeft(2, '0'),
                    Tgl          = lunasKasBon.Tgl,
                    Jam          = lunasKasBon.Jam,
                    JenisBiayaID = jenisLunas.JenisBiayaID,
                    JenisKasID   = kasBon.JenisKasID,
                    Keterangan   = "[LUNAS-KASBON] " + jenisLunas.JenisLunasName + ' ' + kasBon.Keterangan,
                    NilaiBiaya   = item.NilaiLunas
                };
                var itemResult = Save(biaya);

                if (result == null)
                {
                    result = new List <BiayaModel>();
                }

                result.Add(itemResult);
                noUrut++;
            }
            return(result);
        }
Example #9
0
        public LunasKasBonModel Save(LunasKasBonModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            var kasBon = _kasBonDal.GetData(model.KasBonID);

            if (kasBon == null)
            {
                throw new ArgumentException("PiutangID invalid");
            }

            //  validate pihak kedua
            var pihakKedua = _pihakKeduaDal.GetData(model.PihakKeduaID);

            if (pihakKedua == null)
            {
                throw new ArgumentException("PihakKeduaID invalid");
            }
            else
            {
                model.PihakKeduaName = pihakKedua.PihakKeduaName;
            }

            if (kasBon.PihakKeduaID != model.PihakKeduaID)
            {
                throw new ArgumentException("PihakKeduaID tidak sama dengan data KasBon");
            }

            if (model.ListLunas == null)
            {
                throw new ArgumentException("Detil Pelunasan masih kosong");
            }

            //  update nilai total lunas
            model.NilaiTotLunas = model.ListLunas.Sum(x => x.NilaiLunas);

            if (model.NilaiSisaPiutang < model.NilaiTotLunas)
            {
                throw new ArgumentException("Nilai Pelunasan KasBon terlalu banyak");
            }

            foreach (var item in model.ListLunas)
            {
                var jenisLunas = _jenisLunasDal.GetData(item.JenisLunasID);
                if (jenisLunas == null)
                {
                    throw new ArgumentException("JenisLunasID invalid : " + item.JenisLunasID);
                }

                if (item.NilaiLunas <= 0)
                {
                    throw new ArgumentException("Pelunasan tidak boleh minus atau nol");
                }

                //  jika PelunasanID muncul, cek apakah NoPenjualan valid
                if (item.PenjualanID.Trim() != "")
                {
                    var penjualan = _penjualanDal.GetData(item.PenjualanID);
                    if (penjualan == null)
                    {
                        throw new ArgumentException("Penjualan ID invalid");
                    }

                    //  nomor referensi penjualan hanya boleh untuk jenis lunas biaya
                    var jenisBiaya = _jenisBiayaDal.GetData(jenisLunas.JenisBiayaID);
                    if (jenisBiaya == null)
                    {
                        throw new ArgumentException("Penjualan hanya diisi jika Biaya");
                    }
                }
            }

            using (var trans = TransHelper.NewScope())
            {
                //  generate id (jika baru)
                if (model.LunasKasBonID.Trim() == "")
                {
                    model.LunasKasBonID = GenNewID();
                }

                //  update id di detil;
                var noUrut = 1;
                foreach (var item in model.ListLunas)
                {
                    item.LunasKasBonID      = model.LunasKasBonID;
                    item.LunasKasBonDetilID = model.LunasKasBonID + '-' + noUrut.ToString().PadLeft(2, '0');
                    noUrut++;
                }

                //  hapus data lama
                _lunasKasBonDal.Delete(model.LunasKasBonID);
                _lunasKasBonDetilDal.Delete(model.LunasKasBonID);

                //  simpan data baru
                _lunasKasBonDal.Insert(model);
                foreach (var item in model.ListLunas)
                {
                    _lunasKasBonDetilDal.Insert(item);
                }

                //  commit changes
                trans.Complete();
            }
            return(model);
        }
Example #10
0
        public IEnumerable <BPHutangModel> GenHutang(LunasKasBonModel lunasKasBon)
        {
            //  list semua penjualan di detil lunas kas bon
            List <LunasKasBonJualDepositModel> listLunasKasBonJualDeposit = null;

            foreach (var item in lunasKasBon.ListLunas)
            {
                if (item.PenjualanID.Trim() == "")
                {
                    continue;
                }

                var penjualan = _penjualanDal.GetData(item.PenjualanID);
                if (penjualan == null)
                {
                    throw new ArgumentException("Penjualan ID invalid");
                }

                if (listLunasKasBonJualDeposit == null)
                {
                    listLunasKasBonJualDeposit = new List <LunasKasBonJualDepositModel>();
                }

                listLunasKasBonJualDeposit.Add(new LunasKasBonJualDepositModel
                {
                    LunasKasBonID = lunasKasBon.LunasKasBonID,
                    PenjualanID   = penjualan.PenjualanID,
                    NilaiLunas    = item.NilaiLunas,
                    Keterangan    = "   " + item.Keterangan
                });
            }

            //  ambil data deposti dari penjualan tsb
            if (listLunasKasBonJualDeposit == null)
            {
                return(null);
            }

            foreach (var item in listLunasKasBonJualDeposit)
            {
                var penjualan = _penjualanDal.GetData(item.PenjualanID);
                if (penjualan.DepositID.Trim() == "")
                {
                    continue;
                }

                var deposit = _depositDal.GetData(penjualan.DepositID);
                if (deposit == null)
                {
                    throw new ArgumentException("Deposit ID invalid");
                }

                item.DepositID = deposit.DepositID;
            }

            //  generate pelunasan atas deposit tsb
            List <BPHutangModel> result = null;

            foreach (var item in listLunasKasBonJualDeposit.Where(x => x.DepositID.Trim() != ""))
            {
                var bpHutang = GetData(item.DepositID);

                //  hapus detil pelunasan atas id lunasKasBon ini
                var listDetilHtg = (
                    from c in bpHutang.ListLunas
                    where c.ReffID != lunasKasBon.LunasKasBonID
                    select c
                    ).ToList();

                //  tambahkan detil lunas kasbon ini
                var detilLunas = new BPHutangDetilModel
                {
                    BPHutangID  = bpHutang.BPHutangID,
                    Tgl         = lunasKasBon.Tgl,
                    Jam         = lunasKasBon.Jam,
                    ReffID      = lunasKasBon.LunasKasBonID,
                    Keterangan  = item.Keterangan,
                    NilaiHutang = 0,
                    NilaiLunas  = item.NilaiLunas
                };
                listDetilHtg.Add(detilLunas);

                //  pindahkan listbaru ke object bpHutang
                bpHutang.ListLunas = listDetilHtg;

                //  proses simpan
                Save(bpHutang);
                if (result == null)
                {
                    result = new List <BPHutangModel>();
                }
                result.Add(bpHutang);
            }

            return(result);
        }