Dokumente Aktionen
Arbeitsflüsse mit Dokumenten automatisieren.
Aktionen
Dokumente aus Wareneingang taggen
Diese Serveraktion erfordert die Installation von Stock Lot Traceability List oder Stock MRP Traceability List. Die Aktion führt diese Schritte aus:
- Für die ausgewählte Seriennummern die Traceability List anzeigen
- Alle Wareneingänge aus der Traceability List filtern
- Alle Dokument mit Verknüpfung auf einen gefilterten Wareneingang anzeigen
- Diese Dokumente mit "Dokumente aus Wareneingang" taggen
flowchart TD
A[Seriennummer] -->|in| B(Traceability List)
B -->|enthält| C(Wareneingänge)
E(Dokumente Wareingang) -->|tag| D[Dokumente]
D -->|verknüpft| CNavigieren Sie nach Einstellungen > Technisch > Serveraktionen und erstellen Sie einen neuen Eintrag:
- Name:
Dokumente aus Wareneingang taggen - Modell:
stock.lotodermrp.production - Typ:
Code ausführen - Code:
tag_name ='Dokumente aus Wareneingang'
document_tag = env['documents.tag'].search([('name', '=', tag_name)], limit=1)
# Remove tag from tagged documents
tagged_documents = env['documents.document'].search([('tag_ids', '=', document_tag.id)])
for tagged_document in tagged_documents:
tagged_document.write({
'tag_ids': tagged_document.tag_ids - document_tag
})
for rec in records:
# Get incoming picking ids
traceability_lines = rec.traceability_line_ids
incoming_lines = traceability_lines.filtered(lambda l: l.picking_id.picking_type_id.code == 'incoming' and l.product_id.tracking in ['serial', 'lot'])
incoming_picking_ids = list(set(incoming_lines.mapped('picking_id.id')))
# Search document linked to the picking ids
documents = env['documents.document'].search([('res_model', '=', 'stock.picking'), ('res_id', 'in', incoming_picking_ids)])
# Tag these documents
for document in documents:
document.write({
'tag_ids': document.tag_ids + document_tag
})
message = 'Tagged %s documents with tag "%s".' % (len(documents), tag_name)
action = {
'type': 'ir.actions.client',
'tag': 'display_notification',
'params': {
'message': message,
'sticky': True
}
}Die Aktion mit Kontextuelle Aktion Erstellen bestätigen.
Geplante Aktionen
Dokumente an Wareneingang zuordnen
Navigieren Sie nach Einstellungen > Technisch > Automatisierungsregeln und erstellen Sie einen neuen Eintrag:
- Name:
Dokumente an Wareneingang zuordnen - Modell:
ir.actions.server - Ausführen alle:
1Tage - Nächstes Ausführungsdatum:
DD.MM.YYYY 06:00:00 - Anzahl der Anrufe:
-1 - Typ:
Code ausführen - Code:
tag = env['documents.tag'].search([ ('name','=','WE zugeordnet') ],limit=1)
folder = env['documents.document'].search([ ('name','=','Wareneingang') ],limit=1)
documents = env['documents.document'].search([ ('folder_id','=',folder.id),('res_model','=','documents.document') ])
pickings = env['stock.picking'].search([ ('picking_type_code', '=', 'incoming'),('state','in',['done']) ])
messages = []
for document in documents:
name = document.name.replace('_','/').replace('.pdf','')
picking = pickings.filtered(lambda p: p.name == name)
if picking:
document.write({
'res_model': 'stock.picking',
'res_id': picking[0].id,
'tag_ids': [tag.id]
})
messages.append('Assigned document %s to stock picking %s.' % (document.name, picking.name))
if messages:
log(' '.join(messages))