Table 5196 To-do Interaction Language, source in 29

Source29

src/Layers/W1/BaseApp/CRM/Task/TodoInteractionLanguage.Table.al218 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.CRM.Task;

using Microsoft.CRM.Interaction;
using Microsoft.CRM.Setup;
using System.Globalization;

table 5196 "To-do Interaction Language"
{
    Caption = 'Task Interaction Language';
    DataClassification = CustomerContent;
    LookupPageID = "Task Interaction Languages";

    fields
    {
        field(1; "To-do No."; Code[20])
        {
            Caption = 'Task No.';
            TableRelation = "To-do";
        }
        field(2; "Language Code"; Code[10])
        {
            Caption = 'Language Code';
            ToolTip = 'Specifies the language that is used when translating specified text on documents to foreign business partner, such as an item description on an order confirmation.';
            TableRelation = Language;
        }
        field(3; Description; Text[100])
        {
            Caption = 'Description';
            ToolTip = 'Specifies the description of the interaction template that you have chosen for the task.';
        }
        field(4; "Attachment No."; Integer)
        {
            Caption = 'Attachment No.';
            TableRelation = Attachment;
        }
    }

    keys
    {
        key(Key1; "To-do No.", "Language Code")
        {
            Clustered = true;
        }
    }

    fieldgroups
    {
    }

    trigger OnDelete()
    begin
        RemoveAttachment(false);
    end;

    var
        CreateProcessCanceledMsg: Label 'You have canceled the create process.';
        ReplaceExistingAttachmentQst: Label 'Replace existing attachment?';
        ImportProcessCanceledMsg: Label 'You have canceled the import process.';
        CannotCreateAttachmentsHereErr: Label 'You cannot create attachments here.';

    [Scope('OnPrem')]
    procedure CreateAttachment(PageNotEditable: Boolean): Boolean
    var
        Attachment: Record Attachment;
    begin
        if PageNotEditable then
            Error(CannotCreateAttachmentsHereErr);
        if "Attachment No." <> 0 then begin
            if Attachment.Get("Attachment No.") then
                Attachment.TestField("Read Only", false);
            if not Confirm(ReplaceExistingAttachmentQst, false) then
                exit;
        end;

        Error(CreateProcessCanceledMsg);
    end;

    [Scope('OnPrem')]
    procedure OpenAttachment(PageNotEditable: Boolean)
    var
        Attachment: Record Attachment;
        IsHandled: Boolean;
    begin
        IsHandled := false;
        OnBeforeOpenAttachment(Rec, PageNotEditable, IsHandled);
        if IsHandled then
            exit;

        if "Attachment No." = 0 then
            exit;
        Attachment.Get("Attachment No.");
        if PageNotEditable then
            Attachment."Read Only" := true;
        Attachment.OpenAttachment("To-do No." + ' ' + Description, false, "Language Code");
    end;

    [Scope('OnPrem')]
    procedure CopyFromAttachment()
    var
        TaskInteractionLanguage: Record "To-do Interaction Language";
        Attachment: Record Attachment;
        AttachmentManagement: Codeunit AttachmentManagement;
        NewAttachNo: Integer;
    begin
        if Attachment.Get("Attachment No.") then
            Attachment.TestField("Read Only", false);

        if "Attachment No." <> 0 then begin
            if not Confirm(ReplaceExistingAttachmentQst, false) then
                exit;
            RemoveAttachment(false);
            "Attachment No." := 0;
            Modify();
            Commit();
        end;

        TaskInteractionLanguage.SetFilter("Attachment No.", '<>%1', 0);
        if PAGE.RunModal(0, TaskInteractionLanguage) = ACTION::LookupOK then begin
            NewAttachNo := AttachmentManagement.InsertAttachment(TaskInteractionLanguage."Attachment No.");
            if NewAttachNo <> 0 then begin
                "Attachment No." := NewAttachNo;
                Modify();
            end;
        end;
    end;

    [Scope('OnPrem')]
    procedure ImportAttachment()
    var
        Attachment: Record Attachment;
        TempAttachment: Record Attachment temporary;
        MarketingSetup: Record "Marketing Setup";
        AttachmentManagement: Codeunit AttachmentManagement;
        FileName: Text;
    begin
        if "Attachment No." <> 0 then begin
            if Attachment.Get("Attachment No.") then
                Attachment.TestField("Read Only", false);
            if not Confirm(ReplaceExistingAttachmentQst, false) then
                exit;
        end;

        Clear(TempAttachment);
        if TempAttachment.ImportAttachmentFromClientFile('', true, false) then begin
            if "Attachment No." = 0 then
                Attachment.Get(AttachmentManagement.InsertAttachment(0))
            else
                Attachment.Get("Attachment No.");
            TempAttachment."No." := Attachment."No.";
            TempAttachment."Storage Pointer" := Attachment."Storage Pointer";
            TempAttachment.WizSaveAttachment();
            MarketingSetup.Get();
            if MarketingSetup."Attachment Storage Type" = MarketingSetup."Attachment Storage Type"::"Disk File" then
                if TempAttachment."No." <> 0 then begin
                    FileName := TempAttachment.ConstDiskFileName();
                    if FileName <> '' then
                        Attachment.ExportAttachmentToServerFile(FileName);
                end;

            OnImportAttachmentOnAfterExportAttachmentToServerFile(Rec, Attachment, TempAttachment, MarketingSetup, FileName);

            Attachment."Storage Type" := TempAttachment."Storage Type";
            Attachment."Storage Pointer" := TempAttachment."Storage Pointer";
            Attachment."Attachment File" := TempAttachment."Attachment File";
            Attachment."File Extension" := TempAttachment."File Extension";
            Attachment.Modify();
            "Attachment No." := Attachment."No.";
            Modify();
        end else
            Error(ImportProcessCanceledMsg);
    end;

    [Scope('OnPrem')]
    procedure ExportAttachment()
    var
        Attachment: Record Attachment;
        FileName: Text[1024];
    begin
        if Attachment.Get("Attachment No.") then begin
            OnBeforeExportAttachmentToClientFile(Attachment);
            Attachment.ExportAttachmentToClientFile(FileName);
        end;
    end;

    [Scope('OnPrem')]
    procedure RemoveAttachment(Prompt: Boolean): Boolean
    var
        Attachment: Record Attachment;
    begin
        if Attachment.Get("Attachment No.") then
            if Attachment.RemoveAttachment(Prompt) then begin
                "Attachment No." := 0;
                Modify();
                exit(true);
            end;
    end;

    [IntegrationEvent(false, false)]
    local procedure OnBeforeExportAttachmentToClientFile(var Attachment: Record Attachment)
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnBeforeOpenAttachment(var TodoInteractionLanguage: Record "To-do Interaction Language"; var PageNotEditable: Boolean; var IsHandled: Boolean)
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnImportAttachmentOnAfterExportAttachmentToServerFile(var TodoInteractionLanguage: Record "To-do Interaction Language"; var Attachment: Record Attachment; var TempAttachment: Record Attachment temporary; var MarketingSetup: Record "Marketing Setup"; var FileName: Text)
    begin
    end;
}