def transport_bordereau_bp_signed(obj: TransportBordereau) -> bool: if obj.copies.all().filter(state=STATE_PRESENT).count() != obj.copies.all().count(): return False obj.step = TransportBordereau.TB_SENT obj.save() obj.copies.all().filter(state=STATE_PRESENT).update(state=STATE_TRANSPORT) return True
def transport_bordereau_b_signed(obj: TransportBordereau) -> bool: if obj.copies.all().filter(state=STATE_TRANSPORT).count() != obj.copies.all().count(): return False obj.step = TransportBordereau.TB_VALIDATED obj.save() obj.copies.all().filter(state=STATE_TRANSPORT).update(state=STATE_ABSENT, location=obj.destination, owner=obj.owner) return True
def transport_bordereau_create(copies) -> TransportBordereau: copies = [x for x in copies if x.state == STATE_PRESENT] if not copies: return None count = RecordNumbers.get_next_record('transport') record_number = '%s/TB/%s' % (settings.RECORD_PREFIX, count) code_1d = '%s%05d%07d' % (TransportBordereau.PREFIX_1D, settings.EAN13_IDENTIFIER, count) obj = TransportBordereau(step=TransportBordereau.TB_WAITING, emission_date=datetime.datetime.now(tz=utc), ministry=settings.MINISTRY, organization=settings.ORGANIZATION, location=settings.LOCATION, record_number=record_number, self_issued=True, code_1d=code_1d, signature=get_signature(record_number)) obj.save() obj.copies.add(*copies) return obj
def transport_bordereau_a_signed(obj: TransportBordereau) -> bool: obj.step = TransportBordereau.TB_RECEIVED obj.save() obj.copies.all().update(state=STATE_PRESENT, location=obj.destination, owner=obj.owner) return True