def get(self, id): from services.mailinvoice import InvoiceService try: invoice = InvoiceService.get_by_id(id) return _stub(invoice) except Exception as exc: error(unicode(exc)) raise
def post(self): data = request.json['data'] prices = data['items'] invoice_id = data['invoice_id'] invoice = InvoiceService.get_by_id(invoice_id) try: PriceService.create_or_update_prices(invoice, prices) db.session.commit() except PriceServiceException as err: debug(unicode(err)) abort(404, message=unicode(err)) except Exception as exc: error(unicode(exc)) raise return "ok"
def prepared_acceptance(cls, acceptance, date, pointsale_id, type, provider_id, invoices): from services.mailinvoice import InvoiceService from services.helperserv import HelperService from services.modelhelper import ModelService if acceptance.id is None or acceptance.status == DRAFT: if date is None: raise AcceptanceException( u"Поле дата - обязательно для заполнения.") acceptance.date = HelperService.convert_to_pydate(date) if not ModelService.check_id( pointsale_id): raise AcceptanceException( u"Поле торговая точка - обязательно для заполнения.") if type is None: raise AcceptanceException( u"Нельзя создать приход без типа.") type = int(type) if type not in [MAIL, NEW]: raise AcceptanceException( u"Передан неверный тип.") if type == MAIL and not invoices: raise AcceptanceException( u"При выбранном типе 'Регулярная накладная' необходимо " u"указать как минимум одну накладную.") if type == NEW and not ModelService.check_id(provider_id): raise AcceptanceException( u"При выбранном типе 'Новая' необходимо указать " u"поставщика.") if type == MAIL: acceptance.provider_id = None acceptance.invoices[:] = [] for invoice_id in invoices: invoice = InvoiceService.get_by_id(invoice_id) acceptance.invoices.append(invoice) return acceptance