コード例 #1
0
        protected override void OpenFileMaster()
        {
            var msg = "Untuk membuka file master Customer membutuhkan Ms Excel versi 2007 atau yang terbaru.\n\n" +
                      "Apakah proses ingin dilanjutkan ?";

            if (MsgHelper.MsgKonfirmasi(msg))
            {
                var fileMaster = Utils.GetAppPath() + @"\File Import Excel\Master Data\data_customer.xlsx";

                if (!File.Exists(fileMaster))
                {
                    MsgHelper.MsgWarning("Maaf file master Customer tidak ditemukan.");
                    return;
                }

                try
                {
                    Process.Start(fileMaster);
                }
                catch
                {
                    msg = "Gagal membuka file master Customer !!!.\n\n" +
                          "Cek apakah Ms Excel versi 2007 atau yang terbaru sudah terinstall ?";

                    MsgHelper.MsgError(msg);
                }
            }
        }
コード例 #2
0
        protected override void OpenFileExcel()
        {
            var msg = "Untuk membuka file master {0} membutuhkan Ms Excel versi 2007 atau yang terbaru.\n\n" +
                      "Apakah proses ingin dilanjutkan ?";

            if (MsgHelper.MsgKonfirmasi(string.Format(msg, ImportTitle)))
            {
                var fileMaster = Utils.GetAppPath() + @"\File Import Excel\Master Data\data_supplier.xlsx";

                if (!File.Exists(fileMaster))
                {
                    msg = "Maaf file master {0} tidak ditemukan.";
                    MsgHelper.MsgWarning(string.Format(msg, ImportTitle));
                    return;
                }

                try
                {
                    using (new StCursor(Cursors.WaitCursor, new TimeSpan(0, 0, 0, 0)))
                    {
                        Process.Start(fileMaster);
                    }
                }
                catch
                {
                    msg = "Gagal membuka file master {0} !!!.\n\n" +
                          "Cek apakah Ms Excel versi 2007 atau yang terbaru sudah terinstall ?";

                    MsgHelper.MsgWarning(string.Format(msg, ImportTitle));
                }
            }
        }
コード例 #3
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
        }
コード例 #4
0
        protected override void Simpan()
        {
            var noTransaksi = NumberHelper.StringToNumber(txtNomorTransaksi.Text);

            if (!(noTransaksi > 0))
            {
                MsgHelper.MsgWarning("'Nomor Transaksi' tidak boleh kosong !");
                txtNomorTransaksi.Focus();
                txtNomorTransaksi.SelectAll();
                return;
            }

            if (noTransaksi > _jual.item_jual.Count)
            {
                MsgHelper.MsgWarning(string.Format("'Nomor Transaksi' tidak valid !\nNomor Transaksi terakhir adalah {0}", _jual.item_jual.Count));
                txtNomorTransaksi.Focus();
                txtNomorTransaksi.SelectAll();
                return;
            }

            if (!MsgHelper.MsgKonfirmasi("Apakah proses penyimpanan ingin di lanjutkan ?"))
            {
                return;
            }

            Listener.Ok(this, new { noTransaksi });
            this.Close();
        }
コード例 #5
0
        protected override void ImportData()
        {
            var msg        = string.Empty;
            var fileMaster = Utils.GetAppPath() + @"\File Import Excel\Master Data\data_produk.xlsx";

            IImportExportDataBll <Produk> _importDataBll = new ImportExportDataProdukBll(fileMaster, _log);

            if (_importDataBll.IsOpened())
            {
                msg = "Maaf file master Produk sedang dibuka, silahkan ditutup terlebih dulu.";
                MsgHelper.MsgWarning(msg);

                return;
            }

            if (!_importDataBll.IsValidFormat())
            {
                msg = "Maaf format file master Produk tidak valid, proses import tidak bisa dilanjutkan.";
                MsgHelper.MsgWarning(msg);

                return;
            }

            if (MsgHelper.MsgKonfirmasi("Apakah proses ingin dilanjutkan ?"))
            {
                using (new StCursor(Cursors.WaitCursor, new TimeSpan(0, 0, 0, 0)))
                {
                    var rowCount = 0;
                    var result   = _importDataBll.Import(ref rowCount);

                    if (result)
                    {
                        msg = "Import data master Produk berhasil.";
                        MsgHelper.MsgInfo(msg);

                        if (cmbGolongan.SelectedIndex == 0)
                        {
                            LoadDataProduk();
                        }
                        else
                        {
                            cmbGolongan.SelectedIndex = 0;
                        }
                    }
                    else
                    {
                        if (rowCount == 0)
                        {
                            msg = "Data file master Produk masih kosong.\n" +
                                  "Silahkan diisi terlebih dulu.";
                            MsgHelper.MsgInfo(msg);
                        }
                    }
                }
            }
        }
コード例 #6
0
        private void CetakLaporan()
        {
            if (MsgHelper.MsgKonfirmasi("Apakah proses pencetakan ingin dilanjutkan ?"))
            {
                IRAWPrinting printerMiniPos = new PrinterMiniPOS(_pengaturanUmum.nama_printer);
                printerMiniPos.Cetak(_listOfMesinKasir, _pengaturanUmum.list_of_header_nota_mini_pos, _pengaturanUmum.jumlah_karakter, _pengaturanUmum.jumlah_gulung);

                this.Close();
            }
        }
