Example #1
0
def fifo_counts(qstring):
    qs = COGSAssignment.objects.all()
    qs = COGSAssignmentSerializer.setup_eager_loading(qs)
    data = COGSAssignmentSerializer(qs, many=True).data

    order_keys = list(set(row['shipment_label'] for row in data))
    item_keys = list(set(row['unit_label'] for row in data))

    ship_cnts = inv_api.shipmentcounts({})
    arrival_dates = dict((sl['order'], sl['arrival_date']) for sl in ship_cnts)

    tbl = []
    for o in order_keys:
        row = {'order': o, 'arrival_date': arrival_dates.get(o)}
        for i in item_keys:
          row[i] = sum([x['quantity'] for x in data if x['unit_label'] == i and x['shipment_label'] == o])
        tbl.append(row)

    return sorted(tbl, key=lambda x: x['arrival_date'])
Example #2
0
 def fifo_assignments(self):
     qs = self.cogsassignment_set.all()
     qs = COGSAssignmentSerializer.setup_eager_loading(qs)
     return COGSAssignmentSerializer(qs, many=True).data
Example #3
0
def cogsassignment(qstring):
    qs = COGSAssignment.objects.all()
    qs = COGSAssignmentSerializer.setup_eager_loading(qs)
    return COGSAssignmentSerializer(qs, many=True).data