Beispiel #1
0
        public JualProduk GetByID(string id)
        {
            JualProduk obj = null;

            try
            {
                _sql = SQL_TEMPLATE.Replace("{WHERE}", "WHERE t_jual_produk.jual_id = @id");
                _sql = _sql.Replace("{ORDER BY}", "");
                _sql = _sql.Replace("{OFFSET}", "");

                obj = MappingRecordToObject(_sql, new { id }).SingleOrDefault();

                if (obj != null)
                {
                    // load item jual
                    obj.item_jual = GetItemJual(obj.jual_id);
                }
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(obj);
        }
Beispiel #2
0
        private void ResetTransaksi(bool isShowConfirm = true)
        {
            if (isShowConfirm)
            {
                var msg = "Apakah Anda ingin membatalkan transaksi saat ini ?";

                if (!MsgHelper.MsgKonfirmasi(msg))
                {
                    return;
                }
            }

            _listOfItemJual.Clear();
            _listOfItemJual.Add(new ItemJualProduk()); // add dummy objek
            _jual = null;

            gridControl.RowCount = _listOfItemJual.Count();
            gridControl.Refresh();

            RefreshTotal();

            _isCetakStruk = true;
            ShowMessage("");
            lblStatusBar.Text = lblStatusBar.Text.Replace("Reset Pelanggan", "Cari Pelanggan");

            txtCustomer.Clear();
            _customer = null;

            _currentNota = this._bll.GetLastNota();
            ShowInfoTanggal(_currentNota);

            gridControl.Focus();
            GridListControlHelper.SetCurrentCell(gridControl, _listOfItemJual.Count, 2); // fokus ke kolom kode produk
        }
Beispiel #3
0
        public JualProduk GetListItemNotaTerakhir(string penggunaId, string mesinId)
        {
            JualProduk obj = null;

            try
            {
                _sql = SQL_TEMPLATE.Replace("{WHERE}", "WHERE t_jual_produk.tanggal = CURRENT_DATE AND t_jual_produk.pengguna_id = @penggunaId AND t_jual_produk.mesin_id = @mesinId");
                _sql = _sql.Replace("{ORDER BY}", "ORDER BY t_jual_produk.tanggal_sistem DESC LIMIT 1");
                _sql = _sql.Replace("{OFFSET}", "");

                obj = MappingRecordToObject(_sql, new { penggunaId, mesinId }).SingleOrDefault();

                if (obj != null)
                {
                    // load item jual
                    obj.item_jual = GetItemJual(obj.jual_id);
                }
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(obj);
        }
Beispiel #4
0
        public int Save(JualProduk obj)
        {
            var result = 0;

            if (_isUseWebAPI)
            {
                obj.jual_id = Guid.NewGuid().ToString();

                foreach (var item in obj.item_jual)
                {
                    item.item_jual_id = Guid.NewGuid().ToString();
                }

                _unitOfWork = new UnitOfWork(_isUseWebAPI, _baseUrl, _log);
                result      = _unitOfWork.JualProdukRepository.Save(obj);
            }
            else
            {
                using (IDapperContext context = new DapperContext())
                {
                    _unitOfWork = new UnitOfWork(context, _log);
                    result      = _unitOfWork.JualProdukRepository.Save(obj);
                }
            }

            return(result);
        }
Beispiel #5
0
        public int Update(JualProduk obj)
        {
            var result = 0;

            if (_isUseWebAPI)
            {
                foreach (var item in obj.item_jual.Where(f => f.entity_state == EntityState.Added))
                {
                    item.item_jual_id = Guid.NewGuid().ToString();
                }

                _unitOfWork = new UnitOfWork(_isUseWebAPI, _baseUrl, _log);
                result      = _unitOfWork.JualProdukRepository.Update(obj);
            }
            else
            {
                using (IDapperContext context = new DapperContext())
                {
                    _unitOfWork = new UnitOfWork(context, _log);
                    result      = _unitOfWork.JualProdukRepository.Update(obj);
                }
            }

            return(result);
        }
Beispiel #6
0
        private double GetTotalNota(JualProduk obj)
        {
            var total = obj.item_jual.Where(f => f.Produk != null && f.entity_state != EntityState.Deleted)
                        .Sum(f => (f.jumlah - f.jumlah_retur) * (f.harga_jual - (f.diskon / 100 * f.harga_jual)));

            return(Math.Round(total, MidpointRounding.AwayFromZero));
        }
Beispiel #7
0
        private void CetakNotaMiniPOS(JualProduk jual)
        {
            IRAWPrinting printerMiniPos = new PrinterMiniPOS(_pengaturanUmum.nama_printer);

            printerMiniPos.Cetak(jual, _pengaturanUmum.list_of_header_nota_mini_pos, _pengaturanUmum.list_of_footer_nota_mini_pos,
                                 _pengaturanUmum.jumlah_karakter, _pengaturanUmum.jumlah_gulung, _customer != null, ukuranFont: _pengaturanUmum.ukuran_font);
        }
        private void SetItemBayar(GridControl grid, int rowIndex, int colIndex, JualProduk jual, double nominal = 0, string keterangan = "")
        {
            ItemPembayaranPiutangProduk itemBayar;

            if (_isNewData)
            {
                itemBayar = new ItemPembayaranPiutangProduk();
            }
            else
            {
                itemBayar = _listOfItemPembayaranPiutang[rowIndex - 1];

                if (itemBayar.entity_state == EntityState.Unchanged)
                {
                    itemBayar.entity_state = EntityState.Modified;
                }
            }

            itemBayar.jual_id    = jual.jual_id;
            itemBayar.JualProduk = jual;
            itemBayar.nominal    = nominal;
            itemBayar.keterangan = keterangan;

            _listOfItemPembayaranPiutang[rowIndex - 1] = itemBayar;
        }
        private double GetTotalNota(JualProduk obj)
        {
            var total = obj.item_jual.Where(f => f.Produk != null && f.entity_state != EntityState.Deleted)
                        .Sum(f => (f.jumlah - f.jumlah_retur) * (f.harga_jual - (f.diskon / 100 * f.harga_jual)));

            total = Math.Ceiling(total);
            return(total);
        }
Beispiel #10
0
        public int Save(JualProduk obj)
        {
            var result = 0;

            try
            {
                _context.BeginTransaction();

                var transaction = _context.transaction;

                obj.jual_id    = _context.GetGUID();
                obj.total_nota = GetTotalNota(obj);

                // insert header
                _context.db.Insert <JualProduk>(obj, transaction);

                // insert detail
                foreach (var item in obj.item_jual.Where(f => f.Produk != null))
                {
                    if (item.produk_id.Length > 0)
                    {
                        item.item_jual_id = _context.GetGUID();
                        item.jual_id      = obj.jual_id;
                        item.pengguna_id  = obj.pengguna_id;

                        _context.db.Insert <ItemJualProduk>(item, transaction);

                        // update entity state
                        item.entity_state = EntityState.Unchanged;
                    }
                }

                // jika pembelian tunai, langsung insert ke pembayaran hutang
                if (obj.tanggal_tempo.IsNull())
                {
                    result = SavePembayaranPiutang(obj);
                    if (result > 0)
                    {
                        obj.total_pelunasan = obj.grand_total;
                    }
                }

                _context.Commit();

                LogicalThreadContext.Properties["NewValue"] = obj.ToJson();
                _log.Info("Tambah data");

                result = 1;
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(result);
        }
        public FrmHapusItemTransaksi(string header, JualProduk jual)
            : base()
        {
            InitializeComponent();
            ColorManagerHelper.SetTheme(this, this);

            base.SetHeader(header);
            base.SetButtonSelesaiToBatal();
            this._jual = jual;
        }
Beispiel #12
0
        private void PreviewLabelNota(JualProduk jual, bool isPreview = true)
        {
            ICetakNotaBll cetakBll       = new CetakNotaBll(_log);
            var           listOfItemNota = cetakBll.GetNotaPenjualan(jual.jual_id);

            if (listOfItemNota.Count > 0)
            {
                var reportDataSource = new ReportDataSource
                {
                    Name  = "NotaPenjualan",
                    Value = listOfItemNota
                };

                foreach (var item in listOfItemNota)
                {
                    item.label_dari1 = txtDari1.Text;
                    item.label_dari2 = txtDari2.Text;
                    item.label_dari3 = txtDari3.Text;

                    item.label_kepada1 = txtKepada1.Text;
                    item.label_kepada2 = txtKepada2.Text;
                    item.label_kepada3 = txtKepada3.Text;
                    item.label_kepada4 = txtKepada4.Text;

                    if (_pengaturanUmum.is_singkat_penulisan_ongkir && item.ongkos_kirim > 0)
                    {
                        item.ongkos_kirim      /= 1000;
                        item.label_ongkos_kirim = item.ongkos_kirim.ToString();
                    }
                    else
                    {
                        item.label_ongkos_kirim = NumberHelper.NumberToString(item.ongkos_kirim);
                    }
                }

                var reportName = "RvLabelNotaPenjualan";

                if (isPreview)
                {
                    reportName = string.Format(_reportNameSpace, reportName);
                    var stream = _assemblyReport.GetManifestResourceStream(reportName);

                    this.reportViewer1.LocalReport.DataSources.Clear();
                    this.reportViewer1.LocalReport.DataSources.Add(reportDataSource);
                    this.reportViewer1.LocalReport.LoadReportDefinition(stream);

                    this.reportViewer1.RefreshReport();
                }
                else
                {
                    var printReport = new ReportViewerPrintHelper(reportName, reportDataSource, printerName: _pengaturanUmum.nama_printer);
                    printReport.Print();
                }
            }
        }
Beispiel #13
0
        private void HapusItemTransaksi()
        {
            var jual = new JualProduk();

            jual.item_jual = this._listOfItemJual.Where(f => f.Produk != null).ToList();

            var frmHapusTransaksi = new FrmHapusItemTransaksi("Hapus Item Transaksi", jual);

            frmHapusTransaksi.Listener = this;
            frmHapusTransaksi.ShowDialog();
        }
Beispiel #14
0
        public void Ok(object sender, object data)
        {
            if (data is Produk) // pencarian produk baku
            {
                var produk = (Produk)data;

                double diskon = 0;
                if (_customer != null)
                {
                    diskon = _customer.diskon;
                }

                if (!(diskon > 0))
                {
                    diskon = produk.diskon > 0 ? produk.diskon : produk.Golongan.diskon;
                }

                SetItemProduk(this.gridControl, _rowIndex, _colIndex + 1, produk, diskon: diskon);
                this.gridControl.Refresh();
                RefreshTotal();

                if (this.gridControl.RowCount == _rowIndex)
                {
                    _listOfItemJual.Add(new ItemJualProduk());
                    this.gridControl.RowCount = _listOfItemJual.Count;
                }

                GridListControlHelper.SetCurrentCell(this.gridControl, _rowIndex + 1, 2); // pindah kebaris berikutnya
            }
            else if (data is Customer)                                                    // pencarian customer
            {
                this._customer   = (Customer)data;
                txtCustomer.Text = this._customer.nama_customer;
                KeyPressHelper.NextFocus();
            }
            else if (data is AlamatKirim)
            {
                var alamatKirim = (AlamatKirim)data;

                if (this._jual == null)
                {
                    this._jual = new JualProduk();
                }

                this._jual.is_sdac         = alamatKirim.is_sdac;
                this._jual.kirim_kepada    = alamatKirim.kepada;
                this._jual.kirim_alamat    = alamatKirim.alamat;
                this._jual.kirim_kecamatan = alamatKirim.kecamatan;
                this._jual.kirim_kelurahan = alamatKirim.kelurahan;
                this._jual.kirim_kota      = alamatKirim.kota;
                this._jual.kirim_kode_pos  = alamatKirim.kode_pos;
                this._jual.kirim_telepon   = alamatKirim.telepon;
            }
        }
Beispiel #15
0
        /// <summary>
        /// Method khusus untuk menyimpan pembayaran penjualan tunai
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        private int SavePembayaranPiutang(JualProduk obj)
        {
            PembayaranPiutangProduk            pembayaranPiutang;
            ItemPembayaranPiutangProduk        itemPembayaranPiutang;
            IPembayaranPiutangProdukRepository pembayaranPiutangRepo = new PembayaranPiutangProdukRepository(_context, _log);

            var result = 0;

            // set detail
            itemPembayaranPiutang = pembayaranPiutangRepo.GetByJualID(obj.jual_id);
            if (itemPembayaranPiutang != null)                      // sudah ada pelunasan
            {
                itemPembayaranPiutang.nominal    = obj.grand_total; // GetTotalNotaSetelahDiskonDanPPN(obj);
                itemPembayaranPiutang.JualProduk = new JualProduk {
                    jual_id = itemPembayaranPiutang.jual_id
                };
                itemPembayaranPiutang.entity_state = EntityState.Modified;

                // set header by detail
                pembayaranPiutang          = itemPembayaranPiutang.PembayaranPiutangProduk;
                pembayaranPiutang.is_tunai = obj.is_tunai;

                // set item pembayaran
                pembayaranPiutang.item_pembayaran_piutang.Add(itemPembayaranPiutang);

                result = pembayaranPiutangRepo.Update(pembayaranPiutang, true);
            }
            else // belum ada pelunasan hutang
            {
                pembayaranPiutang = new PembayaranPiutangProduk();

                // set header
                pembayaranPiutang.customer_id = obj.customer_id;
                pembayaranPiutang.pengguna_id = obj.pengguna_id;
                pembayaranPiutang.tanggal     = obj.tanggal;
                pembayaranPiutang.keterangan  = "Penjualan tunai produk";
                pembayaranPiutang.is_tunai    = obj.is_tunai;

                // set item
                itemPembayaranPiutang            = new ItemPembayaranPiutangProduk();
                itemPembayaranPiutang.jual_id    = obj.jual_id;
                itemPembayaranPiutang.JualProduk = obj;
                itemPembayaranPiutang.nominal    = obj.grand_total;
                itemPembayaranPiutang.keterangan = string.Empty;

                // set item pembayaran
                pembayaranPiutang.item_pembayaran_piutang.Add(itemPembayaranPiutang);

                // simpan item pembayaran
                result = pembayaranPiutangRepo.Save(pembayaranPiutang, true);
            }

            return(result);
        }
Beispiel #16
0
        private void CetakNotaMiniPOS(JualProduk jual)
        {
            var autocutCode        = _pengaturanUmum.is_autocut ? _pengaturanUmum.autocut_code : string.Empty;
            var openCashDrawerCode = _pengaturanUmum.is_open_cash_drawer ? _pengaturanUmum.open_cash_drawer_code : string.Empty;

            IRAWPrinting printerMiniPos = new PrinterMiniPOS(_pengaturanUmum.nama_printer);

            printerMiniPos.Cetak(jual, _pengaturanUmum.list_of_header_nota_mini_pos, _pengaturanUmum.list_of_footer_nota_mini_pos,
                                 _pengaturanUmum.jumlah_karakter, _pengaturanUmum.jumlah_gulung, _customer != null, ukuranFont: _pengaturanUmum.ukuran_font,
                                 autocutCode: autocutCode, openCashDrawerCode: openCashDrawerCode);
        }
Beispiel #17
0
        public FrmInfoNotaTerakhir(string header, JualProduk jual)
            : base()
        {
            InitializeComponent();
            ColorManagerHelper.SetTheme(this, this);

            base.SetHeader(header);
            this._jual = jual;

            ShowInfoNota();
            InitGridList();
        }
Beispiel #18
0
        public JualProduk GetListItemNotaTerakhir(string penggunaId, string mesinId)
        {
            JualProduk obj = null;

            using (IDapperContext context = new DapperContext())
            {
                IUnitOfWork uow = new UnitOfWork(context, _log);
                obj = uow.JualProdukRepository.GetListItemNotaTerakhir(penggunaId, mesinId);
            }

            return(obj);
        }
Beispiel #19
0
        public int Save(JualProduk obj)
        {
            var result = 0;

            using (IDapperContext context = new DapperContext())
            {
                IUnitOfWork uow = new UnitOfWork(context, _log);
                result = uow.JualProdukRepository.Save(obj);
            }

            return(result);
        }
Beispiel #20
0
        public JualProduk GetByID(string id)
        {
            JualProduk obj = null;

            using (IDapperContext context = new DapperContext())
            {
                IUnitOfWork uow = new UnitOfWork(context, _log);
                obj = uow.JualProdukRepository.GetByID(id);
            }

            return(obj);
        }
Beispiel #21
0
        public FrmEntryPenjualanProduk(string header, JualProduk jual, IJualProdukBll bll)
            : base()
        {
            InitializeComponent();
            ColorManagerHelper.SetTheme(this, this);

            base.SetHeader(header);
            base.SetButtonSelesaiToBatal();
            this._bll            = bll;
            this._jual           = jual;
            this._customer       = jual.Customer;
            this._log            = MainProgram.log;
            this._pengguna       = MainProgram.pengguna;
            this._profil         = MainProgram.profil;
            this._pengaturanUmum = MainProgram.pengaturanUmum;

            txtNota.Text             = this._jual.nota;
            dtpTanggal.Value         = (DateTime)this._jual.tanggal;
            dtpTanggalTempo.Value    = dtpTanggal.Value;
            chkCetakNotaJual.Checked = this._pengaturanUmum.is_auto_print;

            if (!this._jual.tanggal_tempo.IsNull())
            {
                rdoKredit.Checked     = true;
                dtpTanggalTempo.Value = (DateTime)this._jual.tanggal_tempo;
            }

            txtCustomer.Text   = this._customer.nama_customer;
            txtKeterangan.Text = this._jual.keterangan;

            txtOngkosKirim.Text = this._jual.ongkos_kirim.ToString();
            txtDiskon.Text      = this._jual.diskon.ToString();
            txtPPN.Text         = this._jual.ppn.ToString();

            // simpan data lama
            _listOfItemJualOld.Clear();
            foreach (var item in this._jual.item_jual)
            {
                _listOfItemJualOld.Add(new ItemJualProduk
                {
                    item_jual_id = item.item_jual_id,
                    jumlah       = item.jumlah,
                    harga_jual   = item.harga_jual
                });
            }

            _listOfItemJual = this._jual.item_jual;
            _listOfItemJual.Add(new ItemJualProduk()); // add dummy objek

            InitGridControl(gridControl);

            RefreshTotal();
        }
Beispiel #22
0
        public FrmLookupHistoriPembayaran(string header, JualProduk jual, IList <ItemPembayaranPiutangProduk> listOfHistoriPembayaran)
            : this(header)
        {
            this.groupBox1.Text = " [ Informasi Penjualan ] ";
            this.label3.Text    = "Customer";
            this._listOfHistoriPembayaranPiutang = listOfHistoriPembayaran;
            this._paymentType = PaymentHistoryType.PembayaranPiutang;

            txtTanggal.Text            = DateTimeHelper.DateToString(jual.tanggal);
            txtNota.Text               = jual.nota;
            txtCustomerOrSupplier.Text = jual.Customer.nama_customer;
            txtTotal.Text              = NumberHelper.NumberToString(SumGrid(listOfHistoriPembayaran));
            InitGridList();
        }
Beispiel #23
0
        public FrmEntryLabelNota(string header, Customer customer, JualProduk jual)
            : base()
        {
            InitializeComponent();
            ColorManagerHelper.SetTheme(this, this);
            base.SetHeader(header);

            this._pengaturanUmum   = MainProgram.pengaturanUmum;
            this._labelAlamatKirim = new LabelAlamatKirim();
            this._customer         = customer;
            this._jual             = jual;

            SetLabelNota();
        }
Beispiel #24
0
        public FrmEntryReturPenjualanProduk(string header, ReturJualProduk retur, IReturJualProdukBll bll)
            : base()
        {
            InitializeComponent();
            ColorManagerHelper.SetTheme(this, this);

            base.SetHeader(header);
            base.SetButtonSelesaiToBatal();
            this._bll      = bll;
            this._retur    = retur;
            this._customer = retur.Customer;
            this._jual     = retur.JualProduk;
            this._log      = MainProgram.log;
            this._pengguna = MainProgram.pengguna;

            txtNota.Text    = this._retur.nota;
            txtNota.Enabled = false;

            dtpTanggal.Value   = (DateTime)this._retur.tanggal;
            txtCustomer.Text   = this._customer.nama_customer;
            txtKeterangan.Text = this._retur.keterangan;

            if (this._jual != null)
            {
                txtNotaJual.Text    = this._jual.nota;
                txtNotaJual.Enabled = false;

                LoadItemJual(this._jual);
            }

            // simpan data lama
            _listOfItemReturOld.Clear();
            foreach (var item in this._retur.item_retur)
            {
                _listOfItemReturOld.Add(new ItemReturJualProduk
                {
                    item_retur_jual_id = item.item_retur_jual_id,
                    jumlah_retur       = item.jumlah_retur,
                    harga_jual         = item.harga_jual
                });
            }

            _listOfItemRetur = this._retur.item_retur;
            _listOfItemRetur.Add(new ItemReturJualProduk()); // add dummy objek

            InitGridControl(gridControl);

            RefreshTotal();
        }
Beispiel #25
0
        public FrmPreviewLabelNotaPenjualan(string header, JualProduk jual)
            : this()
        {
            this.Text            = header;
            this.lblHeader.Text  = header;
            this._log            = MainProgram.log;
            this._pengguna       = MainProgram.pengguna;
            this._profil         = MainProgram.profil;
            this._pengaturanUmum = MainProgram.pengaturanUmum;
            this._jual           = jual;
            this._customer       = this._jual.Customer;

            SetLabelNota();
            btnPreviewNota_Click(btnPreviewNota, new EventArgs());
        }
        public int Delete(JualProduk obj)
        {
            var result = 0;

            try
            {
                result = _context.db.Delete <JualProduk>(obj) ? 1 : 0;
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(result);
        }
Beispiel #27
0
        public void DeleteTest()
        {
            var obj = new JualProduk
            {
                jual_id = "94208d8c-b4c6-4e32-af37-3eec93f9ebf3"
            };

            var result = _bll.Delete(obj);

            Assert.IsTrue(result != 0);

            var deletedObj = _bll.GetByID(obj.jual_id);

            Assert.IsNull(deletedObj);
        }
Beispiel #28
0
        public int Save(JualProduk obj, ref ValidationError validationError)
        {
            var validatorResults = _validator.Validate(obj);

            if (!validatorResults.IsValid)
            {
                foreach (var failure in validatorResults.Errors)
                {
                    validationError.Message      = failure.ErrorMessage;
                    validationError.PropertyName = failure.PropertyName;
                    return(0);
                }
            }

            return(Save(obj));
        }
        public FrmPreviewNotaPenjualan(string header, JualProduk jual)
            : this()
        {
            this.Text            = header;
            this.lblHeader.Text  = header;
            this._log            = MainProgram.log;
            this._pengguna       = MainProgram.pengguna;
            this._profil         = MainProgram.profil;
            this._pengaturanUmum = MainProgram.pengaturanUmum;
            this._jual           = jual;
            this._customer       = this._jual.Customer;

            chkIsSdac.Checked = this._jual.is_sdac;
            chkIsSdac_CheckedChanged(chkIsSdac, new EventArgs());
            btnPreviewNota_Click(btnPreviewNota, new EventArgs());
        }
Beispiel #30
0
        /// <summary>
        /// Method untuk menghapus pembayaran piutang jika terjadi perubahan status nota dari tunai ke kredit
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        private int HapusPembayaranPiutang(JualProduk obj)
        {
            PembayaranPiutangProduk            pembayaranHutang;
            ItemPembayaranPiutangProduk        itemPembayaranHutang;
            IPembayaranPiutangProdukRepository pembayaranHutangRepo = new PembayaranPiutangProdukRepository(_context, _log);

            var result = 0;

            // set detail
            itemPembayaranHutang = pembayaranHutangRepo.GetByJualID(obj.jual_id);
            if (itemPembayaranHutang != null)
            {
                pembayaranHutang = itemPembayaranHutang.PembayaranPiutangProduk;
                result           = pembayaranHutangRepo.Delete(pembayaranHutang);
            }

            return(result);
        }