コード例 #7
0
        protected override void ImportData()
        {
            var msg = string.Empty;

            if (txtPath.Text.Length == 0)
            {
                MsgHelper.MsgWarning("Lokasi dan nama file Excel belum dipilih.");
                return;
            }

            IImportExportDataBll <Supplier> importDataBll = new ImportExportDataSupplierBll(txtPath.Text, _log);

            if (importDataBll.IsOpened())
            {
                msg = "Maaf file master {0} sedang dibuka, silahkan ditutup terlebih dulu.";
                MsgHelper.MsgWarning(string.Format(msg, ImportTitle));

                return;
            }

            if (!importDataBll.IsValidFormat(cmbWorksheet.Text))
            {
                msg = "Maaf format file master {0} tidak valid, proses import tidak bisa dilanjutkan.";
                MsgHelper.MsgWarning(string.Format(msg, ImportTitle));

                return;
            }

            if (MsgHelper.MsgKonfirmasi("Apakah proses ingin dilanjutkan ?"))
            {
                using (new StCursor(Cursors.WaitCursor, new TimeSpan(0, 0, 0, 0)))
                {
                    var rowCount = 0;
                    var result   = importDataBll.Import(cmbWorksheet.Text, ref rowCount);

                    if (result)
                    {
                        msg = "Import data master {0} berhasil.";
                        MsgHelper.MsgInfo(string.Format(msg, ImportTitle));

                        Listener.Ok(this, null);
                        this.Close();
                    }
                    else
                    {
                        if (rowCount == 0)
                        {
                            msg = "Data file master {0} masih kosong.\n" +
                                  "Silahkan diisi terlebih dulu.";
                            MsgHelper.MsgInfo(string.Format(msg, ImportTitle));
                        }
                    }
                }
            }
        }
コード例 #8
0
ファイル: FrmMain.cs プロジェクト: wqshabib/open-retail
 private void mnuKeluarDariProgram_Click(object sender, EventArgs e)
 {
     if (MsgHelper.MsgKonfirmasi("Apakah proses ingin dilanjutkan ?"))
     {
         using (new StCursor(Cursors.WaitCursor, new TimeSpan(0, 0, 0, 0)))
         {
             CloseAllDocuments();
             this.Close();
         }
     }
 }
コード例 #9
0
        private void btnCetakLabelNota_Click(object sender, EventArgs e)
        {
            if (MsgHelper.MsgKonfirmasi("Apakah proses pencetakan ingin dilanjutkan ?"))
            {
                using (new StCursor(Cursors.WaitCursor, new TimeSpan(0, 0, 0, 0)))
                {
                    IJualProdukBll bll    = new JualProdukBll(_log);
                    var            result = bll.Update(_jual);

                    PreviewLabelNota(_jual, false);
                }
            }
        }
コード例 #10
0
ファイル: FrmMain.cs プロジェクト: Sundy25/open-retail
        private void mnuGantiUser_Click(object sender, EventArgs e)
        {
            if (MsgHelper.MsgKonfirmasi("Apakah proses ingin dilanjutkan ?"))
            {
                using (new StCursor(Cursors.WaitCursor, new TimeSpan(0, 0, 0, 0)))
                {
                    CloseAllDocuments();

                    this.IsLogout = true;
                    this.Close();
                }
            }
        }
コード例 #11
0
        private void CetakLaporan()
        {
            if (MsgHelper.MsgKonfirmasi("Apakah proses pencetakan ingin dilanjutkan ?"))
            {
                var autocutCode = _pengaturanUmum.is_autocut ? _pengaturanUmum.autocut_code : string.Empty;

                IRAWPrinting printerMiniPos = new PrinterMiniPOS(_pengaturanUmum.nama_printer);

                printerMiniPos.Cetak(_listOfMesinKasir, _pengaturanUmum.list_of_header_nota_mini_pos, _pengaturanUmum.jumlah_karakter,
                                     _pengaturanUmum.jumlah_gulung, ukuranFont: _pengaturanUmum.ukuran_font, autocutCode: autocutCode);

                this.Close();
            }
        }
コード例 #12
0
        private void btnProsesRestore_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtLokasiFileBackup.Text))
            {
                MsgHelper.MsgWarning("File backup belum dipilih !");
                txtLokasiFileBackup.Focus();
                return;
            }

            if (!MsgHelper.MsgKonfirmasi("Apakah proses restore database ingin dilanjutkan ?"))
            {
                return;
            }

            txtLog.Clear();
            SaveAppConfig();

            using (new StCursor(Cursors.WaitCursor, new TimeSpan(0, 0, 0, 0)))
            {
                Result = "Sedang melakukan koneksi ke database ..." + Environment.NewLine;

                if (!IsOpenConnection())
                {
                    var msg = "Maaf koneksi ke database gagal !!!\n" +
                              "Proses restore database tidak bisa dilanjutkan.";

                    MsgHelper.MsgWarning(msg);
                    return;
                }

                Result = "Koneksi ke database berhasil" + Environment.NewLine + Environment.NewLine;

                if (!ReplaceDatabase(_dbName))
                {
                    var msg = "Gagal menghapus database lama !!!\n" +
                              "Proses restore database gagal.";

                    MsgHelper.MsgError(msg);
                    return;
                }

                Result = "Sedang merestore database ..." + Environment.NewLine + Environment.NewLine;

                var cmd = "-U postgres -h " + txtServer.Text + " -p " + _port + " -i -v -d " + _dbName + " \"" + txtLokasiFileBackup.Text + "\"";
                ExecuteCommand("pg_restore", cmd);
            }
        }
