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

Annotation of /dao/DelphiScanner/Main.pas

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.20