示例#1
0
def info_panel(request):
    """Renders a page, that shows an info panel for the employees in the store."""
    
    kerneladapter = Kerneladapter()
    pipeline = (kerneladapter.get_kommiauftrag(kommi) for kommi in kerneladapter.get_kommiauftrag_list())
    for kommi in pipeline:
        kommi['orderlines_count'] = len(kommi.get('orderlines', []))
    
    db = myplfrontend.tools.get_pickinfo_from_pipeline_data(pipeline)
    
    # FIXME: Der Code hier beruht noch teilweise auf den Daten, die aus der zugeh. Django DB kamen, zB. postions['done'] wurde vorher
    # aus dieser DB berechnet. Wie können wir die erledigten Positionen aus dem Kernel / couchdb / ... erhalten?
    
    positions = {}
    positions['done'] = 0
    positions['inwork'] = 0
    if 'yes' in db: # FIXME aus dem get_pickinfo_from_pipeline_data() code verstehe ich nicht, wo hier ein key 'yes' herkommen soll?
        positions['todo'] = int(db['yes']['orderlines_count'])
    else:
        positions['todo'] = 0
    positions['total'] = positions['done'] + positions['inwork'] + positions['todo']
    if positions['total']:
        positions['percent_done'] = (100.0/positions['total']) * positions['done']
    else:
        positions['percent_done'] = 0
    return render_to_response('myplfrontend/info_panel.html',
                              {'pipeline': pipeline, 'db': db, 'positions': positions},
                              context_instance=RequestContext(request))
示例#2
0
def artikel_heute(request):
    """View für Übersichtsseite mit den heute zu verschickenden Artikeln"""
    
    kerneladapter = Kerneladapter()
    
    # summarize product quantities
    products = {}
    for komminr in kerneladapter.get_kommiauftrag_list():
        kommi = kerneladapter.get_kommiauftrag(komminr)
        if kommi['shouldprocess'] == 'yes':
            for orderline in kommi['orderlines']:
                artnr = orderline['artnr']
                products[artnr] = products.get(artnr, 0) + orderline['menge']
    
    artikel_heutel = []
    for artnr, quantity in products.items():
        product = cs.masterdata.article.eap(artnr)
        if product:
            total_weight = quantity * float_or_0(product.get("package_weight")) / 1000.0
            total_volume = quantity * float_or_0(product.get("package_volume_liter"))
            total_palettes = quantity / float_or_0(product.get("palettenfaktor"), default=1.0)
            artikel_heutel.append({'quantity': quantity,
                                   'artnr': artnr,
                                   'name': product['name'],
                                   'palettenfaktor': product.get('palettenfaktor'),
                                   'total_weight': total_weight,
                                   'total_volume': total_volume,
                                   'paletten': total_palettes})
        else:
            cs.zwitscher.zwitscher('%s: eAP nicht in CouchDB. OMG! #error' % artnr, username='******')
    return render_to_response('myplfrontend/artikel_heute.html', {'artikel_heute': artikel_heutel},
                              context_instance=RequestContext(request))
示例#3
0
def kommiauftrag_list(request):
    """View für Liste der Aufträge in der Provpipeline"""
    
    kerneladapter = Kerneladapter()
    kommiauftraege_new, kommiauftraege_processing = [], []
    
    for kommiauftragnr in kerneladapter.get_kommiauftrag_list():
        kommiauftrag = kerneladapter.get_kommiauftrag(kommiauftragnr)
        
        if kommiauftrag['status'] == 'processing':
            kommiauftraege_processing.append(kerneladapter.get_kommiauftrag(kommiauftragnr))
        else:
            kommiauftraege_new.append(kerneladapter.get_kommiauftrag(kommiauftragnr))
        
    kommiauftraege = kommiauftraege_processing + kommiauftraege_new
    
    return render_to_response('myplfrontend/kommiauftraege.html',
                              {'title': 'Komissionierungen, die nicht erledigt sind.',
                               'kommiauftraege': kommiauftraege},
                              context_instance=RequestContext(request))