def update_invoice(uid): invoice = Invoice.query.get_or_404(uid) form = InvoiceForm(request.form, obj=invoice) if request.method == "POST": if form.validate(current_user): save = False if invoice.org_uid != form.org_uid.data: invoice.org_uid = form.org_uid.data save = True if invoice.agent_uid != form.agent_uid.data: invoice.agent_uid = form.agent_uid.data save = True if invoice.ninvoice != form.ninvoice.data: if int(form.inv_type.data) == CONST.INVOICE_IN: invoice.ninvoice = form.ninvoice.data save = True else: flash(u"Запрещено изменение номера счет-факутры книги продаж", "alert-danger") if invoice.dinvoice.date() != form.dinvoice.data: invoice.dinvoice = form.dinvoice.data save = True if invoice.sum_snds != form.sum_snds.data: invoice.sum_snds = form.sum_snds.data save = True if invoice.sum_no_nds18 != form.sum_no_nds18.data: invoice.sum_no_nds18 = form.sum_no_nds18.data save = True if invoice.sum_nds18 != form.sum_nds18.data: invoice.sum_nds18 = form.sum_nds18.data save = True if invoice.sum_no_nds10 != form.sum_no_nds10.data: invoice.sum_no_nds10 = form.sum_no_nds10.data save = True if invoice.sum_nds10 != form.sum_nds10.data: invoice.sum_nds10 = form.sum_nds10.data save = True if save: invoice.change_date = datetime.now() invoice.commission = invoice.get_commission() db.session.add(invoice) db.session.commit() flash(u"Изменения в счет-фактуре сохранены", "alert-success") return redirect(url_for("invoices", invoice_type=CONST.INVOICE_TYPE[int(form.inv_type.data)])) else: flash(u"Данные не менялись. Изменения не сохранены", "alert-info") return redirect(url_for("invoices", invoice_type=CONST.INVOICE_TYPE[int(form.inv_type.data)])) return render_template('invoice.html', form=form, edit=1)
def invoices(invoice_type=CONST.INVOICE_TYPE[CONST.INVOICE_IN]): form = InvoiceForm() form_elem = ElemForm() if invoice_type == CONST.INVOICE_TYPE[CONST.INVOICE_IN]: inv_type = CONST.INVOICE_IN elif invoice_type == CONST.INVOICE_TYPE[CONST.INVOICE_OUT]: inv_type = CONST.INVOICE_OUT del form.ninvoice if request.method == "POST": if form.validate(current_user): if inv_type == CONST.INVOICE_OUT: ninvoice = Invoice.make_unique_num(form.dinvoice.data, form.org_uid.data) flash(u"Счет-фактуре присвоен номер "+ninvoice, "alert-success") else: ninvoice = form.ninvoice.data newinvoice = Invoice(inv_type, form.org_uid.data, form.agent_uid.data, ninvoice, form.dinvoice.data, form.sum_snds.data, form.sum_no_nds18.data, form.sum_nds18.data, form.sum_no_nds10.data, form.sum_nds10.data, current_user.uid) db.session.add(newinvoice) db.session.commit() flash(u"Добавлена новая счет-фактура", "alert-success") # clean fields lst_fields = ['dinvoice', 'sum_snds', 'sum_no_nds18', 'sum_nds18', 'sum_no_nds10', 'sum_nds10'] if inv_type == CONST.INVOICE_IN: lst_fields.append('ninvoice') for fld in lst_fields: form[fld].raw_data = None form[fld].data = None invoices = current_user.available_invoices(inv_type=inv_type) sums = invoices.with_entities(func.sum(Invoice.sum_snds), func.sum(Invoice.sum_no_nds18), func.sum(Invoice.sum_nds18), func.sum(Invoice.sum_no_nds10), func.sum(Invoice.sum_nds10), func.sum(Invoice.commission)).first() return render_template('invoices.html', form=form, form_elem=form_elem, invoices=invoices.all(), invoice_type=invoice_type, sums=sums, edit=0)