コード例 #13
0
        private void btnProsesBackup_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtLokasiPenyimpananFileBackup.Text))
            {
                MsgHelper.MsgWarning("Lokasi penyimpanan file backup belum dipilih !");
                txtLokasiPenyimpananFileBackup.Focus();
                return;
            }

            if (!Directory.Exists(txtLokasiPenyimpananFileBackup.Text))
            {
                Directory.CreateDirectory(txtLokasiPenyimpananFileBackup.Text);
            }

            if (!MsgHelper.MsgKonfirmasi("Apakah proses backup database ingin dilanjutkan ?"))
            {
                return;
            }

            txtLog.Clear();
            SaveAppConfig();

            using (new StCursor(Cursors.WaitCursor, new TimeSpan(0, 0, 0, 0)))
            {
                Result = "Sedang melakukan koneksi ke database ..." + Environment.NewLine;

                if (!IsOpenConnection())
                {
                    var msg = "Maaf koneksi ke database gagal !!!\n" +
                              "Proses backup database tidak bisa dilanjutkan.";

                    MsgHelper.MsgWarning(msg);
                    return;
                }
                Result = "Koneksi ke database berhasil" + Environment.NewLine + Environment.NewLine;

                Result = "Sedang membuat file backup ..." + Environment.NewLine + Environment.NewLine;
                var fileBackup = string.Format("{0}\\{1}", txtLokasiPenyimpananFileBackup.Text, txtNamaFileBackup.Text);

                var cmd = "-U postgres -h " + txtServer.Text + " -p " + _port + " -i -F c -b -v -f \"" + fileBackup + "\" " + _dbName;
                ExecuteCommand("pg_dump", cmd);

                OpenFolder(fileBackup, txtLokasiPenyimpananFileBackup.Text);
            }
        }
コード例 #14
0
        private void btnCetak_Click(object sender, EventArgs e)
        {
            if (!IsPilih())
            {
                MsgHelper.MsgWarning("Minimal satu posisi label barcode harus dipilih !");
                return;
            }

            if (MsgHelper.MsgKonfirmasi("Apakah proses pencetakan ingin dilanjutkan ?"))
            {
                SaveAppConfig();

                PrintDocument printBarcode = new PrintDocument();
                printBarcode.PrinterSettings.PrinterName = cmbPrinter.Text;
                printBarcode.PrinterSettings.Copies      = (short)updJumlahCetak.Value;
                printBarcode.PrintPage += printBarcode_PrintPage;
                printBarcode.Print();
            }
        }
コード例 #15
0
        protected override void Pilih()
        {
            var rowIndex = this.gridList.SelectedIndex;

            if (!base.IsSelectedItem(rowIndex, this.Text))
            {
                return;
            }

            if (_pengaturanUmum.is_auto_print)
            {
                if (MsgHelper.MsgKonfirmasi("Apakah proses pencetakan ingin dilanjutkan ?"))
                {
                    var jual = _listOfJual[rowIndex];
                    if (jual != null)
                    {
                        IJualProdukBll bll = new JualProdukBll(_log);
                        jual.item_jual = bll.GetItemJual(jual.jual_id).ToList();
                    }

                    switch (_pengaturanUmum.jenis_printer)
                    {
                    case JenisPrinter.DotMatrix:
                        CetakNotaDotMatrix(jual);
                        break;

                    case JenisPrinter.MiniPOS:
                        CetakNotaMiniPOS(jual);
                        break;

                    default:
                        // do nothing
                        break;
                    }
                }
            }
        }
コード例 #16
0
        protected override void Simpan()
        {
            var total = SumGrid(this._listOfItemPengeluaran);

            if (!(total > 0))
            {
                MsgHelper.MsgWarning("Anda belum melengkapi inputan data produk !");
                return;
            }

            if (!MsgHelper.MsgKonfirmasi("Apakah proses ingin dilanjutkan ?"))
            {
                return;
            }

            if (_isNewData)
            {
                _pengeluaran = new PengeluaranBiaya();
            }

            _pengeluaran.pengguna_id = this._pengguna.pengguna_id;
            _pengeluaran.Pengguna    = this._pengguna;
            _pengeluaran.nota        = txtNota.Text;
            _pengeluaran.tanggal     = dtpTanggal.Value;
            _pengeluaran.keterangan  = txtKeterangan.Text;

            _pengeluaran.item_pengeluaran_biaya = this._listOfItemPengeluaran.Where(f => f.JenisPengeluaran != null).ToList();

            if (!_isNewData) // update
            {
                _pengeluaran.item_pengeluaran_biaya_deleted = _listOfItemPengeluaranDeleted.ToList();
            }

            var result          = 0;
            var validationError = new ValidationError();

            using (new StCursor(Cursors.WaitCursor, new TimeSpan(0, 0, 0, 0)))
            {
                if (_isNewData)
                {
                    result = _bll.Save(_pengeluaran, ref validationError);
                }
                else
                {
                    result = _bll.Update(_pengeluaran, ref validationError);
                }

                if (result > 0)
                {
                    Listener.Ok(this, _isNewData, _pengeluaran);

                    _listOfItemPengeluaran.Clear();
                    _listOfItemPengeluaranDeleted.Clear();

                    this.Close();
                }
                else
                {
                    if (validationError.Message.NullToString().Length > 0)
                    {
                        MsgHelper.MsgWarning(validationError.Message);
                        base.SetFocusObject(validationError.PropertyName, this);
                    }
                    else
                    {
                        MsgHelper.MsgUpdateError();
                    }
                }
            }
        }
