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

Annotation of /dao/DelphiScanner/Main.pas

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.20