Example #1
0
        public void Update(LunasPiutangModel model)
        {
            //  define
            var sSql = @"
                UPDATE
                    LunasPiutang 
                SET
                    Tgl = @Tgl,
                    Jam = @Jam,
                    PihakKeduaID = @PihakKeduaID,
                    JenisBayarID = @JenisBayarID, 
                    TotalNilaiSisaPiutang = @TotalNilaiSisaPiutang,
                    TotalNilaiBayar = @TotalNilaiBayar
                WHERE
                    LunasPiutangID = @LunasPiutangID ";

            //  execute
            using (var conn = new SqlConnection(_connString))
                using (var cmd = new SqlCommand(sSql, conn))
                {
                    cmd.AddParam("@LunasPiutangID", model.LunasPiutangID);
                    cmd.AddParam("@Tgl", model.Tgl.ToTglYMD());
                    cmd.AddParam("@Jam", model.Jam);
                    cmd.AddParam("@PihakKeduaID", model.PihakKeduaID);
                    cmd.AddParam("@JenisBayarID", model.JenisBayarID);
                    cmd.AddParam("@TotalNilaiSisaPiutang", model.TotalNilaiSisaPiutang);
                    cmd.AddParam("@TotalNilaiBayar", model.TotalNilaiBayar);

                    conn.Open();
                    cmd.ExecuteNonQuery();
                }
        }
Example #2
0
 public void GenLunasPiutangCancel(LunasPiutangModel lunasPiutang)
 {
     using (var trans = TransHelper.NewScope())
     {
         foreach (var item in lunasPiutang.ListPiutangBayar)
         {
             //  ambil data bpPiutang
             var bpPiutang = this.GetData(item.PiutangID);
             if (bpPiutang.ListLunas == null)
                 continue;
             //  ubah ienumerable => list (biar bisa di-remove)
             var listLunas = new List<BPPiutangDetilModel>();
             listLunas.AddRange(bpPiutang.ListLunas);
             //  cari item pelunasannya
             var pelunasan = listLunas.Find(x => x.ReffID == lunasPiutang.LunasPiutangID);
             //  escape point
             if (pelunasan == null)
                 continue;
             //  remove
             listLunas.Remove(pelunasan);
             bpPiutang.ListLunas = listLunas;
             //  proses
             this.Save(bpPiutang);
         }
         trans.Complete();
     }
 }
Example #3
0
        public void Insert(LunasPiutangModel model)
        {
            //  define
            var sSql = @"
                INSERT INTO
                    LunasPiutang (
                        LunasPiutangID, Tgl, Jam,
                        PihakKeduaID, JenisBayarID,
                        TotalNilaiSisaPiutang, TotalNilaiBayar)
                VALUES (
                        @LunasPiutangID, @Tgl, @Jam,
                        @PihakKeduaID, @JenisBayarID,
                        @TotalNilaiSisaPiutang, @TotalNilaiBayar) ";

            //  execute
            using (var conn = new SqlConnection(_connString))
                using (var cmd = new SqlCommand(sSql, conn))
                {
                    cmd.AddParam("@LunasPiutangID", model.LunasPiutangID);
                    cmd.AddParam("@Tgl", model.Tgl.ToTglYMD());
                    cmd.AddParam("@Jam", model.Jam);
                    cmd.AddParam("@PihakKeduaID", model.PihakKeduaID);
                    cmd.AddParam("@JenisBayarID", model.JenisBayarID);
                    cmd.AddParam("@TotalNilaiSisaPiutang", model.TotalNilaiSisaPiutang);
                    cmd.AddParam("@TotalNilaiBayar", model.TotalNilaiBayar);
                    conn.Open();
                    cmd.ExecuteNonQuery();
                }
        }
Example #4
0
        public IEnumerable <LunasPiutangModel> ListData(string tgl1, string tgl2)
        {
            //   define
            List <LunasPiutangModel> result = null;
            var sSql = @"
                SELECT
                    aa.LunasPiutangID, aa.Tgl, aa.Jam,
                    aa.PihakKeduaID, aa.JenisBayarID, 
                    TotalNilaiSisaPiutang, TotalNilaiBayar,
                    ISNULL(bb.PihakKeduaName, '') PihakKeduaName,
                    ISNULL(cc.JenisBayarName, '') JenisBayarName
                FROM
                    LunasPiutang aa
                    LEFT JOIN PihakKedua bb ON aa.PihakKeduaID = bb.PihakKeduaID
                    LEFT JOIN JenisBayar cc ON aa.JenisBayarID = cc.JenisBayarID 
                WHERE
                    Tgl BETWEEN @Tgl1 AND @Tgl2 ";

            //  execute
            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);
                        }

                        //  read
                        result = new List <LunasPiutangModel>();
                        while (dr.Read())
                        {
                            var item = new LunasPiutangModel
                            {
                                LunasPiutangID        = dr["LunasPiutangID"].ToString(),
                                Tgl                   = dr["Tgl"].ToString(),
                                Jam                   = dr["Jam"].ToString(),
                                PihakKeduaID          = dr["PihakKeduaID"].ToString(),
                                PihakKeduaName        = dr["PihakKeduaName"].ToString(),
                                JenisBayarID          = dr["JenisBayarID"].ToString(),
                                JenisBayarName        = dr["JenisBayarName"].ToString(),
                                TotalNilaiSisaPiutang = Convert.ToDecimal(dr["TotalNilaiSisaPiutang"]),
                                TotalNilaiBayar       = Convert.ToDecimal(dr["TotalNilaiBayar"])
                            };
                            result.Add(item);
                        }
                    }
                }
            return(result);
        }
