Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ

I have a problem when i try to convert order in invoice just after choice that i want to invoice (all/percent/ect ...) in a custom field "mode_reglement" 


I have no problem in my development environment but in production : 
The trace : 

Odoo Server Error

Traceback (most recent call last):

File "/var/www/odoo/openerp/http.py", line 530, in handle_exception

return super(JsonRequest, self)._handle_exception(exception)

File "/var/www/odoo/openerp/http.py", line 567, in dispatch

result = self._call_function(**self.params)

File "/var/www/odoo/openerp/http.py", line 303, in _call_function

return checked_call(self.db, *args, **kwargs)

File "/var/www/odoo/openerp/service/model.py", line 113, in wrapper

return f(dbname, *args, **kwargs)

File "/var/www/odoo/openerp/http.py", line 300, in checked_call

return self.endpoint(*a, **kw)

File "/var/www/odoo/openerp/http.py", line 796, in call

return self.method(*args, **kw)

File "/var/www/odoo/openerp/http.py", line 396, in response_wrap

response = f(*args, **kw)

File "/var/www/odoo/openerp/addons/web/controllers/main.py", line 953, in call_button

action = self._call_kw(model, method, args, {})

File "/var/www/odoo/openerp/addons/web/controllers/main.py", line 941, in _call_kw

return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)

File "/var/www/odoo/openerp/api.py", line 241, in wrapper

return old_api(self, *args, **kwargs)

File "/var/www/odoo/openerp/addons/sale/wizard/sale_make_invoice_advance.py", line 175, in create_invoices

res = sale_obj.manual_invoice(cr, uid, sale_ids, context)

File "/var/www/odoo/openerp/api.py", line 241, in wrapper

return old_api(self, *args, **kwargs)

File "/var/www/odoo/openerp/addons/sale/sale.py", line 455, in manual_invoice

self.signal_workflow(cr, uid, ids, 'manual_invoice')

File "/var/www/odoo/openerp/api.py", line 241, in wrapper

return old_api(self, *args, **kwargs)

File "/var/www/odoo/openerp/models.py", line 3527, in signal_workflow

result[res_id] = workflow.trg_validate(uid, self._name, res_id, signal, cr)

File "/var/www/odoo/openerp/workflow/_init__.py", line 85, in trg_validate

return WorkflowService.new(cr, uid, res_type, res_id).validate(signal)

File "/var/www/odoo/openerp/workflow/service.py", line 91, in validate

res2 = wi.validate(signal)

File "/var/www/odoo/openerp/workflow/instance.py", line 75, in validate

wi.process(signal=signal, force_running=force_running, stack=stack)

File "/var/www/odoo/openerp/workflow/workitem.py", line 120, in process

ok = self._split_test(activity['split_mode'], signal, stack)

File "/var/www/odoo/openerp/workflow/workitem.py", line 248, in _split_test

self._join_test(t0, t1, stack)

File "/var/www/odoo/openerp/workflow/workitem.py", line 257, in _join_test

WorkflowItem.create(self.session, self.record, activity, inst_id, stack=stack)

File "/var/www/odoo/openerp/workflow/workitem.py", line 95, in create

workflow_item.process(stack=stack)

File "/var/www/odoo/openerp/workflow/workitem.py", line 116, in process

if not self._execute(activity, stack):

File "/var/www/odoo/openerp/workflow/workitem.py", line 187, in _execute

id_new = self.wkf_expr_execute(activity)

File "/var/www/odoo/openerp/workflow/workitem.py", line 313, in wkf_expr_execute

return self.wkf_expr_eval_expr(activity['action'])

File "/var/www/odoo/openerp/workflow/workitem.py", line 291, in wkf_expr_eval_expr

result = eval(line, env, nocopy=True)

File "/var/www/odoo/openerp/tools/safe_eval.py", line 314, in safe_eval

return eval(c, globals_dict, locals_dict)

File "", line 1, in <module>

File "/var/www/odoo/openerp/api.py", line 239, in wrapper

return new_api(self, *args, **kwargs)

File "/var/www/odoo/openerp/api.py", line 546, in new_api

result = method(self._model, cr, uid, self.ids, *args, **kwargs)

File "/var/www/odoo/openerp/addons/sale_stock/sale_stock.py", line 143, in action_invoice_create

res = super(sale_order,self).action_invoice_create(cr, uid, ids, grouped=grouped, states=states, date_invoice = date_invoice, context=context)

File "/var/www/odoo/openerp/api.py", line 241, in wrapper

return old_api(self, *args, **kwargs)

File "/var/www/odoo/openerp/addons/sale/sale.py", line 559, in action_invoice_create

res = self._make_invoice(cr, uid, order, il, context=context)

File "/var/www/odoo/openerp/api.py", line 241, in wrapper

return old_api(self, *args, **kwargs)

File "/var/www/odoo/openerp/addons/sale/sale.py", line 432, in _make_invoice

inv_id = inv_obj.create(cr, uid, inv, context=context)

File "/var/www/odoo/openerp/api.py", line 241, in wrapper

return old_api(self, *args, **kwargs)

File "/var/www/odoo/openerp/addons/mail/mail_thread.py", line 377, in create

thread_id = super(mail_thread, self).create(cr, uid, values, context=context)

File "/var/www/odoo/openerp/api.py", line 241, in wrapper

return old_api(self, *args, **kwargs)

File "/var/www/odoo/openerp/api.py", line 336, in old_api

result = method(recs, *args, **kwargs)

File "/var/www/odoo/openerp/models.py", line 4043, in create

record = self.browse(self._create(old_vals))

File "/var/www/odoo/openerp/api.py", line 239, in wrapper

return new_api(self, *args, **kwargs)

File "/var/www/odoo/openerp/api.py", line 462, in new_api

result = method(self._model, cr, uid, *args, **kwargs)

File "/var/www/odoo/openerp/models.py", line 4181, in _create

tuple([u2 for u in updates if len(u) > 2])

File "/var/www/odoo/openerp/sql_db.py", line 158, in wrapper

return f(self, *args, **kwargs)

File "/var/www/odoo/openerp/sql_db.py", line 234, in execute

res = self._obj.execute(query, params)

ValueError: "ERREUR: une valeur NULL viole la contrainte NOT NULL de la colonne \xab mode_reglement \xbb

" while evaluating

u'action_invoice_create()'


A similar problem appear when i want to do a credit side in a manual invoice (while mode_reglement field are not empty and not null):  

The operation cannot be completed, probably due to the following:

- deletion: you may be trying to delete a record while other records still reference it

- creation/update: a mandatory field is not correctly set

[object with reference: mode_reglement - mode.reglement]


My code : 

class mode_reglement(osv.osv):

_name = 'cap.mode_reglement'

_columns = {

'name' : fields.char('Nom',required=True),

}

class account_invoice(osv.osv):

_inherit = 'account.invoice'

_columns = {

'mode_reglement':fields.many2one('cap.mode_reglement','Mode de reglement',auto_join=True,required=True),

}

Ảnh đại diện
Huỷ bỏ

Did you add the 'required=True' condition to the fields at a later stage? This normally occurs because some records have been saved with an empty 'name' or 'mode_reglement' field. Then when you try to impose a constraint on it, it throws this error. So filling up the empty columns before adding the constraint will work. Hope this helps.

Bài viết liên quan Trả lời Lượt xem Hoạt động
2
thg 1 16
9006
0
thg 3 15
4305
3
thg 3 18
5422
2
thg 9 15
3607
0
thg 8 17
2676