Advertisement
Guest User

class & scenario

a guest
Sep 9th, 2016
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.66 KB | None | 0 0
  1. class PurchaseRequisitionLine(ModelSQL, ModelView):
  2.     "Purchase Requisition Line"
  3.     __name__ = 'purchase.requisition.line'
  4.     _history = True
  5.     _states = {
  6.         'readonly': Eval('purchase_requisition_state') != 'draft',
  7.     }
  8.     _depends = ['purchase_requisition_state']
  9.  
  10.     purchase_requisition = fields.Many2One('purchase.requisition',
  11.         'Requisition',
  12.         ondelete='CASCADE', select=True, required=True)
  13.     sequence = fields.Integer('Sequence')
  14.     party = fields.Many2One('party.party', 'Supplier',
  15.         states=_states,
  16.         depends=_depends)
  17.     product = fields.Many2One('product.product', 'Product',
  18.         ondelete='RESTRICT', domain=[('purchasable', '=', True)],
  19.         states=_states,
  20.         depends=_depends)
  21.     description = fields.Text('Description',
  22.         states={
  23.             'readonly': _states['readonly'],
  24.             'required': ~Eval('product')
  25.         },
  26.         depends=['product'] + _depends)
  27.     warehouse = fields.Many2One('stock.location', 'Warehouse',
  28.         domain=[('type', '=', 'warehouse')],
  29.         states={
  30.             'readonly': _states['readonly'],
  31.             'required': Eval('warehouse_required', False),
  32.         },
  33.         depends=['warehouse_required'] + _depends,)
  34.     warehouse_required = fields.Function(fields.Boolean('Warehouse Required'),
  35.         'on_change_with_warehouse_required')
  36.     quantity = fields.Float('Quantity',
  37.             digits=(16, Eval('unit_digits', 2)), required=True,
  38.         states=_states,
  39.         depends=['unit_digits'] + _depends)
  40.     unit = fields.Many2One('product.uom', 'Unit',
  41.         ondelete='RESTRICT',
  42.         states={
  43.             'required': Bool(Eval('product')),
  44.             'readonly': _states['readonly'],
  45.         },
  46.         domain=[
  47.             If(Bool(Eval('product_uom_category')),
  48.                 ('category', '=', Eval('product_uom_category')),
  49.                 ('category', '!=', -1)),
  50.         ],
  51.         depends=['product', 'product_uom_category'] + _depends)
  52.     unit_digits = fields.Function(fields.Integer('Unit Digits'),
  53.         'on_change_with_unit_digits')
  54.     product_uom_category = fields.Function(
  55.         fields.Many2One('product.uom.category', 'Product Uom Category'),
  56.         'on_change_with_product_uom_category')
  57.     unit_price = fields.Numeric('Unit Price', digits=price_digits)
  58.     amount = fields.Function(fields.Numeric('Amount',
  59.             digits=(16, Eval('currency_digits', 2)),
  60.         states=_states,
  61.         depends=['currency_digits'] + _depends),
  62.         'on_change_with_amount')
  63.     currency = fields.Many2One('currency.currency', 'Currency',
  64.         states={
  65.             'required': Bool(Eval('unit_price')),
  66.             'readonly': _states['readonly'],
  67.         },
  68.         depends=['unit_price'] + _depends)
  69.     currency_digits = fields.Function(fields.Integer('Currency Digits'),
  70.         'on_change_with_currency_digits')
  71.     purchase_requisition_state = fields.Function(
  72.         fields.Selection(STATES, 'Purchase Requisition State'),
  73.         'on_change_with_purchase_requisition_state')
  74.     purchase_request = fields.Many2One('purchase.request', 'Purchase Request',
  75.         readonly=True)
  76.     purchase_request_state = fields.Function(fields.Selection([
  77.                 ('', ''),
  78.                 ('draft', 'Draft'),
  79.                 ('purchased', 'Purchased'),
  80.                 ('cancel', 'Cancel'),
  81.                 ('done', 'Done'),
  82.                 ('exception', 'Exception'),
  83.                 ], 'Purchase Request State',
  84.             states={
  85.                 'invisible': ~Eval('purchase_request_state'),
  86.                 }), 'get_purchase_request_state')
  87. --------------------------------------------------------------------------------------------------
  88. Create purchase requisition & approve by approval user::
  89.  
  90.     >>> config.user = requisition_user.id
  91.     >>> PurchaseRequisition = Model.get('purchase.requisition')
  92.     >>> PurchaseRequisitionLine = Model.get('purchase.requisition.line')
  93.     >>> requisition = PurchaseRequisition()
  94.     >>> requisition.description = 'Description'
  95.     >>> requisition.employee = requisition_user.employee
  96.     >>> requisition.supply_date = today
  97.     >>> requisition_line = PurchaseRequisitionLine()
  98.     >>> requisition.lines.append(requisition_line)
  99.     >>> requisition_line.product = product
  100.     >>> requisition_line.quantity = 2.0
  101.     >>> requisition.click('wait')
  102.     >>> config.user = requisition_approval_user.id
  103.     >>> requisition.click('approve')
  104.     >>> PurchaseRequest = Model.get('purchase.request')
  105.     >>> request = PurchaseRequest()
  106.     >>> request = requisition.lines[0].purchase_request
  107.     >>> requisition.lines[0].purchase_request_state == 'draft'
  108.     True
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement