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

Annotation of /dao/DelphiScanner/Main.pas

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.20