コード例 #17
0
        protected override void Simpan()
        {
            if (this._supplier == null || txtSupplier.Text.Length == 0)
            {
                MsgHelper.MsgWarning("'Supplier' tidak boleh kosong !");
                txtSupplier.Focus();

                return;
            }

            var total = SumGrid(this._listOfItemBeli);

            if (!(total > 0))
            {
                MsgHelper.MsgWarning("Anda belum melengkapi inputan data produk !");
                return;
            }

            if (rdoKredit.Checked)
            {
                if (!DateTimeHelper.IsValidRangeTanggal(dtpTanggal.Value, dtpTanggalTempo.Value))
                {
                    MsgHelper.MsgNotValidRangeTanggal();
                    return;
                }
            }

            if (!MsgHelper.MsgKonfirmasi("Apakah proses ingin dilanjutkan ?"))
            {
                return;
            }

            if (_isNewData)
            {
                _beli = new BeliProduk();
            }

            _beli.pengguna_id   = this._pengguna.pengguna_id;
            _beli.Pengguna      = this._pengguna;
            _beli.supplier_id   = this._supplier.supplier_id;
            _beli.Supplier      = this._supplier;
            _beli.nota          = txtNota.Text;
            _beli.tanggal       = dtpTanggal.Value;
            _beli.tanggal_tempo = DateTimeHelper.GetNullDateTime();
            _beli.is_tunai      = rdoTunai.Checked;

            if (rdoKredit.Checked) // pembelian kredit
            {
                _beli.tanggal_tempo = dtpTanggalTempo.Value;
            }

            _beli.ppn        = NumberHelper.StringToDouble(txtPPN.Text);
            _beli.diskon     = NumberHelper.StringToDouble(txtDiskon.Text);
            _beli.keterangan = txtKeterangan.Text;

            _beli.item_beli = this._listOfItemBeli.Where(f => f.Produk != null).ToList();
            foreach (var item in _beli.item_beli)
            {
                if (!(item.harga > 0))
                {
                    item.harga = item.Produk.harga_beli;
                }
            }

            if (!_isNewData) // update
            {
                _beli.item_beli_deleted = _listOfItemBeliDeleted;
            }

            var result          = 0;
            var validationError = new ValidationError();

            using (new StCursor(Cursors.WaitCursor, new TimeSpan(0, 0, 0, 0)))
            {
                if (_isNewData)
                {
                    result = _bll.Save(_beli, ref validationError);
                }
                else
                {
                    result = _bll.Update(_beli, ref validationError);
                }

                if (result > 0)
                {
                    try
                    {
                        if (chkCetakNotaBeli.Checked)
                        {
                            CetakNota(_beli.beli_produk_id);
                        }
                    }
                    catch
                    {
                    }

                    Listener.Ok(this, _isNewData, _beli);

                    _supplier = null;
                    _listOfItemBeli.Clear();
                    _listOfItemBeliDeleted.Clear();

                    this.Close();
                }
                else
                {
                    if (validationError.Message.NullToString().Length > 0)
                    {
                        MsgHelper.MsgWarning(validationError.Message);
                        base.SetFocusObject(validationError.PropertyName, this);
                    }
                    else
                    {
                        MsgHelper.MsgUpdateError();
                    }
                }
            }
        }
コード例 #18
0
        protected override void Simpan()
        {
            if (this._customer == null || txtCustomer.Text.Length == 0)
            {
                MsgHelper.MsgWarning("'Customer' tidak boleh kosong !");
                txtCustomer.Focus();

                return;
            }

            var total = SumGrid(this._listOfItemRetur);

            if (!(total > 0))
            {
                MsgHelper.MsgWarning("Anda belum melengkapi inputan data produk !");
                return;
            }

            if (!MsgHelper.MsgKonfirmasi("Apakah proses ingin dilanjutkan ?"))
            {
                return;
            }

            if (_isNewData)
            {
                _retur = new ReturJualProduk();
            }

            _retur.jual_id     = this._jual.jual_id;
            _retur.JualProduk  = this._jual;
            _retur.pengguna_id = this._pengguna.pengguna_id;
            _retur.Pengguna    = this._pengguna;
            _retur.customer_id = this._customer.customer_id;
            _retur.Customer    = this._customer;
            _retur.nota        = txtNota.Text;
            _retur.tanggal     = dtpTanggal.Value;
            _retur.keterangan  = txtKeterangan.Text;

            _retur.item_retur = this._listOfItemRetur.Where(f => f.Produk != null).ToList();

            if (!_isNewData) // update
            {
                _retur.item_retur_deleted = _listOfItemReturDeleted;
            }

            var result          = 0;
            var validationError = new ValidationError();

            using (new StCursor(Cursors.WaitCursor, new TimeSpan(0, 0, 0, 0)))
            {
                if (_isNewData)
                {
                    result = _bll.Save(_retur, ref validationError);
                }
                else
                {
                    result = _bll.Update(_retur, ref validationError);
                }

                if (result > 0)
                {
                    Listener.Ok(this, _isNewData, _retur);

                    _customer = null;
                    _listOfItemRetur.Clear();
                    _listOfItemReturDeleted.Clear();

                    this.Close();
                }
                else
                {
                    if (validationError.Message.NullToString().Length > 0)
                    {
                        MsgHelper.MsgWarning(validationError.Message);
                        base.SetFocusObject(validationError.PropertyName, this);
                    }
                    else
                    {
                        MsgHelper.MsgUpdateError();
                    }
                }
            }
        }
