/[projects]/dao/DelphiScanner/Main.pas
ViewVC logotype

Annotation of /dao/DelphiScanner/Main.pas

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3073 - (hide annotations) (download)
Wed Jul 27 15:25:24 2016 UTC (7 years, 10 months ago) by torben
File size: 168512 byte(s)
Ret op på misvisende tekst omkring budre være hos dao
1 torben 2645 unit Main;
2    
3 torben 2705 // ToDo: flyt PrinterNavn til hhv Configuration lg lad TLabelPrint om al håndtering heraf
4     // ToDo: flyt flere parametre til TConfiguration
5    
6     // ToDo: FormKeyPress() trænger til en seriøs oprydning / refactoring
7     // ToDo: flyt mere funktionalitet fra interface layer til application layer klasser
8     // ToDo: vil det give mening at bruge State Pattern ? Så der er en class per scanningstype ?
9     // ToDo: alternativt kan man bruge en Enum til de forskellige typer
10     // ToDo: en enklere måde at håndtere capabilities på de forskellige scannings steder
11    
12    
13 torben 2645 interface
14    
15     uses
16     Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
17 torben 2705 Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
18 torben 2645 IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,
19     Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,
20 torben 2705 IdExplicitTLSClientServerBase, IdFTP, IdException,
21     ShellApi, ClipBrd, Buttons, wininet,
22 torben 2668 UITypes,
23 torben 2677 PakkeshopLabels,
24 torben 2705 Utils,
25     ParentForm,
26     LabelPrint,
27     Configuration,
28 torben 2791 Vcl.Imaging.pngimage,
29     Generics.Collections
30 torben 2660
31 torben 2645 ;
32    
33     type
34 torben 2705 TMainForm = class(TForm, IParentForm)
35 torben 2645 StregkodeST: TStaticText;
36     RuteNummerST: TStaticText;
37     BoghandlerNavnST: TStaticText;
38     IdHTTP1: TIdHTTP;
39     XMLDocument1: TXMLDocument;
40     ApplicationEvents1: TApplicationEvents;
41 torben 2653 chkSporgEfterKunde: TCheckBox;
42 torben 2645 MainMenu1: TMainMenu;
43     N1: TMenuItem;
44 torben 3054 menuNatXpress1: TMenuItem;
45     menuNatxpressReturDAO1: TMenuItem;
46     menuNatxpressReturfraKunde1: TMenuItem;
47 torben 2645 Hjlp1: TMenuItem;
48     Om1: TMenuItem;
49     Testforbindelsen1: TMenuItem;
50     Testprinter1: TMenuItem;
51     Afslut1: TMenuItem;
52     Sprgefterboghandlernummer1: TMenuItem;
53     Lukprogrammet1: TMenuItem;
54     N2: TMenuItem;
55     N3: TMenuItem;
56 torben 2655 radioStorPakke: TRadioButton;
57     radioLillePakke: TRadioButton;
58 torben 2645 N4: TMenuItem;
59 torben 3055 menuStorePakker: TMenuItem;
60     menuSmaaPakker: TMenuItem;
61 torben 2645 Panel1: TPanel;
62     Testlyd2: TMenuItem;
63     Button1: TButton;
64     Testlyd1: TMenuItem;
65     ListBox1: TListBox;
66 torben 3054 menuDaoDirekte1: TMenuItem;
67 torben 2691 BtnDownloadKontrolfil: TButton;
68 torben 2645 IdFTP1: TIdFTP;
69     Image1: TImage;
70     ListBox2: TListBox;
71 torben 2699 BtnOpdaterListen: TButton;
72 torben 2697 BtnUploadLogfil: TButton;
73 torben 2696 BtnDownloadRuteskiftFil: TButton;
74 torben 3054 menuPakkeshop1: TMenuItem;
75 torben 2645 PakkeshopText1: TStaticText;
76 torben 2668 btnNulstil: TButton;
77 torben 3054 menuPakkeshopRetur1: TMenuItem;
78 torben 2645 Altidprintepakkelabel1: TMenuItem;
79 torben 2652 chkAltidPrintLabel: TCheckBox;
80 torben 2698 BtnEKLoverforsel: TButton;
81 torben 2645 N5: TMenuItem;
82     Uploadlogfil1: TMenuItem;
83     Manual1: TMenuItem;
84     PrinterstatusStaticText1: TStaticText;
85     Timer1: TTimer;
86 torben 2654 chkScanTjekkode: TCheckBox;
87 torben 2645 Scanogstjekkoden1: TMenuItem;
88 torben 3055 menuAutomatiskTjekkodeStyring: TMenuItem;
89 torben 3054 menuAutomatiskvalg1: TMenuItem;
90 torben 2645 PanelValgA: TPanel;
91     PanelValg1: TPanel;
92     PanelValg2: TPanel;
93     PanelValg3: TPanel;
94     PanelValg4: TPanel;
95     PanelValg5: TPanel;
96     PanelValg6: TPanel;
97 torben 2656 PanelValg7: TPanel;
98 torben 2645 Manualgenerel1: TMenuItem;
99     StaticTextManglendePakker: TStaticText;
100     PanelManglendePakker1: TPanel;
101     PanelManglendePakker2: TPanel;
102     PanelManglendePakker3: TPanel;
103     PanelManglendePakker4: TPanel;
104     PanelManglendePakker5: TPanel;
105     PanelManglendePakker6: TPanel;
106 torben 2664 menuIndlevering: TMenuItem;
107 torben 2791 chkForstorTilDirekte: TCheckBox;
108 torben 3038 chkEmballageRepareret: TCheckBox;
109 torben 3039 KommentarST: TLabel;
110 torben 3073 chkUdenforSpecifikation: TCheckBox;
111 torben 2645
112 torben 2705
113    
114 torben 2645 function getProddato() : TDate;
115     function getProddag() : String;
116     function retRutenummer(rutenummer : String) : String;
117 torben 2685
118 torben 2645 procedure PlaySound(filename : PWideChar);
119     procedure StartScreen();
120     procedure InitScreen();
121     procedure InitBladhus();
122     procedure UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, Boghnr : String);
123     procedure InitLillePakke();
124     procedure InitStorPakke();
125     procedure InitForm(Farve,Titel,Url: String);
126     procedure FormKeyPress(Sender: TObject; var Key: Char);
127     procedure FormCreate(Sender: TObject);
128     procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
129 torben 2655 procedure radioStorPakkeClick(Sender: TObject);
130     procedure radioLillePakkeClick(Sender: TObject);
131 torben 2653 procedure chkSporgEfterKundeClick(Sender: TObject);
132 torben 3054 procedure menuNatXpress1Click(Sender: TObject);
133 torben 2645 procedure Testforbindelsen1Click(Sender: TObject);
134     procedure Testprinter1Click(Sender: TObject);
135     procedure Om1Click(Sender: TObject);
136     procedure Lukprogrammet1Click(Sender: TObject);
137     procedure Sprgefterboghandlernummer1Click(Sender: TObject);
138 torben 3054 procedure menuNatxpressReturDAO1Click(Sender: TObject);
139     procedure menuNatxpressReturfraKunde1Click(Sender: TObject);
140 torben 3055 procedure menuStorePakkerClick(Sender: TObject);
141     procedure menuSmaaPakkerClick(Sender: TObject);
142 torben 2645 procedure Testlyd1Click(Sender: TObject);
143     procedure Testlyd2Click(Sender: TObject);
144     procedure Button1Click(Sender: TObject);
145     procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
146 torben 3054 procedure menuDaoDirekte1Click(Sender: TObject);
147 torben 2691 procedure BtnDownloadKontrolfilClick(Sender: TObject);
148 torben 2699 procedure BtnOpdaterListenClick(Sender: TObject);
149 torben 2645 procedure DownloadBladhusRuteskiftfil();
150     procedure DownloadBladhusKontrolfil();
151     procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);
152     procedure UploadLogfilTilDAO();
153     procedure UploadInifilTilDAO();
154     procedure SletStregkodelinieFraListboks2(StregKode : String);
155     procedure FormDestroy(Sender: TObject);
156 torben 2697 procedure BtnUploadLogfilClick(Sender: TObject);
157 torben 2696 procedure BtnDownloadRuteskiftFilClick(Sender: TObject);
158 torben 3054 procedure menuPakkeshop1Click(Sender: TObject);
159 torben 2668 procedure btnNulstilClick(Sender: TObject);
160 torben 3054 procedure menuPakkeshopRetur1Click(Sender: TObject);
161 torben 2645 procedure InitNatxpresslevering();
162     procedure InitReturFraDao();
163     procedure InitReturFraKunde();
164     procedure InitDirektelevering();
165     procedure InitPakkeshoplevering();
166     procedure InitReturFraPakkeshop();
167 torben 2650 procedure InitIndleveringskode();
168    
169 torben 2645 procedure Altidprintepakkelabel1Click(Sender: TObject);
170 torben 2652 procedure chkAltidPrintLabelClick(Sender: TObject);
171 torben 2698 procedure BtnEKLoverforselClick(Sender: TObject);
172 torben 2645 procedure Uploadlogfil1Click(Sender: TObject);
173     procedure Manual1Click(Sender: TObject);
174     procedure Timer1Timer(Sender: TObject);
175     procedure Scanogstjekkoden1Click(Sender: TObject);
176 torben 2654 procedure chkScanTjekkodeClick(Sender: TObject);
177 torben 3055 procedure menuAutomatiskTjekkodeStyringClick(Sender: TObject);
178 torben 2645 procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
179 torben 3054 procedure menuAutomatiskvalg1Click(Sender: TObject);
180 torben 2645 procedure PanelValgAClick(Sender: TObject);
181     procedure PanelValg1Click(Sender: TObject);
182     procedure PanelValg2Click(Sender: TObject);
183     procedure PanelValg3Click(Sender: TObject);
184     procedure PanelValg4Click(Sender: TObject);
185     procedure PanelValg5Click(Sender: TObject);
186     procedure PanelValg6Click(Sender: TObject);
187 torben 2656 procedure PanelValg7Click(Sender: TObject);
188    
189 torben 2645 procedure NulstilAutomatiskValg();
190     procedure SletLogfiler(Path: string; FileList: TStrings);
191     procedure Manualgenerel1Click(Sender: TObject);
192     procedure TjekkerUrls();
193 torben 2703 procedure TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
194 torben 2668
195     procedure menuIndleveringClick(Sender: TObject);
196 torben 2650
197 torben 2656
198 torben 2645
199 torben 2705 //Nedarvet fra IParentForm
200 torben 3038 procedure Msg( msg : string);
201 torben 2705 procedure LogMessage( msg : string);
202     procedure SetPrinterstatusText( txt: string; alert: boolean);
203     function GetFormObject() : TForm;
204    
205    
206 torben 3039
207 torben 2645 private
208     SpecialVersionSted, SpecialVersionScanningtype: String; // Bruges når programmet skal bruges udenfor DAO scanningssteder
209     Stregkode : String;
210     SkrivLog : String;
211     Sted : String;
212     StedNavn : String;
213 torben 2794 Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering,
214     UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,
215     UrlIndleveringsPakkeManglendeScanninger,UrlEKLoverforsel, URLOmdirigerTilPakkeshop : String;
216 torben 2705
217 torben 2645 UrlEKLoverforselPakkeshop : String;
218 torben 2705
219 torben 2645 UrlFindPakketype, UrlSendPrograminfo: String;
220     Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;
221     ScanTjekkode : String;
222     ScanTjekkodeAutomatik : string;
223 torben 2705
224 torben 2794 Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop,
225     FarveIndlevering : String;
226    
227     Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop,
228     TitelIndlevering : String;
229    
230 torben 2645 AlarmLyd : String;
231     ScannetOkLyd : String;
232     ScannetOkStorLyd : String;
233 torben 2683
234 torben 2645 ScannetOkTilTjekkodeLyd : String;
235 torben 2683
236 torben 2645 PrinterNavn : String;
237     TjekPrinter : String;
238 torben 2705
239 torben 2645 Org_RuteNummerST, Org_BoghandlerNavnST, Org_KommentarST : String;
240     BladhusSted : Integer;
241     BladhusStedKode : Array of string;
242     BladhusStedNavn : Array of string;
243     BladhusRuteskiftfil_server : String;
244     BladhusRuteskiftfil_lokal : String;
245     BladhusKontrolfil_server : String;
246     BladhusKontrolfil_lokal : String;
247     logTekst : string;
248     PakkeshopStregkode, PakkeshopTjekkode : String;
249     BoghandlerStregkode, BoghandlerTjekkode : String;
250     TjekUrls : String;
251 torben 2705 Config : TConfiguration;
252 torben 2645
253 torben 2677
254 torben 2705 LabelPrint: TLabelPrint;
255 torben 2645
256     procedure PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : String = '');
257 torben 2705
258 torben 2645 procedure HentPakkeInfoFraServer(const Sted, PakkeNr : String; var RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel: Boolean; BoghandlerNummer : String = '');
259     procedure CheckCode();
260     procedure IndlesManglendeScanninger();
261     procedure IndlesRuteskiftFil(var filnavn : string);
262     procedure IndlesKontrolFil(var filnavn : string);
263     procedure IndlesScanningLogFil();
264     procedure SkrivScanningLogFil(var tekst : string);
265     function TjekKoreliste(var RuteNummer, Koreliste : string) : string;
266 torben 2659 procedure VisAlarmSkaerm(strMessage: string);
267 torben 2996 function InjectURL(Url : String) : String;
268 torben 2645
269     public
270     { Public declarations }
271     end;
272    
273 torben 2677
274 torben 2645 var
275     MainForm: TMainForm;
276    
277     // Globale variabler
278     ruteHverdagArray : Array of String;
279     ruteLordagArray : Array of String;
280     ruteArray : Array of String;
281     korelisteArray : Array of String;
282     stregkoderMedTjekkodeArray : Array of String;
283    
284     implementation
285     {$R *.dfm}
286    
287    
288 torben 2705 //FormCreate kaldes før InitForm
289    
290 torben 2645 procedure TMainForm.InitForm(Farve,Titel,Url : String);
291     begin
292    
293 torben 3048 IdHTTP1.ConnectTimeout := 5000; // Vent max 5 sek på connect
294     IdHTTP1.ReadTimeout := 10000; // Vent max 10 sek på read
295    
296    
297    
298    
299 torben 2645 StaticTextManglendePakker.Caption := '';
300    
301 torben 2704
302 torben 2645 PanelValg1.Color := clBtnFace;
303     if PanelValg1.Enabled = true then
304     begin
305     PanelValg1.Font.Color := clWindowText;
306     end;
307    
308     PanelValg2.Color := clBtnFace;
309     if PanelValg2.Enabled = true then
310     begin
311     PanelValg2.Font.Color := clWindowText;
312     end;
313    
314     PanelValg3.Color := clBtnFace;
315     if PanelValg3.Enabled = true then
316     begin
317     PanelValg3.Font.Color := clWindowText;
318     end;
319    
320     PanelValg4.Color := clBtnFace;
321     if PanelValg4.Enabled = true then
322     begin
323     PanelValg4.Font.Color := clWindowText;
324     end;
325    
326     PanelValg5.Color := clBtnFace;
327     if PanelValg5.Enabled = true then
328     begin
329     PanelValg5.Font.Color := clWindowText;
330     end;
331    
332     PanelValg6.Color := clBtnFace;
333     if PanelValg6.Enabled = true then
334     begin
335     PanelValg6.Font.Color := clWindowText;
336     end;
337    
338 torben 2650 PanelValg7.Color := clBtnFace;
339     if PanelValg7.Enabled = true then
340     begin
341     PanelValg7.Font.Color := clWindowText;
342     end;
343    
344 torben 2699 BtnOpdaterListen.Enabled := false;
345 torben 2645
346     if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
347     begin
348     if (StedNavn = '') then
349     begin
350     Titel := BladhusStedNavn[BladhusSted]+': '+Titel;
351     end
352     else
353     begin
354     Titel := StedNavn+': '+Titel;
355     end;
356     //Farve := 'D8D8D8'; // her kan vi evt. overrule ini fil
357     end
358     else
359     begin
360     //ShowMessage(Sted);
361     if (StedNavn = '') then
362     begin
363     if (Sted = 'B') then
364     begin StedNavn := 'Brabrand: '; end
365     else if (Sted = 'E') then
366     begin StedNavn := 'Erritsø: '; end
367     else if (Sted = 'AAL') then
368     begin StedNavn := 'Aalborg: '; end
369     else if (Sted = 'BR') then
370     begin StedNavn := 'Brøndby: '; end
371     else if (Sted = 'BK') then
372 torben 2800 begin StedNavn := 'Bladkompagniet/ISV: '; end
373     else if (Sted = 'TK') then
374     begin StedNavn := 'BK/Trykkompagniet: '; end
375 torben 2645 else if (Sted = 'DBK') then
376 torben 2902 begin StedNavn := 'DBK/Køge: '; end
377 torben 2645 else if (Sted = '1') then
378     begin StedNavn := 'Ålborg: '; end
379     else if (Sted = '2') then
380     begin StedNavn := 'Herning: '; end
381     else if (Sted = '3') then
382     begin StedNavn := 'Hinnerup: '; end
383     else if (Sted = '4') then
384     begin StedNavn := 'Vejle: '; end
385     else
386     begin StedNavn := Sted+': '; end
387     end
388     else
389     begin
390     if (RightStr(StedNavn,2) <> ': ') then
391     begin
392     StedNavn := StedNavn + ': ';
393     end;
394     end;
395     Titel := Stednavn + Titel;
396     end;
397    
398     StartScreen();
399     MainForm.Caption := Titel;
400 torben 2682 MainForm.Color := TUtils.HexToTColor(Farve);
401 torben 2645 MainForm.Farve := Farve;
402     MainForm.Titel := Titel;
403     MainForm.Url := Url;
404    
405     if PrinterstatusStaticText1.Color <> clWhite then // Hvis der IKKE er en alarm skal vi tilpasse baggrundsfarven her
406     begin
407     PrinterstatusStaticText1.Color := MainForm.Color;
408     end;
409    
410 torben 3054 if menuPakkeshop1.Checked or menuNatXpress1.Checked then
411 torben 2645 PakkeshopText1.Visible := true
412     else
413     PakkeshopText1.Visible := false;
414    
415 torben 2654 chkScanTjekkode.Checked := false;
416     chkScanTjekkode.Enabled := false;
417 torben 2645 Scanogstjekkoden1.Enabled := false;
418    
419     if (Scanningtype = '1') or (Scanningtype = '5') then
420     begin
421     if (ScanTjekkode = '1') then
422     begin
423 torben 2654 chkScanTjekkode.Checked := true;
424     chkScanTjekkode.Enabled := true;
425 torben 2645 Scanogstjekkoden1.Enabled := true;
426     end
427     else
428     begin
429 torben 2654 chkScanTjekkode.Checked := false;
430     chkScanTjekkode.Enabled := true; // False vil forhindre indtastning af tjekkode i nat x-press scanning
431 torben 2645 Scanogstjekkoden1.Enabled := true; // False vil forhindre indtastning af tjekkode i nat x-press scanning
432     end;
433     end;
434    
435 torben 3055 if menuAutomatiskTjekkodeStyring.Checked then
436 torben 2645 begin
437 torben 2654 chkScanTjekkode.Enabled := false;
438 torben 2645 Scanogstjekkoden1.Enabled := false;
439     end;
440    
441     logTekst := 'Overskrift: '+Titel;
442     SkrivScanningLogFil(logTekst);
443    
444     if SpecialVersionSted = '' then
445     begin
446     logTekst := 'Sted: '+Sted+', Stednavn: '+StringReplace(Stednavn, ':', '', [rfReplaceAll, rfIgnoreCase]);
447     SkrivScanningLogFil(logTekst);
448     end;
449    
450     if SpecialVersionSted <> '' then
451     begin
452     if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
453     begin
454     if Stednavn = '' then
455     begin
456     logTekst := 'Speciel version til: '+BladhusStedNavn[BladhusSted]+' ('+BladhusStedKode[BladhusSted]+')';
457     end
458     else
459     begin
460 torben 2682 logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
461 torben 2645 end;
462     SkrivScanningLogFil(logTekst);
463     end
464     else
465     begin
466 torben 2682 logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
467 torben 2645 SkrivScanningLogFil(logTekst);
468     end;
469     end;
470    
471 torben 2705
472 torben 2645 end;
473    
474     procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);
475     begin
476    
477     if Altidprintepakkelabel1.Checked then
478     begin
479 torben 2652 chkAltidPrintLabel.Checked := true;
480 torben 2645 end
481     else
482     begin
483 torben 2652 chkAltidPrintLabel.Checked := false;
484 torben 2645 end;
485    
486     end;
487    
488     procedure TMainForm.ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
489     begin
490     StregkodeST.Caption := Stregkode;
491     end;
492    
493 torben 3055 procedure TMainForm.menuAutomatiskTjekkodeStyringClick(Sender: TObject);
494 torben 2645 begin
495 torben 3055 if menuAutomatiskTjekkodeStyring.Checked then
496 torben 2645 begin
497 torben 2654 chkScanTjekkode.Enabled := false;
498 torben 2645 Scanogstjekkoden1.Enabled := false;
499     end
500     else
501     begin
502 torben 2654 chkScanTjekkode.Enabled := true;
503 torben 2645 Scanogstjekkoden1.Enabled := true;
504     end;
505    
506     end;
507    
508 torben 3054 procedure TMainForm.menuAutomatiskvalg1Click(Sender: TObject);
509 torben 2645 begin
510     // Skal ikke toggle men bare sætte funktionen on
511     // Fravælges ved at vælge en scanningstype
512 torben 3054 menuAutomatiskvalg1.Checked := true;
513 torben 2645 PanelValgA.Color := clGreen;
514     PanelValgA.Font.Color := clWhite;
515     end;
516    
517 torben 2996 function TMainForm.InjectURL(Url : String) : String;
518     begin
519 torben 2705
520 torben 2996 Url := Url + '&ver=' + TUtils.URLEncode( TUtils.Sto_GetFmtFileVersion(''));
521     Url := Url + '&host=' + TUtils.URLEncode( TUtils.GetComputerNameHelper());
522     Url := Url + '&user=' + TUtils.URLEncode( TUtils.GetCurrentUserName());
523    
524     Result := Url;
525     end;
526    
527 torben 2705 //InitForm kaldes før FormCreate
528 torben 2645 procedure TMainForm.FormCreate(Sender: TObject);
529     const
530     crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
531     var
532     gemScanningtype : String;
533    
534     begin
535 torben 2705
536    
537 torben 2645 // Initierer nogle variabler
538     BladhusSted := 00;
539     Application.ShowHint := True;
540     PrinterstatusStaticText1.Caption := '';
541     PrinterstatusStaticText1.Color := MainForm.Color;
542 torben 2656
543 torben 2668 btnNulstil.BringToFront;
544 torben 2656
545 torben 2682 TUtils.RoundCornerOf(PanelManglendePakker1);
546     TUtils.RoundCornerOf(PanelManglendePakker2);
547     TUtils.RoundCornerOf(PanelManglendePakker3);
548     TUtils.RoundCornerOf(PanelManglendePakker4);
549     TUtils.RoundCornerOf(PanelManglendePakker5);
550     TUtils.RoundCornerOf(PanelManglendePakker6);
551 torben 2645
552 torben 2656
553 torben 2645 // Hvis mappen Docs eksisterer kan vi vælge Manual i menuen Hjælp
554     if DirectoryExists('Docs') then
555     begin
556     Manualgenerel1.Enabled := true;
557     Manual1.Enabled := true;
558     end;
559    
560     // Sætter lige en default panel størrelse
561     MainForm.ClientWidth := 1000;
562 torben 2650 MainForm.ClientHeight := 750;
563 torben 2645
564 torben 2705 Config := TConfiguration.Create();
565     Config.ReadFromInifile( TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) ); //ToDo: clean up duplicate ini ref
566     Config.Sted := Sted;
567    
568 torben 2645 // Læser parametre fra ini filen
569     with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do
570     try
571 torben 2705
572    
573 torben 2645 SkrivLog := ReadString('Settings','SkrivLog','0');
574     Sted := ReadString('Settings','Sted','');
575     StedNavn := ReadString('Settings','Stednavn','');
576 torben 2996
577 torben 2645 UrlFindPakketype := ReadString('Settings','UrlFindPakketype','http://omdeling.info/webservices/bogpakkekontrol/FindPakketype.php?stregkode=%s');
578 torben 2996 UrlFindPakketype := InjectURL(UrlFindPakketype);
579    
580 torben 2645 UrlSendPrograminfo := ReadString('Settings','UrlSendPrograminfo','http://omdeling.info/webservices/bogpakkekontrol/SendPrograminfo.php?programnavn=%s&sted=%s&scanningtype=%s&infotype=%s&info=%s');
581 torben 2996 UrlSendPrograminfo := InjectURL(UrlSendPrograminfo);
582    
583 torben 2645 UrlNormal := ReadString('Settings','UrlNormal','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&tjekkode=%s');
584 torben 2996 UrlNormal := InjectURL(UrlNormal);
585    
586 torben 2645 UrlReturDAO := ReadString('Settings','UrlReturDAO','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&returpakketype=%s&pakkestorrelse=%s');
587 torben 2996 UrlReturDAO := InjectURL(UrlReturDAO);
588    
589 torben 2645 UrlReturBoghandler := ReadString('Settings','UrlReturBoghandler','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&returpakketype=%s&pakkestorrelse=%s');
590 torben 2996 UrlReturBoghandler := InjectURL(UrlReturBoghandler);
591    
592 torben 2645 UrlBudlevering := ReadString('Settings','UrlBudlevering','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&leveringstype=%s&pakkestorrelse=%s');
593 torben 2996 UrlBudlevering := InjectURL(UrlBudlevering);
594    
595 torben 2645 UrlManglendeScanninger := ReadString('Settings','UrlManglendeScanninger','http://omdeling.info/webservices/bogpakkekontrol/bogpakkemanglendescanninger.php?sted=%s&type=%s');
596 torben 2996 UrlManglendeScanninger := InjectURL(UrlManglendeScanninger);
597    
598 torben 2645 UrlEKLoverforsel := ReadString('Settings','UrlEKLoverforsel','http://omdeling.info/webservices/bogpakkekontrol/bogpakkertilekl.php?sted=%s');
599 torben 2996 UrlEKLoverforsel := InjectURL(UrlEKLoverforsel);
600 torben 2656
601 torben 2645 UrlEKLoverforselPakkeshop := ReadString('Settings','UrlEKLoverforselPakkeshop','http://omdeling.info/webservices/pakkeshop/pakkertilekl.php?sted=%s');
602 torben 2996 UrlEKLoverforselPakkeshop := InjectURL(UrlEKLoverforselPakkeshop);
603 torben 2656
604 torben 2645 UrlPakkeshoplevering := ReadString('Settings','UrlPakkeshoplevering','http://omdeling.info/webservices/pakkeshop/pakkekontrol.php?sted=%s&stregkode=%s&tjekkode=%s');
605 torben 2996 UrlPakkeshoplevering := InjectURL(UrlPakkeshoplevering);
606    
607 torben 2645 UrlReturPakkeshop := ReadString('Settings','UrlReturPakkeshop','http://omdeling.info/webservices/pakkeshop/returpakkekontrol.php?sted=%s&stregkode=%s');
608 torben 2996 UrlReturPakkeshop := InjectURL(UrlReturPakkeshop);
609    
610 torben 2645 UrlPakkeshopManglendeScanninger := ReadString('Settings','UrlPakkeshopManglendeScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendescanninger.php?sted=%s');
611 torben 2996 UrlPakkeshopManglendeScanninger := InjectURL(UrlPakkeshopManglendeScanninger);
612    
613 torben 2645 UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s');
614 torben 2996 UrlPakkeshopManglendeReturScanninger := InjectURL(UrlPakkeshopManglendeReturScanninger);
615 torben 2668
616 torben 2996 UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');
617     UrlIndleveringsPakke := InjectURL(UrlIndleveringsPakke);
618 torben 2689
619     UrlIndleveringsPakkeManglendeScanninger := ReadString('Settings', 'UrlIndleveringsPakkeManglendeScanninger','http://omdeling.info/webservices/pakkeshop/IndleveringsPakkeManglendeScanninger.php?sted=%s');
620 torben 2996 UrlIndleveringsPakkeManglendeScanninger := InjectURL(UrlIndleveringsPakkeManglendeScanninger);
621    
622 torben 2794 URLOmdirigerTilPakkeshop := ReadString('Settings', 'URLOmdirigerTilPakkeshop','http://omdeling.info/webservices/pakkeshop/PakkeKontrolOmdirigerTilPakkeshop.php?sted=%s&stregkode=%s');
623 torben 2996 URLOmdirigerTilPakkeshop := InjectURL(URLOmdirigerTilPakkeshop);
624 torben 2668
625    
626 torben 2689
627 torben 2645 FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');
628     TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');
629     FarveReturDAO := ReadString('Settings','FarveReturDAO','A9F5A9');
630     TitelReturDAO := ReadString('Settings','TitelReturDAO','Returforsendelse fra DAO');
631     FarveReturBoghandler := ReadString('Settings','FarveReturBoghandler','F2F5A9');
632     TitelReturBoghandler := ReadString('Settings','TitelReturBoghandler','Returforsendelse fra boghandler');
633     FarveBudlevering := ReadString('Settings','FarveBudlevering','2E9AFE');
634     TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');
635     FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');
636     TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');
637 torben 2656
638 torben 2645 FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');
639     TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');
640 torben 2656
641     FarveIndlevering := ReadString('Settings', 'FarveIndlevering', 'E5B2CB');
642     TitelIndlevering := ReadString('Settings', 'TitelIndlevering', 'Indleveringskode');
643    
644    
645 torben 2645 SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');
646     ScanTjekkode := ReadString('Settings','ScanTjekkode','0');
647     ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');
648     Scanningtype := ReadString('Settings','Scanningtype','A');
649     Pakketype := ReadString('Settings','Pakketype','0');
650     TestFunktionen := ReadString('Settings','TestFunktion','0');
651     AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');
652     ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');
653     ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');
654 torben 2656
655 torben 2645 ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');
656 torben 2656
657 torben 2645 PrinterNavn := ReadString('Settings','PrinterNavn','');
658     TjekPrinter := ReadString('Settings','TjekPrinter','1');
659     TjekUrls := ReadString('Settings','TjekUrls','2');
660    
661     if (SkrivLog = '1') then
662     begin
663 torben 2693 logTekst := 'Program start (Version: ' + TUtils.Sto_GetFmtFileVersion('') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now);
664 torben 2645 try
665     SkrivScanningLogFil(logTekst);
666     Uploadlogfil1.Enabled := true;
667 torben 2697 BtnUploadLogfil.Enabled := true;
668 torben 2645 logTekst := 'Programmet er installeret som: '+ParamStr(0);
669     SkrivScanningLogFil(logTekst);
670     // Oprydning i gamle logfiler
671     SletLogfiler('Logs\', ListBox1.Items);
672     except
673     SkrivLog := '0';
674     end;
675     end;
676    
677     if Scanningtype = 'A' then
678     begin
679 torben 3054 menuAutomatiskvalg1.Checked := true;
680 torben 2645 Scanningtype := '1';
681     PanelValgA.Color := clGreen;
682     PanelValgA.Font.Color := clWhite;
683     end;
684    
685    
686 torben 2705
687 torben 2645 if SporgEfterBoghandler = '1' then
688     begin
689 torben 2653 chkSporgEfterKunde.Checked := true;
690 torben 2645 Sprgefterboghandlernummer1.Checked := true;
691     end
692     else
693     begin
694 torben 2653 chkSporgEfterKunde.Checked := false;
695 torben 2645 Sprgefterboghandlernummer1.Checked := false;
696     end;
697    
698     if ScanTjekkode = '1' then
699     begin
700 torben 2654 chkScanTjekkode.Checked := true;
701 torben 2645 Scanogstjekkoden1.Checked := true;
702     end
703     else
704     begin
705 torben 2654 chkScanTjekkode.Checked := false;
706 torben 2645 Scanogstjekkoden1.Checked := false;
707     end;
708    
709     if ScanTjekkodeAutomatik = '1' then
710     begin
711 torben 3055 menuAutomatiskTjekkodeStyring.Checked := true;
712 torben 2654 chkScanTjekkode.Enabled := false;
713 torben 2645 Scanogstjekkoden1.Enabled := false;
714     end;
715    
716     //
717     // specialversioner
718     //
719     // Hvis programmet skal bruges af andre distributører/scanningssteder end DAO
720     // skal vi ikke bruge hele ini-filen.
721     // Vi laver derfor en speciel opsætning her.
722    
723     SpecialVersionSted := ''; // Tom indikerer normal version hvor scanningtype er angivet i ini filen
724     SpecialVersionScanningtype := 'A'; // 'Automatisk valg'
725     // bruges sammen med nedenstående SpecialVersionSted for specialversioner af programmet
726    
727     // Ved compilering af en specialversion skal efterfølgende
728     // 2 felter sættes efter behov (SpecialVersionSted og SpecialVersionScanningtype).
729     // Det er p.t. ikke nødvendigt at ændre andre steder...
730    
731     // *************************** //
732     //SpecialVersionSted := 'BK'; // bruges sammen med ovenstående SpecialVersionScanningtype 'Automatisk valg')
733     //SpecialVersionSted := 'DBK'; // bruges sammen med ovenstående SpecialVersionScanningtype 'Automatisk valg')
734     //SpecialVersionSted := 'NS'; // NS - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)
735     //SpecialVersionSted := 'FD'; // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)
736     // *************************** //
737    
738 torben 2680 {$IfDef STED_BK}
739     SpecialVersionSted := 'BK';
740     {$EndIf}
741 torben 2800 {$IfDef STED_TK}
742     SpecialVersionSted := 'TK';// BK-Trykkompagniet
743     {$EndIf}
744 torben 2680 {$IfDef STED_DBK}
745     SpecialVersionSted := 'DBK';
746     {$EndIf}
747     {$IfDef STED_FD}
748     SpecialVersionSted := 'FD';
749     {$EndIf}
750     {$IfDef STED_NS}
751     SpecialVersionSted := 'NS';
752     {$EndIf}
753    
754 torben 2645 //SpecialVersionSted := '01'; // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
755     //SpecialVersionSted := '02'; // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)
756     //SpecialVersionSted := '03'; // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
757     //SpecialVersionSted := '04'; // DBK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted DBK)
758    
759     //SpecialVersionScanningtype := '1'; // NAT X-PRESS (BRUGES IKKE)
760     //SpecialVersionScanningtype := '2'; // Retur fra DAO (BRUGES IKKE)
761     //SpecialVersionScanningtype := '3'; // Retur fra Kunde (BRUGES IKKE)
762     //SpecialVersionScanningtype := '4'; // DIREKTE
763     //SpecialVersionScanningtype := '5'; // PAKKESHOP (BRUGES IKKE)
764     //SpecialVersionScanningtype := '6'; // Retur fra pakkeshop (BRUGES IKKE)
765    
766     // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)
767     // ændrer vi Sted og Scanningtype her:
768    
769     if SpecialVersionSted = 'NS' then
770     begin
771 torben 3046 //SpecialVersionSted := '01'; // Fra før NS overtog scanning løssalg
772     //SpecialVersionScanningtype := '4';
773    
774     //FarveNormal := 'A9F5A9'; // her kan vi evt. overrule ini fil
775     Sted := SpecialVersionSted;
776     // her skal vi også disable de knapper BK ikke kan bruge
777     PanelValg2.Enabled := false;
778     PanelValg2.Font.Color := clInactiveCaption;
779     PanelValg3.Enabled := false;
780     PanelValg3.Font.Color := clInactiveCaption;
781     //PanelValg6.Enabled := false;
782     //PanelValg6.Font.Color := clInactiveCaption;
783    
784     // her skal vi også disable de menupunkter FD ikke kan bruge
785 torben 3054 menuNatxpressReturDAO1.Enabled := false;
786     menuNatxpressReturfraKunde1.Enabled := false;
787 torben 3046
788     //Returpakkerfrapakkeshop1.Enabled := false;
789 torben 2645 end;
790 torben 2996
791 torben 2645 if SpecialVersionSted = 'FD' then
792     begin
793 torben 2996 //SpecialVersionSted := '03'; //fra før at FD overtog scanning
794     //SpecialVersionScanningtype := '4';
795    
796    
797     //FarveNormal := 'A9F5A9'; // her kan vi evt. overrule ini fil
798     Sted := SpecialVersionSted;
799     // her skal vi også disable de knapper BK ikke kan bruge
800     PanelValg2.Enabled := false;
801     PanelValg2.Font.Color := clInactiveCaption;
802     PanelValg3.Enabled := false;
803     PanelValg3.Font.Color := clInactiveCaption;
804     //PanelValg6.Enabled := false;
805     //PanelValg6.Font.Color := clInactiveCaption;
806    
807     // her skal vi også disable de menupunkter FD ikke kan bruge
808 torben 3054 menuNatxpressReturDAO1.Enabled := false;
809     menuNatxpressReturfraKunde1.Enabled := false;
810 torben 2996
811     //Returpakkerfrapakkeshop1.Enabled := false;
812    
813 torben 2645 end;
814    
815 torben 2800 if (SpecialVersionSted = 'BK') OR (SpecialVersionSted = 'TK') then
816 torben 2645 begin
817     //FarveNormal := 'A9F5A9'; // her kan vi evt. overrule ini fil
818     Sted := SpecialVersionSted;
819     // her skal vi også disable de knapper BK ikke kan bruge
820     PanelValg2.Enabled := false;
821     PanelValg2.Font.Color := clInactiveCaption;
822     PanelValg3.Enabled := false;
823     PanelValg3.Font.Color := clInactiveCaption;
824 torben 2756 //PanelValg6.Enabled := false;
825     //PanelValg6.Font.Color := clInactiveCaption;
826    
827 torben 2645 // her skal vi også disable de menupunkter BK ikke kan bruge
828 torben 3054 menuNatxpressReturDAO1.Enabled := false;
829     menuNatxpressReturfraKunde1.Enabled := false;
830 torben 2756
831     //Returpakkerfrapakkeshop1.Enabled := false;
832    
833 torben 2645 if SpecialVersionScanningtype = 'A' then
834     begin
835     Scanningtype := '1';
836     end
837     else
838     begin
839     Scanningtype := SpecialVersionScanningtype;
840     end;
841     end;
842    
843     if SpecialVersionSted = 'DBK' then
844     begin
845     Sted := SpecialVersionSted;
846     end;
847    
848     if (SpecialVersionSted = '01')
849     or (SpecialVersionSted = '02')
850     or (SpecialVersionSted = '03')
851     or (SpecialVersionSted = '04') then
852     begin
853     BladhusSted := StrToInt(SpecialVersionSted);
854     // her skal vi også disable de knapper 01, 02, 03 og 04 (NS, BK, FD og DBK) ikke kan bruge
855     PanelValg1.Enabled := false;
856     PanelValg1.Font.Color := clInactiveCaption;
857     PanelValg2.Enabled := false;
858     PanelValg2.Font.Color := clInactiveCaption;
859     PanelValg3.Enabled := false;
860     PanelValg3.Font.Color := clInactiveCaption;
861     PanelValg4.Enabled := false;
862     PanelValg4.Font.Color := clInactiveCaption;
863     PanelValg5.Enabled := false;
864     PanelValg5.Font.Color := clInactiveCaption;
865     PanelValg6.Enabled := false;
866     PanelValg6.Font.Color := clInactiveCaption;
867 torben 2668 PanelValg7.Enabled := false;
868     PanelValg7.Font.Color := clInactiveCaption;
869 torben 2645 // her skal vi også disable de menupunkter Bladhusene (01, 02, 03 og 04) ikke kan bruge
870 torben 2656
871 torben 3054 menuAutomatiskvalg1.Enabled := false;
872 torben 2656
873 torben 3054 menuNatXpress1.Enabled := false;
874     menuNatxpressReturDAO1.Enabled := false;
875     menuNatxpressReturfraKunde1.Enabled := false;
876     menuDaoDirekte1.Enabled := false;
877     menuPakkeshop1.Enabled := false;
878     menuPakkeshopRetur1.Enabled := false;
879 torben 2645 if SpecialVersionScanningtype = 'A' then
880     begin
881     Scanningtype := '4';
882 torben 3054 menuDaoDirekte1.Enabled := true;
883 torben 2645 PanelValg4.Font.Color := clWindowText;
884     PanelValg4.Enabled := true;
885     end
886     else
887     begin
888     Scanningtype := SpecialVersionScanningtype;
889     PanelValgA.Enabled := false;
890     PanelValgA.Font.Color := clInactiveCaption;
891 torben 3054 menuAutomatiskvalg1.Checked := false;
892 torben 2645 PanelValgA.Color := clBtnFace;
893     if Scanningtype = '1' then
894     begin
895 torben 3054 menuNatXpress1.Enabled := true;
896 torben 2645 PanelValg1.Enabled := true;
897     PanelValg1.Font.Color := clWindowText;
898     end;
899     if Scanningtype = '2' then
900     begin
901 torben 3054 menuNatxpressReturDAO1.Enabled := true;
902 torben 2645 PanelValg2.Enabled := true;
903     PanelValg2.Font.Color := clWindowText;
904     end;
905     if Scanningtype = '3' then
906     begin
907 torben 3054 menuNatxpressReturfraKunde1.Enabled := true;
908 torben 2645 PanelValg3.Enabled := true;
909     PanelValg3.Font.Color := clWindowText;
910     end;
911     if Scanningtype = '4' then
912     begin
913 torben 3054 menuDaoDirekte1.Enabled := true;
914 torben 2645 PanelValg4.Enabled := true;
915     PanelValg4.Font.Color := clWindowText;
916     end;
917     if Scanningtype = '5' then
918     begin
919 torben 3054 menuPakkeshop1.Enabled := true;
920 torben 2645 PanelValg5.Enabled := true;
921     PanelValg5.Font.Color := clWindowText;
922     end;
923     if Scanningtype = '6' then
924     begin
925 torben 3054 menuPakkeshopRetur1.Enabled := true;
926 torben 2645 PanelValg6.Enabled := true;
927     PanelValg6.Font.Color := clWindowText;
928     end;
929     end;
930     Sted := SysUtils.Format('%.*d', [2, BladhusSted]);
931     //FarveBudlevering := '2E9AFE'; // her kan vi evt. overrule ini fil
932     end;
933    
934     SetLength(BladhusStedNavn, 5);
935     SetLength(BladhusStedKode, 5);
936     BladhusStedNavn[00] := 'bruges ikke';
937     BladhusStedKode[00] := '';
938     BladhusStedNavn[01] := 'Nordjyske';
939     BladhusStedKode[01] := 'NS';
940     BladhusStedNavn[02] := 'Bladkompagniet';
941     BladhusStedKode[02] := 'BK';
942     BladhusStedNavn[03] := 'Fyens Distribution';
943     BladhusStedKode[03] := 'FD';
944     BladhusStedNavn[04] := 'DBK Køge';
945     BladhusStedKode[04] := 'DBK';
946    
947     if (Trim(Sted) = '')
948     or (Length(Sted) > 3) then
949     begin
950     ShowMessage('Scanningsted "' + Sted + '" er ukendt - programmet afbrydes...');
951     Application.Terminate;
952     end;
953    
954     if TjekUrls = '1' then // Tjekker urls
955     begin
956     TjekkerUrls();
957     if TjekUrls = '-' then // så var der fejl i url - så vi stopper her
958     begin
959     PlaySound(PWideChar(AlarmLyd));
960     MainForm.Color := clRed;
961     RutenummerST.Caption := '';
962     BoghandlerNavnST.Caption := 'Fejl i urls';
963     KommentarST.Caption := 'Se log vinduet';
964 torben 2668 btnNulstil.Visible := true;
965 torben 2645 exit;
966     end;
967     end
968     else
969     begin // Tjekker ikke urls
970     logTekst := 'Tjekker IKKE urls i denne afvikling.';
971     SkrivScanningLogFil(logTekst);
972     end;
973    
974     if Scanningtype = '6' then
975     begin
976     InitReturFraPakkeshop();
977     end
978     else if Scanningtype = '5' then
979     begin
980     InitPakkeshoplevering();
981     end
982     else if Scanningtype = '4' then
983     begin
984     InitDirektelevering();
985     end
986     else if Scanningtype = '3' then
987     begin
988     InitReturFraKunde();
989     end
990     else if Scanningtype = '2' then
991     begin
992     InitReturFraDao();
993     end
994     else if (Scanningtype = '1') then
995     begin
996     InitNatxpressLevering();
997     end
998     else
999     begin
1000     ShowMessage('Scanningtype er af ukendt type - programmet afbrydes...');
1001     Application.Terminate;
1002     end;
1003    
1004     if Pakketype = '1' then
1005     begin
1006 torben 3055 menuStorePakker.Checked := true;
1007 torben 2655 radioStorPakke.Checked := true;
1008 torben 2645 end
1009     else
1010     begin
1011 torben 3055 menuSmaaPakker.Checked := true;
1012 torben 2655 radioLillePakke.Checked := true;
1013 torben 2645 end;
1014    
1015     if TestFunktionen = '1' then
1016     begin
1017     Testforbindelsen1.Visible := true;
1018     Testprinter1.Visible := true;
1019     Testlyd1.Visible := true;
1020     Testlyd2.Visible := true;
1021     end
1022     else if TestFunktionen = '2' then
1023     begin
1024     Testforbindelsen1.Enabled := false;
1025     Testprinter1.Enabled := false;
1026     Testlyd1.Enabled := false;
1027     Testlyd2.Enabled := false;
1028     end
1029     else
1030     begin
1031     Testforbindelsen1.Visible := false;
1032     Testprinter1.Visible := false;
1033     Testlyd1.Visible := false;
1034     Testlyd2.Visible := false;
1035     end;
1036    
1037     if not FileExists(AlarmLyd) then
1038     begin
1039     AlarmLyd := '';
1040     end;
1041    
1042     if not FileExists(ScannetOkLyd) then
1043     begin
1044     ScannetOkLyd := '';
1045     end;
1046    
1047     if not FileExists(ScannetOkStorLyd) then
1048     begin
1049     ScannetOkStorLyd := '';
1050     end;
1051    
1052 torben 2656
1053 torben 2645 if not FileExists(ScannetOkTilTjekkodeLyd) then
1054     begin
1055     ScannetOkTilTjekkodeLyd := '';
1056     end;
1057    
1058 torben 2656
1059 torben 2645
1060    
1061 torben 2705 LabelPrint := TLabelPrint.Create( self, Config, PrinterNavn );
1062     LabelPrint.CheckPrintQue('Opstart', PrinterNavn);
1063    
1064 torben 2645 finally
1065     Free;
1066     end;
1067    
1068     // UBD skal p.t. ikke have adgang til flg. funktioner
1069     if ( (Sted = '1') or (Sted = '2') or (Sted = '3') or (Sted = '4') ) then
1070     begin
1071 torben 3054 menuNatxpressReturDAO1.Visible := false;
1072     menuNatxpressReturfraKunde1.Visible := false;
1073     menuDaoDirekte1.Visible := false;
1074 torben 3055 menuStorePakker.Visible := false;
1075     menuSmaaPakker.Visible := false;
1076 torben 2645 Testprinter1.Visible := false;
1077 torben 3054 menuPakkeshop1.Visible := false;
1078     menuPakkeshopRetur1.Visible := false;
1079 torben 2645 end;
1080    
1081     if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
1082     begin
1083     InitBladhus();
1084     end;
1085    
1086 torben 2656
1087 torben 2645 // Opbygger PanelManglendePakker information
1088     gemScanningtype := Scanningtype;
1089    
1090     if PanelValg6.Enabled then
1091     begin
1092     Scanningtype := '6';
1093     IndlesManglendeScanninger();
1094     end;
1095    
1096     if PanelValg5.Enabled then
1097     begin
1098     Scanningtype := '5';
1099     IndlesManglendeScanninger();
1100     end;
1101    
1102     if PanelValg4.Enabled then
1103     begin
1104     Scanningtype := '4';
1105     IndlesManglendeScanninger();
1106     end;
1107    
1108     if PanelValg3.Enabled then
1109     begin
1110     Scanningtype := '3';
1111     IndlesManglendeScanninger();
1112     end;
1113    
1114     if PanelValg2.Enabled then
1115     begin
1116     Scanningtype := '2';
1117     IndlesManglendeScanninger();
1118     end;
1119    
1120     if PanelValg1.Enabled then
1121     begin
1122     Scanningtype := '1';
1123     IndlesManglendeScanninger();
1124     end;
1125    
1126     Scanningtype := gemScanningtype;
1127    
1128     SendInfoTilServer(Sted, Scanningtype, 'Begin', '');
1129 torben 2693 SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', TUtils.Sto_GetFmtFileVersion(''));
1130 torben 2645
1131     end;
1132    
1133     procedure TMainForm.FormDestroy(Sender: TObject);
1134     begin
1135     logTekst := 'Program slut';
1136     SkrivScanningLogFil(logTekst);
1137     SendInfoTilServer(Sted, Scanningtype, 'End', '');
1138     end;
1139    
1140     procedure TMainForm.FormKeyPress(Sender: TObject; var Key: Char);
1141     var
1142     RuteNummer : String;
1143     Kommentar : String;
1144     BoghandlerNavn : String;
1145     Koreliste : String;
1146     PrintNyLabel : Boolean;
1147     pakkeErScannet : Integer;
1148     pakkeForkertSted : Integer;
1149     tjekkodeMangler : Integer;
1150     SmsKode : String;
1151     DBKbane : String;
1152     Leveringssted : String;
1153     i : Integer;
1154     ClipboardData : String;
1155     numberString : string;
1156     float : Extended;
1157     errorPos : Integer;
1158     GemStregkode : String;
1159     WebSvar : String;
1160     URLStr : String;
1161     Pakketype : String;
1162     Pakkescanningtype : String;
1163    
1164     begin
1165    
1166     if Key = #22 then // ctrl-v
1167     begin
1168     ClipboardData := Clipboard.AsText;
1169     numberString := ClipboardData;
1170     Val(numberString, float, errorPos);
1171 torben 2656
1172     // if (ClipboardData <> '') and (errorPos = 0) then
1173 torben 2645 if (ClipboardData <> '') and (errorPos = 0)
1174     or (NumberString = 'Nulstil')
1175     or (NumberString = 'Indtast kundenummer')
1176     or (NumberString = 'Stor pakke')
1177     or (NumberString = 'Lille pakke')
1178     or (NumberString = 'Scan tjekkode')
1179     or (NumberString = 'Automatisk valg')
1180     or (NumberString = 'DAO NAT X-PRESS')
1181     or (NumberString = 'DAO NAT X+PRESS') // 20150323: pga stregkode programmet bruger et forkert karaktersæt
1182     or (NumberString = 'Retur fra DAO')
1183     or (NumberString = 'Retur fra kunde')
1184     or (NumberString = 'DAO DIREKTE')
1185     or (NumberString = 'DAO PAKKESHOP')
1186 torben 2794 or (NumberString = 'DAO PAKKESHOP')
1187     or (LowerCase(NumberString) = 'for stor hjemmelevering' )
1188 torben 2800 or (LowerCase(NumberString) = 'for stor daodirekte' )
1189 torben 2645 or (NumberString = 'Retur fra pakkeshop') then
1190 torben 2656
1191 torben 2645 begin
1192     Stregkode := Stregkode + ClipboardData;
1193     StregkodeST.Caption := StregKode;
1194     end
1195     else
1196     begin
1197     ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift');
1198     end;
1199 torben 2794 end; // Slut ctrl-v
1200 torben 2645
1201     if Key = #13 then // Enter
1202     begin
1203 torben 2977
1204     // Sikre at den er trimmet inden vi går videre - DBK kan finde på at encode et space i enden af deres barcodes
1205     Stregkode := Trim(Stregkode);
1206    
1207     if (Length(Stregkode) = 0) then
1208 torben 2645 begin
1209 torben 2659 VisAlarmSkaerm( 'Der skal scannes en stregkode...' );
1210    
1211 torben 2645 exit;
1212     end;
1213    
1214     if StregKode = 'Nulstil' then
1215     begin
1216 torben 2668 btnNulstil.Click();
1217 torben 2645 exit;
1218     end;
1219    
1220 torben 2668 if btnNulstil.Visible then
1221 torben 2645 begin
1222 torben 2659 VisAlarmSkaerm( 'HUSK at klikke Nulstil før ny scanning...' );
1223 torben 2656
1224 torben 2645 exit;
1225     end;
1226    
1227     if StregKode = 'Lille pakke' then
1228     begin
1229 torben 2655 if radioLillePakke.Enabled = true then
1230 torben 2645 begin
1231     InitLillePakke();
1232     end
1233     else
1234     begin
1235 torben 2659 VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1236 torben 2645 end;
1237     Stregkode := '';
1238     StregkodeST.Caption := StregKode;
1239     exit;
1240     end;
1241    
1242     if StregKode = 'Stor pakke' then
1243     begin
1244 torben 2655 if radioStorPakke.Enabled = true then
1245 torben 2645 begin
1246     InitStorPakke();
1247     end
1248     else
1249     begin
1250 torben 2659 VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1251 torben 2645 end;
1252     Stregkode := '';
1253     StregkodeST.Caption := StregKode;
1254     exit;
1255     end;
1256    
1257 torben 2800 if (LowerCase(StregKode) = 'for stor hjemmelevering') OR (LowerCase(StregKode) = 'for stor daodirekte') then
1258 torben 2794 begin
1259     if chkForstorTilDirekte.Enabled then
1260     begin
1261     chkForstorTilDirekte.Checked := true;
1262     end
1263     else
1264     begin
1265     VisAlarmSkaerm( Stregkode + ' kan ikke vælges på denne scannings tilstand' );
1266     end;
1267     Stregkode := '';
1268     StregkodeST.Caption := StregKode;
1269     exit;
1270     end;
1271    
1272    
1273 torben 2645 if StregKode = 'Indtast kundenummer' then
1274     begin
1275 torben 2653 if chkSporgEfterKunde.Enabled = true then
1276 torben 2645 begin
1277 torben 2653 if (chkSporgEfterKunde.State = cbChecked) then
1278 torben 2645 begin
1279 torben 2653 chkSporgEfterKunde.State := cbUnchecked;
1280 torben 2645 end
1281     else
1282     begin
1283 torben 2653 chkSporgEfterKunde.State := cbChecked;
1284 torben 2645 end;
1285     end
1286     else
1287     begin
1288 torben 2659 VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1289 torben 2645 end;
1290     Stregkode := '';
1291     StregkodeST.Caption := StregKode;
1292     exit;
1293     end;
1294    
1295     if (Stregkode = 'Scan tjekkode') or (PakkeshopStregkode = 'Scan tjekkode') or (BoghandlerStregkode = 'Scan tjekkode') then
1296     begin
1297 torben 2654 if chkScanTjekkode.Enabled = true then
1298 torben 2645 begin
1299 torben 2654 if (chkScanTjekkode.State = cbChecked) then
1300 torben 2645 begin
1301 torben 2654 chkScanTjekkode.State := cbUnchecked;
1302 torben 2645 end
1303     else
1304     begin
1305 torben 2654 chkScanTjekkode.State := cbChecked;
1306 torben 2645 end;
1307     end
1308     else
1309     begin
1310 torben 2659 VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1311 torben 2645 end;
1312     Stregkode := '';
1313     StregkodeST.Caption := StregKode;
1314     exit;
1315     end;
1316    
1317     if StregKode = 'Automatisk valg' then
1318     begin
1319     if (PanelValgA.Enabled = true) then
1320     begin
1321     PanelValgAClick(PanelValgA);
1322     end
1323     else
1324     begin
1325 torben 2659 VisAlarmSkaerm(Stregkode + ' kan ikke vælges på dette scanningsted');
1326 torben 2645 end;
1327     Stregkode := '';
1328     StregkodeST.Caption := StregKode;
1329     exit;
1330     end;
1331    
1332 torben 2656
1333 torben 2645 if (StregKode = 'DAO NAT X-PRESS' ) or (StregKode = 'DAO NAT X+PRESS') then
1334     begin
1335     if (PanelValg1.Enabled = true) then
1336     begin
1337     PanelValg1Click(PanelValg1);
1338     end
1339     else
1340     begin
1341 torben 2659 VisAlarmSkaerm(Stregkode + ' kan ikke vælges på dette scanningsted');
1342 torben 2645 end;
1343     Stregkode := '';
1344     StregkodeST.Caption := StregKode;
1345     exit;
1346     end;
1347    
1348     if StregKode = 'Retur fra DAO' then
1349     begin
1350     if (PanelValg2.Enabled = true) then
1351     begin
1352     PanelValg2Click(PanelValg2);
1353     end
1354     else
1355     begin
1356 torben 2659 VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1357 torben 2645 end;
1358     Stregkode := '';
1359     StregkodeST.Caption := StregKode;
1360     exit;
1361     end;
1362    
1363     if StregKode = 'Retur fra kunde' then
1364     begin
1365     if (PanelValg3.Enabled = true) then
1366     begin
1367     PanelValg3Click(PanelValg3);
1368     end
1369     else
1370     begin
1371 torben 2659 VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1372 torben 2645 end;
1373     Stregkode := '';
1374     StregkodeST.Caption := StregKode;
1375     exit;
1376     end;
1377    
1378     if StregKode = 'DAO DIREKTE' then
1379     begin
1380     if (PanelValg4.Enabled = true) then
1381     begin
1382     PanelValg4Click(PanelValg4);
1383     end
1384     else
1385     begin
1386 torben 2659 VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1387 torben 2645 end;
1388     Stregkode := '';
1389     StregkodeST.Caption := StregKode;
1390     exit;
1391     end;
1392    
1393     if StregKode = 'DAO PAKKESHOP' then
1394     begin
1395     if (PanelValg5.Enabled = true) then
1396     begin
1397     PanelValg5Click(PanelValg5);
1398     end
1399     else
1400     begin
1401 torben 2659 VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1402 torben 2645 end;
1403     Stregkode := '';
1404     StregkodeST.Caption := StregKode;
1405     exit;
1406     end;
1407    
1408     if StregKode = 'Retur fra pakkeshop' then
1409     begin
1410     if (PanelValg6.Enabled = true) then
1411     begin
1412     PanelValg6Click(PanelValg6);
1413     end
1414     else
1415     begin
1416 torben 2659 VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1417 torben 2645 end;
1418     Stregkode := '';
1419     StregkodeST.Caption := StregKode;
1420     exit;
1421     end;
1422    
1423 torben 2656
1424 torben 2645 if (Length(Stregkode) > 8) then
1425     begin
1426     // Her skal vi så forespørge pakketype på serveren udfra stregkode feltet
1427     URLStr := Format(UrlFindPakketype,[Stregkode]);
1428     try
1429     //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
1430     WebSvar := IdHTTP1.Get(URLStr);
1431     //IdHTTP1.Disconnect();
1432     except on e:EIdConnClosedGracefully do
1433     begin
1434     // Her skal vi ikke gøre noget - men vi skal forespørge igen
1435     logTekst := 'EIdConnClosedGracefully i FindPakketype';
1436     SkrivScanningLogFil(logTekst);
1437     try
1438     //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
1439     WebSvar := IdHTTP1.Get(URLStr);
1440     except on e:EIdConnClosedGracefully do
1441     begin
1442     logTekst := 'EIdConnClosedGracefully i FindPakketype igen';
1443     SkrivScanningLogFil(logTekst);
1444     WebSvar := IdHTTP1.Get(URLStr);
1445     end;
1446     end;
1447     end;
1448     end;
1449     XMLDocument1.LoadFromXML(WebSvar);
1450     try
1451     Pakketype := XMLDocument1.ChildNodes.FindNode('BogpakkePakketype').ChildNodes.FindNode('PakkeType').Text;
1452     except on e:exception do
1453     Pakketype := 'Ukendt';
1454     end;
1455     try
1456     Pakkescanningtype := XMLDocument1.ChildNodes.FindNode('BogpakkePakketype').ChildNodes.FindNode('PakkeScanningtype').Text;
1457     except on e:exception do
1458     Pakketype := 'Ukendt';
1459     end;
1460     if Pakketype = 'Ukendt' then
1461     begin
1462     Pakkescanningtype := Scanningtype;
1463     end;
1464     end
1465     else
1466     begin
1467     Pakkescanningtype := Scanningtype;
1468     end;
1469    
1470 torben 2780 if ( ( (Pakkescanningtype = '1') and (PanelValg1.Enabled = false) )
1471     or ( (Pakkescanningtype = '2') and (PanelValg2.Enabled = false) )
1472     or ( (Pakkescanningtype = '3') and (PanelValg3.Enabled = false) )
1473     or ( (Pakkescanningtype = '4') and (PanelValg4.Enabled = false) )
1474     or ( (Pakkescanningtype = '5') and (PanelValg5.Enabled = false) )
1475     or ( (Pakkescanningtype = '6') and (PanelValg6.Enabled = false) ) ) then
1476 torben 2645 begin // Her skal komme en alarm og rød skærm
1477 torben 2659 VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1478 torben 2656
1479 torben 2645 exit;
1480     end;
1481    
1482 torben 3054 if (menuAutomatiskvalg1.Checked and (Length(Stregkode) > 8) ) then
1483 torben 2645 begin
1484     GemStregkode := Stregkode;
1485     if Pakketype = 'NatXpress' then
1486     begin
1487     if Scanningtype <> '1' then
1488     begin
1489     Scanningtype := '1';
1490     InitNatxpresslevering();
1491     end;
1492     end
1493     // Retur kan ikke scannes med 'Automatisk valg'
1494 torben 2656
1495 torben 2645 else if Pakketype = 'Direkte' then
1496     begin
1497     if Scanningtype <> '4' then
1498     begin
1499     Scanningtype := '4';
1500     InitDirektelevering();
1501     end;
1502     end
1503     else if Pakketype = 'Pakkeshop' then
1504     begin
1505     if Scanningtype <> '5' then
1506     begin
1507     Scanningtype := '5';
1508     InitPakkeshoplevering();
1509     end;
1510     end
1511 torben 3039 else if Pakketype = 'PakkeshopRetur' then
1512     begin
1513     if Scanningtype <> '6' then
1514     begin
1515     VisAlarmSkaerm( Stregkode + ' Pakkeshop retur,'#13#10' kan ikke bruges med automatisk valg' );
1516 torben 2656
1517 torben 3039 exit;
1518     end;
1519     end
1520    
1521    
1522 torben 2645 else
1523 torben 2659 begin
1524     // Her skal komme en alarm og rød skærm
1525 torben 2780 //VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1526     VisAlarmSkaerm( Stregkode + ' kan ikke bruges med automatisk valg' );
1527 torben 2656
1528 torben 2645 exit;
1529     end;
1530     Stregkode := GemStregkode;
1531     end
1532 torben 3054 else if menuAutomatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then
1533 torben 2645 begin
1534 torben 2659 VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );
1535 torben 2656
1536 torben 2645 exit;
1537     end;
1538    
1539 torben 3054 if not menuAutomatiskvalg1.Checked then
1540 torben 2645 begin
1541     if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then
1542     begin
1543 torben 2656
1544 torben 2659 VisAlarmSkaerm( 'Pakke findes som pakketype: ' + Pakketype );
1545 torben 2656
1546 torben 2645 exit;
1547     end;
1548     end;
1549    
1550    
1551    
1552 torben 3055 if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and menuAutomatiskTjekkodeStyring.Checked then
1553 torben 2645 begin
1554 torben 2654 chkScanTjekkode.Checked := false;
1555 torben 2645 for i := 0 to length(stregkoderMedTjekkodeArray)-1 do
1556     begin
1557     if (Stregkode=stregkoderMedTjekkodeArray[i]) then
1558     begin
1559 torben 2654 chkScanTjekkode.Checked := true;
1560 torben 2645 Scanogstjekkoden1.Checked := true;
1561     end;
1562     end;
1563     end;
1564    
1565 torben 3054 if menuNatXpress1.Checked and not Scanogstjekkoden1.Checked then
1566 torben 2645 begin
1567     // Når vi ikke kræver tjekkode er alt ok her
1568     BoghandlerStregkode := Stregkode;
1569     BoghandlerTjekkode := '';
1570     PakkeshopText1.Caption := 'Stregkode';
1571 torben 2668 btnNulstil.Visible := false;
1572 torben 2645 Stregkode := '';
1573     InitScreen();
1574     end
1575 torben 3054 else if (menuPakkeshop1.Checked or menuNatXpress1.Checked) and not Scanogstjekkoden1.Checked then
1576 torben 2645 begin
1577     // Når vi ikke kræver tjekkode er alt ok her
1578     PakkeshopStregkode := Stregkode;
1579     PakkeshopTjekkode := '-1';
1580     BoghandlerStregkode := Stregkode;
1581     BoghandlerTjekkode := '-1';
1582     PakkeshopText1.Caption := 'Stregkode';
1583 torben 2668 btnNulstil.Visible := false;
1584 torben 2645 Stregkode := '';
1585     InitScreen();
1586     end
1587 torben 3054 else if menuPakkeshop1.Checked or menuNatXpress1.Checked then
1588 torben 2645 if PakkeshopText1.Caption = 'Stregkode' then
1589     begin
1590     if length(Stregkode) > 5 then
1591     begin
1592     PakkeshopStregkode := Stregkode;
1593     BoghandlerStregkode := Stregkode;
1594     PakkeshopText1.Caption := 'Tjekkode';
1595 torben 2659
1596 torben 2645 PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));
1597 torben 2659
1598 torben 2645 end
1599     else
1600     begin
1601 torben 2659 VisAlarmSkaerm( 'Du skal scanne en stregkode' );
1602 torben 2645 end;
1603     Stregkode := '';
1604     InitScreen();
1605     end
1606     else
1607     begin
1608     if length(Stregkode) = 5 then
1609     begin
1610     PakkeshopTjekkode := Stregkode;
1611     BoghandlerTjekkode := Stregkode;
1612     PakkeshopText1.Caption := 'Stregkode';
1613 torben 3054 if (menuPakkeshop1.Checked) then
1614 torben 2682 MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering);
1615 torben 3054 if (menuNatXpress1.Checked) then
1616 torben 2682 MainForm.Color := TUtils.HexToTColor(FarveNormal);
1617 torben 2668 btnNulstil.Visible := false;
1618 torben 2645 end
1619     else
1620     begin
1621 torben 3054 if (menuPakkeshop1.Checked) then
1622 torben 2659 VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);
1623 torben 3054 if (menuNatXpress1.Checked) then
1624 torben 2659 VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);
1625    
1626 torben 2645 StregKode := '';
1627     StregkodeST.Caption := StregKode;
1628 torben 2660
1629 torben 2645 exit;
1630     end;
1631     Stregkode := '';
1632     InitScreen();
1633     end;
1634    
1635 torben 3054 if not menuPakkeshop1.Checked and not menuNatXpress1.Checked or (menuPakkeshop1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '')) or (menuNatXpress1.Checked and (Scanogstjekkoden1.Checked and (BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked)) then
1636 torben 2645 begin
1637 torben 2701
1638 torben 3054 if menuPakkeshop1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then
1639 torben 2645 StregKode := PakkeshopStregkode;
1640 torben 3054 if menuNatXpress1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then
1641 torben 2645 StregKode := BoghandlerStregkode;
1642     StregkodeST.Caption := StregKode;
1643     try
1644     InitScreen();
1645     HentPakkeInfoFraServer(Sted, StregKode, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, '');
1646     UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
1647     // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her
1648     if Rutenummer = 'sql fejl' then
1649     begin // Her skal komme en alarm og rød skærm
1650 torben 2662 VisAlarmSkaerm( 'SQL fejl: ' + Kommentar );
1651    
1652 torben 2645 exit;
1653     end;
1654 torben 3054 if (menuNatXpress1.Checked or menuDaoDirekte1.Checked or menuPakkeshop1.Checked) then
1655 torben 2645 begin
1656     PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel);
1657     pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
1658     if pakkeErScannet = 0 then
1659     begin
1660     pakkeErScannet := pos('PAKKE ER SCANNET', Kommentar);
1661     end;
1662     if pakkeErScannet = 0 then
1663     begin
1664     pakkeErScannet := pos('PAKKE ER SCANNET', BoghandlerNavn);
1665     end;
1666     pakkeForkertSted := pos('burde være hos', Kommentar);
1667     tjekkodemangler := pos('Tjekkode mangler', Kommentar);
1668     if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then
1669     begin
1670     PlaySound(PWideChar(AlarmLyd));
1671 torben 2668 btnNulstil.Visible := true;
1672 torben 2645 MainForm.Color := clRed;
1673     end;
1674     end;
1675 torben 3054 if ( menuNatXpress1.Checked and (pakkeErScannet = 0) and (pakkeForkertSted = 0) and (tjekkodemangler = 0) and (RuteNummerST.Caption <> 'Ukendt') ) or (Copy(Kommentar,1,2) = 'Ok') then
1676 torben 2645 begin
1677 torben 2682 MainForm.Color := TUtils.HexToTColor(Farve);
1678 torben 3055 if menuStorePakker.Checked then
1679 torben 2645 begin
1680     PlaySound(PWideChar(ScannetOkStorLyd));
1681     end
1682     else
1683     begin
1684     PlaySound(PWideChar(ScannetOkLyd));
1685     end;
1686 torben 2668 btnNulstil.Visible := false;
1687 torben 2645 end
1688 torben 3054 else if (menuNatxpressReturDAO1.Checked or menuNatxpressReturfraKunde1.Checked) then
1689 torben 2645 begin
1690 torben 2682 MainForm.Color := TUtils.HexToTColor(Farve);
1691 torben 3055 if menuStorePakker.Checked then
1692 torben 2645 begin
1693     PlaySound(PWideChar(ScannetOkStorLyd));
1694     end
1695     else
1696     begin
1697     PlaySound(PWideChar(ScannetOkLyd));
1698     end;
1699 torben 2668 btnNulstil.Visible := false;
1700 torben 2645 end
1701     else if Copy(Kommentar,1,8) = 'OPRETTET' then
1702     begin
1703 torben 2659 VisAlarmSkaerm( 'Pakke ' + PakkeshopStregkode + ' skal gemmes på lager indtil data modtages' );
1704 torben 2645 end
1705     else if Kommentar = StregKode then // budlevering til 'Ukendt tur'
1706     begin
1707     end
1708     else
1709     begin
1710 torben 2662 VisAlarmSkaerm('');
1711 torben 2645 end;
1712 torben 2701
1713 torben 2668 if not btnNulstil.Visible then
1714 torben 2645 begin
1715 torben 2659
1716 torben 3054 If (menuDaoDirekte1.Checked) then
1717 torben 2645 begin
1718 torben 3055 if menuStorePakker.Checked then
1719 torben 2645 begin
1720     PlaySound(PWideChar(ScannetOkStorLyd));
1721     end
1722     else
1723     begin
1724     PlaySound(PWideChar(ScannetOkLyd));
1725     end;
1726     InitLillePakke();
1727     end;
1728     end;
1729 torben 2659
1730 torben 2645 SletStregkodelinieFraListboks2(StregKode);
1731 torben 2659
1732 torben 2645 PakkeshopStregkode := '';
1733     PakkeshopTjekkode := '';
1734     BoghandlerStregkode := '';
1735     BoghandlerTjekkode := '';
1736     finally
1737     Stregkode := '';
1738     end
1739     end
1740     end
1741     else
1742     begin
1743     if (Key <> #22) then
1744     begin
1745     Stregkode := Stregkode + Key;
1746     end;
1747     StregkodeST.Caption := StregKode;
1748     end;
1749    
1750     if Key = #8 then // backspace key
1751     begin
1752     StregKode := LeftStr(StregKode,Length(StregKode)-2);
1753     end;
1754    
1755     if Key = #27 then // esc key
1756     begin
1757     Stregkode := '';
1758     end;
1759    
1760     Key := #0;
1761    
1762 torben 2794
1763    
1764    
1765    
1766    
1767 torben 2656 end; //End of OnKeyPress
1768 torben 2645
1769 torben 2794
1770    
1771 torben 2645 procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
1772     const
1773     crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
1774     var
1775     WebSvar : String;
1776     URLStr : String;
1777     begin
1778     if UrlSendPrograminfo <> '' then
1779     begin
1780     URLStr := Format(UrlSendPrograminfo,[ExtractFileName(ParamStr(0)), Sted, Scanningtype, Infotype, Info]);
1781     try
1782     //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
1783     WebSvar := IdHTTP1.Get(URLStr);
1784     //IdHTTP1.Disconnect();
1785     except on e:exception do
1786     begin
1787     // ShowMessage(e.Message);
1788     // raise exception.CreateFmt('Fejl i forbindelse til server: %s',[e.Message]);
1789     logTekst := 'Der er opstået en fejl i kommunikationen med serveren.' + crlf + crlf + 'Programmet afsluttes... ' + crlf + crlf + 'Program rutine: SendTilServeren' + crlf + 'Fejl: ' + e.Message;
1790     ShowMessage(logTekst);
1791     SkrivScanningLogFil(logTekst);
1792     // Vi nulstiller lige url feltet så rutinen ikke kaldes igen i forbindelse med lukning af programmet
1793     UrlSendPrograminfo := '';
1794     Application.Terminate;
1795     end;
1796     end;
1797     if (WebSvar <> '') and (pos('Error', WebSvar) > 0) then
1798     begin
1799     ShowMessage(WebSvar);
1800     end;
1801     end;
1802     end;
1803    
1804     procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);
1805     var
1806     i : Integer;
1807     wrkAntal : String;
1808     wrkAntalIdag, wrkAntalSenere : Integer;
1809    
1810 torben 2656
1811 torben 2645 begin
1812 torben 3054 if menuDaoDirekte1.Checked or menuPakkeshop1.Checked or menuPakkeshopRetur1.Checked or menuNatXpress1.Checked or menuIndlevering.Checked then
1813 torben 2645 begin
1814     for i := ListBox2.items.count-1 downto 0 do
1815     if pos(StregKode,ListBox2.items[i]) <> 0 then
1816     begin
1817 torben 3056 wrkAntalSenere := 0;//initial Value
1818 torben 2656
1819 torben 2645 // Ajourføring af tæller for manglende pakker (scanninger)
1820     wrkAntal := StaticTextManglendePakker.Caption;
1821     if (pos('/', wrkAntal) > 0) then // både pakker idag og senere
1822     begin
1823     wrkAntal := wrkAntal + '/'; // tilføjer '/' sidst i feltet af hensyn til split funktionen
1824 torben 2682 wrkAntalIdag := StrToInt( TUtils.split(wrkAntal, '/', 2));
1825 torben 2645 // ShowMessage(SPLIT('data/another/yet/again/more/','/',3));
1826     // ShowMessage(SPLIT('data/another/','/',3));
1827     // ShowMessage(SPLIT('data/another','/',3));
1828 torben 2682 wrkAntalSenere := StrToInt( TUtils.split(wrkAntal, '/', 3));
1829 torben 2645 end
1830     else // kun idag
1831     begin
1832     wrkAntalIdag := StrToInt(wrkAntal);
1833     end;
1834     if pos(StregKode + ' (',ListBox2.items[i]) <> 0 then // pakke til senere levering
1835     begin
1836     //ShowMessage('Senere ' + IntToStr(wrkAntalIdag) + ' ' + IntToStr(wrkAntalSenere));
1837     wrkAntalSenere := wrkAntalSenere - 1;
1838     // StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag) + '/' + IntToStr(wrkAntalSenere);
1839     end
1840     else
1841     begin
1842     // ShowMessage('Idag');
1843     wrkAntalIdag := wrkAntalIdag - 1;
1844     // StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);
1845     end;
1846     if (wrkAntalSenere > 0) then
1847     begin
1848     StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag) + '/' + IntToStr(wrkAntalSenere);
1849     end
1850     else
1851     begin
1852     StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);
1853     end;
1854    
1855     if (Scanningtype = '1') then
1856     begin
1857     PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
1858     if (wrkAntalIdag + wrkAntalSenere > 0) then
1859     begin
1860     PanelManglendePakker1.Visible := true;
1861     end
1862     else
1863     begin
1864     PanelManglendePakker1.Visible := false;
1865     end;
1866     end;
1867    
1868     if (Scanningtype = '2') then
1869     begin
1870     PanelManglendePakker2.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
1871     if (wrkAntalIdag + wrkAntalSenere > 0) then
1872     begin
1873     PanelManglendePakker2.Visible := true;
1874     end
1875     else
1876     begin
1877     PanelManglendePakker2.Visible := false;
1878     end;
1879     end;
1880    
1881     if (Scanningtype = '3') then
1882     begin
1883     PanelManglendePakker3.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
1884     if (wrkAntalIdag + wrkAntalSenere > 0) then
1885     begin
1886     PanelManglendePakker3.Visible := true;
1887     end
1888     else
1889     begin
1890     PanelManglendePakker3.Visible := false;
1891     end;
1892     end;
1893    
1894     if (Scanningtype = '4') then
1895     begin
1896     PanelManglendePakker4.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
1897     if (wrkAntalIdag + wrkAntalSenere > 0) then
1898     begin
1899     PanelManglendePakker4.Visible := true;
1900     end
1901     else
1902     begin
1903     PanelManglendePakker4.Visible := false;
1904     end;
1905     end;
1906    
1907     if (Scanningtype = '5') then
1908     begin
1909     PanelManglendePakker5.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
1910     if (wrkAntalIdag + wrkAntalSenere > 0) then
1911     begin
1912     PanelManglendePakker5.Visible := true;
1913     end
1914     else
1915     begin
1916     PanelManglendePakker5.Visible := false;
1917     end;
1918     end;
1919    
1920     if (Scanningtype = '6') then
1921     begin
1922     PanelManglendePakker6.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
1923     if (wrkAntalIdag + wrkAntalSenere > 0) then
1924     begin
1925     PanelManglendePakker6.Visible := true;
1926     end
1927     else
1928     begin
1929     PanelManglendePakker6.Visible := false;
1930     end;
1931     end;
1932 torben 2704
1933 torben 2645 ListBox2.items.delete(i);
1934     end;
1935     end;
1936     end;
1937    
1938     procedure TMainForm.StartScreen();
1939     begin
1940     if Org_RuteNummerST = '' then
1941     Org_RuteNummerST := RuteNummerST.Caption;
1942     if Org_BoghandlerNavnST = '' then
1943     Org_BoghandlerNavnST := BoghandlerNavnST.Caption;
1944     if Org_KommentarST = '' then
1945     Org_KommentarST := KommentarST.Caption;
1946     RuteNummerST.Caption := Org_RuteNummerST;
1947     BoghandlerNavnST.Caption := Org_BoghandlerNavnST;
1948     KommentarST.Caption := Org_KommentarST;
1949     end;
1950    
1951     procedure TMainForm.InitScreen();
1952     begin
1953     RuteNummerST.Caption := '';
1954     KommentarST.Caption := '';
1955     BoghandlerNavnST.Caption := '';
1956     end;
1957    
1958     procedure TMainForm.InitBladhus();
1959    
1960     begin
1961     Altidprintepakkelabel1.Enabled := false;
1962 torben 3054 menuNatXpress1.Visible := false;
1963     menuNatxpressReturDAO1.Visible := false;
1964     menuNatxpressReturfraKunde1.Visible := false;
1965 torben 2645 Sprgefterboghandlernummer1.Enabled := false;
1966     ListBox1.Visible := true;
1967     // TestFunktionen := '1';
1968 torben 2704
1969 torben 3054 if menuDaoDirekte1.Checked then
1970 torben 2645 begin
1971     IndlesScanningLogFil();
1972     end;
1973    
1974     //
1975     // Bladhus ***
1976     //
1977     case BladhusSted of
1978     01 :
1979     begin; // NS
1980     Testprinter1.Visible := true;
1981 torben 2691 BtnDownloadKontrolfil.Enabled := true;
1982 torben 2699 BtnOpdaterListen.Enabled := true;
1983 torben 2645 IdFTP1.Passive := true;
1984     IdFTP1.PassiveUseControlHost := true;
1985     BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';
1986     BladhusKontrolfil_lokal := 'RuteKontrol.txt';
1987     DownloadBladhusKontrolfil();
1988     IndlesManglendeScanninger();
1989     end;
1990     02 :
1991     begin; // BK
1992     Testprinter1.Visible := true;
1993 torben 3055 menuSmaaPakker.Enabled := true;
1994     menuStorePakker.Enabled := true;
1995 torben 2655 radioStorPakke.Enabled := true;
1996     radioLillePakke.Enabled := true;
1997 torben 2691 BtnDownloadKontrolfil.Enabled := false; // kontrolfil bruges ikke her
1998 torben 2699 BtnOpdaterListen.Enabled := true;
1999 torben 2645 IdFTP1.Passive := true;
2000     IdFTP1.PassiveUseControlHost := true;
2001     IndlesManglendeScanninger();
2002     end;
2003     03 :
2004     begin; // FD
2005     Testprinter1.Visible := true;
2006     if (getProddag() = 'lørdag') then
2007     begin
2008 torben 2696 BtnDownloadRuteskiftFil.Visible := false;
2009 torben 2645 end
2010     else
2011     begin
2012 torben 2696 BtnDownloadRuteskiftFil.Visible := false;
2013 torben 2645 end;
2014 torben 2691 BtnDownloadKontrolfil.Enabled := true;
2015 torben 2699 BtnOpdaterListen.Enabled := true;
2016 torben 2645 IdFTP1.Passive := true;
2017     IdFTP1.PassiveUseControlHost := true;
2018     BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';
2019     BladhusRuteskiftfil_lokal := 'RuteSkift.txt';
2020     if (getProddag() = 'lørdag') then
2021     begin
2022     //DownloadBladhusRuteskiftfil(); // Skal ikke bruges endnu
2023     end;
2024     BladhusKontrolfil_server := 'frafd/RuteKontrol.txt';
2025     BladhusKontrolfil_lokal := 'RuteKontrol.txt';
2026     DownloadBladhusKontrolfil();
2027     IndlesManglendeScanninger();
2028     end;
2029     04 : begin; // DBK
2030     Testprinter1.Visible := true;
2031 torben 3055 menuSmaaPakker.Enabled := true;
2032     menuStorePakker.Enabled := true;
2033 torben 2655 radioStorPakke.Enabled := true;
2034     radioLillePakke.Enabled := true;
2035 torben 2691 BtnDownloadKontrolfil.Enabled := false; // kontrolfil bruges ikke her
2036 torben 2699 BtnOpdaterListen.Enabled := true;
2037 torben 2645 IdFTP1.Passive := true;
2038     IdFTP1.PassiveUseControlHost := true;
2039     end;
2040     else
2041     //ShowMessage('Ukendt Bladhus sted ???') ;
2042     end;
2043    
2044     end;
2045    
2046     procedure TMainForm.HentPakkeInfoFraServer(const Sted, PakkeNr : String; var RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : String = '');
2047     var
2048     WebSvar : String;
2049     URLStr : String;
2050     pakkestorrelse : String;
2051     PrintNyLabelInteger : Integer;
2052 torben 2678
2053     PakkeshopLabel: TPakkeshopLabel;
2054 torben 2645 begin
2055 torben 2655 if radioStorPakke.Checked then
2056 torben 2645 begin
2057     pakkestorrelse := 'Stor';
2058     end;
2059 torben 2655 if radioLillePakke.Checked then
2060 torben 2645 begin
2061     pakkestorrelse := 'Lille';
2062     end;
2063 torben 2668
2064    
2065 torben 3054 if menuNatXpress1.Checked then
2066 torben 2645 begin
2067     if (BoghandlerTjekkode = '') then
2068     begin
2069     BoghandlerTjekkode := '-1';
2070     end;
2071     URLStr := Format(UrlNormal,[Sted, PakkeNr, BoghandlerNummer, BoghandlerTjekkode]);
2072     end
2073 torben 3054 else if menuNatxpressReturDAO1.Checked then
2074 torben 2645 begin
2075     URLStr := Format(UrlReturDAO,[Sted, PakkeNr, BoghandlerNummer, 'DAO', pakkestorrelse]);
2076     end
2077 torben 3054 else if menuNatxpressReturfraKunde1.Checked then
2078 torben 2645 begin
2079     URLStr := Format(UrlReturBoghandler,[Sted, PakkeNr, BoghandlerNummer, 'Boghandler', pakkestorrelse]);
2080     end
2081 torben 3054 else if menuDaoDirekte1.Checked then
2082 torben 2645 begin
2083     URLStr := Format(UrlBudlevering,[Sted, PakkeNr, 'bud', pakkestorrelse]);
2084     end
2085 torben 3054 else if menuPakkeshop1.Checked then
2086 torben 2645 begin
2087     URLStr := Format(UrlPakkeshoplevering,[Sted, PakkeNr, PakkeshopTjekkode]);
2088     end
2089 torben 3054 else if menuPakkeshopRetur1.Checked then
2090 torben 2645 begin
2091     URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);
2092     end
2093 torben 2668 else if menuIndlevering.Checked then
2094     begin
2095     URLStr := Format(UrlIndleveringsPakke,[Sted, PakkeNr]);
2096     end
2097 torben 2645 else
2098     begin
2099     exit;
2100     end;
2101 torben 2794
2102     if chkForstorTilDirekte.Checked then // Denne skal være efter if/else kæden da den overrider de øvrige URL'er
2103     begin
2104     URLStr := Format(URLOmdirigerTilPakkeshop,[Sted, PakkeNr]);
2105     end;
2106    
2107 torben 2645 try
2108     //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
2109     WebSvar := IdHTTP1.Get(URLStr);
2110     //IdHTTP1.Disconnect();
2111     except on e:EIdConnClosedGracefully do
2112     begin
2113     // Her skal vi ikke gøre noget - men vi skal forespørge igen
2114     logTekst := 'EIdConnClosedGracefully i HentPakkeInfoFraServer';
2115     SkrivScanningLogFil(logTekst);
2116     try
2117     //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
2118     WebSvar := IdHTTP1.Get(URLStr);
2119     except on e:EIdConnClosedGracefully do
2120     begin
2121     logTekst := 'EIdConnClosedGracefully i HentPakkeInfoFraServer igen';
2122     SkrivScanningLogFil(logTekst);
2123     WebSvar := IdHTTP1.Get(URLStr);
2124     end;
2125     end;
2126     end;
2127     end;
2128 torben 2794
2129 torben 2645 XMLDocument1.LoadFromXML(WebSvar);
2130     try
2131 torben 3054 if menuPakkeshop1.Checked or menuPakkeshopRetur1.Checked then
2132 torben 2645 begin
2133     RuteNummer := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopTurid').Text;
2134     Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2135     BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;
2136     BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;
2137     PrintNyLabel := False;
2138 torben 2656
2139 torben 3054 if menuPakkeshop1.Checked then
2140 torben 2645 begin
2141     try
2142     PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);
2143     except on e:exception do
2144     PrintNyLabelInteger := 0;
2145     end;
2146     if (PrintNyLabelInteger = 1) then
2147     begin
2148     PrintNyLabel := True;
2149     end;
2150     end;
2151     end
2152 torben 2794 else if menuIndlevering.Checked or chkForstorTilDirekte.Checked then
2153 torben 2668 begin
2154    
2155    
2156    
2157    
2158     Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2159     if (Kommentar = 'Ok') then
2160     begin
2161     PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2162     PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc
2163 torben 2703 RuteNummer := PakkeshopLabel.Koreliste + ' -> ' + PakkeshopLabel.PakkeshopTurid;
2164 torben 2701 Stregkode := PakkeshopLabel.Stregkode;
2165 torben 2668
2166 torben 2705 LabelPrint.PrintPakkeshopLabel( PakkeshopLabel );
2167 torben 2794 chkForstorTilDirekte.Checked := false;
2168 torben 2668
2169     end;
2170    
2171    
2172     end
2173 torben 2645 else
2174     begin
2175     RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;
2176     Koreliste := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Koreliste').Text;
2177     Kommentar := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Kommentar').Text;
2178     BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('BoghandlerNavn').Text;
2179     Leveringssted := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Leveringssted').Text;
2180 torben 3054 if menuDaoDirekte1.Checked then
2181 torben 2645 begin
2182     try
2183     SmsKode := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('SmsKode').Text;
2184     except on e:exception do
2185     SmsKode := '';
2186     end;
2187     try
2188     DBKbane := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('DBKbane').Text;
2189     except on e:exception do
2190     DBKbane := '';
2191     end;
2192     end;
2193     PrintNyLabel := False;
2194     try
2195     PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('PrintPakkeLabel').Text);
2196     except on e:exception do
2197     PrintNyLabelInteger := 0;
2198     end;
2199     PrintNyLabel := False;
2200     if (PrintNyLabelInteger = 1) then
2201     begin
2202     PrintNyLabel := True;
2203     end;
2204     end;
2205 torben 2668
2206    
2207 torben 2645 if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
2208     begin
2209     if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then
2210     begin
2211 torben 3073 Kommentar := Kommentar + 'Pakke burde være hos ' + Leveringssted;
2212 torben 2645 PrintNyLabel := False;
2213     end;
2214     end
2215 torben 3073 else if (menuDaoDirekte1.Checked) and (Leveringssted <> Sted) And (Leveringssted <> '') then
2216 torben 2645 begin
2217     if (Leveringssted = 'E') and (Sted = 'DBK') then
2218     begin
2219     // Det er ok at DBK scanner pakker til E (Schenker)
2220     end
2221     else
2222     begin
2223 torben 3073 Kommentar := Kommentar + 'Pakke burde være hos ' + Leveringssted;
2224 torben 2645 PrintNyLabel := False;
2225     end;
2226     end;
2227     except on e:exception do
2228     raise exception.CreateFmt('Fejl i XML-format: %s',[e.Message]);
2229     end;
2230     end;
2231    
2232    
2233     procedure TMainForm.UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, BoghNr : String);
2234     var
2235     List1Msg, List1Pakkestorrelse : String;
2236     begin
2237     RuteNummerST.Caption := RuteNummer;
2238     KommentarST.Caption := Kommentar;
2239     KommentarST.Caption := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);
2240     KommentarST.Caption := StringReplace(KommentarST.Caption, ' & ', ' && ', [rfReplaceAll, rfIgnoreCase]);
2241     //Label1.Caption := Kommentar; // bruges hvis der skal vises linieskift - det kan man ikke i en staticText
2242     BoghandlerNavnST.Caption := StringReplace(BoghandlerNavn, ' & ', ' && ', [rfReplaceAll, rfIgnoreCase]);
2243     List1msg := TimeToStr(now) + '; ';
2244 torben 3054 if menuPakkeshop1.Checked then
2245 torben 2645 List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';
2246     List1Pakkestorrelse := '';
2247 torben 2655 if radioStorPakke.Checked then
2248 torben 2645 begin
2249     List1Pakkestorrelse := 'Stor pakke';
2250     end;
2251 torben 2655 if radioLillePakke.Checked then
2252 torben 2645 begin
2253     List1Pakkestorrelse := 'Lille pakke';
2254     end;
2255     List1msg := List1msg + BoghandlerNavn + '; ';
2256 torben 3054 if menuNatxpressReturDAO1.Checked then
2257 torben 2645 begin
2258     List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-8);
2259     end;
2260 torben 3054 if menuNatxpressReturfraKunde1.Checked then
2261 torben 2645 begin
2262     List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-16);
2263     end;
2264 torben 3054 if menuNatxpressReturDAO1.Checked or menuNatxpressReturfraKunde1.Checked then
2265 torben 2645 List1msg := List1msg + '; ' + List1Pakkestorrelse;
2266     if length(BoghNr) > 0 then
2267     begin
2268     List1Msg := List1Msg + '; Indtastet ' + BoghNr;
2269     end;
2270 torben 3054 if menuDaoDirekte1.Checked then
2271 torben 2645 begin
2272     List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;
2273 torben 2655 if (radioStorPakke.Checked) then
2274 torben 2645 begin
2275     List1msg := List1msg + '; Stor pakke';
2276     end;
2277 torben 2655 if (radioLillePakke.Checked) then
2278 torben 2645 begin
2279     List1msg := List1msg + '; Lille pakke';
2280     end;
2281     end;
2282 torben 3054 if menuPakkeshopRetur1.Checked then
2283 torben 2645 begin
2284     List1msg := List1msg + Stregkode + ' ' + RightStr(Kommentar, Length(Kommentar)-6);
2285     end;
2286 torben 3054 if menuNatXpress1.Checked then
2287 torben 2645 begin
2288     if (Kommentar = '***** Kommentar *****') // fra test printer funktionen
2289     or (BoghandlerNavn = 'Forbindelse ok') // fra test forbindelse funktionen
2290     or (BoghandlerNavn = 'Fejl i forbindelse til server') then // fra test forbindelse funktionen
2291     begin
2292     List1msg := List1msg + '; ' + Stregkode + '; ' + Kommentar;
2293     end
2294     else
2295     begin
2296     List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;
2297     end;
2298     end;
2299 torben 2701 if menuIndlevering.Checked then
2300     begin
2301     List1Msg := Stregkode;
2302     end;
2303    
2304    
2305 torben 2645 ListBox1.Items.Insert(0,List1Msg);
2306     logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2307     SkrivScanningLogFil(logTekst);
2308     end;
2309    
2310 torben 2697 procedure TMainForm.BtnUploadLogfilClick(Sender: TObject);
2311 torben 2645 begin
2312     UploadLogfilTilDAO();
2313     UploadInifilTilDAO();
2314     ListBox1.SetFocus; // for at flytte fokus væk fra upload knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
2315     end;
2316    
2317     procedure TMainForm.PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');
2318     var
2319     ClickedOK: Boolean;
2320     pakkeErScannet : Integer;
2321     pakkeForkertSted : Integer;
2322     List1Msg : String;
2323     kontrolKoreliste : string;
2324     nytRuteNummer, nyFarve : String;
2325     begin
2326 torben 3054 if menuDaoDirekte1.Checked then
2327 torben 2682 RuteNummerST.Color := TUtils.HexToTColor(Farve);
2328 torben 2645
2329     pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
2330     if pakkeErScannet = 0 then
2331     begin
2332     pakkeErScannet := pos('PAKKE ER SCANNET', Kommentar);
2333     end;
2334     if pakkeErScannet = 0 then
2335     begin
2336     pakkeErScannet := pos('PAKKE ER SCANNET', BoghandlerNavn);
2337     end;
2338     pakkeForkertSted := pos('burde være hos', Kommentar);
2339    
2340 torben 2656
2341 torben 2653 if Sprgefterboghandlernummer1.Enabled and chkSporgEfterKunde.Checked and ( (RuteNummer = 'Ukendt') or (RuteNummer = 'Ukendt tur') or (RuteNummer = 'Retur ukendt') or (pakkeErScannet > 0) or (pakkeForkertSted > 0) ) then
2342 torben 2656
2343 torben 2645 begin
2344     if (RuteNummer = 'Ukendt') then
2345     begin
2346     repeat
2347     begin
2348     ClickedOK := InputQuery('Ukendt pakke', 'Indtast kundenummer', BoghandlerNummer);
2349     end
2350     until (ClickedOK and (Length(BoghandlerNummer) > 2) and (Length(BoghandlerNummer) < 9)) or not ClickedOK;
2351     if not ClickedOK then
2352     begin
2353     exit;
2354     end;
2355     if (Length(BoghandlerNummer) > 2) then
2356     begin
2357     InitScreen();
2358     HentPakkeInfoFraServer(Sted, StregKode, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2359     UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, BoghandlerNummer);
2360     end;
2361     end;
2362     end
2363     else
2364 torben 3054 if menuDaoDirekte1.Checked then
2365 torben 2645 begin
2366     if (BoghandlerNavn = 'Ukendt pakke') then
2367     begin
2368     PrintNyLabel := false;
2369 torben 2656
2370 torben 2645 PlaySound(PWideChar(AlarmLyd));
2371     MainForm.Color := clRed;
2372 torben 2668 btnNulstil.Visible := true;
2373 torben 2656
2374 torben 2645 end
2375     else
2376     begin
2377     nytRuteNummer := retRutenummer(RuteNummer);
2378     if (nytRuteNummer <> RuteNummer) then
2379     begin
2380     PrintNyLabel := true;
2381     RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;
2382     nyFarve := Farve;
2383 torben 2682 RuteNummerST.Color := TUtils.HexToTColor(nyFarve);
2384 torben 2645 List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;
2385     RuteNummer := nytRuteNummer;
2386     ListBox1.Items.Insert(0,List1Msg);
2387     logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2388     SkrivScanningLogFil(logTekst);
2389 torben 2656
2390 torben 2645 if (PrinterNavn = 'Ingen') then
2391     begin
2392     PrintNyLabel := false;
2393     end;
2394 torben 2656
2395 torben 2645 if (PrintNyLabel = false) then // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm
2396     begin
2397     PlaySound(PWideChar(AlarmLyd));
2398     MainForm.Color := clRed;
2399 torben 2668 btnNulstil.Visible := true;
2400 torben 2645 end;
2401 torben 2656
2402 torben 2645 end;
2403     kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);
2404     if (kontrolKoreliste <> RuteNummer) then
2405     begin
2406     PrintNyLabel := true;
2407     List1msg := TimeToStr(now) + '; ' + BoghandlerNavn + '; ' + 'Forkert køreliste ' + '; ' + Koreliste + ' -> ' + kontrolKoreliste;
2408     if (length(kontrolKoreliste) > 20) then // Skal ikke printe label når 'Køreliste ikke i kontrolfil'
2409     begin
2410     PrintNyLabel := false;
2411     RuteNummerST.Caption := RuteNummerST.Caption + ' -> ' + kontrolKoreliste;
2412     end
2413     else
2414     begin
2415     RuteNummerST.Caption := RuteNummerST.Caption + ' -> Ny køreliste: ' + kontrolKoreliste;
2416     end;
2417     ListBox1.Items.Insert(0,List1Msg);
2418     logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2419     SkrivScanningLogFil(logTekst);
2420 torben 2656
2421 torben 2645 if (PrintNyLabel = false) then // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm
2422     begin
2423     PlaySound(PWideChar(AlarmLyd));
2424     MainForm.Color := clRed;
2425 torben 2668 btnNulstil.Visible := true;
2426 torben 2645 end;
2427 torben 2656
2428 torben 2645 end;
2429     end;
2430    
2431     end;
2432    
2433 torben 3054 if menuDaoDirekte1.Checked then
2434 torben 2645 begin
2435     case BladhusSted of
2436     00 : begin;
2437     // 20150304: start
2438     // if PrintNyLabel and (kontrolKoreliste <> '') or (RuteNummer = 'Rutenr') then
2439     // // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste
2440     // // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')
2441     // // Det holder dog ikke for DAO DIREKTE fordi Schenker altid skal printes, da deres label mangler DAO ruteoplysninger553915076624451294
2442     if PrintNyLabel or (RuteNummer = 'Rutenr') then
2443     // 20150304: slut
2444     begin
2445 torben 2705 LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2446 torben 2645 end;
2447     end;
2448     01 : begin;
2449 torben 2661 if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2450 torben 2645 // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste
2451     // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')
2452     begin
2453 torben 2705 LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2454 torben 2645 end;
2455     end;
2456     02 : begin;
2457     if PrintNyLabel or (RuteNummer = 'Rutenr') then // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test
2458     begin
2459 torben 2705 LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2460 torben 2645 end;
2461     end;
2462     03 : begin;
2463 torben 2661 if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2464 torben 2645 // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste
2465     // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')
2466     begin
2467 torben 2705 LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2468 torben 2645 end;
2469     end;
2470     04 : begin;
2471     if PrintNyLabel or (RuteNummer = 'Rutenr') then // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test
2472     begin
2473 torben 2705 LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2474 torben 2645 end;
2475     end;
2476     else
2477     ShowMessage('Ukendt Bladhus sted: ' + IntToStr(BladhusSted));
2478     end;
2479     end;
2480    
2481     // Hvis det er normal bogpakke modtagelse til UBD skal vi p.t. ikke printe - men stopper her
2482 torben 3054 if menuNatXpress1.Checked and ( (Sted = '1') or (Sted = '2') or (Sted = '3') or (Sted = '4') ) then
2483 torben 2645 begin
2484     exit;
2485     end;
2486    
2487 torben 3054 if menuDaoDirekte1.Checked or ( Sprgefterboghandlernummer1.Enabled and chkSporgEfterKunde.Checked and ( (RuteNummer = 'Ukendt') or (RuteNummer = 'Ukendt tur') or (RuteNummer = 'Retur ukendt') or (pakkeErScannet > 0) ) and (printNyLabel = false) ) then
2488 torben 2645 begin
2489     end
2490     else
2491     begin
2492 torben 2652 if ( (PrinterNavn <> 'Ingen') and (PrintNyLabel or chkAltidPrintLabel.Checked) and (RuteNummer <> 'Ukendt') or (RuteNummer = 'Rutenr')) then
2493 torben 2645 begin
2494     logTekst := 'Printer label type ';
2495 torben 2652 if (chkAltidPrintLabel.Checked) then
2496 torben 2645 begin
2497     logTekst := logTekst + 'Alle ';
2498     end
2499     else if (PrintNyLabel) then
2500     begin
2501     logTekst := logTekst + 'Rute ';
2502     end
2503     else
2504     begin
2505     logTekst := logTekst + 'Ukendt ';
2506     end;
2507     logTekst := logTekst + ' for '+BoghandlerNavn;
2508     SkrivScanningLogFil(logTekst);
2509 torben 2705
2510     LabelPrint.PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn) ;
2511    
2512 torben 2645 end;
2513     end;
2514    
2515     end;
2516    
2517 torben 2656
2518    
2519 torben 2655 procedure TMainForm.radioStorPakkeClick(Sender: TObject);
2520 torben 2645 begin
2521 torben 3055 menuStorePakker.Checked := true;
2522 torben 2655 radioStorPakke.Checked := true;
2523 torben 2645 end;
2524    
2525 torben 2655 procedure TMainForm.radioLillePakkeClick(Sender: TObject);
2526 torben 2645 begin
2527 torben 3055 menuSmaaPakker.Checked := true;
2528 torben 2655 radioLillePakke.Checked := true;
2529 torben 2645 end;
2530    
2531    
2532 torben 2653 procedure TMainForm.chkSporgEfterKundeClick(Sender: TObject);
2533 torben 2645 begin
2534 torben 2653 if chkSporgEfterKunde.Checked then
2535 torben 2645 begin
2536     Sprgefterboghandlernummer1.Checked := true;
2537     end
2538     else
2539     begin
2540     Sprgefterboghandlernummer1.Checked := false;
2541     end;
2542     end;
2543    
2544    
2545 torben 2652 procedure TMainForm.chkAltidPrintLabelClick(Sender: TObject);
2546 torben 2645 begin
2547 torben 2652 if chkAltidPrintLabel.Checked then
2548 torben 2645 begin
2549     Altidprintepakkelabel1.Checked := true;
2550     end
2551     else
2552     begin
2553     Altidprintepakkelabel1.Checked := false;
2554     end;
2555    
2556     end;
2557    
2558 torben 2654 procedure TMainForm.chkScanTjekkodeClick(Sender: TObject);
2559 torben 2645 begin
2560 torben 2654 if chkScanTjekkode.Checked then
2561 torben 2645 begin
2562     Scanogstjekkoden1.Checked := true;
2563     end
2564     else
2565     begin
2566     Scanogstjekkoden1.Checked := false;
2567     end;
2568     end;
2569    
2570 torben 3054 procedure TMainForm.menuPakkeshop1Click(Sender: TObject);
2571 torben 2645 begin
2572     Scanningtype := '5';
2573     InitPakkeshoplevering();
2574     NulstilAutomatiskValg();
2575     end;
2576    
2577     procedure TMainForm.NulstilAutomatiskValg();
2578     begin
2579 torben 3054 menuAutomatiskvalg1.Checked := false;
2580 torben 2645 PanelValgA.Color := clBtnFace;
2581     PanelValgA.Font.Color := clWindowText;
2582 torben 2656
2583 torben 2645 if (SpecialVersionSted = '01')
2584 torben 2656 or (SpecialVersionSted = '02')
2585     or (SpecialVersionSted = '03')
2586     or (SpecialVersionSted = '04') then
2587 torben 2645 begin
2588     // her skal vi også disable knappen for 01, 02, 03 og 04 (NS, BK, FD og DBK)
2589     PanelValgA.Enabled := false;
2590     PanelValgA.Font.Color := clInactiveCaption;
2591 torben 3054 menuAutomatiskvalg1.Enabled := false;
2592 torben 2645 end;
2593     // 20150317: slut
2594     end;
2595    
2596     procedure TMainForm.TjekkerUrls();
2597     const
2598     crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
2599     var
2600     urlFejl : Integer;
2601     begin
2602     urlFejl := 0;
2603     //UpdateScreen('', '', 'Tjekker forbindelsen...', '', ''); // virker ikke
2604     ShowMessage('Tjekker data forbindelse til serveren.' + crlf + 'Det kan godt tage nogle minutter.' + crlf + 'Resultatet af testen vises i skærmbilledet...');
2605    
2606 torben 2703 try
2607     // Tjekker urls
2608     logTekst := 'Tjekker urls.';
2609     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2610     SkrivScanningLogFil(logTekst);
2611 torben 2645
2612    
2613    
2614 torben 2703 // Tjekker UrlNormal
2615     if PanelValg1.Enabled = true then
2616     begin
2617     TjekkerEnkeltUrl('UrlNormal', UrlNormal, urlFejl);
2618     end;
2619 torben 2645
2620 torben 2703 // Tjekker UrlReturDAO
2621     if PanelValg2.Enabled = true then
2622     begin
2623     TjekkerEnkeltUrl('UrlReturDAO', UrlReturDAO, urlFejl);
2624     end;
2625 torben 2645
2626 torben 2703 // Tjekker UrlReturBoghandler
2627     if PanelValg3.Enabled = true then
2628     begin
2629     TjekkerEnkeltUrl('UrlReturBoghandler', UrlReturBoghandler, urlFejl);
2630     end;
2631 torben 2645
2632 torben 2703 // Tjekker UrlBudlevering
2633     if PanelValg4.Enabled = true then
2634     begin
2635     TjekkerEnkeltUrl('UrlBudlevering', UrlBudlevering, urlFejl);
2636     end;
2637 torben 2645
2638 torben 2703 // Tjekker UrlPakkeshoplevering
2639     if PanelValg5.Enabled = true then
2640     begin
2641     TjekkerEnkeltUrl('UrlPakkeshoplevering', UrlPakkeshoplevering, urlFejl);
2642     end;
2643 torben 2645
2644 torben 2703 // Tjekker UrlReturPakkeshop
2645     if PanelValg6.Enabled = true then
2646     begin
2647     TjekkerEnkeltUrl('UrlReturPakkeshop', UrlReturPakkeshop, urlFejl);
2648     end;
2649 torben 2645
2650 torben 2703 // Tjekker UrlManglendeScanninger
2651     if (PanelValg1.Enabled = true) or (PanelValg4.Enabled = true) then
2652     begin
2653     TjekkerEnkeltUrl('UrlManglendeScanninger', UrlManglendeScanninger, urlFejl);
2654     end;
2655 torben 2645
2656 torben 2703 // Tjekker UrlPakkeshopManglendeScanninger
2657     if PanelValg5.Enabled = true then
2658     begin
2659     TjekkerEnkeltUrl('UrlPakkeshopManglendeScanninger', UrlPakkeshopManglendeScanninger, urlFejl);
2660     end;
2661 torben 2689
2662 torben 2703 // Tjekker UrlPakkeshopManglendeReturScanninger
2663     if PanelValg6.Enabled = true then
2664     begin
2665     TjekkerEnkeltUrl('UrlPakkeshopManglendeReturScanninger', UrlPakkeshopManglendeReturScanninger, urlFejl);
2666     end;
2667 torben 2689
2668 torben 2703 // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
2669     if PanelValg7.Enabled = true then
2670     begin
2671     TjekkerEnkeltUrl('UrlIndleveringsPakke', UrlIndleveringsPakke, urlFejl);
2672     TjekkerEnkeltUrl('UrlIndleveringsPakkeManglendeScanninger', UrlIndleveringsPakkeManglendeScanninger, urlFejl);
2673     end;
2674 torben 2645
2675 torben 2703 // Tjekker UrlEKLoverforsel
2676     if PanelValg1.Enabled = true then
2677     begin
2678     TjekkerEnkeltUrl('UrlEKLoverforsel', UrlEKLoverforsel, urlFejl);
2679     end;
2680 torben 2656
2681 torben 2645
2682 torben 2703 // Tjekker UrlEKLoverforselPakkeshop
2683     if PanelValg5.Enabled = true then
2684     begin
2685     TjekkerEnkeltUrl('UrlEKLoverforselPakkeshop', UrlEKLoverforselPakkeshop, urlFejl);
2686     end;
2687 torben 2656
2688 torben 2645
2689 torben 2703 // Tjekker UrlFindPakketype
2690     TjekkerEnkeltUrl('UrlFindPakketype', UrlFindPakketype, urlFejl);
2691 torben 2645
2692 torben 2703 // Tjekker UrlSendPrograminfo
2693     TjekkerEnkeltUrl('UrlSendPrograminfo', UrlSendPrograminfo, urlFejl);
2694 torben 2645
2695 torben 2703
2696    
2697     logTekst := 'urls er ok';
2698     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2699     SkrivScanningLogFil(logTekst);
2700    
2701     Except
2702     TjekUrls := '-'; // markerer at der var fejl
2703    
2704     end;
2705 torben 2645 end;
2706    
2707 torben 2703 procedure TMainForm.TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
2708     const
2709     crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
2710     begin
2711     if TUtils.CheckUrl(Url) then
2712    
2713     begin
2714     logTekst := UrlNavn + ' accepteret: ' + Url;
2715     SkrivScanningLogFil(logTekst);
2716     end
2717     else
2718     begin
2719     inc(urlFejl); // Optæller antal fejl
2720     logTekst := UrlNavn + ' svarer ikke: ' + Url;
2721     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2722     if TjekUrls = '1' then
2723     begin
2724     logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2725     end;
2726    
2727     SkrivScanningLogFil(logTekst);
2728    
2729     if TjekUrls = '1' then
2730     begin
2731     ShowMessage(logTekst);
2732     UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2733     Application.Terminate;
2734    
2735     raise Exception.Create('UrlFejl');
2736    
2737     end;
2738     end;
2739    
2740     end;
2741    
2742    
2743    
2744 torben 2645 procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);
2745     var
2746     SR: TSearchRec;
2747     dt: TDateTime;
2748     CreationTime: TFileTime;
2749     dtCreation: TDateTime;
2750     BemTxt : String;
2751     begin
2752     logTekst := 'Logfiler tjekkes for sletning.';
2753     SkrivScanningLogFil(logTekst);
2754     FileList.Insert(0,logTekst);
2755     if FindFirst(Path + '*.log', faAnyFile, SR) = 0 then // finder log filer
2756     begin
2757     repeat
2758     if (SR.Attr <> faDirectory) then
2759     begin
2760 torben 2677
2761 torben 2645 dt := fileDateToDateTime(SR.Time); // finder filens timestamp for seneste ændring
2762     CreationTime := SR.FindData.ftCreationTime; // finder filens timestamp for oprettelse
2763 torben 2695 dtCreation := TUtils.FileTime2DateTime(CreationTime); // finder filens timestamp for oprettelse
2764 torben 2645 // Selvom creation date godt kan være forskellig fra modified date,
2765     // skal vi alligevel altid tjekke filens alder ud fra modified date
2766     // (ændring den kan ligge både før og efter oprettelse, hvis filerne er flyttet eller ændret manuelt)
2767     BemTxt := '';
2768     if (DaysBetween(now, dt) > 14) then // så er filen kandidat til at blive slettet
2769     begin
2770     BemTxt := ' (skal slettes)';
2771     end;
2772     logTekst := SR.Name + ' Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',dt) + ' ' + BemTxt + ' ' + IntToStr(DaysBetween(now, dt)) + ' dage gammel';
2773     if DaysBetween(dtCreation, dt) > 1 then
2774     begin
2775     logTekst := logTekst + ' (Oprettet ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',dtCreation) + ')';
2776     end;
2777     FileList.Insert(0,logTekst);
2778     SkrivScanningLogFil(logTekst);
2779     if BemTxt = ' (skal slettes)' then
2780     begin
2781     if DeleteFile(Path + SR.Name) then
2782     begin
2783     logTekst := 'Logfil er slettet.';
2784     FileList.Insert(0,logTekst);
2785     SkrivScanningLogFil(logTekst);
2786     end
2787     else
2788     begin
2789     logTekst := 'Logfil kunne IKKE slettes.';
2790     FileList.Insert(0,logTekst);
2791     SkrivScanningLogFil(logTekst);
2792     end;
2793     end;
2794     end;
2795     until FindNext(SR) <> 0;
2796     FindClose(SR);
2797     end;
2798     end;
2799    
2800 torben 2668 procedure TMainForm.btnNulstilClick(Sender: TObject);
2801 torben 2645 begin
2802     PakkeshopStregkode := '';
2803     PakkeshopTjekkode := '';
2804 torben 2668 btnNulstil.Visible := false;
2805 torben 2645 PakkeshopText1.Caption := 'Stregkode';
2806     BoghandlerStregkode := '';
2807     BoghandlerTjekkode := '';
2808     Stregkode := '';
2809     // 20150312: start
2810     if BoghandlerNavnST.Caption = 'Fejl i forbindelse til server' then
2811     begin
2812     ShowMessage('Programmet afbrydes...');
2813     UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2814     Application.Terminate;
2815     exit;
2816     end;
2817     // 20150312: slut
2818     InitScreen();
2819     // MainForm.Color := HexToTColor(Farve);
2820     if Farve <> '' then
2821     begin
2822 torben 2682 MainForm.Color := TUtils.HexToTColor(Farve);
2823 torben 2645 end;
2824 torben 3054 if (menuDaoDirekte1.Checked) then
2825 torben 2645 begin
2826     InitLillePakke();
2827     end;
2828     PrinterstatusStaticText1.Caption := '';
2829     PrinterstatusStaticText1.Color := MainForm.Color;
2830     end;
2831    
2832 torben 2650
2833 torben 2645 procedure TMainForm.PanelValg1Click(Sender: TObject);
2834     begin
2835     Scanningtype := '1';
2836     InitNatxpresslevering();
2837     NulstilAutomatiskValg();
2838     end;
2839    
2840     procedure TMainForm.PanelValg2Click(Sender: TObject);
2841     begin
2842     Scanningtype := '2';
2843     InitReturFraDao();
2844     NulstilAutomatiskValg();
2845     end;
2846    
2847     procedure TMainForm.PanelValg3Click(Sender: TObject);
2848     begin
2849     Scanningtype := '3';
2850     InitReturFraKunde();
2851     NulstilAutomatiskValg();
2852     end;
2853    
2854     procedure TMainForm.PanelValg4Click(Sender: TObject);
2855     begin
2856     Scanningtype := '4';
2857     InitDirektelevering();
2858     NulstilAutomatiskValg();
2859     end;
2860    
2861     procedure TMainForm.PanelValg5Click(Sender: TObject);
2862     begin
2863     Scanningtype := '5';
2864     InitPakkeshoplevering();
2865     NulstilAutomatiskValg();
2866     end;
2867    
2868     procedure TMainForm.PanelValg6Click(Sender: TObject);
2869     begin
2870     Scanningtype := '6';
2871     InitReturFraPakkeshop();
2872     NulstilAutomatiskValg();
2873     end;
2874    
2875 torben 2650
2876     procedure TMainForm.PanelValg7Click(Sender: TObject);
2877     begin
2878     Scanningtype := '7';
2879     InitIndleveringskode();
2880     NulstilAutomatiskValg();
2881    
2882     end;
2883    
2884 torben 2645 procedure TMainForm.PanelValgAClick(Sender: TObject);
2885     begin
2886     // Skal ikke toggle men bare sætte funktionen on
2887     // Fravælges ved at vælge en scanningstype
2888 torben 3054 menuAutomatiskvalg1.Checked := true;
2889 torben 2692 PanelValgA.Color := clGreen;
2890     PanelValgA.Font.Color := clWhite;
2891    
2892    
2893    
2894 torben 2645 end;
2895    
2896 torben 3054 procedure TMainForm.menuNatXpress1Click(Sender: TObject);
2897 torben 2645 begin
2898     Scanningtype := '1';
2899     NulstilAutomatiskValg();
2900     InitNatxpresslevering();
2901     end;
2902    
2903     procedure TMainForm.Testforbindelsen1Click(Sender: TObject);
2904     var
2905     RuteNummer : String;
2906     Kommentar : String;
2907     BoghandlerNavn : String;
2908     Koreliste : String;
2909     Falsk : Boolean;
2910     SmsKode : String;
2911     DBKbane : String;
2912     Leveringssted : String;
2913     orgTjekUrls : String;
2914     begin
2915     orgTjekUrls := TjekUrls;
2916     if (TjekUrls = '1') or (TjekUrls = '2') then
2917     begin
2918     TjekkerUrls();
2919     end;
2920     if TjekUrls = '-' then
2921     begin
2922     //ShowMessage('Der var fejl i een eller flere urls - se logvinduet');
2923     RuteNummer := '';
2924     Kommentar := 'Se log vinduet';
2925     BoghandlerNavn := 'Fejl i forbindelse til server';
2926     Koreliste := '';
2927     UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
2928     // Her kommer en alarm og rød skærm
2929     PlaySound(PWideChar(AlarmLyd));
2930     MainForm.Color := clRed;
2931 torben 2668 btnNulstil.Visible := true;
2932 torben 2645 end
2933     else
2934     begin
2935     Falsk := False;
2936 torben 2660
2937 torben 2645 HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');
2938     UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
2939     SmsKode := '999999';
2940     DBKbane := '999';
2941     Leveringssted := 'XXX';
2942     PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);
2943     FocusControl(StregkodeST);
2944     end;
2945     TjekUrls := orgTjekUrls;
2946    
2947     end;
2948    
2949     procedure TMainForm.Testprinter1Click(Sender: TObject);
2950     var
2951     RuteNummer : String;
2952     Kommentar : String;
2953     BoghandlerNavn : String;
2954     Koreliste : String;
2955     Falsk : Boolean;
2956     SmsKode : String;
2957     DBKbane : String;
2958     Leveringssted : String;
2959     begin
2960     RuteNummer := 'Rutenr';
2961     Kommentar := '***** Kommentar *****';
2962     BoghandlerNavn := 'Modtagernavn';
2963     Falsk := False;
2964    
2965 torben 2660
2966 torben 2705 if (LabelPrint.GetPrinterCount() = 0) then
2967 torben 2645 begin
2968     ShowMessage('Der er ikke installeret en printer på denne PC.');
2969     end
2970     else if PrinterNavn = 'Ingen' then
2971     begin
2972     ShowMessage('Der er fravalgt printer i dette program.');
2973     end
2974     else
2975     begin
2976     UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
2977     SmsKode := '999999';
2978     DBKbane := '999';
2979     Leveringssted := 'XXX';
2980 torben 3049 PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);
2981 torben 2705 LabelPrint.CheckPrintQue('Test', PrinterNavn);
2982 torben 2645 end;
2983     FocusControl(StregkodeST);
2984     end;
2985    
2986     procedure TMainForm.Timer1Timer(Sender: TObject);
2987     begin
2988     if (TjekPrinter = '1') then
2989     begin
2990 torben 2705 LabelPrint.CheckPrintQue('Timer', PrinterNavn);
2991 torben 2645 end
2992     else
2993     begin
2994     PrinterstatusStaticText1.Caption := '';
2995     PrinterstatusStaticText1.Color := MainForm.Color;
2996     end;
2997     end;
2998    
2999    
3000    
3001     procedure TMainForm.Om1Click(Sender: TObject);
3002     const
3003     crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
3004     var
3005     tekst, filversion : String;
3006     begin
3007    
3008 torben 2693 filversion := TUtils.Sto_GetFmtFileVersion('');
3009 torben 2645 tekst := 'Program til indscanning af pakker'+crlf+'Version '+filversion+crlf+crlf+'Udviklet af it afdelingen, DAO';
3010    
3011     tekst := tekst+crlf+crlf;
3012     tekst := tekst+'Programmet er installeret som:'+crlf+ParamStr(0);
3013     tekst := tekst+crlf;
3014    
3015     if SpecialVersionSted = '' then
3016     begin
3017     tekst := tekst+crlf+crlf+'Scanningssted: '+StringReplace(Stednavn, ':', '', [rfReplaceAll, rfIgnoreCase])+' ('+Sted+')';
3018     end;
3019    
3020     if SpecialVersionSted <> '' then
3021     begin
3022     if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
3023     begin
3024     if Stednavn = '' then
3025     begin
3026     tekst := tekst+crlf+crlf+'Speciel version til: '+BladhusStedNavn[BladhusSted]+' ('+BladhusStedKode[BladhusSted]+')';
3027     end
3028     else
3029     begin
3030 torben 2682 tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
3031 torben 2645 end;
3032     end
3033     else
3034     begin
3035 torben 2682 tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
3036 torben 2645 end;
3037     end;
3038    
3039     if (Pos('omdeling.info',Url) = 0) then
3040     begin
3041     tekst := tekst+crlf+crlf;
3042     tekst := tekst+crlf+crlf+' ********** DETTE ER KUN EN TEST VERSION **********';
3043     tekst := tekst+crlf+crlf;
3044     tekst := tekst+crlf+crlf+'Url: '+url;
3045     end;
3046    
3047     MessageBox(Handle, PWideChar(tekst), 'Information', MB_OK);
3048    
3049     end;
3050    
3051 torben 3039
3052 torben 2645 procedure TMainForm.ListBox1DrawItem(Control: TWinControl; Index: Integer;
3053     Rect: TRect; State: TOwnerDrawState);
3054     var
3055     ListBox1MaxLinLgd,i : Integer;
3056     myColor: TColor;
3057     myBrush: TBrush;
3058     begin
3059     ListBox1MaxLinLgd := 0;
3060     myBrush := TBrush.Create;
3061     with (Control as TListBox).Canvas do
3062     begin
3063     if not Odd(Index) then
3064     myColor := clWhite
3065     else
3066     myColor := clSilver;
3067    
3068     if odSelected in State then
3069     begin
3070     myColor := MainForm.Color;
3071     font.Color := clBlack;
3072     end;
3073    
3074     myBrush.Style := bsSolid;
3075     myBrush.Color := myColor;
3076     Windows.FillRect(handle, Rect, myBrush.Handle) ;
3077     Brush.Style := bsClear;
3078     TextOut(Rect.Left, Rect.Top,
3079     (Control as TListBox).Items[Index]) ;
3080     MyBrush.Free;
3081     end;
3082    
3083     for i := 0 to (ListBox1.Items.Count - 1) do
3084     if (ListBox1.Canvas.TextWidth(ListBox1.Items[i]) > ListBox1MaxLinLgd) then
3085     ListBox1MaxLinLgd := ListBox1.Canvas.TextWidth(ListBox1.Items[i]);
3086     ListBox1.ScrollWidth := ListBox1MaxLinLgd;
3087     end;
3088    
3089     procedure TMainForm.Lukprogrammet1Click(Sender: TObject);
3090     begin
3091    
3092     Application.Terminate;
3093    
3094     end;
3095    
3096     procedure TMainForm.Manual1Click(Sender: TObject);
3097     var
3098     fileName : string;
3099     begin
3100     fileName := 'Docs\Manual_' + Scanningtype + '.pdf';
3101    
3102     if FileExists(fileName) then
3103     begin
3104 torben 2685 if TUtils.AdobeReaderExists then
3105 torben 2645 begin
3106     //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3107     ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
3108     end
3109     else
3110     begin
3111     ShowMessage('Acrobat Reader er ikke installeret!');
3112     end;
3113     end
3114     else
3115     begin
3116     ShowMessage('Manualen : ' + #10#13 + fileName + #10#13 + 'blev ikke fundet!');
3117     end;
3118     end;
3119    
3120     procedure TMainForm.Manualgenerel1Click(Sender: TObject);
3121     var
3122     fileName : string;
3123     begin
3124     fileName := 'Docs\Manual_0.pdf';
3125    
3126     if FileExists(fileName) then
3127     begin
3128 torben 2685 if TUtils.AdobeReaderExists then
3129 torben 2645 begin
3130     //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3131     ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
3132     end
3133     else
3134     begin
3135 torben 2700 ShowMessage('Adobe Reader er ikke installeret!');
3136 torben 2645 end;
3137     end
3138     else
3139     begin
3140     ShowMessage('Manualen : ' + #10#13 + fileName + #10#13 + 'blev ikke fundet!');
3141     end;
3142     end;
3143    
3144 torben 2664 procedure TMainForm.menuIndleveringClick(Sender: TObject);
3145     begin
3146     Scanningtype := '7';
3147     NulstilAutomatiskValg();
3148     InitIndleveringskode();
3149     end;
3150    
3151 torben 2645 procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);
3152     begin
3153    
3154     if Sprgefterboghandlernummer1.Checked then
3155     begin
3156 torben 2653 chkSporgEfterKunde.Checked := true;
3157 torben 2645 end
3158     else
3159     begin
3160 torben 2653 chkSporgEfterKunde.Checked := false;
3161 torben 2645 end;
3162    
3163    
3164     end;
3165    
3166 torben 3054 procedure TMainForm.menuNatxpressReturDAO1Click(Sender: TObject);
3167 torben 2645 begin
3168     Scanningtype := '2';
3169     NulstilAutomatiskValg();
3170     InitReturFraDao();
3171     end;
3172    
3173 torben 3054 procedure TMainForm.menuPakkeshopRetur1Click(Sender: TObject);
3174 torben 2645 begin
3175     Scanningtype := '6';
3176     InitReturFraPakkeshop();
3177     NulstilAutomatiskValg();
3178     end;
3179    
3180     procedure TMainForm.InitNatxpresslevering();
3181     begin
3182 torben 3055 menuAutomatiskTjekkodeStyring.Enabled := true;
3183 torben 2668 btnNulstil.Visible := false;
3184 torben 3054 menuNatXpress1.Checked := true;
3185 torben 2645 InitForm(FarveNormal,TitelNormal,UrlNormal);
3186     PanelValg1.Color := clGreen;
3187     PanelValg1.Font.Color := clWhite;
3188 torben 2653
3189 torben 2652 chkAltidPrintLabel.Enabled := true;
3190 torben 2645 Altidprintepakkelabel1.Enabled := true;
3191     Altidprintepakkelabel1.Checked := false;
3192 torben 2652 chkAltidPrintLabel.Checked := false;
3193 torben 2645 Sprgefterboghandlernummer1.Checked := false;
3194 torben 2653 chkSporgEfterKunde.Checked := false;
3195 torben 2645 Sprgefterboghandlernummer1.Enabled := true;
3196 torben 3055 menuSmaaPakker.Enabled := false;
3197     menuStorePakker.Enabled := false;
3198 torben 2655 radioStorPakke.Enabled := false;
3199     radioLillePakke.Enabled := false;
3200 torben 2645 ListBox1.Visible := true;
3201 torben 2699 BtnOpdaterListen.Enabled := true;
3202 torben 2698 BtnEKLoverforsel.Enabled := true;
3203 torben 2645 InitLillePakke();
3204     ListBox1.Items.Clear;
3205 torben 2791
3206     chkForstorTilDirekte.Checked := false;
3207     chkForstorTilDirekte.Enabled := false;
3208    
3209 torben 2645 if BladhusSted = 0 then
3210     begin
3211     IndlesScanningLogFil();
3212     IndlesManglendeScanninger();
3213     end;
3214     end;
3215    
3216     procedure TMainForm.InitReturFraDao();
3217     begin
3218 torben 3055 menuAutomatiskTjekkodeStyring.Enabled := false;
3219 torben 3054 menuNatxpressReturDAO1.Checked := true;
3220 torben 2668 btnNulstil.Visible := false;
3221 torben 2645 InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);
3222     PanelValg2.Color := clGreen;
3223     PanelValg2.Font.Color := clWhite;
3224 torben 2653
3225 torben 2652 chkAltidPrintLabel.Enabled := false;
3226 torben 2645 Altidprintepakkelabel1.Enabled := false;
3227 torben 2652
3228 torben 2645 Altidprintepakkelabel1.Checked := false;
3229     Sprgefterboghandlernummer1.Checked := false;
3230 torben 2653 chkSporgEfterKunde.Checked := false;
3231 torben 2645 Sprgefterboghandlernummer1.Enabled := false;
3232 torben 3055 menuSmaaPakker.Enabled := true;
3233     menuStorePakker.Enabled := true;
3234 torben 2655 radioStorPakke.Enabled := true;
3235     radioLillePakke.Enabled := true;
3236 torben 2645 ListBox1.Visible := true;
3237     ListBox1.Items.Clear;
3238     ListBox2.Items.Clear;
3239 torben 2698 BtnEKLoverforsel.Enabled := false;
3240 torben 2791
3241     chkForstorTilDirekte.Checked := false;
3242     chkForstorTilDirekte.Enabled := false;
3243    
3244 torben 2645 InitLillePakke();
3245     end;
3246    
3247     procedure TMainForm.InitReturFraKunde();
3248     begin
3249 torben 3055 menuAutomatiskTjekkodeStyring.Enabled := false;
3250 torben 3054 menuNatxpressReturfraKunde1.Checked := true;
3251 torben 2668 btnNulstil.Visible := false;
3252 torben 2645 InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);
3253     PanelValg3.Color := clGreen;
3254     PanelValg3.Font.Color := clWhite;
3255 torben 2653
3256 torben 2652 chkAltidPrintLabel.Enabled := false;
3257 torben 2645 Altidprintepakkelabel1.Enabled := false;
3258     Altidprintepakkelabel1.Checked := false;
3259     Sprgefterboghandlernummer1.Checked := false;
3260 torben 2653 chkSporgEfterKunde.Checked := false;
3261 torben 2645 Sprgefterboghandlernummer1.Enabled := false;
3262 torben 3055 menuSmaaPakker.Enabled := true;
3263     menuStorePakker.Enabled := true;
3264 torben 2655 radioStorPakke.Enabled := true;
3265     radioLillePakke.Enabled := true;
3266 torben 2645 ListBox1.Visible := true;
3267     ListBox1.Items.Clear;
3268     ListBox2.Items.Clear;
3269 torben 2698 BtnEKLoverforsel.Enabled := false;
3270 torben 2791
3271     chkForstorTilDirekte.Checked := false;
3272     chkForstorTilDirekte.Enabled := false;
3273    
3274 torben 2645 InitLillePakke();
3275     end;
3276    
3277     procedure TMainForm.InitDirektelevering();
3278     begin
3279 torben 3055 menuAutomatiskTjekkodeStyring.Enabled := false;
3280 torben 3054 menuDaoDirekte1.Checked := true;
3281 torben 2668 btnNulstil.Visible := false;
3282 torben 2645 InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);
3283     PanelValg4.Color := clGreen;
3284     PanelValg4.Font.Color := clWhite;
3285 torben 2653
3286 torben 2652 chkAltidPrintLabel.Enabled := false;
3287 torben 2645 Altidprintepakkelabel1.Enabled := false;
3288 torben 2652
3289 torben 2645 Altidprintepakkelabel1.Checked := false;
3290     Sprgefterboghandlernummer1.Checked := false;
3291 torben 2653 chkSporgEfterKunde.Checked := false;
3292 torben 2645 Sprgefterboghandlernummer1.Enabled := false;
3293 torben 3055 menuSmaaPakker.Enabled := true;
3294     menuStorePakker.Enabled := true;
3295 torben 2655 radioStorPakke.Enabled := true;
3296     radioLillePakke.Enabled := true;
3297 torben 2645 ListBox1.Visible := true;
3298     ListBox1.Items.Clear;
3299 torben 2691 BtnDownloadKontrolfil.Enabled := false;
3300 torben 2699 BtnOpdaterListen.Enabled := true;
3301 torben 2696 BtnDownloadRuteskiftFil.Visible := false;
3302 torben 2698 BtnEKLoverforsel.Enabled := false;
3303 torben 2645 IdFTP1.Passive := true;
3304     IdFTP1.PassiveUseControlHost := true;
3305 torben 2791
3306     chkForstorTilDirekte.Checked := false;
3307     chkForstorTilDirekte.Enabled := true;
3308    
3309 torben 2645 if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then
3310     begin
3311     IndlesScanningLogFil();
3312     IndlesManglendeScanninger();
3313     end;
3314    
3315     end;
3316    
3317     procedure TMainForm.InitPakkeshoplevering();
3318     begin
3319 torben 3055 menuAutomatiskTjekkodeStyring.Enabled := true;
3320 torben 3054 menuPakkeshop1.Checked := true;
3321 torben 2668 btnNulstil.Visible := false;
3322 torben 2645 InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);
3323     PanelValg5.Color := clGreen;
3324     PanelValg5.Font.Color := clWhite;
3325 torben 2653
3326 torben 2652 chkAltidPrintLabel.Enabled := false;
3327 torben 2645 Altidprintepakkelabel1.Enabled := false;
3328 torben 2652
3329 torben 2645 Altidprintepakkelabel1.Checked := false;
3330     Sprgefterboghandlernummer1.Checked := false;
3331 torben 2653 chkSporgEfterKunde.Checked := false;
3332 torben 2645 Sprgefterboghandlernummer1.Enabled := false;
3333 torben 3055 menuSmaaPakker.Enabled := false;
3334     menuStorePakker.Enabled := false;
3335 torben 2655 radioStorPakke.Enabled := false;
3336     radioLillePakke.Enabled := false;
3337 torben 2645 ListBox1.Visible := true;
3338     ListBox1.Items.Clear;
3339 torben 2691 BtnDownloadKontrolfil.Enabled := false;
3340 torben 2699 BtnOpdaterListen.Enabled := true;
3341 torben 2656
3342 torben 2698 BtnEKLoverforsel.Enabled := true;
3343 torben 2656
3344 torben 2791 chkForstorTilDirekte.Checked := false;
3345     chkForstorTilDirekte.Enabled := true;
3346    
3347 torben 2645 InitLillePakke();
3348     IndlesScanningLogFil();
3349     if BladhusSted = 0 then
3350     begin
3351     IndlesManglendeScanninger();
3352     end;
3353     IdFTP1.Passive := true;
3354     IdFTP1.PassiveUseControlHost := true;
3355     end;
3356    
3357     procedure TMainForm.InitReturFraPakkeshop();
3358     begin
3359 torben 3055 menuAutomatiskTjekkodeStyring.Enabled := false;
3360 torben 3054 menuPakkeshopRetur1.Checked := true;
3361 torben 2668 btnNulstil.Visible := false;
3362 torben 2645 InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);
3363     PanelValg6.Color := clGreen;
3364     PanelValg6.Font.Color := clWhite;
3365 torben 2653
3366 torben 2652 chkAltidPrintLabel.Enabled := false;
3367 torben 2645 Altidprintepakkelabel1.Enabled := false;
3368 torben 2652
3369 torben 2645 Altidprintepakkelabel1.Checked := false;
3370     Sprgefterboghandlernummer1.Checked := false;
3371 torben 2653 chkSporgEfterKunde.Checked := false;
3372 torben 2645 Sprgefterboghandlernummer1.Enabled := false;
3373 torben 3055 menuSmaaPakker.Enabled := false;
3374     menuStorePakker.Enabled := false;
3375 torben 2655 radioStorPakke.Enabled := false;
3376     radioLillePakke.Enabled := false;
3377 torben 2645 ListBox1.Visible := true;
3378     ListBox1.Items.Clear;
3379 torben 2691 BtnDownloadKontrolfil.Enabled := false;
3380 torben 2699 BtnOpdaterListen.Enabled := true;
3381 torben 2698 BtnEKLoverforsel.Enabled := false;
3382 torben 2791
3383     chkForstorTilDirekte.Checked := false;
3384     chkForstorTilDirekte.Enabled := false;
3385    
3386    
3387 torben 2645 InitLillePakke();
3388     IndlesScanningLogFil();
3389     if BladhusSted = 0 then
3390     begin
3391     IndlesManglendeScanninger();
3392     end;
3393     IdFTP1.Passive := true;
3394     IdFTP1.PassiveUseControlHost := true;
3395     end;
3396    
3397 torben 3054 procedure TMainForm.menuNatxpressReturfraKunde1Click(Sender: TObject);
3398 torben 2645 begin
3399     Scanningtype := '3';
3400     NulstilAutomatiskValg();
3401     InitReturFraKunde();
3402     end;
3403    
3404 torben 2650 procedure TMainForm.InitIndleveringskode();
3405     begin
3406 torben 2664 menuIndlevering.Checked := true;
3407 torben 3055 menuAutomatiskTjekkodeStyring.Enabled := false;
3408 torben 2664
3409 torben 2668 btnNulstil.Visible := false;
3410 torben 2656 InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);
3411 torben 2650 PanelValg7.Color := clGreen;
3412     PanelValg7.Font.Color := clWhite;
3413 torben 2653
3414 torben 2652 chkAltidPrintLabel.Enabled := false;
3415 torben 2650 Altidprintepakkelabel1.Enabled := false;
3416 torben 2652
3417 torben 2650 Altidprintepakkelabel1.Checked := false;
3418     Sprgefterboghandlernummer1.Checked := false;
3419 torben 2656 Sprgefterboghandlernummer1.Enabled := false;
3420 torben 2653 chkSporgEfterKunde.Checked := false;
3421 torben 2656
3422    
3423    
3424 torben 3055 menuSmaaPakker.Enabled := false;
3425     menuStorePakker.Enabled := false;
3426 torben 2655 radioStorPakke.Enabled := false;
3427     radioLillePakke.Enabled := false;
3428 torben 2650 ListBox1.Visible := true;
3429 torben 2656 ListBox1.Items.Clear();
3430    
3431 torben 2691 BtnDownloadKontrolfil.Enabled := false;
3432 torben 2699 BtnOpdaterListen.Enabled := true;
3433 torben 2698 BtnEKLoverforsel.Enabled := false;
3434 torben 2791
3435     chkForstorTilDirekte.Checked := false;
3436     chkForstorTilDirekte.Enabled := false;
3437    
3438    
3439 torben 2664 InitLillePakke();
3440     IndlesScanningLogFil();
3441     if BladhusSted = 0 then
3442     begin
3443     IndlesManglendeScanninger();
3444     end;
3445 torben 2650 IdFTP1.Passive := true;
3446     IdFTP1.PassiveUseControlHost := true;
3447     end;
3448    
3449    
3450 torben 3055 procedure TMainForm.menuStorePakkerClick(Sender: TObject);
3451 torben 2645 begin
3452     InitStorPakke();
3453     end;
3454    
3455 torben 3055 procedure TMainForm.menuSmaaPakkerClick(Sender: TObject);
3456 torben 2645 begin
3457     InitLillePakke();
3458     end;
3459    
3460     procedure TMainForm.InitLillePakke();
3461     begin
3462 torben 2655 radioLillePakke.Checked := true;
3463 torben 3055 menuSmaaPakker.Checked := true;
3464 torben 2645 // Stregkode := '';
3465     end;
3466    
3467     procedure TMainForm.InitStorPakke();
3468     begin
3469 torben 2655 radioStorPakke.Checked := true;
3470 torben 3055 menuStorePakker.Checked := true;
3471 torben 2645 // 20150310: start
3472     // Stregkode := '';
3473     // 20150310: slut
3474     end;
3475    
3476 torben 2677
3477 torben 2645
3478     procedure TMainForm.PlaySound(filename : PWideChar);
3479     begin
3480     if (filename <> '') then
3481     begin
3482     sndPlaySound(filename,
3483     SND_NODEFAULT Or SND_ASYNC);
3484     end;
3485     end;
3486    
3487     procedure TMainForm.Testlyd1Click(Sender: TObject);
3488     begin
3489     if AlarmLyd <> '' then
3490     begin
3491     PlaySound(PWideChar(AlarmLyd));
3492     end
3493     else
3494     begin
3495     MessageBox(Handle, PWideChar('Lyd fil ikke fundet (alarm)'), 'Information', MB_OK);
3496     end;
3497     end;
3498    
3499     procedure TMainForm.Testlyd2Click(Sender: TObject);
3500     begin
3501     if (PakkeshopText1.Caption = 'Tjekkode') then
3502     begin
3503     if ScannetOkTilTjekkodeLyd <> '' then
3504     begin
3505     PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));
3506     end
3507     else
3508     begin
3509     MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkTilTjekkodeLyd)'), 'Information', MB_OK);
3510     end;
3511     exit;
3512     end;
3513    
3514 torben 3055 if menuSmaaPakker.Checked then
3515 torben 2645 if ScannetOkLyd <> '' then
3516     begin
3517     PlaySound(PWideChar(ScannetOkLyd));
3518     end
3519     else
3520     begin
3521     MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);
3522     end;
3523 torben 3055 if menuStorePakker.Checked then
3524 torben 2645 if ScannetOkStorLyd <> '' then
3525     begin
3526     PlaySound(PWideChar(ScannetOkStorLyd));
3527     end
3528     else
3529     begin
3530     MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);
3531     end;
3532     end;
3533    
3534    
3535 torben 3054 procedure TMainForm.menuDaoDirekte1Click(Sender: TObject);
3536 torben 2645 begin
3537     Scanningtype := '4';
3538     NulstilAutomatiskValg();
3539     InitDirektelevering();
3540     end;
3541    
3542     procedure TMainForm.Button1Click(Sender: TObject);
3543     begin;
3544     CheckCode();
3545     end;
3546    
3547 torben 2698 procedure TMainForm.BtnEKLoverforselClick(Sender: TObject);
3548 torben 2645 var
3549     WebSvar : String;
3550     URLStr : String;
3551     StedKode : String;
3552     Node: IXMLNode;
3553     I: Integer;
3554     status, kommentar : String;
3555    
3556     begin
3557 torben 2698 BtnEKLoverforsel.Enabled := false;
3558 torben 2645
3559     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Overfører de scannede pakker til EKL');
3560     logTekst := 'Overfører de scannede pakker til EKL';
3561     SkrivScanningLogFil(logTekst);
3562     StedKode := Sted;
3563     URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);
3564 torben 2704
3565 torben 2645 if PanelValg5.Color = clGreen then
3566     begin
3567     URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);
3568     end;
3569    
3570 torben 2704
3571 torben 2645 try
3572     //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
3573     WebSvar := IdHTTP1.Get(URLStr);
3574     except
3575     on e:EIdConnClosedGracefully do
3576     begin
3577     // Her skal vi ikke gøre noget - men vi skal forespørge igen
3578     WebSvar := IdHTTP1.Get(URLStr);
3579     end;
3580     on e:exception do
3581     begin
3582     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Fejl i web forespørgsel: '+e.Message);
3583     logTekst := 'Fejl i web forespørgsel: '+e.Message;
3584     SkrivScanningLogFil(logTekst);
3585     raise exception.CreateFmt('Fejl i web forespørgsel: %s',[e.Message]);
3586     end;
3587     end;
3588     try
3589     XMLDocument1.LoadFromXML(WebSvar);
3590     for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
3591     Node:= XMLDocument1.DocumentElement.ChildNodes[I];
3592     if Node.NodeType = ntElement then begin
3593     if Node.NodeName = 'Status' then begin
3594     if not VarIsNull(Node.NodeValue) then
3595     status := Node.NodeValue;
3596     end;
3597     if Node.NodeName = 'Kommentar' then begin
3598     if not VarIsNull(Node.NodeValue) then
3599     kommentar := Node.NodeValue;
3600     end;
3601     end;
3602     end;
3603    
3604     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Overførsel til EKL: ' + status+' '+kommentar);
3605     logTekst := 'Overførsel til EKL: ' + status;
3606     SkrivScanningLogFil(logTekst);
3607    
3608     except on e:exception do
3609     begin
3610     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Overførsel til EKL: ' + status);
3611     logTekst := 'Overførsel til EKL: ' + status;
3612     SkrivScanningLogFil(logTekst);
3613     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Fejl i XML-format: '+e.Message);
3614     logTekst := 'Fejl i XML-format: '+e.Message;
3615     SkrivScanningLogFil(logTekst);
3616     raise exception.CreateFmt('Fejl i XML-format: %s',[e.Message]);
3617     end;
3618     end;
3619    
3620 torben 2698 BtnEKLoverforsel.Enabled := true;
3621 torben 2645
3622     ListBox1.SetFocus; // for at flytte fokus væk fra knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
3623    
3624     // Hvis der var fejl i overførslen skal dette fejlmeldes her
3625     if status = 'Fejl' then
3626     begin // Her skal komme en alarm og rød skærm
3627     PlaySound(PWideChar(AlarmLyd));
3628     MainForm.Color := clRed;
3629     RutenummerST.Caption := 'EKL overførsel';
3630     BoghandlerNavnST.Caption := 'Fejl:';
3631     if (pos('Deadlock', Kommentar) > 0) then
3632     begin
3633     RutenummerST.Caption := 'EKL overførsel fejlet';
3634     BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';
3635     end;
3636     KommentarST.Caption := Kommentar;
3637 torben 2668 btnNulstil.Visible := true;
3638 torben 2645 end;
3639    
3640     end;
3641    
3642     procedure TMainForm.CheckCode();
3643     var
3644     Barcode, Svar : String;
3645     ClickedOK : Boolean;
3646     begin
3647     ClickedOK := InputQuery('Barcode check', 'Indtast stregkode', Barcode);
3648     if ClickedOk then
3649     begin
3650     { if (BarCodeValid(Barcode)) then
3651     MessageBox(Handle, 'ok', 'Stregkode', MB_OK)
3652     else
3653     MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);
3654     }
3655     // MessageBox(Handle, PAnsiChar(CheckSumModulo10(Barcode)), 'Stregkode', MB_OK);
3656     { if (CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1)) = Barcode) then
3657     MessageBox(Handle, 'ok', 'Stregkode', MB_OK)
3658     else
3659     MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);
3660     }
3661 torben 2682 Svar := 'Beregnet: ' + TUtils.CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;
3662 torben 2645
3663     MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);
3664     CheckCode();
3665     end;
3666    
3667     end;
3668    
3669    
3670     //
3671     // Bladhus ***
3672     //
3673     procedure TMainForm.DownloadBladhusRuteskiftfil();
3674     const
3675     crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
3676    
3677     var
3678     filnavn_input : string;
3679     filnavn_output : string;
3680     buttonSelected : Integer;
3681    
3682     begin
3683     filnavn_input := BladhusRuteskiftfil_server; // hvis filen ikke findes vises 'no such file or directory'
3684     filnavn_output := BladhusRuteskiftfil_lokal;
3685    
3686     case BladhusSted of
3687     00 : begin;
3688     end;
3689     01 : begin;
3690     buttonSelected := MessageDlg('Henter ruteskift filen ' + filnavn_input + ' fra DAO ftp server',mtConfirmation, mbOKCancel, 0);
3691     if buttonSelected = mrOK then
3692     begin
3693     ListBox1.Items.Insert(0,TimeToStr(now) + ': Henter ' + filnavn_input + ' fra DAO ftp serveren.');
3694     logTekst := 'Henter ' + filnavn_input + ' fra DAO ftp serveren.';
3695     SkrivScanningLogFil(logTekst);
3696     try
3697     try
3698    
3699     IdFTP1.host:='ftp.daoas.dk'; // hvis forkert vises 'socket error # 11001 host not found'
3700     IdFTP1.Username:='nordjyske'; // hvis forkert vises 'login incorrect'
3701     IdFTP1.Password:='kew3ma9u'; // hvis forkert vises 'login incorrect'
3702     IdFTP1.Connect;
3703    
3704     //IdFTP1.TransferType := ftASCII;
3705     // IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3706     try
3707     //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
3708     IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3709     except on e:EIdConnClosedGracefully do
3710     begin
3711     // Her skal vi ikke gøre noget - men vi skal forespørge igen
3712     IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3713     end;
3714     end;
3715     // hvis 3. parameter er false (filen må ikke overskrives) vises 'Destination file already exists' hvis filen findes på disken
3716    
3717     ListBox1.Items.Insert(0,TimeToStr(now) + ': Ruteskift fil gemt lokalt som ' + filnavn_output + '.');
3718     logTekst := 'Ruteskift fil gemt lokalt som ' + filnavn_output + '.';
3719     SkrivScanningLogFil(logTekst);
3720    
3721     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Ruteskift fil tjekkes.');
3722     logTekst := 'Ruteskift fil tjekkes.';
3723     SkrivScanningLogFil(logTekst);
3724    
3725     finally
3726     IdFTP1.Disconnect;
3727     end;
3728    
3729     except on e:exception do
3730     begin
3731     ListBox1.Items.Insert(0,TimeToStr(now) + ': Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username);
3732     logTekst := 'Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username;
3733     SkrivScanningLogFil(logTekst);
3734     raise exception.CreateFmt('Fejl i FTP handling:'+ CrLf + '%s',
3735     [e.Message
3736     + CrLf + 'Host: '+IdFTP1.host
3737     + CrLf + 'Username: '+IdFTP1.Username
3738     ]
3739     );
3740     end;
3741     end;
3742     end
3743     else
3744     begin
3745     ListBox1.Items.Insert(0,TimeToStr(now) + ': Download af ruteskiftfil annulleret.');
3746     logTekst := 'Download af ruteskiftfil annulleret';
3747     SkrivScanningLogFil(logTekst);
3748     end;
3749     IndlesRuteskiftFil(filnavn_output);
3750     end;
3751     02 : begin;
3752     end;
3753     03 : begin;
3754     buttonSelected := MessageDlg('Henter ruteskift filen ' + filnavn_input + ' fra DAO ftp server',mtConfirmation, mbOKCancel, 0);
3755     if buttonSelected = mrOK then
3756     begin
3757     ListBox1.Items.Insert(0,TimeToStr(now) + ': Henter ' + filnavn_input + ' fra DAO ftp serveren.');
3758     logTekst := 'Henter ' + filnavn_input + ' fra DAO ftp serveren.';
3759     SkrivScanningLogFil(logTekst);
3760     try
3761     try
3762    
3763     IdFTP1.host:='ftp.daoas.dk'; // hvis forkert vises 'socket error # 11001 host not found'
3764     IdFTP1.Username:='fd'; // hvis forkert vises 'login incorrect'
3765     IdFTP1.Password:='pu4aphedre'; // hvis forkert vises 'login incorrect'
3766     IdFTP1.Connect;
3767    
3768     //IdFTP1.TransferType := ftASCII;
3769     // IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3770     try
3771     //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
3772     IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3773     except on e:EIdConnClosedGracefully do
3774     begin
3775     // Her skal vi ikke gøre noget - men vi skal forespørge igen
3776     IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3777     end;
3778     end;
3779     // hvis 3. parameter er false (filen må ikke overskrives) vises 'Destination file already exists' hvis filen findes på disken
3780    
3781     ListBox1.Items.Insert(0,TimeToStr(now) + ': Rute ruteskift fil gemt lokalt som ' + filnavn_output + '.');
3782     logTekst := 'Ruteskift fil gemt lokalt som ' + filnavn_output + '.';
3783     SkrivScanningLogFil(logTekst);
3784    
3785     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Ruteskift fil tjekkes.');
3786     logTekst := 'Ruteskift fil tjekkes.';
3787     SkrivScanningLogFil(logTekst);
3788    
3789     finally
3790     IdFTP1.Disconnect;
3791     end;
3792    
3793     except on e:exception do
3794     begin
3795     ListBox1.Items.Insert(0,TimeToStr(now) + ': Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username);
3796     logTekst := 'Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username;
3797     SkrivScanningLogFil(logTekst);
3798     raise exception.CreateFmt('Fejl i FTP handling:'+ CrLf + '%s',
3799     [e.Message
3800     + CrLf + 'Host: '+IdFTP1.host
3801     + CrLf + 'Username: '+IdFTP1.Username
3802     ]
3803     );
3804     end;
3805     end;
3806     end
3807     else
3808     begin
3809     ListBox1.Items.Insert(0,TimeToStr(now) + ': Download af ruteskiftfil annulleret.');
3810     logTekst := 'Download af ruteskiftfil annulleret';
3811     SkrivScanningLogFil(logTekst);
3812     end;
3813     IndlesRuteskiftFil(filnavn_output);
3814     end;
3815     04 : begin;
3816     end;
3817     else
3818     ShowMessage('Ukendt Bladhus sted: ' + IntToStr(BladhusSted));
3819     end;
3820    
3821     end;
3822    
3823     procedure TMainForm.DownloadBladhusKontrolfil();
3824     const
3825     crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
3826    
3827     var
3828     filnavn_input : string;
3829     filnavn_output : string;
3830     buttonSelected : Integer;
3831    
3832     begin
3833     filnavn_input := BladhusKontrolfil_server; // hvis filen ikke findes vises 'no such file or directory'
3834     filnavn_output := BladhusKontrolfil_lokal;
3835    
3836     case BladhusSted of
3837     01 :
3838     begin;
3839     buttonSelected := MessageDlg('Henter rute kontrol filen ' + filnavn_input + ' fra DAO ftp server',mtConfirmation, mbOKCancel, 0);
3840     if buttonSelected = mrOK then
3841     begin
3842     ListBox1.Items.Insert(0,TimeToStr(now) + ': Henter ' + filnavn_input + ' fra DAO ftp serveren.');
3843     logTekst := 'Henter ' + filnavn_input + ' fra DAO ftp serveren.';
3844     SkrivScanningLogFil(logTekst);
3845     try
3846     try
3847    
3848     IdFTP1.host:='ftp.daoas.dk'; // hvis forkert vises 'socket error # 11001 host not found'
3849     IdFTP1.Username:='nordjyske'; // hvis forkert vises 'login incorrect'
3850     IdFTP1.Password:='kew3ma9u'; // hvis forkert vises 'login incorrect'
3851     IdFTP1.Connect;
3852    
3853     //IdFTP1.TransferType := ftASCII;
3854     // IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3855     try
3856     //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
3857     IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3858     except on e:EIdConnClosedGracefully do
3859     begin
3860     // Her skal vi ikke gøre noget - men vi skal forespørge igen
3861     IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3862     end;
3863     end;
3864     // hvis 3. parameter er false (filen må ikke overskrives) vises 'Destination file already exists' hvis filen findes på disken
3865    
3866     ListBox1.Items.Insert(0,TimeToStr(now) + ': Rute kontrol fil gemt lokalt som ' + filnavn_output + '.');
3867     logTekst := 'Rute kontrol fil gemt lokalt som ' + filnavn_output + '.';
3868     SkrivScanningLogFil(logTekst);
3869    
3870     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Rute kontrol fil tjekkes.');
3871     logTekst := 'Rute kontrol fil tjekkes.';
3872     SkrivScanningLogFil(logTekst);
3873    
3874     finally
3875     IdFTP1.Disconnect;
3876     end;
3877    
3878     except on e:exception do
3879     begin
3880     ListBox1.Items.Insert(0,TimeToStr(now) + ': Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username);
3881     logTekst := 'Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username;
3882     SkrivScanningLogFil(logTekst);
3883     raise exception.CreateFmt('Fejl i FTP handling:'+ CrLf + '%s',
3884     [e.Message
3885     + CrLf + 'Host: '+IdFTP1.host
3886     + CrLf + 'Username: '+IdFTP1.Username
3887     ]
3888     );
3889     end;
3890     end;
3891     end
3892     else
3893     begin
3894     ListBox1.Items.Insert(0,TimeToStr(now) + ': Download af kontrolfil annulleret.');
3895     logTekst := 'Download af kontrolfil annulleret';
3896     SkrivScanningLogFil(logTekst);
3897     end;
3898     IndlesKontrolFil(filnavn_output);
3899     end;
3900     02 : begin;
3901     end;
3902     03 : begin;
3903     buttonSelected := MessageDlg('Henter rute kontrol filen ' + filnavn_input + ' fra DAO ftp server',mtConfirmation, mbOKCancel, 0);
3904     if buttonSelected = mrOK then
3905     begin
3906     ListBox1.Items.Insert(0,TimeToStr(now) + ': Henter ' + filnavn_input + ' fra DAO ftp serveren.');
3907     logTekst := 'Henter ' + filnavn_input + ' fra DAO ftp serveren.';
3908     SkrivScanningLogFil(logTekst);
3909     try
3910     try
3911    
3912     IdFTP1.host:='ftp.daoas.dk'; // hvis forkert vises 'socket error # 11001 host not found'
3913     IdFTP1.Username:='fd'; // hvis forkert vises 'login incorrect'
3914     IdFTP1.Password:='pu4aphedre'; // hvis forkert vises 'login incorrect'
3915     IdFTP1.Connect;
3916    
3917     //IdFTP1.TransferType := ftASCII;
3918     IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3919     // hvis 3. parameter er false (filen må ikke overskrives) vises 'Destination file already exists' hvis filen findes på disken
3920    
3921     ListBox1.Items.Insert(0,TimeToStr(now) + ': Rute kontrol fil gemt lokalt som ' + filnavn_output + '.');
3922     logTekst := 'Rute kontrol fil gemt lokalt som ' + filnavn_output + '.';
3923     SkrivScanningLogFil(logTekst);
3924    
3925     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Rute kontrol fil tjekkes.');
3926     logTekst := 'Rute kontrol fil tjekkes.';
3927     SkrivScanningLogFil(logTekst);
3928    
3929     finally
3930     IdFTP1.Disconnect;
3931     end;
3932    
3933     except on e:exception do
3934     begin
3935     ListBox1.Items.Insert(0,TimeToStr(now) + ': Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username);
3936     logTekst := 'Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username;
3937     SkrivScanningLogFil(logTekst);
3938     raise exception.CreateFmt('Fejl i FTP handling:'+ CrLf + '%s',
3939     [e.Message
3940     + CrLf + 'Host: '+IdFTP1.host
3941     + CrLf + 'Username: '+IdFTP1.Username
3942     ]
3943     );
3944     end;
3945     end;
3946     end
3947     else
3948     begin
3949     ListBox1.Items.Insert(0,TimeToStr(now) + ': Download af kontrolfil annulleret.');
3950     logTekst := 'Download af kontrolfil annulleret';
3951     SkrivScanningLogFil(logTekst);
3952     end;
3953     IndlesKontrolFil(filnavn_output);
3954     end;
3955     04 : begin;
3956     end;
3957     else
3958     ShowMessage('Ukendt Bladhus sted ???') ;
3959     end;
3960    
3961     end;
3962    
3963     procedure TMainForm.SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);
3964     const
3965     crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
3966    
3967     var
3968     testsystem : String;
3969    
3970     begin
3971     testsystem := '';
3972     if (Pos('omdeling.info',Url) = 0) then
3973     begin
3974     testsystem := 'TEST_';
3975     end;
3976     filnavn_output := testsystem + filnavn_output;
3977    
3978     ListBox1.Items.Insert(0,TimeToStr(now) + ': Sender ' + filnavn_input + ' til DAO ftp serveren.');
3979     logTekst := 'Sender ' + filnavn_input + ' til DAO ftp serveren.';
3980     SkrivScanningLogFil(logTekst);
3981     try
3982     try
3983    
3984     IdFTP1.host:='ftp.daoas.dk'; // hvis forkert vises 'socket error # 11001 host not found'
3985     IdFTP1.Username:='scannerprogram'; // hvis forkert vises 'login incorrect'
3986     IdFTP1.Password:='DaoScan2015'; // hvis forkert vises 'login incorrect'
3987     IdFTP1.Connect;
3988    
3989     //IdFTP1.TransferType := ftASCII;
3990     try
3991     //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
3992     IdFTP1.ChangeDir('fraScannerprogram');
3993     IdFTP1.Put(filnavn_input, filnavn_output, True);
3994     except on e:EIdConnClosedGracefully do
3995     begin
3996     // Her skal vi ikke gøre noget - men vi skal forespørge igen
3997     IdFTP1.Put(filnavn_input, filnavn_output, True);
3998     end;
3999     end;
4000     // hvis 3. parameter er false (filen må ikke overskrives) vises 'Destination file already exists' hvis filen findes på disken
4001    
4002     logTekst := fil_type + ' fil sendt til DAO som ' + filnavn_output + '.';
4003     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
4004     SkrivScanningLogFil(logTekst);
4005    
4006     finally
4007     IdFTP1.Disconnect;
4008     end;
4009    
4010     except on e:exception do
4011     begin
4012     ListBox1.Items.Insert(0,TimeToStr(now) + ': Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username);
4013     logTekst := 'Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username;
4014     SkrivScanningLogFil(logTekst);
4015     raise exception.CreateFmt('Fejl i FTP handling:'+ CrLf + '%s',
4016     [e.Message
4017     + CrLf + 'Host: '+IdFTP1.host
4018     + CrLf + 'Username: '+IdFTP1.Username
4019     ]
4020     );
4021     end;
4022     end;
4023     end;
4024    
4025     procedure TMainForm.UploadLogfilTilDAO();
4026     const
4027     crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
4028    
4029     var
4030     idag, imorgen : TDateTime;
4031     imorgenYmd : string;
4032     logFilnavn : string;
4033     filnavn_input : string;
4034     filnavn_output : string;
4035     buttonSelected : Integer;
4036     openDialog : TOpenDialog;
4037    
4038     begin
4039     idag := Now;
4040     imorgen := IncDay(idag, 1); //adds 1 day(s)
4041     // Hvis vi er efter midnat og inden middag skal vi bruge dagsdato som imorgen
4042     if (FormatDateTime('hh:nn',idag) < '12:00') then
4043     begin
4044     imorgen := idag;
4045     end;
4046     imorgenYmd := FormatDateTime('_yyyymmdd',imorgen);
4047     logFilnavn := 'Logs/' + 'Scanning' + imorgenYmd + '.log';
4048     filnavn_input := logFilnavn; // hvis filen ikke findes vises 'no such file or directory'
4049     filnavn_output := Sted + '_Scanning' + imorgenYmd + '_' + FormatDateTime('hhmmss',idag) + '.log';
4050    
4051     buttonSelected := MessageDlg('Sender den aktuelle log fil (' + filnavn_input + ') til DAO ftp server',mtConfirmation, mbOKCancel, 0);
4052     if buttonSelected = mrOK then
4053     begin
4054     SendFilTilDao('Log', filnavn_input, filnavn_output);
4055     end
4056     else
4057     begin
4058     buttonSelected := MessageDlg('Vil du sende en anden logfil til DAO ftp server',mtConfirmation, mbOKCancel, 0);
4059     if buttonSelected = mrOK then
4060     begin
4061     // Create the open dialog object - assign to our open dialog variable
4062     openDialog := TOpenDialog.Create(self);
4063    
4064     // Set up the starting directory to be the current one
4065     openDialog.InitialDir := GetCurrentDir + '\Logs';
4066    
4067     // Only allow existing files to be selected
4068     openDialog.Options := [ofFileMustExist];
4069    
4070     // Allow only .log files to be selected
4071     openDialog.Filter := 'Log filer|*.log';
4072    
4073     // Display the open file dialog
4074     if openDialog.Execute then
4075     begin
4076     filnavn_input := openDialog.FileName; // hvis filen ikke findes vises 'no such file or directory'
4077     filnavn_output := Sted + '_Scanning' + imorgenYmd + '_' + FormatDateTime('hhmmss',idag) + '.log';
4078     SendFilTilDao('Log', filnavn_input, filnavn_output);
4079     end
4080     else
4081     begin
4082     logTekst := 'Upload af log fil annulleret';
4083     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
4084     SkrivScanningLogFil(logTekst);
4085     end;
4086    
4087     // Free up the dialog
4088     openDialog.Free;
4089     end
4090     else
4091     begin
4092     logTekst := 'Upload af log fil annulleret';
4093     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
4094     SkrivScanningLogFil(logTekst);
4095     end;
4096     end;
4097    
4098     end;
4099    
4100     procedure TMainForm.UploadInifilTilDAO();
4101     const
4102     crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
4103    
4104     var
4105     idag, imorgen : TDateTime;
4106     imorgenYmd : string;
4107     iniFilnavn : string;
4108     filnavn_input : string;
4109     filnavn_output : string;
4110     buttonSelected : Integer;
4111    
4112     begin
4113     idag := Now;
4114     imorgen := IncDay(idag, 1); //adds 1 day(s)
4115     // Hvis vi er efter midnat og inden middag skal vi bruge dagsdato som imorgen
4116     if (FormatDateTime('hh:nn',idag) < '12:00') then
4117     begin
4118     imorgen := idag;
4119     end;
4120     imorgenYmd := FormatDateTime('_yyyymmdd',imorgen);
4121     iniFilnavn := ChangeFileExt(ExtractFileName(ExtractFileName(ParamStr(0))), '.ini');
4122     filnavn_input := iniFilnavn; // hvis filen ikke findes vises 'no such file or directory'
4123     filnavn_output := Sted + '_Scanning' + imorgenYmd + '_' + FormatDateTime('hhmmss',idag) + '.ini';
4124    
4125     buttonSelected := MessageDlg('Sender ini filen ' + filnavn_input + ' til DAO ftp server',mtConfirmation, mbOKCancel, 0);
4126     if buttonSelected = mrOK then
4127     begin
4128     SendFilTilDao('Ini', filnavn_input, filnavn_output);
4129     end
4130     else
4131     begin
4132     logTekst := 'Upload af ini fil annulleret';
4133     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
4134     SkrivScanningLogFil(logTekst);
4135     end;
4136    
4137     end;
4138    
4139     procedure TMainForm.Uploadlogfil1Click(Sender: TObject);
4140     begin
4141     UploadLogfilTilDAO();
4142     UploadInifilTilDAO();
4143     ListBox1.SetFocus; // for at flytte fokus væk fra upload knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4144     end;
4145    
4146 torben 2691 procedure TMainForm.BtnDownloadKontrolfilClick(Sender: TObject);
4147 torben 2645 begin
4148     DownloadBladhusKontrolfil();
4149     ListBox1.SetFocus; // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4150     end;
4151    
4152 torben 2699 procedure TMainForm.BtnOpdaterListenClick(Sender: TObject);
4153 torben 2645 const
4154     crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
4155    
4156     begin
4157     IndlesManglendeScanninger();
4158     ListBox1.SetFocus; // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4159     end;
4160    
4161 torben 2696 procedure TMainForm.BtnDownloadRuteskiftFilClick(Sender: TObject);
4162 torben 2645 begin
4163     if (getProddag() = 'lørdag') then
4164     begin
4165     DownloadBladhusRuteskiftfil();
4166     end;
4167     ListBox1.SetFocus; // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4168     end;
4169    
4170    
4171 torben 2677
4172 torben 2645 procedure TMainForm.IndlesManglendeScanninger();
4173     var
4174     WebSvar : String;
4175     URLStr : String;
4176     StedKode : String;
4177     Node: IXMLNode;
4178     I: Integer;
4179     stregkode, modtagernavn, modtageradresse, kommentar : string;
4180     pakketype, tjekkodestatus : String;
4181 torben 3056 antalLiniefelter, antalFelterFundet, linienr : Integer;
4182 torben 2791 //pakketyper : TStrings;
4183     pakketyper : TDictionary<String, Integer>;
4184     tmpAntal : Integer;
4185    
4186    
4187    
4188 torben 2645 antlin : Integer;
4189 torben 2656
4190 torben 2645 antlinIdag, antlinSenere : Integer;
4191 torben 2656
4192 torben 2792 //XmlFelter : TStrings;
4193     XmlFelter : TDictionary<String, Integer>;
4194 torben 2645
4195     begin
4196 torben 2791
4197    
4198 torben 2792 XmlFelter := TDictionary<String, Integer>.Create;
4199 torben 2791 pakketyper := TDictionary<String, Integer>.Create;
4200 torben 2792
4201 torben 2645 linienr := 0;
4202     ListBox2.Clear;
4203     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Henter oversigt over pakker der endnu ikke er modtaget');
4204     logTekst := 'Henter oversigt over pakker der endnu ikke er modtaget';
4205     SkrivScanningLogFil(logTekst);
4206     if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
4207     begin
4208     StedKode := BladhusStedKode[BladhusSted];
4209     end
4210     else
4211     begin
4212     StedKode := Sted;
4213     end;
4214    
4215 torben 2791 Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4216 torben 2656
4217 torben 2689
4218 torben 2791
4219 torben 2689 if (Scanningtype = '7') then
4220 torben 2645 begin
4221 torben 2689 URLStr := Format(UrlIndleveringsPakkeManglendeScanninger, [StedKode]);
4222 torben 2645 end
4223 torben 2689 else if (Scanningtype = '6') then
4224     begin
4225     URLStr := Format(UrlPakkeshopManglendeReturScanninger, [StedKode]);
4226     end
4227 torben 2645 else if (Scanningtype = '5') then
4228     begin
4229 torben 2689 URLStr := Format(UrlPakkeshopManglendeScanninger, [StedKode]);
4230 torben 2645 end
4231     else if (Scanningtype = '1') then
4232     begin
4233     URLStr := Format(UrlManglendeScanninger,[StedKode,'B2']);
4234     end
4235     else if (Scanningtype = '4') then
4236     begin
4237     URLStr := Format(UrlManglendeScanninger,[StedKode,'A2']); // Budleveringer
4238     end
4239     else
4240     begin
4241     exit;
4242     end;
4243     // 20150310: slut
4244    
4245     try
4246     //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
4247     // URLStr := string(Utf8Encode(URLStr));
4248     WebSvar := IdHTTP1.Get(URLStr);
4249     except
4250     on e:EIdConnClosedGracefully do
4251     begin
4252     // Her skal vi ikke gøre noget - men vi skal forespørge igen
4253     WebSvar := IdHTTP1.Get(URLStr);
4254 torben 3048
4255    
4256    
4257 torben 2645 end;
4258     on e:exception do
4259     begin
4260     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Fejl i web forespørgsel: '+e.Message);
4261     logTekst := 'Fejl i web forespørgsel: '+e.Message;
4262     SkrivScanningLogFil(logTekst);
4263     raise exception.CreateFmt('Fejl i web forespørgsel: %s',[e.Message]);
4264     end;
4265     end;
4266     try
4267     XMLDocument1.LoadFromXML(WebSvar);
4268    
4269 torben 2656
4270 torben 2645 antlin := 0;
4271     antlinIdag := 0;
4272     antlinSenere := 0;
4273 torben 2656
4274 torben 2645 for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4275     Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4276     if Node.NodeType = ntElement then begin
4277     if Node.NodeName = 'Stregkode' then
4278     begin
4279 torben 2792 Inc(antlin);
4280 torben 2645 // 20150306: start
4281     if not VarIsNull(Node.NodeValue) then
4282     begin
4283     if (pos('(', Node.NodeValue) = 0) then
4284     begin
4285 torben 2792 Inc(antlinIdag);
4286 torben 2645 end
4287     else
4288     begin
4289 torben 2792 Inc(antlinSenere);
4290 torben 2645 end;
4291     end;
4292     // 20150306: slut
4293     end;
4294     end;
4295 torben 2792 if ( XmlFelter.ContainsKey(Node.NodeName) ) then
4296     begin
4297     XmlFelter.TryGetValue(Node.NodeName, tmpAntal);
4298     XmlFelter.AddOrSetValue(Node.NodeName, tmpAntal + 1);
4299     end
4300 torben 2645 else
4301 torben 2792 begin
4302     XmlFelter.Add(Node.NodeName, 1);
4303     end;
4304 torben 2645
4305     end;
4306     antalLiniefelter := XmlFelter.Count;
4307     antalFelterFundet := 0;
4308     SetLength(stregkoderMedTjekkodeArray, 0); // reset fra tidligere brug
4309     SetLength(stregkoderMedTjekkodeArray, antlin); // sæt antal elementer i array
4310 torben 2656
4311 torben 2791
4312     Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4313    
4314 torben 2645 logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4315     if (antlinSenere > 0) then
4316     begin
4317     logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';
4318     end;
4319     logTekst := logTekst + '.';
4320 torben 2656
4321 torben 2645 SkrivScanningLogFil(logTekst);
4322 torben 2794
4323    
4324 torben 2645 for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4325     Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4326     if Node.NodeType = ntElement then begin
4327     if Node.NodeName = 'Stregkode' then begin
4328     if not VarIsNull(Node.NodeValue) then
4329     stregkode := Node.NodeValue;
4330     antalFelterFundet := antalFelterFundet + 1;
4331 torben 2794 end
4332     else if Node.NodeName = 'ModtagerNavn' then begin
4333 torben 2645 if not VarIsNull(Node.NodeValue) then
4334     modtagernavn := Node.NodeValue;
4335     antalFelterFundet := antalFelterFundet + 1;
4336 torben 2794 end
4337     else if Node.NodeName = 'ModtagerAdresse' then begin
4338 torben 2645 if not VarIsNull(Node.NodeValue) then
4339     modtageradresse := Node.NodeValue;
4340     antalFelterFundet := antalFelterFundet + 1;
4341 torben 2794 end
4342     else if Node.NodeName = 'Kommentar' then begin
4343 torben 2645 if not VarIsNull(Node.NodeValue) then
4344     kommentar := Node.NodeValue;
4345     antalFelterFundet := antalFelterFundet + 1;
4346 torben 2794 end
4347     else if Node.NodeName = 'PakkeType' then begin
4348 torben 2645 if not VarIsNull(Node.NodeValue) then
4349     pakketype := Node.NodeValue;
4350     antalFelterFundet := antalFelterFundet + 1;
4351 torben 2791 if ( pakketyper.ContainsKey(pakketype) ) then
4352     begin
4353     pakketyper.TryGetValue(pakketype, tmpAntal);
4354     pakketyper.AddOrSetValue(pakketype, tmpAntal + 1);
4355     end
4356 torben 2645 else
4357 torben 2791 pakketyper.Add(pakketype, 1);
4358 torben 2794 end
4359     else if Node.NodeName = 'TjekkodeStatus' then begin
4360 torben 2645 if not VarIsNull(Node.NodeValue) then
4361     tjekkodestatus := Node.NodeValue;
4362     antalFelterFundet := antalFelterFundet + 1;
4363     if (tjekkodestatus = '-1') then
4364     begin
4365 torben 2704
4366 torben 2645 if (pos(' ', stregkode) > 0) then
4367     begin
4368 torben 2682 stregkoderMedTjekkodeArray[linienr] := TUtils.split(stregkode, ' ', 2); // Fjerner lige en evt. fremtidig dato fra feltet
4369 torben 2645 end
4370     else
4371     begin
4372     stregkoderMedTjekkodeArray[linienr] := stregkode;
4373     end;
4374 torben 2656 linienr := linienr + 1;
4375 torben 2645 end;
4376     end;
4377 torben 2794
4378    
4379 torben 2645 if antalFelterFundet = antalLiniefelter then
4380     begin
4381     if (ScanningType = '1') then
4382     ListBox2.Items.Add(pakketype+'; '+stregkode+'; '+modtagernavn+'; '+modtageradresse+'; '+kommentar+'; '+tjekkodestatus)
4383     else if (ScanningType = '4') then
4384     ListBox2.Items.Add(pakketype+'; '+stregkode+'; '+modtagernavn+'; '+modtageradresse+'; '+kommentar)
4385     else if (ScanningType = '5') then
4386     ListBox2.Items.Add(stregkode+'; '+modtagernavn+'; '+modtageradresse+'; '+kommentar+'; '+tjekkodestatus)
4387     else
4388     ListBox2.Items.Add(stregkode+'; '+modtagernavn+'; '+modtageradresse+'; '+kommentar);
4389     antalFelterFundet := 0;
4390     tjekkodestatus := '';
4391     end;
4392     end;
4393     end;
4394    
4395 torben 2794
4396 torben 2792 Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4397 torben 2791
4398 torben 2792
4399 torben 2791 for pakketype in pakketyper.Keys do
4400     begin
4401     pakketyper.TryGetValue(pakketype, tmpAntal);
4402     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + pakketype + ' ' + IntToStr(tmpAntal) + ' pakke(r) ikke modtaget');
4403     end;
4404    
4405     // Free up the dictionary object
4406 torben 2645 pakketyper.Free;
4407 torben 2791
4408    
4409    
4410 torben 2645 // ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.');
4411     logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4412     if (antlinSenere > 0) then
4413     begin
4414     logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';
4415     end;
4416     logTekst := logTekst + '.';
4417     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
4418     if (antlinSenere > 0) then
4419     begin
4420     StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);
4421     end
4422     else
4423     begin
4424     StaticTextManglendePakker.Caption := IntToStr(antlinIdag);
4425     end;
4426    
4427     if (Scanningtype = '1') then
4428     begin
4429     //antlinIdag := 9876; // til test af boksens udseende ved stort tal
4430     PanelManglendePakker1.Caption := IntToStr(antlinIdag + antlinSenere);
4431     if (antlinIdag + antlinSenere > 0) then
4432     begin
4433     PanelManglendePakker1.Visible := true;
4434     end
4435     else
4436     begin
4437     PanelManglendePakker1.Visible := false;
4438     end;
4439     end;
4440    
4441     if (Scanningtype = '2') then
4442     begin
4443     PanelManglendePakker2.Caption := IntToStr(antlinIdag + antlinSenere);
4444     if (antlinIdag + antlinSenere > 0) then
4445     begin
4446     PanelManglendePakker2.Visible := true;
4447     end
4448     else
4449     begin
4450     PanelManglendePakker2.Visible := false;
4451     end;
4452     end;
4453    
4454     if (Scanningtype = '3') then
4455     begin
4456     PanelManglendePakker3.Caption := IntToStr(antlinIdag + antlinSenere);
4457     if (antlinIdag + antlinSenere > 0) then
4458     begin
4459     PanelManglendePakker3.Visible := true;
4460     end
4461     else
4462     begin
4463     PanelManglendePakker3.Visible := false;
4464     end;
4465     end;
4466    
4467     if (Scanningtype = '4') then
4468     begin
4469     PanelManglendePakker4.Caption := IntToStr(antlinIdag + antlinSenere);
4470     if (antlinIdag + antlinSenere > 0) then
4471     begin
4472     PanelManglendePakker4.Visible := true;
4473     end
4474     else
4475     begin
4476     PanelManglendePakker4.Visible := false;
4477     end;
4478     end;
4479    
4480     if (Scanningtype = '5') then
4481     begin
4482     PanelManglendePakker5.Caption := IntToStr(antlinIdag + antlinSenere);
4483     if (antlinIdag + antlinSenere > 0) then
4484     begin
4485     PanelManglendePakker5.Visible := true;
4486     end
4487     else
4488     begin
4489     PanelManglendePakker5.Visible := false;
4490     end;
4491     end;
4492    
4493     if (Scanningtype = '6') then
4494     begin
4495     PanelManglendePakker6.Caption := IntToStr(antlinIdag + antlinSenere);
4496     if (antlinIdag + antlinSenere > 0) then
4497     begin
4498     PanelManglendePakker6.Visible := true;
4499     end
4500     else
4501     begin
4502     PanelManglendePakker6.Visible := false;
4503     end;
4504     end;
4505    
4506     except on e:exception do
4507     begin
4508     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Fejl i XML-format: '+e.Message);
4509     logTekst := 'Fejl i XML-format: '+e.Message;
4510     SkrivScanningLogFil(logTekst);
4511     raise exception.CreateFmt('Fejl i XML-format: %s',[e.Message]);
4512     end;
4513     end;
4514    
4515     end;
4516    
4517     procedure TMainForm.IndlesScanningLogFil();
4518     var
4519     SomeTxtFile : TextFile;
4520     buffer : string;
4521     S: string;
4522     idag, imorgen : TDateTime;
4523     imorgenYmd : string;
4524     logFilnavn : string;
4525    
4526     begin
4527     idag := Now;
4528     imorgen := IncDay(idag, 1); //adds 1 day(s)
4529     // Hvis vi er efter midnat og inden middag skal vi bruge dagsdato som imorgen
4530     if (FormatDateTime('hh:nn',idag) < '12:00') then
4531     begin
4532     imorgen := idag;
4533     end;
4534     imorgenYmd := FormatDateTime('_yyyymmdd',imorgen);
4535     logFilnavn := 'Logs/Scanning' + imorgenYmd + '.log';
4536     if FileExists(logFilnavn) then
4537     begin
4538     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logFilnavn+' indlæses.');
4539     logTekst := logFilnavn+' indlæses.';
4540     SkrivScanningLogFil(logTekst);
4541     AssignFile(SomeTxtFile, logFilnavn);
4542     try
4543     Reset(SomeTxtFile);
4544     while not EOF(SomeTxtFile) do
4545     begin
4546     ReadLn(SomeTxtFile, buffer) ;
4547     S := buffer;
4548     ListBox1.Items.Insert(0, S);
4549     end;
4550     finally
4551     CloseFile(SomeTxtFile);
4552     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logFilnavn+' indlæst.');
4553     ListBox1.Items.Insert(0,'');
4554     ListBox1.Items.Insert(0,'');
4555     ListBox1.Items.Insert(0,'');
4556     ListBox1.Items.Insert(0,'');
4557     ListBox1.Items.Insert(0,'');
4558     ListBox1.Items.Insert(0,'');
4559     end;
4560     end;
4561     end;
4562    
4563     procedure TMainForm.SkrivScanningLogFil(var tekst : string);
4564     var
4565     SomeTxtFile : TextFile;
4566     idag, imorgen : TDateTime;
4567     imorgenYmd : string;
4568     logFilnavn : string;
4569 torben 2677 //error : Integer;
4570 torben 2645
4571     begin
4572     if (SkrivLog = '1') then
4573     begin
4574     idag := Now;
4575     imorgen := IncDay(idag, 1); //adds 1 day(s)
4576     // Hvis vi er efter midnat og inden middag skal vi bruge dagsdato som imorgen
4577     if (FormatDateTime('hh:nn',idag) < '12:00') then
4578     begin
4579     imorgen := idag;
4580     end;
4581     imorgenYmd := FormatDateTime('_yyyymmdd',imorgen);
4582     logFilnavn := 'Logs/' + 'Scanning' + imorgenYmd + '.log';
4583     // Get the current directory
4584     // dir := GetCurrentDir;
4585     // ShowMessage('Current directory = '+dir);
4586     // logFilnavn := dir + '\Logs\' + 'Scanning' + imorgenYmd + '.log';
4587     // ShowMessage('logFilnavn = '+logFilnavn);
4588    
4589     if not DirectoryExists('Logs') then
4590     begin
4591     CreateDir('Logs');
4592     end;
4593    
4594     AssignFile(SomeTxtFile, logFilnavn);
4595     if FileExists(logFilnavn) then
4596     begin
4597     try
4598     try
4599     Append(SomeTxtFile);
4600     WriteLn(SomeTxtFile, TimeToStr(now) + ': ' + tekst) ;
4601     except on e:exception do
4602     //ShowMessageFmt('File create failed with error %d',[error]);
4603     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + ' Kan ikke skrive til log filen...');
4604     end;
4605     finally
4606     CloseFile(SomeTxtFile);
4607     end;
4608     end
4609     else
4610     begin
4611     try
4612     try
4613     ReWrite(SomeTxtFile);
4614     WriteLn(SomeTxtFile, TimeToStr(now) + ': ' + tekst) ;
4615     except on e:exception do
4616     // ShowMessageFmt('File create failed with error %d',[error]);
4617     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + ' Kan ikke oprette/skrive til log filen...');
4618     end;
4619     finally
4620     CloseFile(SomeTxtFile);
4621     end;
4622     end;
4623     end;
4624     end;
4625    
4626     procedure TMainForm.IndlesRuteskiftFil(var filnavn : string);
4627     var
4628     SomeTxtFile : TextFile;
4629     buffer : string;
4630     linnr : integer;
4631     S: string;
4632     A: TStrArray;
4633     idag, imorgen : TDateTime;
4634     imorgenYmd : string;
4635    
4636     begin
4637     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + filnavn+' indlæses.');
4638     logTekst := filnavn+' indlæses.';
4639     SkrivScanningLogFil(logTekst);
4640     SetLength(ruteHverdagArray, 1);
4641     SetLength(ruteLordagArray, 1);
4642     idag := Now;
4643     imorgen := IncDay(idag, 1); //adds 1 day(s)
4644     // Hvis vi er efter midnat og inden middag skal vi bruge dagsdato som imorgen
4645     if (FormatDateTime('hh:nn',idag) < '12:00') then
4646     begin
4647     imorgen := idag;
4648     end;
4649     imorgenYmd := FormatDateTime('yyyy-mm-dd',imorgen);
4650     if FileExists(filnavn) then
4651     begin
4652     AssignFile(SomeTxtFile, filnavn);
4653     linnr := 0;
4654     try
4655     Reset(SomeTxtFile);
4656     while not EOF(SomeTxtFile) do
4657     begin
4658     ReadLn(SomeTxtFile, buffer) ;
4659     S := buffer;
4660     SetLength(A,0);
4661 torben 2682 TUtils.Explode(A, ';', S);
4662 torben 2645 if (length(A) < 2) then
4663     begin
4664 torben 2682 TUtils.Explode(A, ',', S);
4665 torben 2645 end;
4666     if (length(A) > 1) then
4667     begin
4668     SetLength(ruteHverdagArray, linnr+1);
4669     SetLength(ruteLordagArray, linnr+1);
4670     ruteHverdagArray[linnr] := A[0];
4671     ruteLordagArray[linnr] := A[1];
4672     linnr := linnr+1;
4673     end;
4674     end;
4675     finally
4676     //ShowMessage(IntToStr(length(A)));
4677     CloseFile(SomeTxtFile);
4678     //ShowMessage(IntToStr(length(ruteHverdagArray)));
4679     if (linnr > 0) then
4680     begin
4681     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + IntToStr(linnr)+' linier indlæst til '+imorgenYmd+'.');
4682     logTekst := IntToStr(linnr)+' linier indlæst til '+imorgenYmd+'.';
4683     SkrivScanningLogFil(logTekst);
4684     end
4685     else
4686     begin
4687     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' +'Fandt ingen linier til '+imorgenYmd+'.');
4688     logTekst := 'Fandt ingen linier til '+imorgenYmd+'.';
4689     SkrivScanningLogFil(logTekst);
4690     PlaySound(PWideChar(AlarmLyd));
4691     end;
4692     end;
4693     end
4694     else
4695     begin
4696     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Ruteskift fil '+filnavn+' findes ikke.');
4697     logTekst := 'Ruteskift fil '+filnavn+' findes ikke.';
4698     SkrivScanningLogFil(logTekst);
4699     PlaySound(PWideChar(AlarmLyd));
4700     end;
4701     end;
4702    
4703     procedure TMainForm.IndlesKontrolFil(var filnavn : string);
4704     var
4705     SomeTxtFile : TextFile;
4706     buffer : string;
4707     linnr : integer;
4708     S: string;
4709     A: TStrArray;
4710     idag, imorgen : TDateTime;
4711     imorgenYmd : string;
4712    
4713     begin
4714     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + filnavn+' indlæses.');
4715     logTekst := filnavn+' indlæses.';
4716     SkrivScanningLogFil(logTekst);
4717     SetLength(ruteArray, 1);
4718     SetLength(korelisteArray, 1);
4719     idag := Now;
4720     imorgen := IncDay(idag, 1); //adds 1 day(s)
4721     // Hvis vi er efter midnat og inden middag skal vi bruge dagsdato som imorgen
4722     if (FormatDateTime('hh:nn',idag) < '12:00') then
4723     begin
4724     imorgen := idag;
4725     end;
4726     imorgenYmd := FormatDateTime('yyyy-mm-dd',imorgen);
4727     if FileExists(filnavn) then
4728     begin
4729     AssignFile(SomeTxtFile, filnavn);
4730     linnr := 0;
4731     try
4732     Reset(SomeTxtFile);
4733     while not EOF(SomeTxtFile) do
4734     begin
4735     ReadLn(SomeTxtFile, buffer) ;
4736     S := buffer;
4737     SetLength(A,0);
4738 torben 2682 TUtils.Explode(A, ';', S);
4739 torben 2645 if (length(A) < 3) then
4740     begin
4741 torben 2682 TUtils.Explode(A, ',', S);
4742 torben 2645 end;
4743     if (A[0]=imorgenYmd) then
4744     begin
4745     if (length(A) > 2) then
4746     begin
4747     SetLength(ruteArray, linnr+1);
4748     SetLength(korelisteArray, linnr+1);
4749     ruteArray[linnr] := A[1];
4750     korelisteArray[linnr] := A[2];
4751     linnr := linnr+1;
4752     end;
4753     end;
4754     end;
4755     finally
4756     //ShowMessage(IntToStr(length(A)));
4757     CloseFile(SomeTxtFile);
4758     //ShowMessage(IntToStr(length(ruteArray)));
4759     if (linnr > 0) then
4760     begin
4761     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + IntToStr(linnr)+' linier indlæst til '+imorgenYmd+'.');
4762     logTekst := IntToStr(linnr)+' linier indlæst til '+imorgenYmd+'.';
4763     SkrivScanningLogFil(logTekst);
4764     end
4765     else
4766     begin
4767     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' +'Fandt ingen linier til '+imorgenYmd+'.');
4768     logTekst := 'Fandt ingen linier til '+imorgenYmd+'.';
4769     SkrivScanningLogFil(logTekst);
4770     PlaySound(PWideChar(AlarmLyd));
4771     end;
4772     end;
4773     end
4774     else
4775     begin
4776     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Kontrol fil '+filnavn+' findes ikke.');
4777     logTekst := 'Kontrol fil '+filnavn+' findes ikke.';
4778     SkrivScanningLogFil(logTekst);
4779     PlaySound(PWideChar(AlarmLyd));
4780     end;
4781     end;
4782    
4783     //
4784     // Bladhus ***
4785     //
4786     function TMainForm.TjekKoreliste(var RuteNummer, Koreliste : string) : string;
4787     var
4788     i : Integer;
4789     svar : String;
4790    
4791     begin
4792     //ShowMessage('Køreliste 1: '+korelisteArray[0]);
4793     // ShowMessage('Kontrollerer rute ' + RuteNummer + ' og køreliste ' + Koreliste + ' i kontrolfilen');
4794     // NB. Der er rod i begreberne RuteNummer og Koreliste - nogle steder er de byttet rundt!
4795     //ShowMessage('Kontrollerer rute ' + Koreliste + ' og køreliste ' + RuteNummer + ' i kontrolfilen');
4796    
4797     svar := 'Køreliste ikke i kontrolfil';
4798     case BladhusSted of
4799     01 :
4800     begin;
4801     for i := 0 to length(ruteArray)-1 do
4802     begin
4803     if (Koreliste=ruteArray[i]) then
4804     begin
4805     svar := korelisteArray[i]; // returnerer den forventede køreliste
4806     end;
4807     end;
4808     end;
4809     // 02 : begin;
4810     //ShowMessage('02') ;
4811     // end;
4812     03 : begin;
4813     for i := 0 to length(ruteArray)-1 do
4814     begin
4815     if (Koreliste=ruteArray[i]) then
4816     begin
4817     svar := korelisteArray[i]; // returnerer den forventede køreliste
4818     end;
4819     end;
4820     end;
4821     // 04 : begin;
4822     //ShowMessage('04') ;
4823     // end;
4824     else
4825     svar := RuteNummer; // Dette svarer til at køreliste er godkendt uden kontrol fil
4826     end;
4827     if (RuteNummer = 'Rutenr') then // fra printertest funktionen
4828     svar := RuteNummer; // Dette svarer til at køreliste er godkendt uden kontrol fil
4829    
4830     result := svar;
4831     end;
4832    
4833 torben 2659 procedure TMainForm.VisAlarmSkaerm(strMessage: string);
4834 torben 2657 begin
4835     //ShowMessage('Ændring ikke tilladt');
4836     // Her skal komme en 'rød skærm' alarm
4837     PlaySound(PWideChar(AlarmLyd));
4838 torben 2662 MainForm.Color := clRed;
4839 torben 2659
4840 torben 2662
4841 torben 2657 RuteNummerST.Caption := '';
4842     BoghandlerNavnST.Caption := '';
4843 torben 2668 btnNulstil.Visible := true;
4844 torben 2662
4845     if (strMessage <> '') then
4846     begin
4847     ListBox1.Items.Insert(0, strMessage);
4848     KommentarST.Caption := strMessage;
4849     end;
4850    
4851 torben 3036 Stregkode := ''; //Nulstil stregkode feltet efter at fejl er vist
4852    
4853 torben 2657 end;
4854    
4855 torben 2645 function TMainForm.getProddato() : TDate;
4856     var
4857     idag, imorgen : TDateTime;
4858     imorgenYmd : string;
4859    
4860     begin
4861     idag := Now;
4862     imorgen := IncDay(idag, 1); //adds 1 day(s)
4863     // Hvis vi er efter midnat og inden middag skal vi bruge dagsdato som imorgen
4864     if (FormatDateTime('hh:nn',idag) < '12:00') then
4865     begin
4866     imorgen := idag;
4867     end;
4868     imorgenYmd := FormatDateTime('dd-mm-yyyy',imorgen);
4869     result := StrToDateTime(imorgenYmd);
4870     end;
4871    
4872     function TMainForm.getProddag() : String;
4873     begin
4874     // ShowMessage(LongDayNames[DayOfWeek(getProddato())]);
4875 torben 2650 result := FormatSettings.LongDayNames[DayOfWeek(getProddato())];
4876 torben 2645 //result := 'lørdag'; // MENS VI TESTER kan vi fremtvinge lørdag situation her
4877     end;
4878    
4879     function TMainForm.retRutenummer(rutenummer : String) : String;
4880     var
4881     i : Integer;
4882     svar : String;
4883    
4884     begin
4885     svar := rutenummer;
4886     case BladhusSted of
4887     01 :
4888     begin;
4889     //ShowMessage('01') ;
4890     end;
4891     // 02 : begin;
4892     //ShowMessage('02') ;
4893     // end;
4894     03 : begin;
4895     for i := 0 to length(ruteHverdagArray)-1 do
4896     begin
4897     if (rutenummer=ruteHverdagArray[i]) then
4898     begin
4899     svar := ruteLordagArray[i]; // returnerer den forventede lørdagsrute
4900     end;
4901     end;
4902     end;
4903     // 04 : begin;
4904     //ShowMessage('04') ;
4905     // end;
4906     else
4907     svar := rutenummer; // Dette svarer til at rute ikke skal ændres
4908     end;
4909     result := svar;
4910     end;
4911    
4912    
4913     procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);
4914     begin
4915     if Scanogstjekkoden1.Checked then
4916     begin
4917 torben 2654 chkScanTjekkode.Checked := true;
4918 torben 2645 end
4919     else
4920     begin
4921 torben 2654 chkScanTjekkode.Checked := false;
4922 torben 2645 end;
4923     end;
4924    
4925    
4926 torben 3038 //Nedarvet fra IParentForm
4927     procedure TMainForm.Msg( msg : string);
4928     begin
4929     ShowMessage(msg);
4930     end;
4931 torben 2668
4932 torben 2705 //Nedarvet fra IParentForm
4933     procedure TMainForm.LogMessage( msg : string);
4934     begin
4935     ListBox1.Items.Insert(0, msg);
4936     SkrivScanningLogFil(msg);
4937     end;
4938 torben 2685
4939 torben 2668
4940 torben 2705 //Nedarvet fra IParentForm
4941     procedure TMainForm.SetPrinterstatusText( txt: string; alert: boolean);
4942 torben 2645 begin
4943    
4944 torben 2705 PrinterstatusStaticText1.Caption := txt;
4945     if (alert) then
4946 torben 2645 begin
4947 torben 2705 PrinterstatusStaticText1.Font.Color := clBlack;
4948     PrinterstatusStaticText1.Color := MainForm.Color;
4949     PrinterstatusStaticText1.Transparent := True;
4950 torben 2645 end
4951     else
4952     begin
4953 torben 2705 PrinterstatusStaticText1.Font.Color := clRed;
4954     PrinterstatusStaticText1.Color := clWhite;
4955     PrinterstatusStaticText1.Transparent := true;
4956 torben 2645 end;
4957     end;
4958    
4959 torben 2705 //Nedarvet fra IParentForm
4960     function TMainForm.GetFormObject() : TForm;
4961     begin
4962     Result := self;
4963     end;
4964 torben 2645
4965     end.
4966    

  ViewVC Help
Powered by ViewVC 1.1.20