public static void DeletePricingLine(int ID) { OMMDataContext dataContext = new OMMDataContext(); QuotationPricingLine qPricingLine = new QuotationPricingLine(); qPricingLine = dataContext.QuotationPricingLines.SingleOrDefault(P => P.ID == ID); dataContext.QuotationPricingLines.DeleteOnSubmit(qPricingLine); dataContext.SubmitChanges(); }
protected String GetQuotationPricingList(Quotation quotation) { StringBuilder sb = new StringBuilder(10); sb.Append("<b>Item Details:</b> <br/>"); if (quotation.QuotationPricingLines != null && quotation.QuotationPricingLines.Count > 0) { sb.Append("<table class='GridView' cellpadding='3' cellspacing='0' style='width:570px;'>"); sb.Append(" <colgroup>"); sb.Append(" <col style='width:10%;' />"); sb.Append(" <col/>"); sb.Append(" <col style='width:14%;' />"); sb.Append(" <col style='width:12%;' />"); sb.Append(" <col style='width:10%;' />"); sb.Append(" <col style='width:10%;' />"); sb.Append(" </colgroup>"); sb.Append("<tr>"); sb.Append(" <th style='text-align:center;'>Item</th><th>Description</th><th>Pricing Type</th><th style='text-align:right;'>Unit Price</th><th style='text-align:center;'>Quantity</th><th style='text-align:right;'>Price</th>"); sb.Append("</tr>"); String currencySymbol = quotation.Currency == null ? String.Empty : quotation.Currency.ShortCode.Trim(); decimal totalPrice = 0; for (int i = 0; i < quotation.QuotationPricingLines.Count; i++) { QuotationPricingLine pricingLine = quotation.QuotationPricingLines[i]; decimal price = pricingLine.UnitPrice.GetValueOrDefault() * pricingLine.Quantity.GetValueOrDefault(); sb.AppendFormat("<tr class='{0}'>", i % 2 == 0 ? "OddRowListing" : "EvenRowListing"); //sb.Append("<tr>"); sb.AppendFormat(" <td style='text-align:center;'>{0}</td>", pricingLine.Item.IsNullOrEmpty() ? "NA" : pricingLine.Item.HtmlEncode()); sb.AppendFormat(" <td>{0}</td>", pricingLine.Description.IsNullOrEmpty() ? "NA" : WebUtil.FormatText(pricingLine.Description)); sb.AppendFormat(" <td>{0}</td>", pricingLine.QuotationPricingType == null ? "NA" : pricingLine.QuotationPricingType.Name); sb.AppendFormat(" <td style='text-align:right;'>{0}{1}</td>", currencySymbol, String.Format(AppConstants.ValueOf.DECIMAL_FORMAT, pricingLine.UnitPrice.GetValueOrDefault())); sb.AppendFormat(" <td style='text-align:center;'>{0}</td>", pricingLine.Quantity.GetValueOrDefault()); sb.AppendFormat(" <td style='text-align:right;'>{0}{1}</td>", currencySymbol, String.Format(AppConstants.ValueOf.DECIMAL_FORMAT, price)); //sb.AppendFormat(" <td style='text-align:center;'><a href='javascript:void(0);' onclick='LoadPricingForEdit(' + i + ')'>Edit</a></td>'; sb.Append("</tr>"); totalPrice += price; } sb.Append("<tr>"); sb.AppendFormat(" <td colspan='6' style='text-align:right;'><b>Total Price:</b> {0}{1}</td>", currencySymbol, String.Format(AppConstants.ValueOf.DECIMAL_FORMAT, totalPrice)); //sb.Append(" <td></td>"); sb.Append("</tr>"); sb.Append("</table>"); } else { sb.Append("NA <br/>"); } return(sb.ToString()); }
private static QuotationPricingLine PreparePricingLineItem(App.CustomModels.CustomQuotationPricingLine pricing, int quotationID, QuotationPricingLine lineItem) { //QuotationPricingLine lineItem = new QuotationPricingLine(); lineItem.QuotationID = quotationID; lineItem.Description = pricing.Description; lineItem.Item = pricing.Item; lineItem.PricingTypeID = pricing.PricingTypeID; lineItem.Quantity = pricing.Quantity; //lineItem.QuotationID = pricing.QuotationID; lineItem.UnitPrice = pricing.UnitPrice; return(lineItem); }
private static void ProcessAndSaveQuotation(Quotation quotation, IList <App.CustomModels.CustomQuotationPricingLine> pricingLineItems, OMMDataContext dataContext) { Enquiry enquiry = dataContext.Enquiries.SingleOrDefault(E => E.ID == quotation.EnquiryID); ///Enquiry Section if (quotation.ID == 0) { enquiry.StatusID = App.CustomModels.EnquiryStatus.Quoted; dataContext.Quotations.InsertOnSubmit(quotation); } else if (quotation.StatusID == App.CustomModels.QuotationStatus.Unsuccessful)// 3) { enquiry.StatusID = App.CustomModels.EnquiryStatus.Closed; } else if (quotation.StatusID == App.CustomModels.QuotationStatus.Successful) { enquiry.StatusID = App.CustomModels.EnquiryStatus.Closed; } else if (quotation.StatusID == App.CustomModels.QuotationStatus.ReQquoteRequested) { //TODO: Add Copy Function. Will be found in the Win App at ///QuotationDataset.cs. Line 591 } ///QuotationPricingLine Section if (pricingLineItems != null && pricingLineItems.Count > 0) { ///If in Edit Mode Delete existing data first then insert new ones //TODO: We will need to change it to work in edit mode. //if (quotation.ID > 0) // quotation.QuotationPricingLines.Clear(); foreach (App.CustomModels.CustomQuotationPricingLine pricing in pricingLineItems) { if (pricing.ID > 0) { ///For Edit QuotationPricingLine linqPricing = dataContext.QuotationPricingLines.SingleOrDefault(P => P.ID == pricing.ID); ///Map Objects PreparePricingLineItem(pricing, quotation.ID, linqPricing); } else { quotation.QuotationPricingLines.Add(PreparePricingLineItem(pricing, quotation.ID, new QuotationPricingLine())); } } } ///Project Section ///TODO: Could not found the code that how it is bind to the UI while creating quotation //Project project = new Project(); //if (project.ID == 0) //{ // project.CreatedByUserID = SessionCache.CurrentUser.ID; // project.CreatedByUsername = SessionCache.CurrentUser.UserName; // project.CreatedOn = DateTime.Now; // project.StatusID = App.CustomModels.ProjectStatus.InProgress; // project.Number = dataContext.GenerateNewProjectNumber(); //} //project.ChangedByUserID = SessionCache.CurrentUser.ID; //project.ChangedByUsername = SessionCache.CurrentUser.UserName; //project.ChangedOn = DateTime.Now; //project.StartDate = DateTime.Now; //project.Description = quotation.ScopeOfWork; //project.Name = enquiry.EnguirySubject; //quotation.Projects.Add(project); //enquiry.Quotations.Add(quotation); dataContext.SubmitChanges(); }