コード例 #19
0
        private void InitGridList()
        {
            var gridListProperties = new List <GridListControlProperties>();

            gridListProperties.Add(new GridListControlProperties {
                Header = "No", Width = 30
            });
            gridListProperties.Add(new GridListControlProperties {
                Header = "Tanggal", Width = 100
            });
            gridListProperties.Add(new GridListControlProperties {
                Header = "Tempo", Width = 100
            });
            gridListProperties.Add(new GridListControlProperties {
                Header = "Nota", Width = 100
            });
            gridListProperties.Add(new GridListControlProperties {
                Header = "Customer", Width = _pengaturanUmum.jenis_printer == JenisPrinter.InkJet ? 180 : 260
            });
            gridListProperties.Add(new GridListControlProperties {
                Header = "Keterangan", Width = 350
            });
            gridListProperties.Add(new GridListControlProperties {
                Header = "Piutang", Width = 100
            });
            gridListProperties.Add(new GridListControlProperties {
                Header = "Sisa Piutang", Width = 100
            });
            gridListProperties.Add(new GridListControlProperties {
                Header = "Histori Pembayaran", Width = 80
            });

            if (_pengaturanUmum.jenis_printer == JenisPrinter.InkJet)
            {
                gridListProperties.Add(new GridListControlProperties {
                    Header = "Cetak Nota/Label", Width = 80
                });
                gridListProperties.Add(new GridListControlProperties {
                    Header = ""
                });
            }
            else
            {
                gridListProperties.Add(new GridListControlProperties {
                    Header = "Cetak Nota", Width = 80
                });
            }

            GridListControlHelper.InitializeGridListControl <JualProduk>(this.gridList, _listOfJual, gridListProperties, false, rowHeight: 40);

            if (_pengaturanUmum.jenis_printer == JenisPrinter.InkJet)
            {
                // merge header kolom cetak nota/label
                this.gridList.Grid.CoveredRanges.Add(GridRangeInfo.Cells(0, 10, 0, 11));
            }

            if (_listOfJual.Count > 0)
            {
                this.gridList.SetSelected(0, true);
            }

            this.gridList.Grid.PushButtonClick += delegate(object sender, GridCellPushButtonClickEventArgs e)
            {
                if (e.RowIndex > 0)
                {
                    var index = e.RowIndex - 1;

                    switch (e.ColIndex)
                    {
                    case 9:     // histori pembayaran
                        using (new StCursor(Cursors.WaitCursor, new TimeSpan(0, 0, 0, 0)))
                        {
                            var jual = _listOfJual[index];

                            IPembayaranPiutangProdukBll bll = new PembayaranPiutangProdukBll(_log);
                            var listOfHistoriPembayaran     = bll.GetHistoriPembayaran(jual.jual_id);

                            if (listOfHistoriPembayaran.Count > 0)
                            {
                                var frmHistoriPembayaran = new FrmLookupHistoriPembayaran("Histori Pembayaran Piutang", jual, listOfHistoriPembayaran);
                                frmHistoriPembayaran.ShowDialog();
                            }
                            else
                            {
                                MsgHelper.MsgInfo("Belum ada informasi histori pembayaran");
                            }
                        }

                        break;

                    case 10:     // cetak nota jual
                        using (new StCursor(Cursors.WaitCursor, new TimeSpan(0, 0, 0, 0)))
                        {
                            var jual = _listOfJual[index];

                            switch (this._pengaturanUmum.jenis_printer)
                            {
                            case JenisPrinter.DotMatrix:
                                if (MsgHelper.MsgKonfirmasi("Apakah proses pencetakan ingin dilanjutkan ?"))
                                {
                                    CetakNotaDotMatrix(jual);
                                }
                                break;

                            case JenisPrinter.MiniPOS:
                                if (MsgHelper.MsgKonfirmasi("Apakah proses pencetakan ingin dilanjutkan ?"))
                                {
                                    CetakNotaMiniPOS(jual);
                                }
                                break;

                            default:
                                var frmCetakNota = new FrmPreviewNotaPenjualan("Preview Nota Penjualan", jual);
                                frmCetakNota.ShowDialog();
                                break;
                            }
                        }

                        break;

                    case 11:     // cetak label nota jual
                        using (new StCursor(Cursors.WaitCursor, new TimeSpan(0, 0, 0, 0)))
                        {
                            var jual = _listOfJual[index];

                            var frmCetakLabelNota = new FrmPreviewLabelNotaPenjualan("Preview Label Nota Penjualan", jual);
                            frmCetakLabelNota.ShowDialog();
                        }

                        break;

                    default:
                        break;
                    }
                }
            };

            this.gridList.Grid.QueryCellInfo += delegate(object sender, GridQueryCellInfoEventArgs e)
            {
                if (_listOfJual.Count > 0)
                {
                    if (e.RowIndex > 0)
                    {
                        var rowIndex = e.RowIndex - 1;

                        if (rowIndex < _listOfJual.Count)
                        {
                            double totalNota = 0;

                            var jual = _listOfJual[rowIndex];
                            if (jual != null)
                            {
                                totalNota = jual.grand_total;
                            }


                            var isRetur           = jual.retur_jual_id != null;
                            var oldStyleBackColor = e.Style.BackColor;

                            if (isRetur)
                            {
                                e.Style.BackColor = Color.Red;
                            }

                            switch (e.ColIndex)
                            {
                            case 1:
                                var noUrut = (_pageNumber - 1) * _pageSize + e.RowIndex;
                                e.Style.CellValue           = noUrut;
                                e.Style.HorizontalAlignment = GridHorizontalAlignment.Center;
                                break;

                            case 2:
                                e.Style.HorizontalAlignment = GridHorizontalAlignment.Center;
                                e.Style.CellValue           = DateTimeHelper.DateToString(jual.tanggal);
                                break;

                            case 3:
                                e.Style.HorizontalAlignment = GridHorizontalAlignment.Center;
                                e.Style.CellValue           = DateTimeHelper.DateToString(jual.tanggal_tempo);
                                break;

                            case 4:
                                e.Style.CellValue = jual.nota;
                                break;

                            case 5:
                                if (jual.Customer != null)
                                {
                                    SetWilayahCustomer(jual.Customer);
                                    e.Style.CellValue = jual.Customer.nama_customer;
                                }

                                break;

                            case 6:
                                e.Style.CellValue = jual.keterangan;
                                break;

                            case 7:
                                e.Style.HorizontalAlignment = GridHorizontalAlignment.Right;
                                e.Style.CellValue           = NumberHelper.NumberToString(totalNota);
                                break;

                            case 8:
                                e.Style.HorizontalAlignment = GridHorizontalAlignment.Right;
                                e.Style.CellValue           = NumberHelper.NumberToString(totalNota - jual.total_pelunasan);
                                break;

                            case 9:     // button history pembayaran
                                e.Style.Enabled             = jual.tanggal_tempo != null;
                                e.Style.HorizontalAlignment = GridHorizontalAlignment.Center;
                                e.Style.CellType            = GridCellTypeName.PushButton;
                                e.Style.BackColor           = oldStyleBackColor;
                                e.Style.Description         = "Cek Histori";

                                break;

                            case 10:     // button cetak nota
                                e.Style.Enabled             = jual.Customer != null;
                                e.Style.HorizontalAlignment = GridHorizontalAlignment.Center;
                                e.Style.CellType            = GridCellTypeName.PushButton;
                                e.Style.BackColor           = oldStyleBackColor;
                                e.Style.Description         = "Cetak Nota";
                                break;

                            case 11:     // button cetak label nota
                                if (_pengaturanUmum.jenis_printer == JenisPrinter.InkJet)
                                {
                                    e.Style.Enabled             = jual.Customer != null;
                                    e.Style.HorizontalAlignment = GridHorizontalAlignment.Center;
                                    e.Style.CellType            = GridCellTypeName.PushButton;
                                    e.Style.BackColor           = oldStyleBackColor;
                                    e.Style.Description         = "Cetak Label Nota";
                                }

                                break;

                            default:
                                break;
                            }

                            // we handled it, let the grid know
                            e.Handled = true;
                        }
                    }
                }
            };
        }
