protected override void Simpan() { var msg = "'{0}' tidak boleh kosong !"; var bayarTunai = 0; var bayarKartu = 0; if (chkBayarViaKartu.Checked) // pembayaran via kartu { bayarKartu = (int)NumberHelper.StringToNumber(txtBayarKartu.Text); if (!(bayarKartu > 0)) { MsgHelper.MsgWarning(string.Format(msg, "Bayar via Kartu")); txtBayarKartu.Focus(); return; } } // pembayaran tunai bayarTunai = (int)NumberHelper.StringToNumber(txtBayarTunai.Text); if (bayarTunai == 0 && bayarKartu == 0) { MsgHelper.MsgWarning(string.Format(msg, "Bayar Tunai")); txtBayarTunai.Focus(); return; } _jual.bayar_tunai = bayarTunai; _jual.bayar_kartu = bayarKartu; if ((_jual.jumlah_bayar - _jual.grand_total) < 0) { MsgHelper.MsgWarning("Maaf jumlah bayar kurang"); if (bayarTunai > 0) { txtBayarTunai.Focus(); txtBayarTunai.SelectAll(); return; } if (bayarKartu > 0) { txtBayarKartu.Focus(); txtBayarKartu.SelectAll(); return; } } if (!MsgHelper.MsgKonfirmasi("Apakah proses penyimpanan ingin di lanjutkan ?")) { return; } _jual.mesin_id = MainProgram.mesinId; _jual.ppn = NumberHelper.StringToDouble(txtPPN.Text); _jual.diskon = NumberHelper.StringToDouble(txtDiskon.Text); if (_jual.bayar_kartu > 0) { var kartu = _listOfKartu[cmbKartu.SelectedIndex]; _jual.kartu_id = kartu.kartu_id; _jual.Kartu = kartu; _jual.nomor_kartu = txtNoKartu.Text; } var result = 0; var validationError = new ValidationError(); using (new StCursor(Cursors.WaitCursor, new TimeSpan(0, 0, 0, 0))) { result = _bll.Save(_jual, ref validationError); if (result > 0) { Listener.Ok(this, _jual); UpdateDefaultPPN(_jual.ppn); this.Close(); } else { if (validationError.Message != null && validationError.Message.Length > 0) { MsgHelper.MsgWarning(validationError.Message); base.SetFocusObject(validationError.PropertyName, this); } else { MsgHelper.MsgUpdateError(); } } } }
protected override void Simpan() { if (this._customer == null || txtCustomer.Text.Length == 0) { MsgHelper.MsgWarning("'Customer' tidak boleh kosong !"); txtCustomer.Focus(); return; } var total = SumGrid(this._listOfItemJual); if (!(total > 0)) { MsgHelper.MsgWarning("Anda belum melengkapi inputan data produk !"); return; } if (rdoKredit.Checked) { if (!DateTimeHelper.IsValidRangeTanggal(dtpTanggal.Value, dtpTanggalTempo.Value)) { MsgHelper.MsgNotValidRangeTanggal(); return; } total = NumberHelper.StringToDouble(lblTotal.Text); if (this._customer != null) { if (this._customer.plafon_piutang > 0) { if (!(this._customer.plafon_piutang >= (total + this._customer.sisa_piutang))) { var msg = string.Empty; if (this._customer.sisa_piutang > 0) { msg = "Maaf, maksimal plafon piutang customer '{0}' adalah : {1}" + "\nSaat ini customer '{0}' masih mempunyai piutang sebesar : {2}"; msg = string.Format(msg, this._customer.nama_customer, NumberHelper.NumberToString(this._customer.plafon_piutang), NumberHelper.NumberToString(this._customer.sisa_piutang)); } else { msg = "Maaf, maksimal plafon piutang customer '{0}' adalah : {1}"; msg = string.Format(msg, this._customer.nama_customer, NumberHelper.NumberToString(this._customer.plafon_piutang)); } MsgHelper.MsgWarning(msg); return; } } } } if (!MsgHelper.MsgKonfirmasi("Apakah proses ingin dilanjutkan ?")) { return; } if (_isNewData) { _jual = new JualProduk(); } _jual.pengguna_id = this._pengguna.pengguna_id; _jual.Pengguna = this._pengguna; _jual.customer_id = this._customer.customer_id; _jual.Customer = this._customer; _jual.nota = txtNota.Text; _jual.tanggal = dtpTanggal.Value; _jual.tanggal_tempo = DateTimeHelper.GetNullDateTime(); _jual.is_tunai = rdoTunai.Checked; if (rdoKredit.Checked) // penjualan kredit { _jual.tanggal_tempo = dtpTanggalTempo.Value; } _jual.ppn = NumberHelper.StringToDouble(txtPPN.Text); _jual.diskon = NumberHelper.StringToDouble(txtDiskon.Text); _jual.keterangan = txtKeterangan.Text; _jual.item_jual = this._listOfItemJual.Where(f => f.Produk != null).ToList(); foreach (var item in _jual.item_jual) { if (!(item.harga_beli > 0)) { item.harga_beli = item.Produk.harga_beli; } if (!(item.harga_jual > 0)) { item.harga_jual = item.Produk.harga_jual; } } if (!_isNewData) // update { _jual.item_jual_deleted = _listOfItemJualDeleted; } var result = 0; var validationError = new ValidationError(); using (new StCursor(Cursors.WaitCursor, new TimeSpan(0, 0, 0, 0))) { if (_isNewData) { result = _bll.Save(_jual, ref validationError); } else { result = _bll.Update(_jual, ref validationError); } if (result > 0) { if (chkCetakNotaJual.Checked) { CetakNota(_jual.jual_id); } Listener.Ok(this, _isNewData, _jual); _customer = null; _listOfItemJual.Clear(); _listOfItemJualDeleted.Clear(); this.Close(); } else { if (validationError.Message.Length > 0) { MsgHelper.MsgWarning(validationError.Message); base.SetFocusObject(validationError.PropertyName, this); } else { MsgHelper.MsgUpdateError(); } } } }
public void SaveTest() { var obj = new JualProduk { pengguna_id = "960a9111-a077-4e0e-a440-cef77293038a", customer_id = "c7b1ac7f-d201-474f-b018-1dc363d5d7f3", nota = "12345", tanggal = DateTime.Today, ppn = 15000, diskon = 5000, keterangan = "penjualan tunai" }; var listOfItemJual = new List <ItemJualProduk>(); listOfItemJual.Add(new ItemJualProduk { Produk = new Produk { produk_id = "eafc755f-cab6-4066-a793-660fcfab20d0" }, produk_id = "eafc755f-cab6-4066-a793-660fcfab20d0", harga_jual = 53000, jumlah = 5, diskon = 2 }); listOfItemJual.Add(new ItemJualProduk { Produk = new Produk { produk_id = "6e587b32-9d87-4ec3-8e7c-ce15c7b0aecd" }, produk_id = "6e587b32-9d87-4ec3-8e7c-ce15c7b0aecd", harga_jual = 50000, jumlah = 10, diskon = 0 }); listOfItemJual.Add(new ItemJualProduk { Produk = new Produk { produk_id = "7f09a4aa-e660-4de3-a3aa-4b3244675f9f" }, produk_id = "7f09a4aa-e660-4de3-a3aa-4b3244675f9f", harga_jual = 70000, jumlah = 15, diskon = 5 }); obj.item_jual = listOfItemJual; // menghubungkan jual dan item jual var validationError = new ValidationError(); var result = _bll.Save(obj, ref validationError); Console.WriteLine("Error : " + validationError.Message); Assert.IsTrue(result != 0); var newObj = _bll.GetByID(obj.jual_id); Assert.IsNotNull(newObj); Assert.AreEqual(obj.jual_id, newObj.jual_id); Assert.AreEqual(obj.pengguna_id, newObj.pengguna_id); Assert.AreEqual(obj.customer_id, newObj.customer_id); Assert.AreEqual(obj.nota, newObj.nota); Assert.AreEqual(obj.tanggal, newObj.tanggal); Assert.AreEqual(obj.tanggal_tempo, newObj.tanggal_tempo); Assert.AreEqual(obj.ppn, newObj.ppn); Assert.AreEqual(obj.diskon, newObj.diskon); Assert.AreEqual(obj.total_nota, newObj.total_nota); //Assert.AreEqual(obj.total_pelunasan, newObj.total_pelunasan); Assert.AreEqual(obj.keterangan, newObj.keterangan); // tes hasil penyimpanan ke tabel item beli Assert.AreEqual(3, newObj.item_jual.Count); var index = 0; foreach (var itemJual in newObj.item_jual) { Assert.AreEqual(listOfItemJual[index].produk_id, itemJual.produk_id); Assert.AreEqual(listOfItemJual[index].harga_jual, itemJual.harga_jual); Assert.AreEqual(listOfItemJual[index].jumlah, itemJual.jumlah); Assert.AreEqual(listOfItemJual[index].diskon, itemJual.diskon); index++; } }