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

Contents of /dao/DelphiScanner/Main.pas

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.20