Exemple #1
0
 def get(self, id):
     from services.mailinvoice import MailInvoiceService
     mail = MailInvoiceService.get_mail(id)
     MailInvoiceService.handle(mail)
     db.session.add(mail)
     db.session.commit()
     return mail
Exemple #2
0
    def get(self, mail_id):
        from services.mailinvoice import MailInvoiceService

        try:

            mail = MailInvoiceService.get_mail(mail_id)
            invoice = mail.invoice

            return _stub(invoice)

        except Exception as exc:
            error(unicode(exc))
            raise
Exemple #3
0
    def post(self, id):
        from services.mailinvoice import MailInvoiceService
        action = request.json['action']
        index = request.json['index']

        debug(u"Обработка файла почты под индексом '%s' по типу '%s'" % (
            index, action))
        mail = MailInvoiceService.get_mail(id)
        file = mail.get_file_to_index(index)
        fpth = file['path']
        debug(u"Путь к файлу - '%s'" % fpth)
        if action == "R":
            if mail.invoice_id:
                debug(u"Файл уже был обработан.")
                return mail
            try:
                debug(u"Обработка файла.")
                m = InvoiceModel(fpth)
                m.handle(mail.provider, mail)
                mail.is_handling = True
                db.session.add(mail)
                db.session.commit()
                debug(u"Обработка файла завершена.")
            except Exception as err:
                error(
                    u"Ошибка при обработке файла '"+fpth+u"'. " + unicode(err))
                abort(400, message=u"Произошла ошибка в обработке документа.")
            else:
                return mail
        elif action == "V":
            if mail.return_id:
                debug(u"Файл уже был обработан.")
                return mail
            try:
                debug(u"Обработка файла.")
                m = InvoiceReturnModel(fpth)
                m.handle(mail.provider, mail)
                mail.is_handling = True
                db.session.add(mail)
                db.session.commit()
                debug(u"Обработка файла завершена.")
            except Exception as err:
                error(
                    u"Ошибка при обработке файла '"+fpth+u"'. " + unicode(err))
                abort(400, message=u"Произошла ошибка в обработке документа.")
            else:
                return mail
Exemple #4
0
    def post(self):
        data = request.json['data']

        prices = data['items']
        invoice_id = data['invoice_id']
        mail = MailInvoiceService.get_mail(invoice_id)
        invoice = mail.invoice
        try:
            PriceService.create_or_update_prices(invoice, prices)
            mail.is_handling = True
            db.session.add(mail)
            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"
Exemple #5
0
 def get(self, id):
     from services.mailinvoice import MailInvoiceService
     mail = MailInvoiceService.get_mail(id)
     return InvoiceItemResource().get(mail.invoice_id)