private void CalculateSievesizeAndAvgDiamondPrize(DataGridView mapGrid, int rowIndex) { var avgDiaPrize = default(decimal); var DiaPrize = default(decimal); var sieveSize = String.Empty; var diaPerticulars = mapGrid.Rows[0].GetCellValue(_columnstonetype); DataGridViewRow row = mapGrid.Rows[rowIndex]; if (row.ValidateDependentProperties(_columndiawtdetails, _columnavrdia)) { var avgDiamondvalue = Convert.ToDecimal(row.GetCellValue(_columnavrdia)); var Diamondvalue = Convert.ToDecimal(row.GetCellValue(_columndiawtdetails)); sieveSize = LocalStore.SieveGroups.GetSieveGroupName(avgDiamondvalue); var item = CostingRate.CostingItems.FirstOrDefault(x => x.Particulars == diaPerticulars && x.ConfigurationValue == sieveSize && x.ProductCategory == ProductCategory.Stone); avgDiaPrize = item == null ? default(decimal) : item.Amount; DiaPrize = Diamondvalue * avgDiaPrize; } row.Cells[_columnsievsz.ToLowerCaseColumnName()].Value = sieveSize; row.Cells[_columndiapr.ToLowerCaseColumnName()].Value = avgDiaPrize; row.Cells[_columndiaval.ToLowerCaseColumnName()].Value = DiaPrize; }
public void CalculateNetMetalWeight(DataGridView mapGrid, Int32 rowIndex) { var returnVal = default(decimal); DataGridViewRow row = mapGrid.Rows[rowIndex]; if (JewelHasStone) { if (row.ValidateDependentProperties(_columngrwt, _columndiawt)) { if (returnVal > 0) { returnVal = Math.Max(returnVal - (Convert.ToDecimal(row.GetCellValue(_columndiawt)) / 5), 0); } else { returnVal = Math.Max(Convert.ToDecimal(row.GetCellValue(_columngrwt)) - (Convert.ToDecimal(row.GetCellValue(_columndiawt)) / 5), 0); } } if (row.ValidateDependentProperties(_columngrwt, _columncstonewt)) { returnVal = returnVal > 0 ? Math.Max(returnVal - Convert.ToDecimal(row.GetCellValue(_columncstonewt)), 0) : Math.Max(Convert.ToDecimal(row.GetCellValue(_columngrwt)) - Convert.ToDecimal(row.GetCellValue(_columncstonewt)), 0); } } else { if (row.ValidateDependentProperties(_columngrwt)) { returnVal = Math.Max(Convert.ToDecimal(row.GetCellValue(_columngrwt)), 0); } } row.Cells[_columnntwt.ToLowerCaseColumnName()].Value = returnVal; }
private void CalculateLabourAmount(DataGridView mapGrid, int RowIndex) { var returnVal = default(Decimal); DataGridViewRow row = mapGrid.Rows[RowIndex]; if (row.ValidateDependentProperties(_columnntwt, _columntype)) { var prodType = row.GetCellValue(_columntype); var labour = CostingRate.CostingItems.SingleOrDefault(x => x.Particulars == prodType && x.ProductCategory == ProductCategory.Labour); if (labour == null) { return; } var labourCost = labour.Amount; var minlabourCost = labour.MinimumAmount; if (Convert.ToDecimal(row.GetCellValue(_columnntwt)) * labourCost <= minlabourCost) { returnVal = Math.Max(minlabourCost, 0); } else { returnVal = Convert.ToDecimal(row.GetCellValue(_columnntwt)) * labourCost; } } row.Cells[_columnlabr.ToLowerCaseColumnName()].Value = returnVal; }
private void CalculateAverageDiamondWeigth(DataGridView mapGrid, int rowIndex) { var returnVal = default(decimal); DataGridViewRow row = mapGrid.Rows[rowIndex]; if (row.ValidateDependentProperties(_columndiapcsdetails, _columndiawtdetails)) { if (Convert.ToDecimal(row.GetCellValue(_columndiapcsdetails)) != 0) { returnVal = Math.Max(Convert.ToDecimal(row.GetCellValue(_columndiawtdetails)) / Convert.ToDecimal(row.GetCellValue(_columndiapcsdetails)), 0); } } row.Cells[_columnavrdia.ToLowerCaseColumnName()].Value = returnVal; }
private void CalculateNetMetalAmount(DataGridView mapGrid, int rowIndex) { var returnVal = default(decimal); DataGridViewRow row = mapGrid.Rows[rowIndex]; if (row.ValidateDependentProperties(_columnmetaltype, _columnntwt)) { var metalType = row.GetCellValue(_columnmetaltype); var rate = CostingRate.CostingItems.FirstOrDefault(x => x.ProductCategory == ProductCategory.Metal && x.Particulars == metalType); returnVal = Math.Max(Convert.ToDecimal(row.GetCellValue(_columnntwt)) * Convert.ToDecimal(rate.Amount), 0); } row.Cells[_columngamt.ToLowerCaseColumnName()].Value = returnVal; }
void OnAddtoListClick(object sender, EventArgs e) { if (_validateForm(this) == false) { MessageBox.Show(Resources.frmCostingRates_OnAddtoListClick_Incomplete_information_provided_, Constants.ALERTMESSAGEHEADER); return; } ItemDetail transactionDetails; if (!_validateDataGrid(dgCostingFormat, out transactionDetails)) { return; } // Create a local collection of costing rates DataGridViewRow row = dgCostingFormat.Rows[0]; // make a list of purchaseJewelsRequest and save it to database. var item = new JewelTransaction { JewelItemCategory = ItemCategory, CostingDetail = new CostingDetail { Properties = CostingRate }, TransactionType = TransactionType.PurchaseTransaction, KT = row.GetCellValue(_columnmetaltype), CertificateNumber = row.GetCellValue(_columncerno), DesignCode = row.GetCellValue(_columndesignno), StonePcs = JewelHasStone ? row.GetParsedCellValue <int>(_columndiapcs) : 0, StoneWeight = JewelHasStone ? row.GetParsedCellValue <decimal>(_columndiawt) : 0, CStonePcs = JewelHasStone ? row.GetParsedCellValue <int>(_columncstonepcs) : 0, CStoneWeight = JewelHasStone ? row.GetParsedCellValue <decimal>(_columncstonewt) : 0, JewelType = row.GetCellValue(_columntype), TotalWeight = Convert.ToDecimal(row.GetCellValue(_columngrwt)), MetalWeight = Convert.ToDecimal(row.GetCellValue(_columnntwt)), MetalColor = row.GetCellValue(_columnmetalcolor), Properties = new TransactionDetails { ItemDetails = transactionDetails }, TransactionPartyRef = ((Supplier)cboCustomer.SelectedItem).SupplierCode, TransactionDate = dtCosting.Value, JewelTransactionRowId = Guid.NewGuid(), }; PurchaseTransactionItems.Add(item); _addtoPanel(item); ResetDataGridView(dgCostingFormat); }
private void CalculateFinalAmount(DataGridView mapGrid, int rowIndex) { var returnVal = default(decimal); DataGridViewRow row = mapGrid.Rows[rowIndex]; if (JewelHasStone) { decimal stamp; Decimal.TryParse(row.GetCellValue(_columnstamp, true), out stamp); if (row.ValidateDependentProperties(_columngamt, _columndiavalsum, _columnlabr)) { returnVal = Math.Max( Convert.ToDecimal(row.GetCellValue(_columngamt)) + Convert.ToDecimal(row.GetCellValue(_columndiavalsum)) + Convert.ToDecimal(row.GetCellValue(_columnlabr)) + stamp, 0); if (row.ValidateDependentProperties(_columncert)) { returnVal += Math.Max(Convert.ToDecimal(row.GetCellValue(_columncert)), 0); } } } else { if (row.ValidateDependentProperties(_columngamt, _columnlabr)) { returnVal = Math.Max(Convert.ToDecimal(row.GetCellValue(_columngamt)) + Convert.ToDecimal(row.GetCellValue(_columnlabr)) , 0); } } row.Cells[_columnamount.ToLowerCaseColumnName()].Value = returnVal; }
private bool _validateDataGrid(DataGridView mapGrid, out ItemDetail itemDetail) { itemDetail = new ItemDetail(); DataGridViewRow row = mapGrid.Rows[0]; if (row == null) { throw new IndexOutOfRangeException("No rows found"); } // Validate inline row details AllErrors.Clear(); if (row.ValidateDependentProperties(_columntype) == false) { AllErrors.Add("JewelType", "JewelType is required."); } if (row.ValidateDependentProperties(_columnjewelnumber) == false) { AllErrors.Add("JewelNumber", "JewelNumber is required."); } if (row.ValidateDependentProperties(_columnntwt) == false) { AllErrors.Add("MetalWeight", "Total MetalWeight is required."); } if (JewelHasStone) { if (IsStoneMode) { if (row.ValidateDependentProperties(_columndiawt) == false) { AllErrors.Add("DiamondWeight", "Total Diamond Weight is required."); } if (row.ValidateDependentProperties(_columndiapcs) == false) { AllErrors.Add("DiamondPcs", "Total Diamond Pcs required."); } if (row.ValidateDependentProperties(_columngrwt, _columndiawt)) { if (row.GetParsedCellValue <decimal>(_columngrwt) - row.GetParsedCellValue <decimal>(_columndiawt) < 0) { AllErrors.Add("InvalidDiamondWeight", "Invalid diamond weight."); } } } else if (IsColorStoneMode) { if (row.ValidateDependentProperties(_columncstonewt) == false) { AllErrors.Add("ColorStoneWeight", "Total ColorStone Weight is required."); } if (row.ValidateDependentProperties(_columncstonepcs) == false) { AllErrors.Add("ColorStonePcs", "Total ColorStone Pcs is required."); } if (row.ValidateDependentProperties(_columngrwt, _columncstonewt)) { if (row.GetParsedCellValue <decimal>(_columngrwt) - row.GetParsedCellValue <decimal>(_columncstonewt) < 0) { AllErrors.Add("InvalidColorStoneWeight", "Invalid ColorStone weight."); } } } if (row.ValidateDependentProperties(_columngrwt, _columndiawt, _columncstonewt)) { if (row.GetParsedCellValue <decimal>(_columngrwt) - (row.GetParsedCellValue <decimal>(_columndiawt) + row.GetParsedCellValue <decimal>(_columncstonewt)) < 0) { AllErrors.Add("InvalidTotalWeight", "Invalid total stone weights."); } } } if (row.ValidateDependentProperties(_columnamount) == false) { AllErrors.Add("TotalAmount", "TotalAmount is required."); } if (AllErrors.Count > 0) { MessageBox.Show(AllErrors.ErrorMessageString(), Constants.ALERTMESSAGEHEADER); return(false); } if (JewelHasStone) { if (IsStoneMode) { // Validate DiamondPcs with the bifercation row details Int32 returnValdiaPcs = default(Int32); Decimal returnValdiaWt = default(decimal); var diaPcs = Convert.ToInt32(row.GetCellValue(_columndiapcs)); var diaWt = Convert.ToDecimal(row.GetCellValue(_columndiawt)); foreach (DataGridViewRow curRow in mapGrid.Rows) { if (curRow.ValidateDependentProperties(_columndiapcsdetails) && curRow.ValidateDependentProperties(_columndiawtdetails)) { returnValdiaPcs += Convert.ToInt32(curRow.Cells[_columndiapcsdetails.ToLowerCaseColumnName()].Value); } if (curRow.ValidateDependentProperties(_columndiawtdetails) && curRow.ValidateDependentProperties(_columndiapcsdetails)) { returnValdiaWt += Convert.ToDecimal(curRow.Cells[_columndiawtdetails.ToLowerCaseColumnName()].Value); } } if (returnValdiaPcs != diaPcs) { AllErrors.Add("InvalidDiamondPcs", "Invalid diamond pcs count."); } if (returnValdiaWt != diaWt) { AllErrors.Add("TotalDiamondPcs", "Total diamond weight must match with sum of diamonds weight."); } if (mapGrid.Rows.Cast <DataGridViewRow>().Where(curRow => curRow.ValidateDependentProperties(_columnavrdia)).Any(curRow => row.ValidateDependentProperties(_columndiapr) == false)) { AllErrors.Add("TotalDiamondPrices", "Invalid diamond prices, please define costing."); } if (ItemCategory == JewelItemCategory.Gold && false == CostingRate.CertificateRate.Items.Any(x => x.RangeMinValue <= diaWt && x.RangeMaxValue >= diaWt)) { AllErrors.Add("CertificateCosting", "Certificate costing is not defined."); } } else if (IsColorStoneMode) { if (row.ValidateDependentProperties(_columncstonepcs) == false) { AllErrors.Add("ColorStonePices", "ColorStone pcs is required."); } if (row.ValidateDependentProperties(_columncstonewt) == false) { AllErrors.Add("ColorStoneWeight", "Total ColorStoneWeight is required."); } else { var grwt = Convert.ToDecimal(row.Cells[_columngrwt.ToLowerCaseColumnName()].Value); var cstonewt = Convert.ToDecimal(row.Cells[_columncstonewt.ToLowerCaseColumnName()].Value); if ((grwt - cstonewt) <= 0) { AllErrors.Add("ColorStoneWeight", "Invalid Total ColorStone Weight."); } } } } if (AllErrors.Count > 0) { MessageBox.Show(AllErrors.ErrorMessageString(), Constants.ALERTMESSAGEHEADER); return(false); } itemDetail.ItemDescription = row.GetCellValue(_columntype); itemDetail.CertificateNumber = row.GetCellValue(_columncerno); itemDetail.DesignCode = row.GetCellValue(_columndesignno); itemDetail.ItemCategory = ItemCategory.ToString(); itemDetail.TotalWeight = Convert.ToDecimal(row.GetCellValue(_columngrwt, true)); itemDetail.StampingCharges = Convert.ToDecimal(row.GetCellValue(_columnstamp, true)); itemDetail.LabourCharges = Convert.ToDecimal(row.GetCellValue(_columnlabr, true)); row.GetCellValue(_columnmetaltype); itemDetail.MetalDetail = new MetalDetail { MetalKT = row.GetCellValue(_columnmetaltype), MetalNetAmount = Convert.ToDecimal(row.GetCellValue(_columngamt)), MetalNetWt = Convert.ToDecimal(row.GetCellValue(_columnntwt)), MetalType = row.GetCellValue(_columnmetaltype) }; if (JewelHasStone) { var stoneAmount = 0M; if (IsStoneMode) { itemDetail.CertificateCharges = Convert.ToDecimal(row.GetCellValue(_columncert)); // I am unknown Func <List <StoneMetaDetail> > getMetaData = () => (from DataGridViewRow gridRow in mapGrid.Rows where gridRow.ValidateDependentProperties(_columnavrdia) && gridRow.ValidateDependentProperties(_columndiapr) select new StoneMetaDetail { StoneSieveSz = gridRow.GetCellValue(_columnsievsz), StoneWt = Convert.ToDecimal(gridRow.GetCellValue(_columndiawtdetails)), StonePcs = Convert.ToInt32(gridRow.GetCellValue(_columndiapcsdetails)), StoneValue = Convert.ToDecimal(gridRow.GetCellValue(_columndiaval)) }).ToList(); var detail = new StoneDetail { StoneType = row.GetCellValue(_columnstonetype), StoneNetWt = Convert.ToDecimal(row.GetCellValue(_columndiawt)), TotalStonePcs = Convert.ToInt32(row.GetCellValue(_columndiapcs)), StoneChart = new StoneChart { StoneMetaDetailList = getMetaData.Invoke() } }; stoneAmount = detail.StoneChart.StoneMetaDetailList.Sum(x => x.StoneValue); detail.StoneNetAmount = stoneAmount; itemDetail.StoneDetail = detail; } if (IsColorStoneMode) { itemDetail.ColorStoneDetail = new ColorStoneDetail { ColorStoneType = row.GetCellValue(_columncsstonetype), ColorStoneNetWt = Convert.ToDecimal(row.GetCellValue(_columncstonewt)), ColorStoneNetAmount = Convert.ToDecimal(row.GetCellValue(_columndiavalsum)) - stoneAmount, ColorTotalStonePcs = Convert.ToInt32(row.GetCellValue(_columncstonepcs)) }; } } return(true); }