コード例 #20
0
        protected override void Simpan()
        {
            if (this._customer == null || txtCustomer.Text.Length == 0)
            {
                MsgHelper.MsgWarning("'Customer' tidak boleh kosong !");
                txtCustomer.Focus();

                return;
            }

            var total = SumGrid(this._listOfItemJual);

            if (!(total > 0))
            {
                MsgHelper.MsgWarning("Anda belum melengkapi inputan data produk !");
                return;
            }

            if (rdoKredit.Checked)
            {
                if (!DateTimeHelper.IsValidRangeTanggal(dtpTanggal.Value, dtpTanggalTempo.Value))
                {
                    MsgHelper.MsgNotValidRangeTanggal();
                    return;
                }

                total = NumberHelper.StringToDouble(lblTotal.Text);

                if (this._customer != null)
                {
                    if (this._customer.plafon_piutang > 0)
                    {
                        if (!(this._customer.plafon_piutang >= (total + this._customer.sisa_piutang)))
                        {
                            var msg = string.Empty;

                            if (this._customer.sisa_piutang > 0)
                            {
                                msg = "Maaf, maksimal plafon piutang customer '{0}' adalah : {1}" +
                                      "\nSaat ini customer '{0}' masih mempunyai piutang sebesar : {2}";

                                msg = string.Format(msg, this._customer.nama_customer, NumberHelper.NumberToString(this._customer.plafon_piutang), NumberHelper.NumberToString(this._customer.sisa_piutang));
                            }
                            else
                            {
                                msg = "Maaf, maksimal plafon piutang customer '{0}' adalah : {1}";

                                msg = string.Format(msg, this._customer.nama_customer, NumberHelper.NumberToString(this._customer.plafon_piutang));
                            }

                            MsgHelper.MsgWarning(msg);
                            return;
                        }
                    }
                }
            }

            if (!MsgHelper.MsgKonfirmasi("Apakah proses ingin dilanjutkan ?"))
            {
                return;
            }

            if (_isNewData)
            {
                _jual = new JualProduk();
            }

            _jual.pengguna_id   = this._pengguna.pengguna_id;
            _jual.Pengguna      = this._pengguna;
            _jual.customer_id   = this._customer.customer_id;
            _jual.Customer      = this._customer;
            _jual.nota          = txtNota.Text;
            _jual.tanggal       = dtpTanggal.Value;
            _jual.tanggal_tempo = DateTimeHelper.GetNullDateTime();
            _jual.is_tunai      = rdoTunai.Checked;

            if (rdoKredit.Checked) // penjualan kredit
            {
                _jual.tanggal_tempo = dtpTanggalTempo.Value;
            }

            _jual.ppn        = NumberHelper.StringToDouble(txtPPN.Text);
            _jual.diskon     = NumberHelper.StringToDouble(txtDiskon.Text);
            _jual.keterangan = txtKeterangan.Text;

            _jual.item_jual = this._listOfItemJual.Where(f => f.Produk != null).ToList();
            foreach (var item in _jual.item_jual)
            {
                if (!(item.harga_beli > 0))
                {
                    item.harga_beli = item.Produk.harga_beli;
                }

                if (!(item.harga_jual > 0))
                {
                    item.harga_jual = item.Produk.harga_jual;
                }
            }

            if (!_isNewData) // update
            {
                _jual.item_jual_deleted = _listOfItemJualDeleted;
            }

            var result          = 0;
            var validationError = new ValidationError();

            using (new StCursor(Cursors.WaitCursor, new TimeSpan(0, 0, 0, 0)))
            {
                if (_isNewData)
                {
                    result = _bll.Save(_jual, ref validationError);
                }
                else
                {
                    result = _bll.Update(_jual, ref validationError);
                }

                if (result > 0)
                {
                    if (chkCetakNotaJual.Checked)
                    {
                        CetakNota(_jual.jual_id);
                    }

                    Listener.Ok(this, _isNewData, _jual);

                    _customer = null;
                    _listOfItemJual.Clear();
                    _listOfItemJualDeleted.Clear();

                    this.Close();
                }
                else
                {
                    if (validationError.Message.Length > 0)
                    {
                        MsgHelper.MsgWarning(validationError.Message);
                        base.SetFocusObject(validationError.PropertyName, this);
                    }
                    else
                    {
                        MsgHelper.MsgUpdateError();
                    }
                }
            }
        }
