Skip to content

fbosman/mrpoutsourcing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

25 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MRP Outsourcing β€” Dolibarr Module

Dolibarr PHP License

Dolibarr-module voor het uitbesteden van MRP-productie-opdrachten aan externe leveranciers. Volledig geΓ―ntegreerd in de Dolibarr MRP-workflow.


Functionaliteit

  • πŸ“§ Stuur productie-opdrachten (MO's) per e-mail naar externe leveranciers β€” inclusief componentenlijst, hoeveelheden en opleverdatum
  • πŸ“¦ Keuze per opdracht: component-voorraad al dan niet verlagen bij het uitbesteden
  • βœ… Gereedmeldingen ontvangen via drie kanalen:
    • Klikbare link in de leveranciers-e-mail (geen login vereist)
    • Inkomende e-mail met patroon GEREED-{MO_REF}-{TOKEN} β€” via IMAP of Office365 (Microsoft Graph)
    • Handmatige gereedmelding in de Dolibarr interface
  • πŸ”„ Automatisch sluiten van de MRP Manufacturing Order bij gereedmelding
  • πŸ”’ Veilige callbacks via uniek per-opdracht token (192 bits entropie)
  • πŸ“‹ Audittrail β€” volledige log van alle leverancierscommunicatie

Schermafbeeldingen

MO-kaart met knop Opdracht aanmaken Leveranciers-e-mail Gereedmelding portaal
Knop "Verstuur naar leverancier" Formulier met voorraadkeuze Professionele HTML-e-mail Branded leverancierspagina

Vereisten

Component Versie
Dolibarr 16.0 of hoger (getest op 20.x)
PHP 7.4 of hoger
PHP IMAP-extensie Optioneel β€” alleen bij provider IMAP
PHP cURL-extensie Optioneel β€” alleen bij provider Office365
Azure AD app-registratie Optioneel β€” alleen bij provider Office365 (zie hieronder)
MRP-module Actief in Dolibarr
SMTP Geconfigureerd in Dolibarr

Installatie

1. Bestanden plaatsen

cp -r mrpoutsourcing /pad/naar/dolibarr/custom/

2. Databasetabel aanmaken

mysql -u dolibarruser -p dolibarr_db \
  < custom/mrpoutsourcing/sql/llx_mrpoutsourcing_order.sql

3. Module activeren

Dolibarr β†’ Instellingen β†’ Modules/Applicaties β†’ zoek "MRP Outsourcing" β†’ Activeren

4. Configureren

Ga naar MRP β†’ Uitbestede Opdrachten (tandwiel-icoon) en stel in:

  • Afzender e-mailadres (gebruik bij voorkeur dezelfde mailbox die de gereedmeldingen ontvangt)
  • Mailprovider voor inkomende gereedmeldingen: IMAP of Office365 (Microsoft Graph)
  • De bijbehorende provider-gegevens (zie hieronder)
  • Standaard magazijn voor voorraadmutaties

5. Cron instellen (optioneel)

*/5 * * * * php /pad/naar/dolibarr/custom/mrpoutsourcing/scripts/process_inbound_mail.php

Inkomende mail β€” provider configureren

De gereedmeldingen per e-mail (GEREED-{MO_REF}-{TOKEN}) worden opgehaald door het cron-script. De provider wordt gekozen met de instelling Mailprovider (MRPOUTSOURCING_MAIL_PROVIDER).

Optie A β€” IMAP

Vereist de PHP IMAP-extensie. Vul in de setup in:

Veld Constante Voorbeeld
IMAP-server MRPOUTSOURCING_IMAP_HOST mail.mijnbedrijf.nl
IMAP-poort MRPOUTSOURCING_IMAP_PORT 993
SSL gebruiken MRPOUTSOURCING_IMAP_SSL Ja
Gebruikersnaam MRPOUTSOURCING_IMAP_USER productie@mijnbedrijf.nl
Wachtwoord MRPOUTSOURCING_IMAP_PASS (versleuteld opgeslagen)
Map MRPOUTSOURCING_IMAP_FOLDER INBOX

⚠️ Office365/Exchange Online ondersteunt geen Basic Authentication meer voor IMAP. Gebruik daar provider Office365 hieronder.

Optie B β€” Office365 (Microsoft Graph)

Gebruikt de Microsoft Graph API met de OAuth2 client-credentials flow (app-only, geen gebruikerslogin). Werkt betrouwbaar headless via cron en vereist de PHP cURL-extensie.

1. App-registratie in Azure

  1. Azure Portal β†’ Microsoft Entra ID β†’ App-registraties β†’ Nieuwe registratie. Noteer de Application (client) ID en de Directory (tenant) ID.

  2. Certificaten & geheimen β†’ Nieuw clientgeheim β†’ kopieer de waarde direct (deze is later niet meer zichtbaar).

  3. API-machtigingen β†’ Machtiging toevoegen β†’ Microsoft Graph β†’ Toepassingsmachtigingen (let op: Application, niet Delegated):

    • Mail.ReadWrite β€” berichten lezen en als gelezen markeren
    • Mail.Send β€” automatisch antwoord sturen

    Klik daarna op "Beheerderstoestemming verlenen" (admin consent).

  4. Aanbevolen: beperk de app tot één mailbox met een Application Access Policy in Exchange Online β€” anders heeft de app technisch toegang tot Γ‘lle mailboxen.

2. Instellen in Dolibarr

Veld Constante Voorbeeld
Tenant-id of domein MRPOUTSOURCING_O365_TENANT bedrijf.onmicrosoft.com
Application (client) ID MRPOUTSOURCING_O365_CLIENT_ID 00000000-0000-0000-0000-000000000000
Client secret MRPOUTSOURCING_O365_CLIENT_SECRET (versleuteld opgeslagen)
Mailbox (e-mail / UPN) MRPOUTSOURCING_O365_MAILBOX productie@mijnbedrijf.nl
Map (well-known naam) MRPOUTSOURCING_O365_FOLDER inbox

3. Verbinding testen

php /pad/naar/dolibarr/custom/mrpoutsourcing/scripts/process_inbound_mail.php

De uitvoer toont Provider: office365 en Γ³f No unread messages (verbinding OK), Γ³f een duidelijke fout (token/permissie).


Gebruik

Opdracht uitbesteden

  1. Open een MRP-productieorder
  2. Klik "Verstuur naar leverancier" in de actiebalk
  3. Selecteer de leverancier (e-mail wordt automatisch ingevuld)
  4. Kies of component-voorraad wordt verlaagd
  5. Voeg optioneel een opmerking toe voor de leverancier
  6. Klik "Aanmaken" β†’ controleer voorvertoning β†’ "Nu Verzenden"

Gereedmelding door leverancier

De leverancier ontvangt een HTML-e-mail met:

  • Knop "Opdracht ontvangen" β†’ registreert bevestiging
  • Knop "Gereedmelding" β†’ sluit de MRP-order automatisch

Of per e-mail met onderwerp:

GEREED-MO2025-0042-a1b2c3d4e5f6789abc0123456789abcd01234567

Statusflow

[draft] β†’ [sent] β†’ [confirmed] β†’ [done]
                β†˜               β†—
                  direct done
Status Omschrijving
draft Aangemaakt, nog niet verzonden
sent E-mail verzonden naar leverancier
confirmed Leverancier heeft ontvangst bevestigd
done Gereed gemeld β€” MRP-order gesloten
cancelled Geannuleerd

Bestandsstructuur

mrpoutsourcing/
β”œβ”€β”€ core/
β”‚   └── modules/modMrpOutsourcing.class.php       # Module-descriptor
β”œβ”€β”€ class/
β”‚   β”œβ”€β”€ mrpoutsourcingorder.class.php             # Business logic
β”‚   β”œβ”€β”€ actions_mrpoutsourcing.class.php          # MO-kaart hook (addMoreActionsButtons)
β”‚   └── office365mailclient.class.php             # Microsoft Graph (Office365) mailclient
β”œβ”€β”€ admin/
β”‚   └── mrpoutsourcing_setup.php                  # Instellingen
β”œβ”€β”€ ajax/
β”‚   └── get_supplier_email.php                    # Leverancier e-mail Ajax
β”œβ”€β”€ public/
β”‚   └── callback.php                              # Leverancier portaal (geen login)
β”œβ”€β”€ scripts/
β”‚   └── process_inbound_mail.php                  # Cron-script (IMAP / Office365)
β”œβ”€β”€ sql/
β”‚   └── llx_mrpoutsourcing_order.sql              # Tabelstructuur
β”œβ”€β”€ langs/
β”‚   β”œβ”€β”€ nl_NL/mrpoutsourcing.lang
β”‚   └── en_US/mrpoutsourcing.lang
β”œβ”€β”€ list.php                                      # Overzicht
└── send_order.php                                # Aanmaken / versturen

Rechten

Recht Toegang
mrpoutsourcing.read Overzicht en details bekijken
mrpoutsourcing.write Opdrachten aanmaken en verzenden
mrpoutsourcing.manage Gereed melden en annuleren

Beveiliging

  • Elke uitbestedingsopdracht heeft een eigen uniek token van 48 hexadecimale tekens (192 bits entropie)
  • De leveranciers-callback (public/callback.php) vereist geen Dolibarr-login
  • Tokens worden nooit hergebruikt

Licentie

MIT β€” zie LICENSE


Auteur

Ontwikkeld voor Ghee Easy β€” Dolibarr 20.x customisatie

About

Dolibarr MRP Outsourcing Module - Stuur productie-opdrachten naar externe leveranciers, beheer component-voorraad en ontvang gereedmeldingen per mail

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages