public ReturDepositModel Save(ReturDepositModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            //  validate depositID
            var deposit = _depositBL.GetData(model.DepositID);

            if (deposit == null)
            {
                throw new ArgumentException("DepositID invalid");
            }
            else
            {
                model.PihakKeduaName = deposit.PihakKeduaName;
            }

            //  validate jenisKas
            var jenisKas = _jenisKasBL.GetData(model.JenisKasID);

            if (jenisKas == null)
            {
                throw new ArgumentException("JenisKasID invalid");
            }
            else
            {
                model.JenisKasName = jenisKas.JenisKasName;
            }

            //  cek nilai retur harus antara 0 dan sisa deposit
            if (model.NilaiReturDeposit > model.NilaiSisaDeposit)
            {
                throw new ArgumentException("NilaiReturDeposit Invalid");
            }
            if (model.NilaiReturDeposit <= 0)
            {
                throw new ArgumentException("NilaiReturDeposit Invalid minus");
            }

            //  proses simpan
            using (var trans = TransHelper.NewScope())
            {
                if (model.ReturDepositID.Trim() == "")
                {
                    model.ReturDepositID = GenNewID();
                }

                // hapus data lama
                _returDepositDal.Delete(model.ReturDepositID);
                //  simpan data baru
                _returDepositDal.Insert(model);

                trans.Complete();
            }
            return(model);
        }
        private void ShowData()
        {
            var returDeposit = _returDepositBL.GetData(ReturDepositIDText.Text);

            if (returDeposit == null)
            {
                ClearForm();
                return;
            }

            TglText.Value           = returDeposit.Tgl.ToDate();
            JamText.Text            = returDeposit.Jam;
            DepositIDText.Text      = returDeposit.DepositID;
            PihakKeduaNameText.Text = returDeposit.PihakKeduaName;
            SisaDepositText.Value   = returDeposit.NilaiSisaDeposit;
            var deposit = _depositBL.GetData(returDeposit.DepositID);

            KeteranganDepositText.Text = deposit.Keterangan;

            KeteranganReturDepositText.Text = returDeposit.Catatan;

            JenisKasCombo.SelectedValue = returDeposit.JenisKasID;
            NilaiReturText.Value        = returDeposit.NilaiReturDeposit;
        }
Beispiel #3
0
        private void ShowData()
        {
            var deposit = _depositBL.GetData(BiayaIDText.Text);

            if (deposit == null)
            {
                ClearForm();
                return;
            }

            TglText.Value                 = deposit.Tgl.ToDate();
            JamText.Text                  = deposit.Jam;
            KeteranganText.Text           = deposit.Keterangan;
            PihakKeduaCombo.SelectedValue = deposit.PihakKeduaID;
            BuyerNameTextBox.Text         = deposit.BuyerName;
            JenisBayarCombo.SelectedValue = deposit.JenisBayarID;
            NilIText.Value                = deposit.NilaiDeposit;
        }
