def validate_update_contracting_value_identical(request): if requested_fields_changes(request, ("amountPaid",)): value = request.validated["data"].get("value") paid_data = request.validated["json_data"].get("amountPaid") for attr in ("valueAddedTaxIncluded", "currency"): if value and paid_data and paid_data.get(attr) is not None: paid = ContractValue(paid_data) if value.get(attr) != paid.get(attr): raise_operation_error( request, "{} of {} should be identical to {} of value of contract".format(attr, "amountPaid", attr), name="amountPaid", )
def contract_amountPaid(self): if self.amountPaid: return ContractValue( dict( amount=self.amountPaid.amount, amountNet=self.amountPaid.amountNet, currency=self.value.currency, valueAddedTaxIncluded=self.value.valueAddedTaxIncluded, ))