Beispiel #1
0
        public void InsertTest()
        {
            using (var trans = TransHelper.NewScope())
            {
                //  arrange
                var expected = BPHutangDetilDataFactory();

                //  act
                _bpHutangDetilDal.Insert(expected);

                //  assert
            }
        }
Beispiel #2
0
        private BPHutangModel Save(BPHutangModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

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

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


            //  update nilai total di header
            model.NilaiHutang = model.ListLunas.Sum(x => x.NilaiHutang);
            model.NilaiLunas  = model.ListLunas.Sum(x => x.NilaiLunas);

            //  nilai pelunasan tidak boleh lebih dari hutang
            if (model.NilaiLunas > model.NilaiHutang)
            {
                throw new ArgumentException("Nilai Pelunasan melebihi hutang");
            }

            //  update BPHutangID dan BPHutangDetilID di detil lunas
            int noUrut = 0;

            foreach (var item in model.ListLunas.OrderBy(x => x.Tgl.ToTglYMD() + x.Jam))
            {
                noUrut++;
                item.BPHutangID      = model.BPHutangID;
                item.BPHutangDetilID = model.BPHutangID + '-' + noUrut.ToString().PadLeft(2, '0');
            }

            //  delete data lama
            using (var trans = TransHelper.NewScope())
            {
                _bpHutangDetilDal.Delete(model.BPHutangID);
                _bpHutangDal.Delete(model.BPHutangID);

                _bpHutangDal.Insert(model);
                foreach (var item in model.ListLunas)
                {
                    _bpHutangDetilDal.Insert(item);
                }

                trans.Complete();
            }
            return(model);
        }