Example #1
0
        public JenisBiayaModel Add(JenisBiayaModel jenisBiaya)
        {
            //      INPUT VALIDATION
            var kt = Validate(jenisBiaya);

            //      BUSINESS VALIDATION
            var jenisBiayaDb = _jenisBiayaDal.GetData(kt);

            jenisBiayaDb.NotEmpty().Throw("JENIS BIAYA ID already exist");

            //      REPO-OP
            _jenisBiayaDal.Insert(kt);

            //      RETURN
            return(kt);
        }
Example #2
0
        public JenisBiayaModel Save(JenisBiayaModel jenisBiaya)
        {
            //  validasi
            var result = jenisBiaya;

            result = TryValidate(jenisBiaya);

            //  save
            var dummyJenisBiaya = _jenisBiayaDal.GetData(jenisBiaya.JenisBiayaID);

            if (dummyJenisBiaya == null)
            {
                _jenisBiayaDal.Insert(result);
            }
            else
            {
                _jenisBiayaDal.Update(result);
            }

            return(result);
        }
        public void GetData_Test()
        {
            using (var trans = TransHelper.NewScope())
            {
                //  arrange
                var expected = JenisBiayaSample();
                _sut.Insert(expected);

                //  act
                var actual = _sut.GetData(expected);

                //  assert
                actual.Should().BeEquivalentTo(expected);
            }
        }
        private SuratDinasModel Validate(SuratDinasModel sd)
        {
            //  mandatory check
            sd.JenisBiayaID.Empty().Throw("JENIS BIAYA kosong");
            sd.PegID.Empty().Throw("PEGAWAI kosong");
            sd.RSID.Empty().Throw("RS TUJUAN kosong");
            sd.TransportID.Empty().Throw("TRANSPORT kosong");
            sd.Keperluan.Empty().Throw("KEPERLUAN kosong");

            //  pegawai
            var peg = _pegDal.GetData(sd);

            peg.Empty().Throw("PEGAWAI invalid");
            sd.PegName = peg.PegName;

            //  transport
            var transport = _transportDal.GetData(sd);

            transport.Empty().Throw("TRANSPORT invalid");
            sd.TransportName = transport.TransportName;

            //  jenis biaya
            var jb = _jenisBiayaDal.GetData(sd);

            jb.Empty().Throw("JENIS BIAYA invalid");
            sd.JenisBiayaName = jb.JenisBiayaName;

            //  rumah sakit
            var rs = _rsDal.GetData(sd);

            rs.Empty().Throw("RS TUJUAN invalid");
            sd.RSName = rs.RSName;

            //  urutan tgl mulai - selesai
            sd.TglSelesai.LessThan(sd.TglMulai).Throw("Tgl Mulasi / Selesai invalid");

            //  km awal => terisi jika mobil kantor, kosong jika sebaliknya
            if (sd.TransportID == TRANSPORT_ID_OPERASIONAL)
            {
                sd.KMAwal.LessOrEqual(0).Throw("KM Awal kosong");
            }

            if (sd.TransportID != TRANSPORT_ID_OPERASIONAL)
            {
                sd.KMAwal = 0;
            }

            //  nilai kas bon => terisi jika kasbon, kosongkan jika bukan kasbon
            if (sd.JenisBiayaID == JENISBIAYA_ID_KASBON)
            {
                sd.KasBon.LessOrEqual(0).Throw("Nilai KasBon kosong");
            }
            if (sd.JenisBiayaID != JENISBIAYA_ID_KASBON)
            {
                sd.KasBon = 0;
            }

            //  approval
            sd.ListApproval.Empty().Throw("List Approval empty");
            var listApproval = new List <SuratDinasApprovalModel>();

            foreach (var item in sd.ListApproval)
            {
                peg = _pegDal.GetData(item);
                peg.Empty().Throw("PegID Approval invalid");
                item.PegName = peg.PegName;

                var aprvType = _approvalTypeDal.GetData(item);
                aprvType.Empty().Throw("Approval Type invalid");
                item.ApprovalTypeName = aprvType.ApprovalTypeName;
                var newItem = new SuratDinasApprovalModel
                {
                    PegID            = item.PegID,
                    PegName          = peg.PegName,
                    ApprovalTypeID   = item.ApprovalTypeID,
                    ApprovalTypeName = item.ApprovalTypeName,
                };
                listApproval.Add(newItem);
            }
            sd.ListApproval = listApproval;

            return(sd);
        }
Example #5
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);
        }