I want to create orders from backend pos. So, I made button CREATE in pos.order visible. But when clicking on button , I got this error :
The operation cannot be completed:
- Create/update: a mandatory field is not set.
- Delete: another model requires the record being deleted. If possible, archive it instead.
Model: Point of Sale Orders (pos.order), Field: Returned (amount_return)
Here is my code:
//.xml
<record id="view_pos_order_create_extend" model="ir.ui.view">
<field name="name">view_pos_order_create_extend</field>
<field name="model">pos.order</field>
<field name="inherit_id" ref="point_of_sale.view_pos_order_tree"/>
<field name="arch" type="xml">
<xpath expr="//tree" position="attributes">
<attribute name="create">1</attribute>
</xpath>
</field>
</record>
//.py
class PosOrderExtend(models.Model):
_inherit = "pos.order"
_description = "Point of Sale Orders"
_order = "id desc"
@api.onchange('payment_ids', 'lines', 'partner_id')
def _onchange_amount_all(self):
for order in self:
currency = self.env.company.currency_id
if self.partner_id.property_product_pricelist.currency_id:
currency = self.partner_id.property_product_pricelist.currency_id
order.amount_paid = sum(payment.amount for payment in order.payment_ids)
order.amount_return = sum(payment.amount < 0 and payment.amount or 0 for payment in order.payment_ids)
order.amount_tax = currency.round(
sum(self._amount_line_tax(line, order.fiscal_position_id) for line in order.lines))
amount_untaxed = currency.round(sum(line.price_subtotal for line in order.lines))
order.amount_total = order.amount_tax + amount_untaxed
What's wrong please? How can I fix it ? Thanks.
See: https://www.youtube.com/watch?v=bP2IsIgzhfU&list=PLqRRLx0cl0hoiTewSTzSQ3HJ-Vqhh43k0&index=1
For field 'amount_return' , I added it in function of standard Odoo: def _complete_values_from_session(self, session, values):
if values.get('state') and values['state'] == 'paid':
values['name'] = session.config_id.sequence_id._next()
values.setdefault('pricelist_id', session.config_id.pricelist_id.id)
values.setdefault('fiscal_position_id', session.config_id.default_fiscal_position_id.id)
values.setdefault('company_id', session.config_id.company_id.id)
values.setdefault('amount_return', self.amount_return)
return values;
but now I got same error with field 'product_id'.
I couldn't fix it I got always error : 'pos.order' object ,has no attribute 'product_id' , How can fix it please? @Niyas Raphy