Tips and Tricks (internal only)

Welcome!

This community is for professionals and enthusiasts of our products and services. Share and discuss the best content and new marketing ideas, build your professional profile and become a better marketer together.

0

Check op dubbele serienummers en toon waarschuwing

Avatar
Marc Verspeek
2 Opmerkingen
Avatar
Negeren
Avatar
Marc Verspeek
-

all_lots = env['stock.production.lot'].search([])
used = [lot for lot in all_lots if lot.name == record.name and lot.id != record.id]
#maak lijst met alle lotnummers die al dezelfde naam hebben als het huidige record.

if used:
  message= "Serial number " + record.name + " has already been used in record with ID " + str(used[0].id) + " for product " \
  + used[0].product_id.name + ". You have to correct it."
  #opmaken van de boodschap

  record.message_post(body= message) #plaats het bericht in de chatter
  raise Warning(message)

Avatar
Marc Verspeek
-

Een andere manier is om niet de 'raise Warning' te gebruik, maar een apart model (met view) te maken voor berichten in Popups. Dit werkt niet vanzelf goed bij automated actions, dan wordt de popup niet getoond. Bij handmatig triggeren van de actie wel. Nog uitzoeken waarom.

def popup_method():
    return {
              'name': 'Waarschuwing',
              'view_type': 'form',
              'view_mode': 'form',
              'res_model': 'x_alpiek_messages',
              'type': 'ir.actions.act_window',
              'context': {'default_name': 'dit is mijn bericht'},
              'target': 'new',
              'res_id': message[-1].id
              }
#voorbereiding voor popup
#hiervoor is een apart model x_alpiek_messages gemaakt, waarin alle popup-berichten worden geplaatste. Hierop is ook een form-view gemaakt.

all_lots = env['stock.production.lot'].search([])
used = [lot for lot in all_lots if lot.name == record.name and lot.id != record.id]
#maak lijst met alle lotnummers die al dezelfde naam hebben als het huidige reord.

if used:

  messages=env['x_alpiek_messages']
  message = messages.create({'x_name': 'new message'})
  message['x_name']= "Serial number " + record.name + " has already been used in record with ID " + str(used[0].id) + " for product " \
  + used[0].product_id.name + ". You have to correct it."
  
  action = popup_method() #toon popup
  record.message_notify (body= message.x_name) #plaats het bericht ook in de chatter