Ejemplo n.º 1
0
 public StatusBarangModel()
 {
     Pembelian       = new PembelianModel();
     Penjualan       = new PenjualanModel();
     PenyesuaianStok = new PenyesuaianStokModel();
     PenjualanReturn = new PenjualanReturnModel();
     PembelianReturn = new PembelianReturnModel();
 }
        private void ShouldReturnSuccessForInsert()
        {
            var operationSecceded = false;
            var dataAccessJsonStr = string.Empty;
            var formattedJsonStr  = string.Empty;

            try
            {
                var listPenjualanDetails = new List <PenjualanDetailModel>
                {
                    new PenjualanDetailModel
                    {
                        barang_id = 1,
                        qty       = 5
                    },
                    new PenjualanDetailModel
                    {
                        barang_id = 2,
                        qty       = 5
                    },
                    new PenjualanDetailModel
                    {
                        barang_id = 3,
                        qty       = 5
                    }
                };

                var penjualanModel = new PenjualanModel
                {
                    pelanggan_id      = default(uint),
                    tanggal           = DateTime.Now,
                    status_pembayaran = true,
                    diskon            = 0,
                    PenjualanDetails  = listPenjualanDetails
                };

                _services.Insert(penjualanModel);

                operationSecceded = true;
            }
            catch (DataAccessException ex)
            {
                operationSecceded = ex.DataAccessStatusInfo.OperationSucceeded;
                dataAccessJsonStr = JsonConvert.SerializeObject(ex.DataAccessStatusInfo);
                formattedJsonStr  = JToken.Parse(dataAccessJsonStr).ToString();
            }

            try
            {
                Assert.True(operationSecceded);
                _testOutputHelper.WriteLine("Data berhasil ditambahkan.");
            }
            finally
            {
                _testOutputHelper.WriteLine(formattedJsonStr);
            }
        }
Ejemplo n.º 3
0
        public PenjualanModel GetData(string penjualanID)
        {
            PenjualanModel result = null;
            var            sSql   = @"
                SELECT
                    aa.PenjualanID, aa.TglPenjualan, aa.JamPenjualan, aa.BuyerName,
                    aa.CustomerID, aa.Alamat, aa.NoTelp, aa.Catatan, aa.IsBayarDeposit, aa.DepositID, 
                    aa.NilaiBiayaKirim, aa.NilaiTotal, aa.NilaiDiskonLain, aa.NilaiDeposit, 
                    aa.NilaiBiayaLain, aa.NilaiGrandTotal, aa.NilaiBayar, aa.NilaiKembali,
                    ISNULL(bb.CustomerName, '') CustomerName
                FROM
                    Penjualan aa
                    LEFT JOIN Customer bb ON aa.CustomerID = bb.CustomerID
                WHERE
                    PenjualanID = @PenjualanID ";

            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)
                        {
                            dr.Read();
                            result = new PenjualanModel
                            {
                                PenjualanID  = dr["PenjualanID"].ToString(),
                                TglPenjualan = dr["TglPenjualan"].ToString().ToTglDMY(),
                                JamPenjualan = dr["JamPenjualan"].ToString(),

                                BuyerName    = dr["BuyerName"].ToString(),
                                CustomerID   = dr["CustomerID"].ToString(),
                                CustomerName = dr["CustomerName"].ToString(),
                                Alamat       = dr["Alamat"].ToString(),
                                NoTelp       = dr["NoTelp"].ToString(),
                                Catatan      = dr["Catatan"].ToString(),

                                IsBayarDeposit = Convert.ToBoolean(dr["IsBayarDeposit"]),
                                DepositID      = dr["DepositID"].ToString(),
                                NilaiDeposit   = Convert.ToDecimal(dr["NilaiDeposit"]),

                                NilaiBiayaKirim = Convert.ToDecimal(dr["NilaiBiayaKirim"]),
                                NilaiTotal      = Convert.ToDecimal(dr["NilaiTotal"]),
                                NilaiDiskonLain = Convert.ToDecimal(dr["NilaiDiskonLain"]),
                                NilaiBiayaLain  = Convert.ToDecimal(dr["NilaiBiayaLain"]),
                                NilaiGrandTotal = Convert.ToDecimal(dr["NilaiGrandTotal"]),

                                NilaiBayar   = Convert.ToDecimal(dr["NilaiBayar"]),
                                NilaiKembali = Convert.ToDecimal(dr["NilaiKembali"])
                            };
                        }
                    }
                }
            return(result);
        }
Ejemplo n.º 4
0
        public PenjualanModel Save(PenjualanModel penjualan)
        {
            //  validasi
            var result = penjualan;

            result = TryValidate(penjualan);

            var trsID = "";

            //  save
            using (var trans = TransHelper.NewScope())
            {
                //  edit: delete data lama
                if (penjualan.PenjualanID.Trim() != "")
                {
                    _penjualan2Dal.Delete(penjualan.PenjualanID);
                    _penjualanBayarDal.Delete(penjualan.PenjualanID);
                    _penjualanDal.Delete(penjualan.PenjualanID);
                    trsID = penjualan.PenjualanID;
                }
                //  baru: generate no.transaksi
                else
                {
                    var prefix = "JL" + DateTime.Now.ToString("yyMM");
                    trsID = _paramNoBL.GenNewID(prefix, 10);
                }

                //  save header
                penjualan.PenjualanID = trsID;
                _penjualanDal.Insert(penjualan);
                //  save detil barang
                foreach (var item in penjualan.ListBrg)
                {
                    item.PenjualanID  = trsID;
                    item.PenjualanID2 = string.Format("{0}-{1}", trsID, item.NoUrut.ToString().PadLeft(3, '0'));
                    _penjualan2Dal.Insert(item);
                }

                //  save detil bayar
                if (penjualan.ListBayar != null)
                {
                    foreach (var item in penjualan.ListBayar)
                    {
                        item.PenjualanID  = trsID;
                        item.PenjualanID2 = string.Format("{0}-{1}", trsID, item.NoUrut.ToString().PadLeft(2, '0'));

                        _penjualanBayarDal.Insert(item);
                    }
                }

                trans.Complete();
            }
            return(result);
        }
Ejemplo n.º 5
0
 private decimal GetNilaiPiutangJual(PenjualanModel penjualan)
 {
     const string TipeKasPiutang = "PT";
     decimal result = 0;
     foreach (var item in penjualan.ListBayar)
     {
         var jenisBayar = _jenisBayarDal.GetData(item.JenisBayarID);
         if (jenisBayar.TipeKas == TipeKasPiutang)
             result += item.NilaiBayar;
     }
     return result;
 }
Ejemplo n.º 6
0
        public void Update(PenjualanModel penjualan)
        {
            var sSql = @"
                UPDATE
                    Penjualan
                SET
                    TglPenjualan = @TglPenjualan, 
                    JamPenjualan = @JamPenjualan, 
                    BuyerName = @BuyerName,
                    CustomerID = @CustomerID, 
                    Alamat = @Alamat, 
                    NoTelp = @NoTelp, 
                    Catatan = @Catatan,
                    IsBayarDeposit = @IsBayarDeposit,
                    DepositID = @DepositID, 
                    NilaiDeposit = @NilaiDeposit, 

                    NilaiBiayaKirim = @NilaiBiayaKirim, 
                    NilaiTotal = @NilaiTotal, 
                    NilaiDiskonLain = @NilaiDiskonLain,
                    NilaiBiayaLain = @NilaiBiayaLain, 
                    NilaiGrandTotal = @NilaiGrandTotal,
                    NilaiBayar = @NilaiBayar,
                    NilaiKembali = @NilaiKembali
                WHERE
                    PenjualanID = @PenjualanID ";

            using (var conn = new SqlConnection(_connString))
                using (var cmd = new SqlCommand(sSql, conn))
                {
                    cmd.AddParam("@PenjualanID", penjualan.PenjualanID);
                    cmd.AddParam("@TglPenjualan", penjualan.TglPenjualan.ToTglYMD());
                    cmd.AddParam("@JamPenjualan", penjualan.JamPenjualan);
                    cmd.AddParam("@BuyerName", penjualan.BuyerName);
                    cmd.AddParam("@CustomerID", penjualan.CustomerID);
                    cmd.AddParam("@Alamat", penjualan.Alamat);
                    cmd.AddParam("@NoTelp", penjualan.NoTelp);
                    cmd.AddParam("@Catatan", penjualan.Catatan);
                    cmd.AddParam("@IsBayarDeposit", penjualan.IsBayarDeposit);
                    cmd.AddParam("@DepositID", penjualan.DepositID);
                    cmd.AddParam("@NilaiDeposit", penjualan.NilaiDeposit);

                    cmd.AddParam("@NilaiBiayaKirim", penjualan.NilaiBiayaKirim);
                    cmd.AddParam("@NilaiTotal", penjualan.NilaiTotal);
                    cmd.AddParam("@NilaiDiskonLain", penjualan.NilaiDiskonLain);
                    cmd.AddParam("@NilaiBiayaLain", penjualan.NilaiBiayaLain);
                    cmd.AddParam("@NilaiGrandTotal", penjualan.NilaiGrandTotal);
                    cmd.AddParam("@NilaiBayar", penjualan.NilaiBayar);
                    cmd.AddParam("@NilaiKembali", penjualan.NilaiKembali);
                    conn.Open();
                    cmd.ExecuteNonQuery();
                }
        }
Ejemplo n.º 7
0
 private bool IsJualPiutang(PenjualanModel penjualan)
 {
     const string TipeKasPiutang = "PT";
     var isPiutang = false;
     if (penjualan.ListBayar == null) return false;     
     foreach (var item in penjualan.ListBayar)
     {
         var jenisBayar = _jenisBayarDal.GetData(item.JenisBayarID);
         if (jenisBayar.TipeKas == TipeKasPiutang)
         {
             isPiutang = true;
             break;
         }
     }
     return isPiutang;
 }
Ejemplo n.º 8
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);
        }
Ejemplo n.º 9
0
        public BPPiutangModel GenPiutang(PenjualanModel penjualan)
        {
            if (penjualan == null)
            {
                throw new ArgumentNullException(nameof(penjualan));
            }

            if (!IsJualPiutang(penjualan)) return null;

            var nilaiPiutang = GetNilaiPiutangJual(penjualan);
            //  header piutang
            var bpPiutang = new BPPiutangModel
            {
                BPPiutangID = penjualan.PenjualanID,
                Tgl = penjualan.TglPenjualan,
                Jam = penjualan.JamPenjualan,
                Keterangan = "Penjualan",
                PihakKeduaID = penjualan.CustomerID,
                PihakKeduaName = penjualan.CustomerName,
                NilaiPiutang = nilaiPiutang,
                NilaiLunas = 0
            };

            //  detil piutang
            var resultDetil = new BPPiutangDetilModel
            {
                BPPiutangID = penjualan.PenjualanID,
                BPPiutangDetilID = penjualan.PenjualanID + '-' + "01",
                Tgl = penjualan.TglPenjualan,
                Jam = penjualan.JamPenjualan,
                Keterangan = "Piutang Jual",
                ReffID = penjualan.PenjualanID,
                NilaiPiutang = nilaiPiutang,
                NilaiLunas = 0
            };
            var listDetil = new List<BPPiutangDetilModel>
            {
                resultDetil
            };
            bpPiutang.ListLunas = listDetil;

            var result = Save(bpPiutang);
            return result;
        }
        private void ShouldReturnSuccessForDelete()
        {
            var operationSecceded = false;
            var dataAccessJsonStr = string.Empty;
            var formattedJsonStr  = string.Empty;

            try
            {
                //for (uint i = 1; i <= 5; i++)
                //{
                //   var model = new PenjualanModel()
                //   {
                //      id = i,
                //   };

                //   _services.Delete(model);
                //}

                var model = new PenjualanModel()
                {
                    id = 1,
                };

                _services.Delete(model);

                operationSecceded = true;
            }
            catch (DataAccessException ex)
            {
                operationSecceded = ex.DataAccessStatusInfo.OperationSucceeded;
                dataAccessJsonStr = JsonConvert.SerializeObject(ex.DataAccessStatusInfo);
                formattedJsonStr  = JToken.Parse(dataAccessJsonStr).ToString();
            }

            try
            {
                Assert.True(operationSecceded);
                _testOutputHelper.WriteLine("Data berhasil dihapus.");
            }
            finally
            {
                _testOutputHelper.WriteLine(formattedJsonStr);
            }
        }
