protected override void Simpan()
        {
            if (this._supplier == null || txtSupplier.Text.Length == 0)
            {
                MsgHelper.MsgWarning("'Supplier' tidak boleh kosong !");
                txtSupplier.Focus();

                return;
            }

            var total = SumGrid(this._listOfItemBeli);

            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;
                }
            }

            if (!MsgHelper.MsgKonfirmasi("Apakah proses ingin dilanjutkan ?"))
            {
                return;
            }

            if (_isNewData)
            {
                _beli = new BeliProduk();
            }

            _beli.pengguna_id   = this._pengguna.pengguna_id;
            _beli.Pengguna      = this._pengguna;
            _beli.supplier_id   = this._supplier.supplier_id;
            _beli.Supplier      = this._supplier;
            _beli.nota          = txtNota.Text;
            _beli.tanggal       = dtpTanggal.Value;
            _beli.tanggal_tempo = DateTimeHelper.GetNullDateTime();
            _beli.is_tunai      = rdoTunai.Checked;

            if (rdoKredit.Checked) // pembelian kredit
            {
                _beli.tanggal_tempo = dtpTanggalTempo.Value;
            }

            _beli.ppn        = NumberHelper.StringToDouble(txtPPN.Text);
            _beli.diskon     = NumberHelper.StringToDouble(txtDiskon.Text);
            _beli.keterangan = txtKeterangan.Text;

            _beli.item_beli = this._listOfItemBeli.Where(f => f.Produk != null).ToList();
            foreach (var item in _beli.item_beli)
            {
                if (!(item.harga > 0))
                {
                    item.harga = item.Produk.harga_beli;
                }
            }

            if (!_isNewData) // update
            {
                _beli.item_beli_deleted = _listOfItemBeliDeleted;
            }

            var result          = 0;
            var validationError = new ValidationError();

            using (new StCursor(Cursors.WaitCursor, new TimeSpan(0, 0, 0, 0)))
            {
                if (_isNewData)
                {
                    result = _bll.Save(_beli, ref validationError);
                }
                else
                {
                    result = _bll.Update(_beli, ref validationError);
                }

                if (result > 0)
                {
                    try
                    {
                        if (chkCetakNotaBeli.Checked)
                        {
                            CetakNota(_beli.beli_produk_id);
                        }
                    }
                    catch
                    {
                    }

                    Listener.Ok(this, _isNewData, _beli);

                    _supplier = null;
                    _listOfItemBeli.Clear();
                    _listOfItemBeliDeleted.Clear();

                    this.Close();
                }
                else
                {
                    if (validationError.Message.NullToString().Length > 0)
                    {
                        MsgHelper.MsgWarning(validationError.Message);
                        base.SetFocusObject(validationError.PropertyName, this);
                    }
                    else
                    {
                        MsgHelper.MsgUpdateError();
                    }
                }
            }
        }
예제 #2
0
        public void SaveTest()
        {
            var obj = new BeliProduk
            {
                pengguna_id = "00b5acfa-b533-454b-8dfd-e7881edd180f",
                supplier_id = "e6201c8e-74e3-467c-a463-c8ea1763668e",
                nota        = "12345",
                tanggal     = DateTime.Today,
                ppn         = 15000,
                diskon      = 5000,
                keterangan  = "pembelian tunai"
            };

            var listOfItemBeli = new List <ItemBeliProduk>();

            listOfItemBeli.Add(new ItemBeliProduk {
                Produk = new Produk {
                    produk_id = "eafc755f-cab6-4066-a793-660fcfab20d0"
                }, produk_id = "eafc755f-cab6-4066-a793-660fcfab20d0", harga = 53000, jumlah = 5, diskon = 2
            });
            listOfItemBeli.Add(new ItemBeliProduk {
                Produk = new Produk {
                    produk_id = "6e587b32-9d87-4ec3-8e7c-ce15c7b0aecd"
                }, produk_id = "6e587b32-9d87-4ec3-8e7c-ce15c7b0aecd", harga = 50000, jumlah = 10, diskon = 0
            });
            listOfItemBeli.Add(new ItemBeliProduk {
                Produk = new Produk {
                    produk_id = "7f09a4aa-e660-4de3-a3aa-4b3244675f9f"
                }, produk_id = "7f09a4aa-e660-4de3-a3aa-4b3244675f9f", harga = 70000, jumlah = 15, diskon = 5
            });

            obj.item_beli = listOfItemBeli; // menghubungkan beli dan item beli

            var validationError = new ValidationError();

            var result = _bll.Save(obj, ref validationError);

            Console.WriteLine("Error : " + validationError.Message);

            Assert.IsTrue(result != 0);

            // tes hasil penyimpanan ke tabel beli
            var newObj = _bll.GetByID(obj.beli_produk_id);

            Assert.IsNotNull(newObj);
            Assert.AreEqual(obj.beli_produk_id, newObj.beli_produk_id);
            Assert.AreEqual(obj.pengguna_id, newObj.pengguna_id);
            Assert.AreEqual(obj.supplier_id, newObj.supplier_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_beli.Count);

            var index = 0;

            foreach (var itemBeli in newObj.item_beli)
            {
                Assert.AreEqual(listOfItemBeli[index].produk_id, itemBeli.produk_id);
                Assert.AreEqual(listOfItemBeli[index].harga, itemBeli.harga);
                Assert.AreEqual(listOfItemBeli[index].jumlah, itemBeli.jumlah);
                Assert.AreEqual(listOfItemBeli[index].diskon, itemBeli.diskon);

                index++;
            }
        }