Beispiel #4
0
        private void SaveTransaksi()
        {
            //  pindah textbox ke variable utk proses simpan
            var kodeTrs    = NoTrsTextBox.Text;
            var tglTrs     = TanggalDateTime.Value.ToString("dd-MM-yyyy");
            var jamTrs     = JamTextBox.Text;
            var customerID = "";

            if (CustomerComboBox.SelectedValue != null)
            {
                customerID = CustomerComboBox.SelectedValue.ToString();
            }
            //
            var buyerName = BuyerNameTextBox.Text;
            var alamat    = AlamatTextBox.Text;
            var noTelpon  = NoTelpTextBox.Text;
            var catatan   = CatatanTextBox.Text;
            //
            var biayaKirim = BiayaKirimNumText.Value;
            var total      = TotalNumText.Value;
            var diskon     = DiskonNumText.Value;
            var biayaLain  = BiayaLainNumText.Value;
            var grandTotal = GrandTotalNumText.Value;
            var bayarCash  = BayarCashNumText.Value;
            var totalBayar = BayarNonCashNumText.Value + BayarCashNumText.Value;
            var kembali    = KembaliNumText.Value;

            //--ambil data grid barang
            var dtlTrs = new List <Penjualan2Model>();
            var noUrut = 0;
            List <Penjualan2Model> listDetilBrg = null;

            foreach (DataRow dr in DetilPenjualanTable.Rows)
            {
                if (listDetilBrg == null)
                {
                    listDetilBrg = new List <Penjualan2Model>();
                }

                if (dr["BrgID"].ToString().Trim() == "")
                {
                    continue;
                }

                var dtlAdj = new Penjualan2Model()
                {
                    NoUrut   = noUrut,
                    BrgID    = dr["BrgID"].ToString(),
                    BrgName  = "",
                    BPStokID = dr["BPStokID"].ToString(),
                    Qty      = Convert.ToDecimal(dr["Qty"]),
                    Harga    = Convert.ToDecimal(dr["Harga"]),
                    Diskon   = Convert.ToDecimal(dr["Diskon"]),
                    SubTotal = Convert.ToDecimal(dr["SubTotal"])
                };
                listDetilBrg.Add(dtlAdj);
                noUrut++;
            }

            //  siapkan object tampung pembayaran
            List <PenjualanBayarModel> listDetilBayar = null;

            //  ambil data bayar detil
            if (_listBayarDetil != null)
            {
                foreach (var item in _listBayarDetil)
                {
                    var itemNonCash = new PenjualanBayarModel
                    {
                        JenisBayarID = item.JenisBayarID,
                        NilaiBayar   = item.NilaiBayar,
                        Catatan      = item.Catatan
                    };
                    if (listDetilBayar == null)
                    {
                        listDetilBayar = new List <PenjualanBayarModel>();
                    }
                    listDetilBayar.Add(itemNonCash);
                }
            }

            if (kembali != 0)
            {
                var itemKembali = new PenjualanBayarModel
                {
                    JenisBayarID = "KAS",
                    NilaiBayar   = -kembali,
                    Catatan      = ""
                };
                if (listDetilBayar == null)
                {
                    listDetilBayar = new List <PenjualanBayarModel>();
                }
                listDetilBayar.Add(itemKembali);
            }

            //  cari nilai deposit
            decimal bayarDepositDeposit = 0;

            if (DepositCheckBox.Checked)
            {
                decimal nilaiDeposit = NilaiDepositText.Value;
                bayarDepositDeposit = Math.Min((grandTotal - totalBayar), nilaiDeposit);
            }


            var penjualan = new PenjualanModel
            {
                PenjualanID  = kodeTrs,
                TglPenjualan = tglTrs,
                JamPenjualan = jamTrs,
                CustomerID   = customerID,
                BuyerName    = buyerName,
                Alamat       = alamat,
                NoTelp       = noTelpon,
                Catatan      = catatan,

                IsBayarDeposit = DepositCheckBox.Checked,
                DepositID      = DepositIDText.Text,
                NilaiDeposit   = bayarDepositDeposit,

                NilaiBiayaKirim = biayaKirim,
                NilaiTotal      = total,
                NilaiDiskonLain = diskon,
                NilaiBiayaLain  = biayaLain,
                NilaiGrandTotal = grandTotal,
                NilaiBayar      = totalBayar,
                NilaiKembali    = kembali,

                ListBrg   = listDetilBrg,
                ListBayar = listDetilBayar
            };

            PenjualanModel result = null;

            try
            {
                using (var trans = TransHelper.NewScope())
                {
                    //  save penjualan
                    result = _penjualanBL.Save(penjualan);

                    //  generate kas
                    BPKasModel bpKas = null;
                    if (penjualan.ListBayar != null)
                    {
                        bpKas = _bpKasBL.Generate(penjualan);
                    }

                    //  generate hutang lunas (kalo ada deposit)
                    BPHutangModel bpHutang = null;
                    if (penjualan.IsBayarDeposit)
                    {
                        var deposit = _depositBL.GetData(penjualan.DepositID);
                        bpHutang = _bpHutangBL.GenHutang(penjualan, deposit);
                    }

                    //  Gen BP Piutang (Jika Ada)
                    _bpPiutangBL.GenPiutang(penjualan);

                    //  generate stok
                    //  copy original list
                    var listBrgOri = result.ListBrg.CloneObject();
                    //  remove item2 jasa di list
                    var listBrg = new List <Penjualan2Model>();
                    foreach (var item in result.ListBrg)
                    {
                        if (item.BrgID.ToLower().Contains("jasa"))
                        {
                        }
                        else
                        {
                            listBrg.Add(item);
                        }
                    }
                    result.ListBrg = listBrg;
                    var bpStok = _bpStokBL.Generate(result);
                    //  kembalikan list original-nya (utk kepentingan cetak)
                    result.ListBrg = listBrgOri;

                    trans.Complete();
                }
            }
            catch (ArgumentException ex)
            {
                MessageBox.Show(ex.Message);
                return;
            }

            if (result != null)
            {
                LastIDLabel.Text = result.PenjualanID;
            }

            if (MessageBox.Show("Cetak Nota ?", "Penjualan", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                //  ubah nama barang menjadi nama brg versi pendek (utk print)
                foreach (var item in result.ListBrg)
                {
                    var brg = _brgBL.GetData(item.BrgID);
                    if (brg.BrgNamePrint.Trim() != "")
                    {
                        item.BrgName = brg.BrgNamePrint;
                    }
                }
                var printDoc = new NotaJualPrintDoc(result);
                printDoc.Print();
            }
            ClearForm();
        }