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); }
void _addtoPanel(JewelTransaction item) { var panel = new Panel { Tag = item.JewelTransactionRowId }; panel.MouseClick += JewelItemClick; var menu = new ContextMenu(); menu.MenuItems.Add(new MenuItem("Remove Item", _itemremovefromPanel)); panel.ContextMenu = menu; panel.BorderStyle = BorderStyle.FixedSingle; panel.Cursor = Cursors.Hand; panel.BackgroundImageLayout = ImageLayout.Stretch; panel.Size = new Size(71, 46); panel.BackgroundImage = ImageExtension.ResolveImage(item.DesignCode); flowLayout.Controls.Add(panel); }
void Calculate(DataGridView mapGrid, CostingRates costingRates, out List <JewelTransaction> jewelTransaction) { jewelTransaction = new List <JewelTransaction>(); var tranLookupKey = Guid.NewGuid(); foreach (var item in mapGrid.Rows) { var row = (DataGridViewRow)item; var jewelNo = row.GetCellValue(_columnjewelnumber); var tranDetails = _transactionServices.GetJewelTransactionsByJewelNo(jewelNo); var tran = new JewelTransaction { JewelTransactionRowId = tranLookupKey, TransactionType = ApprovalSelection ? TransactionType.ApprovalTransaction : TransactionType.MarketingTransaction, CostingDetail = new CostingDetail { Properties = costingRates }, CertificateNumber = tranDetails.CertificateNumber, CStonePcs = tranDetails.CStonePcs, CStoneWeight = tranDetails.CStoneWeight, DesignCode = tranDetails.DesignCode, JewelNumber = tranDetails.JewelNumber, JewelTransactionId = tranDetails.JewelTransactionId, JewelType = tranDetails.JewelType, KT = tranDetails.KT, MetalColor = tranDetails.MetalColor, JewelItemCategory = tranDetails.JewelItemCategory, MetalWeight = tranDetails.MetalWeight, Properties = tranDetails.Properties, StonePcs = tranDetails.StonePcs, StoneWeight = tranDetails.StoneWeight, TotalAmount = tranDetails.TotalAmount, TotalWeight = tranDetails.TotalWeight, TransactionDate = dtCosting.Value, TransactionPartyRef = ((Customer)cboCustomer.SelectedItem).CustomersCode, }; jewelTransaction.Add(tran); } _jewelCalculation.Calculate(costingRates, jewelTransaction); }
private void lnkRTS_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { var isYes = MessageBox.Show(Resources.frmManageTransaction_lnkRTS_LinkClicked_Are_you_sure_want_to_return_stock_into_account, Resources.frmManageTransaction_lnkRTS_LinkClicked_Return_To_Stock, MessageBoxButtons.OKCancel) == DialogResult.OK; if (isYes) { var transactionType = (TransactionType == TransactionType.MarketingTransaction) ? TransactionType.MarketingInReturnTransaction : (TransactionType == TransactionType.ApprovalTransaction ? TransactionType.ApprovalInReturnTransaction : TransactionType.NotSet); var request = new JewelTransactionRequest(); var memoNumber = (cboTran.SelectedValue as TransactionLookup).MemoNumber; var lookup = _transactionServices.GetJewelTransactionsLookUp().Single(x => x.MemoNumber == memoNumber); var clookup = new TransactionLookup { Remarks = lookup.Remarks, TransactionPartyRef = lookup.TransactionPartyRef, ContactName = lookup.ContactName, DocNumber = lookup.DocNumber, TransactionLookupId = 0, TransactionDate = DateTime.Now, TransactionType = transactionType }; foreach (object row in dgvJewel.Rows) { var current = ((DataGridViewRow)(row)); if ((bool)current.Cells[_columnselectchk.ToLowerCaseColumnName()].Value) { var jewelno = current.Cells[_columnjewelnumber.ToLowerCaseColumnName()].Value; var tran = current.Cells[_columntrno.ToLowerCaseColumnName()].Value; var jewel = _transactionServices.GetJewelStockByJewelNo(jewelno.ToString()); var trans = _transactionServices.GetJewelTransactionsById((Int32)tran); if ((jewel.StockStatus == StockStatus.ItemLockedInStock && jewel.JewelState == JewelState.OnMarketing) || jewel.StockStatus == StockStatus.ItemOutOfStock && jewel.JewelState == JewelState.OnApproval) { var item = new JewelTransaction { CostingDetail = trans.CostingDetail, TransactionType = transactionType, MetalColor = trans.MetalColor, CStonePcs = trans.CStonePcs, CStoneWeight = trans.CStoneWeight, CertificateNumber = trans.CertificateNumber, DesignCode = trans.DesignCode, StonePcs = trans.StonePcs, KT = trans.KT, JewelItemCategory = trans.JewelItemCategory, JewelNumber = trans.JewelNumber, JewelType = trans.JewelType, TotalWeight = trans.TotalWeight, MetalWeight = trans.MetalWeight, StoneWeight = trans.StoneWeight, Properties = trans.Properties, TransactionPartyRef = trans.TransactionPartyRef, TransactionDate = DateTime.Today, TotalAmount = trans.TotalAmount }; clookup.JewelTransactions.Add(item); } } } if (clookup.JewelTransactions.Any()) { request.TransactionLookup = clookup; var response = _transactionServices.CreateJewelTransaction(request); ShowManagedModalForm <frmCostingConfirmation>(Owner as frmMDIParent, response.TransactionLookup); } else { MessageBox.Show(Resources.frmManageTransaction_lnkRTS_LinkClicked_no_item_available_to_be_returned_); return; } btnGo_Click(new Object(), new EventArgs()); } }
private void CancelTransaction(int lookupid) { var isYes = MessageBox.Show(Resources.frmManageTransaction_lnkRTS_LinkClicked_Are_you_sure_want_to_return_stock_into_account, Resources.frmManageTransaction_lnkRTS_LinkClicked_Return_To_Stock, MessageBoxButtons.OKCancel) == DialogResult.OK; if (isYes) { var request = new JewelTransactionRequest(); var lookup = _transactionService.GetJewelTransactionsLookUp().Single(x => x.TransactionLookupId == lookupid); var clookup = new TransactionLookup { Remarks = lookup.Remarks, TransactionPartyRef = lookup.TransactionPartyRef, ContactName = lookup.ContactName, ReferenceMemoNumber = lookup.MemoNumber, DocNumber = lookup.DocNumber, TransactionType = TransactionType.SalesInReturnTransaction, TransactionLookupId = 0, TransactionDate = DateTime.Now }; foreach (var trans in lookup.JewelTransactions) { var item = new JewelTransaction { CostingDetail = trans.CostingDetail, TransactionType = TransactionType.SalesInReturnTransaction, MetalColor = trans.MetalColor, CStonePcs = trans.CStonePcs, CStoneWeight = trans.CStoneWeight, CertificateNumber = trans.CertificateNumber, DesignCode = trans.DesignCode, StonePcs = trans.StonePcs, KT = trans.KT, JewelItemCategory = trans.JewelItemCategory, JewelNumber = trans.JewelNumber, JewelType = trans.JewelType, TotalWeight = trans.TotalWeight, MetalWeight = trans.MetalWeight, StoneWeight = trans.StoneWeight, Properties = trans.Properties, TransactionPartyRef = trans.TransactionPartyRef, TransactionDate = DateTime.Today, TotalAmount = trans.TotalAmount }; clookup.JewelTransactions.Add(item); } if (clookup.JewelTransactions.Any()) { request.TransactionLookup = clookup; var response = _transactionService.CreateJewelTransaction(request); ShowManagedModalForm <frmCostingConfirmation>(Owner as frmMDIParent, response.TransactionLookup); } else { MessageBox.Show(Resources.frmManageTransaction_lnkRTS_LinkClicked_no_item_available_to_be_returned_); return; } FindTransaction(); } }
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(); }
void OnbtnSaveClick(object sender, EventArgs e) { if (IsValid == false) { MessageBox.Show(AllErrors.ErrorMessageString(), Constants.ALERTMESSAGEHEADER); return; } if (TotalRows == 0) { MessageBox.Show(Resources.frmSalesOrder_OnbtnSaveClick_Please_select_jewels_, Constants.ALERTMESSAGEHEADER); return; } var request = new SalesTransactionRequest(); var lookup = new TransactionLookup { ContactName = txtContactName.Text, Remarks = txtRemarks.Text, TransactionPartyRef = ((Customer)cboCustomer.SelectedItem).CustomersCode, TransactionType = TransactionType.SalesInTransaction }; var tranLookupKey = Guid.NewGuid(); foreach (DataGridViewRow row in dgvJewel.Rows) { var chk = (DataGridViewCheckBoxCell)row.Cells[_columnselectchk.ToLowerCaseColumnName()]; if ((bool)chk.Value) { var trno = (int)row.Cells[_columnselectchk.ToLowerCaseColumnName()].Tag; var jewelTran = _transactionServices.GetJewelTransactionsById(trno); var tran = new JewelTransaction { JewelTransactionRowId = tranLookupKey, TransactionType = TransactionType.SalesInTransaction, CostingDetail = jewelTran.CostingDetail, CertificateNumber = jewelTran.CertificateNumber, CStonePcs = jewelTran.CStonePcs, CStoneWeight = jewelTran.CStoneWeight, DesignCode = jewelTran.DesignCode, JewelNumber = jewelTran.JewelNumber, JewelType = jewelTran.JewelType, KT = jewelTran.KT, MetalColor = jewelTran.MetalColor, JewelItemCategory = jewelTran.JewelItemCategory, MetalWeight = jewelTran.MetalWeight, Properties = jewelTran.Properties, StonePcs = jewelTran.StonePcs, StoneWeight = jewelTran.StoneWeight, TotalAmount = jewelTran.TotalAmount, TotalWeight = jewelTran.TotalWeight, TransactionDate = dtSalesDt.Value, TransactionPartyRef = ((Customer)cboCustomer.SelectedItem).CustomersCode, }; lookup.JewelTransactions.Add(tran); } } request.TransactionLookup = lookup; var invoice = new TransactionInvoices { InvoiceDate = dtSalesDt.Value, NetAmount = Convert.ToDecimal(txtTotalAmount.Text), PaymentTerm = cboPaymentTerm.SelectedText, Remarks = txtRemarks.Text }; var customer = cboCustomer.SelectedValue as Customer; invoice.TransactionPartyRef = customer.CustomersCode; request.TransactionInvoice = invoice; var response = _transactionServices.CreateSalesTransaction(request); if (response.IsValid == false) { MessageBox.Show(response.AllErrors.ErrorMessageString(), Constants.ALERTMESSAGEHEADER); return; } btnGo.Enabled = false; btnSave.Enabled = false; btnInvoice.Enabled = true; ShowManagedModalForm <frmCostingConfirmation>(Owner as frmMDIParent, response.TransactionLookup); }