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

Annotation of /dao/DelphiScanner/Main.pas

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.20