добавить информацию о заказе на продажу в счет в openerp RML

В моем заказе на продажу у меня есть ссылочный номер клиента, на который нужно ссылаться в моем счете клиента. Счет-фактура использует исходный документ для поиска связанного с ним заказа на продажу, а затем ищет записи о продажах. У меня есть следующее в моем RML:

[[o.getcustomerPO(origin) or 'No associated PO' ]]

и это в моем парсере:

    def getcustomerPO(self,so_num):
context = {}
saleorder = self.pool.get('sale.order')
sale_oID = saleorder.search(self.cr, self.uid,[('name','=','so_num')],context=context)
customerPO = saleorder.browse(self.cr, self.uid, sale_oID, context=context)
return customerPO

Но без игральных костей.

Я не уверен, как действовать дальше.


person bereal    schedule 15.04.2013    source источник


Ответы (2)


Я не знаю, обновляете ли вы локальный контекст с помощью этой функции или нет:

self.localcontext.update({
            'time': time,
            'getcustomerPO': self.getcustomerPO,
        })

В rml должно быть так:

[[ getcustomerPO(origin) or 'No associated PO' ]]

Еще одна вещь. В этом отчете логическое значение отмечено галочкой «Перезагрузить из вложения». Это означает, что во второй раз, когда вы распечатаете отчет, появится предыдущий отчет. Итак, вам также нужно снять отметку с этого логического значения из файла report.xml, добавив этот атрибут:

attachment_use="True"

Спасибо.

person Priyesh Solanki    schedule 15.04.2013
comment
Attach_use=true подходит, так как его следует распечатать только один раз, и если он будет изменен, они могут удалить прикрепленный счет-фактуру, чтобы обновить его до самого нового. Я не уверен, куда мне поместить self.localcontext.update. - person bereal; 17.04.2013
comment
edit: nvr, обратите внимание на последний комментарий, я просто не смотрел... Все равно не повезло - person bereal; 17.04.2013

пытаться

[[getcustomerPO(o.origin) or 'No associated PO' ]]
person OmaL    schedule 15.04.2013
comment
проверьте, получает ли ваша функция вызовы. Пожалуйста, проверьте это, добавив оператор печати в функцию init. - person OmaL; 17.04.2013
comment
У меня есть следующий класс «кода» функции инициализации account_invoice (report_sxw.rml_parse): def __init__ (self, cr, uid, name, context): super (account_invoice, self). __init__ (cr, uid, name, context = context ) print 'localcontext' self.localcontext.update({ 'время': время, 'getcustomerPO': self.getcustomerPO, }) - person bereal; 17.04.2013
comment
Но я не получаю заявление на печать - person bereal; 17.04.2013
comment
я думаю, что вы сделали неправильно .. пожалуйста, покажите нам свой xml-код для вызова вашего нового отчета и как вы вызываете свой анализатор отчетов. - person OmaL; 17.04.2013
comment
‹?xml version=1.0 encoding=utf-8?› ‹openerp› ‹data› ‹report auto=False id=account.account_invoices model=account.invoice name=account.invoice.kaertech rml=kaertech_report_account/report/kaertech_invoice.rml string=Invoices attachment=(object.state в ('open','paid')) and ('INV'+(object.number or '').replace('/','')+'.pdf') использование=по умолчанию multi=True/› ‹/data› ‹/openerp› вызов синтаксического анализатора: [[getcustomerPO(o) или 'Нет связанного заказа на покупку' ]] - person bereal; 17.04.2013
comment
что вы дали для вызова парсера отчетов в коде ypur python? например: report_sxw.report_sxw('report.account.account.balance', 'account.account', 'addons/account/report/account_balance.rml', parser=account_balance, header=internal) - person OmaL; 17.04.2013
comment
report_sxw.report_sxw( 'report.account.invoice.kaertech', 'account.invoice', 'addons/kaertech_report_account/report/account_print_invoice.rml', parser=account_invoice ) - person bereal; 17.04.2013
comment
проверьте, добавили ли вы эти файлы в файлы openerp и init python вашего модуля. не могу найти другую проблему - person OmaL; 17.04.2013
comment
init: импорт отчета об импорте счета-фактуры - person bereal; 17.04.2013
comment
Вы добавили путь к файлу xml в openerp.py? - person OmaL; 17.04.2013
comment
'images': [], 'init_xml': [], 'зависит': [], 'update_xml': ['account_report.xml'], 'demo_xml': [], 'тест': [], 'устанавливаемый' : Истина, 'auto_install': Ложь, } - person bereal; 17.04.2013