Hi Cedric, Thanks for reply!
Am Mittwoch, den 27.10.2010, 11:15 +0200 schrieb Cédric Krier: > On 27/10/10 11:03 +0200, Udo Spallek wrote: > > Hi Bertrand, > > Thanks for reply! > > Am Dienstag, den 26.10.2010, 23:50 +0200 schrieb Bertrand Chenal: > > > Le Tue, 26 Oct 2010 22:11:38 +0200, > > > Udo Spallek <[email protected]> a écrit : > > > > Hi, > > > > having massive problems to create a purchase with proteus. > > > > Please take a look to my console session pasted here: > > > > http://paste.pocoo.org/show/281813/ > > > If I understand correctly: > > > The first > > > >>> purchase_line1.product = Product.find([]).pop() > > > on line 6 raise an exception because purchase_line1 is not linked to > > > any purchase so no currency is unknown when on_change_product is > > > triggered, hence the exception. Maybe we should fix this on_change to > > > handle this case, but I'm not sure this make sense to create line > > > without purchase. So one think I would try is to first do : > > > >>> purchase_line1.purchase = purchase > > >>> purchase = Purchase() > > >>> purchase.party = party3 > > >>> purchase_line1 = PurchaseLine1() > > >>> purchase_line1.purchase = purchase > > Traceback (most recent call last): > > File "<console>", line 1, in <module> > > File "proteus/__init__.py", line 89, in set_method > > assert value.id > 0 and not value._changed > > AssertionError > > But the hint seems to be good anway. 'Assert value.id > 0' means > > purchase must be saved before, so again: > You must do the other way: append purchase line to purchase. This wont work either: >>> purchase = Purchase() >>> purchase.party = party3 >>> purchase_line1 = PurchaseLine1() >>> purchase.lines.append(purchase_line1) Traceback (most recent call last): File "<console>", line 1, in <module> File "proteus/__init__.py", line 193, in append self._changed() File "proteus/__init__.py", line 180, in _changed self.parent._on_change(self.parent_field_name) File "proteus/__init__.py", line 547, in _on_change res = getattr(self._proxy, 'on_change_%s' % name)(args, context) File "proteus/config.py", line 72, in __call__ res = getattr(self._object, self._name)(*args) File "/home/uspallek/workspace/tryton/upstream/tests/trytond/modules/purchase/purchase.py", line 283, in on_change_lines res['untaxed_amount'] += line.get('amount', Decimal('0.0')) TypeError: unsupported operand type(s) for +=: 'Decimal' and 'NoneType' Ok, try to add the required fields of purchase.line, first: >>> purchase_line1.product = product Traceback (most recent call last): File "<console>", line 1, in <module> File "proteus/__init__.py", line 120, in set_method self._on_change(name) File "proteus/__init__.py", line 547, in _on_change res = getattr(self._proxy, 'on_change_%s' % name)(args, context) File "proteus/config.py", line 72, in __call__ res = getattr(self._object, self._name)(*args) File "/home/uspallek/workspace/tryton/upstream/tests/trytond/modules/purchase/purchase.py", line 994, in on_change_product res['amount'] = self.on_change_with_amount(vals) File "/home/uspallek/workspace/tryton/upstream/tests/trytond/modules/purchase/purchase.py", line 1033, in on_change_with_amount return currency_obj.round(currency, amount) File "/home/uspallek/workspace/tryton/upstream/tests/trytond/modules/currency/currency.py", line 174, in round return (amount / currency.rounding).quantize(Decimal('1.'), File "trytond/model/browse.py", line 184, in __getattr__ return self[name] File "trytond/model/browse.py", line 136, in __getitem__ datas = self._model.read(ids, [x[0] for x in ffields]) File "trytond/model/modelsql.py", line 532, in read self.raise_user_error('read_error', self._description) File "trytond/model/model.py", line 457, in raise_user_error raise Exception('UserError', error) Exception: ('UserError', u"You try to read records that don't exist anymore!\n(Document type: Currency)") TIA and cheers -- Udo Spallek ------------------------------------ virtual things Preisler & Spallek GbR Munich - Aix-la-Chapelle Windeckstr. 77 81375 Munich - Germany Tel: +49 (89) 710 481 55 Fax: +49 (89) 710 481 56 [email protected] http://www.virtual-things.biz -- [email protected] mailing list