Example #5
0
        public LunasPiutangModel GetData(string id)
        {
            //  define
            LunasPiutangModel result = null;
            var sSql = @"
                SELECT
                    aa.Tgl, aa.Jam,
                    aa.PihakKeduaID, aa.JenisBayarID, 
                    TotalNilaiSisaPiutang, TotalNilaiBayar,
                    ISNULL(bb.PihakKeduaName, '') PihakKeduaName,
                    ISNULL(cc.JenisBayarName, '') JenisBayarName
                FROM
                    LunasPiutang aa
                    LEFT JOIN PihakKedua bb ON aa.PihakKeduaID = bb.PihakKeduaID
                    LEFT JOIN JenisBayar cc ON aa.JenisBayarID = cc.JenisBayarID
                WHERE
                    aa.LunasPiutangID = @LunasPiutangID ";

            //  execute
            using (var conn = new SqlConnection(_connString))
                using (var cmd = new SqlCommand(sSql, conn))
                {
                    cmd.AddParam("@LunasPiutangID", id);
                    conn.Open();
                    using (var dr = cmd.ExecuteReader())
                    {
                        if (!dr.HasRows)
                        {
                            return(null);
                        }

                        //  read
                        dr.Read();
                        result = new LunasPiutangModel
                        {
                            LunasPiutangID        = id,
                            Tgl                   = dr["Tgl"].ToString(),
                            Jam                   = dr["Jam"].ToString(),
                            PihakKeduaID          = dr["PihakKeduaID"].ToString(),
                            PihakKeduaName        = dr["PihakKeduaName"].ToString(),
                            JenisBayarID          = dr["JenisBayarID"].ToString(),
                            JenisBayarName        = dr["JenisBayarName"].ToString(),
                            TotalNilaiSisaPiutang = Convert.ToDecimal(dr["TotalNilaiSisaPiutang"]),
                            TotalNilaiBayar       = Convert.ToDecimal(dr["TotalNilaiBayar"])
                        };
                    }
                }
            return(result);
        }
        public LunasPiutangModel LunasPiutangFactory2()
        {
            var result = new LunasPiutangModel
            {
                LunasPiutangID        = "A2",
                Tgl                   = "16-01-2019",
                Jam                   = "02:00:00",
                PihakKeduaID          = "B2",
                PihakKeduaName        = "",
                TotalNilaiSisaPiutang = 4,
                TotalNilaiBayar       = 3,
            };

            return(result);
        }
        //  data factory
        public LunasPiutangModel LunasPiutangFactory1()
        {
            var result = new LunasPiutangModel
            {
                LunasPiutangID        = "A1",
                Tgl                   = "15-01-2019",
                Jam                   = "01:00:00",
                PihakKeduaID          = "B1",
                PihakKeduaName        = "",
                TotalNilaiSisaPiutang = 2,
                TotalNilaiBayar       = 1,
            };

            return(result);
        }
Example #8
0
        public BPKasModel Generate(LunasPiutangModel lunasPiutang)
        {
            if (lunasPiutang == null)
            {
                throw new ArgumentNullException(nameof(lunasPiutang));
            }
            var jenisBayar = _jenisBayarBL.GetData(lunasPiutang.JenisBayarID);

            if (jenisBayar != null)
            {
                lunasPiutang.JenisKasID = jenisBayar.JenisKasID;
            }

            var bpKas  = (BPKasModel)lunasPiutang;
            var result = Save(bpKas);

            return(result);
        }
        public void Save()
        {
            List <LunasPiutangDetilModel> listDetil = null;

            if (_view.ListPiutang != null)
            {
                listDetil = new List <LunasPiutangDetilModel>();
            }

            foreach (var item in _view.ListPiutang)
            {
                listDetil.Add(new LunasPiutangDetilModel
                {
                    PiutangID        = item.BPPiutangID,
                    Tgl              = item.Tgl,
                    NilaiSisaPiutang = item.Nilai,
                    NilaiBayar       = item.Bayar
                });
            }

            var lunasPiutang = new LunasPiutangModel
            {
                LunasPiutangID        = _view.LunasPiutangID,
                Tgl                   = _view.Tgl,
                Jam                   = _view.Jam,
                PihakKeduaID          = _view.CustomerID,
                PihakKeduaName        = _view.CustomerName,
                JenisBayarID          = _view.JenisBayarID,
                JenisBayarName        = _view.JenisBayarName,
                TotalNilaiSisaPiutang = _view.TotalPiutang,
                TotalNilaiBayar       = _view.TotalBayar,
                ListPiutangBayar      = listDetil
            };

            //  generate lunas piutang
            //  (hapus dulu pelunasan yg lama, kasus simpan ulang)
            _dep.BPPiutangBL.GenLunasPiutangCancel(lunasPiutang);
            //  simpan lunas piutang
            _dep.LunasPiutangBL.Save(lunasPiutang);

            //  baru di-generate ulang BPPiutangnya
            _dep.BPPiutangBL.GenLunasPiutang(lunasPiutang);
            _dep.BPKasBL.Generate(lunasPiutang);
        }
