1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- from openerp import api, fields, models
- from openerp.exceptions import except_orm
- class AccountVoucher(models.Model):
- _inherit = 'account.voucher'
- @api.model
- def create_from_pos(self, values):
- # Activity 1: Create Sale Order
- sale_order_model = self.env['sale.order']
- # sale_order_line_values = [
- # [0, False, {
- # 'product_id': int(item['id']),
- # 'product_uom_qty': float(item['qty']),
- # 'price_unit': float(item['price'])
- # }] for item in values['cart_items']]
- # sale_order_values = {
- # 'partner_id': int(values['customer_id']),
- # 'order_line': sale_order_line_values,
- # 'picking_policy': 'direct'
- # }
- # sale_order_id = sale_order_model.create(sale_order_values)
- sale_order_id = 26
- # Activity 2: Confirm Sale Order
- sale_order = sale_order_model.browse([sale_order_id])
- # sale_order.write({ 'state': 'manual' })
- # for sale_order_line in sale_order.order_line:
- # sale_order_line.write({ 'state': 'confirmed' })
- # Activity 3: Create Invoice
- account_id = False
- decimal_precision = self.env['decimal.precision'].precision_get('Product Price')
- account_invoice_model = self.env['account.invoice']
- for sale_order_line in sale_order.order_line:
- account_id = sale_order_line.product_id.property_account_income.id
- if not account_id:
- account_id = sale_order_line.product_id.categ_id.property_account_income_categ.id
- if not account_id:
- raise except_orm('Error', 'Es necesario denifir una cuenta de ingresos para este producto')
- uos_quantity = sale_order_line.product_uos_qty or 0.0 if sale_order_line.product_uos else sale_order_line.product_uom_qty
- uos_id = sale_order_line.product_uos.id if sale_order_line.product_uos else sale_order_line.product_uom.id
- fiscal_position = sale_order_line.order_id.fiscal_position or False
- subtotal = round(sale_order_line.price_unit * sale_order_line.product_uom_qty / uos_quantity, decimal_precision)
-
-
-
|