Ejemplo n.º 11
0
        public void Insert(PenjualanModel penjualan)
        {
            var sSql = @"
                INSERT INTO
                    Penjualan(
                        PenjualanID, TglPenjualan, JamPenjualan, BuyerName,
                        CustomerID, Alamat, NoTelp, Catatan, 
                        IsBayarDeposit, DepositID, NilaiDeposit, 
                        NilaiBiayaKirim, NilaiTotal, NilaiDiskonLain, 
                        NilaiBiayaLain, NilaiGrandTotal, NilaiBayar, NilaiKembali)
                VALUES (
                        @PenjualanID, @TglPenjualan, @JamPenjualan, @BuyerName,
                        @CustomerID, @Alamat, @NoTelp, @Catatan,
                        @IsBayarDeposit, @DepositID, @NilaiDeposit, 
                        @NilaiBiayaKirim, @NilaiTotal, @NilaiDiskonLain, 
                        @NilaiBiayaLain, @NilaiGrandTotal, @NilaiBayar, @NilaiKembali) ";

            using (var conn = new SqlConnection(_connString))
                using (var cmd = new SqlCommand(sSql, conn))
                {
                    cmd.AddParam("@PenjualanID", penjualan.PenjualanID);
                    cmd.AddParam("@TglPenjualan", penjualan.TglPenjualan.ToTglYMD());
                    cmd.AddParam("@JamPenjualan", penjualan.JamPenjualan);
                    cmd.AddParam("@BuyerName", penjualan.BuyerName);
                    cmd.AddParam("@CustomerID", penjualan.CustomerID);
                    cmd.AddParam("@Alamat", penjualan.Alamat);
                    cmd.AddParam("@NoTelp", penjualan.NoTelp);
                    cmd.AddParam("@Catatan", penjualan.Catatan);
                    cmd.AddParam("@IsBayarDeposit", penjualan.IsBayarDeposit);
                    cmd.AddParam("@NilaiDeposit", penjualan.NilaiDeposit);
                    cmd.AddParam("@DepositID", penjualan.DepositID);
                    cmd.AddParam("@NilaiBiayaKirim", penjualan.NilaiBiayaKirim);
                    cmd.AddParam("@NilaiTotal", penjualan.NilaiTotal);
                    cmd.AddParam("@NilaiDiskonLain", penjualan.NilaiDiskonLain);
                    cmd.AddParam("@NilaiBiayaLain", penjualan.NilaiBiayaLain);
                    cmd.AddParam("@NilaiGrandTotal", penjualan.NilaiGrandTotal);
                    cmd.AddParam("@NilaiBayar", penjualan.NilaiBayar);
                    cmd.AddParam("@NilaiKembali", penjualan.NilaiKembali);
                    conn.Open();
                    cmd.ExecuteNonQuery();
                }
        }
Ejemplo n.º 12
0
        public BPHutangModel GenHutang(PenjualanModel penjualan, DepositModel deposit)
        {
            //  ambil data hutang berdasarkan deposit
            var bpHutang = GetData(deposit.DepositID);

            if (bpHutang == null)
            {
                var errMsg = string.Format("Hutang {0} tidak ditemukan ", deposit.DepositID);
                throw new ArgumentException(errMsg);
            }

            //  hapus detil lunas yang id-nya = PenjualanID
            List <BPHutangDetilModel> newListLunas =
                (
                    from c in bpHutang.ListLunas
                    where c.ReffID != penjualan.PenjualanID
                    select c
                ).ToList();

            //  tambahkan pelunasan dari penjualan
            int noUrut = newListLunas.Count + 1;

            newListLunas.Add(new BPHutangDetilModel
            {
                BPHutangID      = bpHutang.BPHutangID,
                BPHutangDetilID = bpHutang.BPHutangID + '-' + noUrut.ToString().PadLeft(2, '0'),
                Tgl             = penjualan.TglPenjualan,
                Jam             = penjualan.JamPenjualan,
                ReffID          = penjualan.PenjualanID,
                Keterangan      = "   Penjualan a/n " + penjualan.BuyerName,
                NilaiHutang     = 0,
                NilaiLunas      = penjualan.NilaiGrandTotal > penjualan.NilaiDeposit ?
                                  penjualan.NilaiDeposit : penjualan.NilaiGrandTotal,
            });

            bpHutang.ListLunas = newListLunas;
            //  simpan
            var result = Save(bpHutang);

            return(result);
        }
        public void ShouldReturnModelMatchingNoNota()
        {
            PenjualanModel model       = null;
            var            noNotaToGet = "20190925000001";

            try
            {
                model = (PenjualanModel)_services.GetByNoNota(noNotaToGet);
            }
            catch (DataAccessException ex)
            {
                _testOutputHelper.WriteLine(ex.DataAccessStatusInfo.GetFormatedValues());
            }

            Assert.True(model != null);
            Assert.True(model.no_nota == noNotaToGet);

            if (model != null)
            {
                TestsHelper.WriteModel(_testOutputHelper, model);
            }
        }
