Skip to main content

MFR Helper

App\Http\Helpers\Mfr\Helper

Statische Lookup-Tabellen für die 15+ MFR-Entities. Hält die "Was-gehört-zu-was?"-Konfiguration an einer einzigen Stelle.

getExpand($entity): string

OData-Expand-Strings pro Entity. Nutze sie, damit ein Sync-Lauf alle Kindrelationen mitzieht.

use App\Http\Helpers\Mfr\Helper;

$expand = Helper::getExpand('Companies');
// → 'Contacts,Tags,ServiceObjects,MainContact'

$companies = $mfr->from('Companies')->expand($expand)->get();
EntityExpand
CompaniesContacts,Tags,ServiceObjects,MainContact
ContactsCompany,User
CostCentersfalse
DocumentsServiceRequest
ItemTypesUnit
ItemUnitsfalse
ProductsCustomValueStepTemplate/Steps
Qualificationsfalse
ServiceObjectsContacts,Company,Product,Tags
ServiceRequestsQualifications,ServiceObjects,Customer,Reports,Items,Appointments/Contacts,Steps,Comments,StockMovements,Tags
StepListTemplatesSteps
Tagsfalse
TimeEventsContact,ServiceRequest
UsersContact

getModel($entity): ?string

Mapping Entity-Name → Eloquent-Modell in der Common-DB.

$model = Helper::getModel('Companies');
// → \App\Models\Common\Mfr\Companies::class

(new $model)->find($id);

getController($entity): ?string

Mapping Entity-Name → Resource-Controller-Klasse.

Helper::getController('Companies');
// → \App\Http\Controllers\Mfr\CompanyController::class

Praktisch im WebHookCallController, um basierend auf einem Webhook-Type den passenden Controller zu instantiieren — analog zu Weclapp\Helper::getWeclappController().

getMapping($entity): ?string

Welche Mapping-Klasse übersetzt zwischen Weclapp und MFR?

Helper::getMapping('Companies');
// → \App\Http\Mapping\Weclapp\Mfr\CompanyMapping::class

Mappings konvertieren z.B. Weclapp.Customer.partyType=ORGANIZATIONMFR.Companies.IsPhysicalPerson=false.

getEntity($entity): ?string

Liefert für Sub-Entities den Parent-Namen — z.B. ist Items immer Teil eines ServiceRequests:

Helper::getEntity('Items');     // → 'ServiceRequests'
Helper::getEntity('Steps'); // → 'ServiceRequests'
Helper::getEntity('Reports'); // → false

Wann nutze ich was?

ScenarioHelper
OData-Liste mit KindrelationengetExpand()
Webhook-Routing zu spezifischem ControllergetController()
Mapping zwischen Weclapp und MFR aufrufengetMapping()
Bulk-Operation in Common-DB ohne MFR-Round-TripgetModel()
Sub-Entity Parent-LookupgetEntity()