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

Contents of /dao/DelphiScanner/Main.pas

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.20