-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCodeunit_0000000240.txt
322 lines (295 loc) · 12.1 KB
/
Codeunit_0000000240.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
OBJECT Codeunit 240 ItemJnlManagement
{
OBJECT-PROPERTIES
{
Date=09/07/12;
Time=12:00:00 PM;
Version List=NAVW17.00;
}
PROPERTIES
{
Permissions=TableData 82=imd,
TableData 233=imd;
OnRun=BEGIN
END;
}
CODE
{
VAR
Text000@1000 : TextConst 'ENU=%1 journal;ESM=Diario %1;FRC=Journal %1;ENC=%1 journal';
Text001@1001 : TextConst 'ENU=RECURRING;ESM=PERIODICO;FRC=RCURRENT;ENC=RECURRING';
Text002@1002 : TextConst 'ENU=Recurring Item Journal;ESM=Diario producto peri¢dico;FRC=Journal article r‚current;ENC=Recurring Item Journal';
Text003@1003 : TextConst 'ENU=DEFAULT;ESM=GENERICO;FRC=DFAUT;ENC=DEFAULT';
Text004@1004 : TextConst 'ENU=Default Journal;ESM=Diario gen‚rico;FRC=Journal par d‚faut;ENC=Default Journal';
OldItemNo@1005 : Code[20];
OldCapNo@1007 : Code[20];
OldCapType@1006 : 'Work Center,Machine Center';
OldProdOrderNo@1009 : Code[20];
OldOperationNo@1008 : Code[20];
Text005@1010 : TextConst 'ENU=REC-;ESM=PER-;FRC=ABO-;ENC=REC-';
Text006@1011 : TextConst 'ENU="Recurring ";ESM="Peri¢dico ";FRC="R‚current ";ENC="Recurring "';
OpenFromBatch@1012 : Boolean;
PROCEDURE TemplateSelection@1(PageID@1005 : Integer;PageTemplate@1000 : 'Item,Transfer,Phys. Inventory,Revaluation,Consumption,Output,Capacity,Prod. Order';RecurringJnl@1001 : Boolean;VAR ItemJnlLine@1004 : Record 83;VAR JnlSelected@1003 : Boolean);
VAR
ItemJnlTemplate@1002 : Record 82;
BEGIN
JnlSelected := TRUE;
ItemJnlTemplate.RESET;
ItemJnlTemplate.SETRANGE("Page ID",PageID);
ItemJnlTemplate.SETRANGE(Recurring,RecurringJnl);
ItemJnlTemplate.SETRANGE(Type,PageTemplate);
CASE ItemJnlTemplate.COUNT OF
0:
BEGIN
ItemJnlTemplate.INIT;
ItemJnlTemplate.Recurring := RecurringJnl;
ItemJnlTemplate.VALIDATE(Type,PageTemplate);
ItemJnlTemplate.VALIDATE("Page ID");
IF NOT RecurringJnl THEN BEGIN
ItemJnlTemplate.Name := FORMAT(ItemJnlTemplate.Type,MAXSTRLEN(ItemJnlTemplate.Name));
ItemJnlTemplate.Description := STRSUBSTNO(Text000,ItemJnlTemplate.Type);
END ELSE
IF ItemJnlTemplate.Type = ItemJnlTemplate.Type::Item THEN BEGIN
ItemJnlTemplate.Name := Text001;
ItemJnlTemplate.Description := Text002;
END ELSE BEGIN
ItemJnlTemplate.Name :=
Text005 + FORMAT(ItemJnlTemplate.Type,MAXSTRLEN(ItemJnlTemplate.Name) - STRLEN(Text005));
ItemJnlTemplate.Description := Text006 + STRSUBSTNO(Text000,ItemJnlTemplate.Type);
END;
ItemJnlTemplate.INSERT;
COMMIT;
END;
1:
ItemJnlTemplate.FINDFIRST;
ELSE
JnlSelected := PAGE.RUNMODAL(0,ItemJnlTemplate) = ACTION::LookupOK;
END;
IF JnlSelected THEN BEGIN
ItemJnlLine.FILTERGROUP := 2;
ItemJnlLine.SETRANGE("Journal Template Name",ItemJnlTemplate.Name);
ItemJnlLine.FILTERGROUP := 0;
IF OpenFromBatch THEN BEGIN
ItemJnlLine."Journal Template Name" := '';
PAGE.RUN(ItemJnlTemplate."Page ID",ItemJnlLine);
END;
END;
END;
PROCEDURE TemplateSelectionFromBatch@10(VAR ItemJnlBatch@1000 : Record 233);
VAR
ItemJnlLine@1002 : Record 83;
ItemJnlTemplate@1003 : Record 82;
BEGIN
OpenFromBatch := TRUE;
ItemJnlTemplate.GET(ItemJnlBatch."Journal Template Name");
ItemJnlTemplate.TESTFIELD("Page ID");
ItemJnlBatch.TESTFIELD(Name);
ItemJnlLine.FILTERGROUP := 2;
ItemJnlLine.SETRANGE("Journal Template Name",ItemJnlTemplate.Name);
ItemJnlLine.FILTERGROUP := 0;
ItemJnlLine."Journal Template Name" := '';
ItemJnlLine."Journal Batch Name" := ItemJnlBatch.Name;
PAGE.RUN(ItemJnlTemplate."Page ID",ItemJnlLine);
END;
PROCEDURE OpenJnl@2(VAR CurrentJnlBatchName@1000 : Code[10];VAR ItemJnlLine@1001 : Record 83);
BEGIN
CheckTemplateName(ItemJnlLine.GETRANGEMAX("Journal Template Name"),CurrentJnlBatchName);
ItemJnlLine.FILTERGROUP := 2;
ItemJnlLine.SETRANGE("Journal Batch Name",CurrentJnlBatchName);
ItemJnlLine.FILTERGROUP := 0;
END;
PROCEDURE OpenJnlBatch@12(VAR ItemJnlBatch@1000 : Record 233);
VAR
ItemJnlTemplate@1002 : Record 82;
ItemJnlLine@1003 : Record 83;
JnlSelected@1004 : Boolean;
BEGIN
IF ItemJnlBatch.GETFILTER("Journal Template Name") <> '' THEN
EXIT;
ItemJnlBatch.FILTERGROUP(2);
IF ItemJnlBatch.GETFILTER("Journal Template Name") <> '' THEN BEGIN
ItemJnlBatch.FILTERGROUP(0);
EXIT;
END;
ItemJnlBatch.FILTERGROUP(0);
IF NOT ItemJnlBatch.FIND('-') THEN
FOR ItemJnlTemplate.Type := ItemJnlTemplate.Type::Item TO ItemJnlTemplate.Type::"Prod. Order" DO BEGIN
ItemJnlTemplate.SETRANGE(Type,ItemJnlTemplate.Type);
IF NOT ItemJnlTemplate.FINDFIRST THEN
TemplateSelection(0,ItemJnlTemplate.Type,FALSE,ItemJnlLine,JnlSelected);
IF ItemJnlTemplate.FINDFIRST THEN
CheckTemplateName(ItemJnlTemplate.Name,ItemJnlBatch.Name);
IF ItemJnlTemplate.Type IN [ItemJnlTemplate.Type::Item,
ItemJnlTemplate.Type::Consumption,
ItemJnlTemplate.Type::Output,
ItemJnlTemplate.Type::Capacity]
THEN BEGIN
ItemJnlTemplate.SETRANGE(Recurring,TRUE);
IF NOT ItemJnlTemplate.FINDFIRST THEN
TemplateSelection(0,ItemJnlTemplate.Type,TRUE,ItemJnlLine,JnlSelected);
IF ItemJnlTemplate.FINDFIRST THEN
CheckTemplateName(ItemJnlTemplate.Name,ItemJnlBatch.Name);
ItemJnlTemplate.SETRANGE(Recurring);
END;
END;
ItemJnlBatch.FIND('-');
JnlSelected := TRUE;
ItemJnlBatch.CALCFIELDS("Template Type",Recurring);
ItemJnlTemplate.SETRANGE(Recurring,ItemJnlBatch.Recurring);
IF NOT ItemJnlBatch.Recurring THEN
ItemJnlTemplate.SETRANGE(Type,ItemJnlBatch."Template Type");
IF ItemJnlBatch.GETFILTER("Journal Template Name") <> '' THEN
ItemJnlTemplate.SETRANGE(Name,ItemJnlBatch.GETFILTER("Journal Template Name"));
CASE ItemJnlTemplate.COUNT OF
1:
ItemJnlTemplate.FINDFIRST;
ELSE
JnlSelected := PAGE.RUNMODAL(0,ItemJnlTemplate) = ACTION::LookupOK;
END;
IF NOT JnlSelected THEN
ERROR('');
ItemJnlBatch.FILTERGROUP(2);
ItemJnlBatch.SETRANGE("Journal Template Name",ItemJnlTemplate.Name);
ItemJnlBatch.FILTERGROUP(0);
END;
PROCEDURE CheckTemplateName@3(CurrentJnlTemplateName@1000 : Code[10];VAR CurrentJnlBatchName@1001 : Code[10]);
VAR
ItemJnlBatch@1002 : Record 233;
BEGIN
ItemJnlBatch.SETRANGE("Journal Template Name",CurrentJnlTemplateName);
IF NOT ItemJnlBatch.GET(CurrentJnlTemplateName,CurrentJnlBatchName) THEN BEGIN
IF NOT ItemJnlBatch.FINDFIRST THEN BEGIN
ItemJnlBatch.INIT;
ItemJnlBatch."Journal Template Name" := CurrentJnlTemplateName;
ItemJnlBatch.SetupNewBatch;
ItemJnlBatch.Name := Text003;
ItemJnlBatch.Description := Text004;
ItemJnlBatch.INSERT(TRUE);
COMMIT;
END;
CurrentJnlBatchName := ItemJnlBatch.Name
END;
END;
PROCEDURE CheckName@4(CurrentJnlBatchName@1000 : Code[10];VAR ItemJnlLine@1001 : Record 83);
VAR
ItemJnlBatch@1002 : Record 233;
BEGIN
ItemJnlBatch.GET(ItemJnlLine.GETRANGEMAX("Journal Template Name"),CurrentJnlBatchName);
END;
PROCEDURE SetName@5(CurrentJnlBatchName@1000 : Code[10];VAR ItemJnlLine@1001 : Record 83);
BEGIN
ItemJnlLine.FILTERGROUP := 2;
ItemJnlLine.SETRANGE("Journal Batch Name",CurrentJnlBatchName);
ItemJnlLine.FILTERGROUP := 0;
IF ItemJnlLine.FIND('-') THEN;
END;
PROCEDURE LookupName@6(VAR CurrentJnlBatchName@1000 : Code[10];VAR ItemJnlLine@1001 : Record 83) : Boolean;
VAR
ItemJnlBatch@1002 : Record 233;
BEGIN
COMMIT;
ItemJnlBatch."Journal Template Name" := ItemJnlLine.GETRANGEMAX("Journal Template Name");
ItemJnlBatch.Name := ItemJnlLine.GETRANGEMAX("Journal Batch Name");
ItemJnlBatch.FILTERGROUP(2);
ItemJnlBatch.SETRANGE("Journal Template Name",ItemJnlBatch."Journal Template Name");
ItemJnlBatch.FILTERGROUP(0);
IF PAGE.RUNMODAL(0,ItemJnlBatch) = ACTION::LookupOK THEN BEGIN
CurrentJnlBatchName := ItemJnlBatch.Name;
SetName(CurrentJnlBatchName,ItemJnlLine);
END;
END;
PROCEDURE OnAfterInputItemNo@8(VAR Text@1000 : Text[1024]) : Text[1024];
VAR
Item@1002 : Record 27;
Number@1001 : Integer;
BEGIN
IF Text = '' THEN
EXIT;
IF EVALUATE(Number,Text) THEN
EXIT;
Item."No." := Text;
IF Item.FIND('=>') THEN
IF COPYSTR(Item."No.",1,STRLEN(Text)) = UPPERCASE(Text) THEN BEGIN
Text := Item."No.";
EXIT;
END;
Item.SETCURRENTKEY("Search Description");
Item."Search Description" := Text;
Item."No." := '';
IF Item.FIND('=>') THEN
IF COPYSTR(Item."Search Description",1,STRLEN(Text)) = UPPERCASE(Text) THEN
Text := Item."No.";
END;
PROCEDURE GetItem@7(ItemNo@1000 : Code[20];VAR ItemDescription@1001 : Text[50]);
VAR
Item@1002 : Record 27;
BEGIN
IF ItemNo <> OldItemNo THEN BEGIN
ItemDescription := '';
IF ItemNo <> '' THEN
IF Item.GET(ItemNo) THEN
ItemDescription := Item.Description;
OldItemNo := ItemNo;
END;
END;
PROCEDURE GetConsump@13(VAR ItemJnlLine@1000 : Record 83;VAR ProdOrderDescription@1001 : Text[50]);
VAR
ProdOrder@1002 : Record 5405;
BEGIN
IF (ItemJnlLine."Order Type" = ItemJnlLine."Order Type"::Production) AND (ItemJnlLine."Order No." <> OldProdOrderNo) THEN BEGIN
ProdOrderDescription := '';
IF ProdOrder.GET(ProdOrder.Status::Released,ItemJnlLine."Order No.") THEN
ProdOrderDescription := ProdOrder.Description;
OldProdOrderNo := ProdOrder."No.";
END;
END;
PROCEDURE GetOutput@11(VAR ItemJnlLine@1000 : Record 83;VAR ProdOrderDescription@1001 : Text[50];VAR OperationDescription@1002 : Text[50]);
VAR
ProdOrder@1003 : Record 5405;
ProdOrderRtngLine@1004 : Record 5409;
BEGIN
IF (ItemJnlLine."Operation No." <> OldOperationNo) OR
((ItemJnlLine."Order Type" = ItemJnlLine."Order Type"::Production) AND (ItemJnlLine."Order No." <> OldProdOrderNo))
THEN BEGIN
OperationDescription := '';
IF ProdOrderRtngLine.GET(
ProdOrder.Status::Released,
ItemJnlLine."Order No.",
ItemJnlLine."Routing Reference No.",
ItemJnlLine."Routing No.",
ItemJnlLine."Operation No.")
THEN
OperationDescription := ProdOrderRtngLine.Description;
OldOperationNo := ProdOrderRtngLine."Operation No.";
END;
IF (ItemJnlLine."Order Type" = ItemJnlLine."Order Type"::Production) AND (ItemJnlLine."Order No." <> OldProdOrderNo) THEN BEGIN
ProdOrderDescription := '';
IF ProdOrder.GET(ProdOrder.Status::Released,ItemJnlLine."Order No.") THEN
ProdOrderDescription := ProdOrder.Description;
OldProdOrderNo := ProdOrder."No.";
END;
END;
PROCEDURE GetCapacity@9(CapType@1002 : 'Work Center,Machine Center';CapNo@1001 : Code[20];VAR CapDescription@1000 : Text[50]);
VAR
WorkCenter@1004 : Record 99000754;
MachineCenter@1003 : Record 99000758;
BEGIN
IF (CapNo <> OldCapNo) OR (CapType <> OldCapType) THEN BEGIN
CapDescription := '';
IF CapNo <> '' THEN
CASE CapType OF
CapType::"Work Center":
IF WorkCenter.GET(CapNo) THEN
CapDescription := WorkCenter.Name;
CapType::"Machine Center":
IF MachineCenter.GET(CapNo) THEN
CapDescription := MachineCenter.Name;
END;
OldCapNo := CapNo;
OldCapType := CapType;
END;
END;
BEGIN
END.
}
}