示例#1
0
        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();
                    }
                }
            }
        }
示例#2
0
        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();
                    }
                }
            }
        }
示例#3
0
        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++;
            }
        }