Table 6707 Booking Item
- App
- Base Application
- Namespace
- Microsoft.Booking
- Versions
- 17-28
Fields, 17Keys, 1Procedures, 7
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/OtherCapabilities/Booking/BookingItem.Table.al229 lines, Copyright (c) Microsoft Corporation. MIT
namespace Microsoft.Booking;
using Microsoft.Integration.Graph;
using System;
using System.Text;
using System.Utilities;
table 6707 "Booking Item"
{
Caption = 'Booking Item';
ExternalName = 'appointments';
TableType = MicrosoftGraph;
DataClassification = CustomerContent;
fields
{
field(1; Id; Text[250])
{
Caption = 'Id';
ExternalName = 'id';
ExternalType = 'Edm.String';
}
field(2; "Start Date"; BLOB)
{
Caption = 'Start Date';
ExternalName = 'start';
ExternalType = 'microsoft.bookings.api.dateTimeTimeZone';
SubType = Json;
}
field(3; "End Date"; BLOB)
{
Caption = 'End Date';
ExternalName = 'end';
ExternalType = 'microsoft.bookings.api.dateTimeTimeZone';
SubType = Json;
}
field(4; Duration; Duration)
{
Caption = 'Duration';
ExternalName = 'duration';
ExternalType = 'Edm.Duration';
}
field(5; Notes; Text[250])
{
Caption = 'Notes';
ExternalName = 'serviceNotes';
ExternalType = 'Edm.String';
}
field(7; "Price Type"; Option)
{
Caption = 'Price Type';
ExternalName = 'priceType';
ExternalType = 'microsoft.bookings.api.bookingPriceType';
OptionCaption = 'Undefined,Fixed Price,Starting At,Hourly,Free,Price Varies,Call Us,Not Set';
OptionMembers = undefined,fixedPrice,startingAt,hourly,free,priceVaries,callUs,notSet;
}
field(8; Price; Decimal)
{
AutoFormatType = 0;
Caption = 'Price';
ExternalName = 'price';
ExternalType = 'Edm.Double';
}
field(10; "Service ID"; Text[50])
{
Caption = 'Service ID';
ExternalName = 'serviceId';
ExternalType = 'Edm.String';
}
field(11; "Service Name"; Text[50])
{
Caption = 'Service Name';
ExternalName = 'serviceName';
ExternalType = 'Edm.String';
}
field(13; "Customer ID"; Text[50])
{
Caption = 'Customer ID';
ExternalName = 'customerId';
ExternalType = 'Edm.String';
}
field(14; "Customer Email"; Text[80])
{
Caption = 'Customer Email';
ExternalName = 'customerEmailAddress';
ExternalType = 'Edm.String';
}
field(15; "Customer Name"; Text[100])
{
Caption = 'Customer Name';
ExternalName = 'customerName';
ExternalType = 'Edm.String';
}
field(18; "Invoice Link"; Text[250])
{
Caption = 'Invoice Link';
ExternalName = 'invoiceUrl';
ExternalType = 'Edm.String';
}
field(19; "Invoice No."; Text[250])
{
Caption = 'Invoice No.';
ExternalName = 'invoiceId';
ExternalType = 'Edm.String';
}
field(21; "Invoice Status"; Option)
{
Caption = 'Invoice Status';
ExternalName = 'invoiceStatus';
ExternalType = 'microsoft.bookings.api.bookingInvoiceStatus';
OptionCaption = 'Draft,Reviewing,Open,Canceled,Paid,Corrective';
OptionMembers = draft,reviewing,open,canceled,paid,corrective;
}
field(22; "Invoice Amount"; Decimal)
{
AutoFormatType = 0;
Caption = 'Invoice Amount';
ExternalName = 'invoiceAmount';
ExternalType = 'Edm.Double';
}
field(23; "Invoice Date"; BLOB)
{
Caption = 'Invoice Date';
ExternalName = 'invoiceDate';
ExternalType = 'microsoft.bookings.api.dateTimeTimeZone';
SubType = Json;
}
}
keys
{
key(Key1; Id)
{
Clustered = true;
}
}
fieldgroups
{
}
var
NullJSONTxt: Label 'null', Locked = true;
procedure GetEndDate(): DateTime
begin
exit(GetDate(FieldNo("End Date")));
end;
procedure SetEndDate(NewEndDate: DateTime)
begin
SetDate(FieldNo("End Date"), NewEndDate);
end;
procedure GetInvoiceDate(): DateTime
begin
exit(GetDate(FieldNo("Invoice Date")));
end;
procedure SetInvoiceDate(NewInvoiceDate: DateTime)
begin
SetDate(FieldNo("Invoice Date"), NewInvoiceDate);
end;
procedure GetStartDate(): DateTime
begin
exit(GetDate(FieldNo("Start Date")));
end;
procedure SetStartDate(NewStartDate: DateTime)
begin
SetDate(FieldNo("Start Date"), NewStartDate);
end;
local procedure GetBlobString(FieldNo: Integer) Content: Text
var
TempBlob: Codeunit "Temp Blob";
InStream: InStream;
begin
TempBlob.FromRecord(Rec, FieldNo);
TempBlob.CreateInStream(InStream, TEXTENCODING::UTF8);
InStream.Read(Content);
end;
local procedure SetBlobString(FieldNo: Integer; String: Text)
var
TempBlob: Codeunit "Temp Blob";
RecordRef: RecordRef;
OutStream: OutStream;
begin
RecordRef.GetTable(Rec);
TempBlob.CreateOutStream(OutStream, TEXTENCODING::UTF8);
OutStream.Write(String);
TempBlob.ToRecordRef(RecordRef, FieldNo);
RecordRef.SetTable(Rec);
end;
local procedure GetDate(FieldNo: Integer) ParsedDateTime: DateTime
var
JSONManagement: Codeunit "JSON Management";
JsonObject: DotNet JObject;
DateBlobString: Text;
DateTimeJsonValue: Text;
begin
DateBlobString := GetBlobString(FieldNo);
if NullJSONTxt <> DateBlobString then begin
JSONManagement.InitializeObject(DateBlobString);
JSONManagement.GetJSONObject(JsonObject);
JSONManagement.GetStringPropertyValueFromJObjectByName(JsonObject, 'dateTime', DateTimeJsonValue);
Evaluate(ParsedDateTime, DateTimeJsonValue);
end;
end;
local procedure SetDate(FieldNo: Integer; NewDate: DateTime)
var
GraphMgtComplexTypes: Codeunit "Graph Mgt - Complex Types";
JsonText: Text;
begin
GraphMgtComplexTypes.GetBookingsDateJSON(NewDate, JsonText);
SetBlobString(FieldNo, JsonText);
end;
procedure CheckActionAllowed() Allowed: Boolean
begin
Allowed := ("Service Name" <> '') and not IsEmpty();
end;
}