<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->
<section xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="5.0" 
    xmlns:xl="http://www.w3.org/1999/xlink" 
    xmlns:xi="http://www.w3.org/2001/XInclude"
    xsi:schemaLocation="http://docbook.org/ns/docbook ../../../../content/dtd/docbook.xsd"
    xmlns="http://docbook.org/ns/docbook">
       <title>Manufacturing: Main</title>
        <para>
        The default screen is the JobShop menu.</para>
        <para>The JobShop is used to manage and track all the manufacturing or assembling work.
        The work (or job) carried out in the JobShop is called a Production Run. Production Runs
        can also be called Work Orders.
        </para>
        <para>Production Runs are the work list of the manufacturing department and include details of:</para>
        <itemizedlist>
        <listitem>
        <para>the product to be manufactured</para></listitem>
        <listitem
        ><para>the raw materials or sub assemblies to use</para></listitem>
        <listitem><para>the steps needed to make the finished product</para></listitem>
        </itemizedlist>
        <title>How do I create a new Production Run?</title>
        <para>Productions Runs can be created manually or automatically. To create one manually:</para>
        <orderedlist>
        <listitem><para>Click the "Create a Production Run" button</para></listitem>
        
        </orderedlist>
        <title>How do I locate an existing Production Run?</title>
        <para>To locate an existing Production Run</para>
        <orderedlist>
        <listitem><para>Click "Find"</para></listitem>
        <listitem><para>A list of any existing Production Runs will be displayed</para></listitem>
        <listitem><para>Click the Production Run Id to view the Production Run details</para></listitem>
        </orderedlist>
        <title>How do I delete a Production Run?</title>
        <para>Production Runs cannot be deleted but they can be cancelled instead.</para> 
</section>