Example #10
0
        public void GenLunasPiutang(LunasPiutangModel lunasPiutang)
        {
            using (var trans = TransHelper.NewScope())
            {
                foreach (var item in lunasPiutang.ListPiutangBayar)
                {
                    if (item.NilaiBayar == 0)
                        continue;

                    var bpPiutang = this.GetData(item.PiutangID);
                    var pelunasanBaru = new BPPiutangDetilModel
                    {
                        ReffID = item.LunasPiutangID,
                        Tgl = lunasPiutang.Tgl,
                        Jam = lunasPiutang.Jam,
                        Keterangan = "Pelunasan Piutang",
                        NilaiPiutang = 0,
                        NilaiLunas = item.NilaiBayar
                    };
                    var newListLunas = new List<BPPiutangDetilModel>();
                    newListLunas.AddRange(bpPiutang.ListLunas);
                    newListLunas.Add(pelunasanBaru);
                    var noUrut = 1;
                    foreach(var item2 in newListLunas)
                    {
                        item2.BPPiutangID = item.PiutangID;
                        item2.BPPiutangDetilID = string.Format("{0}-{1}",
                            item.PiutangID, noUrut.ToString().PadLeft(2, '0'));
                        noUrut++;
                    }
                    bpPiutang.ListLunas = newListLunas;
                    this.Save(bpPiutang);
                }
                trans.Complete();
            }
        }
Example #11
0
        public void Save(LunasPiutangModel model)
        {
            if (model is null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            //  validasi customer
            var customer = _pihakKeduaDal.GetData(model.PihakKeduaID);

            if (customer == null)
            {
                throw new ArgumentException("CustomerID invalid");
            }
            model.PihakKeduaName = customer.PihakKeduaName;

            //  validasi jenisbayar
            var jenisBayar = _jenisBayarDal.GetData(model.JenisBayarID);

            if (jenisBayar == null)
            {
                throw new ArgumentException("JenisBayarID invalid");
            }
            model.JenisBayarName = jenisBayar.JenisBayarName;

            //  pelunasan piutang tidak boleh dengan piutang
            if (jenisBayar.TipeKas == TIPE_KAS_PIUTANG)
            {
                throw new ArgumentException("Pelunasan tidak boleh menggunakan Piutang");
            }

            //  cek list piutang apakah benar milik customer ini;
            //  serta validasi nilai piutang vs nilai bayar
            foreach (var item in model.ListPiutangBayar)
            {
                var bpPiutang = _bpPiutangBL.GetData(item.PiutangID);
                if (bpPiutang == null)
                {
                    throw new ArgumentException("PiutangID not found");
                }
                if (bpPiutang.PihakKeduaID != model.PihakKeduaID)
                {
                    throw new ArgumentException("PiutangID invalid Customer");
                }
                if (bpPiutang.NilaiPiutang - bpPiutang.NilaiLunas < item.NilaiBayar)
                {
                    throw new ArgumentException("Nilai Bayar melebihi piutang");
                }
            }

            using (var trans = TransHelper.NewScope())
            {
                if (model.LunasPiutangID.Trim() == "")
                {
                    model.LunasPiutangID = GenNewID();
                }

                var noUrut = 1;
                foreach (var item in model.ListPiutangBayar)
                {
                    item.LunasPiutangID = model.LunasPiutangID;
                    var id2 = string.Format("{0}-{1}",
                                            item.LunasPiutangID,
                                            noUrut.ToString().PadLeft(2, '0'));
                    item.LunasPiutangID2 = id2;
                    noUrut++;
                }

                //  hapus data lama
                _lunasPiutangDetilDal.Delete(model.LunasPiutangID);
                _lunasPiutangDal.Delete(model.LunasPiutangID);

                //  insert data baru
                _lunasPiutangDal.Insert(model);
                foreach (var item in model.ListPiutangBayar)
                {
                    _lunasPiutangDetilDal.Insert(item);
                }

                trans.Complete();
            }
        }