public void BindForm(ItemDetail item) { CertificateCharges.Text = item.CertificateCharges.ToString("C"); DesignCode.Text = item.DesignCode; ItemCategory.Text = item.ItemCategory; ItemDesc.Text = item.ItemDescription; LabourCharges.Text = item.LabourCharges.ToString("C"); MetalNetAmount.Text = item.MetalDetail.MetalNetAmount.ToString("C"); MetalNetWt.Text = item.MetalDetail.MetalNetWt.ToString(); MetalType.Text = item.MetalDetail.MetalType; StoneNetAmount.Text = item.StoneDetail.StoneNetAmount.ToString("C"); lblTotalAmount.Text = item.Amount.ToString("C"); StoneNetWt.Text = item.StoneDetail.StoneNetWt.ToString(); StoneType.Text = item.StoneDetail.StoneType; TotalWeight.Text = item.TotalWeight.ToString(); lblStamping.Text = item.StampingCharges.ToString("C"); CStpe.Text = item.ColorStoneDetail.ColorStoneType; CSwt.Text = item.ColorStoneDetail.ColorStoneNetWt.ToString(); CSnamt.Text = item.ColorStoneDetail.ColorStoneNetAmount.ToString("C"); _chart = item.StoneDetail.StoneChart; TotalStonePcs.Text = item.StoneDetail.TotalStonePcs != 0 ? item.StoneDetail.TotalStonePcs.ToString() : item.ColorStoneDetail.ColorTotalStonePcs.ToString(); JewelNumber.Text = item.DesignCode; pictureBox.Image = ImageExtension.ResolveImage(item.DesignCode); }
private void openFileDialog1_FileOk(object sender, CancelEventArgs e) { PurchaseTransactionItems = new List <JewelTransaction>(); txtUploadError.Text = String.Empty; txtUploadError.Height = 1; dgvJewel.Rows.Clear(); txtUploadError.Text = Resources.frmExcelCostingRates_openFileDialog1_FileOk_Following_error_s__occoured_while_processing_your_excel + Environment.NewLine + Resources.frmExcelCostingRates_openFileDialog1_FileOk_ + Environment.NewLine + Environment.NewLine; var excel = new ExcelQueryFactory(openFileDialog1.FileName); var uploadData = excel.Worksheet <ExcelData>("COSTING FORMAT"); try { Queryable.Count(uploadData); } catch (Exception ex) { MessageBox.Show(Resources.frmExcelCostingRates_openFileDialog1_FileOk_ + "\n" + ex.Message); return; } var allRows = ProcessExcelData(uploadData.ToList()); var rows = new JewelData { Items = allRows.Items.Where(x => x.IsValid).ToList() }; if (allRows.Items.Count() != allRows.Items.Select(x => x.SRNO).Distinct().Count()) { MessageBox.Show(Resources.frmExcelCostingRates_openFileDialog1_FileOk_Please_ensure_excel_file_is_numbered_correctly_); return; } foreach (var row in rows.Items) { var item = new ItemDetail { TotalWeight = row.GRWT, CertificateNumber = row.CERTNO, DesignCode = row.DESIGNNO, ItemCategory = row.TYPE, ItemDescription = row.TYPE }; var metalRate = CostingRate.CostingItems.Single(x => x.ProductCategory == ProductCategory.Metal && x.Particulars == row.KT); var labour = CostingRate.CostingItems.FirstOrDefault(x => x.Particulars == row.TYPE && x.ProductCategory == ProductCategory.Labour); if (labour == null) { row.ErrorMessage = String.Format("Invalid metal type, for record {0}", row.SRNO); continue; } decimal labourCharges; var labourCost = labour.Amount; var minlabourCost = labour.MinimumAmount; var netMetalWt = Math.Max(row.GRWT - row.TOTALDIAWT / 5, 0); if (netMetalWt * labourCost <= minlabourCost) { labourCharges = Math.Max(minlabourCost, 0); } else { labourCharges = netMetalWt * labourCost; } item.LabourCharges = labourCharges; item.MetalDetail = new MetalDetail { MetalNetWt = netMetalWt, MetalType = row.KT, MetalNetAmount = Math.Max(row.GRWT - row.TOTALDIAWT / 5, 0) * Math.Max(metalRate.Amount, 0), MetalKT = row.KT }; if (row.HasDiamond) { var diawt = row.TOTALDIAWT; var tempstncnt = row.DIAPCSDETAIL.Sum(); if (tempstncnt != row.TOTALDIAPCS) { row.ErrorMessage = String.Format("Invalid diamond pcs count for type {0}, for record {1}", row.TYPE, row.SRNO); continue; } var tempstnwt = row.DIAWTDETAIL.Sum(); if (tempstnwt != row.TOTALDIAWT) { row.ErrorMessage = String.Format("Invalid diamond pcs wt for type {0}, for record {1}", row.TYPE, row.SRNO); continue; } var metailDetail = new List <StoneMetaDetail>(); var tempflg = false; for (int i = 0; i < row.SIEVESIZE.Count; i++) { var svSize = row.SIEVESIZE[i]; if (CostingRate.CostingItems.Any(x => x.ProductCategory == ProductCategory.Stone && x.Particulars == row.STONETYPE && x.ConfigurationValue == svSize) == false) { row.ErrorMessage = String.Format("SeiveSize {0} is not defined for record {1}", row.TYPE, row.SRNO); tempflg = true; break; } var stonePcs = row.DIAPCSDETAIL[i]; var stoneWt = row.DIAWTDETAIL[i]; var price = CostingRate.CostingItems.Single(x => x.ProductCategory == ProductCategory.Stone && x.Particulars == row.STONETYPE && x.ConfigurationValue == svSize); var stoneValue = Math.Max((stoneWt / stoneWt) * price.Amount, 0); metailDetail.Add(new StoneMetaDetail { StoneSieveSz = svSize, StonePcs = stonePcs, StoneWt = stoneWt, StoneValue = stoneValue }); } if (tempflg) { continue; } var stoneChart = new StoneChart { StoneMetaDetailList = metailDetail }; var cost = CostingRate.CertificateRate.Items.SingleOrDefault(x => x.RangeMinValue <= diawt && x.RangeMaxValue >= diawt); if (cost == null) // for out of scope { item.CertificateCharges = Math.Max(CostingRate.CertificateRate.Items.Max(x => x.Amount) * diawt, 0); } else if (cost.RangeMinValue == CostingRate.CertificateRate.Items.Min(x => x.RangeMinValue)) { item.CertificateCharges = Math.Max(cost.Amount, 0); } else { item.CertificateCharges = Math.Max(cost.Amount * diawt, 0); } item.StoneDetail = new StoneDetail { StoneType = row.STONETYPE, StoneNetWt = row.TOTALDIAWT, TotalStonePcs = row.TOTALDIAPCS, StoneChart = stoneChart, StoneNetAmount = metailDetail.Any() ? Math.Max(metailDetail.Sum(x => x.StoneValue) * row.TOTALDIAWT, 0) : 0 }; } item.StampingCharges = Math.Max(row.STAMP, 0); var totalPrice = Math.Max(item.StoneDetail.StoneNetAmount + item.CertificateCharges + item.MetalDetail.MetalNetAmount + labourCharges + item.StampingCharges , 0); var jewelTran = new JewelTransaction { CostingDetail = _costingDetails, TransactionType = TransactionType.PurchaseTransaction, KT = row.KT, CertificateNumber = row.CERTNO, DesignCode = row.DESIGNNO, StonePcs = row.HasDiamond ? row.TOTALDIAPCS : 0, StoneWeight = row.HasDiamond ? row.TOTALDIAWT : 0, //CStonePcs = HasStoneMode && IsColorStoneMode ? Convert.ToInt32(row.GetCellValue(_columncstonepcs)) : 0, //CStoneWeight = HasStoneMode && IsColorStoneMode ? Convert.ToDecimal(row.GetCellValue(_columncstonewt)) : 0, JewelType = row.TYPE, JewelItemCategory = MetalType, MetalWeight = netMetalWt, //MetalColor = row.MetalColor, TotalWeight = row.GRWT, Properties = new TransactionDetails { ItemDetails = item }, TransactionPartyRef = ((Supplier)cboCustomer.SelectedItem).SupplierCode, TransactionDate = dtCosting.Value, TotalAmount = totalPrice }; PurchaseTransactionItems.Add(jewelTran); } if (allRows.Items.Any(x => !x.IsValid)) { txtUploadError.Height = 55; foreach (var row in allRows.Items.Where(x => x.IsValid == false)) { txtUploadError.Text = txtUploadError.Text + row.ErrorMessage + Environment.NewLine; } } else { txtUploadError.Height = 1; } //Bind to grid BindToGrid(); }