Пример #1
0
def article_detail(request, artnr):
    """View für Detailansicht eines Artikels"""
    
    kerneladapter = Kerneladapter()
    article_info = kerneladapter.get_article(artnr)
    return render_to_response('myplfrontend/article_details.html',
                              {'title': 'Artikelinformationen: %s (%s)' % (cs.masterdata.article.name(artnr), artnr),
                               'article_info': article_info,
                               'bestand100': husoftm.bestaende.bestand(artnr=artnr, lager=100),
                               'units': [kerneladapter.get_unit_info(nve) for nve in article_info['muis']]},
                              context_instance=RequestContext(request))
Пример #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]
Пример #3
0
def abc(request):
    """View für ABC-Klassifizierung"""
    
    kerneladapter = Kerneladapter()
    klasses = {}
    for name, klass in kerneladapter.get_abc().items():
        tmp = []
        for quantity, artnr in klass:
            product_detail = kerneladapter.get_article(artnr)
            full_quantity = product_detail["full_quantity"]
            nve_count = len(product_detail["muis"])
            tmp.append((quantity, full_quantity, artnr, nve_count))
        klasses[name] = tmp
    return render_to_response('myplfrontend/abc.html', {'klasses': klasses},
                              context_instance=RequestContext(request))
Пример #4
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))
Пример #5
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))