Don't allow deletion of some receiving data rows on mobile
specifically, rows on a truck dump parent, which originated from a child batch (and therefore presumably, an invoice)
This commit is contained in:
parent
9ace36c459
commit
d60679adfd
|
@ -279,9 +279,29 @@ class ReceivingBatchView(PurchasingBatchView):
|
||||||
def row_deletable(self, row):
|
def row_deletable(self, row):
|
||||||
batch = row.batch
|
batch = row.batch
|
||||||
|
|
||||||
# can always delete rows from truck dump parent
|
# don't allow if master view has disabled that entirely
|
||||||
|
if not self.rows_deletable:
|
||||||
|
return False
|
||||||
|
|
||||||
|
# can never delete rows for complete/executed batches
|
||||||
|
# TODO: not so sure about the 'complete' part though..?
|
||||||
|
if batch.executed or batch.complete:
|
||||||
|
return False
|
||||||
|
|
||||||
|
# can "always" delete rows from truck dump parent...
|
||||||
if batch.is_truck_dump_parent():
|
if batch.is_truck_dump_parent():
|
||||||
return True
|
|
||||||
|
# ...but only on desktop!
|
||||||
|
if not self.mobile:
|
||||||
|
return True
|
||||||
|
|
||||||
|
# ...for mobile we only allow deletion of rows which did *not* come
|
||||||
|
# from a child batch, i.e. can delete ad-hoc rows only
|
||||||
|
# TODO: should have a better way to detect this; for now we rely on
|
||||||
|
# the fact that only rows from an invoice or similar would have
|
||||||
|
# order quantities
|
||||||
|
if not (row.cases_ordered or row.units_ordered):
|
||||||
|
return True
|
||||||
|
|
||||||
# can always delete rows from truck dump child
|
# can always delete rows from truck dump child
|
||||||
elif batch.is_truck_dump_child():
|
elif batch.is_truck_dump_child():
|
||||||
|
|
Loading…
Reference in a new issue