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

Annotation of /dao/DelphiScanner/Main.pas

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3131 - (hide annotations) (download)
Thu Oct 20 07:31:23 2016 UTC (7 years, 7 months ago) by torben
File size: 167225 byte(s)
Avoid double label print
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 3130 if (menuNatXpress1.Checked or menuDaoDirekte1.Checked or menuPakkeshop1.Checked or menuPakkeshopRetur1.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 3130 try
2063     PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);
2064     except on e:exception do
2065     PrintNyLabelInteger := 0;
2066     end;
2067     if (PrintNyLabelInteger = 1) then
2068 torben 2645 begin
2069 torben 3130 PrintNyLabel := True;
2070 torben 2645 end;
2071 torben 3130
2072 torben 2645 end
2073 torben 2794 else if menuIndlevering.Checked or chkForstorTilDirekte.Checked then
2074 torben 2668 begin
2075    
2076    
2077    
2078    
2079     Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2080     if (Kommentar = 'Ok') then
2081     begin
2082     PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2083 torben 3094 PakkeshopLabel := TLabelData.Create( XMLDocument1 ); //Opret struct og parse xml doc
2084 torben 2703 RuteNummer := PakkeshopLabel.Koreliste + ' -> ' + PakkeshopLabel.PakkeshopTurid;
2085 torben 2701 Stregkode := PakkeshopLabel.Stregkode;
2086 torben 2668
2087 torben 3124 LabelPrint.PrintLabel(PakkeshopLabel.Stregkode);
2088 torben 2668
2089 torben 3124 // LabelPrint.PrintFuldPakkeLabel( PakkeshopLabel );
2090     // chkForstorTilDirekte.Checked := false;
2091    
2092 torben 2668 end;
2093    
2094    
2095     end
2096 torben 2645 else
2097     begin
2098     RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;
2099     Koreliste := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Koreliste').Text;
2100     Kommentar := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Kommentar').Text;
2101     BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('BoghandlerNavn').Text;
2102     Leveringssted := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Leveringssted').Text;
2103 torben 3054 if menuDaoDirekte1.Checked then
2104 torben 2645 begin
2105     try
2106     SmsKode := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('SmsKode').Text;
2107     except on e:exception do
2108     SmsKode := '';
2109     end;
2110     try
2111     DBKbane := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('DBKbane').Text;
2112     except on e:exception do
2113     DBKbane := '';
2114     end;
2115     end;
2116     PrintNyLabel := False;
2117     try
2118     PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('PrintPakkeLabel').Text);
2119     except on e:exception do
2120     PrintNyLabelInteger := 0;
2121     end;
2122     PrintNyLabel := False;
2123     if (PrintNyLabelInteger = 1) then
2124     begin
2125     PrintNyLabel := True;
2126     end;
2127     end;
2128 torben 2668
2129    
2130 torben 2645 if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
2131     begin
2132     if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then
2133     begin
2134 torben 3093 Kommentar := Kommentar + ' Pakke burde være hos ' + Leveringssted;
2135 torben 3092 //PrintNyLabel := False; //ved fuld-daekning / X-ruter skal vi altid skrive label alligevel
2136 torben 2645 end;
2137     end
2138 torben 3073 else if (menuDaoDirekte1.Checked) and (Leveringssted <> Sted) And (Leveringssted <> '') then
2139 torben 2645 begin
2140 torben 3093 Kommentar := Kommentar + ' Pakke burde være hos ' + Leveringssted;
2141 torben 3092 //PrintNyLabel := False; //ved fuld-daekning / X-ruter skal vi altid skrive label alligevel
2142 torben 2645 end;
2143     except on e:exception do
2144     raise exception.CreateFmt('Fejl i XML-format: %s',[e.Message]);
2145     end;
2146     end;
2147    
2148    
2149     procedure TMainForm.UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, BoghNr : String);
2150     var
2151     List1Msg, List1Pakkestorrelse : String;
2152     begin
2153     RuteNummerST.Caption := RuteNummer;
2154     KommentarST.Caption := Kommentar;
2155     KommentarST.Caption := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);
2156     KommentarST.Caption := StringReplace(KommentarST.Caption, ' & ', ' && ', [rfReplaceAll, rfIgnoreCase]);
2157     //Label1.Caption := Kommentar; // bruges hvis der skal vises linieskift - det kan man ikke i en staticText
2158     BoghandlerNavnST.Caption := StringReplace(BoghandlerNavn, ' & ', ' && ', [rfReplaceAll, rfIgnoreCase]);
2159     List1msg := TimeToStr(now) + '; ';
2160 torben 3054 if menuPakkeshop1.Checked then
2161 torben 2645 List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';
2162     List1Pakkestorrelse := '';
2163 torben 2655 if radioStorPakke.Checked then
2164 torben 2645 begin
2165     List1Pakkestorrelse := 'Stor pakke';
2166     end;
2167 torben 2655 if radioLillePakke.Checked then
2168 torben 2645 begin
2169     List1Pakkestorrelse := 'Lille pakke';
2170     end;
2171     List1msg := List1msg + BoghandlerNavn + '; ';
2172 torben 3054 if menuNatxpressReturDAO1.Checked then
2173 torben 2645 begin
2174     List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-8);
2175     end;
2176 torben 3054 if menuNatxpressReturfraKunde1.Checked then
2177 torben 2645 begin
2178     List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-16);
2179     end;
2180 torben 3054 if menuNatxpressReturDAO1.Checked or menuNatxpressReturfraKunde1.Checked then
2181 torben 2645 List1msg := List1msg + '; ' + List1Pakkestorrelse;
2182     if length(BoghNr) > 0 then
2183     begin
2184     List1Msg := List1Msg + '; Indtastet ' + BoghNr;
2185     end;
2186 torben 3054 if menuDaoDirekte1.Checked then
2187 torben 2645 begin
2188     List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;
2189 torben 2655 if (radioStorPakke.Checked) then
2190 torben 2645 begin
2191     List1msg := List1msg + '; Stor pakke';
2192     end;
2193 torben 2655 if (radioLillePakke.Checked) then
2194 torben 2645 begin
2195     List1msg := List1msg + '; Lille pakke';
2196     end;
2197     end;
2198 torben 3054 if menuPakkeshopRetur1.Checked then
2199 torben 2645 begin
2200     List1msg := List1msg + Stregkode + ' ' + RightStr(Kommentar, Length(Kommentar)-6);
2201     end;
2202 torben 3054 if menuNatXpress1.Checked then
2203 torben 2645 begin
2204     if (Kommentar = '***** Kommentar *****') // fra test printer funktionen
2205     or (BoghandlerNavn = 'Forbindelse ok') // fra test forbindelse funktionen
2206     or (BoghandlerNavn = 'Fejl i forbindelse til server') then // fra test forbindelse funktionen
2207     begin
2208     List1msg := List1msg + '; ' + Stregkode + '; ' + Kommentar;
2209     end
2210     else
2211     begin
2212     List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;
2213     end;
2214     end;
2215 torben 2701 if menuIndlevering.Checked then
2216     begin
2217     List1Msg := Stregkode;
2218     end;
2219    
2220    
2221 torben 2645 ListBox1.Items.Insert(0,List1Msg);
2222     logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2223     SkrivScanningLogFil(logTekst);
2224     end;
2225    
2226 torben 2697 procedure TMainForm.BtnUploadLogfilClick(Sender: TObject);
2227 torben 2645 begin
2228     UploadLogfilTilDAO();
2229     UploadInifilTilDAO();
2230     ListBox1.SetFocus; // for at flytte fokus væk fra upload knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
2231     end;
2232    
2233     procedure TMainForm.PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');
2234     var
2235     ClickedOK: Boolean;
2236     pakkeErScannet : Integer;
2237     pakkeForkertSted : Integer;
2238     List1Msg : String;
2239     kontrolKoreliste : string;
2240     nytRuteNummer, nyFarve : String;
2241     begin
2242 torben 3123 // if (PrintNyLabel = True OR chkAltidPrintLabel.Checked = True) then
2243     // begin
2244     // LabelPrint.PrintLabel( Stregkode );
2245     // end;
2246     //
2247     // exit;
2248 torben 3100
2249 torben 3054 if menuDaoDirekte1.Checked then
2250 torben 2682 RuteNummerST.Color := TUtils.HexToTColor(Farve);
2251 torben 2645
2252     pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
2253     if pakkeErScannet = 0 then
2254     begin
2255     pakkeErScannet := pos('PAKKE ER SCANNET', Kommentar);
2256     end;
2257     if pakkeErScannet = 0 then
2258     begin
2259     pakkeErScannet := pos('PAKKE ER SCANNET', BoghandlerNavn);
2260     end;
2261     pakkeForkertSted := pos('burde være hos', Kommentar);
2262    
2263 torben 2656
2264 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
2265 torben 2656
2266 torben 2645 begin
2267     if (RuteNummer = 'Ukendt') then
2268     begin
2269     repeat
2270     begin
2271     ClickedOK := InputQuery('Ukendt pakke', 'Indtast kundenummer', BoghandlerNummer);
2272     end
2273     until (ClickedOK and (Length(BoghandlerNummer) > 2) and (Length(BoghandlerNummer) < 9)) or not ClickedOK;
2274     if not ClickedOK then
2275     begin
2276     exit;
2277     end;
2278     if (Length(BoghandlerNummer) > 2) then
2279     begin
2280     InitScreen();
2281     HentPakkeInfoFraServer(Sted, StregKode, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2282     UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, BoghandlerNummer);
2283     end;
2284     end;
2285     end
2286     else
2287 torben 3054 if menuDaoDirekte1.Checked then
2288 torben 2645 begin
2289     if (BoghandlerNavn = 'Ukendt pakke') then
2290     begin
2291     PrintNyLabel := false;
2292 torben 2656
2293 torben 3090 PlaySound(PWideChar(Config.AlarmLyd));
2294 torben 2645 MainForm.Color := clRed;
2295 torben 2668 btnNulstil.Visible := true;
2296 torben 2656
2297 torben 2645 end
2298     else
2299     begin
2300     nytRuteNummer := retRutenummer(RuteNummer);
2301     if (nytRuteNummer <> RuteNummer) then
2302     begin
2303     PrintNyLabel := true;
2304     RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;
2305     nyFarve := Farve;
2306 torben 2682 RuteNummerST.Color := TUtils.HexToTColor(nyFarve);
2307 torben 2645 List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;
2308     RuteNummer := nytRuteNummer;
2309     ListBox1.Items.Insert(0,List1Msg);
2310     logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2311     SkrivScanningLogFil(logTekst);
2312 torben 2656
2313 torben 3099 // if (Config.PrinterNavn = 'Ingen') then
2314     // begin
2315     // PrintNyLabel := false;
2316     // end;
2317 torben 2656
2318 torben 2645 if (PrintNyLabel = false) then // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm
2319     begin
2320 torben 3090 PlaySound(PWideChar(Config.AlarmLyd));
2321 torben 2645 MainForm.Color := clRed;
2322 torben 2668 btnNulstil.Visible := true;
2323 torben 2645 end;
2324 torben 2656
2325 torben 2645 end;
2326     kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);
2327     if (kontrolKoreliste <> RuteNummer) then
2328     begin
2329     PrintNyLabel := true;
2330     List1msg := TimeToStr(now) + '; ' + BoghandlerNavn + '; ' + 'Forkert køreliste ' + '; ' + Koreliste + ' -> ' + kontrolKoreliste;
2331     if (length(kontrolKoreliste) > 20) then // Skal ikke printe label når 'Køreliste ikke i kontrolfil'
2332     begin
2333     PrintNyLabel := false;
2334     RuteNummerST.Caption := RuteNummerST.Caption + ' -> ' + kontrolKoreliste;
2335     end
2336     else
2337     begin
2338     RuteNummerST.Caption := RuteNummerST.Caption + ' -> Ny køreliste: ' + kontrolKoreliste;
2339     end;
2340     ListBox1.Items.Insert(0,List1Msg);
2341     logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2342     SkrivScanningLogFil(logTekst);
2343 torben 2656
2344 torben 2645 if (PrintNyLabel = false) then // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm
2345     begin
2346 torben 3090 PlaySound(PWideChar(Config.AlarmLyd));
2347 torben 2645 MainForm.Color := clRed;
2348 torben 2668 btnNulstil.Visible := true;
2349 torben 2645 end;
2350 torben 2656
2351 torben 2645 end;
2352     end;
2353    
2354     end;
2355    
2356 torben 3054 if menuDaoDirekte1.Checked then
2357 torben 2645 begin
2358     case BladhusSted of
2359     00 : begin;
2360     // 20150304: start
2361     // if PrintNyLabel and (kontrolKoreliste <> '') or (RuteNummer = 'Rutenr') then
2362     // // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste
2363     // // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')
2364     // // Det holder dog ikke for DAO DIREKTE fordi Schenker altid skal printes, da deres label mangler DAO ruteoplysninger553915076624451294
2365     if PrintNyLabel or (RuteNummer = 'Rutenr') then
2366     // 20150304: slut
2367     begin
2368 torben 3123 //LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2369     LabelPrint.PrintLabel( Stregkode );
2370 torben 2645 end;
2371     end;
2372     01 : begin;
2373 torben 2661 if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2374 torben 2645 // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste
2375     // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')
2376     begin
2377 torben 3123 //LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2378     LabelPrint.PrintLabel( Stregkode );
2379 torben 2645 end;
2380     end;
2381     02 : begin;
2382     if PrintNyLabel or (RuteNummer = 'Rutenr') then // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test
2383     begin
2384 torben 3123 //LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2385     LabelPrint.PrintLabel( Stregkode );
2386 torben 2645 end;
2387     end;
2388     03 : begin;
2389 torben 2661 if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2390 torben 2645 // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste
2391     // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')
2392     begin
2393 torben 3123 //LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2394     LabelPrint.PrintLabel( Stregkode );
2395 torben 2645 end;
2396     end;
2397     04 : begin;
2398     if PrintNyLabel or (RuteNummer = 'Rutenr') then // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test
2399     begin
2400 torben 3123 //LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2401     LabelPrint.PrintLabel( Stregkode );
2402 torben 2645 end;
2403     end;
2404     end;
2405     end;
2406    
2407     // Hvis det er normal bogpakke modtagelse til UBD skal vi p.t. ikke printe - men stopper her
2408 torben 3054 if menuNatXpress1.Checked and ( (Sted = '1') or (Sted = '2') or (Sted = '3') or (Sted = '4') ) then
2409 torben 2645 begin
2410     exit;
2411     end;
2412    
2413 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
2414 torben 2645 begin
2415     end
2416     else
2417     begin
2418 torben 3090 if ( (Config.PrinterNavn <> 'Ingen') and (PrintNyLabel or chkAltidPrintLabel.Checked) and (RuteNummer <> 'Ukendt') or (RuteNummer = 'Rutenr')) then
2419 torben 2645 begin
2420     logTekst := 'Printer label type ';
2421 torben 2652 if (chkAltidPrintLabel.Checked) then
2422 torben 2645 begin
2423     logTekst := logTekst + 'Alle ';
2424     end
2425     else if (PrintNyLabel) then
2426     begin
2427     logTekst := logTekst + 'Rute ';
2428     end
2429     else
2430     begin
2431     logTekst := logTekst + 'Ukendt ';
2432     end;
2433     logTekst := logTekst + ' for '+BoghandlerNavn;
2434     SkrivScanningLogFil(logTekst);
2435 torben 2705
2436 torben 3123 //LabelPrint.PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn) ;
2437     LabelPrint.PrintLabel( Stregkode );
2438 torben 3131 exit;
2439 torben 3098
2440 torben 2645 end;
2441     end;
2442    
2443 torben 3130 // tilføjet 20161020
2444     if (menuPakkeshop1.Checked OR menuPakkeshopRetur1.Checked) then
2445     begin
2446     if (PrintNyLabel = True OR chkAltidPrintLabel.Checked = True) then
2447     begin
2448     LabelPrint.PrintLabel( Stregkode );
2449 torben 3131 exit;
2450 torben 3130 end;
2451 torben 3131
2452 torben 3130 end;
2453    
2454 torben 2645 end;
2455    
2456 torben 2656
2457    
2458 torben 2655 procedure TMainForm.radioStorPakkeClick(Sender: TObject);
2459 torben 2645 begin
2460 torben 3055 menuStorePakker.Checked := true;
2461 torben 2655 radioStorPakke.Checked := true;
2462 torben 2645 end;
2463    
2464 torben 2655 procedure TMainForm.radioLillePakkeClick(Sender: TObject);
2465 torben 2645 begin
2466 torben 3055 menuSmaaPakker.Checked := true;
2467 torben 2655 radioLillePakke.Checked := true;
2468 torben 2645 end;
2469    
2470    
2471 torben 2653 procedure TMainForm.chkSporgEfterKundeClick(Sender: TObject);
2472 torben 2645 begin
2473 torben 2653 if chkSporgEfterKunde.Checked then
2474 torben 2645 begin
2475     Sprgefterboghandlernummer1.Checked := true;
2476     end
2477     else
2478     begin
2479     Sprgefterboghandlernummer1.Checked := false;
2480     end;
2481     end;
2482    
2483    
2484 torben 3117 procedure TMainForm.chkUdenforSpecifikationClick(Sender: TObject);
2485     begin
2486     if (chkUdenforSpecifikation.Checked = true) then
2487     begin
2488     chkEmballageRepareret.Checked := false;
2489     end;
2490     end;
2491    
2492     procedure TMainForm.chkEmballageRepareretClick(Sender: TObject);
2493     begin
2494     if (chkEmballageRepareret.Checked = true) then
2495     begin
2496     chkUdenforSpecifikation.Checked := false;
2497     end;
2498     end;
2499    
2500 torben 2652 procedure TMainForm.chkAltidPrintLabelClick(Sender: TObject);
2501 torben 2645 begin
2502 torben 2652 if chkAltidPrintLabel.Checked then
2503 torben 2645 begin
2504     Altidprintepakkelabel1.Checked := true;
2505     end
2506     else
2507     begin
2508     Altidprintepakkelabel1.Checked := false;
2509     end;
2510    
2511     end;
2512    
2513 torben 3117
2514    
2515 torben 2654 procedure TMainForm.chkScanTjekkodeClick(Sender: TObject);
2516 torben 2645 begin
2517 torben 2654 if chkScanTjekkode.Checked then
2518 torben 2645 begin
2519     Scanogstjekkoden1.Checked := true;
2520     end
2521     else
2522     begin
2523     Scanogstjekkoden1.Checked := false;
2524     end;
2525     end;
2526    
2527 torben 3054 procedure TMainForm.menuPakkeshop1Click(Sender: TObject);
2528 torben 2645 begin
2529     Scanningtype := '5';
2530     InitPakkeshoplevering();
2531     NulstilAutomatiskValg();
2532     end;
2533    
2534     procedure TMainForm.NulstilAutomatiskValg();
2535     begin
2536 torben 3054 menuAutomatiskvalg1.Checked := false;
2537 torben 2645 PanelValgA.Color := clBtnFace;
2538     PanelValgA.Font.Color := clWindowText;
2539 torben 2656
2540 torben 2645 if (SpecialVersionSted = '01')
2541 torben 2656 or (SpecialVersionSted = '02')
2542     or (SpecialVersionSted = '03')
2543     or (SpecialVersionSted = '04') then
2544 torben 2645 begin
2545     // her skal vi også disable knappen for 01, 02, 03 og 04 (NS, BK, FD og DBK)
2546     PanelValgA.Enabled := false;
2547     PanelValgA.Font.Color := clInactiveCaption;
2548 torben 3054 menuAutomatiskvalg1.Enabled := false;
2549 torben 2645 end;
2550     // 20150317: slut
2551     end;
2552    
2553     procedure TMainForm.TjekkerUrls();
2554     const
2555     crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
2556     var
2557     urlFejl : Integer;
2558     begin
2559     urlFejl := 0;
2560     //UpdateScreen('', '', 'Tjekker forbindelsen...', '', ''); // virker ikke
2561     ShowMessage('Tjekker data forbindelse til serveren.' + crlf + 'Det kan godt tage nogle minutter.' + crlf + 'Resultatet af testen vises i skærmbilledet...');
2562    
2563 torben 2703 try
2564     // Tjekker urls
2565     logTekst := 'Tjekker urls.';
2566     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2567     SkrivScanningLogFil(logTekst);
2568 torben 2645
2569    
2570    
2571 torben 2703 // Tjekker UrlNormal
2572     if PanelValg1.Enabled = true then
2573     begin
2574 torben 3087 TjekkerEnkeltUrl('UrlNormal', Config.UrlNormal, urlFejl);
2575 torben 2703 end;
2576 torben 2645
2577 torben 2703 // Tjekker UrlReturDAO
2578     if PanelValg2.Enabled = true then
2579     begin
2580 torben 3087 TjekkerEnkeltUrl('UrlReturDAO', Config.UrlReturDAO, urlFejl);
2581 torben 2703 end;
2582 torben 2645
2583 torben 2703 // Tjekker UrlReturBoghandler
2584     if PanelValg3.Enabled = true then
2585     begin
2586 torben 3087 TjekkerEnkeltUrl('UrlReturBoghandler', Config.UrlReturBoghandler, urlFejl);
2587 torben 2703 end;
2588 torben 2645
2589 torben 2703 // Tjekker UrlBudlevering
2590     if PanelValg4.Enabled = true then
2591     begin
2592 torben 3087 TjekkerEnkeltUrl('UrlBudlevering', Config.UrlBudlevering, urlFejl);
2593 torben 2703 end;
2594 torben 2645
2595 torben 2703 // Tjekker UrlPakkeshoplevering
2596     if PanelValg5.Enabled = true then
2597     begin
2598 torben 3087 TjekkerEnkeltUrl('UrlPakkeshoplevering', Config.UrlPakkeshoplevering, urlFejl);
2599 torben 2703 end;
2600 torben 2645
2601 torben 2703 // Tjekker UrlReturPakkeshop
2602     if PanelValg6.Enabled = true then
2603     begin
2604 torben 3087 TjekkerEnkeltUrl('UrlReturPakkeshop', Config.UrlReturPakkeshop, urlFejl);
2605 torben 2703 end;
2606 torben 2645
2607 torben 2703 // Tjekker UrlManglendeScanninger
2608     if (PanelValg1.Enabled = true) or (PanelValg4.Enabled = true) then
2609     begin
2610 torben 3087 TjekkerEnkeltUrl('UrlManglendeScanninger', Config.UrlManglendeScanninger, urlFejl);
2611 torben 2703 end;
2612 torben 2645
2613 torben 2703 // Tjekker UrlPakkeshopManglendeScanninger
2614     if PanelValg5.Enabled = true then
2615     begin
2616 torben 3087 TjekkerEnkeltUrl('UrlPakkeshopManglendeScanninger', Config.UrlPakkeshopManglendeScanninger, urlFejl);
2617 torben 2703 end;
2618 torben 2689
2619 torben 2703 // Tjekker UrlPakkeshopManglendeReturScanninger
2620     if PanelValg6.Enabled = true then
2621     begin
2622 torben 3087 TjekkerEnkeltUrl('UrlPakkeshopManglendeReturScanninger', Config.UrlPakkeshopManglendeReturScanninger, urlFejl);
2623 torben 2703 end;
2624 torben 2689
2625 torben 2703 // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
2626     if PanelValg7.Enabled = true then
2627     begin
2628 torben 3087 TjekkerEnkeltUrl('UrlIndleveringsPakke', Config.UrlIndleveringsPakke, urlFejl);
2629     TjekkerEnkeltUrl('UrlIndleveringsPakkeManglendeScanninger', Config.UrlIndleveringsPakkeManglendeScanninger, urlFejl);
2630 torben 2703 end;
2631 torben 2645
2632 torben 2703 // Tjekker UrlEKLoverforsel
2633     if PanelValg1.Enabled = true then
2634     begin
2635 torben 3087 TjekkerEnkeltUrl('UrlEKLoverforsel', Config.UrlEKLoverforsel, urlFejl);
2636 torben 2703 end;
2637 torben 2656
2638 torben 2645
2639 torben 2703 // Tjekker UrlEKLoverforselPakkeshop
2640     if PanelValg5.Enabled = true then
2641     begin
2642 torben 3087 TjekkerEnkeltUrl('UrlEKLoverforselPakkeshop', Config.UrlEKLoverforselPakkeshop, urlFejl);
2643 torben 2703 end;
2644 torben 2656
2645 torben 2645
2646 torben 2703 // Tjekker UrlFindPakketype
2647 torben 3087 TjekkerEnkeltUrl('UrlFindPakketype', Config.UrlFindPakketype, urlFejl);
2648 torben 2645
2649 torben 2703 // Tjekker UrlSendPrograminfo
2650 torben 3087 TjekkerEnkeltUrl('UrlSendPrograminfo', Config.UrlSendPrograminfo, urlFejl);
2651 torben 2645
2652 torben 2703
2653    
2654     logTekst := 'urls er ok';
2655     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2656     SkrivScanningLogFil(logTekst);
2657    
2658     Except
2659 torben 3090 Config.TjekUrls := '-'; // markerer at der var fejl
2660 torben 2703
2661     end;
2662 torben 2645 end;
2663    
2664 torben 2703 procedure TMainForm.TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
2665     const
2666     crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
2667     begin
2668     if TUtils.CheckUrl(Url) then
2669    
2670     begin
2671     logTekst := UrlNavn + ' accepteret: ' + Url;
2672     SkrivScanningLogFil(logTekst);
2673     end
2674     else
2675     begin
2676     inc(urlFejl); // Optæller antal fejl
2677     logTekst := UrlNavn + ' svarer ikke: ' + Url;
2678     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2679 torben 3090 if Config.TjekUrls = '1' then
2680 torben 2703 begin
2681     logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2682     end;
2683    
2684     SkrivScanningLogFil(logTekst);
2685    
2686 torben 3090 if Config.TjekUrls = '1' then
2687 torben 2703 begin
2688     ShowMessage(logTekst);
2689 torben 3087 Config.UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2690 torben 2703 Application.Terminate;
2691    
2692     raise Exception.Create('UrlFejl');
2693    
2694     end;
2695     end;
2696    
2697     end;
2698    
2699    
2700    
2701 torben 2645 procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);
2702     var
2703     SR: TSearchRec;
2704     dt: TDateTime;
2705     CreationTime: TFileTime;
2706     dtCreation: TDateTime;
2707     BemTxt : String;
2708     begin
2709     logTekst := 'Logfiler tjekkes for sletning.';
2710     SkrivScanningLogFil(logTekst);
2711     FileList.Insert(0,logTekst);
2712     if FindFirst(Path + '*.log', faAnyFile, SR) = 0 then // finder log filer
2713     begin
2714     repeat
2715     if (SR.Attr <> faDirectory) then
2716     begin
2717 torben 2677
2718 torben 2645 dt := fileDateToDateTime(SR.Time); // finder filens timestamp for seneste ændring
2719     CreationTime := SR.FindData.ftCreationTime; // finder filens timestamp for oprettelse
2720 torben 2695 dtCreation := TUtils.FileTime2DateTime(CreationTime); // finder filens timestamp for oprettelse
2721 torben 2645 // Selvom creation date godt kan være forskellig fra modified date,
2722     // skal vi alligevel altid tjekke filens alder ud fra modified date
2723     // (ændring den kan ligge både før og efter oprettelse, hvis filerne er flyttet eller ændret manuelt)
2724     BemTxt := '';
2725     if (DaysBetween(now, dt) > 14) then // så er filen kandidat til at blive slettet
2726     begin
2727     BemTxt := ' (skal slettes)';
2728     end;
2729     logTekst := SR.Name + ' Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',dt) + ' ' + BemTxt + ' ' + IntToStr(DaysBetween(now, dt)) + ' dage gammel';
2730     if DaysBetween(dtCreation, dt) > 1 then
2731     begin
2732     logTekst := logTekst + ' (Oprettet ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',dtCreation) + ')';
2733     end;
2734     FileList.Insert(0,logTekst);
2735     SkrivScanningLogFil(logTekst);
2736     if BemTxt = ' (skal slettes)' then
2737     begin
2738     if DeleteFile(Path + SR.Name) then
2739     begin
2740     logTekst := 'Logfil er slettet.';
2741     FileList.Insert(0,logTekst);
2742     SkrivScanningLogFil(logTekst);
2743     end
2744     else
2745     begin
2746     logTekst := 'Logfil kunne IKKE slettes.';
2747     FileList.Insert(0,logTekst);
2748     SkrivScanningLogFil(logTekst);
2749     end;
2750     end;
2751     end;
2752     until FindNext(SR) <> 0;
2753     FindClose(SR);
2754     end;
2755     end;
2756    
2757 torben 2668 procedure TMainForm.btnNulstilClick(Sender: TObject);
2758 torben 2645 begin
2759     PakkeshopStregkode := '';
2760     PakkeshopTjekkode := '';
2761 torben 2668 btnNulstil.Visible := false;
2762 torben 2645 PakkeshopText1.Caption := 'Stregkode';
2763     BoghandlerStregkode := '';
2764     BoghandlerTjekkode := '';
2765     Stregkode := '';
2766     // 20150312: start
2767     if BoghandlerNavnST.Caption = 'Fejl i forbindelse til server' then
2768     begin
2769     ShowMessage('Programmet afbrydes...');
2770 torben 3087 Config.UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2771 torben 2645 Application.Terminate;
2772     exit;
2773     end;
2774     // 20150312: slut
2775     InitScreen();
2776     // MainForm.Color := HexToTColor(Farve);
2777     if Farve <> '' then
2778     begin
2779 torben 2682 MainForm.Color := TUtils.HexToTColor(Farve);
2780 torben 2645 end;
2781 torben 3054 if (menuDaoDirekte1.Checked) then
2782 torben 2645 begin
2783     InitLillePakke();
2784     end;
2785     PrinterstatusStaticText1.Caption := '';
2786     PrinterstatusStaticText1.Color := MainForm.Color;
2787     end;
2788    
2789 torben 2650
2790 torben 2645 procedure TMainForm.PanelValg1Click(Sender: TObject);
2791     begin
2792     Scanningtype := '1';
2793     InitNatxpresslevering();
2794     NulstilAutomatiskValg();
2795     end;
2796    
2797     procedure TMainForm.PanelValg2Click(Sender: TObject);
2798     begin
2799     Scanningtype := '2';
2800     InitReturFraDao();
2801     NulstilAutomatiskValg();
2802     end;
2803    
2804     procedure TMainForm.PanelValg3Click(Sender: TObject);
2805     begin
2806     Scanningtype := '3';
2807     InitReturFraKunde();
2808     NulstilAutomatiskValg();
2809     end;
2810    
2811     procedure TMainForm.PanelValg4Click(Sender: TObject);
2812     begin
2813     Scanningtype := '4';
2814     InitDirektelevering();
2815     NulstilAutomatiskValg();
2816     end;
2817    
2818     procedure TMainForm.PanelValg5Click(Sender: TObject);
2819     begin
2820     Scanningtype := '5';
2821     InitPakkeshoplevering();
2822     NulstilAutomatiskValg();
2823     end;
2824    
2825     procedure TMainForm.PanelValg6Click(Sender: TObject);
2826     begin
2827     Scanningtype := '6';
2828     InitReturFraPakkeshop();
2829     NulstilAutomatiskValg();
2830     end;
2831    
2832 torben 2650
2833     procedure TMainForm.PanelValg7Click(Sender: TObject);
2834     begin
2835     Scanningtype := '7';
2836     InitIndleveringskode();
2837     NulstilAutomatiskValg();
2838    
2839     end;
2840    
2841 torben 2645 procedure TMainForm.PanelValgAClick(Sender: TObject);
2842     begin
2843     // Skal ikke toggle men bare sætte funktionen on
2844     // Fravælges ved at vælge en scanningstype
2845 torben 3054 menuAutomatiskvalg1.Checked := true;
2846 torben 2692 PanelValgA.Color := clGreen;
2847     PanelValgA.Font.Color := clWhite;
2848    
2849    
2850    
2851 torben 2645 end;
2852    
2853 torben 3054 procedure TMainForm.menuNatXpress1Click(Sender: TObject);
2854 torben 2645 begin
2855     Scanningtype := '1';
2856     NulstilAutomatiskValg();
2857     InitNatxpresslevering();
2858     end;
2859    
2860     procedure TMainForm.Testforbindelsen1Click(Sender: TObject);
2861     var
2862     RuteNummer : String;
2863     Kommentar : String;
2864     BoghandlerNavn : String;
2865     Koreliste : String;
2866     Falsk : Boolean;
2867     SmsKode : String;
2868     DBKbane : String;
2869     Leveringssted : String;
2870     orgTjekUrls : String;
2871     begin
2872 torben 3090 orgTjekUrls := Config.TjekUrls;
2873     if (Config.TjekUrls = '1') or (Config.TjekUrls = '2') then
2874 torben 2645 begin
2875     TjekkerUrls();
2876     end;
2877 torben 3090 if Config.TjekUrls = '-' then
2878 torben 2645 begin
2879     //ShowMessage('Der var fejl i een eller flere urls - se logvinduet');
2880     RuteNummer := '';
2881     Kommentar := 'Se log vinduet';
2882     BoghandlerNavn := 'Fejl i forbindelse til server';
2883     Koreliste := '';
2884     UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
2885     // Her kommer en alarm og rød skærm
2886 torben 3090 PlaySound(PWideChar(Config.AlarmLyd));
2887 torben 2645 MainForm.Color := clRed;
2888 torben 2668 btnNulstil.Visible := true;
2889 torben 2645 end
2890     else
2891     begin
2892     Falsk := False;
2893 torben 2660
2894 torben 2645 HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');
2895     UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
2896     SmsKode := '999999';
2897     DBKbane := '999';
2898     Leveringssted := 'XXX';
2899 torben 3107
2900    
2901 torben 2645 PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);
2902     FocusControl(StregkodeST);
2903     end;
2904 torben 3090 Config.TjekUrls := orgTjekUrls;
2905 torben 2645
2906     end;
2907    
2908     procedure TMainForm.Testprinter1Click(Sender: TObject);
2909     var
2910     RuteNummer : String;
2911     Kommentar : String;
2912     BoghandlerNavn : String;
2913     Koreliste : String;
2914 torben 3125 // Falsk : Boolean;
2915     // SmsKode : String;
2916     // DBKbane : String;
2917     // Leveringssted : String;
2918 torben 2645 begin
2919     RuteNummer := 'Rutenr';
2920     Kommentar := '***** Kommentar *****';
2921     BoghandlerNavn := 'Modtagernavn';
2922 torben 3125 // Falsk := False;
2923 torben 2645
2924 torben 2660
2925 torben 2705 if (LabelPrint.GetPrinterCount() = 0) then
2926 torben 2645 begin
2927     ShowMessage('Der er ikke installeret en printer på denne PC.');
2928     end
2929 torben 3098 // else if Config.PrinterNavn = 'Ingen' then //Det giver ikke længere mening at kunne fravælge printer
2930     // begin
2931     // ShowMessage('Der er fravalgt printer i dette program.');
2932     // end
2933 torben 2645 else
2934     begin
2935     UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
2936 torben 3107 // SmsKode := '999999';
2937     // DBKbane := '999';
2938     // Leveringssted := 'XXX';
2939     // PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);
2940    
2941 torben 3128 LabelPrint.PrintTestLabel();
2942 torben 3107
2943 torben 3090 LabelPrint.CheckPrintQue('Test', Config.PrinterNavn);
2944 torben 3107
2945 torben 2645 end;
2946     FocusControl(StregkodeST);
2947     end;
2948    
2949     procedure TMainForm.Timer1Timer(Sender: TObject);
2950     begin
2951 torben 3090 if (Config.TjekPrinter = '1') then
2952 torben 2645 begin
2953 torben 3090 LabelPrint.CheckPrintQue('Timer', Config.PrinterNavn);
2954 torben 2645 end
2955     else
2956     begin
2957     PrinterstatusStaticText1.Caption := '';
2958     PrinterstatusStaticText1.Color := MainForm.Color;
2959     end;
2960     end;
2961    
2962    
2963    
2964     procedure TMainForm.Om1Click(Sender: TObject);
2965     const
2966     crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
2967     var
2968     tekst, filversion : String;
2969     begin
2970    
2971 torben 2693 filversion := TUtils.Sto_GetFmtFileVersion('');
2972 torben 2645 tekst := 'Program til indscanning af pakker'+crlf+'Version '+filversion+crlf+crlf+'Udviklet af it afdelingen, DAO';
2973    
2974     tekst := tekst+crlf+crlf;
2975     tekst := tekst+'Programmet er installeret som:'+crlf+ParamStr(0);
2976     tekst := tekst+crlf;
2977    
2978     if SpecialVersionSted = '' then
2979     begin
2980     tekst := tekst+crlf+crlf+'Scanningssted: '+StringReplace(Stednavn, ':', '', [rfReplaceAll, rfIgnoreCase])+' ('+Sted+')';
2981     end;
2982    
2983     if SpecialVersionSted <> '' then
2984     begin
2985     if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
2986     begin
2987     if Stednavn = '' then
2988     begin
2989     tekst := tekst+crlf+crlf+'Speciel version til: '+BladhusStedNavn[BladhusSted]+' ('+BladhusStedKode[BladhusSted]+')';
2990     end
2991     else
2992     begin
2993 torben 2682 tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
2994 torben 2645 end;
2995     end
2996     else
2997     begin
2998 torben 2682 tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
2999 torben 2645 end;
3000     end;
3001    
3002     if (Pos('omdeling.info',Url) = 0) then
3003     begin
3004     tekst := tekst+crlf+crlf;
3005     tekst := tekst+crlf+crlf+' ********** DETTE ER KUN EN TEST VERSION **********';
3006     tekst := tekst+crlf+crlf;
3007 torben 3087 tekst := tekst+crlf+crlf+'Url: ' + Url;
3008 torben 2645 end;
3009    
3010     MessageBox(Handle, PWideChar(tekst), 'Information', MB_OK);
3011    
3012     end;
3013    
3014 torben 3039
3015 torben 2645 procedure TMainForm.ListBox1DrawItem(Control: TWinControl; Index: Integer;
3016     Rect: TRect; State: TOwnerDrawState);
3017     var
3018     ListBox1MaxLinLgd,i : Integer;
3019     myColor: TColor;
3020     myBrush: TBrush;
3021     begin
3022     ListBox1MaxLinLgd := 0;
3023     myBrush := TBrush.Create;
3024     with (Control as TListBox).Canvas do
3025     begin
3026     if not Odd(Index) then
3027     myColor := clWhite
3028     else
3029     myColor := clSilver;
3030    
3031     if odSelected in State then
3032     begin
3033     myColor := MainForm.Color;
3034     font.Color := clBlack;
3035     end;
3036    
3037     myBrush.Style := bsSolid;
3038     myBrush.Color := myColor;
3039     Windows.FillRect(handle, Rect, myBrush.Handle) ;
3040     Brush.Style := bsClear;
3041     TextOut(Rect.Left, Rect.Top,
3042     (Control as TListBox).Items[Index]) ;
3043     MyBrush.Free;
3044     end;
3045    
3046     for i := 0 to (ListBox1.Items.Count - 1) do
3047     if (ListBox1.Canvas.TextWidth(ListBox1.Items[i]) > ListBox1MaxLinLgd) then
3048     ListBox1MaxLinLgd := ListBox1.Canvas.TextWidth(ListBox1.Items[i]);
3049     ListBox1.ScrollWidth := ListBox1MaxLinLgd;
3050     end;
3051    
3052     procedure TMainForm.Lukprogrammet1Click(Sender: TObject);
3053     begin
3054    
3055     Application.Terminate;
3056    
3057     end;
3058    
3059     procedure TMainForm.Manual1Click(Sender: TObject);
3060     var
3061     fileName : string;
3062     begin
3063     fileName := 'Docs\Manual_' + Scanningtype + '.pdf';
3064    
3065     if FileExists(fileName) then
3066     begin
3067 torben 2685 if TUtils.AdobeReaderExists then
3068 torben 2645 begin
3069     //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3070     ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
3071     end
3072     else
3073     begin
3074     ShowMessage('Acrobat Reader er ikke installeret!');
3075     end;
3076     end
3077     else
3078     begin
3079     ShowMessage('Manualen : ' + #10#13 + fileName + #10#13 + 'blev ikke fundet!');
3080     end;
3081     end;
3082    
3083     procedure TMainForm.Manualgenerel1Click(Sender: TObject);
3084     var
3085     fileName : string;
3086     begin
3087     fileName := 'Docs\Manual_0.pdf';
3088    
3089     if FileExists(fileName) then
3090     begin
3091 torben 2685 if TUtils.AdobeReaderExists then
3092 torben 2645 begin
3093     //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3094     ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
3095     end
3096     else
3097     begin
3098 torben 2700 ShowMessage('Adobe Reader er ikke installeret!');
3099 torben 2645 end;
3100     end
3101     else
3102     begin
3103     ShowMessage('Manualen : ' + #10#13 + fileName + #10#13 + 'blev ikke fundet!');
3104     end;
3105     end;
3106    
3107 torben 2664 procedure TMainForm.menuIndleveringClick(Sender: TObject);
3108     begin
3109     Scanningtype := '7';
3110     NulstilAutomatiskValg();
3111     InitIndleveringskode();
3112     end;
3113    
3114 torben 2645 procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);
3115     begin
3116    
3117     if Sprgefterboghandlernummer1.Checked then
3118     begin
3119 torben 2653 chkSporgEfterKunde.Checked := true;
3120 torben 2645 end
3121     else
3122     begin
3123 torben 2653 chkSporgEfterKunde.Checked := false;
3124 torben 2645 end;
3125    
3126    
3127     end;
3128    
3129 torben 3054 procedure TMainForm.menuNatxpressReturDAO1Click(Sender: TObject);
3130 torben 2645 begin
3131     Scanningtype := '2';
3132     NulstilAutomatiskValg();
3133     InitReturFraDao();
3134     end;
3135    
3136 torben 3054 procedure TMainForm.menuPakkeshopRetur1Click(Sender: TObject);
3137 torben 2645 begin
3138     Scanningtype := '6';
3139     InitReturFraPakkeshop();
3140     NulstilAutomatiskValg();
3141     end;
3142    
3143     procedure TMainForm.InitNatxpresslevering();
3144     begin
3145 torben 3055 menuAutomatiskTjekkodeStyring.Enabled := true;
3146 torben 2668 btnNulstil.Visible := false;
3147 torben 3054 menuNatXpress1.Checked := true;
3148 torben 3089 InitForm(Config.FarveNormal,Config.TitelNormal,Config.UrlNormal);
3149 torben 2645 PanelValg1.Color := clGreen;
3150     PanelValg1.Font.Color := clWhite;
3151 torben 2653
3152 torben 2652 chkAltidPrintLabel.Enabled := true;
3153 torben 2645 Altidprintepakkelabel1.Enabled := true;
3154     Altidprintepakkelabel1.Checked := false;
3155 torben 2652 chkAltidPrintLabel.Checked := false;
3156 torben 2645 Sprgefterboghandlernummer1.Checked := false;
3157 torben 2653 chkSporgEfterKunde.Checked := false;
3158 torben 2645 Sprgefterboghandlernummer1.Enabled := true;
3159 torben 3055 menuSmaaPakker.Enabled := false;
3160     menuStorePakker.Enabled := false;
3161 torben 2655 radioStorPakke.Enabled := false;
3162     radioLillePakke.Enabled := false;
3163 torben 2645 ListBox1.Visible := true;
3164 torben 2699 BtnOpdaterListen.Enabled := true;
3165 torben 2698 BtnEKLoverforsel.Enabled := true;
3166 torben 2645 InitLillePakke();
3167     ListBox1.Items.Clear;
3168 torben 2791
3169     chkForstorTilDirekte.Checked := false;
3170     chkForstorTilDirekte.Enabled := false;
3171    
3172 torben 2645 if BladhusSted = 0 then
3173     begin
3174     IndlesScanningLogFil();
3175 torben 3124 IndlesManglendeScanningerAntal();
3176 torben 2645 end;
3177     end;
3178    
3179     procedure TMainForm.InitReturFraDao();
3180     begin
3181 torben 3055 menuAutomatiskTjekkodeStyring.Enabled := false;
3182 torben 3054 menuNatxpressReturDAO1.Checked := true;
3183 torben 2668 btnNulstil.Visible := false;
3184 torben 3089 InitForm(Config.FarveReturDAO, Config.TitelReturDAO, Config.UrlReturDAO);
3185 torben 2645 PanelValg2.Color := clGreen;
3186     PanelValg2.Font.Color := clWhite;
3187 torben 2653
3188 torben 2652 chkAltidPrintLabel.Enabled := false;
3189 torben 2645 Altidprintepakkelabel1.Enabled := false;
3190 torben 2652
3191 torben 2645 Altidprintepakkelabel1.Checked := false;
3192     Sprgefterboghandlernummer1.Checked := false;
3193 torben 2653 chkSporgEfterKunde.Checked := false;
3194 torben 2645 Sprgefterboghandlernummer1.Enabled := false;
3195 torben 3055 menuSmaaPakker.Enabled := true;
3196     menuStorePakker.Enabled := true;
3197 torben 2655 radioStorPakke.Enabled := true;
3198     radioLillePakke.Enabled := true;
3199 torben 2645 ListBox1.Visible := true;
3200     ListBox1.Items.Clear;
3201     ListBox2.Items.Clear;
3202 torben 2698 BtnEKLoverforsel.Enabled := false;
3203 torben 2791
3204     chkForstorTilDirekte.Checked := false;
3205     chkForstorTilDirekte.Enabled := false;
3206    
3207 torben 2645 InitLillePakke();
3208     end;
3209    
3210     procedure TMainForm.InitReturFraKunde();
3211     begin
3212 torben 3055 menuAutomatiskTjekkodeStyring.Enabled := false;
3213 torben 3054 menuNatxpressReturfraKunde1.Checked := true;
3214 torben 2668 btnNulstil.Visible := false;
3215 torben 3089 InitForm(Config.FarveReturBoghandler, Config.TitelReturBoghandler, Config.UrlReturBoghandler);
3216 torben 2645 PanelValg3.Color := clGreen;
3217     PanelValg3.Font.Color := clWhite;
3218 torben 2653
3219 torben 2652 chkAltidPrintLabel.Enabled := false;
3220 torben 2645 Altidprintepakkelabel1.Enabled := false;
3221     Altidprintepakkelabel1.Checked := false;
3222     Sprgefterboghandlernummer1.Checked := false;
3223 torben 2653 chkSporgEfterKunde.Checked := false;
3224 torben 2645 Sprgefterboghandlernummer1.Enabled := false;
3225 torben 3055 menuSmaaPakker.Enabled := true;
3226     menuStorePakker.Enabled := true;
3227 torben 2655 radioStorPakke.Enabled := true;
3228     radioLillePakke.Enabled := true;
3229 torben 2645 ListBox1.Visible := true;
3230     ListBox1.Items.Clear;
3231     ListBox2.Items.Clear;
3232 torben 2698 BtnEKLoverforsel.Enabled := false;
3233 torben 2791
3234     chkForstorTilDirekte.Checked := false;
3235     chkForstorTilDirekte.Enabled := false;
3236    
3237 torben 2645 InitLillePakke();
3238     end;
3239    
3240     procedure TMainForm.InitDirektelevering();
3241     begin
3242 torben 3055 menuAutomatiskTjekkodeStyring.Enabled := false;
3243 torben 3054 menuDaoDirekte1.Checked := true;
3244 torben 2668 btnNulstil.Visible := false;
3245 torben 3089 InitForm(Config.FarveBudlevering, Config.TitelBudlevering, Config.UrlBudlevering);
3246 torben 2645 PanelValg4.Color := clGreen;
3247     PanelValg4.Font.Color := clWhite;
3248 torben 2653
3249 torben 2652 chkAltidPrintLabel.Enabled := false;
3250 torben 2645 Altidprintepakkelabel1.Enabled := false;
3251 torben 2652
3252 torben 2645 Altidprintepakkelabel1.Checked := false;
3253     Sprgefterboghandlernummer1.Checked := false;
3254 torben 2653 chkSporgEfterKunde.Checked := false;
3255 torben 2645 Sprgefterboghandlernummer1.Enabled := false;
3256 torben 3055 menuSmaaPakker.Enabled := true;
3257     menuStorePakker.Enabled := true;
3258 torben 2655 radioStorPakke.Enabled := true;
3259     radioLillePakke.Enabled := true;
3260 torben 2645 ListBox1.Visible := true;
3261     ListBox1.Items.Clear;
3262 torben 2691 BtnDownloadKontrolfil.Enabled := false;
3263 torben 2699 BtnOpdaterListen.Enabled := true;
3264 torben 2696 BtnDownloadRuteskiftFil.Visible := false;
3265 torben 2698 BtnEKLoverforsel.Enabled := false;
3266 torben 2645 IdFTP1.Passive := true;
3267     IdFTP1.PassiveUseControlHost := true;
3268 torben 2791
3269     chkForstorTilDirekte.Checked := false;
3270     chkForstorTilDirekte.Enabled := true;
3271    
3272 torben 2645 if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then
3273     begin
3274     IndlesScanningLogFil();
3275 torben 3124 IndlesManglendeScanningerAntal();
3276 torben 2645 end;
3277    
3278     end;
3279    
3280     procedure TMainForm.InitPakkeshoplevering();
3281     begin
3282 torben 3055 menuAutomatiskTjekkodeStyring.Enabled := true;
3283 torben 3054 menuPakkeshop1.Checked := true;
3284 torben 2668 btnNulstil.Visible := false;
3285 torben 3089 InitForm(Config.FarvePakkeshoplevering, Config.TitelPakkeshoplevering, Config.UrlPakkeshoplevering);
3286 torben 2645 PanelValg5.Color := clGreen;
3287     PanelValg5.Font.Color := clWhite;
3288 torben 2653
3289 torben 2652 chkAltidPrintLabel.Enabled := false;
3290 torben 2645 Altidprintepakkelabel1.Enabled := false;
3291 torben 2652
3292 torben 2645 Altidprintepakkelabel1.Checked := false;
3293     Sprgefterboghandlernummer1.Checked := false;
3294 torben 2653 chkSporgEfterKunde.Checked := false;
3295 torben 2645 Sprgefterboghandlernummer1.Enabled := false;
3296 torben 3055 menuSmaaPakker.Enabled := false;
3297     menuStorePakker.Enabled := false;
3298 torben 2655 radioStorPakke.Enabled := false;
3299     radioLillePakke.Enabled := false;
3300 torben 2645 ListBox1.Visible := true;
3301     ListBox1.Items.Clear;
3302 torben 2691 BtnDownloadKontrolfil.Enabled := false;
3303 torben 2699 BtnOpdaterListen.Enabled := true;
3304 torben 2656
3305 torben 2698 BtnEKLoverforsel.Enabled := true;
3306 torben 2656
3307 torben 2791 chkForstorTilDirekte.Checked := false;
3308     chkForstorTilDirekte.Enabled := true;
3309    
3310 torben 2645 InitLillePakke();
3311     IndlesScanningLogFil();
3312     if BladhusSted = 0 then
3313     begin
3314 torben 3124 IndlesManglendeScanningerAntal();
3315 torben 2645 end;
3316     IdFTP1.Passive := true;
3317     IdFTP1.PassiveUseControlHost := true;
3318     end;
3319    
3320     procedure TMainForm.InitReturFraPakkeshop();
3321     begin
3322 torben 3055 menuAutomatiskTjekkodeStyring.Enabled := false;
3323 torben 3054 menuPakkeshopRetur1.Checked := true;
3324 torben 2668 btnNulstil.Visible := false;
3325 torben 3089 InitForm(Config.FarveReturPakkeshop, Config.TitelReturPakkeshop, Config.UrlReturPakkeshop);
3326 torben 2645 PanelValg6.Color := clGreen;
3327     PanelValg6.Font.Color := clWhite;
3328 torben 2653
3329 torben 2652 chkAltidPrintLabel.Enabled := false;
3330 torben 2645 Altidprintepakkelabel1.Enabled := false;
3331 torben 2652
3332 torben 2645 Altidprintepakkelabel1.Checked := false;
3333     Sprgefterboghandlernummer1.Checked := false;
3334 torben 2653 chkSporgEfterKunde.Checked := false;
3335 torben 2645 Sprgefterboghandlernummer1.Enabled := false;
3336 torben 3055 menuSmaaPakker.Enabled := false;
3337     menuStorePakker.Enabled := false;
3338 torben 2655 radioStorPakke.Enabled := false;
3339     radioLillePakke.Enabled := false;
3340 torben 2645 ListBox1.Visible := true;
3341     ListBox1.Items.Clear;
3342 torben 2691 BtnDownloadKontrolfil.Enabled := false;
3343 torben 2699 BtnOpdaterListen.Enabled := true;
3344 torben 2698 BtnEKLoverforsel.Enabled := false;
3345 torben 2791
3346     chkForstorTilDirekte.Checked := false;
3347     chkForstorTilDirekte.Enabled := false;
3348    
3349    
3350 torben 2645 InitLillePakke();
3351     IndlesScanningLogFil();
3352     if BladhusSted = 0 then
3353     begin
3354 torben 3124 IndlesManglendeScanningerAntal();
3355 torben 2645 end;
3356     IdFTP1.Passive := true;
3357     IdFTP1.PassiveUseControlHost := true;
3358     end;
3359    
3360 torben 3054 procedure TMainForm.menuNatxpressReturfraKunde1Click(Sender: TObject);
3361 torben 2645 begin
3362     Scanningtype := '3';
3363     NulstilAutomatiskValg();
3364     InitReturFraKunde();
3365     end;
3366    
3367 torben 2650 procedure TMainForm.InitIndleveringskode();
3368     begin
3369 torben 2664 menuIndlevering.Checked := true;
3370 torben 3055 menuAutomatiskTjekkodeStyring.Enabled := false;
3371 torben 2664
3372 torben 2668 btnNulstil.Visible := false;
3373 torben 3089 InitForm(Config.FarveIndlevering, Config.TitelIndlevering, Config.UrlReturPakkeshop);
3374 torben 2650 PanelValg7.Color := clGreen;
3375     PanelValg7.Font.Color := clWhite;
3376 torben 2653
3377 torben 2652 chkAltidPrintLabel.Enabled := false;
3378 torben 2650 Altidprintepakkelabel1.Enabled := false;
3379 torben 2652
3380 torben 2650 Altidprintepakkelabel1.Checked := false;
3381     Sprgefterboghandlernummer1.Checked := false;
3382 torben 2656 Sprgefterboghandlernummer1.Enabled := false;
3383 torben 2653 chkSporgEfterKunde.Checked := false;
3384 torben 2656
3385    
3386    
3387 torben 3055 menuSmaaPakker.Enabled := false;
3388     menuStorePakker.Enabled := false;
3389 torben 2655 radioStorPakke.Enabled := false;
3390     radioLillePakke.Enabled := false;
3391 torben 2650 ListBox1.Visible := true;
3392 torben 2656 ListBox1.Items.Clear();
3393    
3394 torben 2691 BtnDownloadKontrolfil.Enabled := false;
3395 torben 2699 BtnOpdaterListen.Enabled := true;
3396 torben 2698 BtnEKLoverforsel.Enabled := false;
3397 torben 2791
3398     chkForstorTilDirekte.Checked := false;
3399     chkForstorTilDirekte.Enabled := false;
3400    
3401    
3402 torben 2664 InitLillePakke();
3403     IndlesScanningLogFil();
3404     if BladhusSted = 0 then
3405     begin
3406 torben 3124 IndlesManglendeScanningerAntal();
3407 torben 2664 end;
3408 torben 2650 IdFTP1.Passive := true;
3409     IdFTP1.PassiveUseControlHost := true;
3410     end;
3411    
3412    
3413 torben 3055 procedure TMainForm.menuStorePakkerClick(Sender: TObject);
3414 torben 2645 begin
3415     InitStorPakke();
3416     end;
3417    
3418 torben 3055 procedure TMainForm.menuSmaaPakkerClick(Sender: TObject);
3419 torben 2645 begin
3420     InitLillePakke();
3421     end;
3422    
3423     procedure TMainForm.InitLillePakke();
3424     begin
3425 torben 2655 radioLillePakke.Checked := true;
3426 torben 3055 menuSmaaPakker.Checked := true;
3427 torben 2645 // Stregkode := '';
3428     end;
3429    
3430     procedure TMainForm.InitStorPakke();
3431     begin
3432 torben 2655 radioStorPakke.Checked := true;
3433 torben 3055 menuStorePakker.Checked := true;
3434 torben 2645 // 20150310: start
3435     // Stregkode := '';
3436     // 20150310: slut
3437     end;
3438    
3439 torben 2677
3440 torben 2645
3441     procedure TMainForm.PlaySound(filename : PWideChar);
3442     begin
3443     if (filename <> '') then
3444     begin
3445     sndPlaySound(filename,
3446     SND_NODEFAULT Or SND_ASYNC);
3447     end;
3448     end;
3449    
3450     procedure TMainForm.Testlyd1Click(Sender: TObject);
3451     begin
3452 torben 3090 if Config.AlarmLyd <> '' then
3453 torben 2645 begin
3454 torben 3090 PlaySound(PWideChar(Config.AlarmLyd));
3455 torben 2645 end
3456     else
3457     begin
3458     MessageBox(Handle, PWideChar('Lyd fil ikke fundet (alarm)'), 'Information', MB_OK);
3459     end;
3460     end;
3461    
3462     procedure TMainForm.Testlyd2Click(Sender: TObject);
3463     begin
3464     if (PakkeshopText1.Caption = 'Tjekkode') then
3465     begin
3466 torben 3090 if Config.ScannetOkTilTjekkodeLyd <> '' then
3467 torben 2645 begin
3468 torben 3090 PlaySound(PWideChar(Config.ScannetOkTilTjekkodeLyd));
3469 torben 2645 end
3470     else
3471     begin
3472     MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkTilTjekkodeLyd)'), 'Information', MB_OK);
3473     end;
3474     exit;
3475     end;
3476    
3477 torben 3055 if menuSmaaPakker.Checked then
3478 torben 3090 if Config.ScannetOkLyd <> '' then
3479 torben 2645 begin
3480 torben 3090 PlaySound(PWideChar(Config.ScannetOkLyd));
3481 torben 2645 end
3482     else
3483     begin
3484     MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);
3485     end;
3486 torben 3055 if menuStorePakker.Checked then
3487 torben 3090 if Config.ScannetOkStorLyd <> '' then
3488 torben 2645 begin
3489 torben 3090 PlaySound(PWideChar(Config.ScannetOkStorLyd));
3490 torben 2645 end
3491     else
3492     begin
3493     MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);
3494     end;
3495     end;
3496    
3497    
3498 torben 3054 procedure TMainForm.menuDaoDirekte1Click(Sender: TObject);
3499 torben 2645 begin
3500     Scanningtype := '4';
3501     NulstilAutomatiskValg();
3502     InitDirektelevering();
3503     end;
3504    
3505     procedure TMainForm.Button1Click(Sender: TObject);
3506     begin;
3507     CheckCode();
3508     end;
3509    
3510 torben 2698 procedure TMainForm.BtnEKLoverforselClick(Sender: TObject);
3511 torben 2645 var
3512     WebSvar : String;
3513     URLStr : String;
3514     StedKode : String;
3515     Node: IXMLNode;
3516     I: Integer;
3517     status, kommentar : String;
3518    
3519     begin
3520 torben 2698 BtnEKLoverforsel.Enabled := false;
3521 torben 2645
3522     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Overfører de scannede pakker til EKL');
3523     logTekst := 'Overfører de scannede pakker til EKL';
3524     SkrivScanningLogFil(logTekst);
3525     StedKode := Sted;
3526 torben 3087 URLStr := Format(Config.UrlEKLoverforsel,[StedKode,Sted]);
3527 torben 2704
3528 torben 2645 if PanelValg5.Color = clGreen then
3529     begin
3530 torben 3087 URLStr := Format(Config.UrlEKLoverforselPakkeshop,[StedKode,Sted]);
3531 torben 2645 end;
3532    
3533 torben 2704
3534 torben 2645 try
3535     //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
3536     WebSvar := IdHTTP1.Get(URLStr);
3537     except
3538     on e:EIdConnClosedGracefully do
3539     begin
3540     // Her skal vi ikke gøre noget - men vi skal forespørge igen
3541     WebSvar := IdHTTP1.Get(URLStr);
3542     end;
3543     on e:exception do
3544     begin
3545     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Fejl i web forespørgsel: '+e.Message);
3546     logTekst := 'Fejl i web forespørgsel: '+e.Message;
3547     SkrivScanningLogFil(logTekst);
3548     raise exception.CreateFmt('Fejl i web forespørgsel: %s',[e.Message]);
3549     end;
3550     end;
3551     try
3552     XMLDocument1.LoadFromXML(WebSvar);
3553     for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
3554     Node:= XMLDocument1.DocumentElement.ChildNodes[I];
3555     if Node.NodeType = ntElement then begin
3556     if Node.NodeName = 'Status' then begin
3557     if not VarIsNull(Node.NodeValue) then
3558     status := Node.NodeValue;
3559     end;
3560     if Node.NodeName = 'Kommentar' then begin
3561     if not VarIsNull(Node.NodeValue) then
3562     kommentar := Node.NodeValue;
3563     end;
3564     end;
3565     end;
3566    
3567     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Overførsel til EKL: ' + status+' '+kommentar);
3568     logTekst := 'Overførsel til EKL: ' + status;
3569     SkrivScanningLogFil(logTekst);
3570    
3571     except on e:exception do
3572     begin
3573     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Overførsel til EKL: ' + status);
3574     logTekst := 'Overførsel til EKL: ' + status;
3575     SkrivScanningLogFil(logTekst);
3576     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Fejl i XML-format: '+e.Message);
3577     logTekst := 'Fejl i XML-format: '+e.Message;
3578     SkrivScanningLogFil(logTekst);
3579     raise exception.CreateFmt('Fejl i XML-format: %s',[e.Message]);
3580     end;
3581     end;
3582    
3583 torben 2698 BtnEKLoverforsel.Enabled := true;
3584 torben 2645
3585     ListBox1.SetFocus; // for at flytte fokus væk fra knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
3586    
3587     // Hvis der var fejl i overførslen skal dette fejlmeldes her
3588     if status = 'Fejl' then
3589     begin // Her skal komme en alarm og rød skærm
3590 torben 3090 PlaySound(PWideChar(Config.AlarmLyd));
3591 torben 2645 MainForm.Color := clRed;
3592     RutenummerST.Caption := 'EKL overførsel';
3593     BoghandlerNavnST.Caption := 'Fejl:';
3594     if (pos('Deadlock', Kommentar) > 0) then
3595     begin
3596     RutenummerST.Caption := 'EKL overførsel fejlet';
3597     BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';
3598     end;
3599     KommentarST.Caption := Kommentar;
3600 torben 2668 btnNulstil.Visible := true;
3601 torben 2645 end;
3602    
3603     end;
3604    
3605     procedure TMainForm.CheckCode();
3606     var
3607     Barcode, Svar : String;
3608     ClickedOK : Boolean;
3609     begin
3610     ClickedOK := InputQuery('Barcode check', 'Indtast stregkode', Barcode);
3611     if ClickedOk then
3612     begin
3613     { if (BarCodeValid(Barcode)) then
3614     MessageBox(Handle, 'ok', 'Stregkode', MB_OK)
3615     else
3616     MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);
3617     }
3618     // MessageBox(Handle, PAnsiChar(CheckSumModulo10(Barcode)), 'Stregkode', MB_OK);
3619     { if (CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1)) = Barcode) then
3620     MessageBox(Handle, 'ok', 'Stregkode', MB_OK)
3621     else
3622     MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);
3623     }
3624 torben 2682 Svar := 'Beregnet: ' + TUtils.CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;
3625 torben 2645
3626     MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);
3627     CheckCode();
3628     end;
3629    
3630     end;
3631    
3632    
3633     //
3634     // Bladhus ***
3635     //
3636     procedure TMainForm.DownloadBladhusRuteskiftfil();
3637     const
3638     crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
3639    
3640     var
3641     filnavn_input : string;
3642     filnavn_output : string;
3643     buttonSelected : Integer;
3644    
3645     begin
3646     filnavn_input := BladhusRuteskiftfil_server; // hvis filen ikke findes vises 'no such file or directory'
3647     filnavn_output := BladhusRuteskiftfil_lokal;
3648    
3649     case BladhusSted of
3650     00 : begin;
3651     end;
3652     01 : begin;
3653     buttonSelected := MessageDlg('Henter ruteskift filen ' + filnavn_input + ' fra DAO ftp server',mtConfirmation, mbOKCancel, 0);
3654     if buttonSelected = mrOK then
3655     begin
3656     ListBox1.Items.Insert(0,TimeToStr(now) + ': Henter ' + filnavn_input + ' fra DAO ftp serveren.');
3657     logTekst := 'Henter ' + filnavn_input + ' fra DAO ftp serveren.';
3658     SkrivScanningLogFil(logTekst);
3659     try
3660     try
3661    
3662     IdFTP1.host:='ftp.daoas.dk'; // hvis forkert vises 'socket error # 11001 host not found'
3663     IdFTP1.Username:='nordjyske'; // hvis forkert vises 'login incorrect'
3664     IdFTP1.Password:='kew3ma9u'; // hvis forkert vises 'login incorrect'
3665     IdFTP1.Connect;
3666    
3667     //IdFTP1.TransferType := ftASCII;
3668     // IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3669     try
3670     //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
3671     IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3672     except on e:EIdConnClosedGracefully do
3673     begin
3674     // Her skal vi ikke gøre noget - men vi skal forespørge igen
3675     IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3676     end;
3677     end;
3678     // hvis 3. parameter er false (filen må ikke overskrives) vises 'Destination file already exists' hvis filen findes på disken
3679    
3680     ListBox1.Items.Insert(0,TimeToStr(now) + ': Ruteskift fil gemt lokalt som ' + filnavn_output + '.');
3681     logTekst := 'Ruteskift fil gemt lokalt som ' + filnavn_output + '.';
3682     SkrivScanningLogFil(logTekst);
3683    
3684     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Ruteskift fil tjekkes.');
3685     logTekst := 'Ruteskift fil tjekkes.';
3686     SkrivScanningLogFil(logTekst);
3687    
3688     finally
3689     IdFTP1.Disconnect;
3690     end;
3691    
3692     except on e:exception do
3693     begin
3694     ListBox1.Items.Insert(0,TimeToStr(now) + ': Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username);
3695     logTekst := 'Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username;
3696     SkrivScanningLogFil(logTekst);
3697     raise exception.CreateFmt('Fejl i FTP handling:'+ CrLf + '%s',
3698     [e.Message
3699     + CrLf + 'Host: '+IdFTP1.host
3700     + CrLf + 'Username: '+IdFTP1.Username
3701     ]
3702     );
3703     end;
3704     end;
3705     end
3706     else
3707     begin
3708     ListBox1.Items.Insert(0,TimeToStr(now) + ': Download af ruteskiftfil annulleret.');
3709     logTekst := 'Download af ruteskiftfil annulleret';
3710     SkrivScanningLogFil(logTekst);
3711     end;
3712     IndlesRuteskiftFil(filnavn_output);
3713     end;
3714     02 : begin;
3715     end;
3716     03 : begin;
3717     buttonSelected := MessageDlg('Henter ruteskift filen ' + filnavn_input + ' fra DAO ftp server',mtConfirmation, mbOKCancel, 0);
3718     if buttonSelected = mrOK then
3719     begin
3720     ListBox1.Items.Insert(0,TimeToStr(now) + ': Henter ' + filnavn_input + ' fra DAO ftp serveren.');
3721     logTekst := 'Henter ' + filnavn_input + ' fra DAO ftp serveren.';
3722     SkrivScanningLogFil(logTekst);
3723     try
3724     try
3725    
3726     IdFTP1.host:='ftp.daoas.dk'; // hvis forkert vises 'socket error # 11001 host not found'
3727     IdFTP1.Username:='fd'; // hvis forkert vises 'login incorrect'
3728     IdFTP1.Password:='pu4aphedre'; // hvis forkert vises 'login incorrect'
3729     IdFTP1.Connect;
3730    
3731     //IdFTP1.TransferType := ftASCII;
3732     // IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3733     try
3734     //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
3735     IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3736     except on e:EIdConnClosedGracefully do
3737     begin
3738     // Her skal vi ikke gøre noget - men vi skal forespørge igen
3739     IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3740     end;
3741     end;
3742     // hvis 3. parameter er false (filen må ikke overskrives) vises 'Destination file already exists' hvis filen findes på disken
3743    
3744     ListBox1.Items.Insert(0,TimeToStr(now) + ': Rute ruteskift fil gemt lokalt som ' + filnavn_output + '.');
3745     logTekst := 'Ruteskift fil gemt lokalt som ' + filnavn_output + '.';
3746     SkrivScanningLogFil(logTekst);
3747    
3748     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Ruteskift fil tjekkes.');
3749     logTekst := 'Ruteskift fil tjekkes.';
3750     SkrivScanningLogFil(logTekst);
3751    
3752     finally
3753     IdFTP1.Disconnect;
3754     end;
3755    
3756     except on e:exception do
3757     begin
3758     ListBox1.Items.Insert(0,TimeToStr(now) + ': Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username);
3759     logTekst := 'Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username;
3760     SkrivScanningLogFil(logTekst);
3761     raise exception.CreateFmt('Fejl i FTP handling:'+ CrLf + '%s',
3762     [e.Message
3763     + CrLf + 'Host: '+IdFTP1.host
3764     + CrLf + 'Username: '+IdFTP1.Username
3765     ]
3766     );
3767     end;
3768     end;
3769     end
3770     else
3771     begin
3772     ListBox1.Items.Insert(0,TimeToStr(now) + ': Download af ruteskiftfil annulleret.');
3773     logTekst := 'Download af ruteskiftfil annulleret';
3774     SkrivScanningLogFil(logTekst);
3775     end;
3776     IndlesRuteskiftFil(filnavn_output);
3777     end;
3778     04 : begin;
3779     end;
3780     else
3781     ShowMessage('Ukendt Bladhus sted: ' + IntToStr(BladhusSted));
3782     end;
3783    
3784     end;
3785    
3786     procedure TMainForm.DownloadBladhusKontrolfil();
3787     const
3788     crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
3789    
3790     var
3791     filnavn_input : string;
3792     filnavn_output : string;
3793     buttonSelected : Integer;
3794    
3795     begin
3796     filnavn_input := BladhusKontrolfil_server; // hvis filen ikke findes vises 'no such file or directory'
3797     filnavn_output := BladhusKontrolfil_lokal;
3798    
3799     case BladhusSted of
3800     01 :
3801     begin;
3802     buttonSelected := MessageDlg('Henter rute kontrol filen ' + filnavn_input + ' fra DAO ftp server',mtConfirmation, mbOKCancel, 0);
3803     if buttonSelected = mrOK then
3804     begin
3805     ListBox1.Items.Insert(0,TimeToStr(now) + ': Henter ' + filnavn_input + ' fra DAO ftp serveren.');
3806     logTekst := 'Henter ' + filnavn_input + ' fra DAO ftp serveren.';
3807     SkrivScanningLogFil(logTekst);
3808     try
3809     try
3810    
3811     IdFTP1.host:='ftp.daoas.dk'; // hvis forkert vises 'socket error # 11001 host not found'
3812     IdFTP1.Username:='nordjyske'; // hvis forkert vises 'login incorrect'
3813     IdFTP1.Password:='kew3ma9u'; // hvis forkert vises 'login incorrect'
3814     IdFTP1.Connect;
3815    
3816     //IdFTP1.TransferType := ftASCII;
3817     // IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3818     try
3819     //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
3820     IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3821     except on e:EIdConnClosedGracefully do
3822     begin
3823     // Her skal vi ikke gøre noget - men vi skal forespørge igen
3824     IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3825     end;
3826     end;
3827     // hvis 3. parameter er false (filen må ikke overskrives) vises 'Destination file already exists' hvis filen findes på disken
3828    
3829     ListBox1.Items.Insert(0,TimeToStr(now) + ': Rute kontrol fil gemt lokalt som ' + filnavn_output + '.');
3830     logTekst := 'Rute kontrol fil gemt lokalt som ' + filnavn_output + '.';
3831     SkrivScanningLogFil(logTekst);
3832    
3833     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Rute kontrol fil tjekkes.');
3834     logTekst := 'Rute kontrol fil tjekkes.';
3835     SkrivScanningLogFil(logTekst);
3836    
3837     finally
3838     IdFTP1.Disconnect;
3839     end;
3840    
3841     except on e:exception do
3842     begin
3843     ListBox1.Items.Insert(0,TimeToStr(now) + ': Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username);
3844     logTekst := 'Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username;
3845     SkrivScanningLogFil(logTekst);
3846     raise exception.CreateFmt('Fejl i FTP handling:'+ CrLf + '%s',
3847     [e.Message
3848     + CrLf + 'Host: '+IdFTP1.host
3849     + CrLf + 'Username: '+IdFTP1.Username
3850     ]
3851     );
3852     end;
3853     end;
3854     end
3855     else
3856     begin
3857     ListBox1.Items.Insert(0,TimeToStr(now) + ': Download af kontrolfil annulleret.');
3858     logTekst := 'Download af kontrolfil annulleret';
3859     SkrivScanningLogFil(logTekst);
3860     end;
3861     IndlesKontrolFil(filnavn_output);
3862     end;
3863     02 : begin;
3864     end;
3865     03 : begin;
3866     buttonSelected := MessageDlg('Henter rute kontrol filen ' + filnavn_input + ' fra DAO ftp server',mtConfirmation, mbOKCancel, 0);
3867     if buttonSelected = mrOK then
3868     begin
3869     ListBox1.Items.Insert(0,TimeToStr(now) + ': Henter ' + filnavn_input + ' fra DAO ftp serveren.');
3870     logTekst := 'Henter ' + filnavn_input + ' fra DAO ftp serveren.';
3871     SkrivScanningLogFil(logTekst);
3872     try
3873     try
3874    
3875     IdFTP1.host:='ftp.daoas.dk'; // hvis forkert vises 'socket error # 11001 host not found'
3876     IdFTP1.Username:='fd'; // hvis forkert vises 'login incorrect'
3877     IdFTP1.Password:='pu4aphedre'; // hvis forkert vises 'login incorrect'
3878     IdFTP1.Connect;
3879    
3880     //IdFTP1.TransferType := ftASCII;
3881     IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3882     // hvis 3. parameter er false (filen må ikke overskrives) vises 'Destination file already exists' hvis filen findes på disken
3883    
3884     ListBox1.Items.Insert(0,TimeToStr(now) + ': Rute kontrol fil gemt lokalt som ' + filnavn_output + '.');
3885     logTekst := 'Rute kontrol fil gemt lokalt som ' + filnavn_output + '.';
3886     SkrivScanningLogFil(logTekst);
3887    
3888     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Rute kontrol fil tjekkes.');
3889     logTekst := 'Rute kontrol fil tjekkes.';
3890     SkrivScanningLogFil(logTekst);
3891    
3892     finally
3893     IdFTP1.Disconnect;
3894     end;
3895    
3896     except on e:exception do
3897     begin
3898     ListBox1.Items.Insert(0,TimeToStr(now) + ': Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username);
3899     logTekst := 'Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username;
3900     SkrivScanningLogFil(logTekst);
3901     raise exception.CreateFmt('Fejl i FTP handling:'+ CrLf + '%s',
3902     [e.Message
3903     + CrLf + 'Host: '+IdFTP1.host
3904     + CrLf + 'Username: '+IdFTP1.Username
3905     ]
3906     );
3907     end;
3908     end;
3909     end
3910     else
3911     begin
3912     ListBox1.Items.Insert(0,TimeToStr(now) + ': Download af kontrolfil annulleret.');
3913     logTekst := 'Download af kontrolfil annulleret';
3914     SkrivScanningLogFil(logTekst);
3915     end;
3916     IndlesKontrolFil(filnavn_output);
3917     end;
3918     04 : begin;
3919     end;
3920     else
3921     ShowMessage('Ukendt Bladhus sted ???') ;
3922     end;
3923    
3924     end;
3925    
3926     procedure TMainForm.SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);
3927     const
3928     crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
3929    
3930     var
3931     testsystem : String;
3932    
3933     begin
3934     testsystem := '';
3935     if (Pos('omdeling.info',Url) = 0) then
3936     begin
3937     testsystem := 'TEST_';
3938     end;
3939     filnavn_output := testsystem + filnavn_output;
3940    
3941     ListBox1.Items.Insert(0,TimeToStr(now) + ': Sender ' + filnavn_input + ' til DAO ftp serveren.');
3942     logTekst := 'Sender ' + filnavn_input + ' til DAO ftp serveren.';
3943     SkrivScanningLogFil(logTekst);
3944     try
3945     try
3946    
3947     IdFTP1.host:='ftp.daoas.dk'; // hvis forkert vises 'socket error # 11001 host not found'
3948     IdFTP1.Username:='scannerprogram'; // hvis forkert vises 'login incorrect'
3949     IdFTP1.Password:='DaoScan2015'; // hvis forkert vises 'login incorrect'
3950     IdFTP1.Connect;
3951    
3952     //IdFTP1.TransferType := ftASCII;
3953     try
3954     //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
3955     IdFTP1.ChangeDir('fraScannerprogram');
3956     IdFTP1.Put(filnavn_input, filnavn_output, True);
3957     except on e:EIdConnClosedGracefully do
3958     begin
3959     // Her skal vi ikke gøre noget - men vi skal forespørge igen
3960     IdFTP1.Put(filnavn_input, filnavn_output, True);
3961     end;
3962     end;
3963     // hvis 3. parameter er false (filen må ikke overskrives) vises 'Destination file already exists' hvis filen findes på disken
3964    
3965     logTekst := fil_type + ' fil sendt til DAO som ' + filnavn_output + '.';
3966     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
3967     SkrivScanningLogFil(logTekst);
3968    
3969     finally
3970     IdFTP1.Disconnect;
3971     end;
3972    
3973     except on e:exception do
3974     begin
3975     ListBox1.Items.Insert(0,TimeToStr(now) + ': Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username);
3976     logTekst := 'Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username;
3977     SkrivScanningLogFil(logTekst);
3978     raise exception.CreateFmt('Fejl i FTP handling:'+ CrLf + '%s',
3979     [e.Message
3980     + CrLf + 'Host: '+IdFTP1.host
3981     + CrLf + 'Username: '+IdFTP1.Username
3982     ]
3983     );
3984     end;
3985     end;
3986     end;
3987    
3988     procedure TMainForm.UploadLogfilTilDAO();
3989     const
3990     crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
3991    
3992     var
3993     idag, imorgen : TDateTime;
3994     imorgenYmd : string;
3995     logFilnavn : string;
3996     filnavn_input : string;
3997     filnavn_output : string;
3998     buttonSelected : Integer;
3999     openDialog : TOpenDialog;
4000    
4001     begin
4002     idag := Now;
4003     imorgen := IncDay(idag, 1); //adds 1 day(s)
4004     // Hvis vi er efter midnat og inden middag skal vi bruge dagsdato som imorgen
4005     if (FormatDateTime('hh:nn',idag) < '12:00') then
4006     begin
4007     imorgen := idag;
4008     end;
4009     imorgenYmd := FormatDateTime('_yyyymmdd',imorgen);
4010     logFilnavn := 'Logs/' + 'Scanning' + imorgenYmd + '.log';
4011     filnavn_input := logFilnavn; // hvis filen ikke findes vises 'no such file or directory'
4012     filnavn_output := Sted + '_Scanning' + imorgenYmd + '_' + FormatDateTime('hhmmss',idag) + '.log';
4013    
4014     buttonSelected := MessageDlg('Sender den aktuelle log fil (' + filnavn_input + ') til DAO ftp server',mtConfirmation, mbOKCancel, 0);
4015     if buttonSelected = mrOK then
4016     begin
4017     SendFilTilDao('Log', filnavn_input, filnavn_output);
4018     end
4019     else
4020     begin
4021     buttonSelected := MessageDlg('Vil du sende en anden logfil til DAO ftp server',mtConfirmation, mbOKCancel, 0);
4022     if buttonSelected = mrOK then
4023     begin
4024     // Create the open dialog object - assign to our open dialog variable
4025     openDialog := TOpenDialog.Create(self);
4026    
4027     // Set up the starting directory to be the current one
4028     openDialog.InitialDir := GetCurrentDir + '\Logs';
4029    
4030     // Only allow existing files to be selected
4031     openDialog.Options := [ofFileMustExist];
4032    
4033     // Allow only .log files to be selected
4034     openDialog.Filter := 'Log filer|*.log';
4035    
4036     // Display the open file dialog
4037     if openDialog.Execute then
4038     begin
4039     filnavn_input := openDialog.FileName; // hvis filen ikke findes vises 'no such file or directory'
4040     filnavn_output := Sted + '_Scanning' + imorgenYmd + '_' + FormatDateTime('hhmmss',idag) + '.log';
4041     SendFilTilDao('Log', filnavn_input, filnavn_output);
4042     end
4043     else
4044     begin
4045     logTekst := 'Upload af log fil annulleret';
4046     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
4047     SkrivScanningLogFil(logTekst);
4048     end;
4049    
4050     // Free up the dialog
4051     openDialog.Free;
4052     end
4053     else
4054     begin
4055     logTekst := 'Upload af log fil annulleret';
4056     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
4057     SkrivScanningLogFil(logTekst);
4058     end;
4059     end;
4060    
4061     end;
4062    
4063     procedure TMainForm.UploadInifilTilDAO();
4064     const
4065     crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
4066    
4067     var
4068     idag, imorgen : TDateTime;
4069     imorgenYmd : string;
4070     iniFilnavn : string;
4071     filnavn_input : string;
4072     filnavn_output : string;
4073     buttonSelected : Integer;
4074    
4075     begin
4076     idag := Now;
4077     imorgen := IncDay(idag, 1); //adds 1 day(s)
4078     // Hvis vi er efter midnat og inden middag skal vi bruge dagsdato som imorgen
4079     if (FormatDateTime('hh:nn',idag) < '12:00') then
4080     begin
4081     imorgen := idag;
4082     end;
4083     imorgenYmd := FormatDateTime('_yyyymmdd',imorgen);
4084     iniFilnavn := ChangeFileExt(ExtractFileName(ExtractFileName(ParamStr(0))), '.ini');
4085     filnavn_input := iniFilnavn; // hvis filen ikke findes vises 'no such file or directory'
4086     filnavn_output := Sted + '_Scanning' + imorgenYmd + '_' + FormatDateTime('hhmmss',idag) + '.ini';
4087    
4088     buttonSelected := MessageDlg('Sender ini filen ' + filnavn_input + ' til DAO ftp server',mtConfirmation, mbOKCancel, 0);
4089     if buttonSelected = mrOK then
4090     begin
4091     SendFilTilDao('Ini', filnavn_input, filnavn_output);
4092     end
4093     else
4094     begin
4095     logTekst := 'Upload af ini fil annulleret';
4096     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
4097     SkrivScanningLogFil(logTekst);
4098     end;
4099    
4100     end;
4101    
4102     procedure TMainForm.Uploadlogfil1Click(Sender: TObject);
4103     begin
4104     UploadLogfilTilDAO();
4105     UploadInifilTilDAO();
4106     ListBox1.SetFocus; // for at flytte fokus væk fra upload knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4107     end;
4108    
4109 torben 2691 procedure TMainForm.BtnDownloadKontrolfilClick(Sender: TObject);
4110 torben 2645 begin
4111     DownloadBladhusKontrolfil();
4112     ListBox1.SetFocus; // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4113     end;
4114    
4115 torben 2699 procedure TMainForm.BtnOpdaterListenClick(Sender: TObject);
4116 torben 2645 const
4117     crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
4118    
4119     begin
4120 torben 3124 IndlesManglendeScanningerListe();
4121 torben 2645 ListBox1.SetFocus; // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4122     end;
4123    
4124 torben 2696 procedure TMainForm.BtnDownloadRuteskiftFilClick(Sender: TObject);
4125 torben 2645 begin
4126     if (getProddag() = 'lørdag') then
4127     begin
4128     DownloadBladhusRuteskiftfil();
4129     end;
4130     ListBox1.SetFocus; // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4131     end;
4132    
4133    
4134 torben 3124 procedure TMainForm.IndlesManglendeScanningerAntal();
4135     var
4136     Node: IXMLNode;
4137 torben 2677
4138 torben 3124 URLStr : String;
4139     StedKode : String;
4140     WebSvar : String;
4141    
4142     i : Integer;
4143    
4144     PakkeType : String;
4145     TotalAntal : String;
4146     AntalProdDato : String;
4147    
4148     CurrentPanel : TPanel;
4149    
4150     begin
4151     ListBox2.Clear();
4152    
4153     if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
4154     begin
4155     StedKode := BladhusStedKode[BladhusSted];
4156     end
4157     else
4158     begin
4159     StedKode := Sted;
4160     end;
4161    
4162     URLStr := Format(Config.UrlHentPakkeAntal, [StedKode]);
4163    
4164    
4165     try
4166     WebSvar := IdHTTP1.Get(URLStr);
4167     except
4168     on e:EIdConnClosedGracefully do
4169     begin
4170     // Her skal vi ikke gøre noget - men vi skal forespørge igen
4171     WebSvar := IdHTTP1.Get(URLStr);
4172     end;
4173     on e:exception do
4174     begin
4175     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Fejl i web forespørgsel: '+e.Message);
4176     logTekst := 'Fejl i web forespørgsel: '+e.Message;
4177     SkrivScanningLogFil(logTekst);
4178     raise exception.CreateFmt('Fejl i web forespørgsel: %s',[e.Message]);
4179     end;
4180     end;
4181    
4182    
4183    
4184     try
4185    
4186     XMLDocument1.LoadFromXML(WebSvar);
4187    
4188     for i:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4189     Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4190    
4191     PakkeType := Node.ChildValues['PakkeType'];
4192     TotalAntal := Node.ChildValues['TotalAntal'];
4193     AntalProdDato := Node.ChildValues['AntalProdDato'];
4194    
4195    
4196     CurrentPanel := nil;
4197    
4198     if (PakkeType = 'natxpress') then
4199     begin
4200     CurrentPanel := PanelManglendePakker1;
4201     end;
4202    
4203     if (PakkeType = 'daodirekte') then
4204     begin
4205     CurrentPanel := PanelManglendePakker4;
4206     end;
4207    
4208     if (PakkeType = 'pakkeshop') then
4209     begin
4210     CurrentPanel := PanelManglendePakker5;
4211     end;
4212    
4213     if (CurrentPanel <> nil) then
4214     begin
4215     CurrentPanel.Caption := TotalAntal;
4216     if ( StrToInt(TotalAntal) > 0) then
4217     begin
4218     CurrentPanel.Visible := true;
4219     end
4220     else
4221     begin
4222     CurrentPanel.Visible := false;
4223     end;
4224     end;
4225    
4226    
4227     end;
4228    
4229    
4230     except on e:exception do
4231     begin
4232     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Fejl i XML-format: '+e.Message);
4233     logTekst := 'Fejl i XML-format: '+e.Message;
4234     SkrivScanningLogFil(logTekst);
4235     raise exception.CreateFmt('Fejl i XML-format: %s',[e.Message]);
4236     end;
4237     end;
4238    
4239    
4240    
4241     ListBox1.Items.Insert(0,'Pakkeantal indlæst - klar til scanning');
4242    
4243     end;
4244    
4245     procedure TMainForm.IndlesManglendeScanningerListe();
4246 torben 2645 var
4247     WebSvar : String;
4248     URLStr : String;
4249     StedKode : String;
4250     Node: IXMLNode;
4251     I: Integer;
4252     stregkode, modtagernavn, modtageradresse, kommentar : string;
4253     pakketype, tjekkodestatus : String;
4254 torben 3056 antalLiniefelter, antalFelterFundet, linienr : Integer;
4255 torben 2791 //pakketyper : TStrings;
4256     pakketyper : TDictionary<String, Integer>;
4257     tmpAntal : Integer;
4258    
4259 torben 3076 time, timeSamlet : TTimingHelper;
4260 torben 2791
4261    
4262 torben 2645 antlin : Integer;
4263 torben 2656
4264 torben 2645 antlinIdag, antlinSenere : Integer;
4265 torben 2656
4266 torben 2792 //XmlFelter : TStrings;
4267     XmlFelter : TDictionary<String, Integer>;
4268 torben 2645
4269     begin
4270 torben 2791
4271    
4272 torben 2792 XmlFelter := TDictionary<String, Integer>.Create;
4273 torben 2791 pakketyper := TDictionary<String, Integer>.Create;
4274 torben 2792
4275 torben 2645 linienr := 0;
4276     ListBox2.Clear;
4277     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Henter oversigt over pakker der endnu ikke er modtaget');
4278     logTekst := 'Henter oversigt over pakker der endnu ikke er modtaget';
4279     SkrivScanningLogFil(logTekst);
4280     if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
4281     begin
4282     StedKode := BladhusStedKode[BladhusSted];
4283     end
4284     else
4285     begin
4286     StedKode := Sted;
4287     end;
4288    
4289 torben 2791 Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4290 torben 2656
4291 torben 2689
4292 torben 2791
4293 torben 2689 if (Scanningtype = '7') then
4294 torben 2645 begin
4295 torben 3087 URLStr := Format(Config.UrlIndleveringsPakkeManglendeScanninger, [StedKode]);
4296 torben 2645 end
4297 torben 2689 else if (Scanningtype = '6') then
4298     begin
4299 torben 3087 URLStr := Format(Config.UrlPakkeshopManglendeReturScanninger, [StedKode]);
4300 torben 2689 end
4301 torben 2645 else if (Scanningtype = '5') then
4302     begin
4303 torben 3087 URLStr := Format(Config.UrlPakkeshopManglendeScanninger, [StedKode]);
4304 torben 2645 end
4305     else if (Scanningtype = '1') then
4306     begin
4307 torben 3087 URLStr := Format(Config.UrlManglendeScanninger,[StedKode,'B2']);
4308 torben 2645 end
4309     else if (Scanningtype = '4') then
4310     begin
4311 torben 3087 URLStr := Format(Config.UrlManglendeScanninger,[StedKode,'A2']); // Budleveringer
4312 torben 2645 end
4313     else
4314     begin
4315     exit;
4316     end;
4317     // 20150310: slut
4318    
4319 torben 3076 time := TTimingHelper.create(); //DEBUG
4320     timeSamlet := TTimingHelper.create(); //DEBUG
4321    
4322 torben 2645 try
4323     //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
4324     // URLStr := string(Utf8Encode(URLStr));
4325     WebSvar := IdHTTP1.Get(URLStr);
4326     except
4327     on e:EIdConnClosedGracefully do
4328     begin
4329     // Her skal vi ikke gøre noget - men vi skal forespørge igen
4330     WebSvar := IdHTTP1.Get(URLStr);
4331 torben 3048
4332    
4333    
4334 torben 2645 end;
4335     on e:exception do
4336     begin
4337     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Fejl i web forespørgsel: '+e.Message);
4338     logTekst := 'Fejl i web forespørgsel: '+e.Message;
4339     SkrivScanningLogFil(logTekst);
4340     raise exception.CreateFmt('Fejl i web forespørgsel: %s',[e.Message]);
4341     end;
4342     end;
4343     try
4344 torben 3076 time.stop('HTTP Load'); //DEBUG
4345    
4346 torben 2645 XMLDocument1.LoadFromXML(WebSvar);
4347    
4348 torben 3076 time.stop('XML Load'); //DEBUG
4349 torben 2656
4350 torben 3076
4351    
4352    
4353    
4354    
4355 torben 2645 antlin := 0;
4356     antlinIdag := 0;
4357     antlinSenere := 0;
4358 torben 2656
4359 torben 2645 for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4360     Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4361     if Node.NodeType = ntElement then begin
4362     if Node.NodeName = 'Stregkode' then
4363     begin
4364 torben 2792 Inc(antlin);
4365 torben 2645 // 20150306: start
4366     if not VarIsNull(Node.NodeValue) then
4367     begin
4368     if (pos('(', Node.NodeValue) = 0) then
4369     begin
4370 torben 2792 Inc(antlinIdag);
4371 torben 2645 end
4372     else
4373     begin
4374 torben 2792 Inc(antlinSenere);
4375 torben 2645 end;
4376     end;
4377     // 20150306: slut
4378     end;
4379     end;
4380 torben 2792 if ( XmlFelter.ContainsKey(Node.NodeName) ) then
4381     begin
4382     XmlFelter.TryGetValue(Node.NodeName, tmpAntal);
4383     XmlFelter.AddOrSetValue(Node.NodeName, tmpAntal + 1);
4384     end
4385 torben 2645 else
4386 torben 2792 begin
4387     XmlFelter.Add(Node.NodeName, 1);
4388     end;
4389 torben 2645
4390     end;
4391     antalLiniefelter := XmlFelter.Count;
4392     antalFelterFundet := 0;
4393     SetLength(stregkoderMedTjekkodeArray, 0); // reset fra tidligere brug
4394     SetLength(stregkoderMedTjekkodeArray, antlin); // sæt antal elementer i array
4395 torben 2656
4396 torben 3076 time.stop('Antal Linier');//DEBUG
4397 torben 2791
4398     Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4399    
4400 torben 2645 logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4401     if (antlinSenere > 0) then
4402     begin
4403     logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';
4404     end;
4405     logTekst := logTekst + '.';
4406 torben 2656
4407 torben 2645 SkrivScanningLogFil(logTekst);
4408 torben 3123 time.stop('Antal Linier2');//DEBUG
4409 torben 2794
4410    
4411 torben 2645 for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4412     Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4413     if Node.NodeType = ntElement then begin
4414     if Node.NodeName = 'Stregkode' then begin
4415     if not VarIsNull(Node.NodeValue) then
4416     stregkode := Node.NodeValue;
4417     antalFelterFundet := antalFelterFundet + 1;
4418 torben 2794 end
4419     else if Node.NodeName = 'ModtagerNavn' then begin
4420 torben 2645 if not VarIsNull(Node.NodeValue) then
4421     modtagernavn := Node.NodeValue;
4422     antalFelterFundet := antalFelterFundet + 1;
4423 torben 2794 end
4424     else if Node.NodeName = 'ModtagerAdresse' then begin
4425 torben 2645 if not VarIsNull(Node.NodeValue) then
4426     modtageradresse := Node.NodeValue;
4427     antalFelterFundet := antalFelterFundet + 1;
4428 torben 2794 end
4429     else if Node.NodeName = 'Kommentar' then begin
4430 torben 2645 if not VarIsNull(Node.NodeValue) then
4431     kommentar := Node.NodeValue;
4432     antalFelterFundet := antalFelterFundet + 1;
4433 torben 2794 end
4434     else if Node.NodeName = 'PakkeType' then begin
4435 torben 2645 if not VarIsNull(Node.NodeValue) then
4436     pakketype := Node.NodeValue;
4437     antalFelterFundet := antalFelterFundet + 1;
4438 torben 2791 if ( pakketyper.ContainsKey(pakketype) ) then
4439     begin
4440     pakketyper.TryGetValue(pakketype, tmpAntal);
4441     pakketyper.AddOrSetValue(pakketype, tmpAntal + 1);
4442     end
4443 torben 2645 else
4444 torben 2791 pakketyper.Add(pakketype, 1);
4445 torben 2794 end
4446     else if Node.NodeName = 'TjekkodeStatus' then begin
4447 torben 2645 if not VarIsNull(Node.NodeValue) then
4448     tjekkodestatus := Node.NodeValue;
4449     antalFelterFundet := antalFelterFundet + 1;
4450     if (tjekkodestatus = '-1') then
4451     begin
4452 torben 2704
4453 torben 2645 if (pos(' ', stregkode) > 0) then
4454     begin
4455 torben 2682 stregkoderMedTjekkodeArray[linienr] := TUtils.split(stregkode, ' ', 2); // Fjerner lige en evt. fremtidig dato fra feltet
4456 torben 2645 end
4457     else
4458     begin
4459     stregkoderMedTjekkodeArray[linienr] := stregkode;
4460     end;
4461 torben 2656 linienr := linienr + 1;
4462 torben 2645 end;
4463     end;
4464 torben 2794
4465    
4466 torben 2645 if antalFelterFundet = antalLiniefelter then
4467     begin
4468     if (ScanningType = '1') then
4469 torben 3124 ListBox2.Items.Add(pakketype+'; '+stregkode+'; '+modtagernavn+'; '+modtageradresse+'; '+kommentar+'; '+tjekkodestatus)
4470 torben 2645 else if (ScanningType = '4') then
4471 torben 3124 ListBox2.Items.Add(pakketype+'; '+stregkode+'; '+modtagernavn+'; '+modtageradresse+'; '+kommentar)
4472 torben 2645 else if (ScanningType = '5') then
4473 torben 3124 ListBox2.Items.Add(stregkode+'; '+modtagernavn+'; '+modtageradresse+'; '+kommentar+'; '+tjekkodestatus)
4474 torben 2645 else
4475 torben 3124 ListBox2.Items.Add(stregkode+'; '+modtagernavn+'; '+modtageradresse+'; '+kommentar);
4476 torben 2645 antalFelterFundet := 0;
4477     tjekkodestatus := '';
4478     end;
4479     end;
4480     end;
4481    
4482 torben 2794
4483 torben 3076 time.stop('Fyld Listbox2');//DEBUG
4484    
4485    
4486 torben 2792 Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4487 torben 2791
4488 torben 2792
4489 torben 2791 for pakketype in pakketyper.Keys do
4490     begin
4491     pakketyper.TryGetValue(pakketype, tmpAntal);
4492     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + pakketype + ' ' + IntToStr(tmpAntal) + ' pakke(r) ikke modtaget');
4493     end;
4494    
4495     // Free up the dictionary object
4496 torben 2645 pakketyper.Free;
4497 torben 2791
4498    
4499    
4500 torben 2645 // ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.');
4501     logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4502     if (antlinSenere > 0) then
4503     begin
4504     logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';
4505     end;
4506     logTekst := logTekst + '.';
4507     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
4508     if (antlinSenere > 0) then
4509     begin
4510     StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);
4511     end
4512     else
4513     begin
4514     StaticTextManglendePakker.Caption := IntToStr(antlinIdag);
4515     end;
4516    
4517     if (Scanningtype = '1') then
4518     begin
4519     //antlinIdag := 9876; // til test af boksens udseende ved stort tal
4520     PanelManglendePakker1.Caption := IntToStr(antlinIdag + antlinSenere);
4521     if (antlinIdag + antlinSenere > 0) then
4522     begin
4523     PanelManglendePakker1.Visible := true;
4524     end
4525     else
4526     begin
4527     PanelManglendePakker1.Visible := false;
4528     end;
4529     end;
4530    
4531     if (Scanningtype = '2') then
4532     begin
4533     PanelManglendePakker2.Caption := IntToStr(antlinIdag + antlinSenere);
4534     if (antlinIdag + antlinSenere > 0) then
4535     begin
4536     PanelManglendePakker2.Visible := true;
4537     end
4538     else
4539     begin
4540     PanelManglendePakker2.Visible := false;
4541     end;
4542     end;
4543    
4544     if (Scanningtype = '3') then
4545     begin
4546     PanelManglendePakker3.Caption := IntToStr(antlinIdag + antlinSenere);
4547     if (antlinIdag + antlinSenere > 0) then
4548     begin
4549     PanelManglendePakker3.Visible := true;
4550     end
4551     else
4552     begin
4553     PanelManglendePakker3.Visible := false;
4554     end;
4555     end;
4556    
4557     if (Scanningtype = '4') then
4558     begin
4559     PanelManglendePakker4.Caption := IntToStr(antlinIdag + antlinSenere);
4560     if (antlinIdag + antlinSenere > 0) then
4561     begin
4562     PanelManglendePakker4.Visible := true;
4563     end
4564     else
4565     begin
4566     PanelManglendePakker4.Visible := false;
4567     end;
4568     end;
4569    
4570     if (Scanningtype = '5') then
4571     begin
4572     PanelManglendePakker5.Caption := IntToStr(antlinIdag + antlinSenere);
4573     if (antlinIdag + antlinSenere > 0) then
4574     begin
4575     PanelManglendePakker5.Visible := true;
4576     end
4577     else
4578     begin
4579     PanelManglendePakker5.Visible := false;
4580     end;
4581     end;
4582    
4583     if (Scanningtype = '6') then
4584     begin
4585     PanelManglendePakker6.Caption := IntToStr(antlinIdag + antlinSenere);
4586     if (antlinIdag + antlinSenere > 0) then
4587     begin
4588     PanelManglendePakker6.Visible := true;
4589     end
4590     else
4591     begin
4592     PanelManglendePakker6.Visible := false;
4593     end;
4594     end;
4595    
4596     except on e:exception do
4597     begin
4598     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Fejl i XML-format: '+e.Message);
4599     logTekst := 'Fejl i XML-format: '+e.Message;
4600     SkrivScanningLogFil(logTekst);
4601     raise exception.CreateFmt('Fejl i XML-format: %s',[e.Message]);
4602     end;
4603     end;
4604    
4605 torben 3076 time.stop('Done');//DEBUG
4606     timeSamlet.stop('SamletTid');//DEBUG
4607    
4608    
4609 torben 2645 end;
4610    
4611     procedure TMainForm.IndlesScanningLogFil();
4612     var
4613     SomeTxtFile : TextFile;
4614     buffer : string;
4615     S: string;
4616     idag, imorgen : TDateTime;
4617     imorgenYmd : string;
4618     logFilnavn : string;
4619    
4620     begin
4621     idag := Now;
4622     imorgen := IncDay(idag, 1); //adds 1 day(s)
4623     // Hvis vi er efter midnat og inden middag skal vi bruge dagsdato som imorgen
4624     if (FormatDateTime('hh:nn',idag) < '12:00') then
4625     begin
4626     imorgen := idag;
4627     end;
4628     imorgenYmd := FormatDateTime('_yyyymmdd',imorgen);
4629     logFilnavn := 'Logs/Scanning' + imorgenYmd + '.log';
4630     if FileExists(logFilnavn) then
4631     begin
4632     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logFilnavn+' indlæses.');
4633     logTekst := logFilnavn+' indlæses.';
4634     SkrivScanningLogFil(logTekst);
4635     AssignFile(SomeTxtFile, logFilnavn);
4636     try
4637     Reset(SomeTxtFile);
4638     while not EOF(SomeTxtFile) do
4639     begin
4640     ReadLn(SomeTxtFile, buffer) ;
4641     S := buffer;
4642     ListBox1.Items.Insert(0, S);
4643     end;
4644     finally
4645     CloseFile(SomeTxtFile);
4646     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logFilnavn+' indlæst.');
4647     ListBox1.Items.Insert(0,'');
4648     ListBox1.Items.Insert(0,'');
4649     ListBox1.Items.Insert(0,'');
4650     ListBox1.Items.Insert(0,'');
4651     ListBox1.Items.Insert(0,'');
4652     ListBox1.Items.Insert(0,'');
4653     end;
4654     end;
4655     end;
4656    
4657     procedure TMainForm.SkrivScanningLogFil(var tekst : string);
4658     var
4659     SomeTxtFile : TextFile;
4660     idag, imorgen : TDateTime;
4661     imorgenYmd : string;
4662     logFilnavn : string;
4663 torben 2677 //error : Integer;
4664 torben 2645
4665     begin
4666     if (SkrivLog = '1') then
4667     begin
4668     idag := Now;
4669     imorgen := IncDay(idag, 1); //adds 1 day(s)
4670     // Hvis vi er efter midnat og inden middag skal vi bruge dagsdato som imorgen
4671     if (FormatDateTime('hh:nn',idag) < '12:00') then
4672     begin
4673     imorgen := idag;
4674     end;
4675     imorgenYmd := FormatDateTime('_yyyymmdd',imorgen);
4676     logFilnavn := 'Logs/' + 'Scanning' + imorgenYmd + '.log';
4677     // Get the current directory
4678     // dir := GetCurrentDir;
4679     // ShowMessage('Current directory = '+dir);
4680     // logFilnavn := dir + '\Logs\' + 'Scanning' + imorgenYmd + '.log';
4681     // ShowMessage('logFilnavn = '+logFilnavn);
4682    
4683     if not DirectoryExists('Logs') then
4684     begin
4685     CreateDir('Logs');
4686     end;
4687    
4688     AssignFile(SomeTxtFile, logFilnavn);
4689     if FileExists(logFilnavn) then
4690     begin
4691     try
4692     try
4693     Append(SomeTxtFile);
4694     WriteLn(SomeTxtFile, TimeToStr(now) + ': ' + tekst) ;
4695     except on e:exception do
4696     //ShowMessageFmt('File create failed with error %d',[error]);
4697     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + ' Kan ikke skrive til log filen...');
4698     end;
4699     finally
4700     CloseFile(SomeTxtFile);
4701     end;
4702     end
4703     else
4704     begin
4705     try
4706     try
4707     ReWrite(SomeTxtFile);
4708     WriteLn(SomeTxtFile, TimeToStr(now) + ': ' + tekst) ;
4709     except on e:exception do
4710     // ShowMessageFmt('File create failed with error %d',[error]);
4711     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + ' Kan ikke oprette/skrive til log filen...');
4712     end;
4713     finally
4714     CloseFile(SomeTxtFile);
4715     end;
4716     end;
4717     end;
4718     end;
4719    
4720     procedure TMainForm.IndlesRuteskiftFil(var filnavn : string);
4721     var
4722     SomeTxtFile : TextFile;
4723     buffer : string;
4724     linnr : integer;
4725     S: string;
4726     A: TStrArray;
4727     idag, imorgen : TDateTime;
4728     imorgenYmd : string;
4729    
4730     begin
4731     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + filnavn+' indlæses.');
4732     logTekst := filnavn+' indlæses.';
4733     SkrivScanningLogFil(logTekst);
4734     SetLength(ruteHverdagArray, 1);
4735     SetLength(ruteLordagArray, 1);
4736     idag := Now;
4737     imorgen := IncDay(idag, 1); //adds 1 day(s)
4738     // Hvis vi er efter midnat og inden middag skal vi bruge dagsdato som imorgen
4739     if (FormatDateTime('hh:nn',idag) < '12:00') then
4740     begin
4741     imorgen := idag;
4742     end;
4743     imorgenYmd := FormatDateTime('yyyy-mm-dd',imorgen);
4744     if FileExists(filnavn) then
4745     begin
4746     AssignFile(SomeTxtFile, filnavn);
4747     linnr := 0;
4748     try
4749     Reset(SomeTxtFile);
4750     while not EOF(SomeTxtFile) do
4751     begin
4752     ReadLn(SomeTxtFile, buffer) ;
4753     S := buffer;
4754     SetLength(A,0);
4755 torben 2682 TUtils.Explode(A, ';', S);
4756 torben 2645 if (length(A) < 2) then
4757     begin
4758 torben 2682 TUtils.Explode(A, ',', S);
4759 torben 2645 end;
4760     if (length(A) > 1) then
4761     begin
4762     SetLength(ruteHverdagArray, linnr+1);
4763     SetLength(ruteLordagArray, linnr+1);
4764     ruteHverdagArray[linnr] := A[0];
4765     ruteLordagArray[linnr] := A[1];
4766     linnr := linnr+1;
4767     end;
4768     end;
4769     finally
4770     //ShowMessage(IntToStr(length(A)));
4771     CloseFile(SomeTxtFile);
4772     //ShowMessage(IntToStr(length(ruteHverdagArray)));
4773     if (linnr > 0) then
4774     begin
4775     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + IntToStr(linnr)+' linier indlæst til '+imorgenYmd+'.');
4776     logTekst := IntToStr(linnr)+' linier indlæst til '+imorgenYmd+'.';
4777     SkrivScanningLogFil(logTekst);
4778     end
4779     else
4780     begin
4781     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' +'Fandt ingen linier til '+imorgenYmd+'.');
4782     logTekst := 'Fandt ingen linier til '+imorgenYmd+'.';
4783     SkrivScanningLogFil(logTekst);
4784 torben 3090 PlaySound(PWideChar(Config.AlarmLyd));
4785 torben 2645 end;
4786     end;
4787     end
4788     else
4789     begin
4790     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Ruteskift fil '+filnavn+' findes ikke.');
4791     logTekst := 'Ruteskift fil '+filnavn+' findes ikke.';
4792     SkrivScanningLogFil(logTekst);
4793 torben 3090 PlaySound(PWideChar(Config.AlarmLyd));
4794 torben 2645 end;
4795     end;
4796    
4797     procedure TMainForm.IndlesKontrolFil(var filnavn : string);
4798     var
4799     SomeTxtFile : TextFile;
4800     buffer : string;
4801     linnr : integer;
4802     S: string;
4803     A: TStrArray;
4804     idag, imorgen : TDateTime;
4805     imorgenYmd : string;
4806    
4807     begin
4808     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + filnavn+' indlæses.');
4809     logTekst := filnavn+' indlæses.';
4810     SkrivScanningLogFil(logTekst);
4811     SetLength(ruteArray, 1);
4812     SetLength(korelisteArray, 1);
4813     idag := Now;
4814     imorgen := IncDay(idag, 1); //adds 1 day(s)
4815     // Hvis vi er efter midnat og inden middag skal vi bruge dagsdato som imorgen
4816     if (FormatDateTime('hh:nn',idag) < '12:00') then
4817     begin
4818     imorgen := idag;
4819     end;
4820     imorgenYmd := FormatDateTime('yyyy-mm-dd',imorgen);
4821     if FileExists(filnavn) then
4822     begin
4823     AssignFile(SomeTxtFile, filnavn);
4824     linnr := 0;
4825     try
4826     Reset(SomeTxtFile);
4827     while not EOF(SomeTxtFile) do
4828     begin
4829     ReadLn(SomeTxtFile, buffer) ;
4830     S := buffer;
4831     SetLength(A,0);
4832 torben 2682 TUtils.Explode(A, ';', S);
4833 torben 2645 if (length(A) < 3) then
4834     begin
4835 torben 2682 TUtils.Explode(A, ',', S);
4836 torben 2645 end;
4837     if (A[0]=imorgenYmd) then
4838     begin
4839     if (length(A) > 2) then
4840     begin
4841     SetLength(ruteArray, linnr+1);
4842     SetLength(korelisteArray, linnr+1);
4843     ruteArray[linnr] := A[1];
4844     korelisteArray[linnr] := A[2];
4845     linnr := linnr+1;
4846     end;
4847     end;
4848     end;
4849     finally
4850     //ShowMessage(IntToStr(length(A)));
4851     CloseFile(SomeTxtFile);
4852     //ShowMessage(IntToStr(length(ruteArray)));
4853     if (linnr > 0) then
4854     begin
4855     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + IntToStr(linnr)+' linier indlæst til '+imorgenYmd+'.');
4856     logTekst := IntToStr(linnr)+' linier indlæst til '+imorgenYmd+'.';
4857     SkrivScanningLogFil(logTekst);
4858     end
4859     else
4860     begin
4861     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' +'Fandt ingen linier til '+imorgenYmd+'.');
4862     logTekst := 'Fandt ingen linier til '+imorgenYmd+'.';
4863     SkrivScanningLogFil(logTekst);
4864 torben 3090 PlaySound(PWideChar(Config.AlarmLyd));
4865 torben 2645 end;
4866     end;
4867     end
4868     else
4869     begin
4870     ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Kontrol fil '+filnavn+' findes ikke.');
4871     logTekst := 'Kontrol fil '+filnavn+' findes ikke.';
4872     SkrivScanningLogFil(logTekst);
4873 torben 3090 PlaySound(PWideChar(Config.AlarmLyd));
4874 torben 2645 end;
4875     end;
4876    
4877     //
4878     // Bladhus ***
4879     //
4880     function TMainForm.TjekKoreliste(var RuteNummer, Koreliste : string) : string;
4881     var
4882     i : Integer;
4883     svar : String;
4884    
4885     begin
4886     //ShowMessage('Køreliste 1: '+korelisteArray[0]);
4887     // ShowMessage('Kontrollerer rute ' + RuteNummer + ' og køreliste ' + Koreliste + ' i kontrolfilen');
4888     // NB. Der er rod i begreberne RuteNummer og Koreliste - nogle steder er de byttet rundt!
4889     //ShowMessage('Kontrollerer rute ' + Koreliste + ' og køreliste ' + RuteNummer + ' i kontrolfilen');
4890    
4891     svar := 'Køreliste ikke i kontrolfil';
4892     case BladhusSted of
4893     01 :
4894     begin;
4895     for i := 0 to length(ruteArray)-1 do
4896     begin
4897     if (Koreliste=ruteArray[i]) then
4898     begin
4899     svar := korelisteArray[i]; // returnerer den forventede køreliste
4900     end;
4901     end;
4902     end;
4903     // 02 : begin;
4904     //ShowMessage('02') ;
4905     // end;
4906     03 : begin;
4907     for i := 0 to length(ruteArray)-1 do
4908     begin
4909     if (Koreliste=ruteArray[i]) then
4910     begin
4911     svar := korelisteArray[i]; // returnerer den forventede køreliste
4912     end;
4913     end;
4914     end;
4915     // 04 : begin;
4916     //ShowMessage('04') ;
4917     // end;
4918     else
4919     svar := RuteNummer; // Dette svarer til at køreliste er godkendt uden kontrol fil
4920     end;
4921     if (RuteNummer = 'Rutenr') then // fra printertest funktionen
4922     svar := RuteNummer; // Dette svarer til at køreliste er godkendt uden kontrol fil
4923    
4924     result := svar;
4925     end;
4926    
4927 torben 2659 procedure TMainForm.VisAlarmSkaerm(strMessage: string);
4928 torben 2657 begin
4929     //ShowMessage('Ændring ikke tilladt');
4930     // Her skal komme en 'rød skærm' alarm
4931 torben 3090 PlaySound(PWideChar(Config.AlarmLyd));
4932 torben 2662 MainForm.Color := clRed;
4933 torben 2659
4934 torben 2662
4935 torben 2657 RuteNummerST.Caption := '';
4936     BoghandlerNavnST.Caption := '';
4937 torben 2668 btnNulstil.Visible := true;
4938 torben 2662
4939     if (strMessage <> '') then
4940     begin
4941     ListBox1.Items.Insert(0, strMessage);
4942     KommentarST.Caption := strMessage;
4943     end;
4944    
4945 torben 3036 Stregkode := ''; //Nulstil stregkode feltet efter at fejl er vist
4946    
4947 torben 2657 end;
4948    
4949 torben 2645 function TMainForm.getProddato() : TDate;
4950     var
4951     idag, imorgen : TDateTime;
4952     imorgenYmd : string;
4953    
4954     begin
4955     idag := Now;
4956     imorgen := IncDay(idag, 1); //adds 1 day(s)
4957     // Hvis vi er efter midnat og inden middag skal vi bruge dagsdato som imorgen
4958     if (FormatDateTime('hh:nn',idag) < '12:00') then
4959     begin
4960     imorgen := idag;
4961     end;
4962     imorgenYmd := FormatDateTime('dd-mm-yyyy',imorgen);
4963     result := StrToDateTime(imorgenYmd);
4964     end;
4965    
4966     function TMainForm.getProddag() : String;
4967     begin
4968     // ShowMessage(LongDayNames[DayOfWeek(getProddato())]);
4969 torben 2650 result := FormatSettings.LongDayNames[DayOfWeek(getProddato())];
4970 torben 2645 //result := 'lørdag'; // MENS VI TESTER kan vi fremtvinge lørdag situation her
4971     end;
4972    
4973     function TMainForm.retRutenummer(rutenummer : String) : String;
4974     var
4975     i : Integer;
4976     svar : String;
4977    
4978     begin
4979     svar := rutenummer;
4980     case BladhusSted of
4981     01 :
4982     begin;
4983     //ShowMessage('01') ;
4984     end;
4985     // 02 : begin;
4986     //ShowMessage('02') ;
4987     // end;
4988     03 : begin;
4989     for i := 0 to length(ruteHverdagArray)-1 do
4990     begin
4991     if (rutenummer=ruteHverdagArray[i]) then
4992     begin
4993     svar := ruteLordagArray[i]; // returnerer den forventede lørdagsrute
4994     end;
4995     end;
4996     end;
4997     // 04 : begin;
4998     //ShowMessage('04') ;
4999     // end;
5000     else
5001     svar := rutenummer; // Dette svarer til at rute ikke skal ændres
5002     end;
5003     result := svar;
5004     end;
5005    
5006    
5007     procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);
5008     begin
5009     if Scanogstjekkoden1.Checked then
5010     begin
5011 torben 2654 chkScanTjekkode.Checked := true;
5012 torben 2645 end
5013     else
5014     begin
5015 torben 2654 chkScanTjekkode.Checked := false;
5016 torben 2645 end;
5017     end;
5018    
5019    
5020 torben 3038 //Nedarvet fra IParentForm
5021     procedure TMainForm.Msg( msg : string);
5022     begin
5023     ShowMessage(msg);
5024     end;
5025 torben 2668
5026 torben 2705 //Nedarvet fra IParentForm
5027     procedure TMainForm.LogMessage( msg : string);
5028     begin
5029     ListBox1.Items.Insert(0, msg);
5030     SkrivScanningLogFil(msg);
5031     end;
5032 torben 2685
5033 torben 2668
5034 torben 2705 //Nedarvet fra IParentForm
5035     procedure TMainForm.SetPrinterstatusText( txt: string; alert: boolean);
5036 torben 2645 begin
5037    
5038 torben 2705 PrinterstatusStaticText1.Caption := txt;
5039     if (alert) then
5040 torben 2645 begin
5041 torben 2705 PrinterstatusStaticText1.Font.Color := clBlack;
5042     PrinterstatusStaticText1.Color := MainForm.Color;
5043     PrinterstatusStaticText1.Transparent := True;
5044 torben 2645 end
5045     else
5046     begin
5047 torben 2705 PrinterstatusStaticText1.Font.Color := clRed;
5048     PrinterstatusStaticText1.Color := clWhite;
5049     PrinterstatusStaticText1.Transparent := true;
5050 torben 2645 end;
5051     end;
5052    
5053 torben 2705 //Nedarvet fra IParentForm
5054     function TMainForm.GetFormObject() : TForm;
5055     begin
5056     Result := self;
5057     end;
5058 torben 2645
5059 torben 3095 //Nedarvet fra IParentForm
5060     function TMainForm.GetXMLDocument() : TXMLDocument;
5061     begin
5062     Result := XMLDocument1
5063     end;
5064    
5065    
5066 torben 2645 end.
5067    

  ViewVC Help
Powered by ViewVC 1.1.20