<?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>OFBiz:MFG: Tonen production run</title>
        <para>
        Dit scherm toont de productierun. Via dit scherm kun je:
        </para>
        <itemizedlist>
                <listitem><para>Basisgegevens van de productierun wijzigen</para></listitem>
                <listitem><para>Taken aanmaken - klik op 'Taken'</para></listitem>
                <listitem><para>Materialen toevoegen - klik op 'Materialen'</para></listitem>
                <listitem><para>Productiemiddelen koppelen - klik op 'Productiemiddelen'</para></listitem>
                <listitem><para>De gekoppelde (afhankelijke) productieruns bekijken - klik op 'Associaties'</para></listitem>
                <listitem><para>De gekoppelde content document bekijken - klik op 'Content'</para></listitem>
                <listitem><para>De werkelijke kosten van de productierun bekijken - klik op 'Kosten'</para></listitem>
            </itemizedlist>
        
        <section>
            <title>Gegevens productierun</title>
            <para>
            Deze sectie toont de basisgegevens van de productie run. Tevens kun je de basisgegevens bijwerken.
            </para>
            <para>In deze sectie kun je volgende acties uitvoeren:</para>
            <itemizedlist>
                <listitem><para>Annuleren - om de taak te annuleren</para></listitem>
                <listitem><para>Quick close - om de taak af te sluiten</para></listitem>
                <listitem><para>Quick complete - 0m de taak als uitgevoerd aan te merken</para></listitem>
                <listitem><para>Bevestigen - om de taak te bevestigen</para></listitem>
                <listitem><para>Agenderen -om de taak te agenderen in de kalender</para></listitem>
                <listitem><para>Afdrukken - om een pdf van de productierun aan te maken</para></listitem>
            </itemizedlist>
        </section>
        <section>
            <title>Orderregels</title>
            <para>
            Deze sectie toont de gekoppelde orderregels
            </para>
        </section>
        <section>
            <title>Taken</title>
            <para>
            Deze sectie toont de gekoppelde taken
            </para>
        </section>
        <section>
            <title>Materialen</title>
            <para>
            Deze sectie toont de benodigde materialen voor de productierun
            </para>
        </section>
        <section>
            <title>Productiemiddelen</title>
            <para>
            Deze sectie toont de benodigde productiemiddelen voor de productierun
            </para>
        </section>
        <section>
            <title>Notities</title>
            <para>
            Deze sectie toont de gekoppelde notities inzake de productierun
            </para>
        </section>
</section>