コード例 #21
0
ファイル: FrmBayar.cs プロジェクト: zeinal85/open-retail
        protected override void Simpan()
        {
            var msg        = "'{0}' tidak boleh kosong !";
            var bayarTunai = 0;
            var bayarKartu = 0;

            if (chkBayarViaKartu.Checked) // pembayaran via kartu
            {
                bayarKartu = (int)NumberHelper.StringToNumber(txtBayarKartu.Text);
                if (!(bayarKartu > 0))
                {
                    MsgHelper.MsgWarning(string.Format(msg, "Bayar via Kartu"));
                    txtBayarKartu.Focus();
                    return;
                }
            }

            // pembayaran tunai
            bayarTunai = (int)NumberHelper.StringToNumber(txtBayarTunai.Text);

            if (bayarTunai == 0 && bayarKartu == 0)
            {
                MsgHelper.MsgWarning(string.Format(msg, "Bayar Tunai"));
                txtBayarTunai.Focus();
                return;
            }

            _jual.bayar_tunai = bayarTunai;
            _jual.bayar_kartu = bayarKartu;

            if ((_jual.jumlah_bayar - _jual.grand_total) < 0)
            {
                MsgHelper.MsgWarning("Maaf jumlah bayar kurang");

                if (bayarTunai > 0)
                {
                    txtBayarTunai.Focus();
                    txtBayarTunai.SelectAll();
                    return;
                }

                if (bayarKartu > 0)
                {
                    txtBayarKartu.Focus();
                    txtBayarKartu.SelectAll();
                    return;
                }
            }

            if (!MsgHelper.MsgKonfirmasi("Apakah proses penyimpanan ingin di lanjutkan ?"))
            {
                return;
            }

            _jual.mesin_id = MainProgram.mesinId;
            _jual.ppn      = NumberHelper.StringToDouble(txtPPN.Text);
            _jual.diskon   = NumberHelper.StringToDouble(txtDiskon.Text);

            if (_jual.bayar_kartu > 0)
            {
                var kartu = _listOfKartu[cmbKartu.SelectedIndex];

                _jual.kartu_id    = kartu.kartu_id;
                _jual.Kartu       = kartu;
                _jual.nomor_kartu = txtNoKartu.Text;
            }

            var result          = 0;
            var validationError = new ValidationError();

            using (new StCursor(Cursors.WaitCursor, new TimeSpan(0, 0, 0, 0)))
            {
                result = _bll.Save(_jual, ref validationError);

                if (result > 0)
                {
                    Listener.Ok(this, _jual);

                    UpdateDefaultPPN(_jual.ppn);
                    this.Close();
                }
                else
                {
                    if (validationError.Message != null && validationError.Message.Length > 0)
                    {
                        MsgHelper.MsgWarning(validationError.Message);
                        base.SetFocusObject(validationError.PropertyName, this);
                    }
                    else
                    {
                        MsgHelper.MsgUpdateError();
                    }
                }
            }
        }
