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); }
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); }
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); }