<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rmg</id>
	<title>Calidus HUB - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rmg"/>
	<link rel="alternate" type="text/html" href="https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php/Special:Contributions/Rmg"/>
	<updated>2026-07-01T15:00:32Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_338835_KOO-GAP-SCR1_GAP_Scan_Store_Barcode_on_Arrival&amp;diff=3801</id>
		<title>FS 338835 KOO-GAP-SCR1 GAP Scan Store Barcode on Arrival</title>
		<link rel="alternate" type="text/html" href="https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_338835_KOO-GAP-SCR1_GAP_Scan_Store_Barcode_on_Arrival&amp;diff=3801"/>
		<updated>2016-11-04T16:32:49Z</updated>

		<summary type="html">&lt;p&gt;Rmg: v2.0 - Update container BOL number references&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
{{#vardefine:Client|PART}}&lt;br /&gt;
{{#vardefine:ClientName|Knights of Old}}&lt;br /&gt;
{{#vardefine:System|''CALIDUS'' ePOD}}&lt;br /&gt;
{{#vardefine:Doc_Title|GAP Scan Store Barcode on Arrival}}&lt;br /&gt;
{{#vardefine:Version|2.0}}&lt;br /&gt;
{{#vardefine:Date|26th October 2016}}&lt;br /&gt;
{{#vardefine:Reference|338835 KOO-GAP-SCR1}}&lt;br /&gt;
{{#vardefine:Year|2016}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Doc_Title&lt;br /&gt;
|Client={{#var:ClientName}}&lt;br /&gt;
|System={{#var:System}}&lt;br /&gt;
|Title={{#var:Doc_Title}}&lt;br /&gt;
|Reference=FS {{#var:Reference}}&lt;br /&gt;
|Version={{#var:Version}}&lt;br /&gt;
|Date={{#var:Date}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TOC --&amp;gt; &lt;br /&gt;
&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
= Functional Overview  =&lt;br /&gt;
&lt;br /&gt;
== Client Requirement  ==&lt;br /&gt;
As part of the Knights of Old GAP contract, add configuration to allow the driver to scan a store barcode upon arrival to the store.&lt;br /&gt;
&lt;br /&gt;
The GAP contract is owned by KOO, but every part of the process is performed by GAP or 3rd parties.&lt;br /&gt;
&lt;br /&gt;
The GAP warehouse in Rugby loads the trailers by handballing of cartons and creates ASNs in their system. This is likely the full quantity of product required for the week in France. Each carton is uniquely labelled.&lt;br /&gt;
&lt;br /&gt;
A French 3PL TSA goes to the GAP warehouse and collects the trailer and trunks the load to Paris.&lt;br /&gt;
The Paris depot is owned and operated by French 3PL MCE, which unloads the trailer.&lt;br /&gt;
This is updated onto Empirica, KOO's WMS, which is being updated by MCE.&lt;br /&gt;
This initiates an 861 &amp;quot;Arrival Scan at Pooler&amp;quot; message from Empirica to TrueCommerce (an EDI hub) and on to GAP.&lt;br /&gt;
The unloaded cartons are sorted into stores. These store cartons are then palletised.&lt;br /&gt;
These cartons are then loaded onto vehicles, physically scanning each item being loaded.&lt;br /&gt;
This is updated onto Empirica, KOO's WMS, which is being updated by MCE, which generates an 861 &amp;quot;Pooler Outbound Scan from their Facility&amp;quot; message from Empirica to True Commerce and on to GAP.&lt;br /&gt;
Empirica is also updated with a load number and each job is routed onto specific days (fixed route/milk runs) and assigned to a trailer. All cartons for a particular store are loaded onto the same load.&lt;br /&gt;
This also generates messages to ''CALIDUS'' ePOD for the execution of the jobs.&lt;br /&gt;
&lt;br /&gt;
MCE then organises the final leg delivery of the cartons to the GAP stores. There are 3 MCE depots:&lt;br /&gt;
* Paris - 8 devices&lt;br /&gt;
* Lyon - 2 devices&lt;br /&gt;
* Strasbourg - 2 devices.&lt;br /&gt;
The Paris depot trunks to the other two depots, not controlled by C-ePOD.&lt;br /&gt;
&lt;br /&gt;
The driver process is as follows:&lt;br /&gt;
* Log on using a provided user/password and the trailer ID.&lt;br /&gt;
* Complete the jobs in sequence where possible.&lt;br /&gt;
* Start and navigate to the store.&lt;br /&gt;
* Arrive and scan store barcode - these will be unmanned locations.&lt;br /&gt;
* Scan every carton off the vehicle.&lt;br /&gt;
* No signature is required.&lt;br /&gt;
* Cancellation of jobs and cartons is allowed, through a curated list of reason codes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Solution Overview  ==&lt;br /&gt;
As the existing Partnerlink JobShare CSV interface does not support explicit naming of individual containers (cartons), Empirica will send the required loads and jobs to C-ePOD through the OBS C-ePOD XML format, which allows this. This will be sent as an FTP or flat-file transfer of the file, which will be uploaded by C-ePOD - this is standard functionality.&lt;br /&gt;
&lt;br /&gt;
Mapping has been completed on all aspects of the load and jobs and will be documented as a mapping spreadsheet for the purposes of the project. Additional standard interface documentation (e.g. XSDs, sample files, standard specifications) will also be provided.&lt;br /&gt;
&lt;br /&gt;
'''Mapping Notes:'''&lt;br /&gt;
* All MCE depots will be seen as 1 site within C-ePOD - there is no need to split these.&lt;br /&gt;
* The carton ID is 18 digits. This may need to be expanded to 20 alpha-numeric characters. As C-ePOD's Container ID (where this is stored) is 30 characters, this is not an issue.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When the job is completed in C-ePOD, there is no required update back to Empirica. A message will be created from C-ePOD to TrueCommerce, consisting of a formatted 861 message is ANSI X12 format. This is covered elsewhere in a separate specification.&lt;br /&gt;
&lt;br /&gt;
The mobile device process for Store Barcode Scanning will be as follows:&lt;br /&gt;
* After Arrival is pressed, but before scanning starts, the mobile device must show a ''Store Barcode'' screen, to scan a store barcode.&lt;br /&gt;
* The &amp;quot;Store Barcode&amp;quot; field will allow entry through a pop-up keyboard, as well as through the embedded device scanner. A button will be provided for the user to use the camera scanner as a backup.&lt;br /&gt;
* A '''Confirm''' button will be provided. Once the barcode is scanned, the driver will click this button. This will validate the scanned barcode against the Store Number. If they do not match, or the entered barcode value is the wrong format or length, or nothing is entered, the screen will pop up an alert, informing the user that &amp;quot;the store barcode is incorrect - continue anyway?&amp;quot;. The driver will be offered options of '''Yes''' or '''No''', with '''No''' being the default. If '''No''' is clicked, the screen will be re-shown, displaying the Store Barcode field in red border, as it has an error.&lt;br /&gt;
* If '''Yes''' is clicked, or the store barcode matches the store number, the driver will be allowed to continue.&lt;br /&gt;
&lt;br /&gt;
The mobile device process must include:&lt;br /&gt;
* No Deliver All functionality&lt;br /&gt;
* No Clausing&lt;br /&gt;
* No signatures&lt;br /&gt;
* Force container entry&lt;br /&gt;
&lt;br /&gt;
The mobile device will be configured to use a version of the standard Partnerlink style. Note that the image displayed on the login screen will be that configured for the Site, so this may be the KOO or GAP logo, or other if required, with no further development required.&lt;br /&gt;
&lt;br /&gt;
The style will translate the word &amp;quot;Container&amp;quot; to &amp;quot;Carton&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A French language translation file will be created for the mobile device. This is likely to be delivered after the initial go-live. It is further noted that, due to the configurable nature of the labels within the device, this is likely to be an iterative process, and will probably require several releases to ensure that the language file is correctly translated. This is not covered by a specification.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scope  ==&lt;br /&gt;
An implementation of the latest version of the ''CALIDUS'' ePOD application is required for this contract.&lt;br /&gt;
&lt;br /&gt;
This will be a separate instance of ''CALIDUS'' ePOD, hosted on the existing Partnerlink servers. Although this will utilise the Partnerlink servers and database, the application will be distinct and separate and the data will be kept in a separate schema, , to ensure that no issues are generated to the Partnerlink contract.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''CALIDUS'' Portal TTM is not required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The mobile devices that will be used are M3 SM10 devices, with 1D barcode scanners. 12 are required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With respect to the Scan Store Barcode functionality, the following scope is assumed:&lt;br /&gt;
* The barcode scanned by the driver is used purely for validation - this will not be sent back to the server for storing in the database, visible in the Admin console or exported out with any standard job exports. As the Admin console is not likely to be generally used by the operation, and there is no job export other than the bespoke GAP export (which does not include this information), this will not cause an issue.&lt;br /&gt;
* The scanned barcode will not be visible on the device after it is entered. As this is simply used to prevent the driver from arriving before the job begins, this will not cause an issue.&lt;br /&gt;
* The configuration of this screen may not be amended within the ''CALIDUS'' ePOD Admin console at this time - during implementation, the OBSL teams will make any necessary changes to the configuration until this is confirmed as working as expected. Any further modifications will require software support logs to be raised with OBSL, which may then be chargeable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Set-up  =&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites  ==&lt;br /&gt;
&lt;br /&gt;
== Menu Structure  ==&lt;br /&gt;
&lt;br /&gt;
== Data  ==&lt;br /&gt;
A new PreJob UDF will be created for this implementation:&lt;br /&gt;
* Description &amp;quot;Store Barcode&amp;quot;&lt;br /&gt;
* Type: &amp;quot;Pre-Job&amp;quot;&lt;br /&gt;
* Key Type: &amp;quot;Job Group&amp;quot;&lt;br /&gt;
* Key Value: &amp;quot;GAP|GAP&amp;quot;&lt;br /&gt;
* Name: &amp;quot;Store Barcode&amp;quot;&lt;br /&gt;
* Generated UDF:&lt;br /&gt;
    &amp;lt;FORM NAME=&amp;quot;Store Barcode&amp;quot; REQUIRED=&amp;quot;Y&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;FIELD ID=&amp;quot;STORE_BARCODE&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;TEXT&amp;gt;Scan Store Barcode&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
            &amp;lt;FORMAT&amp;gt;T&amp;lt;/FORMAT&amp;gt;&lt;br /&gt;
            &amp;lt;ACTION&amp;gt;B&amp;lt;/ACTION&amp;gt;&lt;br /&gt;
            &amp;lt;REGEXP&amp;gt;DBV:GPS3PL.{7,8}([EPOD_JOB.EPL_CUSTOMER_CODE])&amp;lt;/REGEXP&amp;gt;&lt;br /&gt;
            &amp;lt;REQUIRED&amp;gt;C&amp;lt;/REQUIRED&amp;gt;&lt;br /&gt;
        &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
        &amp;lt;BUTTON CONFIRM=&amp;quot;The store barcode is incorrect - continue anyway?&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;TYPE&amp;gt;C&amp;lt;/TYPE&amp;gt;&lt;br /&gt;
            &amp;lt;TEXT&amp;gt;Confirm&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
        &amp;lt;/BUTTON&amp;gt;&lt;br /&gt;
    &amp;lt;/FORM&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note}} This configuration may not be amended within the ''CALIDUS'' ePOD Admin console at this time - during implementation, the OBSL teams will make any necessary changes to the configuration until this is confirmed as working as expected. Any further modifications will require software support logs to be raised with OBSL, which may then be chargeable.&lt;br /&gt;
&lt;br /&gt;
{{Note}} Trailers will be mapped as Vehicles. These need not be pre-created within ''CALIDUS'' ePOD - these will be created if required when the loads are created.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reason Codes mapped for Job and Detail - no clause codes will be created as they are not required.&lt;br /&gt;
* JOB Cancellation Reason Codes&lt;br /&gt;
** &amp;quot;NA&amp;quot; - &amp;quot;No Access to Store&amp;quot;&lt;br /&gt;
* DETAIL cancellation Reason Codes&lt;br /&gt;
** &amp;quot;01&amp;quot; - &amp;quot;Damaged Carton&amp;quot;&lt;br /&gt;
** &amp;quot;04&amp;quot; - &amp;quot;Quality Problem (e.g. Carton open, missing items)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Site/Job Group Configuration:&lt;br /&gt;
* Deliver All disabled.&lt;br /&gt;
* Clausing disabled.&lt;br /&gt;
* Driver and Customer signatures disabled for collections and deliveries.&lt;br /&gt;
* Force container entry enabled.&lt;br /&gt;
* Capture Arrival times enabled.&lt;br /&gt;
* Consolidation disabled.&lt;br /&gt;
* Generic container POD format should be set.&lt;br /&gt;
* The new KOO GAP style should be set.&lt;br /&gt;
* Container Only Delivery enabled.&lt;br /&gt;
* Scan Errors Intrusive enabled.&lt;br /&gt;
* Scan at Vehicle enabled.&lt;br /&gt;
* Seamless Scanning enabled.&lt;br /&gt;
* Display Job Code set to &amp;quot;Job Code&amp;quot;.&lt;br /&gt;
* User Notes enabled.&lt;br /&gt;
* Import Create Standing Data enabled.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Functional Description  =&lt;br /&gt;
&lt;br /&gt;
== Data Import ==&lt;br /&gt;
Mapping has been completed on all aspects of the load and jobs and will be documented as a mapping spreadsheet for the purposes of the project. Additional standard interface documentation (e.g. XSDs, sample files, standard specifications) will also be provided.&lt;br /&gt;
&lt;br /&gt;
'''Mapping Notes:'''&lt;br /&gt;
* All MCE depots will be seen as 1 site within C-ePOD - there is no need to split these. It is assumed this will be &amp;quot;GAP&amp;quot;.&lt;br /&gt;
* The carton ID is 18 digits. This may need to be expanded to 20 alpha-numeric characters. As C-ePOD's Container ID (where this is stored) is 30 characters, this is not an issue.&lt;br /&gt;
&lt;br /&gt;
Load:&lt;br /&gt;
* Load ID - From the entered load ID.&lt;br /&gt;
* Start Planned Date - Delivery Date&lt;br /&gt;
* Start Planned Time - 00000000&lt;br /&gt;
* Assigned Vehicle - the trailer ID&lt;br /&gt;
Job:&lt;br /&gt;
* Job Code - Empirica BOL&lt;br /&gt;
* Job Type - &amp;quot;D&amp;quot; for delivery&lt;br /&gt;
* Job Group - fixed text, assumed to be &amp;quot;GAP&amp;quot;&lt;br /&gt;
* Start Planned Date - Delivery Date&lt;br /&gt;
* Start Planned Time - if available, set to the defined delivery time, else &amp;quot;0900&amp;quot;&lt;br /&gt;
* End Planned Date/Time - If no planned start time is available, set these to the Delivery Date and &amp;quot;1700&amp;quot; respectively, or end end windows time.&lt;br /&gt;
* Customer Code - the GAP Store code, fully zero-filled. For example, &amp;quot;012345&amp;quot;&lt;br /&gt;
* Name/Address/Post Code - the store delivery address.&lt;br /&gt;
* Telephone - from the store address&lt;br /&gt;
* Sequence - Drop Number&lt;br /&gt;
Containers (Cartons)&lt;br /&gt;
* Container ID - the carton number, fully-qualified. So, this is an 18-digit number, but is qualified with a 2-digit prefix of &amp;quot;00&amp;quot;. So this should be included, as this is matched when scanning carton barcodes.&lt;br /&gt;
* Package Code - &amp;quot;CTN&amp;quot;&lt;br /&gt;
* Package Description - &amp;quot;CARTON&amp;quot;&lt;br /&gt;
* Long Description - GAP BOL #&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logon ==&lt;br /&gt;
It is expected that a device style will be created based on the Partnerlink style. The logo will be taken from the logo uploaded against the site, and is likely to be the KOO or GAP logo. Note that the screen-shots shown in this document are the standard Partnerlink style - this can be modified before development begins. Note that the current style uses the word &amp;quot;Pallet&amp;quot; in preference to &amp;quot;Container&amp;quot; or &amp;quot;Carton&amp;quot; - this will be changed in the final style. The log-in screen-shots below show first the Partnerlink style, then the intended GAP style.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=310px heights=400px perrow=3&amp;gt;&lt;br /&gt;
File:FS_338835_PDA_Login1.png|''Log In''&lt;br /&gt;
File:FS_338835_PDA_Login2.png|''Log In - updated style''&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The drivers will be provided a user-name and password, and the loads will be allocated to specific vehicles, ensuring that they can complete only the loads required. The users and their passwords must be configured within ''CALIDUS'' ePOD. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A driver will log on to a device using the provided user name, password and vehicle. The vehicle can be selected from a list, and will be a list of trailers. The device will remember the last used User name and Vehicle, but will always require that the password is entered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note}} Vehicle checks are not required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Job List ==&lt;br /&gt;
When log-in is complete, the assigned work-list will be downloaded onto the device, showing all the jobs in sequence on a Job List screen. If no workload has been assigned to the vehicle, the device will tell the user that there is no work available. The driver can exit, or try to download again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=310px heights=400px perrow=3&amp;gt;&lt;br /&gt;
File:FS_338835_PDA_JobList2.png|''Job List''&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The device will show a list of the jobs on this load, showing:&lt;br /&gt;
*  Job Reference - configured to show the Job Code (KOO BOL Number)&lt;br /&gt;
*  Job Type - Collection/Delivery&lt;br /&gt;
*  Customer Name&lt;br /&gt;
*  Postcode&lt;br /&gt;
*  Planned Date/Time - {{Note}} Unlike the screen-shot above, this will be the full date and time, including the year.&lt;br /&gt;
*  Carton Count (the sub-totalled quantity of all items on the job) &lt;br /&gt;
&lt;br /&gt;
The screen will display the status of the jobs on the load through a coloured background, as follows:&lt;br /&gt;
* Red - Cancelled&lt;br /&gt;
* Green - Completed&lt;br /&gt;
* Blue - Completed (with amendments)&lt;br /&gt;
* Yellow - In Progress&lt;br /&gt;
* None - Pending/Incomplete&lt;br /&gt;
Note that this status is also displayed prominently in the Job Details screen (following).&lt;br /&gt;
&lt;br /&gt;
The jobs are displayed in the sequence in which they should be completed, with the first job selected. However, the jobs can be viewed in any sequence by clicking the line of the job to be completed - the device will display the Job Details page.&lt;br /&gt;
&lt;br /&gt;
The '''Menu''' button can be used here to allow the following options:&lt;br /&gt;
*    ''Refresh Load'' - Refresh the Load/Worklist&lt;br /&gt;
*    ''Show All / Outstanding Jobs'' - Toggle between showing all or only incomplete jobs.&lt;br /&gt;
*    ''Log Out'' - Log out of the system and return to the log-in screen.&lt;br /&gt;
*    '' Change Vehicle'' - Return to the log-in screen to change only the vehicle.&lt;br /&gt;
*    ''Load Information'' - display any load information. This is also accessible from the Information button on the title bar.&lt;br /&gt;
*    ''Vehicle Checks'' - perform ad hoc vehicle defect checks, if configured.&lt;br /&gt;
*    ''Cancel Jobs'' - select jobs to cancel from a list.&lt;br /&gt;
Some support information can also be accessed from this menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The system can be configured to control allowing the drivers' ability to complete jobs out of sequence, as follows:&lt;br /&gt;
* No re-sequencing of jobs  - this is not allowed by the driver - the jobs must be completed in the order planned, or cancelled if they cannot be completed. &lt;br /&gt;
* Confirm re-sequencing allowed - this requests the user to confirm first.&lt;br /&gt;
* Always allowed - no confirmation.&lt;br /&gt;
This configuration will be decided at the point of implementation, but is expected that initially re-sequencing will be allowed with a warning.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If any jobs have been added to a Load while the load is in progress, the ''Refresh'' option (which also is timed to happen on a regular 5 minute interval) will get the details of the new job and add it to the job list, showing the user a summary of the job(s) added. This functionality will also pick up any amendments to the jobs if, for example, if quantities have been amended, products added, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jobs can be cancelled by the driver at this time, by long-pressing on the job in the table and choosing ''Cancel'' from the pop-up options. The user will be prompted to enter a reason why this job is being cancelled, and optionally take a picture. If a job is confirmed cancelled, the device will show the Job List again with the cancelled job removed from the list. It is expected that there will a single reason code to cancel jobs, to account for the scenario whereby jobs cannot be delivered due to failed access to the site. However, the reason codes used for job cancellation are controlled by the system and may be modified or added to at any time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note}} The system may be configured for Image Capture in the following ways:&lt;br /&gt;
* Force Image Capture at all times when cancelling or changing quantity (i.e. at Job and Detail level)&lt;br /&gt;
* Optional Image Capture at all times.&lt;br /&gt;
It is expected that Photo at exception and at Job completion will be allowed but optional.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Job Details ==&lt;br /&gt;
Selecting a job from the Job List will show the user the job report and customer contact details (on a Job Details screen). The user can back out of the selected Job and view any Job on the list. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=310px heights=400px perrow=3&amp;gt;&lt;br /&gt;
File:FS_338835_PDA_JobDetail3.png|''Job Details''&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The screen has several Tabs, showing:&lt;br /&gt;
*    The Job Type (Collection, Delivery, Service)&lt;br /&gt;
*    The customer details (Customer Code, Name, Address and Postcode)&lt;br /&gt;
*    The contact information (Contact name and number)&lt;br /&gt;
*    The Instructions for the job&lt;br /&gt;
Clicking on the tabs will display the information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note}} The screen allows the driver to contact the customer (through either text or phone) by clicking on the provided buttons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cancelling a Job ===&lt;br /&gt;
The driver can cancel jobs by clicking the '''Cancel Job''' button on the job detail screen. &lt;br /&gt;
&lt;br /&gt;
This will call the cancellation screen where the user will be prompted to enter a reason why this job is being cancelled. The cancellation screen also allows the user to take a picture. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=310px heights=400px perrow=3&amp;gt;&lt;br /&gt;
File:FS_338835_PDA_JobDetail4.png|''Job Cancellation''&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note}} Whether or not a picture is required for a job cancellation is controlled by the 'Image Required for Cancellations' setting against the job group for the job. If this is set to 'All' or 'Job Only' then a picture must be taken to cancel a job, otherwise the picture is optional.&lt;br /&gt;
&lt;br /&gt;
If a job is confirmed cancelled, the device will show the Job List again with the cancelled job removed from the list.&lt;br /&gt;
&lt;br /&gt;
{{Note}} This job cancellation screen can also be called from the job list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Starting/Navigating ===&lt;br /&gt;
When the driver has selected their Job, they can choose the Job with the '''Start Job''' button. &lt;br /&gt;
&lt;br /&gt;
Delivery instructions are not expected to be provided through the interface. However, if there have been instructions provided on the Job and the driver has not already switched to this tab to view the instructions, the device will switch to the Instructions tab, to force the user to see the instructions before starting.&lt;br /&gt;
&lt;br /&gt;
{{Note}} It is expected that re-sequencing of jobs is initially to be allowed with a warning. If a job is attempted to be started out of sequence, the user will be told this at this point and allowed to confirm.&lt;br /&gt;
&lt;br /&gt;
When clicking this button to start or arrive at the job, the application performs a check whether the job has been changed since it was loaded on the device, to ensure that the latest data is on the device for the job. If there are changes, the driver will be informed and the screen will refresh.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=310px heights=400px perrow=3&amp;gt;&lt;br /&gt;
File:FS_338835_PDA_JobDetail5.png|''Arrive Job''&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When a Job is successfully started, this will take the Job to 'In Progress' status, at this point the 'Start Job' button will change to an 'Arrive Job' button and the navigation icon is shown. When the navigation icon is clicked on the device will use a navigation application installed on the device to navigate to the destination using any installed navigation application. The destination address will be entered in the device and will allow immediate navigation to the address.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Arriving ===&lt;br /&gt;
Once arrived at the destination, the driver will then indicate arrival by clicking the '''Arrive Job''' button. The mobile device will be configured to display the Store Barcode scan screen at this point.&lt;br /&gt;
&lt;br /&gt;
The Store Barcode screen will be configured through User-definable fields, with a title of &amp;quot;Store Barcode&amp;quot;, a &amp;quot;Scan Store Barcode&amp;quot; text field with a barcode button, and a '''Confirm''' button.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=310px heights=400px perrow=3&amp;gt;&lt;br /&gt;
File:FS_338835_PDA_PreJob1.png|''Store Barcode Scanning''&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The screen will be configured to allow the use of the mobile device's built-in scanner - the text field will be highlighted and ready for input, and the on-screen keyboard will not be shown.&lt;br /&gt;
&lt;br /&gt;
The driver will scan the store barcode, an example of which is shown below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=310px heights=400px perrow=3&amp;gt;&lt;br /&gt;
File:FS_338835_Store_Barcode.png|''Store Barcode''&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the barcode cannot be scanned using the internal scanner, the app's camera scanner may be used by pressing the Barcode action button against the field. &lt;br /&gt;
&lt;br /&gt;
If the barcode cannot be scanned at all, the text from the barcode may be manually keyed into the text field, using the on-screen keyboard, activated by clicking the field.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The driver will then click the '''Confirm''' button. The device will compare the store barcode text entry to the configuration of the barcode contents. This is expected to be:&lt;br /&gt;
* &amp;quot;GPS3PL&amp;quot;&lt;br /&gt;
* 7 or 8 intervening characters&lt;br /&gt;
* The Store Number&lt;br /&gt;
e.g. &amp;quot;GPS3PL 000000001234&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If this entry does not match this pattern, the device will highlight this by displaying a pop-up message:&lt;br /&gt;
* &amp;quot;The store barcode is incorrect - continue anyway?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=310px heights=400px perrow=3&amp;gt;&lt;br /&gt;
File:FS_338835_PDA_PreJob2.png|''Store Barcode Scanning''&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The driver will be offered options of &amp;quot;Yes&amp;quot; or &amp;quot;No&amp;quot;, with &amp;quot;No&amp;quot; being the default. If &amp;quot;No&amp;quot; is clicked, the screen will be re-shown, displaying the Store Barcode field in red border, as it has an error.&lt;br /&gt;
&lt;br /&gt;
If &amp;quot;Yes&amp;quot; is clicked, or the store barcode matches the store number, the driver will be allowed to continue without confirmation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The device will move on to the Delivery process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Scan Store Barcode - Technical Information ====&lt;br /&gt;
In order to achieve the above, the following mobile device changes will be made:&lt;br /&gt;
&lt;br /&gt;
The EPOD_JOB table and DAL object will be modified to add a new field EPL_UDF_PREJOB. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Job Update export back to the server will be modified to add this field, although this will be ignored at this time in the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A createUDFButtons method will be created in the Style object to create buttons as per the current Services Pre-/Post-work screen. This will then be modified to check if any fields in the UDF being actioned by these buttons have a REQUIRED attribute/tag of &amp;quot;C&amp;quot;. If so, the Confirm button will display the confirmation dialogue if any of these indicated fields fail validation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The createUDFields2 method will be modified to support the REQUIRED tag value of &amp;quot;C&amp;quot;. It will also be modified to extend the REGEXP tag validation for data-bound validation.&lt;br /&gt;
&lt;br /&gt;
If the REGEXP tag begins with &amp;quot;DBV:&amp;quot;, this is a data-bound validation. In this case, replace any data tags with the value from the DAL objects referenced and remove the DBV indicator. For example:&lt;br /&gt;
* DBV:GPS3PL.{7,8}([EPOD_JOB.EPL_CUSTOMER_CODE])&lt;br /&gt;
This will have the Customer Code from the job inserted into the pattern in the indicated place (between and including the square brackets). The prefix &amp;quot;DBV:&amp;quot; will be removed. Assuming a customer code of &amp;quot;01234&amp;quot;, this will result in a pattern of:&lt;br /&gt;
* GPS3PL.{7,8}(01234)&lt;br /&gt;
This pattern may then be stored against the field and used for standard validation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new pop-up screen will be created in Job Details, to display PreJob UDF forms when the '''Arrive Job''' button is clicked. This will be in the standard way that this is achieved in the current Services Pre-/Post-work screens. This will be modified to use the new createUDFButtons style method. This new pop-up screen must listed for the auto-updates event, and exit gracefully if this event is raised. This form will allow back-out. &lt;br /&gt;
&lt;br /&gt;
The screen will include a title taken from the UDF title, and a form of all the fields in the UDF. Any buttons will be displayed as standard on the bottom of the form.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new function will be created in the Job Details form to control which tasks must be completed when the '''Arrive Job''' or '''Continue Job''' button is pressed - this will be called nextJobStartTask. This will start tasks in the following sequence:&lt;br /&gt;
* NextJobStartTask in the following sequence:&lt;br /&gt;
** Arrival&lt;br /&gt;
** PreJobUDF&lt;br /&gt;
** PreJob Signature&lt;br /&gt;
** ActionJob (Vehicle Swap or Col/Del/Service)&lt;br /&gt;
&lt;br /&gt;
The PreJob UDF action will check if the job has any saved UDF against it in the new EPOD_JOB field EPL_UDF_PREJOB. If there is none, the action will check if there is any configured PreJob UDF (based on the site and job group). If present, the new PreJob UDF pop-up screen will be shown.&lt;br /&gt;
&lt;br /&gt;
If the user backs out of the PreJob UDF screen, the usual confirmation dialogue will be displayed. When returning from the screen, if no UDF is present to store, the Action should check the FORM tag's REQUIRED attribute. If set to &amp;quot;Y&amp;quot;, the action should stop at this point. If set to anything else, the action can continue to the next task.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delivery Processing == &lt;br /&gt;
{{Note}} There are only delivery jobs in this implementation.&lt;br /&gt;
&lt;br /&gt;
Deliveries will initially consist of multiple cartons to deliver. &lt;br /&gt;
&lt;br /&gt;
The following are the standard tabs that are expected to be displayed:&lt;br /&gt;
&amp;lt;gallery widths=310px heights=400px perrow=3&amp;gt;&lt;br /&gt;
File:FS_338835_PDA_Delivery1.png|''Job Details Tab''&lt;br /&gt;
File:FS_338835_PDA_Delivery2.png|''Job Details Tab - Addresses''&lt;br /&gt;
File:FS_338835_PDA_Delivery3.png|''Containers (Cartons) Tab''&lt;br /&gt;
File:FS_338835_PDA_Delivery4.png|''Notes Tab''&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The ''Job Details'' tab has multiple sections:&lt;br /&gt;
* Contact information&lt;br /&gt;
* Address information - if supplied, both current address and origin address are shown.&lt;br /&gt;
* Job Instructions, if provided.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note}} A '''Deliver All''' button will '''NOT''' be available on this first tab. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From the ''Cartons'' tab, the device will show a list of the cartons to be delivered, which can show:&lt;br /&gt;
* Carton ID&lt;br /&gt;
* Package Description&lt;br /&gt;
* Status (&amp;quot;Pending&amp;quot;)&lt;br /&gt;
* Weight&lt;br /&gt;
* Long Description - the GAP BOL #&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Actions against the cartons can be activated by long-pressing against the row, and have the following actions:&lt;br /&gt;
* ''Cancel''&lt;br /&gt;
* ''Info''&lt;br /&gt;
&amp;lt;gallery widths=310px heights=400px perrow=3&amp;gt;&lt;br /&gt;
File:FS_338835_PDA_Delivery5.png|''Carton Long-press Pop-up''&lt;br /&gt;
File:FS_338835_PDA_Delivery6.png|''Carton Info Pop-up''&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
For information on the actions above, see the appropriate following sections.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When all cartons have been confirmed as delivered or cancelled, the Delivery process will return to the Job Details tab, where a '''Complete''' button will be displayed, to complete the job. It is then possible to review the list of cartons delivered and change this if required. The list will display a border and status to indicate whether the products have been delivered:&lt;br /&gt;
* Red - Cancelled&lt;br /&gt;
* Green - Delivered in full.&lt;br /&gt;
The status will be displayed for confirmation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=310px heights=400px perrow=3&amp;gt;&lt;br /&gt;
File:FS_338835_PDA_Delivery8.png|''Completed Cartons''&lt;br /&gt;
File:FS_338835_PDA_Delivery9.png|''Complete Button''&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When the driver has confirmed that everything is complete and clicked the '''Complete''' button, this screen will close and the user will be directed to the Job Completion process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Delivering a Carton ===&lt;br /&gt;
Each carton on the list can be confirmed as delivered by either:&lt;br /&gt;
* entering the carton ID manually and clicking the ''Deliver'' button.&lt;br /&gt;
* scanning the carton ID.&lt;br /&gt;
&lt;br /&gt;
The carton label looks as follows:&lt;br /&gt;
&amp;lt;gallery widths=400px heights=600px perrow=1&amp;gt;&lt;br /&gt;
File:FS_338835_Carton_Label.png|''Carton Label''&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note}} Either the top or bottom barcodes may be scanned, as they both contain the carton ID - for training purposes, assume that the bottom barcode is the barcode that must be scanned by the driver.&lt;br /&gt;
&lt;br /&gt;
When marked as delivered, the item will be removed from the list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cancelling a Carton ===&lt;br /&gt;
If a carton can't be delivered, it can be removed from the list with the pop-up option ''Cancel''. Again, the exception screen will be shown where the driver can enter the reason for the cancellation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=310px heights=400px perrow=3&amp;gt;&lt;br /&gt;
File:FS_338835_PDA_Delivery7.png|''Cancel Carton''&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reason codes mapped for carton cancellation will be as follows:&lt;br /&gt;
* &amp;quot;01&amp;quot; - Damaged Carton&lt;br /&gt;
* &amp;quot;04&amp;quot; - Quality Problem (e.g. Carton open, missing items)&lt;br /&gt;
&lt;br /&gt;
The user will also be able to optionally take a picture associated with this cancellation.&lt;br /&gt;
&lt;br /&gt;
{{Note}} Whether or not a picture is required for a product cancellation is controlled by the 'Image Required for Cancellations' setting against the job group for the job. If this is set to 'All' or 'Detail Only' then a picture must be taken to cancel a product, otherwise the picture is optional.&lt;br /&gt;
&lt;br /&gt;
{{Note}} No clausing i.e. entering a comment against a delivered carton) will be allowed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Job Completion ==&lt;br /&gt;
It is expected that no signatures (driver or customer) will be required for this implementation. Furthermore, no additional photos are required at this point. Both of these may be configured at a later date if required.&lt;br /&gt;
&lt;br /&gt;
Therefore, when all items are complete (delivered or cancelled) and the driver has clicked the '''Complete''' button, the driver will be returned to the Job List screen and the completed Job will be removed from the list. Any completed jobs can be optionally viewed again, by pressing the Menu button and choosing ''Show All Jobs''. The list can be made to show only outstanding jobs again by pressing the Menu button and choosing ''Show Outstanding Jobs''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Post-Load ==&lt;br /&gt;
Once all Jobs have been completed, the Load will be marked as completed when the user returns to the Job List screen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=310px heights=400px perrow=3&amp;gt;&lt;br /&gt;
File:FS_338835_PDA_JobList3.png|''Completed Load''&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The device will attempt to download a new load for the user and/or vehicle. If one has not been provided, the device will confirm this and allow the user to check again or log off the system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== POC/POD Documents ==&lt;br /&gt;
No POD documents are required to be produced for this implementation - POD confirmation is through the GAP 861 EDI message. The generic container report will be configured.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Data Export ==&lt;br /&gt;
There is no requirement to update Empirica with completed jobs. However, GAP must be updated through the development of a new 861 EDI message. This is specified elsewhere.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- MEDIA LANDSCAPE YES --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Appendix A: TEST PLAN  =&lt;br /&gt;
&lt;br /&gt;
{{TestPlan_Header&lt;br /&gt;
|Title={{#var:Doc_Title}}&lt;br /&gt;
|Log={{#var:Reference}}&lt;br /&gt;
|Description=Tests covering the whole mobile device process.&lt;br /&gt;
|MenuAccess=N/A&lt;br /&gt;
|Prerequisites=Configured as per specification&lt;br /&gt;
|Objective=To test that: Scan Store Barcodes are displayed and validate as expected and; the device styling is correct.&lt;br /&gt;
}} &lt;br /&gt;
{{ #vardefine: Cycle | 0 }}{{ #vardefine: SubCycle | 0 }}&lt;br /&gt;
{{TestPlan_CycleHeader&lt;br /&gt;
|Cycle={{ #vardefineecho: Cycle | {{ #expr: {{ #var: Cycle }} + 1 }} }}{{ #vardefine: SubCycle | {{ #var: Cycle }} }}&lt;br /&gt;
|Title=Mobile Device&lt;br /&gt;
|Notes=Requires 3 jobs on a load, the first two configured for the PreJob store barcode as shown above, the third with a different job group without any pre-job configuration.&lt;br /&gt;
}} &amp;lt;!--INSERT TESTS HERE --&amp;gt; {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Ensure that the app is styled as expected&lt;br /&gt;
|Result=The app is coloured as expected. The login screen displays the correct logo. The Job List and Container tab are styled correctly. The app always shows &amp;quot;Carton&amp;quot; where &amp;quot;Container&amp;quot; would be displayed.&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Log on and pick up a load for the vehicle. Select the first job and start it. Click '''Arrive Job'''&lt;br /&gt;
|Result=The configured Scan Store Barcode screen should be displayed, laid out as expected.&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Back out of this screen using the '''Back''' button.&lt;br /&gt;
|Result=The app should return to the Job Details screen. The '''Continue Job''' button should be displayed. &lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Click '''Continue Job'''.&lt;br /&gt;
|Result=The Scan Store Barcode screen should be displayed again.&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Click '''Confirm'''&lt;br /&gt;
|Result=A confirmation alert should be displayed with the expected wording.&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Click '''No'''&lt;br /&gt;
|Result=The Scan Store Barcode screen should be displayed again.&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Enter (or scan using the device's internal scanner) an invalid barcode (wrong length). Click '''Confirm'''.&lt;br /&gt;
|Result=A confirmation alert should be displayed.&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Click '''No'''. Key in an invalid barcode (right store number but without the preceding characters). Click '''Confirm'''.&lt;br /&gt;
|Result=A confirmation alert should be displayed.&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Click '''No'''. Use the app scanner to enter an invalid barcode (right format, wrong store number) . Click '''Confirm'''.&lt;br /&gt;
|Result=A confirmation alert should be displayed.&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Click '''Yes'''.&lt;br /&gt;
|Result=The Delivery screen should be displayed.&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Back out of the delivery. Click '''Continue Job'''.&lt;br /&gt;
|Result=The Delivery screen should be displayed as the store barcode has already been saved.&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Complete the job by scanning/entering all the cartons.&lt;br /&gt;
|Result=No signatures should be prompted. The Job List screen should be displayed.&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Start the next job. Click '''Arrive Job'''. Scan a valid store barcode. Click '''Confirm'''.&lt;br /&gt;
|Result=The Delivery screen should be displayed without confirmation.&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Complete the job. Start the next job. Click '''Arrive Job'''. &lt;br /&gt;
|Result=The Delivery screen should be displayed, as there is no store barcode configuration.&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_CycleFooter}} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- MEDIA LANDSCAPE NO --&amp;gt; &lt;br /&gt;
{{Doc_Appendix&lt;br /&gt;
|Appendix=B&lt;br /&gt;
|Estimate=N&lt;br /&gt;
|Glossary=EPOD&lt;br /&gt;
|Ref1=[[FS 338875 KOO-GAP-SCR2 GAP Export Interface]]&lt;br /&gt;
|RefV1=0.1&lt;br /&gt;
|RefDate1=26/10/2016&lt;br /&gt;
|EREQ=0&lt;br /&gt;
|EEST=0&lt;br /&gt;
|EFS=1.25&lt;br /&gt;
|ETS=0&lt;br /&gt;
|EDEV=5&lt;br /&gt;
|ESTT=1&lt;br /&gt;
|EIMP=0&lt;br /&gt;
|EPM=.5&lt;br /&gt;
|REQ=0&lt;br /&gt;
|EST=0&lt;br /&gt;
|FS=1.25&lt;br /&gt;
|TS=0&lt;br /&gt;
|DEV=5&lt;br /&gt;
|ST=1&lt;br /&gt;
|IMP=0&lt;br /&gt;
|PM=.5&lt;br /&gt;
|Client={{#var:Client}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
|FSEST=Y&lt;br /&gt;
|Rev1=Ken Hayes&lt;br /&gt;
|Rev1Title=KOO Representative&lt;br /&gt;
|Rev2=Matt Turner&lt;br /&gt;
|Rev2Title=OBSL Representative&lt;br /&gt;
}}&amp;lt;/div&amp;gt; &lt;br /&gt;
[[Category:{{#var:Client}} FS]]&lt;/div&gt;</summary>
		<author><name>Rmg</name></author>
	</entry>
	<entry>
		<id>https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=EST_333750_Allow_Job_Details_UDF_to_be_amended&amp;diff=2905</id>
		<title>EST 333750 Allow Job Details UDF to be amended</title>
		<link rel="alternate" type="text/html" href="https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=EST_333750_Allow_Job_Details_UDF_to_be_amended&amp;diff=2905"/>
		<updated>2016-03-02T15:20:35Z</updated>

		<summary type="html">&lt;p&gt;Rmg: Initial Draft&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Estimate&lt;br /&gt;
|Supimix_Client_Code=HEW&lt;br /&gt;
|Supimix_Project_Code=DEV&lt;br /&gt;
|Supimix_Site_Code=BSE&lt;br /&gt;
|Supimix_Client_Reference=&amp;amp;nbsp;&lt;br /&gt;
|Supimix_Number=333750&lt;br /&gt;
|The_version_of_the_document=0.1&lt;br /&gt;
|Your_Name=Rob McGee&lt;br /&gt;
|Supimix_PO_Reference=&amp;amp;nbsp;&lt;br /&gt;
|Supimix_Priority=3&lt;br /&gt;
|Date_(DD/MM/YY)=02/03/2016&lt;br /&gt;
|Clients_Customer=&amp;amp;nbsp;&lt;br /&gt;
|System_Version_being_changed=3.X&lt;br /&gt;
|Client_Request=On the device require the ability to enter or change the trailer ID against a job and the ability to change the job details UDF from the driver signature screen.&lt;br /&gt;
&lt;br /&gt;
On the admin system require the ability to enter or change the trailer ID against a job and the ability to change the job details UDF.&lt;br /&gt;
|OBS_Solution=&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ePOD Admin Changes:&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A new 'Amend Job Details UDF' flag will be added to te job group maintenance page. This will control whether or not job details UDF can be amended on both the device's driver signature screen and the admin system job details page.&lt;br /&gt;
&lt;br /&gt;
The Job Details pop-up will have the following changes made:&lt;br /&gt;
*	If the job has been completed the edit button will only be present if edit functions are allowed.&lt;br /&gt;
*	Clicking the edit button for a completed job will issue a warning to the user before allowing them to edit the job.&lt;br /&gt;
*	The trailer ID of the job will be added as a new field on the Details tab. The user will be able to change this field even if the job has been completed.&lt;br /&gt;
*	A new job detail UDF tab will be added to allow the display and editing of job details UDF for the job. This tab will only be shown if the new 'Amend Job Details UDF' flag is set, the job has been completed and the job has some job details UDF.&lt;br /&gt;
&lt;br /&gt;
Whenever the user selects the job details UDF tab the system will build and show the job details UDF questions in the same way as the device does. When saving any changes to the job details UDF this will again be done in the same was as on the device, including all entries are valid based on teh UDF before saving any changes.&lt;br /&gt;
This means that any UDF fields associated with a value from the job (e.g. the trailer ID) will be set to the value from the job when the UDF is built and will update the value on the job when any changes to the UDF are saved.&lt;br /&gt;
&lt;br /&gt;
'''Warning:''' Changing the trailer ID through the new trailer ID field on the job details tab will not apply any format validation from the UDF meaning the admin users will be able to bypass the UDF validation.&amp;lt;br/&amp;gt;'''Note:''' Any changes to the trailer ID through the new trailer ID field on the job details tab will not update the job details UDF until that UDF is next viewed and saved.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;ePOD Device Changes:&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The ePOD device currently copies the trailer ID from the load to the job when the job is completed. This is done regardless of any trailer ID set against the job (i.e. this currently overwrites any trailer ID stored against the job).&lt;br /&gt;
&lt;br /&gt;
This will be changed so the trailer ID is copied from the load to the job when the job is started, this is so the trailer ID for the job is available when the user opens the collection/delivery screen. Also the trailer ID will only be copied from the load to the job if the job does not already have a trailer ID (i.e. the trailer ID against the job is blank). This is to prevent any trailer ID entered for the job in the admin system being overwritten by the trailer ID from the load.&lt;br /&gt;
&lt;br /&gt;
The job details UDF creation will be changed to pass the job to the UDF creation in order to allow UDF fields to be associated with a value on the job (i.e. the trailer ID). &lt;br /&gt;
&lt;br /&gt;
The UDF creation will be changed so that when building the UDF fields if a field is associated with a field from the database the value for the UDF field will automatically be set to the value of the associated field. This will affect all UDF including the load metrics UDF and the job details UDF. This change will mean when UDF fields are shown on the device:&lt;br /&gt;
*	The load metrics trailer ID field will initially be set to the trailer ID from the load.&lt;br /&gt;
*	The job details UDF trailer ID will initially be set to the trailer ID from the job.&lt;br /&gt;
&lt;br /&gt;
The signature screen will then be changed to allow a new job details UDF tab to be shown when capturing a driver signature. This tab will only be shown if the new 'Amend Job Details UDF' (see admin changes above) is set and if job details UDF exist for the job/jobs being signed for. When shown this tab will appear in the same place as the customer signature terms and conditions tab (i.e. below the signature for portrait or to the right for landscape).&lt;br /&gt;
&lt;br /&gt;
If the signature is being captured for a single job the tab will just show the job details UDF for that job. &lt;br /&gt;
If the signature is being captured for multiple jobs the tab will show the display job reference followed by the job details UDF for each job.&lt;br /&gt;
&lt;br /&gt;
In all cases the job details UDF tab will be a scrollable tab so that if the data shown does not fit into the space available the user will be able to scroll to see the remaining data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Implementaion:&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When the changes are released OBS will update the existing job details UDF to add a trailer ID field. This will be the same as the trailer ID field included on the load metrics with the exception that this text field will be associated with the trailer of the job.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
|Requirements_Days=0&lt;br /&gt;
|Estimation_Days=1.00&lt;br /&gt;
|Functional_Specification_Days=1.25&lt;br /&gt;
|Technical_Specification_Days=0.00&lt;br /&gt;
|Development_Days=2.50&lt;br /&gt;
|Testing_and_Release_Days=1.50&lt;br /&gt;
|Implementation_Days=0.25&lt;br /&gt;
|Project_Management_Days=0.00&lt;br /&gt;
|Year=2016&lt;br /&gt;
|Free_Of_Charge=N&lt;br /&gt;
|Supimix_Client_Code=HEW}}&lt;/div&gt;</summary>
		<author><name>Rmg</name></author>
	</entry>
	<entry>
		<id>https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_331694_Deliver_All_function&amp;diff=2638</id>
		<title>FS 331694 Deliver All function</title>
		<link rel="alternate" type="text/html" href="https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_331694_Deliver_All_function&amp;diff=2638"/>
		<updated>2015-11-26T13:15:09Z</updated>

		<summary type="html">&lt;p&gt;Rmg: Initial Draft&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
{{#vardefine:Client|PART}}&lt;br /&gt;
{{#vardefine:ClientName|Partnerlink}}&lt;br /&gt;
{{#vardefine:System|''CALIDUS'' ePOD}}&lt;br /&gt;
{{#vardefine:Doc_Title|Deliver All function}}&lt;br /&gt;
{{#vardefine:Version|0.1}}&lt;br /&gt;
{{#vardefine:Date|26th November 2015}}&lt;br /&gt;
{{#vardefine:Reference|331694}}&lt;br /&gt;
{{#vardefine:Year|2015}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Doc_Title&lt;br /&gt;
|Client={{#var:ClientName}}&lt;br /&gt;
|System={{#var:System}}&lt;br /&gt;
|Title={{#var:Doc_Title}}&lt;br /&gt;
|Reference=FS {{#var:Reference}}&lt;br /&gt;
|Version={{#var:Version}}&lt;br /&gt;
|Date={{#var:Date}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TOC --&amp;gt; &lt;br /&gt;
&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
= Functional Overview  =&lt;br /&gt;
&lt;br /&gt;
== Client Requirement  ==&lt;br /&gt;
For bulk deliveries (i.e. 26 pallets) change the ePOD application to allow management of exception items then click a “Deliver All” for the remaining pallets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Solution Overview  ==&lt;br /&gt;
A new ‘Deliver All’ flag will be added to the site maintenance in the ePOD Admin system, this flag will be set as a checkbox and the value (i.e. checked or unchecked) will be included in the site data sent to the devices.&lt;br /&gt;
&lt;br /&gt;
The device will be changed so that if the new ‘Deliver All’ flag is checked when processing a delivery job (or consolidated group of delivery jobs) for which there are outstanding containers (pallets) or products the Job Details tab will include a ‘Deliver All’ button.&lt;br /&gt;
&lt;br /&gt;
If the user clicks this button a confirmation box will be shown with the message “All remaining items will be marked as delivered - please confirm” and tow buttons, an ‘OK’ button and a ‘Cancel’ button.&lt;br /&gt;
&lt;br /&gt;
If the user clicks the ‘Cancel’ button the confirmation box will be removed and no action will be taken (i.e. nothing will be marked as completed).&lt;br /&gt;
&lt;br /&gt;
If the user clicks the ‘OK’ button then any containers (pallets) or products that have not previously been marked as complete or cancelled for the job(s) being processed will be marked as complete. The device will then run the standard job completion processing based on the setup as if all of the items had been manually completed (e.g. prompt for driver signature, customer signature and/or job photos based on setup).&lt;br /&gt;
&lt;br /&gt;
If the ‘Deliver All’ site option is not checked then the ‘Deliver All’ button will not be shown.&lt;br /&gt;
If the job(s) being processed are not delivery jobs then the ‘Deliver All’ button will not be shown.&lt;br /&gt;
If the job(s) being processed do not have any outstanding items, i.e. all containers (pallets) and products have already been marked as complete or cancelled then the ‘deliver All’ button will not be shown (as with existing functionality the ‘Complete’ button will still be shown).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scope  ==&lt;br /&gt;
Changes will be made in the latest device and server versions only (i.e. versions 3.x.x.x).&lt;br /&gt;
&lt;br /&gt;
The new ‘Deliver All’ flag will affect ALL delivery jobs for the partner’s site.&lt;br /&gt;
&lt;br /&gt;
The deliver all functionality will override any required user entry for containers and/or products (for example any container level user defined fields or setting of non-zero quantities for products with a zero planned quantity).&lt;br /&gt;
&lt;br /&gt;
The deliver all functionality is at the discretion of the driver and will process the outstanding items in the same way as the manual processing (i.e. it will not be possible to determine if a container (pallet) has been manually marked as being delivered via the deliver option or if it has been marked as being delivered via the new deliver all functionality). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Set-up  =&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites  ==&lt;br /&gt;
There are no set-up pre-requisites specific to this development.&lt;br /&gt;
&lt;br /&gt;
== Menu Structure  ==&lt;br /&gt;
There is no menu structure set-up required for this development.&lt;br /&gt;
&lt;br /&gt;
== Data  ==&lt;br /&gt;
In order to make the ‘Deliver All’ option available to the drivers for all delivery jobs for a partner’s site the new ‘Deliver All’ checkbox on the site maintenance page must be checked.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Functional Description  =&lt;br /&gt;
== Database / Server ==&lt;br /&gt;
A new numeric flag (called EPL_DELIVER_ALL_IND) will be added to the database on the site record (EPOD_SITE) to allow the new “Deliver All” option to be stored for a site.&lt;br /&gt;
&lt;br /&gt;
All data access functions for creating, updating or selecting a site will be updated to include this new flag as will the XML request (used for sending the site data to the PDA’s). This will store (and in the XML report) this value as 1 if the option has been checked or 0 otherwise.&lt;br /&gt;
&lt;br /&gt;
The default value for this new flag should be 0.&lt;br /&gt;
&lt;br /&gt;
Note: It is not necessary to add this field as a search-able item.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Admin ==&lt;br /&gt;
=== Site Maintenance ===&lt;br /&gt;
The admin web application includes a Site Maintenance page (within the Administration menu) to allow setting for a partner’s site to be maintained. This page includes a ‘PDA’ tab to allow the site level settings for options that will affect the PDA to be maintained.&lt;br /&gt;
&lt;br /&gt;
A new field will be added to this ‘PDA’ tab of the Site Maintenance page. This field will be shown with the label ‘Deliver All’ and will use a check-box to allow the user to set or un-set this option. &lt;br /&gt;
&lt;br /&gt;
The check-box will include a hint text (shown when hovering over the checkbox) showing the message ‘Using deliver all will override any container or product level data entry’.&lt;br /&gt;
&lt;br /&gt;
Note: The default for new sites or when this option is first added to an existing site will be for this check-box to be un-checked.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Android Application ==&lt;br /&gt;
=== Database / DAL ===&lt;br /&gt;
The device’s database will be changed to add the new numeric flag (called EPL_DELIVER_ALL_IND) to the site record (EPOD_SITE) to allow the new “Deliver All” option to be stored for a site.&lt;br /&gt;
&lt;br /&gt;
All data access functions (including those that set the site data based on the data passed from the server) will be updated to include this new flag. The default value for this flag (if one has not been passed from the site) should be 0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Collection / Delivery Screen ===&lt;br /&gt;
The collection / delivery screen is used for processing all collections or deliveries. This screen includes a ‘Job Details’ tab which shows the job details for the job (or selected job if processing a consolidated group of jobs).&lt;br /&gt;
&lt;br /&gt;
When processing a job or group of jobs that have not been complete/cancelled if all of the items for the job(s) have been completed or cancelled the ‘Job Details’ tab currently includes a ‘Complete’ button which will complete the job(s) being processed.&lt;br /&gt;
&lt;br /&gt;
The collection / delivery screen will be changed so that when it is opened the device will check the new ‘Deliver All’ option for the current site and the type of job(s) being processed. &lt;br /&gt;
&lt;br /&gt;
If the ‘Deliver All’ option was checked and the job(s) being processed are delivery jobs it will go on to check if there are any containers (pallets) or products for the job(s) that have not been completed or cancelled.&lt;br /&gt;
&lt;br /&gt;
If this check finds there are outstanding containers (pallets) or products for the job(s) being processed then a new ‘Deliver All’ button will be added to the bottom of the Job Details tab, in the same position as the ‘Complete’ button is shown.&lt;br /&gt;
&lt;br /&gt;
If the ‘Deliver All’ option was not checked for the current site or if the job(s) being processed were not delivery jobs or if the job(s) did not have any outstanding items the ‘Deliver All’ button will not be shown.&lt;br /&gt;
&lt;br /&gt;
When the ‘Deliver All’ button is shown clicking it will present the user with a confirmation pop-up. This confirmation pop-up will show the message ‘All remaining items will be marked as delivered - please confirm’ along with an ‘OK’ button and a ‘Cancel’ button.&lt;br /&gt;
&lt;br /&gt;
If the user clicks the ‘Cancel’ button (or uses the devices back button) then the deliver all processing will be cancelled. The confirmation pop-up will be removed and none of the outstanding containers (pallets) or products will be completed at this time.&lt;br /&gt;
&lt;br /&gt;
If the user clicks the ‘OK’ button then the device will validate that the job(s) are ready to be completed. This validation will ignore any outstanding items (as these will be completed) but will include the other job level validation (e.g. check whether any job level user defined fields have been entered or whether the user should confirm no ad-hoc items are required). &lt;br /&gt;
&lt;br /&gt;
If this validation generates any warnings or errors these will be issued before any outstanding items are marked as complete. Warnings would allow the user to abort or continue with the deliver all process, errors would abort the deliver all process (i.e. the user would have to correct the error before clicking the ‘Deliver All’ button again).&lt;br /&gt;
&lt;br /&gt;
If the validation shows the job(s) are ready to be completed then any outstanding containers (pallets) will be marked as complete and any outstanding products will have the actual quantity set to the planned quantity and will be marked as complete.&lt;br /&gt;
&lt;br /&gt;
Once all of the outstanding items have been completed the device will run the standard job completion processing. This will replace the ‘Deliver All’ button with the ‘Complete’ button and perform any job end processing that is required by the data setup (for example capture any signatures that are required, conditionally allow a job photo ti be taken and mark the job as complete before returning to the job list).&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
•	Using the deliver all functionality will override any container or product data entry. For example if there are container level user defined fields the user will not be prompted to enter these when using the deliver all functionality. Similarly if there are products with a zero planned quantity the user will not be prompted to enter a quantity for these products when using the deliver all functionality.&lt;br /&gt;
•	Using the deliver all will not override any job level data entry. For example if there are job level user defined fields which are required entry fields the user will need to enter these fields before the deliver all process can be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- MEDIA LANDSCAPE YES --&amp;gt; &lt;br /&gt;
= Appendix A: TEST PLAN  =&lt;br /&gt;
{{TestPlan_Header&lt;br /&gt;
|Title={{#var:Doc_Title}}&lt;br /&gt;
|Log={{#var:Reference}}&lt;br /&gt;
|Description=ePOD Deliver All functionality&lt;br /&gt;
|MenuAccess=&lt;br /&gt;
|Prerequisites=An ePOD Admin system and ePOD android application.&lt;br /&gt;
|Objective=Ensure the deliver all functionality works as described.&lt;br /&gt;
}} {{ #vardefine: Cycle | 0 }}{{ #vardefine: SubCycle | 0 }}&lt;br /&gt;
{{TestPlan_CycleHeader&lt;br /&gt;
|Cycle={{ #vardefineecho: Cycle | {{ #expr: {{ #var: Cycle }} + 1 }} }}{{ #vardefine: SubCycle | {{ #var: Cycle }} }}&lt;br /&gt;
|Title=ePOD Admin&lt;br /&gt;
|Notes=&lt;br /&gt;
}} &amp;lt;!--INSERT TESTS HERE --&amp;gt; {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Ensure the ‘Deliver All’ checkbox is present in the site maintenance page and can be set/unset. &lt;br /&gt;
|Result=The checkbox is present and can be checked or unchecked.&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}}&amp;lt;!-- {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Check the value of the ‘Deliver All’ checkbox is saved when changes are saved.&lt;br /&gt;
|Result=The setting is saved.&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Ensure the hint text is visible when hovering over the ‘Deliver All’ checkbox.&lt;br /&gt;
|Result=The hint text is displayed.&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} --&amp;gt;{{TestPlan_CycleFooter}} &lt;br /&gt;
&lt;br /&gt;
{{TestPlan_CycleHeader&lt;br /&gt;
|Cycle={{ #vardefineecho: Cycle | {{ #expr: {{ #var: Cycle }} + 1 }} }}{{ #vardefine: SubCycle | {{ #var: Cycle }} }}&lt;br /&gt;
|Title=ePOD Android Application&lt;br /&gt;
|Notes=&lt;br /&gt;
}} &amp;lt;!--INSERT TESTS HERE --&amp;gt; {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Ensure that with the ‘Deliver All’ option unchecked the ‘Deliver All’ button is not shown for single collection jobs, single delivery jobs, consolidated collection jobs or consolidated delivery jobs. &lt;br /&gt;
|Result=The ‘Deliver All’ button is not shown.&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Ensure that with the ‘Deliver All’ option checked the ‘Deliver All’ button is not shown for single collection jobs or consolidated collection jobs.&lt;br /&gt;
|Result=The ‘Deliver All’ button is not shown.&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Ensure that with the ‘Deliver All’ option checked the ‘Deliver All’ button is shown for single delivery jobs or consolidated delivery jobs where there are outstanding containers/products.&lt;br /&gt;
|Result=The ‘Deliver All’ button is shown.&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Ensure that clicking the ‘Deliver All’ button presents the user with a confirmation pop-up and that clicking the ‘Cancel’ button does not complete any containers/items.&lt;br /&gt;
|Result=Cancelling the deliver all does not mark any containers/products as complete.&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=For a single delivery job with outstanding containers/products (but with no job details UDF) click the ‘Deliver All’ button followed by the ‘OK’ button.&lt;br /&gt;
|Result=All containers/products are marked as complete and the job completion is processed (i.e. any signatures that are required are prompted for, any photo allowed is prompted for and the job is completed).&lt;br /&gt;
|Remarks=Signature and photo capture are controlled by the data setup against the job group.&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=For a single delivery job with outstanding containers/products which has incomplete required job details UDF click the ‘Deliver All’ button followed by the ‘OK’ button.&lt;br /&gt;
|Result=An error is issued for the missing job details UDF, no containers/products are marked as complete.&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Repeat the last three tests for a group of consolidated delivery jobs.&lt;br /&gt;
|Result=Results are the same as for a single job.&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_CycleFooter}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- MEDIA LANDSCAPE NO --&amp;gt; &lt;br /&gt;
{{Doc_Appendix&lt;br /&gt;
|Appendix=B&lt;br /&gt;
|Estimate=Y&lt;br /&gt;
|Glossary=&lt;br /&gt;
|Ref1=&lt;br /&gt;
|RefV1=&lt;br /&gt;
|RefDate1=&lt;br /&gt;
|Ref2=&lt;br /&gt;
|RefV2=&lt;br /&gt;
|RefDate2=&lt;br /&gt;
|Ref3=&lt;br /&gt;
|RefV3=&lt;br /&gt;
|RefDate3=&lt;br /&gt;
|Ref4=&lt;br /&gt;
|RefV4=&lt;br /&gt;
|RefDate4=&lt;br /&gt;
|EREQ=0&lt;br /&gt;
|EEST=0&lt;br /&gt;
|EFS=0&lt;br /&gt;
|ETS=0&lt;br /&gt;
|EDEV=0&lt;br /&gt;
|ESTT=0&lt;br /&gt;
|EIMP=0&lt;br /&gt;
|EPM=0&lt;br /&gt;
|REQ=0&lt;br /&gt;
|EST=0&lt;br /&gt;
|FS=0&lt;br /&gt;
|TS=0&lt;br /&gt;
|DEV=0&lt;br /&gt;
|ST=0&lt;br /&gt;
|IMP=0&lt;br /&gt;
|PM=0&lt;br /&gt;
|Client={{#var:Client}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
|FSEST=Y&lt;br /&gt;
|FOC=Y&lt;br /&gt;
|FIXEDCOST=0&lt;br /&gt;
|Rev1=Murray Middleton&lt;br /&gt;
|Rev1Title=Development Manager&lt;br /&gt;
|Rev2=&lt;br /&gt;
|Rev2Title=&lt;br /&gt;
}}&amp;lt;/div&amp;gt; &lt;br /&gt;
[[Category:{{#var:Client}} FS]]&lt;/div&gt;</summary>
		<author><name>Rmg</name></author>
	</entry>
	<entry>
		<id>https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_326965_Partnerlink_EPOD_Interface&amp;diff=1949</id>
		<title>FS 326965 Partnerlink EPOD Interface</title>
		<link rel="alternate" type="text/html" href="https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_326965_Partnerlink_EPOD_Interface&amp;diff=1949"/>
		<updated>2015-05-22T15:52:31Z</updated>

		<summary type="html">&lt;p&gt;Rmg: v1.0 Ready for issue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
{{#vardefine:Client|PART}}&lt;br /&gt;
{{#vardefine:ClientName|PartnerLink}}&lt;br /&gt;
{{#vardefine:System|''CALIDUS'' ePOD}}&lt;br /&gt;
{{#vardefine:Doc_Title|EPOD-Partner System Interface}}&lt;br /&gt;
{{#vardefine:Version|1.0}}&lt;br /&gt;
{{#vardefine:Date|22nd May 2015}}&lt;br /&gt;
{{#vardefine:Reference|326965}}&lt;br /&gt;
{{#vardefine:Year|2015}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Doc_Title&lt;br /&gt;
|Client={{#var:ClientName}}&lt;br /&gt;
|System={{#var:System}}&lt;br /&gt;
|Title={{#var:Doc_Title}}&lt;br /&gt;
|Reference=FS {{#var:Reference}}&lt;br /&gt;
|Version={{#var:Version}}&lt;br /&gt;
|Date={{#var:Date}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TOC --&amp;gt; &lt;br /&gt;
&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
= Functional Overview  =&lt;br /&gt;
The document is intended to describe the import and export formats for the Partnerlink Partner systems connecting to the {{#var:System}} system.&lt;br /&gt;
&lt;br /&gt;
== Client Requirement  ==&lt;br /&gt;
&lt;br /&gt;
* The Partner system will send messages to the {{#var:System}} system to define Loads and Trips to be completed, as well as indicators of whether this is a pallet network job.&lt;br /&gt;
* {{#var:System}} will inform the Partner system that the jobs are completed or cancelled.&lt;br /&gt;
* {{#var:System}} will inform any Pallet Network systems that the jobs are completed or cancelled, and send the signature.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Solution Overview  ==&lt;br /&gt;
A bespoke interface to and from ''CALIDUS'' EPOD exists for this purpose. This is heavily based around the existing JobShare interface used by the partners.&lt;br /&gt;
&lt;br /&gt;
The summary of the solution requirements are:&lt;br /&gt;
# Standing Data (Vehicles, Users, Reason Codes, Job Groups, Sites) will be manually set up within {{#var:System}} - no automated drip-feed of this data will be entered into.&lt;br /&gt;
# Sending of data to {{#var:System}} will be through the Partnerlink CSV format.&lt;br /&gt;
# Receiving data from {{#var:System}} will be through the OBS XML format.&lt;br /&gt;
# The mechanism of sending data will be through Flat File transfer via a shared folder or FTP.&lt;br /&gt;
# The mechanism of receiving data will be through webservices (pushed or pulled), Flat File transfer via a shared folder or FTP.&lt;br /&gt;
# The sending of data to {{#var:System}} will be controlled through the partner's TMS, at an appropriate trigger point (i.e. when the trips/loads/routes have been confirmed and/or resource-allocated.&lt;br /&gt;
# Delivery and Collection jobs for a single load will be merged into a single load when sending data to {{#var:System}}.&lt;br /&gt;
# The partner TMS must sort the data in the planned start time, if available, or sequence to be completed, as required by the customer (Partnerlink).&lt;br /&gt;
# Amendments to the manifests should be automatically re-exported to {{#var:System}} using the same transfer format.&lt;br /&gt;
# {{#var:System}} exporting of completed or cancelled jobs will be through a timed process, expected to be every 5 minutes.&lt;br /&gt;
# A Partner code must be assigned and used for the jobs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Partnerlink CSV format allows for:&lt;br /&gt;
* Collection and Delivery jobs.&lt;br /&gt;
* The pallet network and additional pallet network parameters to be identified.&lt;br /&gt;
* Automatic creation of pallet identifiers, based on the Partner Job ID and a sequence counting for the number of pallets e.g. a job of 3 pallets for Partner Job ID L0100004573083 for partner L01 will have pallets automatically generated as L010000457308301, L010000457308302 and L010000457308303.&lt;br /&gt;
* Automatic creation of pallet identifiers, based on the pallet network parameters provided (currently only Palletforce formats are present - all other formats are assumed to be as standard Partnerlink formats).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This will require the Partner TMS systems to be modified as follows:&lt;br /&gt;
* Ensure a single load is created for any manifests for the same vehicle/day/driver.&lt;br /&gt;
* Pass the load and job information into {{#var:System}} in the agreed CSV format (described in this document) at trigger points (e.g. Load confirmed, Load amended, etc).&lt;br /&gt;
* FTP or copy the file containing the CSV-formatted payload to an agreed folder.&lt;br /&gt;
* Create a process for importing data back from the OBS XML format through flat file or webservices.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note}} For details of the standard {{#var:System}} webservices, see the standard documentation referenced in [[#Appendix A: Document References|Appendix A]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scope  ==&lt;br /&gt;
&lt;br /&gt;
{{Note}} There are modifications being made to the {{#var:System}} system, both for product enhancement and specifically for the Partnerlink customer that are driving changes into both the import and export functionality described here. Some have not yet been finalised. All known modifications to the schemas have been added to this document. Should any further requirements be known after this document is issued, this document will be revised and reissued at that time.&lt;br /&gt;
&lt;br /&gt;
{{Note}} Future modifications may be made to the exporting of data from {{#var:System}} to the partner TMS systems. When modifications of this nature are made, a new validation schema (XSD) for the XML payload will be issued. The modifications to the partner TMS systems to import this data should be made in such a way that this new XSD can be replaced into the system without program modifications in the future.&lt;br /&gt;
&lt;br /&gt;
{{Note}} It is not deemed necessary at this time to map interfaces from partner TMS systems for Standing Data, as it was agreed that this would be maintained separately and manually within {{#var:System}}. Those flows are:&lt;br /&gt;
* Vehicles&lt;br /&gt;
* Reason Codes (used when cancelling jobs or pallets, or clausing deliveries)&lt;br /&gt;
* Users (Drivers)&lt;br /&gt;
* Customers&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
= Set-up  =&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites  ==&lt;br /&gt;
* Working Partner TMS systems and {{#var:System}} system must be in place and configured as agreed.&lt;br /&gt;
* At a minimum, the systems must be able to connect via a shared folder, either through an internet or LAN connection. This must be accessible directly, without user and password information, through a shared user-name on the two servers or domain. This will be coordinated and configured by the Partnerlink IT team.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Menu Structure  ==&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Data  ==&lt;br /&gt;
As described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Functional Description  =&lt;br /&gt;
&lt;br /&gt;
== Creating the Messages to {{#var:System}} ==&lt;br /&gt;
&lt;br /&gt;
The sending of data to {{#var:System}} will be controlled through the partner's TMS, at an appropriate trigger point (i.e. when the trips/loads/routes have been confirmed and/or resource-allocated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A list of all the fields in the interface for Load (Manifest) and Job follows. A full spreadsheet of all the import flows and fields containing all the limitations on length and defaulted values is provided separately.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
!#	!!Field Name	!!Type	!!Max Length		!!width=&amp;quot;50%&amp;quot;|Notes&lt;br /&gt;
|-&lt;br /&gt;
|1	||Requestor	||C	||3	||Owning Partner - the Partner that owns the JobShare job (if present), else the Delivery or Collection Partner, depending on Job Type&lt;br /&gt;
|-&lt;br /&gt;
|2	||Reference 1	||C	||7	|| Partner Job Number&lt;br /&gt;
|-&lt;br /&gt;
|3	||Reference 2	||C	||16	|| Customer Reference&lt;br /&gt;
|-&lt;br /&gt;
|4	||Reference 3	||C	||16	|| Additional Reference&lt;br /&gt;
|-&lt;br /&gt;
|5	||PartnerJobID	||C	||14	|| Partnerlink Job ID. This is used to form the pallet ID of the pallets to be delivered (this field plus 2-digit count from 01 to Total Pallets)&lt;br /&gt;
|-&lt;br /&gt;
|6	||Job Date	||C	||8	||&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|7	||Collection Name	||C	||30	||Collection details - required for POD note (Consignor address)&lt;br /&gt;
|-&lt;br /&gt;
|8	||Collection Address 1	||C	||30	||Collection details - required for POD note (Consignor address)&lt;br /&gt;
|-&lt;br /&gt;
|9	||Collection Address 2	||C	||30	||Collection details - required for POD note (Consignor address)&lt;br /&gt;
|-&lt;br /&gt;
|10	||Collection Address 3	||C	||30	||Collection details - required for POD note (Consignor address)&lt;br /&gt;
|-&lt;br /&gt;
|11	||Collection Address 4	||C	||30	||Collection details - required for POD note (Consignor address)&lt;br /&gt;
|-&lt;br /&gt;
|12	||Collection Postcode	||C	||10	||Collection details - required for POD note (Consignor address)&lt;br /&gt;
|-&lt;br /&gt;
|13	||Collection Contact	||C	||30	||This field is always to be sent blank, to force the users to enter a signatory on the Mobile Device application.&lt;br /&gt;
|-&lt;br /&gt;
|14	||Collection Phone Number	||C	||16	||Collection details - required for POD note (Consignor address)&lt;br /&gt;
|-&lt;br /&gt;
|15	||Collecting Partner	||C	||3	||Partner code of the partner executing the job (if it is a collection job type)&lt;br /&gt;
|-&lt;br /&gt;
|16	||Collection Date	||C	||8	||Planned Start Date&lt;br /&gt;
|-&lt;br /&gt;
|17	||Collection Time	||C	||5	||Planned Start Time&lt;br /&gt;
|-&lt;br /&gt;
|18	||Delivery Name	||C	||30	||Customer or Job Address&lt;br /&gt;
|-&lt;br /&gt;
|19	||Delivery Address 1	||C	||30	||Customer or Job Address&lt;br /&gt;
|-&lt;br /&gt;
|20	||Delivery Address 2	||C	||30	||Customer or Job Address&lt;br /&gt;
|-&lt;br /&gt;
|21	||Delivery Address 3	||C	||30	||Customer or Job Address&lt;br /&gt;
|-&lt;br /&gt;
|22	||Delivery Address 4	||C	||30	||Customer or Job Address&lt;br /&gt;
|-&lt;br /&gt;
|23	||Delivery Postcode	||C	||10	||Customer or Job Address&lt;br /&gt;
|-&lt;br /&gt;
|24	||Delivery Contact	||C	||30	|| This field is always to be sent blank, to force the users to enter a signatory on the Mobile Device application.&lt;br /&gt;
|-&lt;br /&gt;
|25	||Delivery Phone Number	||C	||16	||&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|26	||Delivery Partner	||C	||3	||Partner code of the partner executing the job (if it's a delivery job type)&lt;br /&gt;
|-&lt;br /&gt;
|27	||Delivery Date	||C	||8	||Planned Start Date&lt;br /&gt;
|-&lt;br /&gt;
|28	||Delivery Time	||C	||5	||Planned Start Time&lt;br /&gt;
|-&lt;br /&gt;
|29	||Number of Full Pallets	||N	||&amp;amp;nbsp;	||Added to form Total Pallets&lt;br /&gt;
|-&lt;br /&gt;
|30	||Number of Half Pallets	||N	||&amp;amp;nbsp;	||Added to form Total Pallets&lt;br /&gt;
|-&lt;br /&gt;
|31	||Number of Quarter Pallets	||N	||&amp;amp;nbsp;	||Added to form Total Pallets&lt;br /&gt;
|-&lt;br /&gt;
|32	||Number of OverSize Pallets	||N	||&amp;amp;nbsp;	||Added to form Total Pallets&lt;br /&gt;
|-&lt;br /&gt;
|33	||Weight in Kilos	||N	||&amp;amp;nbsp;	||Divided by Total Pallets to create a Weight per pallet&lt;br /&gt;
|-&lt;br /&gt;
|34	||Manifest Notes 1	||C	||48	||Job Instructions&lt;br /&gt;
|-&lt;br /&gt;
|35	||Manifest Notes 1	||C	||48	||Job Instructions&lt;br /&gt;
|-&lt;br /&gt;
|36	||Manifest Notes 1	||C	||48	||Office Instructions&lt;br /&gt;
|-&lt;br /&gt;
|37	||Manifest Notes 1	||C	||48	||Office Instructions&lt;br /&gt;
|-&lt;br /&gt;
|38	||Service	||C	||2	||Service Level&lt;br /&gt;
|-&lt;br /&gt;
|39	||Surcharges	||C	||16	|| N/A&lt;br /&gt;
|-&lt;br /&gt;
|40	||Pallet Spaces	||N	||&amp;amp;nbsp;	|| N/A&lt;br /&gt;
|-&lt;br /&gt;
|41	||Number of Chep pallets	||N	||&amp;amp;nbsp;	||N/A&lt;br /&gt;
|-&lt;br /&gt;
|42	||Hazardous	||C	||1	||N/A&lt;br /&gt;
|-&lt;br /&gt;
|43	||ADR Number	||N	||5.2	||N/A&lt;br /&gt;
|-&lt;br /&gt;
|44	||Packing Group	||C	||10	||N/A&lt;br /&gt;
|-&lt;br /&gt;
|45	||Category	||C	||10	||N/A&lt;br /&gt;
|-&lt;br /&gt;
|46	||Product name	||C	||10	||N/A&lt;br /&gt;
|-&lt;br /&gt;
|47	||UN Number	||C	||10	||N/A&lt;br /&gt;
|-&lt;br /&gt;
|48	||24 Hour Phone Number	||C	||10	||N/A&lt;br /&gt;
|-&lt;br /&gt;
|49	||Number of Packs	||N	||&amp;amp;nbsp;	||N/A&lt;br /&gt;
|-&lt;br /&gt;
|50	||Number of Litres	||N	||&amp;amp;nbsp;	||N/A&lt;br /&gt;
|-&lt;br /&gt;
|51	||Weight in Kilos	||N	||&amp;amp;nbsp;	||N/A&lt;br /&gt;
|-&lt;br /&gt;
|52	||Value 1	||N	||&amp;amp;nbsp;	||N/A&lt;br /&gt;
|-&lt;br /&gt;
|53	||Value 2	||N	||&amp;amp;nbsp;	||N/A&lt;br /&gt;
|-&lt;br /&gt;
|54	||Value 3	||N	||&amp;amp;nbsp;	||N/A&lt;br /&gt;
|-&lt;br /&gt;
|55	||Spare Text 1	||C	||6	||N/A&lt;br /&gt;
|-&lt;br /&gt;
|56	||Job Bar Code	||C	||16	||N/A&lt;br /&gt;
|-&lt;br /&gt;
|57	||Manifest Number	||C	||20	|| The unique Load ID&lt;br /&gt;
|-&lt;br /&gt;
|58	||Account Code	||C	||12	|| Used for display in the POD format&lt;br /&gt;
|-&lt;br /&gt;
|59	||Trailer Number	||C	||10	||Trailer ID&lt;br /&gt;
|-&lt;br /&gt;
|60	||Driver ID	||C	||10	||Driver to whom the job has been assigned&lt;br /&gt;
|-&lt;br /&gt;
|61	||Vehicle ID	||C	||10	|| Vehicle to which the job has been assigned, or blank&lt;br /&gt;
|-&lt;br /&gt;
|62	||Job Type	||C	||2	||Identifying Collection &amp;quot;C&amp;quot; or Delivery &amp;quot;D&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor=&amp;quot;red&amp;quot;|*	||PF Depot	||C	||10	||Pallet Tracking System depot code, used when generating Pallet IDs for this pallet network.&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor=&amp;quot;red&amp;quot;|*	||PF Tracking Number	||C	||30	||Pallet Tracking System tracking number, used when generating Pallet IDs for this pallet network.&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor=&amp;quot;red&amp;quot;|*	||Tracking System	||C	||29	||This identifies any external pallet tracking system in use for this job. Currently values of &amp;quot;PALLET&amp;quot;, &amp;quot;PALLEX&amp;quot;, &amp;quot;FORTRACK&amp;quot;. If this is not set, and Pallet Tracking System Depot Code and Tracking number are set, defaults to &amp;quot;PALLET&amp;quot; (for the Palletforce network).&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor=&amp;quot;red&amp;quot;|*	||Linked ID	||C	||40	||If this is set, any jobs with the same linked ID on the same load will be consolidated into a single delivery or collection. {{Note}} Only link jobs of the same type and partner or pallet network.&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor=&amp;quot;red&amp;quot;|*	||Load Information	||C	||500	||If this is set, shown on the ePOD Device Load Information pop-up.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note}} Those items marked with * above have changed or been added since the last implementation of this interface, or are subject to change at this time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Job planned start dates and times should be sent through on the message.&lt;br /&gt;
* Jobs without planned start dates and times, but with a service level agreement against them i.e. AM or PM deliveries, should have the time defaulted appropriately. For example:&lt;br /&gt;
** AM - set to 11:59&lt;br /&gt;
** PM - set to 16:59&lt;br /&gt;
* The jobs should be sent through in the order in which they should be completed on the manifest. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Transferring messages to {{#var:System}} ==&lt;br /&gt;
The files can be :&lt;br /&gt;
* Sent by the partner TMS systems via FTP to an FTP service hosted by OBS Logistics or the partner.&lt;br /&gt;
* Pulled by {{#var:System}} via FTP from an FTP service hosted by the partner.&lt;br /&gt;
* Copied by {{#var:System}} from a shared folder on the partner TMS systems.&lt;br /&gt;
* Copied by the partner TMS systems to a shared folder on {{#var:System}}.&lt;br /&gt;
{{Note}} It is expected that this transfer will be via file transfer though a shared folder on the partner TMS systems.&lt;br /&gt;
&lt;br /&gt;
If a flat-file transfer mechanism is chosen, the final destination folder should contain only completed files in the agreed naming convention, not files in the process of being built. The files should be built and copied under a temporary naming convention, before renaming to CSV file (i.e. .tmp files).&lt;br /&gt;
&lt;br /&gt;
The files to be picked up will be named as follows:&lt;br /&gt;
* &amp;lt;SENDER&amp;gt;_&amp;lt;RECEIVER&amp;gt;_&amp;lt;OPERATING_PARTNER&amp;gt;_&amp;lt;DATE&amp;gt;_&amp;lt;TIME&amp;gt;_&amp;lt;SEQ&amp;gt;.CSV&lt;br /&gt;
where&lt;br /&gt;
* &amp;lt;SENDER&amp;gt; is the system sending the file - expected to be the name of the partner TMS systems&lt;br /&gt;
* &amp;lt;RECEIVER&amp;gt; is the system receiving the file - expected to be &amp;quot;epod&amp;quot;&lt;br /&gt;
* &amp;lt;OPERATING_PARTNER&amp;gt; is the operating partner code, i.e. L02, L03, etc.&lt;br /&gt;
* &amp;lt;DATE&amp;gt; is the date in YYYYMMDD format&lt;br /&gt;
* &amp;lt;TIME&amp;gt; is the time in HHMMSSNN format&lt;br /&gt;
* &amp;lt;SEQ&amp;gt; is a unique counting sequence for each file created in a run.&lt;br /&gt;
&lt;br /&gt;
No responses to the files shall be given - the receiving system ({{#var:System}} in this case) will maintain an audit trail to be examined by the user on event of failure. It is the originating partner's responsibility to monitor their export process for success or failure.&lt;br /&gt;
&lt;br /&gt;
Each manifest should be sent in a separate file, to minimise disruption if a single file fails.&lt;br /&gt;
&lt;br /&gt;
The entire content of the file will fail if there is any issue with the format of the file. A single job will fail if there is an issue with the content of that job - all other jobs will process if they are valid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Importing into {{#var:System}} ==&lt;br /&gt;
A load will be created for the manifest and assigned to the driver and vehicle.&lt;br /&gt;
&lt;br /&gt;
Load start and end times will be set based on the earliest and latest planned start and end times specified against the jobs for that load.&lt;br /&gt;
&lt;br /&gt;
If Load information is provided, this will be added.&lt;br /&gt;
&lt;br /&gt;
If the vehicle does not exist, one will be created with basic information.&lt;br /&gt;
&lt;br /&gt;
Customers will be created for all jobs if they do not already exist. If a customer already exists with a different address, a job-specific address will be created, and the original customer address will not be updated.&lt;br /&gt;
&lt;br /&gt;
Jobs will be created with a specific group per partner (to control partner-specific configuration), unless the job is marked as part of a pallet network, when the configuration will change to that required for the pallet network.&lt;br /&gt;
&lt;br /&gt;
If a linked ID is provided, the jobs with the same linked ID on the load will be consolidated for delivery/collection.&lt;br /&gt;
&lt;br /&gt;
Pallets will be created for the total number of pallets (totalled from the Full, Half, Quarter and Oversize pallets fields), based on the Partner Job ID and a sequence counting for the number of pallets. For example, a job of 3 pallets for Partner Job ID L0100004573083 for partner L01 will have pallets automatically generated as L0100004573083001, L0100004573083002 and L0100004573083003.&lt;br /&gt;
&lt;br /&gt;
Pallets will be generated through different mechanisms, depending on the Pallet Network in use. For example, for Palletforce jobs, these will be created as &amp;quot;506&amp;quot; + PF Depot + ServiceLevel + PF Tracking No + 2-digit sequence. It is expected that any other pallet network/tracking system may employ different naming mechanisms, but these PF fields may be used for any extra data required to be used in the generation of pallet IDs for that system. {{Note}} At this time, only one standard generation mechanism (for Partnerlink) and one bespoke generation mechanism (for Palletforce) exists. If any others are required, these will be undertaken as a change request to the system and charged appropriately.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Receiving Job Updates from {{#var:System}} ==&lt;br /&gt;
A process runs on a timed schedule within the ''CALIDUS'' EPOD application, to pick up any jobs that have been completed and export them to external systems. Alternatively, a data webservice is hosted within {{#var:System}} so that these can be requested on demand, by Job or Date.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== {{#var:System}} Export Message Content ==&lt;br /&gt;
A list of all the fields in the interface for Job follows. A full spreadsheet of all the export flows and fields containing all the limitations on length and defaulted values is provided separately. &lt;br /&gt;
&lt;br /&gt;
'''EPOD_JOB'''&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
!Name	!!width=&amp;quot;50%&amp;quot;|Description	!! Notes&lt;br /&gt;
|-&lt;br /&gt;
|EPL_SITE_ID	||Unique Reference for the Site that the Job belongs to	||The assigned Partner Code&lt;br /&gt;
|-&lt;br /&gt;
|EPL_JOB_ID	||Unique reference for the job. If not provided on Import, this will be generated by EPOD	||	N/A&lt;br /&gt;
|-&lt;br /&gt;
|EPL_LOAD_ID	||Unique Reference for the Load that the Job belongs to. If not provided, defaulted from the enclosing EPOD_LOAD	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_JOB_TYPE	||D=Delivery, C=Collection, S=Service	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_JOB_GROUP	||EPL_JOB_GROUP: This is setup within the Admin system. Each job group has its own settings and will determine how the Job is processed dependant on these settings.	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_JOB_INSTRUCTION	||Instructions for the Driver	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_JOB_SIGNATURE	||The signature taken from the customer when the job was completed. This is in the form of a Base64-encrypted Jpeg file	||&amp;amp;nbsp;	&lt;br /&gt;
|-&lt;br /&gt;
|EPL_REASON_CODE	||If a job has been cancelled, the Job-level reason code entered by the user is held here.	||	&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|EPL_LINKED_REASON	||If the job is a delivery, and a collection of the same load with the same EPL_JOB_CODE is cancelled, this delivery will be cancelled, and this field will be set to &amp;quot;Y&amp;quot;	||	N/A&lt;br /&gt;
|-&lt;br /&gt;
|EPL_STATUS	||EPL_STATUS: Status of the job. &amp;quot;C&amp;quot; for any items delivered/collected with any quantity, &amp;quot;X&amp;quot; if cancelled.	||	&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|EPL_CUSTOMER_CODE	||Customer Code from external system. If not provided, one will be generated from EPL_CUSTOMER_NAME	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_PHOTO_ID	||If cancelled, a photo may have been taken by the user. If so, this field is populated with a unique ID.	||	N/A&lt;br /&gt;
|-&lt;br /&gt;
|EPL_PHOTO	||The photo taken for the exception. This is in the form of a Base64-encrypted Jpeg file	||	&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|EPL_ENG_SIGNATURE	||The signature taken from the driver/engineer when the job was completed, if required. This is in the form of a Base64-encrypted Jpeg file	||	&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|EPL_SEQUENCE	||The sequence of the job. This could be the sequence sent on Import, a pre-defined sequence (if one was not provided) or a user-changed value (if enabled)	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_START_PLANNED_DATE	||Collection/Delivery Window	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_START_PLANNED_TIME	||Collection/Delivery Window	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_END_PLANNED_DATE	||Collection/Delivery Window	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_END_PLANNED_TIME	||Collection/Delivery Window	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_START_ACTUAL_DATE	||The date the user actually chose to start the job. Format: YYYYMMDD	||	&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|EPL_START_ACTUAL_TIME	||The time the user actually chose to start the job. Format HHMMSSNN	||	&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|EPL_ARRIVAL_DATE	||The date the user indicated they arrived at the destination. Format: YYYYMMDD	||	&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|EPL_ARRIVAL_TIME	||The time the user indicated they arrived at the destination. Format HHMMSSNN	||	&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|EPL_END_ACTUAL_DATE	||The date the user completed or cancelled the job. Format: YYYYMMDD	||	&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|EPL_END_ACTUAL_TIME	||The time the user completed or cancelled the job. Format HHMMSSNN	||&amp;amp;nbsp;	&lt;br /&gt;
|-&lt;br /&gt;
|EPL_DISTANCE_PLANNED	||&amp;amp;nbsp;	||	N/A&lt;br /&gt;
|-&lt;br /&gt;
|EPL_DISTANCE_ACTUAL	||&amp;amp;nbsp;	||	N/A&lt;br /&gt;
|-&lt;br /&gt;
|EPL_DRIVING_TIME	||&amp;amp;nbsp;	||	N/A&lt;br /&gt;
|-&lt;br /&gt;
|EPL_CUSTOMER_NAME	||The Name of the customer	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_JOB_ADDRESS	||A flag indicating whether this is a default Customer Address or a specific address for this job alone.	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_ADDRESS_1	||&amp;amp;nbsp;	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_ADDRESS_2	||&amp;amp;nbsp;	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_ADDRESS_3	||&amp;amp;nbsp;	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_ADDRESS_4	||&amp;amp;nbsp;	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_ADDRESS_5	||&amp;amp;nbsp;	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_POSTCODE	||&amp;amp;nbsp;	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_CONTACT	||&amp;amp;nbsp;	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_TELEPHONE	||&amp;amp;nbsp;	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_EMAIL	||&amp;amp;nbsp;	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
||EPL_INVOICED	||A flag indicating the driver ticked an Invoiced box when completing the job.	||	&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|EPL_CUST_SIGNATORY	||The name of the customer signatory on the job.	||	&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|EPL_JOB_CODE	||External reference for the Job. This element can be used to link a collection and delivery together under the same reference. So, if an order is being collected at A and delivered at B, there are 2 jobs, each with a unique Job ID, but with the same Job Code. Optionally, EPOD will keep the Delivery leg of a linked job updated with the information captured from the collection.	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_CUST_REF	||Customer's Order Reference	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_OFFICE_INSTRUCTION	||Instructions for Admin staff	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_SIGNED_UNCHECKED	||An indication whether the customer signed for the goods without checking them first. Note that this field can be used for any check-box entry, as this is configurable.	||	&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|EPL_SO_NUMBER	||Sales Order Reference.	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_TNCS	||An XML fragment, displaying the Terms and Conditions agreed to by the customer when signing for the goods. This can also include up to 3 configurable check-boxes that the user may check.	||	&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|EPL_ORDER_DATE	||Date Order created - defaulted to the date the order was received if not provided	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_ORDER_TIME	||Time Order Created	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_SALES_CONTACT	||The operative who took the order. Can be used as a display field for documentation	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_USER_NOTES	||Optional Notes entered by the driver while completing the job.	||	&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|EPL_OWNER_NAME	||Can be used as a display field for documentation, or indicating another Site ID that owns the job that is being executed by this site.	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_SERVICE_LEVEL	||Display field, containing Service Level text	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_TRAILER_ID	||To be used if the vehicle being used to fulfil the job is a Tractor unit, and a trailer ID has been entered by the user.	||	&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|EPL_PF_DEPOT	||External Pallet System Depot Code	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_PF_TRACKING_NO	||External Pallet System Tracking code, used to generate External Pallet System Pallet IDs	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_EXT_REF	||An external reference for the host system if required. For Partnerlink, this will be the PartnerJobID.	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_LAST_CHANGED_DATE	||&amp;amp;nbsp;	||	&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|EPL_LAST_CHANGED_TIME	||&amp;amp;nbsp;	||	&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|EPL_JOB_STATUS	||A Job Status entered by the driver, usually to indicate whether a job should be re-scheduled. Optional.	||	&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|EPL_COL_DATE	||Collection Date	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_UDF_JOBDETS	||Contains user-defined fields entered when processing Collections and Deliveries on the Job Details tab, in UDF formatted XML	||	N/A&lt;br /&gt;
|-&lt;br /&gt;
|EPL_ACCOUNT	||Account Name	||	N/A&lt;br /&gt;
|-&lt;br /&gt;
|EPL_LINKED_ID	||An identifier that informs the system that this job has been linked (consolidated) with other jobs manually by the driver. The format is irrelevant - if multiple jobs on the same load have the same linked ID, they were consolidated.	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_TIMEZONE	||TimeZone	||	N/A&lt;br /&gt;
|-&lt;br /&gt;
|EPL_LOADING_TYPE	||Controls whether this job is seen to be a Loading task  at a depot (Job Type = &amp;quot;C&amp;quot;) or unloading at a depot (Job Type = &amp;quot;D&amp;quot;). Values can be &amp;quot;Y&amp;quot; or &amp;quot;N&amp;quot; or &amp;quot;&amp;quot; - only &amp;quot;Y&amp;quot; indicates whether the job is a loading/unloading task.	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_GENERATED	||Indicates whether the job is generated within C-EPOD.	||	N/A&lt;br /&gt;
|-&lt;br /&gt;
|EPL_SWAP_VEHICLE	||Whether the vehicle was swapped	||	N/A&lt;br /&gt;
|-&lt;br /&gt;
|EPOD_JOB_ADDRESS	||Any Job address against the job, if different to the customer address. Consisting of the following tags if present:	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_ADDRESS_TYPE	||&amp;quot;D&amp;quot; or &amp;quot;C&amp;quot;	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_ADDRESS_1	||&amp;amp;nbsp;	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_ADDRESS_2	||&amp;amp;nbsp;	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_ADDRESS_3	||&amp;amp;nbsp;	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_ADDRESS_4	||&amp;amp;nbsp;	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_ADDRESS_5	||&amp;amp;nbsp;	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_POSTCODE	||&amp;amp;nbsp;	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_CONTACT	||&amp;amp;nbsp;	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_TELEPHONE	||&amp;amp;nbsp;	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_EMAIL	||&amp;amp;nbsp;	||	As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPOD_CONTAINERS	||Contains a series of EPOD_CONTAINER objects, detailing all the deliverable items on this load. If there are loose products, there will also be a container with ID '000000000000000' holding these products.	||	&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|EPOD_SERVICES	||If the job is a Service, this object contains a series of EPOD_SERVICE objects, each holding all the service-related information for each service item. In that case, no containers or products will be specified against the job.	||	N/A &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''EPOD_CONTAINER'''&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot;|''Sample Code Setup''&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
!Name	!!width=&amp;quot;50%&amp;quot;|Description	!! Notes&lt;br /&gt;
|-&lt;br /&gt;
|EPL_SITE_ID	||Unique Reference for the Site that the Job belongs to	|| As Containing Job&lt;br /&gt;
|-&lt;br /&gt;
|EPL_JOB_ID	||Unique reference for the job. If not provided on Import, this will be generated by EPOD	|| As Containing Job&lt;br /&gt;
|-&lt;br /&gt;
|EPL_CONTAINER_ID	||EPL_CONTAINER_ID: The unique identifier for a container.	|| The Partnerlink Pallet ID, as generated from the import file (dependent on pallet network).&lt;br /&gt;
|-&lt;br /&gt;
|EPL_STATUS	||EPL_STATUS: Status of the current Container. C-Completed, X-Cancelled.	|| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|EPL_SEQUENCE	||A sequence for the containers to be shown on the user's device.	|| As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_CONTAINER_PACKAGE_CODE	||&amp;amp;nbsp;	|| As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_CONTAINER_PACKAGE_DESC	||&amp;amp;nbsp;	|| As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_REASON_CODE	||If a job has been cancelled, the reason code entered by the user is held here.	|| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|EPL_LINKED_REASON	||If the job is a delivery, and a collection of this container on the same load with the same EPL_JOB_CODE is cancelled, this container will be cancelled, and this field will be set to &amp;quot;Y&amp;quot;	|| N/A&lt;br /&gt;
|-&lt;br /&gt;
|EPL_PHOTO_ID	||If cancelled, or received with a clause, a photo may have been taken by the user. If so, this field is populated with a unique ID.	|| N/A&lt;br /&gt;
|-&lt;br /&gt;
|EPL_PHOTO	||The photo taken for the exception. This is in the form of a Base64-encrypted Jpeg file	|| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|EPL_GROSS_WEIGHT	||Gross Weight	|| As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_DESCRIPTION_LONG	||&amp;amp;nbsp;	|| As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_CODE_1	||Multi-purpose field	|| As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_CODE_2	||Multi-purpose field	|| As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_CODE_3	||Multi-purpose field	|| As Sent&lt;br /&gt;
|-&lt;br /&gt;
|EPL_LAST_CHANGED_DATE	||&amp;amp;nbsp;	|| N/A&lt;br /&gt;
|-&lt;br /&gt;
|EPL_LAST_CHANGED_TIME	||&amp;amp;nbsp;	|| N/A&lt;br /&gt;
|-&lt;br /&gt;
|EPL_CUST_COMMENTS	||Optional entry by the user, indicating whether the customer has identified an issue with the received item (a claused receipt). If present, the customer may have requested an image, which would be contained in EPL_PHOTO.	|| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|EPL_VALID_DATE	||The date up until the contents of the package are valid - controls warnings at delivery.	|| N/A&lt;br /&gt;
|-&lt;br /&gt;
|EPL_VALID_TIME	||The time up until the contents of the package are valid - controls warnings at delivery.	|| N/A&lt;br /&gt;
|-&lt;br /&gt;
|EPL_TYPE	||Shows whether this container was Ad Hoc Scanned (&amp;quot;A&amp;quot;) or was preplanned (blank)	|| N/A&lt;br /&gt;
|-&lt;br /&gt;
|EPOD_PRODUCTS	||Contains a series of EPOD_PRODUCTS objects, detailing the products within the container, or loose products	|| N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note}} Regarding Signature and Photo data formats in this message:&lt;br /&gt;
This data is stored and transmitted as a text string, Base64-encrypted. This data can be decoded and saved as binary data once received if required. &lt;br /&gt;
&lt;br /&gt;
A sample of a single job with a single pallet is shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;EPOD_EXPORT_JOB&amp;gt;&lt;br /&gt;
  &amp;lt;EPOD_JOBS&amp;gt;&lt;br /&gt;
    &amp;lt;EPOD_JOB&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_SITE_ID&amp;gt;L03&amp;lt;/EPL_SITE_ID&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_JOB_ID&amp;gt;0000000001&amp;lt;/EPL_JOB_ID&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_LOAD_ID&amp;gt;000000000002&amp;lt;/EPL_LOAD_ID&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_JOB_TYPE&amp;gt;D&amp;lt;/EPL_JOB_TYPE&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_JOB_GROUP&amp;gt;L03&amp;lt;/EPL_JOB_GROUP&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_JOB_INSTRUCTION&amp;gt;Very Fragile Parcel..Please handle with Care&amp;lt;/EPL_JOB_INSTRUCTION&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_JOB_SIGNATURE&amp;gt;R0lGODlh4AB4APcA...NKdJTY4EBAA7&amp;lt;/EPL_JOB_SIGNATURE&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_REASON_CODE&amp;gt;&amp;lt;/EPL_REASON_CODE&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_LINKED_REASON&amp;gt;N&amp;lt;/EPL_LINKED_REASON&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_STATUS&amp;gt;C&amp;lt;/EPL_STATUS&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_CUSTOMER_CODE&amp;gt;OBS&amp;lt;/EPL_CUSTOMER_CODE&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_PHOTO_ID&amp;gt;&amp;lt;/EPL_PHOTO_ID&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_ENG_SIGNATURE&amp;gt;&amp;lt;/EPL_ENG_SIGNATURE&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_SEQUENCE&amp;gt;1&amp;lt;/EPL_SEQUENCE&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_START_PLANNED_DATE&amp;gt;20111108&amp;lt;/EPL_START_PLANNED_DATE&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_START_PLANNED_TIME&amp;gt;12000000&amp;lt;/EPL_START_PLANNED_TIME&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_END_PLANNED_DATE&amp;gt;0&amp;lt;/EPL_END_PLANNED_DATE&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_END_PLANNED_TIME&amp;gt;0&amp;lt;/EPL_END_PLANNED_TIME&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_START_ACTUAL_DATE&amp;gt;20111108&amp;lt;/EPL_START_ACTUAL_DATE&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_START_ACTUAL_TIME&amp;gt;10490000&amp;lt;/EPL_START_ACTUAL_TIME&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_END_ACTUAL_DATE&amp;gt;20111108&amp;lt;/EPL_END_ACTUAL_DATE&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_END_ACTUAL_TIME&amp;gt;10520000&amp;lt;/EPL_END_ACTUAL_TIME&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_DISTANCE_PLANNED&amp;gt;0&amp;lt;/EPL_DISTANCE_PLANNED&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_DISTANCE_ACTUAL&amp;gt;0&amp;lt;/EPL_DISTANCE_ACTUAL&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_DRIVING_TIME&amp;gt;0&amp;lt;/EPL_DRIVING_TIME&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_CUSTOMER_NAME&amp;gt;OBS Logistics&amp;lt;/EPL_CUSTOMER_NAME&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_JOB_ADDRESS&amp;gt;N&amp;lt;/EPL_JOB_ADDRESS&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_ADDRESS_1&amp;gt;Southern Gateway&amp;lt;/EPL_ADDRESS_1&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_ADDRESS_2&amp;gt;Speke Boulevard&amp;lt;/EPL_ADDRESS_2&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_ADDRESS_3&amp;gt;Liverpool&amp;lt;/EPL_ADDRESS_3&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_ADDRESS_4&amp;gt;Merseyside&amp;lt;/EPL_ADDRESS_4&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_ADDRESS_5&amp;gt;&amp;lt;/EPL_ADDRESS_5&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_POSTCODE&amp;gt;L24 9HZ&amp;lt;/EPL_POSTCODE&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_CONTACT&amp;gt;Xavier Wai&amp;lt;/EPL_CONTACT&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_TELEPHONE&amp;gt;01514480331&amp;lt;/EPL_TELEPHONE&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_EMAIL&amp;gt;x.y@obs-logistics.co.uk&amp;lt;/EPL_EMAIL&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_INVOICED&amp;gt;&amp;lt;/EPL_INVOICED&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_CUST_SIGNATORY&amp;gt;&amp;lt;/EPL_CUST_SIGNATORY&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_JOB_CODE&amp;gt;L03&amp;lt;/EPL_JOB_CODE&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_CUST_REF&amp;gt;&amp;lt;/EPL_CUST_REF&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_OFFICE_INSTRUCTION&amp;gt;&amp;lt;/EPL_OFFICE_INSTRUCTION&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_SIGNED_UNCHECKED&amp;gt;&amp;lt;/EPL_SIGNED_UNCHECKED&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_SO_NUMBER&amp;gt;&amp;lt;/EPL_SO_NUMBER&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_TNCS&amp;gt;&amp;lt;/EPL_TNCS&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_ORDER_DATE&amp;gt;0&amp;lt;/EPL_ORDER_DATE&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_SALES_CONTACT&amp;gt;&amp;lt;/EPL_SALES_CONTACT&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_USER_NOTES&amp;gt;&amp;lt;/EPL_USER_NOTES&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_OWNER_NAME&amp;gt;&amp;lt;/EPL_OWNER_NAME&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_SERVICE_LEVEL&amp;gt;&amp;lt;/EPL_SERVICE_LEVEL&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_TRAILER_ID&amp;gt;&amp;lt;/EPL_TRAILER_ID&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_EXT_REF&amp;gt;&amp;lt;/EPL_EXT_REF&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_LAST_CHANGED_DATE&amp;gt;20120314&amp;lt;/EPL_LAST_CHANGED_DATE&amp;gt;&lt;br /&gt;
      &amp;lt;EPL_LAST_CHANGED_TIME&amp;gt;9420098&amp;lt;/EPL_LAST_CHANGED_TIME&amp;gt;&lt;br /&gt;
      &amp;lt;EPOD_CONTAINERS&amp;gt;&lt;br /&gt;
        &amp;lt;EPOD_CONTAINER&amp;gt;&lt;br /&gt;
          &amp;lt;EPL_SITE_ID&amp;gt;L03&amp;lt;/EPL_SITE_ID&amp;gt;&lt;br /&gt;
          &amp;lt;EPL_JOB_ID&amp;gt;0000000001&amp;lt;/EPL_JOB_ID&amp;gt;&lt;br /&gt;
          &amp;lt;EPL_CONTAINER_ID&amp;gt;000000000000001&amp;lt;/EPL_CONTAINER_ID&amp;gt;&lt;br /&gt;
          &amp;lt;EPL_SEQUENCE&amp;gt;0&amp;lt;/EPL_SEQUENCE&amp;gt;&lt;br /&gt;
          &amp;lt;EPL_CONTAINER_PACKAGE_CODE&amp;gt;XX&amp;lt;/EPL_CONTAINER_PACKAGE_CODE&amp;gt;&lt;br /&gt;
          &amp;lt;EPL_CONTAINER_PACKAGE_DESC&amp;gt;Pallet&amp;lt;/EPL_CONTAINER_PACKAGE_DESC&amp;gt;&lt;br /&gt;
          &amp;lt;EPL_REASON_CODE&amp;gt;&amp;lt;/EPL_REASON_CODE&amp;gt;&lt;br /&gt;
          &amp;lt;EPL_LINKED_REASON&amp;gt;&amp;lt;/EPL_LINKED_REASON&amp;gt;&lt;br /&gt;
          &amp;lt;EPL_STATUS&amp;gt;C&amp;lt;/EPL_STATUS&amp;gt;&lt;br /&gt;
          &amp;lt;EPL_PHOTO_ID&amp;gt;&amp;lt;/EPL_PHOTO_ID&amp;gt;&lt;br /&gt;
          &amp;lt;EPL_CUST_COMMENTS&amp;gt;&amp;lt;/EPL_CUST_COMMENTS&amp;gt;&lt;br /&gt;
          &amp;lt;EPL_GROSS_WEIGHT&amp;gt;120&amp;lt;/EPL_GROSS_WEIGHT&amp;gt;&lt;br /&gt;
          &amp;lt;EPL_DESCRIPTION_LONG&amp;gt;&amp;lt;/EPL_DESCRIPTION_LONG&amp;gt;&lt;br /&gt;
          &amp;lt;EPL_CODE_1&amp;gt;1&amp;lt;/EPL_CODE_1&amp;gt;&lt;br /&gt;
          &amp;lt;EPL_CODE_2&amp;gt;&amp;lt;/EPL_CODE_2&amp;gt;&lt;br /&gt;
          &amp;lt;EPL_CODE_3&amp;gt;&amp;lt;/EPL_CODE_3&amp;gt;&lt;br /&gt;
          &amp;lt;EPL_LAST_CHANGED_DATE&amp;gt;20120614&amp;lt;/EPL_LAST_CHANGED_DATE&amp;gt;&lt;br /&gt;
          &amp;lt;EPL_LAST_CHANGED_TIME&amp;gt;16362322&amp;lt;/EPL_LAST_CHANGED_TIME&amp;gt;&lt;br /&gt;
        &amp;lt;/EPOD_CONTAINER&amp;gt;&lt;br /&gt;
      &amp;lt;/EPOD_CONTAINERS&amp;gt;&lt;br /&gt;
      &amp;lt;EPOD_SERVICES&amp;gt;&amp;lt;/EPOD_SERVICES&amp;gt;&lt;br /&gt;
    &amp;lt;/EPOD_JOB&amp;gt;&lt;br /&gt;
  &amp;lt;/EPOD_JOBS&amp;gt;&lt;br /&gt;
&amp;lt;/EPOD_EXPORT_JOB&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Note}} The signature has been shortened for the purposes of this document.&lt;br /&gt;
&lt;br /&gt;
== {{#var:System}} Export Mechanism ==&lt;br /&gt;
The files can be:&lt;br /&gt;
*    Pulled by the partner TMS system via FTP from an FTP service hosted by OBS.&lt;br /&gt;
*    Sent by {{#var:System}} via FTP to an FTP service hosted by OBS Logistics or the partner TMS provider.&lt;br /&gt;
*    Copied by {{#var:System}} to a shared folder between {{#var:System}} and the partner TMS system.&lt;br /&gt;
*    Copied by the partner TMS system from a shared folder between {{#var:System}} and the partner TMS system. &lt;br /&gt;
*    Pushed to a webservice hosted by the partner TMS system.&lt;br /&gt;
{{note}} It is expected that this transfer will be via file transfer though a shared folder on the partner TMS system.&lt;br /&gt;
&lt;br /&gt;
Regardless of the mechanism chosen above, the final destination folder should contain only completed files in the agreed naming convention, not files being built. The files should be built and copied under a temporary naming convention, before renaming to CSV file (i.e. .tmp files).&lt;br /&gt;
&lt;br /&gt;
The files to be picked up will be named as follows:&lt;br /&gt;
*    &amp;lt;SENDER&amp;gt;_&amp;lt;RECEIVER&amp;gt;_&amp;lt;OPERATING_PARTNER&amp;gt;_&amp;lt;DATE&amp;gt;_&amp;lt;TIME&amp;gt;_&amp;lt;SEQ&amp;gt;.xml &lt;br /&gt;
where&lt;br /&gt;
*    &amp;lt;SENDER&amp;gt; is the system sending the file - expected to be &amp;quot;epod&amp;quot;.&lt;br /&gt;
*    &amp;lt;RECEIVER&amp;gt; is the system receiving the file - expected to be the name of the partner TMS systems.&lt;br /&gt;
*    &amp;lt;OPERATING_PARTNER&amp;gt; is the operating partner code, i.e. L02, L03, etc.&lt;br /&gt;
*    &amp;lt;DATE&amp;gt; is the date in YYYYMMDD format&lt;br /&gt;
*    &amp;lt;TIME&amp;gt; is the time in HHMMSSNN format&lt;br /&gt;
*    &amp;lt;SEQ&amp;gt; is a unique counting sequence for each file created in a run. &lt;br /&gt;
&lt;br /&gt;
No responses to the files shall be given - the receiving system (the partner TMS system in this case) will maintain an audit trail to be examined by the user on event of failure.&lt;br /&gt;
&lt;br /&gt;
{{#var:System}} export mechanism includes facility to automatically resend failed transmissions.&lt;br /&gt;
&lt;br /&gt;
Each job will be sent in a separate file, to minimise disruption if a single file fails.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- MEDIA LANDSCAPE NO --&amp;gt; &lt;br /&gt;
{{Doc_Appendix&lt;br /&gt;
|Appendix=A&lt;br /&gt;
|Estimate=N&lt;br /&gt;
|Glossary=EPOD&lt;br /&gt;
|Ref1=JobShare Mapping v1.1.xlsx&lt;br /&gt;
|RefV1=1.1&lt;br /&gt;
|RefDate1=20/05/2015&lt;br /&gt;
|Ref2=EPOD Export Mapping v3.11.xlsx&lt;br /&gt;
|RefV2=3.11&lt;br /&gt;
|RefDate2=20/05/2015&lt;br /&gt;
|Ref3=FS 291096 Interface with CALIDUS ePOD v1.0.pdf&lt;br /&gt;
|RefV3=1.0&lt;br /&gt;
|RefDate3=5/02/2015&lt;br /&gt;
|REQ=0&lt;br /&gt;
|EST=0&lt;br /&gt;
|FS=0&lt;br /&gt;
|TS=0&lt;br /&gt;
|DEV=0&lt;br /&gt;
|ST=0&lt;br /&gt;
|IMP=0&lt;br /&gt;
|Client={{#var:Client}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
|FSEST=Y&lt;br /&gt;
|Rev1=Matt Turner&lt;br /&gt;
|Rev1Title=OBS Account Manager&lt;br /&gt;
|Rev2=Murray Middleton&lt;br /&gt;
|Rev2Title=OBS Product Development Manager&lt;br /&gt;
}}&amp;lt;/div&amp;gt; &lt;br /&gt;
[[Category:{{#var:Client}} FS]]&lt;/div&gt;</summary>
		<author><name>Rmg</name></author>
	</entry>
	<entry>
		<id>https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_313475_PROD_Orders_on_Multiple_Trips&amp;diff=1470</id>
		<title>FS 313475 PROD Orders on Multiple Trips</title>
		<link rel="alternate" type="text/html" href="https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_313475_PROD_Orders_on_Multiple_Trips&amp;diff=1470"/>
		<updated>2014-03-18T08:19:45Z</updated>

		<summary type="html">&lt;p&gt;Rmg: Update version for last edit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
{{#vardefine:Client|PROD}}&lt;br /&gt;
{{#vardefine:ClientName|PROD}}&lt;br /&gt;
{{#vardefine:System|''CALIDUS'' ePOD}}&lt;br /&gt;
{{#vardefine:Doc_Title|PROD Orders on Multiple Trips}}&lt;br /&gt;
{{#vardefine:Version|0.3}}&lt;br /&gt;
{{#vardefine:Date|5th February 2014}}&lt;br /&gt;
{{#vardefine:Reference|313475}}&lt;br /&gt;
{{#vardefine:Year|2014}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Doc_Title&lt;br /&gt;
|Client={{#var:ClientName}}&lt;br /&gt;
|System={{#var:System}}&lt;br /&gt;
|Title={{#var:Doc_Title}}&lt;br /&gt;
|Reference=FS {{#var:Reference}}&lt;br /&gt;
|Version={{#var:Version}}&lt;br /&gt;
|Date={{#var:Date}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TOC --&amp;gt; &lt;br /&gt;
&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
= Functional Overview  =&lt;br /&gt;
== Client Requirement  ==&lt;br /&gt;
The included functionality to be specified is shown below:&lt;br /&gt;
:Currently  ePOD does not support a single C-TMS order being delivered across multiple trips – an order/job can only exist on one load. Current job ID/ Job code is not sufficient to support this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Solution Overview ==&lt;br /&gt;
The problems with orders on multiple trips exist in both ''CALIDUS'' TMS' and EPOD's interfaces, as follows: &lt;br /&gt;
;''CALIDUS'' TMS:&lt;br /&gt;
*	EPL_JOB_ID is currently set to a repeating value in the interface (from OMS_REF and a Job Type). The interface must be changed to remove this in a configurable fashion, and the following field mapping to take its place:&lt;br /&gt;
**	OMS_REF to EPL_JOB_CODE&lt;br /&gt;
**	SO_REF to EPL_CUST_REF&lt;br /&gt;
;{{#var:System}}:&lt;br /&gt;
*	The system currently identifies jobs as duplicates (and therefore requiring an update) by EPL_SITE_ID and EPL_JOB_ID. If EPL_JOB_ID is not provided in the interface (as will now be the case with the ''CALIDUS'' TMS interface changes), the system currently uses a combination of EPL_SITE_ID, EPL_JOB_CODE and EPL_JOB_TYPE. This is not appropriate when the order (EPL_JOB_CODE) can exist on multiple loads (trips) at the same time, for example for cross-dock or inter-depot transfers. This will change to be EPL_SITE_ID, EPL_LOAD_ID, EPL_JOB_CODE and EPL_JOB_TYPE and will be added to the generic webservices import process and auto-import process.&lt;br /&gt;
*	A unique index will be added to the database to allow this search to be quick. Additionally, large volumes of data will be checked on multiple client sites to ensure that this will not cause issues. If so, this index will still be added but will be made repeating instead.&lt;br /&gt;
*	If the job is found this way, the job will be updated. If not, a new job will be created.&lt;br /&gt;
*	If a job is removed from a load, the job will have the load removed if this combination of EPL_SITE/EPL_LOAD/EPL_JOB_CODE/EPL_JOB_TYPE does not already exist, wherein it will be deleted instead.&lt;br /&gt;
* Due to the changes in the data being sent to {{#var:System}}, it is now no longer appropriate to display EPL_JOB_ID as the main reference for most customers, as this is generally a system-generated field. Instead, {{#var:System}} will be modified to allow the selection of several fields as the main identifier displayed on the system, at a Site level. This will allow the selection from the following references: EPL_JOB_ID, EPL_JOB_CODE, EPL_SO_REF, EPL_CUST_REF, EPL_EXT_REF. This change will remain backward-compatible by ensuring the existing values of Y and N map to EPL_JOB_CODE and EPL_JOB_ID respectively.&lt;br /&gt;
*	Loads are unique within ''CALIDUS'' TMS without Site, and it is capable of dynamically changing the site on a Load. The Import mechanism will allow for this by checking whether a particular Site is configured to allow this kind of change (through a new configuration flag):&lt;br /&gt;
** If configured, add the following processing at the start of the processing: &lt;br /&gt;
** Search for the Load as normal.&lt;br /&gt;
** If not found and the Site is configured to allow this kind of change (through a new configuration flag):&lt;br /&gt;
*** Search for the Load with a wild-card (%) in the Site parameter, but with the passed-in Trip ID.&lt;br /&gt;
*** If found, and the site is different on the XML to the record, delete this load (and all contained jobs) under the old Site ID.&lt;br /&gt;
** Continue adding the load under the new Site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
{{Note|This functionality will be developed in the Android application only and will not be available in the Windows Mobile application.}}&lt;br /&gt;
{{Note|''CALIDUS'' TMS functionality is mentioned only by reference in this solution - see elsewhere for specification of the changes to that system.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
= Set-up  =&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites  ==&lt;br /&gt;
* A working {{#var:System}} system.&lt;br /&gt;
* A working ''CALIDUS'' TMS system, accessible to the {{#var:System}} system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Menu Structure  ==&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
== Data  ==&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
= Functional Description  =&lt;br /&gt;
== Database/DAL ==&lt;br /&gt;
Table EPOD_SITE requires the following modification:&lt;br /&gt;
* EPL_DISP_JOB_CODE - amended to nvarchar(40), NOT NULL DEFAULT 'N', no specific values.&lt;br /&gt;
* EPL_SYSTEM_LOADS_UNIQUE - nvarchar(1), NOT NULL DEFAULT 'N', VALUES 'Y', 'N'.&lt;br /&gt;
Existing packages will be modified to allow the creating, editing and selecting of the flags, including but not limited to:&lt;br /&gt;
*EPOD_SITE_INSERT&lt;br /&gt;
*EPOD_SITE_SELECT&lt;br /&gt;
*EPOD_SITE_SELECT_UPDATED_DATA&lt;br /&gt;
*EPOD_SITE_UPDATE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Table EPOD_JOB requires the following modification:&lt;br /&gt;
* Add a unique index to the table as follows:&lt;br /&gt;
** EPL_SITE_ID&lt;br /&gt;
** EPL_LOAD_ID&lt;br /&gt;
** EPL_JOB_CODE&lt;br /&gt;
** EPL_JOB_TYPE&lt;br /&gt;
{{Note}} Large volumes of customers' data must be checked on multiple client sites to ensure that this will not cause issues. If this is the case, this index will still be added but will be made repeating instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import Changes ==&lt;br /&gt;
The dataservice webservices (ePOD_DataService.asmx and ePOD_DataService2.asmx) and the AutoImport application will need to change how jobs are imported. The messages affected are:&lt;br /&gt;
* AutoImport and ePOD_DataService:&lt;br /&gt;
** EPOD_XML_IMPORT&lt;br /&gt;
&lt;br /&gt;
The functional changes required are:&lt;br /&gt;
*	Add EPL_LOAD ID when checking whether a Job exists without using EPL_JOB_ID. I.e. this becomes EPL_SITE_ID, EPL_LOAD_ID, EPL_JOB_CODE, EPL_JOB_TYPE. Add this to generic webservices import process and auto-import process.&lt;br /&gt;
*	If the job is found this way, the job will be updated. If not, a new job will be created.&lt;br /&gt;
*	If jobs are removed from a load (i.e. when completed processing all the jobs on the XML, there are still Jobs remaining on the Load that were not in the XML), these job will be deleted.&lt;br /&gt;
*	Additionally, if a trip is sent through with no jobs, or a deletion notification, the entire Load and Jobs within it shall be deleted as well. {{Note}} The existing method PDA_LOAD.Delete() does not delete the jobs - it specifically orphans them, so the deletion of jobs should be issued first, followed by the deletion of the load.&lt;br /&gt;
&lt;br /&gt;
Loads are unique within ''CALIDUS'' TMS without Site, and it is capable of dynamically changing the Site on a Load. The Import mechanism will allow for this by checking whether a particular Site is configured to allow this kind of change (through the new EPL_SYSTEM_LOADS_UNIQUE flag being set to 'Y')&lt;br /&gt;
* If configured, add the following processing at the start of the processing: &lt;br /&gt;
* Search for the Load as normal.&lt;br /&gt;
* If not found and the Site is configured to allow this kind of change (through a new configuration flag):&lt;br /&gt;
** Search for the Load with a wild-card (%) in the Site parameter, but with the passed-in Trip ID.&lt;br /&gt;
** If found, and the site is different on the XML to the record, delete this load (and all contained jobs) under the old Site ID.&lt;br /&gt;
* Continue adding the load under the new Site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Admin Changes ==&lt;br /&gt;
The Site screen (site_header.aspx) will be modified as follows when editing or adding new data:&lt;br /&gt;
* PDA tab:&lt;br /&gt;
** The existing label &amp;quot;Display Job Code&amp;quot; will become &amp;quot;Display Job As&amp;quot;&lt;br /&gt;
** The check box will become a drop-down list with the following values:&lt;br /&gt;
*** &amp;quot;EPL_JOB_ID&amp;quot;, description &amp;quot;Job ID&amp;quot;&lt;br /&gt;
*** &amp;quot;EPL_JOB_CODE&amp;quot;, description &amp;quot;Job Code/Order No&amp;quot;&lt;br /&gt;
*** &amp;quot;EPL_SO_NUMBER&amp;quot;, description &amp;quot;S/O No&amp;quot;&lt;br /&gt;
*** &amp;quot;EPL_CUST_REF&amp;quot;, description &amp;quot;Customer's Ref&amp;quot;&lt;br /&gt;
*** &amp;quot;EPL_EXT_REF&amp;quot;, description &amp;quot;External System Ref&amp;quot;&lt;br /&gt;
** Existing data will be translated as follows, when saving:&lt;br /&gt;
*** Value &amp;quot;N&amp;quot; becomes &amp;quot;EPL_JOB_ID&amp;quot;&lt;br /&gt;
*** Value &amp;quot;Y&amp;quot; becomes &amp;quot;EPL_JOB_CODE&amp;quot;&lt;br /&gt;
** {{Note}} As this element is becoming a drop-down list rather than a check-box entry, it must be repositioned in the screen with the other drop-down-lists. Ensure as part of this change that the existing check-boxes still line up and are displayed neatly.&lt;br /&gt;
* Admin tab:&lt;br /&gt;
** A new flag will be added to update the new flag EPL_SYSTEM_LOADS_UNIQUE, labelled as &amp;quot;Loads Unique Within System&amp;quot;. This will be added as a check-box, where checked sets the value to 'Y' when saved, and unchecked sets the value to 'N'.&lt;br /&gt;
&lt;br /&gt;
[[file:FS_313475_1.PNG|border|600px]]&amp;lt;br /&amp;gt;Site Admin screen&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PDA Changes ==&lt;br /&gt;
=== PDA DAL/Database Changes ===&lt;br /&gt;
The following changes will be made to the EPOD_SITE table:&lt;br /&gt;
*	EPL_DISP_JOB_CODE – This will become a 40 character field. The default value will now be 'Y'.&lt;br /&gt;
This new field should be added to every procedure as part of the PDA_SITE DAL object.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following fields will be added to the EPOD_JOB table:&lt;br /&gt;
* EPL_SO_NUMBER - This is a 40 character field. The default value is &amp;quot;&amp;quot; (a null string).&lt;br /&gt;
* EPL_CUST_REF -  This is a 30 character field. The default value is &amp;quot;&amp;quot; (a null string).&lt;br /&gt;
* EPL_EXT_REF -  This is a 30 character field. The default value is &amp;quot;&amp;quot; (a null string).&lt;br /&gt;
These new fields should be added to every procedure as part of the PDA_SITE DAL object.&lt;br /&gt;
&lt;br /&gt;
The existing functionality to set the value of the property EPL_DISP_JOB_ID in PDA_JOB based on the setting of EPL_PDA_DIS_JOB_CODE in PDA_SITE will be modified to use the name of the field specified in the EPL_PDA_DIS_JOB_CODE field, with the following exceptions:&lt;br /&gt;
* Value &amp;quot;N&amp;quot; becomes &amp;quot;EPL_JOB_ID&amp;quot;&lt;br /&gt;
* Value &amp;quot;Y&amp;quot; becomes &amp;quot;EPL_JOB_CODE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note}} In the event that the chosen data field has no data in it (i.e. is blank, a null string), then the system should default to the following fields, in this order, if they are not blank themselves:&lt;br /&gt;
* EPL_JOB_CODE&lt;br /&gt;
* EPL_JOB_ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 MEDIA LANDSCAPE YES&lt;br /&gt;
= Appendix A: TEST PLAN  =&lt;br /&gt;
&lt;br /&gt;
{{TestPlan_Header&lt;br /&gt;
|Title={{#var:Doc_Title}}&lt;br /&gt;
|Log={{#var:Reference}}&lt;br /&gt;
|Description=Test the ...&lt;br /&gt;
|MenuAccess=None&lt;br /&gt;
|Prerequisites=None&lt;br /&gt;
|Objective=To test that: ...&lt;br /&gt;
}} &lt;br /&gt;
{{ #vardefine: Cycle | 0 }}{{ #vardefine: SubCycle | 0 }}&lt;br /&gt;
{{TestPlan_CycleHeader&lt;br /&gt;
|Cycle={{ #vardefineecho: Cycle | {{ #expr: {{ #var: Cycle }} + 1 }} }}{{ #vardefine: SubCycle | {{ #var: Cycle }} }}&lt;br /&gt;
|Title=Test Title&lt;br /&gt;
|Notes=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Do something&lt;br /&gt;
|Result=Some expected results&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_CycleFooter}} &lt;br /&gt;
&lt;br /&gt;
MEDIA LANDSCAPE NO&lt;br /&gt;
--&amp;gt; &lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
{{Doc_Appendix&lt;br /&gt;
|Appendix=A&lt;br /&gt;
|Estimate=Y&lt;br /&gt;
|Glossary=EPOD&lt;br /&gt;
|Ref1=&lt;br /&gt;
|RefV1=&lt;br /&gt;
|RefDate1=&lt;br /&gt;
|REQ=0&lt;br /&gt;
|EST=0&lt;br /&gt;
|FS=0.5&lt;br /&gt;
|TS=0&lt;br /&gt;
|DEV=5&lt;br /&gt;
|ST=0.5&lt;br /&gt;
|IMP=0.25&lt;br /&gt;
|EREQ=0&lt;br /&gt;
|EEST=0&lt;br /&gt;
|EFS=0&lt;br /&gt;
|ETS=0&lt;br /&gt;
|EDEV=0&lt;br /&gt;
|ESTT=0&lt;br /&gt;
|EIMP=0&lt;br /&gt;
|Client={{#var:Client}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
|FSEST=Y&lt;br /&gt;
|FOC=Y&lt;br /&gt;
|Rev1=Matt Tipping&lt;br /&gt;
|Rev1Title=Project Manager&lt;br /&gt;
|Rev2Title=Client Representative&lt;br /&gt;
}}&amp;lt;/div&amp;gt; &lt;br /&gt;
[[Category:{{#var:Client}} FS]]&lt;/div&gt;</summary>
		<author><name>Rmg</name></author>
	</entry>
	<entry>
		<id>https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_313475_PROD_Orders_on_Multiple_Trips&amp;diff=1469</id>
		<title>FS 313475 PROD Orders on Multiple Trips</title>
		<link rel="alternate" type="text/html" href="https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_313475_PROD_Orders_on_Multiple_Trips&amp;diff=1469"/>
		<updated>2014-03-18T08:18:51Z</updated>

		<summary type="html">&lt;p&gt;Rmg: Clarification of PDA setting of EPL_DISP_JOB_ID and removing some redundant options&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
{{#vardefine:Client|PROD}}&lt;br /&gt;
{{#vardefine:ClientName|PROD}}&lt;br /&gt;
{{#vardefine:System|''CALIDUS'' ePOD}}&lt;br /&gt;
{{#vardefine:Doc_Title|PROD Orders on Multiple Trips}}&lt;br /&gt;
{{#vardefine:Version|0.2}}&lt;br /&gt;
{{#vardefine:Date|5th February 2014}}&lt;br /&gt;
{{#vardefine:Reference|313475}}&lt;br /&gt;
{{#vardefine:Year|2014}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Doc_Title&lt;br /&gt;
|Client={{#var:ClientName}}&lt;br /&gt;
|System={{#var:System}}&lt;br /&gt;
|Title={{#var:Doc_Title}}&lt;br /&gt;
|Reference=FS {{#var:Reference}}&lt;br /&gt;
|Version={{#var:Version}}&lt;br /&gt;
|Date={{#var:Date}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TOC --&amp;gt; &lt;br /&gt;
&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
= Functional Overview  =&lt;br /&gt;
== Client Requirement  ==&lt;br /&gt;
The included functionality to be specified is shown below:&lt;br /&gt;
:Currently  ePOD does not support a single C-TMS order being delivered across multiple trips – an order/job can only exist on one load. Current job ID/ Job code is not sufficient to support this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Solution Overview ==&lt;br /&gt;
The problems with orders on multiple trips exist in both ''CALIDUS'' TMS' and EPOD's interfaces, as follows: &lt;br /&gt;
;''CALIDUS'' TMS:&lt;br /&gt;
*	EPL_JOB_ID is currently set to a repeating value in the interface (from OMS_REF and a Job Type). The interface must be changed to remove this in a configurable fashion, and the following field mapping to take its place:&lt;br /&gt;
**	OMS_REF to EPL_JOB_CODE&lt;br /&gt;
**	SO_REF to EPL_CUST_REF&lt;br /&gt;
;{{#var:System}}:&lt;br /&gt;
*	The system currently identifies jobs as duplicates (and therefore requiring an update) by EPL_SITE_ID and EPL_JOB_ID. If EPL_JOB_ID is not provided in the interface (as will now be the case with the ''CALIDUS'' TMS interface changes), the system currently uses a combination of EPL_SITE_ID, EPL_JOB_CODE and EPL_JOB_TYPE. This is not appropriate when the order (EPL_JOB_CODE) can exist on multiple loads (trips) at the same time, for example for cross-dock or inter-depot transfers. This will change to be EPL_SITE_ID, EPL_LOAD_ID, EPL_JOB_CODE and EPL_JOB_TYPE and will be added to the generic webservices import process and auto-import process.&lt;br /&gt;
*	A unique index will be added to the database to allow this search to be quick. Additionally, large volumes of data will be checked on multiple client sites to ensure that this will not cause issues. If so, this index will still be added but will be made repeating instead.&lt;br /&gt;
*	If the job is found this way, the job will be updated. If not, a new job will be created.&lt;br /&gt;
*	If a job is removed from a load, the job will have the load removed if this combination of EPL_SITE/EPL_LOAD/EPL_JOB_CODE/EPL_JOB_TYPE does not already exist, wherein it will be deleted instead.&lt;br /&gt;
* Due to the changes in the data being sent to {{#var:System}}, it is now no longer appropriate to display EPL_JOB_ID as the main reference for most customers, as this is generally a system-generated field. Instead, {{#var:System}} will be modified to allow the selection of several fields as the main identifier displayed on the system, at a Site level. This will allow the selection from the following references: EPL_JOB_ID, EPL_JOB_CODE, EPL_SO_REF, EPL_CUST_REF, EPL_EXT_REF. This change will remain backward-compatible by ensuring the existing values of Y and N map to EPL_JOB_CODE and EPL_JOB_ID respectively.&lt;br /&gt;
*	Loads are unique within ''CALIDUS'' TMS without Site, and it is capable of dynamically changing the site on a Load. The Import mechanism will allow for this by checking whether a particular Site is configured to allow this kind of change (through a new configuration flag):&lt;br /&gt;
** If configured, add the following processing at the start of the processing: &lt;br /&gt;
** Search for the Load as normal.&lt;br /&gt;
** If not found and the Site is configured to allow this kind of change (through a new configuration flag):&lt;br /&gt;
*** Search for the Load with a wild-card (%) in the Site parameter, but with the passed-in Trip ID.&lt;br /&gt;
*** If found, and the site is different on the XML to the record, delete this load (and all contained jobs) under the old Site ID.&lt;br /&gt;
** Continue adding the load under the new Site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
{{Note|This functionality will be developed in the Android application only and will not be available in the Windows Mobile application.}}&lt;br /&gt;
{{Note|''CALIDUS'' TMS functionality is mentioned only by reference in this solution - see elsewhere for specification of the changes to that system.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
= Set-up  =&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites  ==&lt;br /&gt;
* A working {{#var:System}} system.&lt;br /&gt;
* A working ''CALIDUS'' TMS system, accessible to the {{#var:System}} system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Menu Structure  ==&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
== Data  ==&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
= Functional Description  =&lt;br /&gt;
== Database/DAL ==&lt;br /&gt;
Table EPOD_SITE requires the following modification:&lt;br /&gt;
* EPL_DISP_JOB_CODE - amended to nvarchar(40), NOT NULL DEFAULT 'N', no specific values.&lt;br /&gt;
* EPL_SYSTEM_LOADS_UNIQUE - nvarchar(1), NOT NULL DEFAULT 'N', VALUES 'Y', 'N'.&lt;br /&gt;
Existing packages will be modified to allow the creating, editing and selecting of the flags, including but not limited to:&lt;br /&gt;
*EPOD_SITE_INSERT&lt;br /&gt;
*EPOD_SITE_SELECT&lt;br /&gt;
*EPOD_SITE_SELECT_UPDATED_DATA&lt;br /&gt;
*EPOD_SITE_UPDATE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Table EPOD_JOB requires the following modification:&lt;br /&gt;
* Add a unique index to the table as follows:&lt;br /&gt;
** EPL_SITE_ID&lt;br /&gt;
** EPL_LOAD_ID&lt;br /&gt;
** EPL_JOB_CODE&lt;br /&gt;
** EPL_JOB_TYPE&lt;br /&gt;
{{Note}} Large volumes of customers' data must be checked on multiple client sites to ensure that this will not cause issues. If this is the case, this index will still be added but will be made repeating instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import Changes ==&lt;br /&gt;
The dataservice webservices (ePOD_DataService.asmx and ePOD_DataService2.asmx) and the AutoImport application will need to change how jobs are imported. The messages affected are:&lt;br /&gt;
* AutoImport and ePOD_DataService:&lt;br /&gt;
** EPOD_XML_IMPORT&lt;br /&gt;
&lt;br /&gt;
The functional changes required are:&lt;br /&gt;
*	Add EPL_LOAD ID when checking whether a Job exists without using EPL_JOB_ID. I.e. this becomes EPL_SITE_ID, EPL_LOAD_ID, EPL_JOB_CODE, EPL_JOB_TYPE. Add this to generic webservices import process and auto-import process.&lt;br /&gt;
*	If the job is found this way, the job will be updated. If not, a new job will be created.&lt;br /&gt;
*	If jobs are removed from a load (i.e. when completed processing all the jobs on the XML, there are still Jobs remaining on the Load that were not in the XML), these job will be deleted.&lt;br /&gt;
*	Additionally, if a trip is sent through with no jobs, or a deletion notification, the entire Load and Jobs within it shall be deleted as well. {{Note}} The existing method PDA_LOAD.Delete() does not delete the jobs - it specifically orphans them, so the deletion of jobs should be issued first, followed by the deletion of the load.&lt;br /&gt;
&lt;br /&gt;
Loads are unique within ''CALIDUS'' TMS without Site, and it is capable of dynamically changing the Site on a Load. The Import mechanism will allow for this by checking whether a particular Site is configured to allow this kind of change (through the new EPL_SYSTEM_LOADS_UNIQUE flag being set to 'Y')&lt;br /&gt;
* If configured, add the following processing at the start of the processing: &lt;br /&gt;
* Search for the Load as normal.&lt;br /&gt;
* If not found and the Site is configured to allow this kind of change (through a new configuration flag):&lt;br /&gt;
** Search for the Load with a wild-card (%) in the Site parameter, but with the passed-in Trip ID.&lt;br /&gt;
** If found, and the site is different on the XML to the record, delete this load (and all contained jobs) under the old Site ID.&lt;br /&gt;
* Continue adding the load under the new Site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Admin Changes ==&lt;br /&gt;
The Site screen (site_header.aspx) will be modified as follows when editing or adding new data:&lt;br /&gt;
* PDA tab:&lt;br /&gt;
** The existing label &amp;quot;Display Job Code&amp;quot; will become &amp;quot;Display Job As&amp;quot;&lt;br /&gt;
** The check box will become a drop-down list with the following values:&lt;br /&gt;
*** &amp;quot;EPL_JOB_ID&amp;quot;, description &amp;quot;Job ID&amp;quot;&lt;br /&gt;
*** &amp;quot;EPL_JOB_CODE&amp;quot;, description &amp;quot;Job Code/Order No&amp;quot;&lt;br /&gt;
*** &amp;quot;EPL_SO_NUMBER&amp;quot;, description &amp;quot;S/O No&amp;quot;&lt;br /&gt;
*** &amp;quot;EPL_CUST_REF&amp;quot;, description &amp;quot;Customer's Ref&amp;quot;&lt;br /&gt;
*** &amp;quot;EPL_EXT_REF&amp;quot;, description &amp;quot;External System Ref&amp;quot;&lt;br /&gt;
** Existing data will be translated as follows, when saving:&lt;br /&gt;
*** Value &amp;quot;N&amp;quot; becomes &amp;quot;EPL_JOB_ID&amp;quot;&lt;br /&gt;
*** Value &amp;quot;Y&amp;quot; becomes &amp;quot;EPL_JOB_CODE&amp;quot;&lt;br /&gt;
** {{Note}} As this element is becoming a drop-down list rather than a check-box entry, it must be repositioned in the screen with the other drop-down-lists. Ensure as part of this change that the existing check-boxes still line up and are displayed neatly.&lt;br /&gt;
* Admin tab:&lt;br /&gt;
** A new flag will be added to update the new flag EPL_SYSTEM_LOADS_UNIQUE, labelled as &amp;quot;Loads Unique Within System&amp;quot;. This will be added as a check-box, where checked sets the value to 'Y' when saved, and unchecked sets the value to 'N'.&lt;br /&gt;
&lt;br /&gt;
[[file:FS_313475_1.PNG|border|600px]]&amp;lt;br /&amp;gt;Site Admin screen&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PDA Changes ==&lt;br /&gt;
=== PDA DAL/Database Changes ===&lt;br /&gt;
The following changes will be made to the EPOD_SITE table:&lt;br /&gt;
*	EPL_DISP_JOB_CODE – This will become a 40 character field. The default value will now be 'Y'.&lt;br /&gt;
This new field should be added to every procedure as part of the PDA_SITE DAL object.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following fields will be added to the EPOD_JOB table:&lt;br /&gt;
* EPL_SO_NUMBER - This is a 40 character field. The default value is &amp;quot;&amp;quot; (a null string).&lt;br /&gt;
* EPL_CUST_REF -  This is a 30 character field. The default value is &amp;quot;&amp;quot; (a null string).&lt;br /&gt;
* EPL_EXT_REF -  This is a 30 character field. The default value is &amp;quot;&amp;quot; (a null string).&lt;br /&gt;
These new fields should be added to every procedure as part of the PDA_SITE DAL object.&lt;br /&gt;
&lt;br /&gt;
The existing functionality to set the value of the property EPL_DISP_JOB_ID in PDA_JOB based on the setting of EPL_PDA_DIS_JOB_CODE in PDA_SITE will be modified to use the name of the field specified in the EPL_PDA_DIS_JOB_CODE field, with the following exceptions:&lt;br /&gt;
* Value &amp;quot;N&amp;quot; becomes &amp;quot;EPL_JOB_ID&amp;quot;&lt;br /&gt;
* Value &amp;quot;Y&amp;quot; becomes &amp;quot;EPL_JOB_CODE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note}} In the event that the chosen data field has no data in it (i.e. is blank, a null string), then the system should default to the following fields, in this order, if they are not blank themselves:&lt;br /&gt;
* EPL_JOB_CODE&lt;br /&gt;
* EPL_JOB_ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 MEDIA LANDSCAPE YES&lt;br /&gt;
= Appendix A: TEST PLAN  =&lt;br /&gt;
&lt;br /&gt;
{{TestPlan_Header&lt;br /&gt;
|Title={{#var:Doc_Title}}&lt;br /&gt;
|Log={{#var:Reference}}&lt;br /&gt;
|Description=Test the ...&lt;br /&gt;
|MenuAccess=None&lt;br /&gt;
|Prerequisites=None&lt;br /&gt;
|Objective=To test that: ...&lt;br /&gt;
}} &lt;br /&gt;
{{ #vardefine: Cycle | 0 }}{{ #vardefine: SubCycle | 0 }}&lt;br /&gt;
{{TestPlan_CycleHeader&lt;br /&gt;
|Cycle={{ #vardefineecho: Cycle | {{ #expr: {{ #var: Cycle }} + 1 }} }}{{ #vardefine: SubCycle | {{ #var: Cycle }} }}&lt;br /&gt;
|Title=Test Title&lt;br /&gt;
|Notes=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Do something&lt;br /&gt;
|Result=Some expected results&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}} {{TestPlan_CycleFooter}} &lt;br /&gt;
&lt;br /&gt;
MEDIA LANDSCAPE NO&lt;br /&gt;
--&amp;gt; &lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
{{Doc_Appendix&lt;br /&gt;
|Appendix=A&lt;br /&gt;
|Estimate=Y&lt;br /&gt;
|Glossary=EPOD&lt;br /&gt;
|Ref1=&lt;br /&gt;
|RefV1=&lt;br /&gt;
|RefDate1=&lt;br /&gt;
|REQ=0&lt;br /&gt;
|EST=0&lt;br /&gt;
|FS=0.5&lt;br /&gt;
|TS=0&lt;br /&gt;
|DEV=5&lt;br /&gt;
|ST=0.5&lt;br /&gt;
|IMP=0.25&lt;br /&gt;
|EREQ=0&lt;br /&gt;
|EEST=0&lt;br /&gt;
|EFS=0&lt;br /&gt;
|ETS=0&lt;br /&gt;
|EDEV=0&lt;br /&gt;
|ESTT=0&lt;br /&gt;
|EIMP=0&lt;br /&gt;
|Client={{#var:Client}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
|FSEST=Y&lt;br /&gt;
|FOC=Y&lt;br /&gt;
|Rev1=Matt Tipping&lt;br /&gt;
|Rev1Title=Project Manager&lt;br /&gt;
|Rev2Title=Client Representative&lt;br /&gt;
}}&amp;lt;/div&amp;gt; &lt;br /&gt;
[[Category:{{#var:Client}} FS]]&lt;/div&gt;</summary>
		<author><name>Rmg</name></author>
	</entry>
	<entry>
		<id>https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_314696_Allow_Zero_Quantity_Products&amp;diff=1420</id>
		<title>FS 314696 Allow Zero Quantity Products</title>
		<link rel="alternate" type="text/html" href="https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_314696_Allow_Zero_Quantity_Products&amp;diff=1420"/>
		<updated>2014-02-19T12:31:27Z</updated>

		<summary type="html">&lt;p&gt;Rmg: Change log number&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
{{#vardefine:Client|BM}}&lt;br /&gt;
{{#vardefine:ClientName|Brett Martin}}&lt;br /&gt;
{{#vardefine:System|''CALIDUS'' ePOD}}&lt;br /&gt;
{{#vardefine:Doc_Title|Allow Zero Quantity Products}}&lt;br /&gt;
{{#vardefine:Version|0.1}}&lt;br /&gt;
{{#vardefine:Date|11th February 2014}}&lt;br /&gt;
{{#vardefine:Reference|314696}}&lt;br /&gt;
{{#vardefine:Year|2014}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Doc_Title&lt;br /&gt;
|Client={{#var:ClientName}}&lt;br /&gt;
|System={{#var:System}}&lt;br /&gt;
|Title={{#var:Doc_Title}}&lt;br /&gt;
|Reference=FS {{#var:Reference}}&lt;br /&gt;
|Version={{#var:Version}}&lt;br /&gt;
|Date={{#var:Date}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TOC --&amp;gt; &lt;br /&gt;
&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
= Functional Overview  =&lt;br /&gt;
&lt;br /&gt;
== Client Requirement  ==&lt;br /&gt;
The application requires a customised style created for Brett Martin.&lt;br /&gt;
&lt;br /&gt;
The current functionality for collection or delivery of DU’s (products) which have a zero planned quantity needs to allow the setting of a zero or non-zero quantity.&lt;br /&gt;
    &lt;br /&gt;
== Solution Overview  ==&lt;br /&gt;
A Brett Martin style (with green/white colour scheme and a Brett martin logo) will be created.&lt;br /&gt;
&lt;br /&gt;
The existing collection/delivery functionality for DU’s (products) with a zero planned quantity will be changed to allow a zero quantity to be entered when confirming a product.&lt;br /&gt;
&lt;br /&gt;
== Scope  ==&lt;br /&gt;
* These changes will be made in the latest version of the CALIDUS ePOD product only.&lt;br /&gt;
* The changes will be made to the Android CALIDUS ePOD client only.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Set-up  =&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites  ==&lt;br /&gt;
There are no set-up pre-requisites specific to this development.&lt;br /&gt;
&lt;br /&gt;
== Menu Structure  ==&lt;br /&gt;
There is no menu structure set-up required for this development.&lt;br /&gt;
&lt;br /&gt;
== Data  ==&lt;br /&gt;
Once the new ‘Force Non-zero Product Quantities’ flag has been added to the job groups maintenance page this will need to be unchecked to allow zero quantities to be used for products with a zero planned quantity.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
= Functional Description  =&lt;br /&gt;
== Database / Server  ==&lt;br /&gt;
A new flag (called EPL_FORCE_PROD_QTY) will be added to the database on the job group record (EPOD_JOB_GROUPS) to allow the new “Force Non-Zero Product Quantities” option to be stored for a job group.&lt;br /&gt;
&lt;br /&gt;
All data access functions for creating, updating or selecting a job group will be updated to include this new flag as will the XML request (used for sending the job group data to the PDA’s). This will store (and in the XML report) this value as “Y” if the option has been checked or “N” otherwise.&lt;br /&gt;
&lt;br /&gt;
== ePOD Admin ==&lt;br /&gt;
The admin web application includes a job groups maintenance page. This page uses a details pop-up (with multiple tabs) to allow the user to set the options associated with a job group. &lt;br /&gt;
&lt;br /&gt;
This details pop-up will be changed to include a new “Force Non-Zero Product Quantities” flag. This flag will appear in the PDA tab of the details pop-up and will be a check-box style option (i.e. can be checked or not checked). This will allow the flag to be set for new job groups or changed for existing job groups. There will not be any functionality to allow the user to search for job groups based on this flag.&lt;br /&gt;
&lt;br /&gt;
== Android Client ==&lt;br /&gt;
=== PDA Login and Style ===&lt;br /&gt;
A new Brett martin style will be created. This will use green colouring for the buttons and heading sections within the application and the login page will include the Brett Martin logo.&lt;br /&gt;
&lt;br /&gt;
=== PDA Login and Style ===&lt;br /&gt;
A new Brett martin style will be created. This will use green colouring for the buttons and heading sections within the application and the login page will include the Brett Martin logo.&lt;br /&gt;
&lt;br /&gt;
=== Job Details Product Tab ===&lt;br /&gt;
When processing a delivery or collection job which contains products (DU’s) the PDA will include a products tab which will list the products for this job. The user can select a product to collect / deliver by clicking or long-pressing on the product in the products list (and the selecting the deliver or collect option), entering the product code in the product text box or scanning the product code.&lt;br /&gt;
&lt;br /&gt;
When clicking or long-pressing a product in the products list the user is either taken to the set product quantity screen or presented with a list of options. &lt;br /&gt;
&lt;br /&gt;
If the product has a non-zero planned quantity (i.e. the PDA has already been informed of the quantity that should be delivered or collected) then clicking or long-pressing on a product will display list of the following options:&lt;br /&gt;
Deliver or Collect – Depending on whether this is a delivery or a collection job. Selecting this option will mark this product as having the planned quantity delivered or collected.&lt;br /&gt;
Change Quantity – Selecting this option allows the user to set the quantity to be delivered or collected, along with a reason for the discrepancy from the planned quantity and confirm the delivery/collection.&lt;br /&gt;
Cancel – Selecting this option allows the user to specify a reason for the cancellation and cancel the delivery/collection of this product.&lt;br /&gt;
Close – Selecting this option closes the options list with making any changes.&lt;br /&gt;
&lt;br /&gt;
This list of options will not be changed.&lt;br /&gt;
&lt;br /&gt;
If the product had a zero planned quantity then clicking the product would call the set product quantity screen to allow the user to set the quantity being delivered or collected and confirm the delivery/collection (see next section for details on the set product quantity screen).&lt;br /&gt;
&lt;br /&gt;
If the product had a zero planned quantity then long-pressing on a product will display list of options. This list does not currently include a deliver/collect option and does include a comments option (not required for the Brett Martin functionality). This will be changed to add the deliver/collect option and remove the comments option for Brett Martin users. This will mean the list will show the following options:&lt;br /&gt;
&lt;br /&gt;
Deliver or Collect – Depending on whether this is a delivery or a collection job. Selecting this option will call the set product quantity screen, i.e. the same clicking on the product (see next section for details on the set quantity screen).&lt;br /&gt;
Cancel – Selecting this option allows the user to specify a reason for the cancellation and cancel the delivery/collection of this product.&lt;br /&gt;
Close – Selecting this option closes the options list with making any changes.&lt;br /&gt;
&lt;br /&gt;
=== Job Details Product Tab ===&lt;br /&gt;
When called this page allows the user to set the quantity for a product and confirm it as delivered or collected. This page is only called for products with a zero planned quantity (i.e. where the quantity is not known in advance).&lt;br /&gt;
&lt;br /&gt;
The current functionality will only allow the product to be confirmed as delivered or collected once a non-zero quantity has been entered.&lt;br /&gt;
&lt;br /&gt;
This will be changed so that the new ‘Force Non-Zero Product Quantities’ flag for the job group associated with this job will determine if zero is accepted as a valid value. If this flag has been set (i.e. checked in the maintenance page) then the system will continue to force the user to enter a non-zero quantity before allowing confirmation. If this flag is not set (i.e. is un-checked in the maintenance screen) then this screen will allow the user to confirm the delivery / collection of this product if they have entered a numeric value, including zero, for the quantity.&lt;br /&gt;
&lt;br /&gt;
In order to confirm the delivery / collection the user will have to enter a quantity, i.e. this can not be left blank (regardless of the ‘Force Non-Zero Product Quantities’). The page will only allow the confirmation if the value is a numeric integer value, this can not contain characters or decimal places.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
{{Doc_Appendix&lt;br /&gt;
|Appendix=C&lt;br /&gt;
|Estimate=Y&lt;br /&gt;
|Glossary=EPOD&lt;br /&gt;
|Ref1=[http://{{SERVERNAME}}/calidus-assist/EPOD/index.php/UG_291094_EPOD_Admin_User_Guide UG 291094 EPOD Admin User Guide]&lt;br /&gt;
|RefV1=2.0&lt;br /&gt;
|RefDate1=4/4/2012&lt;br /&gt;
|Ref2=[http://{{SERVERNAME}}/calidus-assist/EPOD/index.php/UG_291097_EPOD_Client_User_Guide UG 291097 EPOD Client User Guide]&lt;br /&gt;
|RefV2=3.0&lt;br /&gt;
|RefDate2=23/4/2013&lt;br /&gt;
|Ref3=[[REQ 313776 Brett Martin ePOD Requirements]]&lt;br /&gt;
|RefV3=0.2&lt;br /&gt;
|RefDate3=12/12/2013&lt;br /&gt;
|REQ=0&lt;br /&gt;
|EST=0&lt;br /&gt;
|FS=0.75&lt;br /&gt;
|TS=0.0&lt;br /&gt;
|DEV=2.75&lt;br /&gt;
|ST=0.50&lt;br /&gt;
|IMP=0&lt;br /&gt;
|FOC=Y&lt;br /&gt;
|Client={{#var:Client}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
|FSEST=N&lt;br /&gt;
|Rev1=Julie Scott&lt;br /&gt;
|Rev1Title=OBS Project Manager&lt;br /&gt;
}}&amp;lt;/div&amp;gt; &lt;br /&gt;
[[Category:{{#var:Client}} FS]]&lt;/div&gt;</summary>
		<author><name>Rmg</name></author>
	</entry>
	<entry>
		<id>https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_313776_Allow_Zero_Quantity_Products&amp;diff=1419</id>
		<title>FS 313776 Allow Zero Quantity Products</title>
		<link rel="alternate" type="text/html" href="https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_313776_Allow_Zero_Quantity_Products&amp;diff=1419"/>
		<updated>2014-02-19T12:29:00Z</updated>

		<summary type="html">&lt;p&gt;Rmg: moved FS 313776 Allow Zero Quantity Products to FS 314696 Allow Zero Quantity Products: Moved to separate log number&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[FS 314696 Allow Zero Quantity Products]]&lt;/div&gt;</summary>
		<author><name>Rmg</name></author>
	</entry>
	<entry>
		<id>https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_314696_Allow_Zero_Quantity_Products&amp;diff=1418</id>
		<title>FS 314696 Allow Zero Quantity Products</title>
		<link rel="alternate" type="text/html" href="https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_314696_Allow_Zero_Quantity_Products&amp;diff=1418"/>
		<updated>2014-02-19T12:29:00Z</updated>

		<summary type="html">&lt;p&gt;Rmg: moved FS 313776 Allow Zero Quantity Products to FS 314696 Allow Zero Quantity Products: Moved to separate log number&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
{{#vardefine:Client|BM}}&lt;br /&gt;
{{#vardefine:ClientName|Brett Martin}}&lt;br /&gt;
{{#vardefine:System|''CALIDUS'' ePOD}}&lt;br /&gt;
{{#vardefine:Doc_Title|Allow Zero Quantity Products}}&lt;br /&gt;
{{#vardefine:Version|0.1}}&lt;br /&gt;
{{#vardefine:Date|11th February 2014}}&lt;br /&gt;
{{#vardefine:Reference|313776}}&lt;br /&gt;
{{#vardefine:Year|2014}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Doc_Title&lt;br /&gt;
|Client={{#var:ClientName}}&lt;br /&gt;
|System={{#var:System}}&lt;br /&gt;
|Title={{#var:Doc_Title}}&lt;br /&gt;
|Reference=FS {{#var:Reference}}&lt;br /&gt;
|Version={{#var:Version}}&lt;br /&gt;
|Date={{#var:Date}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TOC --&amp;gt; &lt;br /&gt;
&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
= Functional Overview  =&lt;br /&gt;
&lt;br /&gt;
== Client Requirement  ==&lt;br /&gt;
The application requires a customised style created for Brett Martin.&lt;br /&gt;
&lt;br /&gt;
The current functionality for collection or delivery of DU’s (products) which have a zero planned quantity needs to allow the setting of a zero or non-zero quantity.&lt;br /&gt;
    &lt;br /&gt;
== Solution Overview  ==&lt;br /&gt;
A Brett Martin style (with green/white colour scheme and a Brett martin logo) will be created.&lt;br /&gt;
&lt;br /&gt;
The existing collection/delivery functionality for DU’s (products) with a zero planned quantity will be changed to allow a zero quantity to be entered when confirming a product.&lt;br /&gt;
&lt;br /&gt;
== Scope  ==&lt;br /&gt;
* These changes will be made in the latest version of the CALIDUS ePOD product only.&lt;br /&gt;
* The changes will be made to the Android CALIDUS ePOD client only.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Set-up  =&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites  ==&lt;br /&gt;
There are no set-up pre-requisites specific to this development.&lt;br /&gt;
&lt;br /&gt;
== Menu Structure  ==&lt;br /&gt;
There is no menu structure set-up required for this development.&lt;br /&gt;
&lt;br /&gt;
== Data  ==&lt;br /&gt;
Once the new ‘Force Non-zero Product Quantities’ flag has been added to the job groups maintenance page this will need to be unchecked to allow zero quantities to be used for products with a zero planned quantity.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
= Functional Description  =&lt;br /&gt;
== Database / Server  ==&lt;br /&gt;
A new flag (called EPL_FORCE_PROD_QTY) will be added to the database on the job group record (EPOD_JOB_GROUPS) to allow the new “Force Non-Zero Product Quantities” option to be stored for a job group.&lt;br /&gt;
&lt;br /&gt;
All data access functions for creating, updating or selecting a job group will be updated to include this new flag as will the XML request (used for sending the job group data to the PDA’s). This will store (and in the XML report) this value as “Y” if the option has been checked or “N” otherwise.&lt;br /&gt;
&lt;br /&gt;
== ePOD Admin ==&lt;br /&gt;
The admin web application includes a job groups maintenance page. This page uses a details pop-up (with multiple tabs) to allow the user to set the options associated with a job group. &lt;br /&gt;
&lt;br /&gt;
This details pop-up will be changed to include a new “Force Non-Zero Product Quantities” flag. This flag will appear in the PDA tab of the details pop-up and will be a check-box style option (i.e. can be checked or not checked). This will allow the flag to be set for new job groups or changed for existing job groups. There will not be any functionality to allow the user to search for job groups based on this flag.&lt;br /&gt;
&lt;br /&gt;
== Android Client ==&lt;br /&gt;
=== PDA Login and Style ===&lt;br /&gt;
A new Brett martin style will be created. This will use green colouring for the buttons and heading sections within the application and the login page will include the Brett Martin logo.&lt;br /&gt;
&lt;br /&gt;
=== PDA Login and Style ===&lt;br /&gt;
A new Brett martin style will be created. This will use green colouring for the buttons and heading sections within the application and the login page will include the Brett Martin logo.&lt;br /&gt;
&lt;br /&gt;
=== Job Details Product Tab ===&lt;br /&gt;
When processing a delivery or collection job which contains products (DU’s) the PDA will include a products tab which will list the products for this job. The user can select a product to collect / deliver by clicking or long-pressing on the product in the products list (and the selecting the deliver or collect option), entering the product code in the product text box or scanning the product code.&lt;br /&gt;
&lt;br /&gt;
When clicking or long-pressing a product in the products list the user is either taken to the set product quantity screen or presented with a list of options. &lt;br /&gt;
&lt;br /&gt;
If the product has a non-zero planned quantity (i.e. the PDA has already been informed of the quantity that should be delivered or collected) then clicking or long-pressing on a product will display list of the following options:&lt;br /&gt;
Deliver or Collect – Depending on whether this is a delivery or a collection job. Selecting this option will mark this product as having the planned quantity delivered or collected.&lt;br /&gt;
Change Quantity – Selecting this option allows the user to set the quantity to be delivered or collected, along with a reason for the discrepancy from the planned quantity and confirm the delivery/collection.&lt;br /&gt;
Cancel – Selecting this option allows the user to specify a reason for the cancellation and cancel the delivery/collection of this product.&lt;br /&gt;
Close – Selecting this option closes the options list with making any changes.&lt;br /&gt;
&lt;br /&gt;
This list of options will not be changed.&lt;br /&gt;
&lt;br /&gt;
If the product had a zero planned quantity then clicking the product would call the set product quantity screen to allow the user to set the quantity being delivered or collected and confirm the delivery/collection (see next section for details on the set product quantity screen).&lt;br /&gt;
&lt;br /&gt;
If the product had a zero planned quantity then long-pressing on a product will display list of options. This list does not currently include a deliver/collect option and does include a comments option (not required for the Brett Martin functionality). This will be changed to add the deliver/collect option and remove the comments option for Brett Martin users. This will mean the list will show the following options:&lt;br /&gt;
&lt;br /&gt;
Deliver or Collect – Depending on whether this is a delivery or a collection job. Selecting this option will call the set product quantity screen, i.e. the same clicking on the product (see next section for details on the set quantity screen).&lt;br /&gt;
Cancel – Selecting this option allows the user to specify a reason for the cancellation and cancel the delivery/collection of this product.&lt;br /&gt;
Close – Selecting this option closes the options list with making any changes.&lt;br /&gt;
&lt;br /&gt;
=== Job Details Product Tab ===&lt;br /&gt;
When called this page allows the user to set the quantity for a product and confirm it as delivered or collected. This page is only called for products with a zero planned quantity (i.e. where the quantity is not known in advance).&lt;br /&gt;
&lt;br /&gt;
The current functionality will only allow the product to be confirmed as delivered or collected once a non-zero quantity has been entered.&lt;br /&gt;
&lt;br /&gt;
This will be changed so that the new ‘Force Non-Zero Product Quantities’ flag for the job group associated with this job will determine if zero is accepted as a valid value. If this flag has been set (i.e. checked in the maintenance page) then the system will continue to force the user to enter a non-zero quantity before allowing confirmation. If this flag is not set (i.e. is un-checked in the maintenance screen) then this screen will allow the user to confirm the delivery / collection of this product if they have entered a numeric value, including zero, for the quantity.&lt;br /&gt;
&lt;br /&gt;
In order to confirm the delivery / collection the user will have to enter a quantity, i.e. this can not be left blank (regardless of the ‘Force Non-Zero Product Quantities’). The page will only allow the confirmation if the value is a numeric integer value, this can not contain characters or decimal places.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
{{Doc_Appendix&lt;br /&gt;
|Appendix=C&lt;br /&gt;
|Estimate=Y&lt;br /&gt;
|Glossary=EPOD&lt;br /&gt;
|Ref1=[http://{{SERVERNAME}}/calidus-assist/EPOD/index.php/UG_291094_EPOD_Admin_User_Guide UG 291094 EPOD Admin User Guide]&lt;br /&gt;
|RefV1=2.0&lt;br /&gt;
|RefDate1=4/4/2012&lt;br /&gt;
|Ref2=[http://{{SERVERNAME}}/calidus-assist/EPOD/index.php/UG_291097_EPOD_Client_User_Guide UG 291097 EPOD Client User Guide]&lt;br /&gt;
|RefV2=3.0&lt;br /&gt;
|RefDate2=23/4/2013&lt;br /&gt;
|Ref3=[[REQ 313776 Brett Martin ePOD Requirements]]&lt;br /&gt;
|RefV3=0.2&lt;br /&gt;
|RefDate3=12/12/2013&lt;br /&gt;
|REQ=0&lt;br /&gt;
|EST=0&lt;br /&gt;
|FS=0.75&lt;br /&gt;
|TS=0.0&lt;br /&gt;
|DEV=2.75&lt;br /&gt;
|ST=0.50&lt;br /&gt;
|IMP=0&lt;br /&gt;
|FOC=Y&lt;br /&gt;
|Client={{#var:Client}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
|FSEST=N&lt;br /&gt;
|Rev1=Julie Scott&lt;br /&gt;
|Rev1Title=OBS Project Manager&lt;br /&gt;
}}&amp;lt;/div&amp;gt; &lt;br /&gt;
[[Category:{{#var:Client}} FS]]&lt;/div&gt;</summary>
		<author><name>Rmg</name></author>
	</entry>
	<entry>
		<id>https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_314696_Allow_Zero_Quantity_Products&amp;diff=1406</id>
		<title>FS 314696 Allow Zero Quantity Products</title>
		<link rel="alternate" type="text/html" href="https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_314696_Allow_Zero_Quantity_Products&amp;diff=1406"/>
		<updated>2014-02-14T11:02:12Z</updated>

		<summary type="html">&lt;p&gt;Rmg: Initial draft&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
{{#vardefine:Client|BM}}&lt;br /&gt;
{{#vardefine:ClientName|Brett Martin}}&lt;br /&gt;
{{#vardefine:System|''CALIDUS'' ePOD}}&lt;br /&gt;
{{#vardefine:Doc_Title|Allow Zero Quantity Products}}&lt;br /&gt;
{{#vardefine:Version|0.1}}&lt;br /&gt;
{{#vardefine:Date|11th February 2014}}&lt;br /&gt;
{{#vardefine:Reference|313776}}&lt;br /&gt;
{{#vardefine:Year|2014}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Doc_Title&lt;br /&gt;
|Client={{#var:ClientName}}&lt;br /&gt;
|System={{#var:System}}&lt;br /&gt;
|Title={{#var:Doc_Title}}&lt;br /&gt;
|Reference=FS {{#var:Reference}}&lt;br /&gt;
|Version={{#var:Version}}&lt;br /&gt;
|Date={{#var:Date}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TOC --&amp;gt; &lt;br /&gt;
&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
= Functional Overview  =&lt;br /&gt;
&lt;br /&gt;
== Client Requirement  ==&lt;br /&gt;
The application requires a customised style created for Brett Martin.&lt;br /&gt;
&lt;br /&gt;
The current functionality for collection or delivery of DU’s (products) which have a zero planned quantity needs to allow the setting of a zero or non-zero quantity.&lt;br /&gt;
    &lt;br /&gt;
== Solution Overview  ==&lt;br /&gt;
A Brett Martin style (with green/white colour scheme and a Brett martin logo) will be created.&lt;br /&gt;
&lt;br /&gt;
The existing collection/delivery functionality for DU’s (products) with a zero planned quantity will be changed to allow a zero quantity to be entered when confirming a product.&lt;br /&gt;
&lt;br /&gt;
== Scope  ==&lt;br /&gt;
* These changes will be made in the latest version of the CALIDUS ePOD product only.&lt;br /&gt;
* The changes will be made to the Android CALIDUS ePOD client only.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Set-up  =&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites  ==&lt;br /&gt;
There are no set-up pre-requisites specific to this development.&lt;br /&gt;
&lt;br /&gt;
== Menu Structure  ==&lt;br /&gt;
There is no menu structure set-up required for this development.&lt;br /&gt;
&lt;br /&gt;
== Data  ==&lt;br /&gt;
Once the new ‘Force Non-zero Product Quantities’ flag has been added to the job groups maintenance page this will need to be unchecked to allow zero quantities to be used for products with a zero planned quantity.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
= Functional Description  =&lt;br /&gt;
== Database / Server  ==&lt;br /&gt;
A new flag (called EPL_FORCE_PROD_QTY) will be added to the database on the job group record (EPOD_JOB_GROUPS) to allow the new “Force Non-Zero Product Quantities” option to be stored for a job group.&lt;br /&gt;
&lt;br /&gt;
All data access functions for creating, updating or selecting a job group will be updated to include this new flag as will the XML request (used for sending the job group data to the PDA’s). This will store (and in the XML report) this value as “Y” if the option has been checked or “N” otherwise.&lt;br /&gt;
&lt;br /&gt;
== ePOD Admin ==&lt;br /&gt;
The admin web application includes a job groups maintenance page. This page uses a details pop-up (with multiple tabs) to allow the user to set the options associated with a job group. &lt;br /&gt;
&lt;br /&gt;
This details pop-up will be changed to include a new “Force Non-Zero Product Quantities” flag. This flag will appear in the PDA tab of the details pop-up and will be a check-box style option (i.e. can be checked or not checked). This will allow the flag to be set for new job groups or changed for existing job groups. There will not be any functionality to allow the user to search for job groups based on this flag.&lt;br /&gt;
&lt;br /&gt;
== Android Client ==&lt;br /&gt;
=== PDA Login and Style ===&lt;br /&gt;
A new Brett martin style will be created. This will use green colouring for the buttons and heading sections within the application and the login page will include the Brett Martin logo.&lt;br /&gt;
&lt;br /&gt;
=== PDA Login and Style ===&lt;br /&gt;
A new Brett martin style will be created. This will use green colouring for the buttons and heading sections within the application and the login page will include the Brett Martin logo.&lt;br /&gt;
&lt;br /&gt;
=== Job Details Product Tab ===&lt;br /&gt;
When processing a delivery or collection job which contains products (DU’s) the PDA will include a products tab which will list the products for this job. The user can select a product to collect / deliver by clicking or long-pressing on the product in the products list (and the selecting the deliver or collect option), entering the product code in the product text box or scanning the product code.&lt;br /&gt;
&lt;br /&gt;
When clicking or long-pressing a product in the products list the user is either taken to the set product quantity screen or presented with a list of options. &lt;br /&gt;
&lt;br /&gt;
If the product has a non-zero planned quantity (i.e. the PDA has already been informed of the quantity that should be delivered or collected) then clicking or long-pressing on a product will display list of the following options:&lt;br /&gt;
Deliver or Collect – Depending on whether this is a delivery or a collection job. Selecting this option will mark this product as having the planned quantity delivered or collected.&lt;br /&gt;
Change Quantity – Selecting this option allows the user to set the quantity to be delivered or collected, along with a reason for the discrepancy from the planned quantity and confirm the delivery/collection.&lt;br /&gt;
Cancel – Selecting this option allows the user to specify a reason for the cancellation and cancel the delivery/collection of this product.&lt;br /&gt;
Close – Selecting this option closes the options list with making any changes.&lt;br /&gt;
&lt;br /&gt;
This list of options will not be changed.&lt;br /&gt;
&lt;br /&gt;
If the product had a zero planned quantity then clicking the product would call the set product quantity screen to allow the user to set the quantity being delivered or collected and confirm the delivery/collection (see next section for details on the set product quantity screen).&lt;br /&gt;
&lt;br /&gt;
If the product had a zero planned quantity then long-pressing on a product will display list of options. This list does not currently include a deliver/collect option and does include a comments option (not required for the Brett Martin functionality). This will be changed to add the deliver/collect option and remove the comments option for Brett Martin users. This will mean the list will show the following options:&lt;br /&gt;
&lt;br /&gt;
Deliver or Collect – Depending on whether this is a delivery or a collection job. Selecting this option will call the set product quantity screen, i.e. the same clicking on the product (see next section for details on the set quantity screen).&lt;br /&gt;
Cancel – Selecting this option allows the user to specify a reason for the cancellation and cancel the delivery/collection of this product.&lt;br /&gt;
Close – Selecting this option closes the options list with making any changes.&lt;br /&gt;
&lt;br /&gt;
=== Job Details Product Tab ===&lt;br /&gt;
When called this page allows the user to set the quantity for a product and confirm it as delivered or collected. This page is only called for products with a zero planned quantity (i.e. where the quantity is not known in advance).&lt;br /&gt;
&lt;br /&gt;
The current functionality will only allow the product to be confirmed as delivered or collected once a non-zero quantity has been entered.&lt;br /&gt;
&lt;br /&gt;
This will be changed so that the new ‘Force Non-Zero Product Quantities’ flag for the job group associated with this job will determine if zero is accepted as a valid value. If this flag has been set (i.e. checked in the maintenance page) then the system will continue to force the user to enter a non-zero quantity before allowing confirmation. If this flag is not set (i.e. is un-checked in the maintenance screen) then this screen will allow the user to confirm the delivery / collection of this product if they have entered a numeric value, including zero, for the quantity.&lt;br /&gt;
&lt;br /&gt;
In order to confirm the delivery / collection the user will have to enter a quantity, i.e. this can not be left blank (regardless of the ‘Force Non-Zero Product Quantities’). The page will only allow the confirmation if the value is a numeric integer value, this can not contain characters or decimal places.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
{{Doc_Appendix&lt;br /&gt;
|Appendix=C&lt;br /&gt;
|Estimate=Y&lt;br /&gt;
|Glossary=EPOD&lt;br /&gt;
|Ref1=[http://{{SERVERNAME}}/calidus-assist/EPOD/index.php/UG_291094_EPOD_Admin_User_Guide UG 291094 EPOD Admin User Guide]&lt;br /&gt;
|RefV1=2.0&lt;br /&gt;
|RefDate1=4/4/2012&lt;br /&gt;
|Ref2=[http://{{SERVERNAME}}/calidus-assist/EPOD/index.php/UG_291097_EPOD_Client_User_Guide UG 291097 EPOD Client User Guide]&lt;br /&gt;
|RefV2=3.0&lt;br /&gt;
|RefDate2=23/4/2013&lt;br /&gt;
|Ref3=[[REQ 313776 Brett Martin ePOD Requirements]]&lt;br /&gt;
|RefV3=0.2&lt;br /&gt;
|RefDate3=12/12/2013&lt;br /&gt;
|REQ=0&lt;br /&gt;
|EST=0&lt;br /&gt;
|FS=0.75&lt;br /&gt;
|TS=0.0&lt;br /&gt;
|DEV=2.75&lt;br /&gt;
|ST=0.50&lt;br /&gt;
|IMP=0&lt;br /&gt;
|FOC=Y&lt;br /&gt;
|Client={{#var:Client}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
|FSEST=N&lt;br /&gt;
|Rev1=Julie Scott&lt;br /&gt;
|Rev1Title=OBS Project Manager&lt;br /&gt;
}}&amp;lt;/div&amp;gt; &lt;br /&gt;
[[Category:{{#var:Client}} FS]]&lt;/div&gt;</summary>
		<author><name>Rmg</name></author>
	</entry>
	<entry>
		<id>https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_311908_Configurable_Pre-Work_Checks&amp;diff=1340</id>
		<title>FS 311908 Configurable Pre-Work Checks</title>
		<link rel="alternate" type="text/html" href="https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_311908_Configurable_Pre-Work_Checks&amp;diff=1340"/>
		<updated>2013-12-10T16:37:45Z</updated>

		<summary type="html">&lt;p&gt;Rmg: Update to test plan for completion of service item.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
{{#vardefine:Client|LANE}}&lt;br /&gt;
{{#vardefine:ClientName|Lanemark}}&lt;br /&gt;
{{#vardefine:System|''CALIDUS'' eSERV}}&lt;br /&gt;
{{#vardefine:Doc_Title|Configurable Pre-Work Checks}}&lt;br /&gt;
{{#vardefine:Version|0.2}}&lt;br /&gt;
{{#vardefine:Date|4th October 2013}}&lt;br /&gt;
{{#vardefine:Reference|311908 309371-4/5}}&lt;br /&gt;
{{#vardefine:Year|2013}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Doc_Title&lt;br /&gt;
|Client={{#var:ClientName}}&lt;br /&gt;
|System={{#var:System}}&lt;br /&gt;
|Title={{#var:Doc_Title}}&lt;br /&gt;
|Reference=FS {{#var:Reference}}&lt;br /&gt;
|Version={{#var:Version}}&lt;br /&gt;
|Date={{#var:Date}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TOC --&amp;gt; &lt;br /&gt;
&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
= Functional Overview  =&lt;br /&gt;
== Client Requirement  ==&lt;br /&gt;
The user will be forced to enter Risk Assessment details before being allowed to start work against a Serviceable item, unless those checks have been completed before-hand. &lt;br /&gt;
&lt;br /&gt;
The Risk Assessment checks are shown in [[#Appendix A: Risk Assessment Form|Appendix A]]&lt;br /&gt;
&lt;br /&gt;
== Solution Overview  ==&lt;br /&gt;
A '''Pre-Work Checks''' button will be shown in section 4 (titled ''Risk Assessment'') - this pops up the Pre-work checks pop-up form:&lt;br /&gt;
&lt;br /&gt;
All contents will be configured, entered like Vehicle Checks, through a scrolling frame.&lt;br /&gt;
&lt;br /&gt;
The items required during Risk Assessment will be based on the existing form - some changes will be made to the Risk Control section.&lt;br /&gt;
* Person responsible for your safety - text entry - required.&lt;br /&gt;
* Brief description of work to be done - text entry - required.&lt;br /&gt;
* Hazards associated section:&lt;br /&gt;
** This will list a number of check-boxes, identical to those on the sheet. It is not required that all be checked.&lt;br /&gt;
** Risks (Other) - text entry - optional.&lt;br /&gt;
* Overall Risk Assessment - drop-down list of: High/Medium/Low - required.&lt;br /&gt;
* Risk Control section (Measures to be taken...):&lt;br /&gt;
** A number of check-boxes will be identified for the user to tick here, to make entry of this easier than it currently is on the sheet. These are optional.&lt;br /&gt;
** Risk Control (Other) - text entry - optional.&lt;br /&gt;
&lt;br /&gt;
On saving the checks, the user will be asked to confirm that these are now completed (through a '''Complete''' button). If so, they will be marked as such and the user will be allowed to exit and the title of the '''Risk Assessment''' button will be updated to show the status (Complete or Incomplete).&lt;br /&gt;
&lt;br /&gt;
The user will also be offered a button to indicate that the checks are not required (through a '''Not Required''' button). If this is clicked, the user will be asked to confirm this and, if so, the checks will be marked as not required, but completed anyway.&lt;br /&gt;
&lt;br /&gt;
Initially, the user will not be able to select any tab except Job Details and Info. Only when the Risk Assessment checks for this particular Serviceable Item are complete (or marked as pre-completed) will the user be able to select any other tabs for this Serviceable item. &lt;br /&gt;
&lt;br /&gt;
{{Note}} These configurable Pre-Work Checks are not search-able, exportable or reportable within {{#var:System}}, but can be displayable in the Admin client or on the Service Report.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scope  ==&lt;br /&gt;
* These changes will be made in the latest version of the {{#var:System}} product only.&lt;br /&gt;
* The changes will be made to the Android eSERV client only. &lt;br /&gt;
* {{Warning}} This change requires that the UDF modifications and Multiple Serviceable Items are complete first - see [[#Appendix_D:_Quote_.26_Document_References|Appendix D]] for references. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Set-up  =&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites  ==&lt;br /&gt;
&lt;br /&gt;
== Menu Structure  ==&lt;br /&gt;
&lt;br /&gt;
== Data  ==&lt;br /&gt;
Table EPOD_UDF_CONFIG must have new records created for the site:&lt;br /&gt;
* EPL_DESCRIPTION = &amp;quot;Risk Assessment checks&amp;quot;&lt;br /&gt;
** EPL_KEY_TYPE = &amp;quot;S&amp;quot;&lt;br /&gt;
** EPL_KEY_VAL = &amp;quot;{EPL_SITE_ID}&amp;quot;&lt;br /&gt;
** EPL_CONFIG_TYPE = &amp;quot;PREWORK&amp;quot;&lt;br /&gt;
** EPL_UDF_FIELDS - see [[#Appendix B: Risk Assessment Configuration|Appendix B]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
= Functional Description  =&lt;br /&gt;
== Android Client ==&lt;br /&gt;
{{Note}} The UDF Modifications change should already be complete - among many other items, this made the following changes to the PDA Service process:&lt;br /&gt;
{{comment|text=&lt;br /&gt;
The Info section should also check the Pre-work UDF configuration. If this is present, the Pre-work button should be created with the label as defined in the configuration. The Pre-work pop-up should be triggered from this, passing in the configuration setting.&lt;br /&gt;
&lt;br /&gt;
The Pre-work pop-up screen will be modified to replace the current fields and buttons with a scrolling vertical-layout view, if the flag PDAJOBGROUP.EPL_SERVICE_PREWORK is not &amp;quot;Y&amp;quot; or &amp;quot;N&amp;quot;. The view should be 70% height, allowing for up to 2 buttons and a title on the screen. The title should be set to the NAME parameter of the configuration settings. The buttons should be created from the buttons passed in in the configuration settings. The button type will define what actions are to be taken:&lt;br /&gt;
* If this is a Confirm button, the changes will be validated and, if OK, will be saved, the confirm attribute will be set to the type and the pop-up will exit.&lt;br /&gt;
* If this is an Ignore button, the changes will be saved, the confirm attribute will be set to the type and the pop-up will exit.&lt;br /&gt;
* If this is a Cancel button, the changes will not be saved, the confirm attribute will be set to the type and the pop-up will exit.&lt;br /&gt;
In all cases, if the Confirm attribute is present on the button, a Yes/No confirmation message will be displayed before the actions, displaying the message configured on the device. If the user chooses Yes, the actions above will be taken. If the user chooses No, they will be returned to the pop-up screen.&lt;br /&gt;
&lt;br /&gt;
When exiting the Pre-work pop-up screen, the value of the Confirm parameter and the returned XML string should be stored, for validating later.&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
''(on the Diagnosis tab)''&lt;br /&gt;
&lt;br /&gt;
The validation against the '''OK''' button should check whether any of the above configurations are present. If so, the following validation checks should be added to the validateService function:&lt;br /&gt;
* If PDA_UDF_PREWORK is not null and the Confirm property of the Pre-work pop-up is I (Ignore) or unset, a message should be displayed requiring the user to enter the Pre-work checks, referred to by the Name element of the Pre-work configuration. The device should return the user to the services screen on clearing this message.&lt;br /&gt;
...&lt;br /&gt;
* If PDA_UDF_PREWORK is not null, save the resulting XML from the Pre-work UDF object into the new Service field EPL_UDF_PREWORK.&lt;br /&gt;
|sign=[[FS 311636 UDF Modifications]]|date=11/9/2013 11:32:53}}&lt;br /&gt;
&lt;br /&gt;
There will be some slight modifications to this here, to allow for Multiple Serviceable Items processing, along with the changes required for this functionality.&lt;br /&gt;
&lt;br /&gt;
The Pre-work button will be labelled with the NAME attribute of the FORM in the XML, plus a status in parentheses, based on the Confirm attribute of the UDF created, one of:&lt;br /&gt;
* Blank  - &amp;quot;Incomplete&amp;quot;&lt;br /&gt;
* C - The label of the '''Complete''' button&lt;br /&gt;
* X - the label of the '''Cancel''' button&lt;br /&gt;
{{Note}} The '''Ignore''' button alone will not change the status, as this is the equivalent to the Android Back button. &lt;br /&gt;
&lt;br /&gt;
These Pre-work Checks can be completed for all Serviceable items, or just for the one in progress, so a user may choose to complete one, move to the next serviceable item, complete those checks, move on, etc, until all are complete. Therefore, when displaying this button for the first time, the screen must check the value of the CONFIRM attribute of the FORM tag from the UDF XML stored in EPL_UDF_PREWORK.&lt;br /&gt;
&lt;br /&gt;
When the screen has been exited with a '''Cancel''' or '''Confirm''' button press, the Confirm parameter will have been stored against the object and the items validated. This parameter must also be stored as an attribute against the FORM tag (CONFIRM=&amp;quot;X|I|C&amp;quot;) on the returned XML. This will also change the label of the Pre-work button, to reflect the new status.&lt;br /&gt;
&lt;br /&gt;
When Cancelling (using an X-type button), the XML must still be built and saved, but without the users' answers (i.e. as the passed-in configuration). As before, the CONFIRM attribute must be added and the Pre-work label changed.&lt;br /&gt;
&lt;br /&gt;
{{Note}} The XML returned to the FORM should be placed in EPL_UDF_PREWORK. This should be saved if the user chooses to exit the service or if the user changes Serviceable Items, through the functionality designed for Multiple Serviceable Items.&lt;br /&gt;
&lt;br /&gt;
The Android BACK key may be used to back out of the Pre-work screen - in this case, a confirmation back to the user be made (standard, not configurable) informing them that all entered data will be lost. If not confirmed, the user will be returned to the Pre-work screen. If confirmed, the user will be returned to the Info tab, nothing will be validated or saved, including the Confirm attribute, which should still be set to blank. &lt;br /&gt;
&lt;br /&gt;
If the Pre-work status has been set to 'C' or 'X', the user should NOT be allowed back in to change the status - the checks have been entered and confirmed by the user and may not be changed.&lt;br /&gt;
&lt;br /&gt;
If the FORM tag REQUIRED attribute has been set on the configuration XML to 'Y', the Pre-work checks MUST be complete before any work (other than Information-gathering) begins - the screen should not allow moving onto any tab other than Job Details and Information (i.e. any tab index greater than 1). If the user attempts to do this, an error should be displayed and the user should be returned to the Info or Job Details tab.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
= Appendix A: Risk Assessment Form =&lt;br /&gt;
[[File:REQ_309187_RISK.jpg|600px|border]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
= Appendix B: Risk Assessment Configuration =&lt;br /&gt;
 &amp;lt;FORM NAME=&amp;quot;Risk Assessment&amp;quot; REQUIRED=&amp;quot;Y&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;FIELD ID=&amp;quot;PERSON&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Person on site responsible for your safety&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
        &amp;lt;FORMAT&amp;gt;T&amp;lt;/FORMAT&amp;gt;&lt;br /&gt;
        &amp;lt;REQUIRED&amp;gt;Y&amp;lt;/REQUIRED&amp;gt;&lt;br /&gt;
    &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
    &amp;lt;FIELD ID=&amp;quot;DESCRIPTION&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Brief description of work to be done&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
        &amp;lt;FORMAT&amp;gt;T&amp;lt;/FORMAT&amp;gt;&lt;br /&gt;
        &amp;lt;REQUIRED&amp;gt;Y&amp;lt;/REQUIRED&amp;gt;&lt;br /&gt;
    &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
    &amp;lt;FIELD ID=&amp;quot;HAZARDS&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Identify hazards associated&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
        &amp;lt;FORMAT&amp;gt;X&amp;lt;/FORMAT&amp;gt;&lt;br /&gt;
        &amp;lt;REQUIRED&amp;gt;N&amp;lt;/REQUIRED&amp;gt;&lt;br /&gt;
        &amp;lt;ITEMS&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Existing live pipework, services and plant&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Adverse weather conditions&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Chemicals/Substances present in existing System&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Transport of Items to and from site&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Tripping/Slipping&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Fall from height (platform)&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Transport of vehicles around site&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Mechanical lifting and moving&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Use of Substances hazardous to health&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Use of portable electrical tools&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Ventilation&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Contact with hot and cold surfaces&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Fire (including static electricity&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Storage/Stacking&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Falling from height (ladder)&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Solitary working&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Manual handling of materials&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Disposal of substances&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Explosion&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Lighting&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Noise&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Electricity&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Hand Tools&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Radiation sources&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Confined Spaces&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Fall of materials&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;General Dust / Debris&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
        &amp;lt;/ITEMS&amp;gt;&lt;br /&gt;
    &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
    &amp;lt;FIELD ID=&amp;quot;HAZARDS_OTHER&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Others (please specify)&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
        &amp;lt;FORMAT&amp;gt;T&amp;lt;/FORMAT&amp;gt;&lt;br /&gt;
        &amp;lt;REQUIRED&amp;gt;N&amp;lt;/REQUIRED&amp;gt;&lt;br /&gt;
    &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
    &amp;lt;FIELD ID=&amp;quot;RISK_ASSESSMENT&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Overall Assessment of Risk&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
        &amp;lt;FORMAT&amp;gt;DDL&amp;lt;/FORMAT&amp;gt;&lt;br /&gt;
        &amp;lt;REQUIRED&amp;gt;Y&amp;lt;/REQUIRED&amp;gt;&lt;br /&gt;
        &amp;lt;ITEMS&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM DEFAULT=&amp;quot;Y&amp;quot;&amp;gt;LOW&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;MED&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;HIGH&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
        &amp;lt;/ITEMS&amp;gt;&lt;br /&gt;
    &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
    &amp;lt;FIELD ID=&amp;quot;RISK_CONTROL&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Risk Control Measures&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
        &amp;lt;FORMAT&amp;gt;X&amp;lt;/FORMAT&amp;gt;&lt;br /&gt;
        &amp;lt;REQUIRED&amp;gt;N&amp;lt;/REQUIRED&amp;gt;&lt;br /&gt;
        &amp;lt;ITEMS&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Boots&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Hard Hat&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Hi Vis&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Chemical Boots&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Googles&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Glasses&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Gloves&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Chemical Gloves&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Harness&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Lanyard&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Trolley&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Checmical Suit&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
        &amp;lt;/ITEMS&amp;gt;&lt;br /&gt;
    &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
    &amp;lt;FIELD ID=&amp;quot;RISK_CONTROL_OTHER&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Others (please specify)&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
        &amp;lt;FORMAT&amp;gt;T&amp;lt;/FORMAT&amp;gt;&lt;br /&gt;
        &amp;lt;REQUIRED&amp;gt;N&amp;lt;/REQUIRED&amp;gt;&lt;br /&gt;
    &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
   &amp;lt;BUTTON CONFIRM=&amp;quot;Are the risks now considered to be accepted?&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TYPE&amp;gt;C&amp;lt;/TYPE&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Complete&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
    &amp;lt;/BUTTON&amp;gt;&lt;br /&gt;
    &amp;lt;BUTTON CONFIRM=&amp;quot;Please confirm that a Method Statement has been produced.&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TYPE&amp;gt;X&amp;lt;/TYPE&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Not Required&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
    &amp;lt;/BUTTON&amp;gt;&lt;br /&gt;
 &amp;lt;/FORM&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- MEDIA LANDSCAPE YES --&amp;gt; &lt;br /&gt;
= Appendix C: TEST PLAN  =&lt;br /&gt;
{{TestPlan_Header&lt;br /&gt;
|Title={{#var:Doc_Title}}&lt;br /&gt;
|Log={{#var:Reference}}&lt;br /&gt;
|Description=To test specific Lanemark Pre-work Checks UDF configuration and functionality.&lt;br /&gt;
|MenuAccess=Services&lt;br /&gt;
|Prerequisites=Ensure that the site being used has the UDF configuration as described in the [[#Data|Data]] section and [[#Appendix B: Risk Assessment Configuration|Appendix B]]. Ensure there are single- and multiple-item  jobs (with at least 3 items) to check. &lt;br /&gt;
|Objective=To test that: Required checks are completed; validation is forced on the checks; validation is forced so that they are entered before any other information; status is displayed correctly and; data is updated correctly.&lt;br /&gt;
}}&lt;br /&gt;
{{TestPlan_CycleHeader&lt;br /&gt;
|Cycle={{ #vardefineecho: Cycle | {{ #expr: {{ #var: Cycle }} + 1 }} }}{{ #vardefine: SubCycle | {{ #var: Cycle }} }}&lt;br /&gt;
|Title=PDA - Process&lt;br /&gt;
|Notes=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Start a single-item service job. press onto the Diagnosis tab.&lt;br /&gt;
|Result=A validation error should be displayed.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Check the '''Pre-work''' button label&lt;br /&gt;
|Result=It says &amp;quot;Risk Assessment (Incomplete)&amp;quot;&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Pre-work''' button.&lt;br /&gt;
|Result=The pre-work pop-up is shown. The label says Risk Assessment. All fields required are present in a scrolling form. There are 2 buttons: '''Complete''' and '''Not Required'''&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the Android Back key&lt;br /&gt;
|Result=A confirmation dialogue is displayed. &lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Cancel this.&lt;br /&gt;
|Result=The Pre-work pop-up is displayed again.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the Android Back button and Confirm the confirmation dialogue.&lt;br /&gt;
|Result=The Info tab is shown again. The label still says &amp;quot;Incomplete&amp;quot;.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Re-enter the Pre-work pop-up. press the '''Complete''' button.&lt;br /&gt;
|Result=A validation error should be displayed, as not all required information has been entered.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Enter all required information. press the '''Complete''' button.&lt;br /&gt;
|Result=A confirmation dialogue is displayed.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press &amp;quot;No&amp;quot;&lt;br /&gt;
|Result=The Pre-work pop-up is displayed again.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Complete''' button and press '''Yes''' on the confirmation dialogue.&lt;br /&gt;
|Result=The Info tab is shown again. The label says &amp;quot;Complete&amp;quot;.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Pre-work''' button.&lt;br /&gt;
|Result=A validation error should be displayed, as the Pre-work checks have been completed.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Complete this service-job.&lt;br /&gt;
|Result=All Pre-work check information is saved and can be displayed and reported on.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Start a new single-item job. Press the '''Pre-work''' button. Press the '''Not Required''' button.&lt;br /&gt;
|Result=A confirmation dialogue is displayed.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Cancel this.&lt;br /&gt;
|Result=The Pre-work pop-up is displayed again.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Not Required''' button and confirm.&lt;br /&gt;
|Result=The Info tab is shown again. The label says &amp;quot;Not Required&amp;quot;.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Complete this service-job.&lt;br /&gt;
|Result=All Pre-work check information is saved and can be displayed and reported on. It is marked as not required.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Start a new multiple-item job. On the first item, press the '''Pre-work''' button. Enter all required information. Press the '''Complete''' button and confirm.&lt;br /&gt;
|Result=The Info tab is shown again. The label says &amp;quot;Complete&amp;quot;.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Next''' button.&lt;br /&gt;
|Result=The next service item is shown. The Pre-work label says &amp;quot;Incomplete&amp;quot;.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Next''' button, then the '''Pre-work''' button.&lt;br /&gt;
|Result=The Pre-work pop-up is displayed again.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Not Required''' button and confirm.&lt;br /&gt;
|Result=The Info tab is shown again. The label says &amp;quot;Not Required&amp;quot;.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Prev''' button.&lt;br /&gt;
|Result=The previous service item is shown. The Pre-work label says &amp;quot;Complete&amp;quot;.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Pre-work''' button.&lt;br /&gt;
|Result=A validation error should be displayed, as the Pre-work checks have been completed.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Next''' button, then the '''Pre-work''' button.&lt;br /&gt;
|Result=A validation error should be displayed, as the Pre-work checks have been completed.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Next''' button, then the '''Pre-work''' button.&lt;br /&gt;
|Result=The Pre-work pop-up is displayed again.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the Back key and confirm. Press the '''Prev''' button, complete any required information (e.g. model on the info tab or comments on the diagnosis tab). Move to the Diagnosis tab and press '''Complete'''.&lt;br /&gt;
|Result=The service is completed, the next incomplete service is displayed.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_CycleFooter}} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- MEDIA LANDSCAPE NO --&amp;gt; &lt;br /&gt;
{{Doc_Appendix&lt;br /&gt;
|Appendix=D&lt;br /&gt;
|Estimate=Y&lt;br /&gt;
|Glossary=EPOD&lt;br /&gt;
|Ref1=[http://{{SERVERNAME}}/calidus-assist/EPOD/index.php/UG_291094_EPOD_Admin_User_Guide UG 291094 EPOD Admin User Guide]&lt;br /&gt;
|RefV1=2.0&lt;br /&gt;
|RefDate1=4/4/2012&lt;br /&gt;
|Ref2=[http://{{SERVERNAME}}/calidus-assist/EPOD/index.php/UG_291097_EPOD_Client_User_Guide UG 291097 EPOD Client User Guide]&lt;br /&gt;
|RefV2=3.0&lt;br /&gt;
|RefDate2=23/4/2013&lt;br /&gt;
|Ref3=[[REQ 309371 Lanemark eSERV Requirements]]&lt;br /&gt;
|RefV3=0.4&lt;br /&gt;
|RefDate3=29/08/2013&lt;br /&gt;
|Ref4=[[FS 311636 UDF Modifications]]&lt;br /&gt;
|RefV4=0.3&lt;br /&gt;
|RefDate4=05/09/2013&lt;br /&gt;
|Ref5=[[FS 311856 Multiple Serviceable Items]]&lt;br /&gt;
|RefV5=0.1&lt;br /&gt;
|RefDate5=10/09/2013&lt;br /&gt;
|REQ=0&lt;br /&gt;
|EST=0&lt;br /&gt;
|FS=0.5&lt;br /&gt;
|TS=0.0&lt;br /&gt;
|DEV=3.5&lt;br /&gt;
|ST=0.5&lt;br /&gt;
|IMP=0&lt;br /&gt;
|FOC=Y&lt;br /&gt;
|Client={{#var:Client}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
|FSEST=N&lt;br /&gt;
|Rev1=Julie Taylor&lt;br /&gt;
|Rev1Title=OBS Project Manager&lt;br /&gt;
|Rev2=Jeff Foster&lt;br /&gt;
|Rev2Title=Client Representative&lt;br /&gt;
|Rev3=Alan Thompson&lt;br /&gt;
|Rev3Title=Client Representative&lt;br /&gt;
}}&amp;lt;/div&amp;gt; &lt;br /&gt;
[[Category:{{#var:Client}} FS]]&lt;/div&gt;</summary>
		<author><name>Rmg</name></author>
	</entry>
	<entry>
		<id>https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_311908_Configurable_Pre-Work_Checks&amp;diff=1327</id>
		<title>FS 311908 Configurable Pre-Work Checks</title>
		<link rel="alternate" type="text/html" href="https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_311908_Configurable_Pre-Work_Checks&amp;diff=1327"/>
		<updated>2013-11-29T09:37:44Z</updated>

		<summary type="html">&lt;p&gt;Rmg: Update pre-work XML for risk control and change use of skipable to required&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
{{#vardefine:Client|LANE}}&lt;br /&gt;
{{#vardefine:ClientName|Lanemark}}&lt;br /&gt;
{{#vardefine:System|''CALIDUS'' eSERV}}&lt;br /&gt;
{{#vardefine:Doc_Title|Configurable Pre-Work Checks}}&lt;br /&gt;
{{#vardefine:Version|0.2}}&lt;br /&gt;
{{#vardefine:Date|4th October 2013}}&lt;br /&gt;
{{#vardefine:Reference|311908 309371-4/5}}&lt;br /&gt;
{{#vardefine:Year|2013}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Doc_Title&lt;br /&gt;
|Client={{#var:ClientName}}&lt;br /&gt;
|System={{#var:System}}&lt;br /&gt;
|Title={{#var:Doc_Title}}&lt;br /&gt;
|Reference=FS {{#var:Reference}}&lt;br /&gt;
|Version={{#var:Version}}&lt;br /&gt;
|Date={{#var:Date}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TOC --&amp;gt; &lt;br /&gt;
&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
= Functional Overview  =&lt;br /&gt;
== Client Requirement  ==&lt;br /&gt;
The user will be forced to enter Risk Assessment details before being allowed to start work against a Serviceable item, unless those checks have been completed before-hand. &lt;br /&gt;
&lt;br /&gt;
The Risk Assessment checks are shown in [[#Appendix A: Risk Assessment Form|Appendix A]]&lt;br /&gt;
&lt;br /&gt;
== Solution Overview  ==&lt;br /&gt;
A '''Pre-Work Checks''' button will be shown in section 4 (titled ''Risk Assessment'') - this pops up the Pre-work checks pop-up form:&lt;br /&gt;
&lt;br /&gt;
All contents will be configured, entered like Vehicle Checks, through a scrolling frame.&lt;br /&gt;
&lt;br /&gt;
The items required during Risk Assessment will be based on the existing form - some changes will be made to the Risk Control section.&lt;br /&gt;
* Person responsible for your safety - text entry - required.&lt;br /&gt;
* Brief description of work to be done - text entry - required.&lt;br /&gt;
* Hazards associated section:&lt;br /&gt;
** This will list a number of check-boxes, identical to those on the sheet. It is not required that all be checked.&lt;br /&gt;
** Risks (Other) - text entry - optional.&lt;br /&gt;
* Overall Risk Assessment - drop-down list of: High/Medium/Low - required.&lt;br /&gt;
* Risk Control section (Measures to be taken...):&lt;br /&gt;
** A number of check-boxes will be identified for the user to tick here, to make entry of this easier than it currently is on the sheet. These are optional.&lt;br /&gt;
** Risk Control (Other) - text entry - optional.&lt;br /&gt;
&lt;br /&gt;
On saving the checks, the user will be asked to confirm that these are now completed (through a '''Complete''' button). If so, they will be marked as such and the user will be allowed to exit and the title of the '''Risk Assessment''' button will be updated to show the status (Complete or Incomplete).&lt;br /&gt;
&lt;br /&gt;
The user will also be offered a button to indicate that the checks are not required (through a '''Not Required''' button). If this is clicked, the user will be asked to confirm this and, if so, the checks will be marked as not required, but completed anyway.&lt;br /&gt;
&lt;br /&gt;
Initially, the user will not be able to select any tab except Job Details and Info. Only when the Risk Assessment checks for this particular Serviceable Item are complete (or marked as pre-completed) will the user be able to select any other tabs for this Serviceable item. &lt;br /&gt;
&lt;br /&gt;
{{Note}} These configurable Pre-Work Checks are not search-able, exportable or reportable within {{#var:System}}, but can be displayable in the Admin client or on the Service Report.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scope  ==&lt;br /&gt;
* These changes will be made in the latest version of the {{#var:System}} product only.&lt;br /&gt;
* The changes will be made to the Android eSERV client only. &lt;br /&gt;
* {{Warning}} This change requires that the UDF modifications and Multiple Serviceable Items are complete first - see [[#Appendix_D:_Quote_.26_Document_References|Appendix D]] for references. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Set-up  =&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites  ==&lt;br /&gt;
&lt;br /&gt;
== Menu Structure  ==&lt;br /&gt;
&lt;br /&gt;
== Data  ==&lt;br /&gt;
Table EPOD_UDF_CONFIG must have new records created for the site:&lt;br /&gt;
* EPL_DESCRIPTION = &amp;quot;Risk Assessment checks&amp;quot;&lt;br /&gt;
** EPL_KEY_TYPE = &amp;quot;S&amp;quot;&lt;br /&gt;
** EPL_KEY_VAL = &amp;quot;{EPL_SITE_ID}&amp;quot;&lt;br /&gt;
** EPL_CONFIG_TYPE = &amp;quot;PREWORK&amp;quot;&lt;br /&gt;
** EPL_UDF_FIELDS - see [[#Appendix B: Risk Assessment Configuration|Appendix B]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
= Functional Description  =&lt;br /&gt;
== Android Client ==&lt;br /&gt;
{{Note}} The UDF Modifications change should already be complete - among many other items, this made the following changes to the PDA Service process:&lt;br /&gt;
{{comment|text=&lt;br /&gt;
The Info section should also check the Pre-work UDF configuration. If this is present, the Pre-work button should be created with the label as defined in the configuration. The Pre-work pop-up should be triggered from this, passing in the configuration setting.&lt;br /&gt;
&lt;br /&gt;
The Pre-work pop-up screen will be modified to replace the current fields and buttons with a scrolling vertical-layout view, if the flag PDAJOBGROUP.EPL_SERVICE_PREWORK is not &amp;quot;Y&amp;quot; or &amp;quot;N&amp;quot;. The view should be 70% height, allowing for up to 2 buttons and a title on the screen. The title should be set to the NAME parameter of the configuration settings. The buttons should be created from the buttons passed in in the configuration settings. The button type will define what actions are to be taken:&lt;br /&gt;
* If this is a Confirm button, the changes will be validated and, if OK, will be saved, the confirm attribute will be set to the type and the pop-up will exit.&lt;br /&gt;
* If this is an Ignore button, the changes will be saved, the confirm attribute will be set to the type and the pop-up will exit.&lt;br /&gt;
* If this is a Cancel button, the changes will not be saved, the confirm attribute will be set to the type and the pop-up will exit.&lt;br /&gt;
In all cases, if the Confirm attribute is present on the button, a Yes/No confirmation message will be displayed before the actions, displaying the message configured on the device. If the user chooses Yes, the actions above will be taken. If the user chooses No, they will be returned to the pop-up screen.&lt;br /&gt;
&lt;br /&gt;
When exiting the Pre-work pop-up screen, the value of the Confirm parameter and the returned XML string should be stored, for validating later.&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
''(on the Diagnosis tab)''&lt;br /&gt;
&lt;br /&gt;
The validation against the '''OK''' button should check whether any of the above configurations are present. If so, the following validation checks should be added to the validateService function:&lt;br /&gt;
* If PDA_UDF_PREWORK is not null and the Confirm property of the Pre-work pop-up is I (Ignore) or unset, a message should be displayed requiring the user to enter the Pre-work checks, referred to by the Name element of the Pre-work configuration. The device should return the user to the services screen on clearing this message.&lt;br /&gt;
...&lt;br /&gt;
* If PDA_UDF_PREWORK is not null, save the resulting XML from the Pre-work UDF object into the new Service field EPL_UDF_PREWORK.&lt;br /&gt;
|sign=[[FS 311636 UDF Modifications]]|date=11/9/2013 11:32:53}}&lt;br /&gt;
&lt;br /&gt;
There will be some slight modifications to this here, to allow for Multiple Serviceable Items processing, along with the changes required for this functionality.&lt;br /&gt;
&lt;br /&gt;
The Pre-work button will be labelled with the NAME attribute of the FORM in the XML, plus a status in parentheses, based on the Confirm attribute of the UDF created, one of:&lt;br /&gt;
* Blank  - &amp;quot;Incomplete&amp;quot;&lt;br /&gt;
* C - The label of the '''Complete''' button&lt;br /&gt;
* X - the label of the '''Cancel''' button&lt;br /&gt;
{{Note}} The '''Ignore''' button alone will not change the status, as this is the equivalent to the Android Back button. &lt;br /&gt;
&lt;br /&gt;
These Pre-work Checks can be completed for all Serviceable items, or just for the one in progress, so a user may choose to complete one, move to the next serviceable item, complete those checks, move on, etc, until all are complete. Therefore, when displaying this button for the first time, the screen must check the value of the CONFIRM attribute of the FORM tag from the UDF XML stored in EPL_UDF_PREWORK.&lt;br /&gt;
&lt;br /&gt;
When the screen has been exited with a '''Cancel''' or '''Confirm''' button press, the Confirm parameter will have been stored against the object and the items validated. This parameter must also be stored as an attribute against the FORM tag (CONFIRM=&amp;quot;X|I|C&amp;quot;) on the returned XML. This will also change the label of the Pre-work button, to reflect the new status.&lt;br /&gt;
&lt;br /&gt;
When Cancelling (using an X-type button), the XML must still be built and saved, but without the users' answers (i.e. as the passed-in configuration). As before, the CONFIRM attribute must be added and the Pre-work label changed.&lt;br /&gt;
&lt;br /&gt;
{{Note}} The XML returned to the FORM should be placed in EPL_UDF_PREWORK. This should be saved if the user chooses to exit the service or if the user changes Serviceable Items, through the functionality designed for Multiple Serviceable Items.&lt;br /&gt;
&lt;br /&gt;
The Android BACK key may be used to back out of the Pre-work screen - in this case, a confirmation back to the user be made (standard, not configurable) informing them that all entered data will be lost. If not confirmed, the user will be returned to the Pre-work screen. If confirmed, the user will be returned to the Info tab, nothing will be validated or saved, including the Confirm attribute, which should still be set to blank. &lt;br /&gt;
&lt;br /&gt;
If the Pre-work status has been set to 'C' or 'X', the user should NOT be allowed back in to change the status - the checks have been entered and confirmed by the user and may not be changed.&lt;br /&gt;
&lt;br /&gt;
If the FORM tag REQUIRED attribute has been set on the configuration XML to 'Y', the Pre-work checks MUST be complete before any work (other than Information-gathering) begins - the screen should not allow moving onto any tab other than Job Details and Information (i.e. any tab index greater than 1). If the user attempts to do this, an error should be displayed and the user should be returned to the Info or Job Details tab.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
= Appendix A: Risk Assessment Form =&lt;br /&gt;
[[File:REQ_309187_RISK.jpg|600px|border]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
= Appendix B: Risk Assessment Configuration =&lt;br /&gt;
 &amp;lt;FORM NAME=&amp;quot;Risk Assessment&amp;quot; REQUIRED=&amp;quot;Y&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;FIELD ID=&amp;quot;PERSON&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Person on site responsible for your safety&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
        &amp;lt;FORMAT&amp;gt;T&amp;lt;/FORMAT&amp;gt;&lt;br /&gt;
        &amp;lt;REQUIRED&amp;gt;Y&amp;lt;/REQUIRED&amp;gt;&lt;br /&gt;
    &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
    &amp;lt;FIELD ID=&amp;quot;DESCRIPTION&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Brief description of work to be done&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
        &amp;lt;FORMAT&amp;gt;T&amp;lt;/FORMAT&amp;gt;&lt;br /&gt;
        &amp;lt;REQUIRED&amp;gt;Y&amp;lt;/REQUIRED&amp;gt;&lt;br /&gt;
    &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
    &amp;lt;FIELD ID=&amp;quot;HAZARDS&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Identify hazards associated&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
        &amp;lt;FORMAT&amp;gt;X&amp;lt;/FORMAT&amp;gt;&lt;br /&gt;
        &amp;lt;REQUIRED&amp;gt;N&amp;lt;/REQUIRED&amp;gt;&lt;br /&gt;
        &amp;lt;ITEMS&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Existing live pipework, services and plant&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Adverse weather conditions&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Chemicals/Substances present in existing System&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Transport of Items to and from site&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Tripping/Slipping&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Fall from height (platform)&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Transport of vehicles around site&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Mechanical lifting and moving&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Use of Substances hazardous to health&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Use of portable electrical tools&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Ventilation&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Contact with hot and cold surfaces&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Fire (including static electricity&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Storage/Stacking&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Falling from height (ladder)&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Solitary working&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Manual handling of materials&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Disposal of substances&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Explosion&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Lighting&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Noise&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Electricity&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Hand Tools&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Radiation sources&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Confined Spaces&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Fall of materials&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;General Dust / Debris&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
        &amp;lt;/ITEMS&amp;gt;&lt;br /&gt;
    &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
    &amp;lt;FIELD ID=&amp;quot;HAZARDS_OTHER&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Others (please specify)&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
        &amp;lt;FORMAT&amp;gt;T&amp;lt;/FORMAT&amp;gt;&lt;br /&gt;
        &amp;lt;REQUIRED&amp;gt;N&amp;lt;/REQUIRED&amp;gt;&lt;br /&gt;
    &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
    &amp;lt;FIELD ID=&amp;quot;RISK_ASSESSMENT&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Overall Assessment of Risk&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
        &amp;lt;FORMAT&amp;gt;DDL&amp;lt;/FORMAT&amp;gt;&lt;br /&gt;
        &amp;lt;REQUIRED&amp;gt;Y&amp;lt;/REQUIRED&amp;gt;&lt;br /&gt;
        &amp;lt;ITEMS&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM DEFAULT=&amp;quot;Y&amp;quot;&amp;gt;LOW&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;MED&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;HIGH&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
        &amp;lt;/ITEMS&amp;gt;&lt;br /&gt;
    &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
    &amp;lt;FIELD ID=&amp;quot;RISK_CONTROL&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Risk Control Measures&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
        &amp;lt;FORMAT&amp;gt;X&amp;lt;/FORMAT&amp;gt;&lt;br /&gt;
        &amp;lt;REQUIRED&amp;gt;N&amp;lt;/REQUIRED&amp;gt;&lt;br /&gt;
        &amp;lt;ITEMS&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Boots&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Hard Hat&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Hi Vis&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Chemical Boots&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Googles&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Glasses&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Gloves&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Chemical Gloves&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Harness&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Lanyard&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Trolley&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Checmical Suit&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
        &amp;lt;/ITEMS&amp;gt;&lt;br /&gt;
    &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
    &amp;lt;FIELD ID=&amp;quot;RISK_CONTROL_OTHER&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Others (please specify)&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
        &amp;lt;FORMAT&amp;gt;T&amp;lt;/FORMAT&amp;gt;&lt;br /&gt;
        &amp;lt;REQUIRED&amp;gt;N&amp;lt;/REQUIRED&amp;gt;&lt;br /&gt;
    &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
   &amp;lt;BUTTON CONFIRM=&amp;quot;Are the risks now considered to be accepted?&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TYPE&amp;gt;C&amp;lt;/TYPE&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Complete&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
    &amp;lt;/BUTTON&amp;gt;&lt;br /&gt;
    &amp;lt;BUTTON CONFIRM=&amp;quot;Please confirm that a Method Statement has been produced.&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TYPE&amp;gt;X&amp;lt;/TYPE&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Not Required&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
    &amp;lt;/BUTTON&amp;gt;&lt;br /&gt;
 &amp;lt;/FORM&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- MEDIA LANDSCAPE YES --&amp;gt; &lt;br /&gt;
= Appendix C: TEST PLAN  =&lt;br /&gt;
{{TestPlan_Header&lt;br /&gt;
|Title={{#var:Doc_Title}}&lt;br /&gt;
|Log={{#var:Reference}}&lt;br /&gt;
|Description=To test specific Lanemark Pre-work Checks UDF configuration and functionality.&lt;br /&gt;
|MenuAccess=Services&lt;br /&gt;
|Prerequisites=Ensure that the site being used has the UDF configuration as described in the [[#Data|Data]] section and [[#Appendix B: Risk Assessment Configuration|Appendix B]]. Ensure there are single- and multiple-item  jobs (with at least 3 items) to check. &lt;br /&gt;
|Objective=To test that: Required checks are completed; validation is forced on the checks; validation is forced so that they are entered before any other information; status is displayed correctly and; data is updated correctly.&lt;br /&gt;
}}&lt;br /&gt;
{{TestPlan_CycleHeader&lt;br /&gt;
|Cycle={{ #vardefineecho: Cycle | {{ #expr: {{ #var: Cycle }} + 1 }} }}{{ #vardefine: SubCycle | {{ #var: Cycle }} }}&lt;br /&gt;
|Title=PDA - Process&lt;br /&gt;
|Notes=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Start a single-item service job. press onto the Diagnosis tab.&lt;br /&gt;
|Result=A validation error should be displayed.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Check the '''Pre-work''' button label&lt;br /&gt;
|Result=It says &amp;quot;Risk Assessment (Incomplete)&amp;quot;&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Pre-work''' button.&lt;br /&gt;
|Result=The pre-work pop-up is shown. The label says Risk Assessment. All fields required are present in a scrolling form. There are 2 buttons: '''Complete''' and '''Not Required'''&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the Android Back key&lt;br /&gt;
|Result=A confirmation dialogue is displayed. &lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Cancel this.&lt;br /&gt;
|Result=The Pre-work pop-up is displayed again.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the Android Back button and Confirm the confirmation dialogue.&lt;br /&gt;
|Result=The Info tab is shown again. The label still says &amp;quot;Incomplete&amp;quot;.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Re-enter the Pre-work pop-up. press the '''Complete''' button.&lt;br /&gt;
|Result=A validation error should be displayed, as not all required information has been entered.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Enter all required information. press the '''Complete''' button.&lt;br /&gt;
|Result=A confirmation dialogue is displayed.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press &amp;quot;No&amp;quot;&lt;br /&gt;
|Result=The Pre-work pop-up is displayed again.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Complete''' button and press '''Yes''' on the confirmation dialogue.&lt;br /&gt;
|Result=The Info tab is shown again. The label says &amp;quot;Complete&amp;quot;.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Pre-work''' button.&lt;br /&gt;
|Result=A validation error should be displayed, as the Pre-work checks have been completed.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Complete this service-job.&lt;br /&gt;
|Result=All Pre-work check information is saved and can be displayed and reported on.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Start a new single-item job. Press the '''Pre-work''' button. Press the '''Not Required''' button.&lt;br /&gt;
|Result=A confirmation dialogue is displayed.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Cancel this.&lt;br /&gt;
|Result=The Pre-work pop-up is displayed again.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Not Required''' button and confirm.&lt;br /&gt;
|Result=The Info tab is shown again. The label says &amp;quot;Not Required&amp;quot;.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Complete this service-job.&lt;br /&gt;
|Result=All Pre-work check information is saved and can be displayed and reported on. It is marked as not required.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Start a new multiple-item job. On the first item, press the '''Pre-work''' button. Enter all required information. Press the '''Complete''' button and confirm.&lt;br /&gt;
|Result=The Info tab is shown again. The label says &amp;quot;Complete&amp;quot;.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Next''' button.&lt;br /&gt;
|Result=The next service item is shown. The Pre-work label says &amp;quot;Incomplete&amp;quot;.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Next''' button, then the '''Pre-work''' button.&lt;br /&gt;
|Result=The Pre-work pop-up is displayed again.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Not Required''' button and confirm.&lt;br /&gt;
|Result=The Info tab is shown again. The label says &amp;quot;Not Required&amp;quot;.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Prev''' button.&lt;br /&gt;
|Result=The previous service item is shown. The Pre-work label says &amp;quot;Complete&amp;quot;.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Pre-work''' button.&lt;br /&gt;
|Result=A validation error should be displayed, as the Pre-work checks have been completed.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Next''' button, then the '''Pre-work''' button.&lt;br /&gt;
|Result=A validation error should be displayed, as the Pre-work checks have been completed.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Next''' button, then the '''Pre-work''' button.&lt;br /&gt;
|Result=The Pre-work pop-up is displayed again.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the Back key and confirm. Press the '''Prev''' button, move to the Diagnosis tab and press '''Done'''.&lt;br /&gt;
|Result=A validation error should be displayed, as not all Pre-work checks for all items have been completed.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Complete entry for all items on this service job and complete this job.&lt;br /&gt;
|Result=All Pre-work check information is saved and can be displayed and reported on for the job.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_CycleFooter}} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- MEDIA LANDSCAPE NO --&amp;gt; &lt;br /&gt;
{{Doc_Appendix&lt;br /&gt;
|Appendix=D&lt;br /&gt;
|Estimate=Y&lt;br /&gt;
|Glossary=EPOD&lt;br /&gt;
|Ref1=[http://{{SERVERNAME}}/calidus-assist/EPOD/index.php/UG_291094_EPOD_Admin_User_Guide UG 291094 EPOD Admin User Guide]&lt;br /&gt;
|RefV1=2.0&lt;br /&gt;
|RefDate1=4/4/2012&lt;br /&gt;
|Ref2=[http://{{SERVERNAME}}/calidus-assist/EPOD/index.php/UG_291097_EPOD_Client_User_Guide UG 291097 EPOD Client User Guide]&lt;br /&gt;
|RefV2=3.0&lt;br /&gt;
|RefDate2=23/4/2013&lt;br /&gt;
|Ref3=[[REQ 309371 Lanemark eSERV Requirements]]&lt;br /&gt;
|RefV3=0.4&lt;br /&gt;
|RefDate3=29/08/2013&lt;br /&gt;
|Ref4=[[FS 311636 UDF Modifications]]&lt;br /&gt;
|RefV4=0.3&lt;br /&gt;
|RefDate4=05/09/2013&lt;br /&gt;
|Ref5=[[FS 311856 Multiple Serviceable Items]]&lt;br /&gt;
|RefV5=0.1&lt;br /&gt;
|RefDate5=10/09/2013&lt;br /&gt;
|REQ=0&lt;br /&gt;
|EST=0&lt;br /&gt;
|FS=0.5&lt;br /&gt;
|TS=0.0&lt;br /&gt;
|DEV=3.5&lt;br /&gt;
|ST=0.5&lt;br /&gt;
|IMP=0&lt;br /&gt;
|FOC=Y&lt;br /&gt;
|Client={{#var:Client}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
|FSEST=N&lt;br /&gt;
|Rev1=Julie Taylor&lt;br /&gt;
|Rev1Title=OBS Project Manager&lt;br /&gt;
|Rev2=Jeff Foster&lt;br /&gt;
|Rev2Title=Client Representative&lt;br /&gt;
|Rev3=Alan Thompson&lt;br /&gt;
|Rev3Title=Client Representative&lt;br /&gt;
}}&amp;lt;/div&amp;gt; &lt;br /&gt;
[[Category:{{#var:Client}} FS]]&lt;/div&gt;</summary>
		<author><name>Rmg</name></author>
	</entry>
	<entry>
		<id>https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_311908_Configurable_Pre-Work_Checks&amp;diff=1326</id>
		<title>FS 311908 Configurable Pre-Work Checks</title>
		<link rel="alternate" type="text/html" href="https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_311908_Configurable_Pre-Work_Checks&amp;diff=1326"/>
		<updated>2013-11-29T09:31:59Z</updated>

		<summary type="html">&lt;p&gt;Rmg: Add Risk Control items following client confirmation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
{{#vardefine:Client|LANE}}&lt;br /&gt;
{{#vardefine:ClientName|Lanemark}}&lt;br /&gt;
{{#vardefine:System|''CALIDUS'' eSERV}}&lt;br /&gt;
{{#vardefine:Doc_Title|Configurable Pre-Work Checks}}&lt;br /&gt;
{{#vardefine:Version|0.2}}&lt;br /&gt;
{{#vardefine:Date|4th October 2013}}&lt;br /&gt;
{{#vardefine:Reference|311908 309371-4/5}}&lt;br /&gt;
{{#vardefine:Year|2013}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Doc_Title&lt;br /&gt;
|Client={{#var:ClientName}}&lt;br /&gt;
|System={{#var:System}}&lt;br /&gt;
|Title={{#var:Doc_Title}}&lt;br /&gt;
|Reference=FS {{#var:Reference}}&lt;br /&gt;
|Version={{#var:Version}}&lt;br /&gt;
|Date={{#var:Date}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TOC --&amp;gt; &lt;br /&gt;
&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
= Functional Overview  =&lt;br /&gt;
== Client Requirement  ==&lt;br /&gt;
The user will be forced to enter Risk Assessment details before being allowed to start work against a Serviceable item, unless those checks have been completed before-hand. &lt;br /&gt;
&lt;br /&gt;
The Risk Assessment checks are shown in [[#Appendix A: Risk Assessment Form|Appendix A]]&lt;br /&gt;
&lt;br /&gt;
== Solution Overview  ==&lt;br /&gt;
A '''Pre-Work Checks''' button will be shown in section 4 (titled ''Risk Assessment'') - this pops up the Pre-work checks pop-up form:&lt;br /&gt;
&lt;br /&gt;
All contents will be configured, entered like Vehicle Checks, through a scrolling frame.&lt;br /&gt;
&lt;br /&gt;
The items required during Risk Assessment will be based on the existing form - some changes will be made to the Risk Control section.&lt;br /&gt;
* Person responsible for your safety - text entry - required.&lt;br /&gt;
* Brief description of work to be done - text entry - required.&lt;br /&gt;
* Hazards associated section:&lt;br /&gt;
** This will list a number of check-boxes, identical to those on the sheet. It is not required that all be checked.&lt;br /&gt;
** Risks (Other) - text entry - optional.&lt;br /&gt;
* Overall Risk Assessment - drop-down list of: High/Medium/Low - required.&lt;br /&gt;
* Risk Control section (Measures to be taken...):&lt;br /&gt;
** A number of check-boxes will be identified for the user to tick here, to make entry of this easier than it currently is on the sheet. These are optional.&lt;br /&gt;
** Risk Control (Other) - text entry - optional.&lt;br /&gt;
&lt;br /&gt;
On saving the checks, the user will be asked to confirm that these are now completed (through a '''Complete''' button). If so, they will be marked as such and the user will be allowed to exit and the title of the '''Risk Assessment''' button will be updated to show the status (Complete or Incomplete).&lt;br /&gt;
&lt;br /&gt;
The user will also be offered a button to indicate that the checks are not required (through a '''Not Required''' button). If this is clicked, the user will be asked to confirm this and, if so, the checks will be marked as not required, but completed anyway.&lt;br /&gt;
&lt;br /&gt;
Initially, the user will not be able to select any tab except Job Details and Info. Only when the Risk Assessment checks for this particular Serviceable Item are complete (or marked as pre-completed) will the user be able to select any other tabs for this Serviceable item. &lt;br /&gt;
&lt;br /&gt;
{{Note}} These configurable Pre-Work Checks are not search-able, exportable or reportable within {{#var:System}}, but can be displayable in the Admin client or on the Service Report.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scope  ==&lt;br /&gt;
* These changes will be made in the latest version of the {{#var:System}} product only.&lt;br /&gt;
* The changes will be made to the Android eSERV client only. &lt;br /&gt;
* {{Warning}} This change requires that the UDF modifications and Multiple Serviceable Items are complete first - see [[#Appendix_D:_Quote_.26_Document_References|Appendix D]] for references. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Set-up  =&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites  ==&lt;br /&gt;
&lt;br /&gt;
== Menu Structure  ==&lt;br /&gt;
&lt;br /&gt;
== Data  ==&lt;br /&gt;
Table EPOD_UDF_CONFIG must have new records created for the site:&lt;br /&gt;
* EPL_DESCRIPTION = &amp;quot;Risk Assessment checks&amp;quot;&lt;br /&gt;
** EPL_KEY_TYPE = &amp;quot;S&amp;quot;&lt;br /&gt;
** EPL_KEY_VAL = &amp;quot;{EPL_SITE_ID}&amp;quot;&lt;br /&gt;
** EPL_CONFIG_TYPE = &amp;quot;PREWORK&amp;quot;&lt;br /&gt;
** EPL_UDF_FIELDS - see [[#Appendix B: Risk Assessment Configuration|Appendix B]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
= Functional Description  =&lt;br /&gt;
== Android Client ==&lt;br /&gt;
{{Note}} The UDF Modifications change should already be complete - among many other items, this made the following changes to the PDA Service process:&lt;br /&gt;
{{comment|text=&lt;br /&gt;
The Info section should also check the Pre-work UDF configuration. If this is present, the Pre-work button should be created with the label as defined in the configuration. The Pre-work pop-up should be triggered from this, passing in the configuration setting.&lt;br /&gt;
&lt;br /&gt;
The Pre-work pop-up screen will be modified to replace the current fields and buttons with a scrolling vertical-layout view, if the flag PDAJOBGROUP.EPL_SERVICE_PREWORK is not &amp;quot;Y&amp;quot; or &amp;quot;N&amp;quot;. The view should be 70% height, allowing for up to 2 buttons and a title on the screen. The title should be set to the NAME parameter of the configuration settings. The buttons should be created from the buttons passed in in the configuration settings. The button type will define what actions are to be taken:&lt;br /&gt;
* If this is a Confirm button, the changes will be validated and, if OK, will be saved, the confirm attribute will be set to the type and the pop-up will exit.&lt;br /&gt;
* If this is an Ignore button, the changes will be saved, the confirm attribute will be set to the type and the pop-up will exit.&lt;br /&gt;
* If this is a Cancel button, the changes will not be saved, the confirm attribute will be set to the type and the pop-up will exit.&lt;br /&gt;
In all cases, if the Confirm attribute is present on the button, a Yes/No confirmation message will be displayed before the actions, displaying the message configured on the device. If the user chooses Yes, the actions above will be taken. If the user chooses No, they will be returned to the pop-up screen.&lt;br /&gt;
&lt;br /&gt;
When exiting the Pre-work pop-up screen, the value of the Confirm parameter and the returned XML string should be stored, for validating later.&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
''(on the Diagnosis tab)''&lt;br /&gt;
&lt;br /&gt;
The validation against the '''OK''' button should check whether any of the above configurations are present. If so, the following validation checks should be added to the validateService function:&lt;br /&gt;
* If PDA_UDF_PREWORK is not null and the Confirm property of the Pre-work pop-up is I (Ignore) or unset, a message should be displayed requiring the user to enter the Pre-work checks, referred to by the Name element of the Pre-work configuration. The device should return the user to the services screen on clearing this message.&lt;br /&gt;
...&lt;br /&gt;
* If PDA_UDF_PREWORK is not null, save the resulting XML from the Pre-work UDF object into the new Service field EPL_UDF_PREWORK.&lt;br /&gt;
|sign=[[FS 311636 UDF Modifications]]|date=11/9/2013 11:32:53}}&lt;br /&gt;
&lt;br /&gt;
There will be some slight modifications to this here, to allow for Multiple Serviceable Items processing, along with the changes required for this functionality.&lt;br /&gt;
&lt;br /&gt;
The Pre-work button will be labelled with the NAME attribute of the FORM in the XML, plus a status in parentheses, based on the Confirm attribute of the UDF created, one of:&lt;br /&gt;
* Blank  - &amp;quot;Incomplete&amp;quot;&lt;br /&gt;
* C - The label of the '''Complete''' button&lt;br /&gt;
* X - the label of the '''Cancel''' button&lt;br /&gt;
{{Note}} The '''Ignore''' button alone will not change the status, as this is the equivalent to the Android Back button. &lt;br /&gt;
&lt;br /&gt;
These Pre-work Checks can be completed for all Serviceable items, or just for the one in progress, so a user may choose to complete one, move to the next serviceable item, complete those checks, move on, etc, until all are complete. Therefore, when displaying this button for the first time, the screen must check the value of the CONFIRM attribute of the FORM tag from the UDF XML stored in EPL_UDF_PREWORK.&lt;br /&gt;
&lt;br /&gt;
When the screen has been exited with a '''Cancel''' or '''Confirm''' button press, the Confirm parameter will have been stored against the object and the items validated. This parameter must also be stored as an attribute against the FORM tag (CONFIRM=&amp;quot;X|I|C&amp;quot;) on the returned XML. This will also change the label of the Pre-work button, to reflect the new status.&lt;br /&gt;
&lt;br /&gt;
When Cancelling (using an X-type button), the XML must still be built and saved, but without the users' answers (i.e. as the passed-in configuration). As before, the CONFIRM attribute must be added and the Pre-work label changed.&lt;br /&gt;
&lt;br /&gt;
{{Note}} The XML returned to the FORM should be placed in EPL_UDF_PREWORK. This should be saved if the user chooses to exit the service or if the user changes Serviceable Items, through the functionality designed for Multiple Serviceable Items.&lt;br /&gt;
&lt;br /&gt;
The Android BACK key may be used to back out of the Pre-work screen - in this case, a confirmation back to the user be made (standard, not configurable) informing them that all entered data will be lost. If not confirmed, the user will be returned to the Pre-work screen. If confirmed, the user will be returned to the Info tab, nothing will be validated or saved, including the Confirm attribute, which should still be set to blank. &lt;br /&gt;
&lt;br /&gt;
If the Pre-work status has been set to 'C' or 'X', the user should NOT be allowed back in to change the status - the checks have been entered and confirmed by the user and may not be changed.&lt;br /&gt;
&lt;br /&gt;
If the FORM tag REQUIRED attribute has been set on the configuration XML to 'Y', the Pre-work checks MUST be complete before any work (other than Information-gathering) begins - the screen should not allow moving onto any tab other than Job Details and Information (i.e. any tab index greater than 1). If the user attempts to do this, an error should be displayed and the user should be returned to the Info or Job Details tab.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
= Appendix A: Risk Assessment Form =&lt;br /&gt;
[[File:REQ_309187_RISK.jpg|600px|border]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
= Appendix B: Risk Assessment Configuration =&lt;br /&gt;
 &amp;lt;FORM NAME=&amp;quot;Risk Assessment&amp;quot; REQUIRED=&amp;quot;Y&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;FIELD ID=&amp;quot;PERSON&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Person on site responsible for your safety&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
        &amp;lt;FORMAT&amp;gt;T&amp;lt;/FORMAT&amp;gt;&lt;br /&gt;
        &amp;lt;SKIPABLE&amp;gt;N&amp;lt;/SKIPABLE&amp;gt;&lt;br /&gt;
    &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
    &amp;lt;FIELD ID=&amp;quot;DESCRIPTION&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Brief description of work to be done&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
        &amp;lt;FORMAT&amp;gt;T&amp;lt;/FORMAT&amp;gt;&lt;br /&gt;
        &amp;lt;SKIPABLE&amp;gt;N&amp;lt;/SKIPABLE&amp;gt;&lt;br /&gt;
    &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
    &amp;lt;FIELD ID=&amp;quot;HAZARDS&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Identify hazards associated&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
        &amp;lt;FORMAT&amp;gt;X&amp;lt;/FORMAT&amp;gt;&lt;br /&gt;
        &amp;lt;SKIPABLE&amp;gt;Y&amp;lt;/SKIPABLE&amp;gt;&lt;br /&gt;
        &amp;lt;ITEMS&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Existing live pipework, services and plant&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Adverse weather conditions&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Chemicals/Substances present in existing System&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Transport of Items to and from site&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Tripping/Slipping&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Fall from height (platform)&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Transport of vehicles around site&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Mechanical lifting and moving&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Use of Substances hazardous to health&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Use of portable electrical tools&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Ventilation&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Contact with hot and cold surfaces&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Fire (including static electricity&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Storage/Stacking&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Falling from height (ladder)&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Solitary working&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Manual handling of materials&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Disposal of substances&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Explosion&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Lighting&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Noise&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Electricity&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Hand Tools&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Radiation sources&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Confined Spaces&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;Fall of materials&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;General Dust / Debris&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
        &amp;lt;/ITEMS&amp;gt;&lt;br /&gt;
    &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
    &amp;lt;FIELD ID=&amp;quot;HAZARDS_OTHER&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Others (please specify)&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
        &amp;lt;FORMAT&amp;gt;T&amp;lt;/FORMAT&amp;gt;&lt;br /&gt;
        &amp;lt;SKIPABLE&amp;gt;Y&amp;lt;/SKIPABLE&amp;gt;&lt;br /&gt;
    &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
    &amp;lt;FIELD ID=&amp;quot;RISK_ASSESSMENT&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Overall Assessment of Risk&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
        &amp;lt;FORMAT&amp;gt;DDL&amp;lt;/FORMAT&amp;gt;&lt;br /&gt;
        &amp;lt;SKIPABLE&amp;gt;N&amp;lt;/SKIPABLE&amp;gt;&lt;br /&gt;
        &amp;lt;ITEMS&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM DEFAULT=&amp;quot;Y&amp;quot;&amp;gt;LOW&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;MED&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
            &amp;lt;ITEM&amp;gt;HIGH&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
        &amp;lt;/ITEMS&amp;gt;&lt;br /&gt;
    &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
    &amp;lt;FIELD ID=&amp;quot;RISK_CONTROL&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Risk Control Measures&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
        &amp;lt;FORMAT&amp;gt;X&amp;lt;/FORMAT&amp;gt;&lt;br /&gt;
        &amp;lt;SKIPABLE&amp;gt;Y&amp;lt;/SKIPABLE&amp;gt;&lt;br /&gt;
        &amp;lt;ITEMS&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Boots&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Hard Hat&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Hi Vis&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Chemical Boots&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Googles&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Glasses&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Gloves&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Chemical Gloves&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Harness&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Lanyard&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Trolley&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
           &amp;lt;ITEM&amp;gt;Checmical Suit&amp;lt;/ITEM&amp;gt;&lt;br /&gt;
        &amp;lt;/ITEMS&amp;gt;&lt;br /&gt;
    &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
    &amp;lt;FIELD ID=&amp;quot;RISK_CONTROL_OTHER&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Others (please specify)&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
        &amp;lt;FORMAT&amp;gt;T&amp;lt;/FORMAT&amp;gt;&lt;br /&gt;
        &amp;lt;SKIPABLE&amp;gt;Y&amp;lt;/SKIPABLE&amp;gt;&lt;br /&gt;
    &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
   &amp;lt;BUTTON CONFIRM=&amp;quot;Are the risks now considered to be accepted?&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TYPE&amp;gt;C&amp;lt;/TYPE&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Complete&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
    &amp;lt;/BUTTON&amp;gt;&lt;br /&gt;
    &amp;lt;BUTTON CONFIRM=&amp;quot;Please confirm that a Method Statement has been produced.&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;TYPE&amp;gt;X&amp;lt;/TYPE&amp;gt;&lt;br /&gt;
        &amp;lt;TEXT&amp;gt;Not Required&amp;lt;/TEXT&amp;gt;&lt;br /&gt;
    &amp;lt;/BUTTON&amp;gt;&lt;br /&gt;
 &amp;lt;/FORM&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- MEDIA LANDSCAPE YES --&amp;gt; &lt;br /&gt;
= Appendix C: TEST PLAN  =&lt;br /&gt;
{{TestPlan_Header&lt;br /&gt;
|Title={{#var:Doc_Title}}&lt;br /&gt;
|Log={{#var:Reference}}&lt;br /&gt;
|Description=To test specific Lanemark Pre-work Checks UDF configuration and functionality.&lt;br /&gt;
|MenuAccess=Services&lt;br /&gt;
|Prerequisites=Ensure that the site being used has the UDF configuration as described in the [[#Data|Data]] section and [[#Appendix B: Risk Assessment Configuration|Appendix B]]. Ensure there are single- and multiple-item  jobs (with at least 3 items) to check. &lt;br /&gt;
|Objective=To test that: Required checks are completed; validation is forced on the checks; validation is forced so that they are entered before any other information; status is displayed correctly and; data is updated correctly.&lt;br /&gt;
}}&lt;br /&gt;
{{TestPlan_CycleHeader&lt;br /&gt;
|Cycle={{ #vardefineecho: Cycle | {{ #expr: {{ #var: Cycle }} + 1 }} }}{{ #vardefine: SubCycle | {{ #var: Cycle }} }}&lt;br /&gt;
|Title=PDA - Process&lt;br /&gt;
|Notes=&lt;br /&gt;
}} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Start a single-item service job. press onto the Diagnosis tab.&lt;br /&gt;
|Result=A validation error should be displayed.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Check the '''Pre-work''' button label&lt;br /&gt;
|Result=It says &amp;quot;Risk Assessment (Incomplete)&amp;quot;&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Pre-work''' button.&lt;br /&gt;
|Result=The pre-work pop-up is shown. The label says Risk Assessment. All fields required are present in a scrolling form. There are 2 buttons: '''Complete''' and '''Not Required'''&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the Android Back key&lt;br /&gt;
|Result=A confirmation dialogue is displayed. &lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Cancel this.&lt;br /&gt;
|Result=The Pre-work pop-up is displayed again.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the Android Back button and Confirm the confirmation dialogue.&lt;br /&gt;
|Result=The Info tab is shown again. The label still says &amp;quot;Incomplete&amp;quot;.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Re-enter the Pre-work pop-up. press the '''Complete''' button.&lt;br /&gt;
|Result=A validation error should be displayed, as not all required information has been entered.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Enter all required information. press the '''Complete''' button.&lt;br /&gt;
|Result=A confirmation dialogue is displayed.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press &amp;quot;No&amp;quot;&lt;br /&gt;
|Result=The Pre-work pop-up is displayed again.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Complete''' button and press '''Yes''' on the confirmation dialogue.&lt;br /&gt;
|Result=The Info tab is shown again. The label says &amp;quot;Complete&amp;quot;.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Pre-work''' button.&lt;br /&gt;
|Result=A validation error should be displayed, as the Pre-work checks have been completed.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Complete this service-job.&lt;br /&gt;
|Result=All Pre-work check information is saved and can be displayed and reported on.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Start a new single-item job. Press the '''Pre-work''' button. Press the '''Not Required''' button.&lt;br /&gt;
|Result=A confirmation dialogue is displayed.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Cancel this.&lt;br /&gt;
|Result=The Pre-work pop-up is displayed again.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Not Required''' button and confirm.&lt;br /&gt;
|Result=The Info tab is shown again. The label says &amp;quot;Not Required&amp;quot;.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Complete this service-job.&lt;br /&gt;
|Result=All Pre-work check information is saved and can be displayed and reported on. It is marked as not required.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Start a new multiple-item job. On the first item, press the '''Pre-work''' button. Enter all required information. Press the '''Complete''' button and confirm.&lt;br /&gt;
|Result=The Info tab is shown again. The label says &amp;quot;Complete&amp;quot;.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Next''' button.&lt;br /&gt;
|Result=The next service item is shown. The Pre-work label says &amp;quot;Incomplete&amp;quot;.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Next''' button, then the '''Pre-work''' button.&lt;br /&gt;
|Result=The Pre-work pop-up is displayed again.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Not Required''' button and confirm.&lt;br /&gt;
|Result=The Info tab is shown again. The label says &amp;quot;Not Required&amp;quot;.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Prev''' button.&lt;br /&gt;
|Result=The previous service item is shown. The Pre-work label says &amp;quot;Complete&amp;quot;.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Pre-work''' button.&lt;br /&gt;
|Result=A validation error should be displayed, as the Pre-work checks have been completed.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Next''' button, then the '''Pre-work''' button.&lt;br /&gt;
|Result=A validation error should be displayed, as the Pre-work checks have been completed.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the '''Next''' button, then the '''Pre-work''' button.&lt;br /&gt;
|Result=The Pre-work pop-up is displayed again.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Press the Back key and confirm. Press the '''Prev''' button, move to the Diagnosis tab and press '''Done'''.&lt;br /&gt;
|Result=A validation error should be displayed, as not all Pre-work checks for all items have been completed.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Complete entry for all items on this service job and complete this job.&lt;br /&gt;
|Result=All Pre-work check information is saved and can be displayed and reported on for the job.&lt;br /&gt;
|Remarks= |PassFail= }} {{TestPlan_CycleFooter}} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- MEDIA LANDSCAPE NO --&amp;gt; &lt;br /&gt;
{{Doc_Appendix&lt;br /&gt;
|Appendix=D&lt;br /&gt;
|Estimate=Y&lt;br /&gt;
|Glossary=EPOD&lt;br /&gt;
|Ref1=[http://{{SERVERNAME}}/calidus-assist/EPOD/index.php/UG_291094_EPOD_Admin_User_Guide UG 291094 EPOD Admin User Guide]&lt;br /&gt;
|RefV1=2.0&lt;br /&gt;
|RefDate1=4/4/2012&lt;br /&gt;
|Ref2=[http://{{SERVERNAME}}/calidus-assist/EPOD/index.php/UG_291097_EPOD_Client_User_Guide UG 291097 EPOD Client User Guide]&lt;br /&gt;
|RefV2=3.0&lt;br /&gt;
|RefDate2=23/4/2013&lt;br /&gt;
|Ref3=[[REQ 309371 Lanemark eSERV Requirements]]&lt;br /&gt;
|RefV3=0.4&lt;br /&gt;
|RefDate3=29/08/2013&lt;br /&gt;
|Ref4=[[FS 311636 UDF Modifications]]&lt;br /&gt;
|RefV4=0.3&lt;br /&gt;
|RefDate4=05/09/2013&lt;br /&gt;
|Ref5=[[FS 311856 Multiple Serviceable Items]]&lt;br /&gt;
|RefV5=0.1&lt;br /&gt;
|RefDate5=10/09/2013&lt;br /&gt;
|REQ=0&lt;br /&gt;
|EST=0&lt;br /&gt;
|FS=0.5&lt;br /&gt;
|TS=0.0&lt;br /&gt;
|DEV=3.5&lt;br /&gt;
|ST=0.5&lt;br /&gt;
|IMP=0&lt;br /&gt;
|FOC=Y&lt;br /&gt;
|Client={{#var:Client}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
|FSEST=N&lt;br /&gt;
|Rev1=Julie Taylor&lt;br /&gt;
|Rev1Title=OBS Project Manager&lt;br /&gt;
|Rev2=Jeff Foster&lt;br /&gt;
|Rev2Title=Client Representative&lt;br /&gt;
|Rev3=Alan Thompson&lt;br /&gt;
|Rev3Title=Client Representative&lt;br /&gt;
}}&amp;lt;/div&amp;gt; &lt;br /&gt;
[[Category:{{#var:Client}} FS]]&lt;/div&gt;</summary>
		<author><name>Rmg</name></author>
	</entry>
</feed>