Ejemplo n.º 14
0
        public PenjualanModel TryValidate(PenjualanModel penjualan)
        {
            var result = penjualan;

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

            //  validasi tgl dan jam
            if (!penjualan.TglPenjualan.IsValidTgl("dd-MM-yyyy"))
            {
                throw new ArgumentException("Invalid Tgl.Penjualan");
            }
            if (!penjualan.JamPenjualan.IsValidJam("HH:mm:ss"))
            {
                throw new ArgumentException("Invalid Jam.Penjualan");
            }

            if (penjualan.CustomerID != "")
            {
                var customer = _customerDal.GetData(penjualan.CustomerID);
                penjualan.CustomerName = customer.CustomerName;
            }

            //  cek BrgID
            foreach (var item in penjualan.ListBrg)
            {
                var brg = _brgBL.GetData(item.BrgID);
                if (brg == null)
                {
                    throw new ArgumentException("Invalid BrgID ");
                }
                else
                {
                    item.BrgName = brg.BrgName;
                }
                //  re-calc qty akhir
                item.SubTotal = (item.Harga - item.Diskon) * item.Qty;
            }

            //  validasi pembayaran
            var     noUrut     = 0;
            decimal totalBayar = 0;

            if (penjualan.ListBayar != null)
            {
                foreach (var item in penjualan.ListBayar)
                {
                    var jenisBayar = _jenisBayarDal.GetData(item.JenisBayarID);
                    if (jenisBayar == null)
                    {
                        throw new ArgumentException("Invalid JenisBayarID");
                    }
                    else
                    {
                        item.JenisBayarName = jenisBayar.JenisBayarName;
                    }
                    item.NoUrut = noUrut;
                    noUrut++;
                }
                totalBayar = penjualan.ListBayar.Sum(x => x.NilaiBayar);
            }

            //  jumlah pembayaran tidak boleh kurang dari total
            totalBayar += penjualan.NilaiDeposit;

            if (totalBayar < penjualan.NilaiGrandTotal)
            {
                throw new ArgumentException("Pembayaran kurang dari Nilai Grand Total");
            }

            penjualan.NilaiKembali = penjualan.NilaiBayar - penjualan.NilaiGrandTotal;
            return(result);
        }
Ejemplo n.º 15
0
 public NotaJualPrintDoc(PenjualanModel penjualan)
 {
     _penjualan   = penjualan;
     _fileName    = ConfigurationManager.AppSettings["TemporerPrintFile"];
     _printerName = ConfigurationManager.AppSettings["PrinterNotaJual"];
 }
Ejemplo n.º 16
0
 public PenjualanServicesFixture()
 {
     Model    = new PenjualanModel();
     Services = new PenjualanServices(null, new ModelDataAnnotationCheck());
 }
