Ejemplo n.º 1
0
        private void ShowDataBPPiutang()
        {
            var bpPiutang = _bpPiutangBL.GetData(KasBonIDText.Text);

            if (bpPiutang == null)
            {
                ClearForm();
                return;
            }
            PihakKeduaIDText.Text      = bpPiutang.PihakKeduaID;
            PihakKeduaNameText.Text    = bpPiutang.PihakKeduaName;
            KeteranganText.Text        = bpPiutang.Keterangan;
            NilaiSisaPiutangText.Value = bpPiutang.NilaiPiutang - bpPiutang.NilaiLunas;

            ListLunasGrid.Focus();
        }
Ejemplo n.º 2
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();
            }
        }