Question

1.so inherit here sale order and m2o field for po but it has given me error i.e except_orm:Programming Error There is no reference available for purchase.order

2.I also want to subtract purchase order subtotal price from the sale order subtotal price and show on to the sale order Total Price

class sale_inherit_course(orm.Model):
    _inherit='sale.order'  
   _columns={
            'create_course':fields.boolean('Create Course'),
            'course_name':fields.many2one('openacademy.course', 'Course', ondelete="cascade"),
           'responsible': fields.related('course_name', 'responsible_id', type='many2one', relation='res.users', string="co-ordinator", readonly=True),
           'buy_back':fields.boolean('Buy Back'),
           'purchase_order':fields.many2one('purchase.order', 'Create Back Order', ondelete="cascade"),
           'responsible_me': fields.related('purchase_order', 'responsible_id', type='many2one', relation='res.users', string="User", readonly=True),

          }
    def create(self, cr, uid, vals, context=None):
        if vals.get('create_course'):
            course_obj=self.pool.get('openacademy.course')
            sequence=self.pool.get('ir.sequence').get(cr, uid, 'openacademy.course.seq')
            new_course=course_obj.create(cr, uid, {'name':sequence,'responsible_id':vals.get('user_id')}, context=context)
            import pprint
           pprint.pprint( vals )
           vals['course_name']=new_course
          pprint.pprint( vals )
      elif vals.get('buy_back'):
          purchase_obj=self.pool.get('purchase.order')
          sequence=self.pool.get('ir.sequence').get(cr, uid, 'purchase.order')
          new_purchase=purchase_obj.create(cr, uid, {'name':sequence,'responsible_id':vals.get('user_id')}, context=context)
          vals['purchase_order']=new_purchase

    return super(sale_inherit_course, self).create(cr, uid, vals, context=context)  

Here Error Occur that is

except_orm: ('Programming Error', 'There is no reference available for purchase.order'
Was it helpful?

Solution

_inherit='sale.order'

def _amount_all(self, cr, uid, ids, field_name, arg, context=None):
    cur_obj = self.pool.get('res.currency')
    res = {}

    for order in self.browse(cr, uid, ids, context=context):


        res[order.id] = {
            'amount_untaxed': 0.0,
            'amount_tax': 0.0,
            'amount_total': 0.0,
            'amt_total':0.0
        }
        val = val1 =  0.0
        cur = order.pricelist_id.currency_id
        for line in order.order_line:
            val1 += line.price_subtotal

            val += self._amount_line_tax(cr, uid, line, context=context)
        res[order.id]['amount_tax'] = cur_obj.round(cr, uid, cur, val)
        res[order.id]['amount_untaxed'] = cur_obj.round(cr, uid, cur, val1)
        #import pprint
        #pprint.pprint( res[order.id]['amt_total'] )
        res[order.id]['amount_untaxed'] -= order.amt_total
        res[order.id]['amount_total'] = res[order.id]['amount_untaxed'] + res[order.id]['amount_tax']
   #     res[order.id]['amount_total'] -=order.amt_total
    return res


def _get_order(self, cr, uid, ids, context=None):
    result = {}
    for line in self.pool.get('sale.order.line').browse(cr, uid, ids, context=context):
        result[line.order_id.id] = True
    return result.keys()

Field

 'purchase_order':fields.many2one('purchase.order', 'Old Gold', ondelete="cascade"),
            'amt_total':fields.related('purchase_order', 'amount_total', type='float', relation='purchase.order', string="Amount", readonly=True),
            'qty_related':fields.related('purchase_order','order_line', 'product_qty', type='float',relation='purchase.order', string='Weight',readonly=True),
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top