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

Annotation of /dao/DelphiScanner/Main.pas

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.20