Beispiel #1
0
    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();
    }
Beispiel #2
0
    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> &nbsp;{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());
    }
Beispiel #3
0
 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);
 }
Beispiel #4
0
    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();
    }