The Process of Meter Reading and Invoicing¶
This chapter deals with the basic procedure of performing readings of Meter statuses and "Pre-Sale" and "Back-Sale" invoicing procedures.
Meter and Contract Function Status¶
Let us suppose, as an example, that we have a group of contracts that are similarly set up and will be processed together. Each contract has a link to a "Service Item" with at least one Meter, which is going to have its reading taken. According to the contracts, Pre-Sale invoices for functions are periodically issued, balancing is done once every three months. To slightly simplify the case, the current start of invoicing will be for the sixth period, which with a monthly processing is June. Let us also suppose that invoices have previously been issued, but there are no open entries for the previous Back-Sale. We can display open function entries from the functions list, by selecting Open Entries, which should not be open on any entry from the previous period.
Similarly, we can check the status of Meter entries. Clicking the Meter button and selecting Ledger Entries we can display the relevant readings.
Movements in Meter readings can also be displayed on the Service Item card.
Generating Pre-Sale Invoices¶
Let us now make the first step in the process - a Pre-Sale invoicing test for a group of contracts for the sixth period. We will run the Contract Test Invoice batch in Periodic Activities.
We will add the filters Service Contract Header or Contract Function. In the Options tab, we will set up the parameters necessary for running the batch. Enter the working date in the Generation Date field (we expect a day in June) and select the option Pre-Sale; the other options can remain switched off. Back-Sale will not be generated, because we are at the beginning of the period, Sub-Contracts Separately enables generating an invoice for each sub-contract separately, and Skip Empty Contracts should not be switched on, especially not at the beginning, to be able to check the reasons why some contracts have not had their documents generated.
Note: the type of generated invoice - service/sales is based on setup in Smart Service Setup.
The report is run in the following modes:
-
Real: the process generates invoices and reports;
-
Test: the process generates only reports;
-
Errors: the process generates only a report containing errors.
According to the type selected, a process is started, in which a report is created containing information about opening values and ending calculation values.
Error reports display two types of messages:
-
Error - apart from displaying the errors it stops generating a document for the relevant contract and function;
-
Warning - this message warns of possible problems, but it does not stop generating a document.
The tests are done for each of the defined contract functions; therefore they may be repeated several times for the same contract. If an amount is displayed on a document, then in the real invoicing process this amount will be entered on the invoice line.
If we are satisfied with the results of the test protocol, we can run the invoice-generating batch by selecting Contract Generate Invoice without the test option. The result is similar to the test batch, invoices will be generated for contracts having no errors. The invoices can be displayed from the contract card, option Document list.
Or is possible to see numbers of generated lines or posted in the information pane.
Both posted and unposted documents are shown and each one can be displayed.
In case of a large number of invoices, we recommend posting them in bulk using a batch, which can be found on an invoice, option "Post Batch", or from "NESS" - "Periodic Activities".
We can check on contract function entries that the invoice generating process has been successfully finished. The invoice generating process is repeated for each successive month.
Reading Meter Journal Units¶
During one period of Meter reading, we expect that there will be one or more meter readings, some of which may be connected with a servicing job. Such readings can be considered irregular but they are appropriate to be part of the meter reading history.
The basic method of recording meter readings is using the "Meter Journal" available from the menu.
In the "Meter Journal" by using an appropriate "Batch name" we select the required number series for the entries or the "Reason Code" for the type of movement.
In the journal lines we then enter movements connected, according to the type, with Item/Resource/Service Item and the relevant card number, i.e. Source No.. Enter the specific meter code in the "Meter Code" field and the following dates:
-
Posting Date: the posting date or the date of recording the entry in NA;
-
Reading Date: actual date of reading the equipment Meter;
-
Entry Date: date within the period to which the reading relates.
The "Entry Type" field has the following options:
-
Reading: most frequent entry type, Meter reading;
-
Estimate Reading: estimated reading, e.g. if it is not currently possible to obtain the Meter reading, but its value is necessary for invoicing;
-
Free Qty: this represents entries, which increase the Meter status, but are not charged to the customer;
-
Reset: used to change the status of a Meter; the difference between the previous and the new status is not recorded;
-
Correction: enables to enter a correction of a reading of the entry in the Entry No. field. The two readings will be linked through a reference number, the attribute Available is switched off and the corrected entry will not be part of some calculations.
To record a Meter reading it is necessary to enter a value in the Meter State or Quantity fields, and in the field Unit of Measure Code. Meter State represents the final status of the Meter being read. The quantity represents the difference compared to the last Meter status reading. Both fields have their values shown in the relevant unit of measure.
The Correct-to Entry field can be filled in when correcting an entry for a Meter.
Once the journal lines have been properly filled in, the journal is posted by selecting Post under the Posting button. Other options are Post a Print and displaying meter entries under the Source Meter button. second level will produce a confirmation message and it is necessary to enter the password which has been defined for Smart Service Setup For minimizing user errors two types of control are added. There are two percentage levels fields defined in setup. If the first level is exceeded (average value is calculated from the history of reading and recalculated to actual reading day) the system will generate a message to inform the user about a possible mistake. Exceeding the
Functionality Expand Source in Functions button allows the filling in of Meters automatically only based on the Service Item to line or for all lines with Expand all functionality.
The functionality similar to that of a journal can be found with Service Orders; here it is first necessary to post the Meter Journal, only then is it possible to post the service order.
Back-Sale Invoicing¶
This process is not fundamentally different from the Pre-Sale generating process, but Meter readings need to be gathered because Meter status is needed to run the Back-Sale invoicing as precisely as possible.
As the first step, to check the correctness of invoices to be generated, we run the testing batch at the end of the selected period or the start of the subsequent period.
Depending on the results of the testing batch we run the Contract Generate Invoice batch with the option Back-Sale in the dialog window ticked. There is also an option to join the two invoice types "Pre-Sale" and Back-Sale into one generated document. Again, the result can be checked by displaying service ledger entries on relevant contracts.
Note: the type of generated invoice - service/sales is based on setup in Smart Service Setup.
Correcting Reading and Invoicing Entries¶
If an error is found the tools such as a credit memo, Meter Journal, and Function Journal should be used. It is not possible to generalize the steps to take, to a large extent it will depend on the type of entry to be corrected and entries that were posted afterward.
Correcting a Meter¶
Usually we would use the Meter Journal and the entry type would be Correction. Important information at this stage is, how old the entry being corrected is and whether its modification will influence the invoicing process. If the entry being corrected is the last one, the change is connected to a contract function and will mean a positive or negative movement. A situation may occur when the opening Meter status is higher than the closing status. In that case, we recommend checking the invoices generated.
If we are correcting a Meter entry in a period that has already been posted, then also the relevant documents have to be corrected. In this case, it is not possible to define a general correcting procedure, it will depend on the age of the corrected entry and the number of documents generated since then.
Credit Memo¶
This option should be selected if we want to correct the last generated invoice. The system does not enable to correct a document directly; instead, a credit memo has to be posted, and after that, an invoice generated again for the same period. To create a credit memo, use the standard function for copying a document; after posting the credit memo check the open function entries. The new invoice, which should then be generated, will be based on open function entries.
Function Journal¶
In case we do not want to change a Meter status but only change values of function entries, we can use the Function Journal.
Its basic functionality is in principle similar to the Meter Journal. Depending on what number series we want the entries to have or what Reason Code, we will select the appropriate Batch name.
Fill in the journal lines according to the Contract Type (Quote/Contract) and the relevant Contract No.
Fill in the relevant Function Code and the following dates:
-
Posting Date: the posting date or the date of recording the entry in NA;
-
Entry Date (Period): date within the period to which the reading relates.
The field Entry Type has the following options:
-
Reading: most frequent entry type, function status;
-
Estimate Reading: estimated reading, e.g. if it is not currently possible to obtain the reading, but its value is necessary for invoicing;
-
Free Qty: this represents entries, which increase the Meter status, but are not charged to the customer;
-
Pre-Sale: use this type to enter fixed charge amounts;
-
Back-Sale: use this type for balancing entries.
To enter a Meter status you need to fill in the Quantity field with the Unit of measure code.
Correct-to Meter Entry: a link to the corrected entry;
Applies-from Entry: internal information concerning the reason the entry is posted;
Unit Price: internal field
Amount: internal field
The function journal can also be used to insert a special bonus for a customer. Above all, we are focused on modifications not linked with the relevant Service Item Meter movements.
Functions¶
Service Functions¶
This table consists of a list and basic set-ups of all functions, which can be used in contracts.
Function Journal¶
The "Function Journal" is used to post specific function entries. Its use has already been described in the manual.
Calendars¶
Calendar Template Card¶
The form Calendar Template Card represents the fundamental means to define various calendars. It defines the periods in which invoicing, and balancing is to be carried out.
The field Code should best describe the purpose of the calendar.
The field Type selects the template of the calendar period - the smallest regular invoicing period.
To create template lines use the function Calendar/Edit lines and another form - Calendar Editor.
When you have finished work with the Calendar Editor you can display the activities planned for each regular period as well as the periods included in calculations.
Calendar Editor¶
This form is used to define the invoicing process for a given period. The output from the editor is an actual calendar template or calendar.
The form tabs "General" and "Calendar" are more or less informative. Using the "Options" tab you can change the display of columns and filter according to the type of generated documents.
For each combination of the "Generation Period" and the period number, one of the following actions can be set up:
-
"Pre-Sale": A "Pre-Sale" invoice will be generated; if there are several "Pre-Sale" documents for one period "Generating Period No.", then a fixed charge will be generated for several periods on one invoice.
-
"<Pre-Sale": A "Pre-Sale" invoice will be generated for several periods, on the condition that one "Generating Period No." will have several "Pre-Sale". All fixed charge amounts will be added up into one invoice line.
-
"Back-Sale": A "Back-Sale" invoice will be generated.
-
"Both": Both a "Pre-Sale" and a "Back-Sale" are generated in one period.
-
"<Both": Both a "Pre-Sale" and a "\<Back-Sale" are generated in one period.
-
"Ignore": In the given period no invoicing is done and the period is not included in the calculation for balancing.
-
" ": In the given period no invoicing is done. The period is included in the calculation for future balancing.
Price Update¶
Basic definition tables¶
Function Price Update Groups¶
Function Price Update Groups is possible to connect to Service Function
Function Price Update Methods¶
Second parameter for setup is defined in table Function Price Update Methods
There are generally defined three basic Scope Types
-
Global - unit/amount table is defined for the Price Update Groups
-
Matrix - unit/amount table is defined for every Price Update Group separately
-
Individual - For this defined type is expected individual setup for every Function in contract
-
Setup for Global Scope Type
Price type Unit define coefficients for Prices (Pre-Sale and Back-Sale)
Price type Amount define coefficients for Minimal Amounts (Fixed, Paid-To, Minimal)
Setup for Matrix Scope type. More details are specified in the Price Update tab in Contract Function Card
Price Update Group is automatically set up from Service Function, and it is not editable from this form. Price Update Method is an editable field. This field is possible predefine in the Contract template in the Function card.
Price Update period restricts changes in prices by using Price Update batch for a defined period from the last update date (Price Update Last Date). The next possible update date is Price Update Next Date
Price Update Batch¶
Function Price update batch is started from the Tell Me Function. Click on the icon and enter Function Price Update
On the first page of the batch is possible to define filtering criteria - especially combination of Price Update Method Code and Price Update Group Code.
The second tab from the batch is prepared for date definition. If there is generated price change for some Function, a new line with price rule is created with Starting or if it is defined - with Ending date.
Test modes contain three options:
-
Real - it will create a real update of prices with the report
-
Test - it will create only report - information protocol with results
-
Errors - it will create an Error report from the information protocol
Contract Analyze Report¶
The report for a future calculation is developed. It works only for one concrete machine and it is trying to create scenarios base on the history of the same machine item.
Smart Service Setup¶
The form is used for an aggregate set-up of several parameters in the solution.
References Tab
All the options described below are used in the feature "Consumption Material of a Machine".
Each option also shows the data source to the user, displaying on the service order a filtered item list.
-
Ref. Lookup BOM: from BOM to the item number.
-
Ref. Lookup Item Reference: Definition of an item is on the item card in a manually editable list - Item Reference Line.
-
Ref. Lookup Serv. Component: from components linked to a service item.
-
Ref. Lookup Configuration: from the configurator.
Functions Tab
-
Register Function Changes - enables registering of all changes concerning functions in a log file.
-
One function for Meter - blocks the option of linking one Meter to two functions at the same time.
Orders
-
Warranty Gen. Bus.Post. Group - the system will automatically change G.B.P.G in Service Order if Service Item is in warranty.
-
Warranty Gen. Prod.Post. Group - the system will automatically change G.P.P.G in Service Order if Service Item is in warranty.
-
Secondhand Location - it is a predefined location name for Buy-Back of Item.
Numbering tab
Zero Document Nos., Posted Zero Document Nos., Contract Zero Documents, Service Order Zero Document are number series used for zero documents in connection with the option of creating Zero Documents. A separate number series is recommended.
-
Service Order Zero Document
-
Return Claim Item No's, Return Claim No's, and Issued Return Claim No's are number series used in the module Return Claims, which is part of another section.
Output Contr.Doc.Type the main setup where will be generated invoices.
-
Service Invoice/Cr.Memo
-
Sales Invoice /Cr.Memo
-
Sales Order/Ret. Order
Service Variable Text Setup¶
Lines of a document (an invoice or a credit memo), which are generated from a contract, are automatically filled in using variable default text, which is defined in the given Setup card.
Individual codes are taken from the Standard Text Code table, including placing or indentation of the text. We can distinguish texts that are displayed on a document only at the beginning or end, * Header and * Footer, or in detail up to each function - * Function Code. Each of the specific set-ups includes, above all, the defined text and the displayed value connected to a contract, function, etc. There is a separate definition for Pre-Sale" and Back-Sale.
The actual text to be inserted on a document line is defined in the Standard Text Codes table or, in case of several lines of text, in Extended Text. Variables are defined using the signs #...#. The table of existing codes is included in a separate manual. The user should consider that the length of the text on the generated document, including the inserted text, is limited by the number of characters of the field.
If a text is inserted on invoice lines, we can add or modify the code set-up and immediately display the result of the change by selecting Translate Variables on the sales invoice.
If we want the text to be inserted only if a condition is met, then use an expression {#...#} + text. The compound brackets state a condition, which will not be displayed in the text, and if its value is zero, the text, which continues in the expression after the plus sign, will not be inserted in the invoice line.
This set-up can be applied to prevent zero values or dates; the condition in the expression can also contain another variable. Example: If opening Meter status, then do not show text:
{#TSS#}Meter starting state #TSS#
For invoices generated from a service order, the set-up procedure is similar to documents generated from contracts.
List of possible variables:
Name | ConstValue |
---|---|
Delimiter | # |
ZeroStart | { |
ZeroEnd | } |
Doc_Currency | #DCY# |
Doc_CurrencyFactor | #DCF# |
Doc_CurrencyDate | #DCD# |
DocLine_ZeroAmountQty | #LZQ# |
DocLine_NonZeroAmountQty | #LAQ# |
DocLine_AvgUnitPrice | #LUP# |
DocLine_Amount | #LAM# |
Contr_No | #CNO# |
Contr_Description | #CDE# |
Contr_Name | #CNA# |
Contr_Class | #CCL# |
Contr_Group | #CGR# |
Contr_GroupDescription | #CGD# |
Contr_Currency | #CCY# |
Contr_StartingDate | #CSD# |
Contr_ExpirationDate | #CED# |
Contr_Aggregate_No | #CAN# |
Contr_Aggregate_Group | #CAG# |
ServItem_No | #SNO# |
ServItem_Description | #SDE# |
ServItem_CustomerName | #SCN# |
ServItem_ItemNo | #SIN# |
ServItem_ItemDescription | #SID# |
ServItem_SerNo | #SSE# |
ServItem_ShipToCode | #SSC# |
ServItem_ShipToName | #SSN# |
ServItem_ShipToAddress | #SSA# |
ServItem_ShipToCity | #SST# |
Meter_SourceType | #MST# |
Meter_SourceNo | #MSN# |
Meter_Code | #MCO# |
Meter_Description | #MDE# |
Meter_Language_Description | #MLD# |
Meter_BaseUnitofMeasure | #MBU# |
Meter_SalesUnitOfMeasure | #MSU# |
MeterEntry_StartState | #TSS# |
MeterEntry_EndState | #TES# |
MeterEntry_StartDate | #TSD# |
MeterEntry_EndDate | #TED# |
MeterEntry_ChangedQty | #TCQ# |
Func_Code | #FCO# |
Func_Description | #FDE# |
Func_Language_Description | #FLD# |
Func_BaseUnitOfMeasure | #FBU# |
Func_SalesUnitOfMeasure | #FSU# |
Func_PreSaleGroupCode | #FAG# |
Func_BackSaleGroupCode | #FBG# |
FuncEntry_ReadQty | #ERQ# |
FuncEntry_FreeQty | #EFQ# |
FuncEntry_NotResetQty | #EXQ# |
FuncEntry_PreSaleQty | #EPQ# |
FuncEntry_BackSaleQtyAlready | #EBQ# |
FuncLine_ZeroAmountQty | #UZQ# |
FuncLine_NonZeroAmountQty | #UAQ# |
FuncLine_AvgUnitPrice | #UUP# |
FuncLine_Amount | #UAM# |
FuncCal_PreSalePeriodStartDate | #ASD# |
FuncCal_PreSalePeriodStartName | #ASN# |
FuncCal_PreSalePeriodStartYear | #ASY# |
FuncCal_PreSalePeriodEndDate | #AED# |
FuncCal_PreSalePeriodEndName | #AEN# |
FuncCal_PreSalePeriodEndYear | #AEY# |
FuncCal_PreSaleDocumentList | #BPL# |
FuncCal_BackSPeriodStartDate | #BSD# |
FuncCal_BackSPeriodStartName | #BSN# |
FuncCal_BackSPeriodStartYear | #BSY# |
FuncCal_BackSPeriodEndDate | #BED# |
FuncCal_BackSPeriodEndName | #BEN# |
FuncCal_BackSPeriodEndYear | #BEY# |
ServOrder_No | #ONO# |
ServOrder_OrderType | #OTY# |
ServOrder_OrderTypeDesc | #OTD# |
ServOrder_OrderDate | #OOD# |
ServOrder_StartingDate | #OSD# |
ServOrder_FinishingDate | #OFD# |
RoundString | |
ServItem_ModelCodeTxt: | '#SMC#' |
ServOrder_DescriptionTxt: | '#ODE#'; |
ServOrder_CustomerNoTxt: | '#OCO#'; |
ServOrder_CustomerNameTxt: | '#OCN#'; |
ServOrder_ContactNoTxt: | '#OTO#'; |
ServOrder_ContactNameTxt: | '#OTN#'; |
ServOrder_ShipToCodeTxt: | '#OSC#'; |
ServOrder_ShipToNameTxt: | '#OSN#'; |
ServItemLine_ActiveResourceTxt: | '#IAR#'; |
ServItemLine_FaultReasonCodeTxt: | '#IFC#'; |
ServItemLine_FaultReasonDescTxt: | '#IFD#'; |
ServItemLine_SymptomCodeTxt: | '#ISC#'; |
ServItemLine_SymptomDescTxt: | '#ISD#'; |
ServItemLine_FaultAreaCodeTxt: | '#IAC#'; |
ServItemLine_FaultAreaDescTxt: | '#IAD#'; |
ServItemLine_ResolutionCodeTxt: | '#IRC#'; |
ServItemLine_ResolutionDescTxt: | '#IRD#'; |
ServItemLine_RepairStatusCodeTxt: | '#IRS#'; |
ServOrderLog_RStat_OldCodeTxt: | '#GRX#'; |
ServOrderLog_RStat_NewCodeTxt: | '#GRN#'; |
ServOrderLog_RStat_ChangeDateTxt: | '#GRD#'; |
ServOrderLog_RStat_ChangeTimeTxt: | '#GRT#'; |
PurchOrder_NoTxt: | '#PNO#'; |
PurchOrder_OrderDateTxt: | '#POD#'; |
PurchOrder_PostingDateTxt: | '#PPD#'; |
PurchOrder_DueDateTxt: | '#PDD#'; |
PurchOrder_VendorNoTxt: | '#PVO#'; |
PurchOrder_VendorNameTxt: | '#PVN#'; |
PurchOrder_ContactNoTxt: | '#PCO#'; |
PurchOrder_ContactNameTxt: Label | '#PCN#'; |