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

Annotation of /dao/DelphiScanner/Main.pas

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.20