Пример #1
0
 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
Пример #2
0
    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"
Пример #3
0
    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