This repository has been archived by the owner on Nov 16, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 52
/
Copy pathCOD1797.TXT
411 lines (361 loc) · 16.4 KB
/
COD1797.TXT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
OBJECT Codeunit 1797 Data Migration Facade Helper
{
OBJECT-PROPERTIES
{
Date=;
Time=;
Version List=;
}
PROPERTIES
{
SingleInstance=Yes;
OnRun=BEGIN
END;
}
CODE
{
VAR
DataMigrationFacadeHelper@1000 : Codeunit 1797;
PROCEDURE CreateShipmentMethodIfNeeded@2(CodeToSet@1001 : Code[10];DescriptionToSet@1002 : Text[50]) : Code[10];
VAR
ShipmentMethod@1000 : Record 10;
BEGIN
IF ShipmentMethod.GET(CodeToSet) THEN
EXIT(CodeToSet);
ShipmentMethod.VALIDATE(Code,CodeToSet);
ShipmentMethod.VALIDATE(Description,DescriptionToSet);
ShipmentMethod.INSERT(TRUE);
EXIT(ShipmentMethod.Code);
END;
PROCEDURE CreateSalespersonPurchaserIfNeeded@3(CodeToSet@1001 : Code[20];NameToSet@1002 : Text[50];PhoneNoToSet@1003 : Text[30];EmailToSet@1004 : Text[80]) : Code[20];
VAR
SalespersonPurchaser@1000 : Record 13;
BEGIN
IF SalespersonPurchaser.GET(CodeToSet) THEN
EXIT(CodeToSet);
SalespersonPurchaser.INIT;
SalespersonPurchaser.VALIDATE(Code,CodeToSet);
SalespersonPurchaser.VALIDATE(Name,NameToSet);
SalespersonPurchaser.VALIDATE("Phone No.",PhoneNoToSet);
SalespersonPurchaser.VALIDATE("E-Mail",EmailToSet);
SalespersonPurchaser.VALIDATE("Search E-Mail",EmailToSet);
SalespersonPurchaser.INSERT(TRUE);
EXIT(SalespersonPurchaser.Code);
END;
PROCEDURE CreateCustomerPriceGroupIfNeeded@4(CodeToSet@1001 : Code[10];DescriptionToSet@1002 : Text[50];PriceIncludesVatToSet@1003 : Boolean) : Code[10];
VAR
CustomerPriceGroup@1000 : Record 6;
BEGIN
IF CustomerPriceGroup.GET(CodeToSet) THEN
EXIT(CodeToSet);
CustomerPriceGroup.INIT;
CustomerPriceGroup.VALIDATE(Code,CodeToSet);
CustomerPriceGroup.VALIDATE(Description,DescriptionToSet);
CustomerPriceGroup.VALIDATE("Price Includes VAT",PriceIncludesVatToSet);
CustomerPriceGroup.INSERT(TRUE);
EXIT(CustomerPriceGroup.Code);
END;
PROCEDURE CreatePaymentTermsIfNeeded@5(CodeToSet@1001 : Code[10];DescriptionToSet@1002 : Text[50];DueDateCalculationToSet@1003 : DateFormula) : Code[10];
VAR
PaymentTerms@1000 : Record 3;
BEGIN
IF PaymentTerms.GET(CodeToSet) THEN
EXIT(CodeToSet);
PaymentTerms.INIT;
PaymentTerms.VALIDATE(Code,CodeToSet);
PaymentTerms.VALIDATE(Description,DescriptionToSet);
PaymentTerms.VALIDATE("Due Date Calculation",DueDateCalculationToSet);
PaymentTerms.INSERT(TRUE);
EXIT(PaymentTerms.Code);
END;
PROCEDURE CreateTerritoryIfNeeded@11(CodeToSet@1001 : Code[10];Name@1002 : Text[50]) : Code[10];
VAR
Territory@1000 : Record 286;
BEGIN
IF Territory.GET(CodeToSet) THEN
EXIT(CodeToSet);
Territory.INIT;
Territory.VALIDATE(Code,CodeToSet);
Territory.VALIDATE(Name,Name);
Territory.INSERT(TRUE);
EXIT(Territory.Code);
END;
PROCEDURE CreateTaxAreaIfNeeded@13(CodeToSet@1001 : Code[20];Description@1002 : Text[50]) : Code[20];
VAR
TaxArea@1000 : Record 318;
BEGIN
IF TaxArea.GET(CodeToSet) THEN
EXIT(CodeToSet);
TaxArea.INIT;
TaxArea.VALIDATE(Code,CodeToSet);
TaxArea.VALIDATE(Description,Description);
TaxArea.INSERT(TRUE);
EXIT(TaxArea.Code);
END;
PROCEDURE CreatePaymentMethodIfNeeded@6(CodeToSet@1002 : Code[10];DescriptionToSet@1001 : Text[50]) : Code[10];
VAR
PaymentMethod@1000 : Record 289;
BEGIN
IF PaymentMethod.GET(CodeToSet) THEN
EXIT(CodeToSet);
PaymentMethod.INIT;
PaymentMethod.VALIDATE(Code,CodeToSet);
PaymentMethod.VALIDATE(Description,DescriptionToSet);
PaymentMethod.INSERT(TRUE);
EXIT(PaymentMethod.Code);
END;
PROCEDURE DoesPostCodeExist@1(CodeToSearch@1002 : Code[20];CityToSearch@1001 : Text[30]) : Boolean;
VAR
PostCode@1000 : Record 225;
BEGIN
EXIT(PostCode.GET(CodeToSearch,CityToSearch));
END;
PROCEDURE CreatePostCodeIfNeeded@8(CodeToSet@1002 : Code[20];CityToSet@1001 : Text[30];CountyToSet@1003 : Text[30];CountryRegionCodeToSet@1004 : Code[10]) : Boolean;
VAR
PostCode@1000 : Record 225;
BEGIN
PostCode.SETRANGE(Code,CodeToSet);
PostCode.SETRANGE("Search City",UPPERCASE(CityToSet));
IF PostCode.FINDFIRST THEN
EXIT(FALSE);
PostCode.INIT;
PostCode.VALIDATE(Code,CodeToSet);
PostCode.VALIDATE(City,CityToSet);
PostCode.VALIDATE(County,CountyToSet);
PostCode.VALIDATE("Country/Region Code",CountryRegionCodeToSet);
PostCode.INSERT(TRUE);
EXIT(TRUE);
END;
PROCEDURE CreateCountryIfNeeded@12(CodeToSet@1002 : Code[10];NameToSet@1001 : Text[50];AddressFormatToSet@1005 : 'Post Code+City,City+Post Code,City+County+Post Code,Blank Line+Post Code+City';ContactAddressFormatToSet@1006 : 'First,After Company Name,Last') : Code[10];
VAR
CountryRegion@1000 : Record 9;
BEGIN
IF CountryRegion.GET(CodeToSet) THEN
EXIT(CountryRegion.Code);
CountryRegion.INIT;
CountryRegion.VALIDATE(Code,CodeToSet);
CountryRegion.VALIDATE(Name,NameToSet);
CountryRegion.VALIDATE("Address Format",AddressFormatToSet);
CountryRegion.VALIDATE("Contact Address Format",ContactAddressFormatToSet);
CountryRegion.INSERT(TRUE);
EXIT(CountryRegion.Code);
END;
PROCEDURE SearchCountry@14(CodeToSearch@1001 : Code[10];NameToSearch@1003 : Text[50];EUCountryRegionCodeToSearch@1004 : Code[10];IntrastatCodeToSet@1005 : Code[10];VAR CodeToGet@1002 : Code[10]) : Boolean;
VAR
CountryRegion@1000 : Record 9;
BEGIN
IF CodeToSearch <> '' THEN
CountryRegion.SETRANGE(Code,CodeToSearch);
IF NameToSearch <> '' THEN
CountryRegion.SETRANGE(Name,NameToSearch);
IF EUCountryRegionCodeToSearch <> '' THEN
CountryRegion.SETRANGE("EU Country/Region Code",EUCountryRegionCodeToSearch);
IF IntrastatCodeToSet <> '' THEN
CountryRegion.SETRANGE("Intrastat Code",IntrastatCodeToSet);
IF CountryRegion.FINDFIRST THEN BEGIN
CodeToGet := CountryRegion.Code;
EXIT(TRUE);
END;
END;
PROCEDURE SearchLanguage@7(AbbreviatedNameToSearch@1000 : Code[3];VAR CodeToGet@1003 : Code[10]) : Boolean;
VAR
WindowsLanguageSearch@1002 : Record 2000000045;
Language@1001 : Record 8;
BEGIN
WindowsLanguageSearch.SETRANGE("Abbreviated Name",AbbreviatedNameToSearch);
IF WindowsLanguageSearch.FINDFIRST THEN BEGIN
Language.SETRANGE("Windows Language ID",WindowsLanguageSearch."Language ID");
IF Language.FINDFIRST THEN BEGIN
CodeToGet := Language.Code;
EXIT(TRUE);
END;
END;
END;
PROCEDURE FixIfLcyCode@9(CurrencyCode@1000 : Code[10]) : Code[10];
VAR
GeneralLedgerSetup@1001 : Record 98;
BEGIN
GeneralLedgerSetup.FINDFIRST;
IF CurrencyCode = GeneralLedgerSetup."LCY Code" THEN
EXIT('');
EXIT(CurrencyCode);
END;
PROCEDURE CreateGeneralJournalBatchIfNeeded@97(GeneralJournalBatchCode@1000 : Code[10];NoSeriesCode@1004 : Code[20];PostingNoSeriesCode@1003 : Code[20]);
VAR
GenJournalBatch@1002 : Record 232;
TemplateName@1001 : Code[10];
BEGIN
TemplateName := CreateGeneralJournalTemplateIfNeeded(GeneralJournalBatchCode);
GenJournalBatch.SETRANGE("Journal Template Name",TemplateName);
GenJournalBatch.SETRANGE(Name,GeneralJournalBatchCode);
GenJournalBatch.SETRANGE("No. Series",NoSeriesCode);
GenJournalBatch.SETRANGE("Posting No. Series",PostingNoSeriesCode);
IF NOT GenJournalBatch.FINDFIRST THEN BEGIN
GenJournalBatch.INIT;
GenJournalBatch.VALIDATE("Journal Template Name",TemplateName);
GenJournalBatch.SetupNewBatch;
GenJournalBatch.VALIDATE(Name,GeneralJournalBatchCode);
GenJournalBatch.VALIDATE(Description,GeneralJournalBatchCode);
GenJournalBatch."No. Series" := NoSeriesCode;
GenJournalBatch."Posting No. Series" := PostingNoSeriesCode;
GenJournalBatch.INSERT(TRUE);
END;
END;
LOCAL PROCEDURE CreateGeneralJournalTemplateIfNeeded@98(GeneralJournalBatchCode@1000 : Code[10]) : Code[10];
VAR
GenJournalTemplate@1001 : Record 80;
BEGIN
GenJournalTemplate.SETRANGE(Type,GenJournalTemplate.Type::General);
GenJournalTemplate.SETRANGE(Recurring,FALSE);
IF NOT GenJournalTemplate.FINDFIRST THEN BEGIN
GenJournalTemplate.INIT;
GenJournalTemplate.VALIDATE(Name,GeneralJournalBatchCode);
GenJournalTemplate.VALIDATE(Type,GenJournalTemplate.Type::General);
GenJournalTemplate.VALIDATE(Recurring,FALSE);
GenJournalTemplate.INSERT(TRUE);
END;
EXIT(GenJournalTemplate.Name);
END;
PROCEDURE CreateGeneralJournalLine@99(VAR GenJournalLine@1006 : Record 81;GeneralJournalBatchCode@1000 : Code[10];DocumentNo@1001 : Code[20];Description@1002 : Text[50];AccountType@1009 : Option;AccountNo@1010 : Code[20];PostingDate@1003 : Date;DueDate@1011 : Date;Amount@1004 : Decimal;AmountLCY@1013 : Decimal;Currency@1012 : Code[10];BalancingAccount@1014 : Code[20]);
VAR
GenJournalBatch@1005 : Record 232;
GenJournalLineCurrent@1007 : Record 81;
GenJournalTemplate@1015 : Record 80;
LineNum@1008 : Integer;
BEGIN
GenJournalBatch.GET(CreateGeneralJournalTemplateIfNeeded(GeneralJournalBatchCode),GeneralJournalBatchCode);
GenJournalLineCurrent.SETRANGE("Journal Template Name",GenJournalBatch."Journal Template Name");
GenJournalLineCurrent.SETRANGE("Journal Batch Name",GenJournalBatch.Name);
IF GenJournalLineCurrent.FINDLAST THEN
LineNum := GenJournalLineCurrent."Line No." + 10000
ELSE
LineNum := 10000;
GenJournalTemplate.GET(GenJournalBatch."Journal Template Name");
GenJournalLine.INIT;
GenJournalLine.SetHideValidation(TRUE);
GenJournalLine.VALIDATE("Source Code",GenJournalTemplate."Source Code");
GenJournalLine.VALIDATE("Journal Template Name",GenJournalBatch."Journal Template Name");
GenJournalLine.VALIDATE("Journal Batch Name",GenJournalBatch.Name);
GenJournalLine.VALIDATE("Line No.",LineNum);
GenJournalLine.VALIDATE("Account Type",AccountType);
GenJournalLine.VALIDATE("Document No.",DocumentNo);
GenJournalLine.VALIDATE("Account No.",AccountNo);
GenJournalLine.VALIDATE(Description,Description);
GenJournalLine.VALIDATE("Document Date",PostingDate);
GenJournalLine.VALIDATE("Posting Date",PostingDate);
GenJournalLine.VALIDATE("Due Date",DueDate);
GenJournalLine.VALIDATE(Amount,Amount);
GenJournalLine.VALIDATE("Amount (LCY)",AmountLCY);
GenJournalLine.VALIDATE("Currency Code",DataMigrationFacadeHelper.FixIfLcyCode(Currency));
GenJournalLine.VALIDATE("Bal. Account Type",GenJournalLine."Bal. Account Type"::"G/L Account");
GenJournalLine.VALIDATE("Bal. Account No.",BalancingAccount);
GenJournalLine.VALIDATE("Bal. Gen. Posting Type",GenJournalLine."Bal. Gen. Posting Type"::" ");
GenJournalLine.VALIDATE("Bal. Gen. Bus. Posting Group",'');
GenJournalLine.VALIDATE("Bal. Gen. Prod. Posting Group",'');
GenJournalLine.VALIDATE("Bal. VAT Prod. Posting Group",'');
GenJournalLine.VALIDATE("Bal. VAT Bus. Posting Group",'');
GenJournalLine.INSERT(TRUE);
END;
PROCEDURE GetOrCreateDimension@22(DimensionCode@1000 : Code[20];DimensionDescription@1001 : Text[50];VAR Dimension@1002 : Record 348);
BEGIN
IF Dimension.GET(DimensionCode) THEN
EXIT;
Dimension.INIT;
Dimension.VALIDATE(Code,DimensionCode);
Dimension.VALIDATE(Description,DimensionDescription);
Dimension.INSERT(TRUE);
END;
PROCEDURE GetOrCreateDimensionValue@21(DimensionCode@1000 : Code[20];DimensionValueCode@1001 : Code[20];DimensionValueName@1002 : Text[50];VAR DimensionValue@1003 : Record 349);
BEGIN
IF DimensionValue.GET(DimensionCode,DimensionValueCode) THEN
EXIT;
DimensionValue.INIT;
DimensionValue.VALIDATE("Dimension Code",DimensionCode);
DimensionValue.VALIDATE(Code,DimensionValueCode);
DimensionValue.VALIDATE(Name,DimensionValueName);
DimensionValue.INSERT(TRUE);
END;
PROCEDURE CreateOnlyDefaultDimensionIfNeeded@20(DimensionCode@1001 : Code[20];DimensionValueCode@1002 : Code[20];TableId@1003 : Integer;EntityNo@1004 : Code[20]);
VAR
DefaultDimension@1000 : Record 352;
BEGIN
IF DefaultDimension.GET(TableId,EntityNo,DimensionCode) THEN
EXIT;
DefaultDimension.INIT;
DefaultDimension.VALIDATE("Dimension Code",DimensionCode);
DefaultDimension.VALIDATE("Dimension Value Code",DimensionValueCode);
DefaultDimension.VALIDATE("Table ID",TableId);
DefaultDimension.VALIDATE("No.",EntityNo);
DefaultDimension.INSERT(TRUE);
END;
PROCEDURE CreateDimensionSetId@10(OldDimensionSetId@1004 : Integer;DimensionCode@1001 : Code[20];DimensionDescription@1006 : Text[50];DimensionValueCode@1000 : Code[20];DimensionValueName@1007 : Text[50]) : Integer;
VAR
Dimension@1008 : Record 348;
DimensionValue@1009 : Record 349;
DimensionSetEntry@1005 : Record 480;
TempDimensionSetEntry@1003 : TEMPORARY Record 480;
DimensionManagement@1002 : Codeunit 408;
BEGIN
IF (DimensionCode = '') OR (DimensionValueCode = '') THEN
EXIT(OldDimensionSetId);
GetOrCreateDimension(DimensionCode,DimensionDescription,Dimension);
GetOrCreateDimensionValue(DimensionCode,DimensionValueCode,DimensionValueName,DimensionValue);
DimensionSetEntry.SETRANGE("Dimension Set ID",OldDimensionSetId);
DimensionSetEntry.SETFILTER("Dimension Code",'<>%1',DimensionCode);
IF DimensionSetEntry.FINDSET THEN
REPEAT
TempDimensionSetEntry.TRANSFERFIELDS(DimensionSetEntry);
TempDimensionSetEntry.INSERT(TRUE);
UNTIL DimensionSetEntry.NEXT = 0;
TempDimensionSetEntry.INIT;
TempDimensionSetEntry.VALIDATE("Dimension Set ID",OldDimensionSetId);
TempDimensionSetEntry.VALIDATE("Dimension Code",DimensionCode);
TempDimensionSetEntry.VALIDATE("Dimension Value Code",DimensionValueCode);
TempDimensionSetEntry.INSERT(TRUE);
EXIT(DimensionManagement.GetDimensionSetID(TempDimensionSetEntry));
END;
[External]
PROCEDURE SetAlternativeContact@56(NameToSet@1003 : Text[50];AddressToSet@1004 : Text[50];Address2ToSet@1005 : Text[50];PostCodeToSet@1006 : Code[20];CityToSet@1007 : Text[30];CountryToSet@1012 : Code[10];EmailToset@1008 : Text[80];PhoneNoToSet@1009 : Text[30];FaxToSet@1010 : Text[30];MobileNoToSet@1011 : Text[30];LinkToTable@1013 : Integer;EntityNo@1014 : Code[20]);
VAR
Contact@1000 : Record 5050;
ContactBusinessRelation@1001 : Record 5054;
MarketingSetup@1002 : Record 5079;
BEGIN
IF NOT MarketingSetup.GET THEN
EXIT;
IF LinkToTable = DATABASE::Vendor THEN BEGIN
ContactBusinessRelation.SETRANGE("Business Relation Code",MarketingSetup."Bus. Rel. Code for Vendors");
ContactBusinessRelation.SETRANGE("Link to Table",ContactBusinessRelation."Link to Table"::Vendor);
ContactBusinessRelation.SETRANGE("No.",EntityNo);
IF NOT ContactBusinessRelation.FINDFIRST THEN
EXIT;
END ELSE
IF LinkToTable = DATABASE::Customer THEN BEGIN
ContactBusinessRelation.SETRANGE("Business Relation Code",MarketingSetup."Bus. Rel. Code for Customers");
ContactBusinessRelation.SETRANGE("Link to Table",ContactBusinessRelation."Link to Table"::Customer);
ContactBusinessRelation.SETRANGE("No.",EntityNo);
IF NOT ContactBusinessRelation.FINDFIRST THEN
EXIT;
END ELSE
EXIT;
Contact.INIT;
Contact.VALIDATE(Name,NameToSet);
Contact.VALIDATE(Address,AddressToSet);
Contact.VALIDATE("Address 2",Address2ToSet);
Contact.VALIDATE("Post Code",PostCodeToSet);
Contact.VALIDATE(City,CityToSet);
Contact.VALIDATE("Country/Region Code",CountryToSet);
Contact.VALIDATE("E-Mail",EmailToset);
Contact.VALIDATE("Phone No.",PhoneNoToSet);
Contact.VALIDATE("Fax No.",FaxToSet);
Contact.VALIDATE("Mobile Phone No.",MobileNoToSet);
Contact.VALIDATE(Type,Contact.Type::Person);
Contact.VALIDATE("Company No.",ContactBusinessRelation."Contact No.");
ContactBusinessRelation.CALCFIELDS("Contact Name");
Contact.VALIDATE("Company Name",ContactBusinessRelation."Contact Name");
Contact.INSERT(TRUE);
END;
BEGIN
END.
}
}