Job Portal Sale
![]()
Stelleninserate verrechnen.
Technischer Name: job_portal_sale
Repository: https://github.com/Sozialinfo/Odoo-Apps-Sozialinfo/tree/16.0/job_portal_sale
Aktionen
Verkaufsauftrag erstellen
Navigieren Sie nach Einstellungen > Technisch > Serveraktionen und erstellen Sie einen neuen Eintrag:
Name der Aktion: Verkaufsauftrag erstellen
Modell: job_portal.joboffer
Typ: Code ausführen
Kopieren Sie die folgenden Zeilen in das Feld Python-Code:
for rec in records:
rec._create_sale_order()Im Tab Sicherheit fügen Sie die Gruppe Stellenportal / Administrator hinzu.
Die Aktion mit dem Knopf Kontextuelle Aktion erstellen bestätigen und dann speichern.
Beschreibung Auftragsposition generieren
Navigieren Sie nach Einstellungen > Technisch > Serveraktionen und erstellen Sie einen neuen Eintrag:
Name der Aktion: Beschreibung Auftragsposition generieren
Modell: sale.order
Typ: Code ausführen
Kopieren Sie die folgenden Zeilen in das Feld Python-Code:
for rec in records.filtered(lambda r: r.joboffer_id):
joboffer_id = rec.joboffer_id
for line in rec.order_line.filtered(lambda l: l.product_id):
description = line.product_id.name
if joboffer_id.ref:
description += (' %s vom %s') % (joboffer_id.ref, joboffer_id.publication_start_date.date().strftime('%d.%m.%y'))
if joboffer_id.name:
description += '\n' + joboffer_id.name
if joboffer_id.author or joboffer_id.reference:
description += '\n'
if joboffer_id.author:
description += joboffer_id.author.name
if joboffer_id.author and joboffer_id.reference:
description += ' / '
if joboffer_id.reference:
description += 'Ihre Referenz: ' + joboffer_id.reference
line.write({'name': description})Die Aktion mit dem Knopf Kontextuelle Aktion erstellen bestätigen und dann speichern.
Automatisierungsregeln
Angebot automatisch bestätigen
Mit dieser automatischen Aktion wird ein Angebot mit einem bestimmten Attribut (Beispiel: partner_id.address_checked) automatisch bestätigt.
Erstellen Sie unter Einstellungen > Technisch > Automation > Automatisierungsregeln einen Eintrag mit diesen Werten:
Name der Aktion: Angebot automatisch bestätigen
Modell: sale.order
Auslöser: Bei Erstellung und Bearbeitung
Trigger-Felder: partner_id
Domain vor Aktualisierung: [("partner_id.stage_id.code", "!=", "checked")]
Anzuwenden auf: ["&", ("partner_invoice_id.stage_id.code", "=", "checked"), "&", ("joboffer_id", "!=", False), "&", ("joboffer_id.is_created_by_gsi", "!=", True), ("joboffer_id.discount", "=", False)]
Python Code:
for rec in records:
rec.action_confirm()
rec.message_post(body="Die Kundenadresse ist geprüft, der Verkaufsauftrag wurde automatisch bestätigt.")Abonnement für Kontakt anlegen und bestätigen
Mit dieser automatisierten Aktion wird für einen Kontakt automatisch ein Abonnement angelegt.
Name der Aktion: Abonnement für Kontakt anlegen und bestätigen
Modell: res.partner
Auslöser: Bei Erstellung und Bearbeitung
Auslöser-Felder: backup_membership
Anwenden auf: [("backup_membership", "!=", False)] Python Code:
default_pricelist_id = env.ref("product.list0")
for rec in records.filtered(lambda r: r.property_product_pricelist.id == default_pricelist_id.id):
xml_id = ""
if rec.backup_membership.lower() == "basic":
xml_id = "job_portal_sale.product_template_membership_basic"
if rec.backup_membership.lower() == "jobplus":
xml_id = "job_portal_sale.product_template_membership_plus"
product = env.ref(xml_id, raise_if_not_found=False)
team = env.ref("__custom__.sale_team_membership")
# raise UserError(product)
if product:
# Check if a subscription sale order already exists for the partner
existing_sale_order = env["sale.order"].search([
("partner_id", "=", rec.id),
("state", "in", ["draft", "sent", "sale"]),
("order_line.product_id", "=", product.product_variant_id.id),
], limit=1)
if not existing_sale_order:
sale_order = env["sale.order"].create({
"partner_id": rec.id,
"order_line": [(0,0,{
"product_id": product.product_variant_id.id,
"order_partner_id": rec.id,
"name": product.name,
"product_uom_qty": 1,
"price_unit": product.list_price,
"team_id": team.id
})],
"recurrence_id": env.ref("sale_temporal.recurrence_yearly").id
})
# sale_order.action_confirm()
# sale_order.message_post(body="Dieser Verkaufsauftrag wurde automatisch erstellt und bestätigt.")