Example #1
0
def lager_info(request):
    """View für die Lager-Informations-Ansicht"""
    
    kerneladapter = Kerneladapter()
    anzahl_artikel = len(kerneladapter.get_article_list())
    booked, unbooked = _get_locations_by_height()
    booked = sorted((height, len(loc)) for height, loc in booked.items())
    unbooked = sorted((height, len(loc)) for height, loc in unbooked.items())
    
    num_booked = sum(platz[1] for platz in booked)
    num_unbooked = sum(platz[1] for x in unbooked)
    
    ctx = {'anzahl_bebucht': num_booked,
           'anzahl_unbebucht': num_unbooked,
           'anzahl_plaetze': num_booked + num_unbooked,
           'anzahl_artikel': anzahl_artikel,
           'plaetze_bebucht': booked,
           'plaetze_unbebucht': unbooked
          }
    
    extra_info = kerneladapter.get_statistics()
    extra_info['oldest_movement'] = fix_timestamp(extra_info['oldest_movement'])
    extra_info['oldest_pick'] = fix_timestamp(extra_info['oldest_pick'])
    ctx.update(extra_info)
    return render_to_response('myplfrontend/lager_info.html', ctx, context_instance=RequestContext(request))
Example #2
0
def find_softm_differences():
    """Find articles which have different quantities in myPL as their SoftM counterparts."""
    kerneladapter = Kerneladapter()
    softmbestand = set(husoftm.bestaende.buchbestaende(lager=100).items())
    kernelbestand = set((artdict['artnr'], artdict['full_quantity']) for artdict in
                        (kerneladapter.get_article(article) for article in kerneladapter.get_article_list()))
    difkernel2softm = kernelbestand.difference(softmbestand)
    difsoftm2kernel = softmbestand.difference(kernelbestand)
    artnrs = set(artnr for (artnr, mng) in itertools.chain(difkernel2softm, difsoftm2kernel))
    dictkernel2softm = dict(difkernel2softm)
    dictsoftm2kernel = dict(difsoftm2kernel)
    return [dict(artnr=artnr, softm_menge=dictsoftm2kernel.get(artnr, 0), kernel_menge=dictkernel2softm.get(artnr, 0))
            for artnr in artnrs]
Example #3
0
def penner(request):
    """View für Penner-Übersicht (Artikel ohne Aktivität in der letzten Zeit)"""
    
    kerneladapter = Kerneladapter()
    abc_articles = set(artnr for (m, artnr) in itertools.chain(*kerneladapter.get_abc().values()))
    lagerbestand = set(kerneladapter.get_article_list())
    
    pennerliste = []
    for artnr in (lagerbestand - abc_articles):
        product_detail = kerneladapter.get_article(artnr)
        full_quantity = product_detail['full_quantity']
        nve_count = len(product_detail['muis'])
        pennerliste.append((nve_count, full_quantity, artnr))
    return render_to_response('myplfrontend/penner.html',
                              {'pennerliste': sorted(pennerliste, reverse=True)},
                              context_instance=RequestContext(request))
Example #4
0
def show_articles(request, want_softm):
    """Render a list of all articles."""
    if request.method == 'POST':
        url = './' + request.POST.get('article', '')
        return HttpResponseRedirect(url)
    
    kerneladapter = Kerneladapter()
    articles = []
    for artnr in kerneladapter.get_article_list():
        article = kerneladapter.get_article(artnr)
        article['name'] = cs.masterdata.article.name(article['artnr'])
        if want_softm:
            article['buchbestand'] = husoftm.bestaende.buchbestand(lager=100, artnr=article['artnr'])
        articles.append(article)
    
    # TODO: Artikel finden, von denen SoftM denkt, sie wären im myPL, von denen das myPL aber nichts weiss
    # Wie?
    
    title = 'Artikel am Lager'
    if want_softm:
        title += ' mit SoftM Buchbeständen'
    return render_to_response('myplfrontend/articles.html',
                              {'title': title, 'articles': articles, 'want_softm': want_softm},
                              context_instance=RequestContext(request))