123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- # -*- coding: utf-8 -*-
- from openerp.http import request as r
- def create_purchase_order(supplier_id, cart_items, date_order, currency_id, pricelist_id, payment_term_id=None):
- def get_product_obj(product_id):
- return r.env['product.product'].browse(product_id)
- lines = []
- for item in cart_items:
- product = get_product_obj(item.get('id'))
- lines += [[0, False, {
- 'name': item.get('name'),
- 'date_planned': date_order,
- 'product_id': product.id,
- 'product_qty': float(item.get('quantity')),
- 'price_unit': float(item.get('price')),
- 'product_uom': product.uom_id.id
- }]]
- values = {
- 'name': '/',
- 'partner_id': supplier_id,
- 'order_line': lines,
- 'date_order': datetime.utcnow().strftime(DATETIME_FORMAT),
- 'currency_id': currency_id,
- 'pricelist_id': pricelist_id,
- 'payment_term_id': payment_term_id,
- 'location_id': self.get_stock_location_id(),
- 'invoice_method': 'order'
- }
- return request.env['purchase.order'].create(values)
- def confirm_purchase_order(purchase_order_id):
- po = r.env['purchase.order'].browse(purchase_order_id)
- po.action_purchase_confirm()
- for picking in po.picking_ids:
- picking.force_assign()
- picking.action_done()
- po.write({
- 'state': 'done'
- })
|