示例#1
0
        public void Update(BPKasModel model)
        {
            var sSql = @"
                UPDATE
                    BPKas 
                SET
                    Tgl = @Tgl, 
                    Jam = @Jam, 
                    Keterangan = @Keterangan,
                    NilaiTotalKas = @NilaiTotalKas
                WHERE
                    BPKasID = @BPKasID ";

            using (var conn = new SqlConnection(_connString))
                using (var cmd = new SqlCommand(sSql, conn))
                {
                    cmd.AddParam("@BPKasID", model.BPKasID);
                    cmd.AddParam("@Tgl", model.Tgl.ToTglYMD());
                    cmd.AddParam("@Jam", model.Jam);
                    cmd.AddParam("@Keterangan", model.Keterangan);
                    cmd.AddParam("@NilaiTotalKas", model.NilaiTotalKas);
                    conn.Open();
                    cmd.ExecuteNonQuery();
                }
        }
示例#2
0
        private BPKasModel BPKasDataFactory()
        {
            var result = new BPKasModel
            {
                BPKasID       = "A1",
                Tgl           = "11-02-2019",
                Jam           = "01:38:00",
                Keterangan    = "C1",
                NilaiTotalKas = 250000
            };

            return(result);
        }
示例#3
0
        public BPKasModel Generate(PenjualanModel penjualan)
        {
            var bpKas = new BPKasModel
            {
                BPKasID       = penjualan.PenjualanID,
                Tgl           = penjualan.TglPenjualan,
                Jam           = penjualan.JamPenjualan,
                Keterangan    = string.Format("Penjualan {0} a/n {1}", penjualan.PenjualanID, penjualan.BuyerName),
                NilaiTotalKas = 0
            };
            var listBpKasDetil = new List <BPKasDetilModel>();

            //  update jenisKasID di detil penjualan
            foreach (var item in penjualan.ListBayar)
            {
                var jenisBayar = _jenisBayarBL.GetData(item.JenisBayarID);
                var jenisKas   = _jenisKasBL.GetData(jenisBayar.JenisKasID);
                item.JenisKasID   = jenisKas.JenisKasID;
                item.JenisKasName = jenisKas.JenisKasName;
            }

            var listJenisKas = _jenisKasBL.ListData();
            int noUrut       = 1;

            foreach (var item in listJenisKas)
            {
                var bpKasDetil = new BPKasDetilModel
                {
                    BPKasID       = penjualan.PenjualanID,
                    BPKasDetilID  = penjualan.PenjualanID + '-' + noUrut.ToString().PadLeft(2, '0'),
                    JenisKasID    = item.JenisKasID,
                    JenisKasName  = item.JenisKasName,
                    NilaiKasMasuk = penjualan.ListBayar
                                    .Where(x => x.JenisKasID == item.JenisKasID)
                                    .Sum(x => x.NilaiBayar),
                };
                noUrut++;
                if (bpKasDetil.NilaiKasMasuk != 0)
                {
                    listBpKasDetil.Add(bpKasDetil);
                }
            }
            bpKas.ListDetil = listBpKasDetil;
            var result = Save(bpKas);

            return(result);
        }
示例#4
0
        public BPKasModel Generate(LunasKasBonModel lunasKasBon, KasBonModel kasBon)
        {
            if (lunasKasBon == null)
            {
                throw new ArgumentNullException(nameof(lunasKasBon));
            }

            if (kasBon == null)
            {
                throw new ArgumentNullException(nameof(kasBon));
            }

            if (lunasKasBon.KasBonID != kasBon.KasBonID)
            {
                throw new ArgumentException("KasBonID invalid");
            }

            //  convert lunasKasBon menjadi object kasBon
            BPKasModel bpKas = new BPKasModel
            {
                BPKasID       = lunasKasBon.LunasKasBonID,
                Tgl           = lunasKasBon.Tgl,
                Jam           = lunasKasBon.Jam,
                Keterangan    = "Lunas KasBon " + kasBon.Keterangan,
                NilaiTotalKas = 0,
            };
            BPKasDetilModel detil = new BPKasDetilModel
            {
                BPKasID       = bpKas.BPKasID,
                BPKasDetilID  = bpKas.BPKasID + '-' + "01",
                JenisKasID    = "K01",
                NilaiKasMasuk =
                    lunasKasBon.ListLunas
                    .Where(x => x.JenisLunasID == "KAS")
                    .Sum(x => x.NilaiLunas)
            };

            bpKas.ListDetil = new List <BPKasDetilModel>
            {
                detil
            };

            var result = Save(bpKas);

            return(result);
        }