コード例 #22
0
        private void InitGridList()
        {
            var gridListProperties = new List <GridListControlProperties>();

            gridListProperties.Add(new GridListControlProperties {
                Header = "No", Width = 30
            });
            gridListProperties.Add(new GridListControlProperties {
                Header = "Tanggal", Width = 100
            });
            gridListProperties.Add(new GridListControlProperties {
                Header = "Tempo", Width = 100
            });
            gridListProperties.Add(new GridListControlProperties {
                Header = "Nota", Width = 100
            });
            gridListProperties.Add(new GridListControlProperties {
                Header = "Customer", Width = 230
            });
            gridListProperties.Add(new GridListControlProperties {
                Header = "Keterangan", Width = 350
            });
            gridListProperties.Add(new GridListControlProperties {
                Header = "Piutang", Width = 130
            });
            gridListProperties.Add(new GridListControlProperties {
                Header = "Sisa Piutang", Width = 130
            });
            gridListProperties.Add(new GridListControlProperties {
                Header = "Cetak Nota/Label", Width = 80
            });
            gridListProperties.Add(new GridListControlProperties {
                Header = ""
            });

            GridListControlHelper.InitializeGridListControl <JualProduk>(this.gridList, _listOfJual, gridListProperties);

            // merge header kolom cetak nota/label
            this.gridList.Grid.CoveredRanges.Add(GridRangeInfo.Cells(0, 9, 0, 10));

            if (_listOfJual.Count > 0)
            {
                this.gridList.SetSelected(0, true);
            }

            this.gridList.Grid.PushButtonClick += delegate(object sender, GridCellPushButtonClickEventArgs e)
            {
                if (e.RowIndex > 0)
                {
                    var index = e.RowIndex - 1;

                    switch (e.ColIndex)
                    {
                    case 9:     // cetak nota jual
                        using (new StCursor(Cursors.WaitCursor, new TimeSpan(0, 0, 0, 0)))
                        {
                            var jual = _listOfJual[index];

                            if (this._pengaturanUmum.is_printer_mini_pos)
                            {
                                if (MsgHelper.MsgKonfirmasi("Apakah proses pencetakan ingin dilanjutkan ?"))
                                {
                                    CetakNotaMiniPOS(jual);
                                }
                            }
                            else
                            {
                                var frmCetakNota = new FrmPreviewNotaPenjualan("Preview Nota Penjualan", jual);
                                frmCetakNota.ShowDialog();
                            }
                        }

                        break;

                    case 10:     // cetak label nota jual
                        using (new StCursor(Cursors.WaitCursor, new TimeSpan(0, 0, 0, 0)))
                        {
                            var jual = _listOfJual[index];

                            var frmCetakLabelNota = new FrmPreviewLabelNotaPenjualan("Preview Label Nota Penjualan", jual);
                            frmCetakLabelNota.ShowDialog();
                        }

                        break;

                    default:
                        break;
                    }
                }
            };

            this.gridList.Grid.QueryCellInfo += delegate(object sender, GridQueryCellInfoEventArgs e)
            {
                if (_listOfJual.Count > 0)
                {
                    if (e.RowIndex > 0)
                    {
                        var rowIndex = e.RowIndex - 1;

                        if (rowIndex < _listOfJual.Count)
                        {
                            double totalNota = 0;

                            var jual = _listOfJual[rowIndex];
                            if (jual != null)
                            {
                                totalNota = jual.grand_total;
                            }


                            var isRetur           = jual.retur_jual_id != null;
                            var oldStyleBackColor = e.Style.BackColor;

                            if (isRetur)
                            {
                                e.Style.BackColor = Color.Red;
                            }

                            switch (e.ColIndex)
                            {
                            case 2:
                                e.Style.HorizontalAlignment = GridHorizontalAlignment.Center;
                                e.Style.CellValue           = DateTimeHelper.DateToString(jual.tanggal);
                                break;

                            case 3:
                                e.Style.HorizontalAlignment = GridHorizontalAlignment.Center;
                                e.Style.CellValue           = DateTimeHelper.DateToString(jual.tanggal_tempo);
                                break;

                            case 4:
                                e.Style.CellValue = jual.nota;
                                break;

                            case 5:
                                if (jual.Customer != null)
                                {
                                    e.Style.CellValue = jual.Customer.nama_customer;
                                }

                                break;

                            case 6:
                                e.Style.CellValue = jual.keterangan;
                                break;

                            case 7:
                                e.Style.HorizontalAlignment = GridHorizontalAlignment.Right;
                                e.Style.CellValue           = NumberHelper.NumberToString(totalNota);
                                break;

                            case 8:
                                e.Style.HorizontalAlignment = GridHorizontalAlignment.Right;
                                e.Style.CellValue           = NumberHelper.NumberToString(totalNota - jual.total_pelunasan);
                                break;

                            case 9:     // button hapus
                                e.Style.HorizontalAlignment = GridHorizontalAlignment.Center;
                                e.Style.CellType            = GridCellTypeName.PushButton;
                                e.Style.BackColor           = oldStyleBackColor;
                                e.Style.Description         = "Cetak Nota";
                                break;

                            case 10:     // button hapus
                                e.Style.HorizontalAlignment = GridHorizontalAlignment.Center;
                                e.Style.CellType            = GridCellTypeName.PushButton;
                                e.Style.BackColor           = oldStyleBackColor;
                                e.Style.Description         = "Cetak Label Nota";
                                break;

                            default:
                                break;
                            }

                            // we handled it, let the grid know
                            e.Handled = true;
                        }
                    }
                }
            };
        }
コード例 #23
0
        protected override void Simpan()
        {
            if (this._supplier == null || txtSupplier.Text.Length == 0)
            {
                MsgHelper.MsgWarning("'Supplier' tidak boleh kosong !");
                txtSupplier.Focus();

                return;
            }

            var total = SumGrid(this._listOfItemPembayaranHutang);

            if (!(total > 0))
            {
                MsgHelper.MsgWarning("Anda belum melengkapi inputan data pembayaran !");
                return;
            }

            if (!MsgHelper.MsgKonfirmasi("Apakah proses ingin dilanjutkan ?"))
            {
                return;
            }

            if (_isNewData)
            {
                _pembayaranHutang = new PembayaranHutangProduk();
            }

            _pembayaranHutang.pengguna_id = this._pengguna.pengguna_id;
            _pembayaranHutang.Pengguna    = this._pengguna;
            _pembayaranHutang.supplier_id = this._supplier.supplier_id;
            _pembayaranHutang.Supplier    = this._supplier;
            _pembayaranHutang.nota        = txtNota.Text;
            _pembayaranHutang.tanggal     = dtpTanggal.Value;
            _pembayaranHutang.keterangan  = txtKeterangan.Text;

            _pembayaranHutang.item_pembayaran_hutang = this._listOfItemPembayaranHutang.Where(f => f.BeliProduk != null).ToList();

            if (!_isNewData) // update
            {
                _pembayaranHutang.item_pembayaran_hutang_deleted = _listOfItemPembayaranHutangDeleted.ToList();
            }

            var result          = 0;
            var validationError = new ValidationError();

            using (new StCursor(Cursors.WaitCursor, new TimeSpan(0, 0, 0, 0)))
            {
                if (_isNewData)
                {
                    result = _bll.Save(_pembayaranHutang, false, ref validationError);
                }
                else
                {
                    result = _bll.Update(_pembayaranHutang, false, ref validationError);
                }

                if (result > 0)
                {
                    Listener.Ok(this, _isNewData, _pembayaranHutang);

                    _supplier = null;
                    _listOfItemPembayaranHutang.Clear();
                    _listOfItemPembayaranHutangDeleted.Clear();

                    this.Close();
                }
                else
                {
                    if (validationError.Message.NullToString().Length > 0)
                    {
                        MsgHelper.MsgWarning(validationError.Message);
                        base.SetFocusObject(validationError.PropertyName, this);
                    }
                    else
                    {
                        MsgHelper.MsgUpdateError();
                    }
                }
            }
        }