Ejemplo n.º 17
0
        public IEnumerable <PenjualanModel> ListData(string tgl1, string tgl2)
        {
            List <PenjualanModel> result = null;
            var sSql = @"
                SELECT
                    aa.PenjualanID, aa.TglPenjualan, aa.JamPenjualan, aa.BuyerName,
                    aa.CustomerID, aa.Alamat, aa.NoTelp, aa.Catatan, 
                    aa.IsBayarDeposit, aa.DepositID, aa.NilaiDeposit, 
                    aa.NilaiBiayaKirim, aa.NilaiTotal, aa.NilaiDiskonLain,
                    aa.NilaiBiayaLain, aa.NilaiGrandTotal, aa.NilaiBayar, aa.NilaiKembali,
                    ISNULL(bb.CustomerName, '') CustomerName
                FROM
                    Penjualan aa
                    LEFT JOIN Customer bb ON aa.CustomerID = bb.CustomerID
                WHERE
                    TglPenjualan 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)
                        {
                            result = new List <PenjualanModel>();
                            while (dr.Read())
                            {
                                var item = new PenjualanModel
                                {
                                    PenjualanID  = dr["PenjualanID"].ToString(),
                                    TglPenjualan = dr["TglPenjualan"].ToString().ToTglDMY(),
                                    JamPenjualan = dr["JamPenjualan"].ToString(),

                                    BuyerName    = dr["BuyerName"].ToString(),
                                    CustomerID   = dr["CustomerID"].ToString(),
                                    CustomerName = dr["CustomerName"].ToString(),
                                    Alamat       = dr["Alamat"].ToString(),
                                    NoTelp       = dr["NoTelp"].ToString(),
                                    Catatan      = dr["Catatan"].ToString(),

                                    IsBayarDeposit = Convert.ToBoolean(dr["IsBayarDeposit"]),
                                    DepositID      = dr["DepositID"].ToString(),
                                    NilaiDeposit   = Convert.ToDecimal(dr["NilaiDeposit"]),

                                    NilaiBiayaKirim = Convert.ToDecimal(dr["NilaiBiayaKirim"]),
                                    NilaiTotal      = Convert.ToDecimal(dr["NilaiTotal"]),
                                    NilaiDiskonLain = Convert.ToDecimal(dr["NilaiDiskonLain"]),
                                    NilaiBiayaLain  = Convert.ToDecimal(dr["NilaiBiayaLain"]),
                                    NilaiGrandTotal = Convert.ToDecimal(dr["NilaiGrandTotal"]),

                                    NilaiBayar   = Convert.ToDecimal(dr["NilaiBayar"]),
                                    NilaiKembali = Convert.ToDecimal(dr["NilaiKembali"])
                                };
                                result.Add(item);
                            }
                        }
                    }
                }
            return(result);
        }
Ejemplo n.º 18
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();
        }
Ejemplo n.º 19
0
        public IEnumerable <BPStokModel> Generate(PenjualanModel penjualan)
        {
            if (penjualan == null)
            {
                throw new ArgumentNullException(nameof(penjualan));
            }
            if (penjualan.ListBrg == null)
            {
                throw new ArgumentNullException(nameof(penjualan.ListBrg));
            }

            List <BPStokModel> result = null;

            // generate minus
            foreach (var item in penjualan.ListBrg)
            {
                var stokItem = new StokItem
                {
                    ReffID    = penjualan.PenjualanID,
                    Tgl       = penjualan.TglPenjualan,
                    Jam       = penjualan.JamPenjualan,
                    BrgID     = item.BrgID,
                    BPStokID  = item.BPStokID,
                    BrgName   = item.BrgName,
                    QtyIn     = 0,
                    NilaiHpp  = 0,
                    QtyOut    = item.Qty,
                    HargaJual = item.Harga,
                };
                var genResult = RemoveStok(stokItem);
                if (result == null)
                {
                    result = new List <BPStokModel>();
                }
                foreach (var item2 in genResult)
                {
                    result.Add(item2);
                }
            }

            if (result != null)
            {
                //  delete data lama
                foreach (var item in result)
                {
                    _bpStokDal.Delete(item.BPStokID);
                    _bpStokDetilDal.Delete(item.BPStokID);
                }

                //  insert data baru
                foreach (var item in result)
                {
                    _bpStokDal.Insert(item);
                    foreach (var item2 in item.ListDetil)
                    {
                        _bpStokDetilDal.Insert(item2);
                    }
                }
            }

            //  update stok info
            foreach (var item in penjualan.ListBrg)
            {
                _brgStokHargaBL.UpdateStok(item.BrgID);
            }

            return(result);
        }