Codeunit 5200 Employee/Resource Update

App
Base Application
Namespace
Microsoft.HumanResources.Employee
Versions
17-28

Procedures, 2Events, 3

Versions171819202122232425262728

Source29

Source in 29

src/Layers/W1/BaseApp/HumanResources/Employee/EmployeeResourceUpdate.Codeunit.al79 lines, Copyright (c) Microsoft Corporation. MIT

// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace Microsoft.HumanResources.Employee;

using Microsoft.Projects.Resources.Resource;

codeunit 5200 "Employee/Resource Update"
{
    Permissions = TableData Resource = rimd;

    trigger OnRun()
    begin
    end;

    var
        Res: Record Resource;

    procedure HumanResToRes(OldEmployee: Record Employee; Employee: Record Employee)
    begin
        if (Employee."Resource No." <> '') and IsResourceUpdateNeeded(OldEmployee, Employee) then
            ResUpdate(Employee)
        else
            exit;
    end;

    procedure ResUpdate(Employee: Record Employee)
    begin
        Res.Get(Employee."Resource No.");
        Res."Job Title" := Employee."Job Title";
        Res.Name := CopyStr(Employee.FullName(), 1, MaxStrLen(Res.Name));
        Res.Address := Employee.Address;
        Res."Address 2" := Employee."Address 2";
        Res."Post Code" := Employee."Post Code";
        Res.County := Employee.County;
        Res.City := Employee.City;
        Res."Country/Region Code" := Employee."Country/Region Code";
        Res."Social Security No." := Employee."Social Security No.";
        Res."Employment Date" := Employee."Employment Date";
        OnAfterUpdateResource(Res, Employee);
        Res.Modify(true)
    end;

    local procedure IsResourceUpdateNeeded(OldEmployee: Record Employee; Employee: Record Employee): Boolean
    var
        UpdateNeeded: Boolean;
    begin
        UpdateNeeded :=
          (OldEmployee."Resource No." <> Employee."Resource No.") or
          (OldEmployee."Job Title" <> Employee."Job Title") or
          (OldEmployee."First Name" <> Employee."First Name") or
          (OldEmployee."Last Name" <> Employee."Last Name") or
          (OldEmployee.Address <> Employee.Address) or
          (OldEmployee."Address 2" <> Employee."Address 2") or
          (OldEmployee."Post Code" <> Employee."Post Code") or
          (OldEmployee.County <> Employee.County) or
          (OldEmployee.City <> Employee.City) or
          (OldEmployee."Country/Region Code" <> Employee."Country/Region Code") or
          (OldEmployee."Social Security No." <> Employee."Social Security No.") or
          (OldEmployee."Employment Date" <> Employee."Employment Date");

        OnAfterCalculateResourceUpdateNeeded(Employee, OldEmployee, UpdateNeeded);

        exit(UpdateNeeded);
    end;

    [IntegrationEvent(false, false)]
    local procedure OnAfterUpdateResource(var Resource: Record Resource; Employee: Record Employee)
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnAfterCalculateResourceUpdateNeeded(Employee: Record Employee; xEmployee: Record Employee; var UpdateNeeded: Boolean)
    begin
    end;
}