예제 #1
0
파일: views.py 프로젝트: code13dan/FMS
def add_invoice(request):
    """Add invoice"""

    if request.method == 'POST':
        # check if it's new partner or already existing
        try:
            partner_id = int(request.POST['partner_id'])
            partner = Partner.objects.get(pk=partner_id)
            partner_form = PartnerForm(request.POST, instance=partner)
        except ValueError:
            partner_form = PartnerForm(request.POST)

        invoice_form = InvoiceForm(request.POST)
        article_formset = ArticleFormSet(request.POST)
        if article_formset.is_valid() and\
                invoice_form.is_valid() and\
                partner_form.is_valid():
            # save new/changed partner instance
            partner_instance = partner_form.save()
            # get all articles from invoice and save them as JSON string in
            # article field in Invoice model
            articles = []
            for form in article_formset:
                articles.append(
                    {'amount gross': str(form.cleaned_data['amount_gross']),
                     'article_type': form.cleaned_data['article_type'],
                     'destination': form.cleaned_data['destination']}
                    )
            articles_json = json.dumps(articles)
            # create invoice instance with POST partner and articles
            invoice_instance = invoice_form.save(commit=False)
            invoice_instance.company = partner_instance
            invoice_instance.article = articles_json
            invoice_instance.save()
            return redirect('invoices-app:all-url')

    else:
        article_formset = ArticleFormSet()
        invoice_form = InvoiceForm()
        partner_form = PartnerForm()

    # create partners list for page js searching purpose
    partners_list = Partner.objects.order_by('company_name')\
        .values('id', 'company_name')

    ctx = {'partners_list': partners_list,
           'partner_form': partner_form,
           'article_form_set': article_formset,
           'invoice_form': invoice_form}
    return render(request, 'invoices/add_invoice.html', ctx)
예제 #2
0
파일: views.py 프로젝트: HanabiDev/actp_app
def create_partner(request):
    if request.method == 'GET':
        form = PartnerForm()
        return render_to_response('partner.html', {'form': form},
                                  context_instance=RequestContext(request))

    if request.method == 'POST':
        form = PartnerForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return redirect(reverse_lazy('partners:home'))

        return render_to_response('partner.html', {'form': form},
                                  context_instance=RequestContext(request))
예제 #3
0
    def post(self, request, *args, **kwargs):
        self.partner = Partners.objects.get(pk=self.kwargs["pk"])
        if request.method == "POST":
            self.form = PartnerForm(request.POST, instance=self.partner)
            if self.form.is_valid():
                self.form.save()
                self.formset2detail = PartnerDetailsFormset(
                    request.POST, instance=self.partner)
                self.formset2desc = PartnerDescriptionFormset(
                    request.POST, instance=self.partner)
                messages.add_message(request, messages.SUCCESS,
                                     "Обновление данных произведено. ")
                if self.formset2detail.is_valid():
                    if self.formset2desc.is_valid():
                        self.formset2desc.save()
                        self.formset2detail.save()
                        messages.add_message(request, messages.SUCCESS,
                                             "Контрагент успешно изменен. ")
                        return redirect(
                            reverse("partners_detail",
                                    kwargs={"pk": self.partner.pk}))

                else:
                    messages.add_message(
                        request, messages.ERROR,
                        "ОШИБКА при заполнении реквизитов! Проверьте заполнение обязательных полей. "
                    )
            else:
                messages.add_message(
                    request, messages.ERROR,
                    "ВНИМАНИЕ: Необходимо заполнить все обязательные параметры! "
                )
            return super(PartnerUpdate, self).get(request, *args, **kwargs)
예제 #4
0
 def post(self, request):
     form = PartnerForm(request.POST, instance=self.partner)
     if form.is_valid():
         form.save()
         messages.add_message(request, messages.SUCCESS,
                              "The partner has been successfully edited.")
         return HttpResponseRedirect(self.next)
     return render(request=request,
                   template_name="partners/edit.html",
                   context={"form": form})
예제 #5
0
 def post(self, request):
     form = PartnerForm(request.POST)
     if form.is_valid():
         partner = form.save(commit=False)
         partner.partner_id = generate_id(form.cleaned_data["company"])
         partner.save()
         messages.add_message(request, messages.SUCCESS,
                              "The partner has been successfully created.")
         return HttpResponseRedirect(self.next)
     return render(request=request,
                   template_name="partners/create.html",
                   context={"form": form})
예제 #6
0
 def post(self, request, *args, **kwargs):
     self.form = PartnerForm(request.POST)
     if request.method == "POST":
         if self.form.is_valid():
             new_partner = self.form.save()
             self.formset2detail = PartnerDetailsFormset(
                 request.POST, instance=new_partner)
             self.formset2desc = PartnerDescriptionFormset(
                 request.POST, instance=new_partner)
             if self.formset2detail.is_valid():
                 if self.formset2desc.is_valid():
                     self.formset2desc.save()
                     self.formset2detail.save()
                     messages.add_message(request, messages.SUCCESS,
                                          "Контрагент успешно добавлен. ")
                     return redirect("/partners/index/", *args, **kwargs)
             else:
                 messages.add_message(
                     request, messages.ERROR,
                     "ОШИБКА при заполнении данных! Проверьте заполнение полей. "
                 )
     self.formset2detail = PartnerDetailsFormset(request.POST)
     self.formset2desc = PartnerDescriptionFormset(request.POST)
     return super(PartnerCreate, self).get(request, *args, **kwargs)
예제 #7
0
 def get(self, request):
     form = PartnerForm(instance=self.partner)
     return render(request=request,
                   template_name="partners/edit.html",
                   context={"form": form})
예제 #8
0
 def get(self, request):
     form = PartnerForm()
     return render(request=request,
                   template_name="partners/create.html",
                   context={"form": form})
예제 #9
0
 def get(self, request, *args, **kwargs):
     self.form = PartnerForm()
     self.formset2detail = PartnerDetailsFormset()
     self.formset2desc = PartnerDescriptionFormset()
     return super(PartnerCreate, self).get(request, *args, **kwargs)
예제 #10
0
 def get(self, request, *args, **kwargs):
     self.partner = Partners.objects.get(pk=self.kwargs["pk"])
     self.form = PartnerForm(instance=self.partner)
     self.formset2detail = PartnerDetailsFormset(instance=self.partner)
     self.formset2desc = PartnerDescriptionFormset(instance=self.partner)
     return super(PartnerUpdate, self).get(request, *args, **kwargs)