#!/usr/bin/env python
# encoding: utf-8
"""manuelle_rueckmeldung
"""

# myplfrontend/bin/manuelle_rueckmeldung
# Created by Christian Klein and Christoph Borgolte on 2010-02-04 for HUDORA.
# Copyright (c) 2010 HUDORA. All rights reserved.


from optparse import OptionParser
import myplfrontend.wmslib


def parse_commandline():
    """Parse the commandline and return information."""

    parser = OptionParser(version=True)
    parser.description = __doc__

    parser.set_usage('usage: %prog [options]. Try %prog --help for details.')
    parser.add_option('--nullen', default=False, action='store_true', help=u'Stornierne des Auftrags')
    parser.add_option('--grund', help=u'Grund für das manuelle Rückmelden')
    parser.add_option('--user', help=u'Der verantwortliche Nutzer')
    parser.add_option('-o', '--out', dest='zielqueue',
                      help='Zielqueue: Bspw. zum Nullen: cs-wms.test.rueckmeldung#38#spezial')
    parser.add_option('-d', '--debug', action='store_true', dest='debug', help='Enables debugging mode')

    opts, args = parser.parse_args()
    if not args:
        parser.error("Bitte mindestens eine KB Nummer angeben. Bsp: 3113127")
    if not opts.grund:
        parser.error("'--grund' nicht angegeben")
    if not opts.user:
        parser.error("'--user' nicht angegeben")
    if not opts.zielqueue:
        parser.error("'--out' nicht angegeben")
    opts.audit_trail = u"%s: %s" % (opts.user, opts.grund)
    return opts, args


def main(options, args):
    """This implements the actual programm functionality."""

    for kommiauftragnr in args:
        myplfrontend.wmslib.kommibeleg_zurueckmelden(kommiauftragnr,
                                                     zielqueue=options.zielqueue,
                                                     audit_trail=options.grund,
                                                     nullen=options.nullen)


if __name__ == '__main__':
    main(*parse_commandline())