示例#5
0
        private BPKasModel Save(BPKasModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            //  validate jenis kas di detil;
            foreach (var item in model.ListDetil)
            {
                var jenisKas = _jenisKasBL.GetData(item.JenisKasID);
                if (jenisKas == null)
                {
                    throw new ArgumentException("Invalid Jenis Kas");
                }
                else
                {
                    item.JenisKasName = jenisKas.JenisKasName;
                }
            }

            //  update nilai total di header
            model.NilaiTotalKas  = model.ListDetil.Sum(x => x.NilaiKasMasuk);
            model.NilaiTotalKas -= model.ListDetil.Sum(x => x.NilaiKasKeluar);

            //  delete data lama
            using (var trans = TransHelper.NewScope())
            {
                _bpKasDetilDal.Delete(model.BPKasID);
                _bpKasDal.Delete(model.BPKasID);

                _bpKasDal.Insert(model);
                foreach (var item in model.ListDetil)
                {
                    _bpKasDetilDal.Insert(item);
                }

                trans.Complete();
            }

            return(model);
        }
示例#6
0
        public IEnumerable <BPKasModel> ListData(string tgl1, string tgl2)
        {
            List <BPKasModel> result = null;
            var sSql = @"
                SELECT
                    aa.BPKasID, aa.Tgl, aa.Jam, aa.Keterangan,
                    aa.NilaiTotalKas 
                FROM    
                    BPKas aa
                WHERE
                    aa.Tgl BETWEEN @Tgl1 AND @Tgl2 ";

            using (var conn = new SqlConnection(_connString))
                using (var cmd = new SqlCommand(sSql, conn))
                {
                    cmd.AddParam("@Tgl1", tgl1.ToTglYMD());
                    cmd.AddParam("@Tgl2", tgl2.ToTglYMD());
                    conn.Open();
                    using (var dr = cmd.ExecuteReader())
                    {
                        if (!dr.HasRows)
                        {
                            return(null);
                        }
                        result = new List <BPKasModel>();
                        while (dr.Read())
                        {
                            var item = new BPKasModel
                            {
                                BPKasID       = dr["BPKasID"].ToString(),
                                Tgl           = dr["Tgl"].ToString().ToTglDMY(),
                                Jam           = dr["Jam"].ToString(),
                                Keterangan    = dr["Keterangan"].ToString(),
                                NilaiTotalKas = Convert.ToDecimal(dr["NilaiTotalKas"]),
                            };
                            result.Add(item);
                        }
                    }
                }
            return(result);
        }
示例#7
0
        public void Insert(BPKasModel model)
        {
            var sSql = @"
                INSERT INTO 
                    BPKas (
                        BPKasID, Tgl, Jam, Keterangan,
                        NilaiTotalKas )
                VALUES (
                        @BPKasID, @Tgl, @Jam, @Keterangan,
                        @NilaiTotalKas) ";

            using (var conn = new SqlConnection(_connString))
                using (var cmd = new SqlCommand(sSql, conn))
                {
                    cmd.AddParam("@BPKasID", model.BPKasID);
                    cmd.AddParam("@Tgl", model.Tgl.ToTglYMD());
                    cmd.AddParam("@Jam", model.Jam);
                    cmd.AddParam("@Keterangan", model.Keterangan);
                    cmd.AddParam("@NilaiTotalKas", model.NilaiTotalKas);
                    conn.Open();
                    cmd.ExecuteNonQuery();
                }
        }
示例#8
0
        public BPKasModel GetData(string id)
        {
            BPKasModel result = null;
            var        sSql   = @"
                SELECT
                    aa.BPKasID, aa.Tgl, aa.Jam, aa.Keterangan,
                    aa.NilaiTotalKas 
                FROM    
                    BPKas aa
                WHERE
                    aa.BPKasID = @BPKasID ";

            using (var conn = new SqlConnection(_connString))
                using (var cmd = new SqlCommand(sSql, conn))
                {
                    cmd.AddParam("@BPKasID", id);
                    conn.Open();
                    using (var dr = cmd.ExecuteReader())
                    {
                        if (!dr.HasRows)
                        {
                            return(null);
                        }
                        dr.Read();
                        result = new BPKasModel
                        {
                            BPKasID       = dr["BPKasID"].ToString(),
                            Tgl           = dr["Tgl"].ToString().ToTglDMY(),
                            Jam           = dr["Jam"].ToString(),
                            Keterangan    = dr["Keterangan"].ToString(),
                            NilaiTotalKas = Convert.ToDecimal(dr["NilaiTotalKas"]),
                        };
                    }
                }
            return(result);
        }
示例#9
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();
        }