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

Annotation of /dao/DelphiScanner/Main.pas

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.20