예제 #1
0
        public IEnumerable <PenjualanBayarModel> ListData(string penjualanID)
        {
            List <PenjualanBayarModel> result = null;
            string sSql = "";

            sSql = @"
                SELECT
                    aa.PenjualanID, aa.PenjualanID2, aa.NoUrut, 
                    aa.JenisBayarID, aa.NilaiBayar, aa.Catatan,
                    ISNULL(bb.JenisBayarName, '') JenisBayarName,
                    ISNULL(bb.JenisKasID, '') JenisKasID,
                    ISNULL(cc.JenisKasName, '') JenisKasName
                FROM
                    PenjualanBayar aa
                    LEFT JOIN JenisBayar bb ON aa.JenisBayarID = bb.JenisBayarID 
                    LEFT JOIN JenisKas cc ON bb.JenisKasID = cc.JenisKasID
                WHERE
                    aa.PenjualanID = @PenjualanID 
                ORDER BY 
                    aa.NoUrut ";

            using (var conn = new SqlConnection(_connString))
                using (var cmd = new SqlCommand(sSql, conn))
                {
                    cmd.AddParam("@PenjualanID", penjualanID);
                    conn.Open();
                    using (var dr = cmd.ExecuteReader())
                    {
                        if (!dr.HasRows)
                        {
                            return(null);
                        }

                        result = new List <PenjualanBayarModel>();
                        while (dr.Read())
                        {
                            var item = new PenjualanBayarModel
                            {
                                PenjualanID    = dr["PenjualanID"].ToString(),
                                PenjualanID2   = dr["PenjualanID2"].ToString(),
                                NoUrut         = Convert.ToInt16(dr["NoUrut"]),
                                JenisBayarID   = dr["JenisBayarID"].ToString(),
                                JenisBayarName = dr["JenisBayarName"].ToString(),
                                JenisKasID     = dr["JenisKasID"].ToString(),
                                JenisKasName   = dr["JenisKasName"].ToString(),
                                NilaiBayar     = Convert.ToDecimal(dr["NilaiBayar"]),
                                Catatan        = dr["Catatan"].ToString()
                            };
                            result.Add(item);
                        }
                    }
                }
            return(result);
        }
예제 #2
0
        public void Insert(PenjualanBayarModel penjualanBayar)
        {
            var sSql = @"
                INSERT INTO
                    PenjualanBayar (
                        PenjualanID, PenjualanID2, NoUrut,
                        JenisBayarID, NilaiBayar, Catatan )
                 VALUES (
                        @PenjualanID, @PenjualanID2, @NoUrut,
                        @JenisBayarID, @NilaiBayar, @Catatan) ";

            using (var conn = new SqlConnection(_connString))
                using (var cmd = new SqlCommand(sSql, conn))
                {
                    cmd.AddParam("@PenjualanID", penjualanBayar.PenjualanID);
                    cmd.AddParam("@PenjualanID2", penjualanBayar.PenjualanID2);
                    cmd.AddParam("@NoUrut", penjualanBayar.NoUrut);
                    cmd.AddParam("@JenisBayarID", penjualanBayar.JenisBayarID);
                    cmd.AddParam("@NilaiBayar", penjualanBayar.NilaiBayar);
                    cmd.AddParam("@Catatan", penjualanBayar.Catatan);
                    conn.Open();
                    cmd.ExecuteNonQuery();
                }
        }
예제 #3
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();
        }