Estimate Report
Purpose
This is the primary estimate or quotation report.
Information Structure
The report shows, in logical hierarchy, information from the following different sources and the table the information is contained within:
- The Header Record (TransHeader)
- The Variation of the estimate.
- The [top-level] Line Items and Child Line Items[TransDetail].This is the “detail” level of the report.
- The Company record (Account).
- The company's Payment Terms (PaymentTerms).
- The Primary Contact record (AccountContact).
- The Salesperson for the estimate (Employee).
- The Employee who Entered the Estimate (Employee).
- The Billing Address for the Estimate (Address).
- The Division Name for the Estimate (EmployeeGroup).
Tables Accessed
Purpose | Table | Linkage Information | Filter Information | ||||
Estimate Level | TransHeader | TransHeaderIDparam | |||||
Estimate Variation | TransVariation | TransVariation.TransHeaderID TransHeader.ID | |||||
Line Item Level | TransDetail | TransDetail.VariationID TransVariation.ID | (TransDetail.ParentClassTypeID 10400 or ShowChildItemsTrue) |
||||
Customer Info | Account | Left Join Account.ID TransHeader.AccountID | |||||
Contact Info | AccountContact | Left JoinAccountContact.ID TransHeader.ContactID | |||||
Billing Address | Address as Billing Address | Left Join BillingAddress.ID TransHeader.InvoiceAddressID | |||||
Payment Terms | PaymentTerms | Left Join PaymentTerms.ID Account.PaymentTermsID | |||||
Salesperson | Employee as Salesperson | Left Join Salesperson.ID TransHeader.Salesperson1ID | |||||
Entered By | Employee as EnteredBy | Left Join EnteredBy.ID TransHeader.EnteredByID | |||||
Dvision | EmployeeGroup as Division | Left Join Division.ID TransHeader.DivisionID |
Notes: TransDetail records includes both parent and child items.Parent Items are always shown.Child Items are only shown when the appropriate parameter is set.Top Level Line Items have a ParentClassTypeID 10400 (variations).Child Items have a ParentClassTypeID 10100 (line items).
Important Data Fields
||Item || Field || Notes ||
Estimate Number | TransHeader.EstimateNumber | ||||
Variation Name | TransVariation.VariationName | Suppress display if only one variation | |||
Line Item Description | TransDetail.Description | ||||
Product | TransDetail.GoodsItemCode | ||||
Quantity | TransDetail.Quantity | ||||
Line Item Description | TransDetail.HTMLShortFormat | This must be formatted as HTML in Crystal Reports and set to auto-expand |
|||
Line Item Subtotal | TransDetail.SubTotalPrice or TransDetail.MeandSonSubTotalPrice | If suppressing child items, use the MeAndSonSubtTotalPrice, otherwise display the SubTotalPrice |
|||
Line Item Number | TransDetail.LineItemNumber | ||||
Estimate Created Date | TransHeader.CreatedDate | ||||
Company Name | Account.CompanyName | ||||
Salesperson | Employee.FirstName+“”+ Employee.LastName | ||||
Group By
The following group by options should be supported:
||Description ||Level ||Optional ||Group ID field ||Group Display Field ||Notes ||
Estimate | 1 | No | TransHeader.ID | TransHeader.EstimateNumber | |||||||
Variation | 2 | No | TransVariation.ID | TransVariation.VariationName |
Sort Options
The data within a group will always been sorted by the non-optional fields below and (if present) the user is given options to sort by the other fields.
||Description ||Sort Text ||Level ||Optional ||Notes ||
Estimate | TransHeader.EstimateNumber | 1 | No | ||||||
Variation | TransVariation.VariationName | 2 | No | If only one variation, suppress the displaying of the variation name |
|||||
Line Item | TransDetail.LineItemNumber | 3 | No |
There are no user defined sort of options in this report.
User Filter Options
The following options need to be implemented to filter the data and/or provide information to reconfigure the report display.
||Description ||Parameter Name ||Default ||Data Filter ||Notes ||
Show Child Line Items | False | (TransDetail.ParentClassTypeID 10400 or ShowChildItemsTrue) | Used to include child line items. Top level items have variations (10400) as their parent items. Note:If Child Line Items are not shown, the line item must show TransDetail.MeandSonsSubTotalPrice, otherwise it displays the TransDetail.SubTotalPrice |
||||||
Show Line Item Totals | True | n/a | Hide or Display the MeAndSonSubTotalPrice or the SubTotalPrice on the individual line item. | ||||||
Show Unit Price | True | n/a | Hide or Display the unit price (MeAndSonSubTotalPrice/Quantity or SubTotalPrice/Quantity) for each line item. Note: You must check for Quantity0 and avoid division by zero. Also if Quantity0, display “n/a” as the unit price for that line. | ||||||
Show Deposit Amount | True | n/a | Hide or Display the Deposit Required text at the bottom of the estimate | ||||||
Show Payment Terms | True | n/a | Hide of Display the Payment Terms at the bottom of the estimate | ||||||
Hide Line Item Description | True | n/a | Hide or Display the HTML Line item description | ||||||
Show Notes | True | n/a | Hide or Display the TransHeader.Notes at the bottom of the estimate | ||||||
Show Entered By | True | n/a | Hide or Display the Entered By Information | ||||||
Show Tax Exemption ID | True | n/a | Hide or Display the customers tax exemption information. Account.TaxNumber and Account.TaxNumberExpDate if not null. Note:if TaxNumber is null, do not display date either. | ||||||
Show Store Tax ID | True | n/a | Hide or Display the Store's Tax Exemption ID at the top of the estimate |
Summary Fields
There are no summary fields for this report.
Export
The TransDetail data should export into clean comma-delimited/Excel data.
Test Cases
Fields in Current Report
The current estimate SQL returns the following fields (in no particular order):
TransHeader.ID,TransDetail.LineItemIndex, Account.CompanyName, TransDetail.SubTotalPrice,TransDetail.UnitParamName, TransDetail.UnitParamValue, Contact.FirstName,Contact.LastName, TransDetail.ParentClassTypeID, Contact.Position,TransHeader.EstimateCreatedDate, TransDetail.LineItemNumber,TransVariation.SortIndex, TransVariation.VariationName,TransDetail.VariationID, TransHeader.TaxNumber, Salesperson.FirstName,Salesperson.LastName, Contact.EmailAddress, Salesperson.EmailAddress,TransHeader.PONumber, TransVariation.TotalPrice, TransVariation.TaxesPrice,TransVariation.SubTotalPrice, TransDetail.MeAndSonsSubTotalPrice,TransVariation.DiscountPrice, TransDetail.Description,Salesperson.PrimaryNumber, Salesperson.SecondaryNumber, Salesperson.PriNumberTypeText,Salesperson.SecNumberTypeText, Contact.PrimaryNumber,Contact.PriNumberTypeText, Account.PrimaryNumber, Account.PriNumberTypeText,Contact.SecondaryNumber, Contact.SecNumberTypeText, Account.SecondaryNumber,Account.SecNumberTypeText, TransHeader.EstimateNumber,InvoiceAddress.StreetAddress1, InvoiceAddress.StreetAddress2,InvoiceAddress.City, InvoiceAddress.State, InvoiceAddress.PostalCode,EnteredBy.FirstName, EnteredBy.LastName, TransHeader.TaxesPrice,TransDetail.ImageParamID, TransDetail.ImageParamClassTypeID, TransDetail.ID,CustomerGoodsItem.PrintAs, CustomerGoodsItem.ItemName,TransHeader.DiscountPrice, TransDetail.MeAndSonsDiscountPrice,TransDetail.DiscountPrice, TransHeader.OrderNotes,TransHeader.EstimateGreeting, TransHeader.Description,TransDetailGraphic.DetailImage, TransDetail.HTMLShortFormat,PaymentTerms.MessageText