def form_valid(self, form): form.instance = new_bill_protocol( bill_model=form.instance, entity_slug=self.kwargs['entity_slug'], user_model=self.request.user ) return super().form_valid(form=form)
def form_valid(self, form): unit_slug = form.cleaned_data.get('entity_unit') form.instance = new_bill_protocol( bill_model=form.instance, entity_slug=self.kwargs['entity_slug'], user_model=self.request.user, unit_slug=unit_slug) return super().form_valid(form=form)
def form_valid(self, form): bill_model = form.save(commit=False) ledger_model, bill_model = new_bill_protocol( bill_model=bill_model, entity_slug=self.kwargs['entity_slug'], user_model=self.request.user) if self.for_purchase_order: po_pk = self.kwargs['po_pk'] item_uuids = self.request.GET.get('item_uuids') if not item_uuids: return HttpResponseBadRequest() item_uuids = item_uuids.split(',') po_qs = PurchaseOrderModel.objects.for_entity( entity_slug=self.kwargs['entity_slug'], user_model=self.request.user) po_model: PurchaseOrderModel = get_object_or_404(po_qs, uuid__exact=po_pk) if po_model.po_date > bill_model.date: messages.add_message( self.request, message=f'Bill Date {bill_model.date} cannot be' f' earlier than PO Date {po_model.po_date}', level=messages.ERROR, extra_tags='is-danger') return self.render_to_response( self.get_context_data(form=form)) po_model_items_qs = po_model.itemthroughmodel_set.filter( uuid__in=item_uuids) bill_model.update_amount_due(queryset=po_model_items_qs) bill_model.new_state(commit=True) bill_model.clean() form.save() po_model_items_qs.update(bill_model=bill_model) bill_model.migrate_state(user_model=self.request.user, entity_slug=self.kwargs['entity_slug'], itemthrough_queryset=po_model_items_qs) else: form.save() return HttpResponseRedirect(self.get_success_url())