Odoo POS餐厅功能测试和问题 - xiaohao0576/odoo-doc GitHub Wiki
结账的时候报错,提示配置中不允许的支付方式
ValidationError: The payment method selected is not allowed in the config of the POS session
问题原因: 订单是从平板电脑的销售点创建的,付款的时候,使用的又是不同的收银台,比如餐厅前台。当餐厅前台和平板电脑的收银台的支付方式不一致时,就会触发这个报错,点击查查源码
@api.constrains('payment_method_id')
def _check_payment_method_id(self):
for payment in self:
if payment.payment_method_id not in payment.session_id.config_id.payment_method_ids:
raise ValidationError(_('The payment method selected is not allowed in the config of the POS session.'))
验证错误:您无法编辑打印订单的付款
ValidationError(_('You cannot edit a payment for a printed order.'))
出现这种情况,原因是在结账前提前打印了账单给客户,导致pos_order_id.nb_print > 0
,这时如果订单金额修改,就会触发这个错误。这个改动是2024年9月13日才更新的,我认为这是个bug,点击查看,如果不是真正的结账,而是提前打印账单, nb_print的计数不应该被更新。
@api.constrains('amount')
def _check_amount(self):
for payment in self:
if payment.pos_order_id.state in ['invoiced', 'done']:
raise ValidationError(_('You cannot edit a payment for a posted order.'))
elif payment.pos_order_id.nb_print > 0:
raise ValidationError(_('You cannot edit a payment for a printed order.'))