Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class PrintShippingPackageLabelAskDetails(ModelView):
- 'Print Shipping Package Label Ask Details'
- __name__ = 'shipping.package.label.ask_details'
- label = fields.Many2One('shipping.package.label', 'Label', required=True)
- move = fields.Many2One('stock.move', 'Picked Move', required=True,
- domain=[('id', 'in', Eval('done_moves'))],
- depends=['done_moves'],
- help="The move to print.")
- fields_required = fields.Function(fields.MultiSelection(
- 'get_fields_required', "Fields Required"),
- 'on_change_with_fields_required')
- customer = fields.Many2One('party.party', "Customer", readonly=True,
- states={
- 'invisible': ~Eval('fields_required', []).contains('customer.name')
- },
- depends=['fields_required'])
- product = fields.Function(
- fields.Many2One('product.product', "Product Code",
- states={
- 'invisible': (~Eval('fields_required', []).contains('product.code')
- & ~Eval('fields_required', []).contains('product.name'))
- },
- depends=['fields_required']), 'on_change_with_product')
- done_moves = fields.Many2Many(
- 'stock.move', None, None, "Done Moves")
- @classmethod
- def get_fields_required(cls):
- pool = Pool()
- ShippingPackageLabel = pool.get('shipping.package.label')
- return ShippingPackageLabel.fields_get(
- ['fields_required'])['fields_required']['selection']
- @fields.depends('label')
- def on_change_with_fields_required(self, name=None):
- if self.label:
- return self.label.fields_required
- @fields.depends('customer')
- def on_change_with_label(self):
- if self.customer:
- if self.customer.shipping_package_label:
- return self.customer.shipping_package_label.id
- @fields.depends('move')
- def on_change_with_product(self, name=None):
- if self.move:
- if self.move.sale_line:
- return self.move.sale_line.product_displayed.id
- class PrintShippingPackageLabel(Wizard):
- 'Print Shipping Package Label'
- __name__ = 'shipping.package.label.print'
- start = StateTransition()
- show = StateView(
- 'shipping.package.label.ask_details',
- 'preciball.'
- 'stock_shipping_package_label_print_ask_details', [
- Button('Cancel', 'end', 'tryton-cancel'),
- Button('Print Label', 'print_labels', 'tryton-ok', default=True),
- ])
- print_labels = StateAction('preciball.stock_report_shipping_package_label')
- def transition_start(self):
- Date = Pool().get('ir.date')
- moves = self.record.inventory_moves
- if getattr(self.show, 'shipping_date', None) is None:
- self.show.shipping_date = Date.today()
- if any(m.state == 'done' for m in moves):
- return 'show'
- return 'end'
- def default_show(self, fields):
- moves = self.record.inventory_moves
- move_ids = [m.id for m in moves if m.state == 'done']
- return {
- 'customer': self.record.customer.id,
- 'done_moves': move_ids,
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement