public CashFlow(CashFlowDto snapshot) { this._tenanId=snapshot.TenantId; this._periodId = new PeriodeId(snapshot.PeriodId.StartPeriode, snapshot.PeriodId.EndPeriode); this._saldoAwal = snapshot.SaldoAwal; this._saldoAkhir = snapshot.SaldoAkhir; this._totalPenjualan = snapshot.TotalPenjualan; this._totalPenjualanLain = snapshot.TotalPenjualanLain; this._totalPengeluaran = snapshot.TotalPengeluaran; this._itemsPenjualan = ConvertToItemsPenjualan(snapshot.ItemsPenjualan); this._itemsPenjualanLain = ConvertToItemsPenjualanLain(snapshot.ItemsPenjualanLain); this._itemsPengeluaran = ConvertToItemsPengeluaran(snapshot.ItemsPengeluaran); }
public void init() { _cashflowSnapshot = new CashFlowDto() { TenantId = "ABC", PeriodId = new PeriodeDto(), SaldoAwal = 1000000.0, SaldoAkhir = 850000.0, TotalPenjualan = 0.0, TotalPenjualanLain = 0.0, TotalPengeluaran = 150000.0, }; var cashFlowCreate = _factory.Create<ICashFlow>(); cashFlowCreate.Setup(x => x.Snap()).Returns(_cashflowSnapshot); cashFlowCreate.Setup(x => x.GenerateId()).Returns(new CashFlowId(_periodeId)); _repo.Save(cashFlowCreate.Object); }
public void testCashFlowItemsPenjualan() { PeriodeId periodid = _periodeId; _cashFlow = new CashFlow("ABC", periodid, 1000000.0); _cashFlow.AddPenjualan(new DateTime(2015, 10, 1), 1500000.0); var cashFlowSnapshot = _cashFlow.Snap(); var expected = new CashFlowDto() { TenantId = "ABC", PeriodId = _periode.Snap(), SaldoAwal = 1000000.0, SaldoAkhir = 2500000.0, TotalPenjualan = 1500000.0, TotalPenjualanLain = 0.0, TotalPengeluaran = 0.0 }; Assert.AreEqual(expected, cashFlowSnapshot); Assert.AreEqual(1, cashFlowSnapshot.ItemsPenjualan.Count); var itemPenjualanDto= cashFlowSnapshot.ItemsPenjualan[0]; Assert.AreEqual(new DateTime (2015,10,1),itemPenjualanDto.DateTime); Assert.AreEqual(1500000.0, itemPenjualanDto.Nominal); }
public void testCaseIdSudahAdaDiDBdanSimpanTerakhir() { var cashflowSnapshot2 = new CashFlowDto() { TenantId = "ABC", PeriodId = new PeriodeDto(), SaldoAwal = 1000000.0, SaldoAkhir = 950000.0, TotalPenjualan = 0.0, TotalPenjualanLain = 0.0, TotalPengeluaran = 50000.0, }; var cashFlowCreate2 = _factory.Create<ICashFlow>(); cashFlowCreate2.Setup(x => x.Snap()).Returns(cashflowSnapshot2); cashFlowCreate2.Setup(x => x.GenerateId()).Returns(new CashFlowId(_periodeId)); _repo.Save(cashFlowCreate2.Object); var cashFlow = _repo.FindCashFlowByPeriod(_periodeId); //Assert.AreEqual(cashFlow.Snap().SaldoAkhir, 950000.0); Assert.AreEqual(cashflowSnapshot2, cashFlow.Snap()); }
public void testCashFlowItemsPengeluaran() { PeriodeId periodid = _periodeId; _cashFlow = new CashFlow("ABC", periodid, 1000000.0); _cashFlow.ChangePengeluaran("Ayam",150000.0,7); var cashFlowSnapshot = _cashFlow.Snap(); var expected = new CashFlowDto() { TenantId = "ABC", PeriodId = _periode.Snap(), SaldoAwal = 1000000.0, SaldoAkhir = 850000.0, TotalPenjualan = 0.0, TotalPenjualanLain = 0.0, TotalPengeluaran = 150000.0, }; Assert.AreEqual(expected, cashFlowSnapshot); Assert.AreEqual(1, cashFlowSnapshot.ItemsPengeluaran.Count); var itemPengeluaranDto = cashFlowSnapshot.ItemsPengeluaran[0]; Assert.AreEqual("Ayam", itemPengeluaranDto.Akun); Assert.AreEqual(150000.0, itemPengeluaranDto.Nominal); Assert.AreEqual(7, itemPengeluaranDto.Jumlah); }
public void testUbahPengeluaranJikaAccountSudahAda() { _cashFlow.ChangePengeluaran("Ayam", 400000.0,2); _cashFlow.ChangePengeluaran("Ayam", 600000.0,3); var snapPengeluaran = _cashFlow.Snap(); var expectedPengeluaran = new CashFlowDto() { TenantId = "ABC", PeriodId = _periode.Snap(), SaldoAwal = 500000.0, SaldoAkhir = -100000.0, TotalPenjualan = 0.0, TotalPenjualanLain = 0.0, TotalPengeluaran = 600000.0 }; Assert.AreEqual(expectedPengeluaran, snapPengeluaran); }
public void testTambahPenjualanLainLagi() { _cashFlow.AddPenjualanLain(new DateTime(2015, 10, 2), 200000.0); _cashFlow.AddPenjualanLain(new DateTime(2015, 10, 3), 300000.0); var cashFlowSnapshot = _cashFlow.Snap(); var expected = new CashFlowDto() { TenantId = "ABC", PeriodId = _periode.Snap(), SaldoAwal = 500000.0, SaldoAkhir = 1000000.0, TotalPenjualan = 0.0, TotalPenjualanLain = 500000.0, TotalPengeluaran = 0.0 }; Assert.AreEqual(expected, cashFlowSnapshot); }
public void testSecenario() { PeriodeId periodid = _periodeId; _cashFlow = new CashFlow("ABC", periodid, 1000000.0); _cashFlow.AddPenjualan(new DateTime(2015, 10, 1), 1500000.0); _cashFlow.AddPenjualan(new DateTime(2015, 10, 2), 2000000.0); _cashFlow.AddPenjualanLain(new DateTime(2015, 10, 1), 1500000.0); _cashFlow.AddPenjualanLain(new DateTime(2015, 10, 2), 2000000.0); _cashFlow.ChangePengeluaran("Ayam", 1400000.0,7); _cashFlow.ChangePengeluaran("Ayam", 2400000.0,12); var snapPengeluaran = _cashFlow.Snap(); var expectedPengeluaran = new CashFlowDto() { TenantId = "ABC", PeriodId = _periode.Snap(), SaldoAwal = 1000000.0, SaldoAkhir = 5600000.0, TotalPenjualan = 3500000.0, TotalPenjualanLain = 3500000.0, TotalPengeluaran = 2400000.0 }; Assert.AreEqual(expectedPengeluaran, snapPengeluaran); }
public void testPengeluaranCashFlow() { _cashFlow.ChangePengeluaran("Ayam", 500000.0, 2); _cashFlow.AddPenjualan(new DateTime(2015, 10, 1), 200000.0); _cashFlow.AddPenjualan(new DateTime(2015, 10, 2), 100000.0); _cashFlow.AddPenjualan(new DateTime(2015, 10, 3), 300000.0); _cashFlow.AddPenjualan(new DateTime(2015, 10, 4), 400000.0); _cashFlow.AddPenjualan(new DateTime(2015, 10, 5), 200000.0); var snapPengeluaran = _cashFlow.Snap(); var expectedPengeluaran = new CashFlowDto() { TenantId = "ABC", PeriodId = _periode.Snap(), SaldoAwal = 500000.0, SaldoAkhir = 1200000.0, TotalPenjualan = 1200000.0, TotalPenjualanLain = 0.0, TotalPengeluaran = 500000.0 }; Assert.AreEqual(expectedPengeluaran, snapPengeluaran); }
public void testMembukaCashflow() { var cashFlowSnapshot = _cashFlow.Snap(); var expected = new CashFlowDto() { TenantId = "ABC", PeriodId = _periode.Snap(), SaldoAwal = 500000.0, SaldoAkhir = 500000.0, TotalPenjualan = 0.0, TotalPenjualanLain = 0.0, TotalPengeluaran = 0.0 }; Assert.AreEqual(expected, cashFlowSnapshot); }
public void TestCashflowSucessCase() { var repo = new InMemoryRepository(); var periodeId1 = new PeriodeId(new DateTime(2015, 11, 1), new DateTime(2015, 11, 6)); var periode = new Periode(periodeId1, StatusPeriode.Mingguan); repo.SavePeriod(periode); var periodeSnapShot = new PeriodeDto() { StartPeriode = new DateTime(2015, 11, 1), EndPeriode = new DateTime(2015, 11, 6), IsPeriode = StatusPeriode.Bebas }; var periodeSave = repo.FindPeriodForDate(new DateTime(2015, 11, 3)); Assert.AreEqual(periodeSnapShot, periodeSave.Snap()); //cashflow var cashFlow = new CashFlow("ABC", periodeId1, 500000.0); repo.Save(cashFlow); var cashflowSnapshotDto = new CashFlowDto() { TenantId = "ABC", PeriodId = periode.Snap(), SaldoAwal = 500000.0, SaldoAkhir = 500000.0, TotalPenjualan = 0.0, TotalPenjualanLain = 0.0, TotalPengeluaran = 0.0, }; var findCashFlow = repo.FindCashFlowByPeriod(periodeId1); Assert.AreEqual(cashflowSnapshotDto, findCashFlow.Snap()); //Penjualan cashFlow.AddPenjualan(new DateTime(2015, 11, 1), 200000.0); repo.Save(cashFlow); var repoFind = repo.FindPeriodForDate(new DateTime(2015, 11, 3)); var cashFlowSnapshot = cashFlow.Snap(); var cashflowPenjualanSnapshot = new CashFlowDto() { TenantId = "ABC", PeriodId = periode.Snap(), SaldoAwal = 500000.0, SaldoAkhir = 700000.0, TotalPenjualan = 200000.0, TotalPenjualanLain = 0.0, TotalPengeluaran = 0.0, }; Assert.AreEqual(cashflowPenjualanSnapshot, cashFlowSnapshot); Assert.AreEqual(1, cashFlowSnapshot.ItemsPenjualan.Count); var itemPenjualan = cashFlowSnapshot.ItemsPenjualan[0]; Assert.AreEqual(new DateTime(2015, 11, 1), itemPenjualan.DateTime); Assert.AreEqual(200000.0, itemPenjualan.Nominal); //PenjualanLain cashFlow.AddPenjualanLain(new DateTime(2015, 11, 1), 200000.0); repo.Save(cashFlow); var repoFindLain = repo.FindPeriodForDate(new DateTime(2015, 11, 3)); var cashFlowSnapshotLain = cashFlow.Snap(); var cashflowPenjualanLainSnapshot = new CashFlowDto() { TenantId = "ABC", PeriodId = periode.Snap(), SaldoAwal = 500000.0, SaldoAkhir = 900000.0, TotalPenjualan = 200000.0, TotalPenjualanLain = 200000.0, TotalPengeluaran = 0.0, }; Assert.AreEqual(cashflowPenjualanLainSnapshot, cashFlowSnapshotLain); Assert.AreEqual(1, cashFlowSnapshotLain.ItemsPenjualanLain.Count); var itemPenjualanLain = cashFlowSnapshotLain.ItemsPenjualanLain[0]; Assert.AreEqual(new DateTime(2015, 11, 1), itemPenjualanLain.DateTimeLain); Assert.AreEqual(200000.0, itemPenjualanLain.NominalLain); //Pengeluaran cashFlow.ChangePengeluaran("Ayam",200000,5); repo.Save(cashFlow); var repoFindPengeluaran = repo.FindPeriodForDate(new DateTime(2015, 11, 3)); var cashFlowSnapshotPengeluaran = cashFlow.Snap(); var cashflowPengeluaranSnapshot = new CashFlowDto() { TenantId = "ABC", PeriodId = periode.Snap(), SaldoAwal = 500000.0, SaldoAkhir = 700000.0, TotalPenjualan = 200000.0, TotalPenjualanLain = 200000.0, TotalPengeluaran = 200000.0, }; Assert.AreEqual(cashflowPengeluaranSnapshot, cashFlowSnapshotPengeluaran); Assert.AreEqual(1, cashFlowSnapshotPengeluaran.ItemsPengeluaran.Count); var itemPengeluaran = cashFlowSnapshotPengeluaran.ItemsPengeluaran[0]; Assert.AreEqual("Ayam", itemPengeluaran.Akun); Assert.AreEqual(200000.0, itemPengeluaran.Nominal); Assert.AreEqual(5, itemPengeluaran.Jumlah); //NotaPengeluaran //var noNota = new NotaPengeluaranId("123"); //var notaPengeluaran = new NotaPengeluaran(new DateTime(2015, 11, 1), noNota); //repo.SaveNota(notaPengeluaran); //var foundNota = repo.FindNotaPengeluaranByID("123"); ////var notaSnapshot = notaPengeluaran.Snap(); //var notaSnap = new NotaPengeluaranDto() //{ // Tanggal = new DateTime(2015, 11, 1), // NoNota = noNota, // TotalNota = 0.0 //}; //Assert.AreEqual(notaSnap, foundNota.Snap()); ////AddAkunNota //notaPengeluaran.AddAkun("Ayam", 200000, 5); //repo.SaveNota(notaPengeluaran); //var repoFindNotaAkun = repo.FindPeriodForDate(new DateTime(2015, 11, 3)); //var notaAkunSnapshot = notaPengeluaran.Snap(); //var notaAkunSnap = new NotaPengeluaranDto() //{ // Tanggal = new DateTime(2015, 10, 26), // NoNota = "123", // TotalNota = 0.0 //}; //Assert.AreEqual(notaAkunSnap, notaAkunSnapshot); }