Exemple #1
0
def get_provisionings_by_id(kommi_id):
    """Returns the picklist and the retrievallist for an ID.

    returns (lieferschein, picklist, retrievallist) whereas one of the two might be None.
    So far we assume that an entry in the provisioning pipeline already exists.

    """

    lieferscheine = Lieferschein.objects.filter(kommissionierbelegnr=kommi_id)
    if lieferscheine.count() > 1:
        zwitscher('%s: Kommibeleg doppelt im System! #bug' % kommi_id, username='******')

    lieferschein = lieferscheine[0]
    provisionings = lieferschein.provisioning_set.all()
    #if len(provisionings) not in [1, 2]:
    #    raise RuntimeError("Something Nasty is happening %s %r" % (lieferschein, provisionings))
    picklist, retrievallist = None, None
    for prov in provisionings:
        if prov.get_provisioning_type() == 'pick' and not picklist:
            picklist = prov
        elif prov.get_provisioning_type() == 'retrieval' and not retrievallist:
            retrievallist = prov
        else:
            raise RuntimeError("Something very nasty is happening %r" % prov)
    return (lieferschein, picklist, retrievallist)
Exemple #2
0
 def zeroize(self):
     """Nullt einen KOmissionierbeleg in SoftM (ISR00).
     
     Nullen führt dazu, dass die entsprechende Ware erneut zugeteilt wird."""
     
     # Wir gehen hier Dreistufig vor:
     # 1: wir vversuchen ihn im Kernel zu nullen
     # 2., wenn das geklappt hat, versuchen wir in in Django auf null zu setzen
     # 3. wenn das geklappt hat, versuchen wir ihn im SoftM zu nullen
     
     if self.status in ['new', 'in_mypl']:
         zwitscher('%s: Versuche Beleg mit Null zurückzumelden (%s, %s)'
                   % (self.kommissionierbelegnr, self.name1, self.ort), username='******')
         if self.status == 'in_mypl':
             Kerneladapter().delete_pipeline(self.kommissionierbelegnr)
         self._commit_to_interface('zeroize')
         self.status = 'zeroized'
         self.save()