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

Annotation of /dao/DelphiScanner/Main.pas

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.20