private HargaGrosir GetHargaGrosir(Produk produk, double jumlah)
        {
            HargaGrosir hargaGrosir = null;

            if (produk.list_of_harga_grosir.Count > 0)
            {
                hargaGrosir = produk.list_of_harga_grosir
                              .Where(f => f.produk_id == produk.produk_id && f.jumlah_minimal <= jumlah)
                              .LastOrDefault();
            }

            return(hargaGrosir);
        }
        public HargaGrosir GetHargaGrosir(string produkId, int hargaKe, IDbTransaction transaction = null)
        {
            HargaGrosir obj = null;

            try
            {
                var sql = @"SELECT harga_grosir_id, produk_id, harga_ke, harga_grosir, jumlah_minimal, diskon 
                            FROM m_harga_grosir 
                            WHERE produk_id = @produkId AND harga_ke = @hargaKe";

                obj = _context.db.Query <HargaGrosir>(sql, new { produkId, hargaKe }, transaction)
                      .SingleOrDefault();
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(obj);
        }
Exemple #3
0
        private HargaGrosir GetHargaGrosir(Produk produk, double jumlah)
        {
            HargaGrosir hargaGrosir = null;

            if (produk.list_of_harga_grosir.Count(f => f.jumlah_minimal > 0) > 0)
            {
                hargaGrosir = produk.list_of_harga_grosir
                              .Where(f => f.produk_id == produk.produk_id && (f.jumlah_minimal > 0 && f.jumlah_minimal <= jumlah))
                              .LastOrDefault();

                // harga grosir tidak ada yang cocok, set harga retil
                if (hargaGrosir == null)
                {
                    hargaGrosir = new HargaGrosir {
                        harga_ke = 1, harga_grosir = produk.harga_jual, diskon = produk.diskon
                    }
                }
                ;
            }

            return(hargaGrosir);
        }
Exemple #4
0
        protected override void Simpan()
        {
            if (_isNewData)
            {
                _produk = new Produk();
            }

            if (_produk.list_of_harga_grosir.Count == 0)
            {
                var index = 0;
                foreach (var item in _listOfTxtHargaGrosir)
                {
                    var txtHargaGrosir     = _listOfTxtHargaGrosir[index];
                    var txtJumlahMinGrosir = _listOfTxtJumlahGrosir[index];
                    var txtDiskonGrosir    = _listOfTxtDiskonGrosir[index];

                    var hargaGrosir = new HargaGrosir
                    {
                        harga_ke       = index + 1,
                        harga_grosir   = NumberHelper.StringToDouble(txtHargaGrosir.Text),
                        jumlah_minimal = NumberHelper.StringToDouble(txtJumlahMinGrosir.Text, true),
                        diskon         = NumberHelper.StringToDouble(txtDiskonGrosir.Text, true)
                    };

                    _produk.list_of_harga_grosir.Add(hargaGrosir);

                    index++;
                }
            }
            else
            {
                var index = 0;
                foreach (var item in _produk.list_of_harga_grosir)
                {
                    var txtHargaGrosir     = _listOfTxtHargaGrosir[index];
                    var txtJumlahMinGrosir = _listOfTxtJumlahGrosir[index];
                    var txtDiskonGrosir    = _listOfTxtDiskonGrosir[index];

                    item.harga_grosir   = NumberHelper.StringToDouble(txtHargaGrosir.Text);
                    item.jumlah_minimal = NumberHelper.StringToDouble(txtJumlahMinGrosir.Text, true);
                    item.diskon         = NumberHelper.StringToDouble(txtDiskonGrosir.Text, true);

                    index++;
                }
            }

            var golongan = _listOfGolongan[cmbGolongan.SelectedIndex];

            _produk.golongan_id = golongan.golongan_id;
            _produk.Golongan    = golongan;

            _produk.kode_produk           = txtKodeProduk.Text;
            _produk.is_aktif              = chkAktif.Checked;
            _produk.nama_produk           = txtNamaProduk.Text;
            _produk.satuan                = txtSatuan.Text;
            _produk.harga_beli            = NumberHelper.StringToDouble(txtHargaBeli.Text);
            _produk.harga_jual            = NumberHelper.StringToDouble(txtHargaJual.Text);
            _produk.diskon                = NumberHelper.StringToDouble(txtDiskon.Text, true);
            _produk.persentase_keuntungan = NumberHelper.StringToDouble(txtKeuntungan.Text, true);
            _produk.stok                = NumberHelper.StringToDouble(txtStok.Text, true);
            _produk.stok_gudang         = NumberHelper.StringToDouble(txtStokGudang.Text, true);
            _produk.minimal_stok_gudang = NumberHelper.StringToDouble(txtMinStokGudang.Text, true);

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

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

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

                    if (_isNewData)
                    {
                        base.ResetForm(this);

                        chkAktif.Checked   = true;
                        txtKodeProduk.Text = this._bll.GetLastKodeProduk();
                        txtKodeProduk.Focus();
                    }
                    else
                    {
                        this.Close();
                    }
                }
                else
                {
                    if (validationError.Message.NullToString().Length > 0)
                    {
                        MsgHelper.MsgWarning(validationError.Message);
                        base.SetFocusObject(validationError.PropertyName, this);
                    }
                    else
                    {
                        MsgHelper.MsgDuplicate("kode produk");
                        txtKodeProduk.Focus();
                        txtKodeProduk.SelectAll();
                    }
                }
            }
        }
        public bool Import(string workSheetName, ref int rowCount)
        {
            var result = false;

            try
            {
                var ws = _workbook.Worksheet(workSheetName);

                // Look for the first row used
                var firstRowUsed = ws.FirstRowUsed();

                // Narrow down the row so that it only includes the used part
                var produkRow = firstRowUsed.RowUsed();

                // First possible address of the company table:
                var firstPossibleAddress = ws.Row(produkRow.RowNumber()).FirstCell().Address;

                // Last possible address of the company table:
                var lastPossibleAddress = ws.LastCellUsed().Address;

                // Get a range with the remainder of the worksheet data (the range used)
                var produkRange = ws.Range(firstPossibleAddress, lastPossibleAddress).RangeUsed();

                // Treat the range as a table (to be able to use the column names)
                var supplierTable = produkRange.AsTable();

                var listOfProduk = new List <Produk>();

                var hargaGrosir1 = new HargaGrosir();
                var hargaGrosir2 = new HargaGrosir();
                var hargaGrosir3 = new HargaGrosir();

                listOfProduk = supplierTable.DataRange.Rows().Select(row => new Produk
                {
                    Golongan = new Golongan {
                        nama_golongan = row.Field("GOLONGAN").GetString()
                    },
                    kode_produk = row.Field("KODE PRODUK").GetString(),
                    nama_produk = row.Field("NAMA PRODUK").GetString(),
                    satuan      = row.Field("SATUAN").GetString(),
                    harga_beli  = row.Field("HARGA BELI").GetString().Length == 0 ? 0 : Convert.ToDouble(row.Field("HARGA BELI").GetString()),
                    harga_jual  = row.Field("HARGA JUAL (RETAIL)").GetString().Length == 0 ? 0 : Convert.ToDouble(row.Field("HARGA JUAL (RETAIL)").GetString()),
                    diskon      = row.Field("DISKON (RETAIL)").GetString().Length == 0 ? 0 : Convert.ToDouble(row.Field("DISKON (RETAIL)").GetString()),

                    list_of_harga_grosir = new List <HargaGrosir>
                    {
                        new HargaGrosir
                        {
                            harga_ke       = 1,
                            harga_grosir   = row.Field("HARGA GROSIR #1").GetString().Length == 0 ? 0 : Convert.ToDouble(row.Field("HARGA GROSIR #1").GetString()),
                            jumlah_minimal = row.Field("JUMLAH MINIMAL GROSIR #1").GetString().Length == 0 ? 0 : Convert.ToDouble(row.Field("JUMLAH MINIMAL GROSIR #1").GetString()),
                            diskon         = row.Field("DISKON GROSIR #1").GetString().Length == 0 ? 0 : Convert.ToDouble(row.Field("DISKON GROSIR #1").GetString())
                        },
                        new HargaGrosir
                        {
                            harga_ke       = 2,
                            harga_grosir   = row.Field("HARGA GROSIR #2").GetString().Length == 0 ? 0 : Convert.ToDouble(row.Field("HARGA GROSIR #2").GetString()),
                            jumlah_minimal = row.Field("JUMLAH MINIMAL GROSIR #2").GetString().Length == 0 ? 0 : Convert.ToDouble(row.Field("JUMLAH MINIMAL GROSIR #2").GetString()),
                            diskon         = row.Field("DISKON GROSIR #2").GetString().Length == 0 ? 0 : Convert.ToDouble(row.Field("DISKON GROSIR #2").GetString())
                        },
                        new HargaGrosir
                        {
                            harga_ke       = 3,
                            harga_grosir   = row.Field("HARGA GROSIR #3").GetString().Length == 0 ? 0 : Convert.ToDouble(row.Field("HARGA GROSIR #3").GetString()),
                            jumlah_minimal = row.Field("JUMLAH MINIMAL GROSIR #3").GetString().Length == 0 ? 0 : Convert.ToDouble(row.Field("JUMLAH MINIMAL GROSIR #3").GetString()),
                            diskon         = row.Field("DISKON GROSIR #3").GetString().Length == 0 ? 0 : Convert.ToDouble(row.Field("DISKON GROSIR #3").GetString())
                        }
                    },

                    stok                = row.Field("STOK ETALASE").GetString().Length == 0 ? 0 : Convert.ToDouble(row.Field("STOK ETALASE").GetString()),
                    stok_gudang         = row.Field("STOK GUDANG").GetString().Length == 0 ? 0 : Convert.ToDouble(row.Field("STOK GUDANG").GetString()),
                    minimal_stok_gudang = row.Field("MINIMAL STOK GUDANG").GetString().Length == 0 ? 0 : Convert.ToDouble(row.Field("MINIMAL STOK GUDANG").GetString())
                }).ToList();

                if (listOfProduk.Count == 1 && listOfProduk[0].nama_produk.Length == 0)
                {
                    rowCount = 0;
                    return(false);
                }

                rowCount = listOfProduk.Where(f => f.nama_produk.Length > 0 && f.Golongan.nama_golongan.Length > 0)
                           .Count();

                using (IDapperContext context = new DapperContext())
                {
                    _unitOfWork = new UnitOfWork(context, _log);

                    foreach (var produk in listOfProduk)
                    {
                        if (produk.nama_produk.Length > 0 && produk.Golongan.nama_golongan.Length > 0)
                        {
                            var golongan = _unitOfWork.GolonganRepository.GetByName(produk.Golongan.nama_golongan, false)
                                           .FirstOrDefault();

                            if (golongan != null)
                            {
                                produk.golongan_id = golongan.golongan_id;
                                produk.Golongan    = golongan;
                            }

                            if (produk.kode_produk.Length == 0)
                            {
                                produk.kode_produk = _unitOfWork.ProdukRepository.GetLastKodeProduk();
                            }

                            if (produk.kode_produk.Length > 15)
                            {
                                produk.kode_produk = produk.kode_produk.Substring(0, 15);
                            }

                            if (produk.nama_produk.Length > 300)
                            {
                                produk.nama_produk = produk.nama_produk.Substring(0, 300);
                            }

                            if (produk.satuan.Length > 20)
                            {
                                produk.satuan = produk.satuan.Substring(0, 20);
                            }

                            var oldProduk = _unitOfWork.ProdukRepository.GetByKode(produk.kode_produk);
                            if (oldProduk == null)
                            {
                                result = Convert.ToBoolean(_unitOfWork.ProdukRepository.Save(produk));
                            }
                            else
                            {
                                // khusus stok etalase dan gudang diabaikan (tidak diupdate)
                                produk.produk_id       = oldProduk.produk_id;
                                produk.kode_produk_old = oldProduk.kode_produk;
                                produk.stok            = oldProduk.stok;
                                produk.stok_gudang     = oldProduk.stok_gudang;

                                foreach (var grosir in produk.list_of_harga_grosir.OrderBy(f => f.harga_ke))
                                {
                                    var oldGrosir = oldProduk.list_of_harga_grosir
                                                    .Where(f => f.produk_id == produk.produk_id && f.harga_ke == grosir.harga_ke)
                                                    .SingleOrDefault();

                                    if (oldGrosir != null)
                                    {
                                        grosir.harga_grosir_id = oldGrosir.harga_grosir_id;
                                        grosir.produk_id       = oldGrosir.produk_id;
                                    }
                                }

                                result = Convert.ToBoolean(_unitOfWork.ProdukRepository.Update(produk));
                            }
                        }
                    }
                }

                result = true;
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }
            finally
            {
                _workbook.Dispose();
            }

            return(result);
        }