Exemplo n.º 1
0
        public void UpdateTest()
        {
            var obj = _bll.GetByID("70c46d69-ca7c-46b2-bd18-ebf03a28d02b");

            obj.nota          = "22222";
            obj.tanggal       = new DateTime(2017, 1, 1);
            obj.tanggal_tempo = new DateTime(2017, 1, 25);
            obj.ppn           = 20000;
            obj.diskon        = 7500;
            obj.keterangan    = "tesssss";

            foreach (var itemBeli in obj.item_beli)
            {
                itemBeli.jumlah       = itemBeli.jumlah + 1;
                itemBeli.harga        = itemBeli.harga + 1000;
                itemBeli.diskon       = 0;
                itemBeli.entity_state = EntityState.Modified;
            }

            var validationError = new ValidationError();

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

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

            Assert.IsTrue(result != 0);

            var updatedObj = _bll.GetByID(obj.beli_produk_id);

            Assert.IsNotNull(updatedObj);
            Assert.AreEqual(obj.beli_produk_id, updatedObj.beli_produk_id);
            Assert.AreEqual(obj.pengguna_id, updatedObj.pengguna_id);
            Assert.AreEqual(obj.supplier_id, updatedObj.supplier_id);
            Assert.AreEqual(obj.nota, updatedObj.nota);
            Assert.AreEqual(obj.tanggal, updatedObj.tanggal);
            Assert.AreEqual(obj.tanggal_tempo, updatedObj.tanggal_tempo);
            Assert.AreEqual(obj.ppn, updatedObj.ppn);
            Assert.AreEqual(obj.diskon, updatedObj.diskon);
            Assert.AreEqual(obj.total_nota, updatedObj.total_nota);
            //Assert.AreEqual(obj.total_pelunasan, newObj.total_pelunasan);
            Assert.AreEqual(obj.keterangan, updatedObj.keterangan);

            // tes hasil update ke tabel item beli
            Assert.AreEqual(3, updatedObj.item_beli.Count);

            var index = 0;

            foreach (var itemBeliUpdated in updatedObj.item_beli)
            {
                Assert.AreEqual(obj.item_beli[index].produk_id, itemBeliUpdated.produk_id);
                Assert.AreEqual(obj.item_beli[index].harga, itemBeliUpdated.harga);
                Assert.AreEqual(obj.item_beli[index].jumlah, itemBeliUpdated.jumlah);
                Assert.AreEqual(obj.item_beli[index].diskon, itemBeliUpdated.diskon);

                index++;
            }
        }
        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();
                    }
                }
            }
        }