Advertisement
Guest User

Untitled

a guest
Oct 25th, 2021
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.16 KB | None | 0 0
  1. class PrintShippingPackageLabelAskDetails(ModelView):
  2.     'Print Shipping Package Label Ask Details'
  3.     __name__ = 'shipping.package.label.ask_details'
  4.  
  5.     label = fields.Many2One('shipping.package.label', 'Label', required=True)
  6.     move = fields.Many2One('stock.move', 'Picked Move', required=True,
  7.         domain=[('id', 'in', Eval('done_moves'))],
  8.         depends=['done_moves'],
  9.         help="The move to print.")
  10.     fields_required = fields.Function(fields.MultiSelection(
  11.             'get_fields_required', "Fields Required"),
  12.             'on_change_with_fields_required')
  13.     customer = fields.Many2One('party.party', "Customer", readonly=True,
  14.         states={
  15.             'invisible': ~Eval('fields_required', []).contains('customer.name')
  16.         },
  17.         depends=['fields_required'])
  18.     product = fields.Function(
  19.         fields.Many2One('product.product', "Product Code",
  20.         states={
  21.             'invisible': (~Eval('fields_required', []).contains('product.code')
  22.                 & ~Eval('fields_required', []).contains('product.name'))
  23.         },
  24.         depends=['fields_required']), 'on_change_with_product')
  25.     done_moves = fields.Many2Many(
  26.         'stock.move', None, None, "Done Moves")
  27.  
  28.     @classmethod
  29.     def get_fields_required(cls):
  30.         pool = Pool()
  31.         ShippingPackageLabel = pool.get('shipping.package.label')
  32.         return ShippingPackageLabel.fields_get(
  33.             ['fields_required'])['fields_required']['selection']
  34.  
  35.     @fields.depends('label')
  36.     def on_change_with_fields_required(self, name=None):
  37.         if self.label:
  38.             return self.label.fields_required
  39.  
  40.     @fields.depends('customer')
  41.     def on_change_with_label(self):
  42.         if self.customer:
  43.             if self.customer.shipping_package_label:
  44.                 return self.customer.shipping_package_label.id
  45.  
  46.     @fields.depends('move')
  47.     def on_change_with_product(self, name=None):
  48.         if self.move:
  49.             if self.move.sale_line:
  50.                 return self.move.sale_line.product_displayed.id
  51.  
  52. class PrintShippingPackageLabel(Wizard):
  53.     'Print Shipping Package Label'
  54.     __name__ = 'shipping.package.label.print'
  55.  
  56.     start = StateTransition()
  57.     show = StateView(
  58.         'shipping.package.label.ask_details',
  59.         'preciball.'
  60.         'stock_shipping_package_label_print_ask_details', [
  61.             Button('Cancel', 'end', 'tryton-cancel'),
  62.             Button('Print Label', 'print_labels', 'tryton-ok', default=True),
  63.             ])
  64.     print_labels = StateAction('preciball.stock_report_shipping_package_label')
  65.  
  66.     def transition_start(self):
  67.         Date = Pool().get('ir.date')
  68.         moves = self.record.inventory_moves
  69.         if getattr(self.show, 'shipping_date', None) is None:
  70.             self.show.shipping_date = Date.today()
  71.         if any(m.state == 'done' for m in moves):
  72.             return 'show'
  73.         return 'end'
  74.  
  75.     def default_show(self, fields):
  76.         moves = self.record.inventory_moves
  77.         move_ids = [m.id for m in moves if m.state == 'done']
  78.         return {
  79.             'customer': self.record.customer.id,
  80.             'done_moves': move_ids,
  81.             }
  82.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement