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

Contents of /dao/DelphiScanner/Main.pas

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2780 - (show annotations) (download)
Tue Nov 24 15:35:17 2015 UTC (8 years, 5 months ago) by torben
File size: 162766 byte(s)
Indkapsling af boolean logik for bedre at kunne parre AND og OR delene
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 VisAlarmSkaerm( Stregkode + ' kan ikke bruges med automatisk valg' );
1428
1429 exit;
1430 end;
1431 Stregkode := GemStregkode;
1432 end
1433 else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then
1434 begin
1435 VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );
1436
1437 exit;
1438 end;
1439
1440 if not Automatiskvalg1.Checked then
1441 begin
1442 if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then
1443 begin
1444
1445 VisAlarmSkaerm( 'Pakke findes som pakketype: ' + Pakketype );
1446
1447 exit;
1448 end;
1449 end;
1450
1451
1452
1453 if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then
1454 begin
1455 chkScanTjekkode.Checked := false;
1456 for i := 0 to length(stregkoderMedTjekkodeArray)-1 do
1457 begin
1458 if (Stregkode=stregkoderMedTjekkodeArray[i]) then
1459 begin
1460 chkScanTjekkode.Checked := true;
1461 Scanogstjekkoden1.Checked := true;
1462 end;
1463 end;
1464 end;
1465
1466 if Pakkernormal1.Checked and not Scanogstjekkoden1.Checked then
1467 begin
1468 // Når vi ikke kræver tjekkode er alt ok her
1469 BoghandlerStregkode := Stregkode;
1470 BoghandlerTjekkode := '';
1471 PakkeshopText1.Caption := 'Stregkode';
1472 btnNulstil.Visible := false;
1473 Stregkode := '';
1474 InitScreen();
1475 end
1476 else if (PakkeshopLevering1.Checked or Pakkernormal1.Checked) and not Scanogstjekkoden1.Checked then
1477 begin
1478 // Når vi ikke kræver tjekkode er alt ok her
1479 PakkeshopStregkode := Stregkode;
1480 PakkeshopTjekkode := '-1';
1481 BoghandlerStregkode := Stregkode;
1482 BoghandlerTjekkode := '-1';
1483 PakkeshopText1.Caption := 'Stregkode';
1484 btnNulstil.Visible := false;
1485 Stregkode := '';
1486 InitScreen();
1487 end
1488 else if PakkeshopLevering1.Checked or Pakkernormal1.Checked then
1489 if PakkeshopText1.Caption = 'Stregkode' then
1490 begin
1491 if length(Stregkode) > 5 then
1492 begin
1493 PakkeshopStregkode := Stregkode;
1494 BoghandlerStregkode := Stregkode;
1495 PakkeshopText1.Caption := 'Tjekkode';
1496
1497 PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));
1498
1499 end
1500 else
1501 begin
1502 VisAlarmSkaerm( 'Du skal scanne en stregkode' );
1503 end;
1504 Stregkode := '';
1505 InitScreen();
1506 end
1507 else
1508 begin
1509 if length(Stregkode) = 5 then
1510 begin
1511 PakkeshopTjekkode := Stregkode;
1512 BoghandlerTjekkode := Stregkode;
1513 PakkeshopText1.Caption := 'Stregkode';
1514 if (PakkeshopLevering1.Checked) then
1515 MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering);
1516 if (Pakkernormal1.Checked) then
1517 MainForm.Color := TUtils.HexToTColor(FarveNormal);
1518 btnNulstil.Visible := false;
1519 end
1520 else
1521 begin
1522 if (PakkeshopLevering1.Checked) then
1523 VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);
1524 if (Pakkernormal1.Checked) then
1525 VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);
1526
1527 StregKode := '';
1528 StregkodeST.Caption := StregKode;
1529
1530 exit;
1531 end;
1532 Stregkode := '';
1533 InitScreen();
1534 end;
1535
1536 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
1537 begin
1538
1539 if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then
1540 StregKode := PakkeshopStregkode;
1541 if Pakkernormal1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then
1542 StregKode := BoghandlerStregkode;
1543 StregkodeST.Caption := StregKode;
1544 try
1545 InitScreen();
1546 HentPakkeInfoFraServer(Sted, StregKode, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, '');
1547 UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
1548 // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her
1549 if Rutenummer = 'sql fejl' then
1550 begin // Her skal komme en alarm og rød skærm
1551 VisAlarmSkaerm( 'SQL fejl: ' + Kommentar );
1552
1553 exit;
1554 end;
1555 if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then
1556 begin
1557 PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel);
1558 pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
1559 if pakkeErScannet = 0 then
1560 begin
1561 pakkeErScannet := pos('PAKKE ER SCANNET', Kommentar);
1562 end;
1563 if pakkeErScannet = 0 then
1564 begin
1565 pakkeErScannet := pos('PAKKE ER SCANNET', BoghandlerNavn);
1566 end;
1567 pakkeForkertSted := pos('burde være hos', Kommentar);
1568 tjekkodemangler := pos('Tjekkode mangler', Kommentar);
1569 if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then
1570 begin
1571 PlaySound(PWideChar(AlarmLyd));
1572 btnNulstil.Visible := true;
1573 MainForm.Color := clRed;
1574 end;
1575 end;
1576 if ( Pakkernormal1.Checked and (pakkeErScannet = 0) and (pakkeForkertSted = 0) and (tjekkodemangler = 0) and (RuteNummerST.Caption <> 'Ukendt') ) or (Copy(Kommentar,1,2) = 'Ok') then
1577 begin
1578 MainForm.Color := TUtils.HexToTColor(Farve);
1579 if Storepakker1.Checked then
1580 begin
1581 PlaySound(PWideChar(ScannetOkStorLyd));
1582 end
1583 else
1584 begin
1585 PlaySound(PWideChar(ScannetOkLyd));
1586 end;
1587 btnNulstil.Visible := false;
1588 end
1589 else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then
1590 begin
1591 MainForm.Color := TUtils.HexToTColor(Farve);
1592 if Storepakker1.Checked then
1593 begin
1594 PlaySound(PWideChar(ScannetOkStorLyd));
1595 end
1596 else
1597 begin
1598 PlaySound(PWideChar(ScannetOkLyd));
1599 end;
1600 btnNulstil.Visible := false;
1601 end
1602 else if Copy(Kommentar,1,8) = 'OPRETTET' then
1603 begin
1604 VisAlarmSkaerm( 'Pakke ' + PakkeshopStregkode + ' skal gemmes på lager indtil data modtages' );
1605 end
1606 else if Kommentar = StregKode then // budlevering til 'Ukendt tur'
1607 begin
1608 end
1609 else
1610 begin
1611 VisAlarmSkaerm('');
1612 end;
1613
1614 if not btnNulstil.Visible then
1615 begin
1616
1617 If (Budlevering1.Checked) then
1618 begin
1619 if Storepakker1.Checked then
1620 begin
1621 PlaySound(PWideChar(ScannetOkStorLyd));
1622 end
1623 else
1624 begin
1625 PlaySound(PWideChar(ScannetOkLyd));
1626 end;
1627 InitLillePakke();
1628 end;
1629 end;
1630
1631 SletStregkodelinieFraListboks2(StregKode);
1632
1633 PakkeshopStregkode := '';
1634 PakkeshopTjekkode := '';
1635 BoghandlerStregkode := '';
1636 BoghandlerTjekkode := '';
1637 finally
1638 Stregkode := '';
1639 end
1640 end
1641 end
1642 else
1643 begin
1644 if (Key <> #22) then
1645 begin
1646 Stregkode := Stregkode + Key;
1647 end;
1648 StregkodeST.Caption := StregKode;
1649 end;
1650
1651 if Key = #8 then // backspace key
1652 begin
1653 StregKode := LeftStr(StregKode,Length(StregKode)-2);
1654 end;
1655
1656 if Key = #27 then // esc key
1657 begin
1658 Stregkode := '';
1659 end;
1660
1661 Key := #0;
1662
1663 end; //End of OnKeyPress
1664
1665 procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
1666 const
1667 crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
1668 var
1669 WebSvar : String;
1670 URLStr : String;
1671 begin
1672 if UrlSendPrograminfo <> '' then
1673 begin
1674 URLStr := Format(UrlSendPrograminfo,[ExtractFileName(ParamStr(0)), Sted, Scanningtype, Infotype, Info]);
1675 try
1676 //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
1677 WebSvar := IdHTTP1.Get(URLStr);
1678 //IdHTTP1.Disconnect();
1679 except on e:exception do
1680 begin
1681 // ShowMessage(e.Message);
1682 // raise exception.CreateFmt('Fejl i forbindelse til server: %s',[e.Message]);
1683 logTekst := 'Der er opstået en fejl i kommunikationen med serveren.' + crlf + crlf + 'Programmet afsluttes... ' + crlf + crlf + 'Program rutine: SendTilServeren' + crlf + 'Fejl: ' + e.Message;
1684 ShowMessage(logTekst);
1685 SkrivScanningLogFil(logTekst);
1686 // Vi nulstiller lige url feltet så rutinen ikke kaldes igen i forbindelse med lukning af programmet
1687 UrlSendPrograminfo := '';
1688 Application.Terminate;
1689 end;
1690 end;
1691 if (WebSvar <> '') and (pos('Error', WebSvar) > 0) then
1692 begin
1693 ShowMessage(WebSvar);
1694 end;
1695 end;
1696 end;
1697
1698 procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);
1699 var
1700 i : Integer;
1701 wrkAntal : String;
1702 wrkAntalIdag, wrkAntalSenere : Integer;
1703
1704
1705 begin
1706 if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked or menuIndlevering.Checked then
1707 begin
1708 for i := ListBox2.items.count-1 downto 0 do
1709 if pos(StregKode,ListBox2.items[i]) <> 0 then
1710 begin
1711
1712 // Ajourføring af tæller for manglende pakker (scanninger)
1713 wrkAntal := StaticTextManglendePakker.Caption;
1714 if (pos('/', wrkAntal) > 0) then // både pakker idag og senere
1715 begin
1716 wrkAntal := wrkAntal + '/'; // tilføjer '/' sidst i feltet af hensyn til split funktionen
1717 wrkAntalIdag := StrToInt( TUtils.split(wrkAntal, '/', 2));
1718 // ShowMessage(SPLIT('data/another/yet/again/more/','/',3));
1719 // ShowMessage(SPLIT('data/another/','/',3));
1720 // ShowMessage(SPLIT('data/another','/',3));
1721 wrkAntalSenere := StrToInt( TUtils.split(wrkAntal, '/', 3));
1722 end
1723 else // kun idag
1724 begin
1725 wrkAntalIdag := StrToInt(wrkAntal);
1726 end;
1727 if pos(StregKode + ' (',ListBox2.items[i]) <> 0 then // pakke til senere levering
1728 begin
1729 //ShowMessage('Senere ' + IntToStr(wrkAntalIdag) + ' ' + IntToStr(wrkAntalSenere));
1730 wrkAntalSenere := wrkAntalSenere - 1;
1731 // StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag) + '/' + IntToStr(wrkAntalSenere);
1732 end
1733 else
1734 begin
1735 // ShowMessage('Idag');
1736 wrkAntalIdag := wrkAntalIdag - 1;
1737 // StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);
1738 end;
1739 if (wrkAntalSenere > 0) then
1740 begin
1741 StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag) + '/' + IntToStr(wrkAntalSenere);
1742 end
1743 else
1744 begin
1745 StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);
1746 end;
1747
1748 if (Scanningtype = '1') then
1749 begin
1750 PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
1751 if (wrkAntalIdag + wrkAntalSenere > 0) then
1752 begin
1753 PanelManglendePakker1.Visible := true;
1754 end
1755 else
1756 begin
1757 PanelManglendePakker1.Visible := false;
1758 end;
1759 end;
1760
1761 if (Scanningtype = '2') then
1762 begin
1763 PanelManglendePakker2.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
1764 if (wrkAntalIdag + wrkAntalSenere > 0) then
1765 begin
1766 PanelManglendePakker2.Visible := true;
1767 end
1768 else
1769 begin
1770 PanelManglendePakker2.Visible := false;
1771 end;
1772 end;
1773
1774 if (Scanningtype = '3') then
1775 begin
1776 PanelManglendePakker3.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
1777 if (wrkAntalIdag + wrkAntalSenere > 0) then
1778 begin
1779 PanelManglendePakker3.Visible := true;
1780 end
1781 else
1782 begin
1783 PanelManglendePakker3.Visible := false;
1784 end;
1785 end;
1786
1787 if (Scanningtype = '4') then
1788 begin
1789 PanelManglendePakker4.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
1790 if (wrkAntalIdag + wrkAntalSenere > 0) then
1791 begin
1792 PanelManglendePakker4.Visible := true;
1793 end
1794 else
1795 begin
1796 PanelManglendePakker4.Visible := false;
1797 end;
1798 end;
1799
1800 if (Scanningtype = '5') then
1801 begin
1802 PanelManglendePakker5.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
1803 if (wrkAntalIdag + wrkAntalSenere > 0) then
1804 begin
1805 PanelManglendePakker5.Visible := true;
1806 end
1807 else
1808 begin
1809 PanelManglendePakker5.Visible := false;
1810 end;
1811 end;
1812
1813 if (Scanningtype = '6') then
1814 begin
1815 PanelManglendePakker6.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
1816 if (wrkAntalIdag + wrkAntalSenere > 0) then
1817 begin
1818 PanelManglendePakker6.Visible := true;
1819 end
1820 else
1821 begin
1822 PanelManglendePakker6.Visible := false;
1823 end;
1824 end;
1825
1826 ListBox2.items.delete(i);
1827 end;
1828 end;
1829 end;
1830
1831 procedure TMainForm.StartScreen();
1832 begin
1833 if Org_RuteNummerST = '' then
1834 Org_RuteNummerST := RuteNummerST.Caption;
1835 if Org_BoghandlerNavnST = '' then
1836 Org_BoghandlerNavnST := BoghandlerNavnST.Caption;
1837 if Org_KommentarST = '' then
1838 Org_KommentarST := KommentarST.Caption;
1839 RuteNummerST.Caption := Org_RuteNummerST;
1840 BoghandlerNavnST.Caption := Org_BoghandlerNavnST;
1841 KommentarST.Caption := Org_KommentarST;
1842 end;
1843
1844 procedure TMainForm.InitScreen();
1845 begin
1846 RuteNummerST.Caption := '';
1847 KommentarST.Caption := '';
1848 BoghandlerNavnST.Caption := '';
1849 end;
1850
1851 procedure TMainForm.InitBladhus();
1852
1853 begin
1854 Altidprintepakkelabel1.Enabled := false;
1855 Pakkernormal1.Visible := false;
1856 ReturpakkerfraDAO1.Visible := false;
1857 Returpakkerfraboghandler1.Visible := false;
1858 Sprgefterboghandlernummer1.Enabled := false;
1859 ListBox1.Visible := true;
1860 // TestFunktionen := '1';
1861
1862 if Budlevering1.Checked then
1863 begin
1864 IndlesScanningLogFil();
1865 end;
1866
1867 //
1868 // Bladhus ***
1869 //
1870 case BladhusSted of
1871 01 :
1872 begin; // NS
1873 Testprinter1.Visible := true;
1874 BtnDownloadKontrolfil.Enabled := true;
1875 BtnOpdaterListen.Enabled := true;
1876 IdFTP1.Passive := true;
1877 IdFTP1.PassiveUseControlHost := true;
1878 BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';
1879 BladhusKontrolfil_lokal := 'RuteKontrol.txt';
1880 DownloadBladhusKontrolfil();
1881 IndlesManglendeScanninger();
1882 end;
1883 02 :
1884 begin; // BK
1885 Testprinter1.Visible := true;
1886 Smpakker1.Enabled := true;
1887 Storepakker1.Enabled := true;
1888 radioStorPakke.Enabled := true;
1889 radioLillePakke.Enabled := true;
1890 BtnDownloadKontrolfil.Enabled := false; // kontrolfil bruges ikke her
1891 BtnOpdaterListen.Enabled := true;
1892 IdFTP1.Passive := true;
1893 IdFTP1.PassiveUseControlHost := true;
1894 IndlesManglendeScanninger();
1895 end;
1896 03 :
1897 begin; // FD
1898 Testprinter1.Visible := true;
1899 if (getProddag() = 'lørdag') then
1900 begin
1901 BtnDownloadRuteskiftFil.Visible := false;
1902 end
1903 else
1904 begin
1905 BtnDownloadRuteskiftFil.Visible := false;
1906 end;
1907 BtnDownloadKontrolfil.Enabled := true;
1908 BtnOpdaterListen.Enabled := true;
1909 IdFTP1.Passive := true;
1910 IdFTP1.PassiveUseControlHost := true;
1911 BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';
1912 BladhusRuteskiftfil_lokal := 'RuteSkift.txt';
1913 if (getProddag() = 'lørdag') then
1914 begin
1915 //DownloadBladhusRuteskiftfil(); // Skal ikke bruges endnu
1916 end;
1917 BladhusKontrolfil_server := 'frafd/RuteKontrol.txt';
1918 BladhusKontrolfil_lokal := 'RuteKontrol.txt';
1919 DownloadBladhusKontrolfil();
1920 IndlesManglendeScanninger();
1921 end;
1922 04 : begin; // DBK
1923 Testprinter1.Visible := true;
1924 Smpakker1.Enabled := true;
1925 Storepakker1.Enabled := true;
1926 radioStorPakke.Enabled := true;
1927 radioLillePakke.Enabled := true;
1928 BtnDownloadKontrolfil.Enabled := false; // kontrolfil bruges ikke her
1929 BtnOpdaterListen.Enabled := true;
1930 IdFTP1.Passive := true;
1931 IdFTP1.PassiveUseControlHost := true;
1932 end;
1933 else
1934 //ShowMessage('Ukendt Bladhus sted ???') ;
1935 end;
1936
1937 end;
1938
1939 procedure TMainForm.HentPakkeInfoFraServer(const Sted, PakkeNr : String; var RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : String = '');
1940 var
1941 WebSvar : String;
1942 URLStr : String;
1943 pakkestorrelse : String;
1944 PrintNyLabelInteger : Integer;
1945
1946 PakkeshopLabel: TPakkeshopLabel;
1947 begin
1948 if radioStorPakke.Checked then
1949 begin
1950 pakkestorrelse := 'Stor';
1951 end;
1952 if radioLillePakke.Checked then
1953 begin
1954 pakkestorrelse := 'Lille';
1955 end;
1956
1957
1958 if Pakkernormal1.Checked then
1959 begin
1960 if (BoghandlerTjekkode = '') then
1961 begin
1962 BoghandlerTjekkode := '-1';
1963 end;
1964 URLStr := Format(UrlNormal,[Sted, PakkeNr, BoghandlerNummer, BoghandlerTjekkode]);
1965 end
1966 else if ReturpakkerfraDAO1.Checked then
1967 begin
1968 URLStr := Format(UrlReturDAO,[Sted, PakkeNr, BoghandlerNummer, 'DAO', pakkestorrelse]);
1969 end
1970 else if Returpakkerfraboghandler1.Checked then
1971 begin
1972 URLStr := Format(UrlReturBoghandler,[Sted, PakkeNr, BoghandlerNummer, 'Boghandler', pakkestorrelse]);
1973 end
1974 else if Budlevering1.Checked then
1975 begin
1976 URLStr := Format(UrlBudlevering,[Sted, PakkeNr, 'bud', pakkestorrelse]);
1977 end
1978 else if Pakkeshoplevering1.Checked then
1979 begin
1980 URLStr := Format(UrlPakkeshoplevering,[Sted, PakkeNr, PakkeshopTjekkode]);
1981 end
1982 else if Returpakkerfrapakkeshop1.Checked then
1983 begin
1984 URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);
1985 end
1986 else if menuIndlevering.Checked then
1987 begin
1988 URLStr := Format(UrlIndleveringsPakke,[Sted, PakkeNr]);
1989 end
1990 else
1991 begin
1992 exit;
1993 end;
1994 try
1995 //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
1996 WebSvar := IdHTTP1.Get(URLStr);
1997 //IdHTTP1.Disconnect();
1998 except on e:EIdConnClosedGracefully do
1999 begin
2000 // Her skal vi ikke gøre noget - men vi skal forespørge igen
2001 logTekst := 'EIdConnClosedGracefully i HentPakkeInfoFraServer';
2002 SkrivScanningLogFil(logTekst);
2003 try
2004 //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
2005 WebSvar := IdHTTP1.Get(URLStr);
2006 except on e:EIdConnClosedGracefully do
2007 begin
2008 logTekst := 'EIdConnClosedGracefully i HentPakkeInfoFraServer igen';
2009 SkrivScanningLogFil(logTekst);
2010 WebSvar := IdHTTP1.Get(URLStr);
2011 end;
2012 end;
2013 end;
2014 end;
2015 XMLDocument1.LoadFromXML(WebSvar);
2016 try
2017 if Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked then
2018 begin
2019 RuteNummer := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopTurid').Text;
2020 Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2021 BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;
2022 BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;
2023 PrintNyLabel := False;
2024
2025 if Pakkeshoplevering1.Checked then
2026 begin
2027 try
2028 PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);
2029 except on e:exception do
2030 PrintNyLabelInteger := 0;
2031 end;
2032 if (PrintNyLabelInteger = 1) then
2033 begin
2034 PrintNyLabel := True;
2035 end;
2036 end;
2037 end
2038 else if menuIndlevering.Checked then
2039 begin
2040
2041
2042
2043
2044 Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2045 if (Kommentar = 'Ok') then
2046 begin
2047 PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2048 PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc
2049 RuteNummer := PakkeshopLabel.Koreliste + ' -> ' + PakkeshopLabel.PakkeshopTurid;
2050 Stregkode := PakkeshopLabel.Stregkode;
2051
2052 LabelPrint.PrintPakkeshopLabel( PakkeshopLabel );
2053
2054 end;
2055
2056
2057 end
2058 else
2059 begin
2060 RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;
2061 Koreliste := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Koreliste').Text;
2062 Kommentar := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Kommentar').Text;
2063 BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('BoghandlerNavn').Text;
2064 Leveringssted := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Leveringssted').Text;
2065 if Budlevering1.Checked then
2066 begin
2067 try
2068 SmsKode := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('SmsKode').Text;
2069 except on e:exception do
2070 SmsKode := '';
2071 end;
2072 try
2073 DBKbane := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('DBKbane').Text;
2074 except on e:exception do
2075 DBKbane := '';
2076 end;
2077 end;
2078 PrintNyLabel := False;
2079 try
2080 PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('PrintPakkeLabel').Text);
2081 except on e:exception do
2082 PrintNyLabelInteger := 0;
2083 end;
2084 PrintNyLabel := False;
2085 if (PrintNyLabelInteger = 1) then
2086 begin
2087 PrintNyLabel := True;
2088 end;
2089 end;
2090
2091
2092 if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
2093 begin
2094 if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then
2095 begin
2096 Kommentar := Kommentar + ' Pakke burde være hos DAO Distribution';
2097 PrintNyLabel := False;
2098 end;
2099 end
2100 else if (Budlevering1.Checked) and (Leveringssted <> Sted) then
2101 begin
2102 if (Leveringssted = 'E') and (Sted = 'DBK') then
2103 begin
2104 // Det er ok at DBK scanner pakker til E (Schenker)
2105 end
2106 else
2107 begin
2108 Kommentar := Kommentar + ' Pakke burde være hos DAO Distribution';
2109 PrintNyLabel := False;
2110 end;
2111 end;
2112 except on e:exception do
2113 raise exception.CreateFmt('Fejl i XML-format: %s',[e.Message]);
2114 end;
2115 end;
2116
2117
2118 procedure TMainForm.UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, BoghNr : String);
2119 var
2120 List1Msg, List1Pakkestorrelse : String;
2121 begin
2122 RuteNummerST.Caption := RuteNummer;
2123 KommentarST.Caption := Kommentar;
2124 KommentarST.Caption := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);
2125 KommentarST.Caption := StringReplace(KommentarST.Caption, ' & ', ' && ', [rfReplaceAll, rfIgnoreCase]);
2126 //Label1.Caption := Kommentar; // bruges hvis der skal vises linieskift - det kan man ikke i en staticText
2127 BoghandlerNavnST.Caption := StringReplace(BoghandlerNavn, ' & ', ' && ', [rfReplaceAll, rfIgnoreCase]);
2128 List1msg := TimeToStr(now) + '; ';
2129 if Pakkeshoplevering1.Checked then
2130 List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';
2131 List1Pakkestorrelse := '';
2132 if radioStorPakke.Checked then
2133 begin
2134 List1Pakkestorrelse := 'Stor pakke';
2135 end;
2136 if radioLillePakke.Checked then
2137 begin
2138 List1Pakkestorrelse := 'Lille pakke';
2139 end;
2140 List1msg := List1msg + BoghandlerNavn + '; ';
2141 if ReturpakkerfraDAO1.Checked then
2142 begin
2143 List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-8);
2144 end;
2145 if Returpakkerfraboghandler1.Checked then
2146 begin
2147 List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-16);
2148 end;
2149 if ReturpakkerfraDAO1.Checked or Returpakkerfraboghandler1.Checked then
2150 List1msg := List1msg + '; ' + List1Pakkestorrelse;
2151 if length(BoghNr) > 0 then
2152 begin
2153 List1Msg := List1Msg + '; Indtastet ' + BoghNr;
2154 end;
2155 if Budlevering1.Checked then
2156 begin
2157 List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;
2158 if (radioStorPakke.Checked) then
2159 begin
2160 List1msg := List1msg + '; Stor pakke';
2161 end;
2162 if (radioLillePakke.Checked) then
2163 begin
2164 List1msg := List1msg + '; Lille pakke';
2165 end;
2166 end;
2167 if Returpakkerfrapakkeshop1.Checked then
2168 begin
2169 List1msg := List1msg + Stregkode + ' ' + RightStr(Kommentar, Length(Kommentar)-6);
2170 end;
2171 if Pakkernormal1.Checked then
2172 begin
2173 if (Kommentar = '***** Kommentar *****') // fra test printer funktionen
2174 or (BoghandlerNavn = 'Forbindelse ok') // fra test forbindelse funktionen
2175 or (BoghandlerNavn = 'Fejl i forbindelse til server') then // fra test forbindelse funktionen
2176 begin
2177 List1msg := List1msg + '; ' + Stregkode + '; ' + Kommentar;
2178 end
2179 else
2180 begin
2181 List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;
2182 end;
2183 end;
2184 if menuIndlevering.Checked then
2185 begin
2186 List1Msg := Stregkode;
2187 end;
2188
2189
2190 ListBox1.Items.Insert(0,List1Msg);
2191 logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2192 SkrivScanningLogFil(logTekst);
2193 end;
2194
2195 procedure TMainForm.BtnUploadLogfilClick(Sender: TObject);
2196 begin
2197 UploadLogfilTilDAO();
2198 UploadInifilTilDAO();
2199 ListBox1.SetFocus; // for at flytte fokus væk fra upload knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
2200 end;
2201
2202 procedure TMainForm.PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');
2203 var
2204 ClickedOK: Boolean;
2205 pakkeErScannet : Integer;
2206 pakkeForkertSted : Integer;
2207 List1Msg : String;
2208 kontrolKoreliste : string;
2209 nytRuteNummer, nyFarve : String;
2210 begin
2211 if Budlevering1.Checked then
2212 RuteNummerST.Color := TUtils.HexToTColor(Farve);
2213
2214 pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
2215 if pakkeErScannet = 0 then
2216 begin
2217 pakkeErScannet := pos('PAKKE ER SCANNET', Kommentar);
2218 end;
2219 if pakkeErScannet = 0 then
2220 begin
2221 pakkeErScannet := pos('PAKKE ER SCANNET', BoghandlerNavn);
2222 end;
2223 pakkeForkertSted := pos('burde være hos', Kommentar);
2224
2225
2226 if Sprgefterboghandlernummer1.Enabled and chkSporgEfterKunde.Checked and ( (RuteNummer = 'Ukendt') or (RuteNummer = 'Ukendt tur') or (RuteNummer = 'Retur ukendt') or (pakkeErScannet > 0) or (pakkeForkertSted > 0) ) then
2227
2228 begin
2229 if (RuteNummer = 'Ukendt') then
2230 begin
2231 repeat
2232 begin
2233 ClickedOK := InputQuery('Ukendt pakke', 'Indtast kundenummer', BoghandlerNummer);
2234 end
2235 until (ClickedOK and (Length(BoghandlerNummer) > 2) and (Length(BoghandlerNummer) < 9)) or not ClickedOK;
2236 if not ClickedOK then
2237 begin
2238 exit;
2239 end;
2240 if (Length(BoghandlerNummer) > 2) then
2241 begin
2242 InitScreen();
2243 HentPakkeInfoFraServer(Sted, StregKode, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2244 UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, BoghandlerNummer);
2245 end;
2246 end;
2247 end
2248 else
2249 if Budlevering1.Checked then
2250 begin
2251 if (BoghandlerNavn = 'Ukendt pakke') then
2252 begin
2253 PrintNyLabel := false;
2254
2255 PlaySound(PWideChar(AlarmLyd));
2256 MainForm.Color := clRed;
2257 btnNulstil.Visible := true;
2258
2259 end
2260 else
2261 begin
2262 nytRuteNummer := retRutenummer(RuteNummer);
2263 if (nytRuteNummer <> RuteNummer) then
2264 begin
2265 PrintNyLabel := true;
2266 RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;
2267 nyFarve := Farve;
2268 RuteNummerST.Color := TUtils.HexToTColor(nyFarve);
2269 List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;
2270 RuteNummer := nytRuteNummer;
2271 ListBox1.Items.Insert(0,List1Msg);
2272 logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2273 SkrivScanningLogFil(logTekst);
2274
2275 if (PrinterNavn = 'Ingen') then
2276 begin
2277 PrintNyLabel := false;
2278 end;
2279
2280 if (PrintNyLabel = false) then // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm
2281 begin
2282 PlaySound(PWideChar(AlarmLyd));
2283 MainForm.Color := clRed;
2284 btnNulstil.Visible := true;
2285 end;
2286
2287 end;
2288 kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);
2289 if (kontrolKoreliste <> RuteNummer) then
2290 begin
2291 PrintNyLabel := true;
2292 List1msg := TimeToStr(now) + '; ' + BoghandlerNavn + '; ' + 'Forkert køreliste ' + '; ' + Koreliste + ' -> ' + kontrolKoreliste;
2293 if (length(kontrolKoreliste) > 20) then // Skal ikke printe label når 'Køreliste ikke i kontrolfil'
2294 begin
2295 PrintNyLabel := false;
2296 RuteNummerST.Caption := RuteNummerST.Caption + ' -> ' + kontrolKoreliste;
2297 end
2298 else
2299 begin
2300 RuteNummerST.Caption := RuteNummerST.Caption + ' -> Ny køreliste: ' + kontrolKoreliste;
2301 end;
2302 ListBox1.Items.Insert(0,List1Msg);
2303 logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2304 SkrivScanningLogFil(logTekst);
2305
2306 if (PrintNyLabel = false) then // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm
2307 begin
2308 PlaySound(PWideChar(AlarmLyd));
2309 MainForm.Color := clRed;
2310 btnNulstil.Visible := true;
2311 end;
2312
2313 end;
2314 end;
2315
2316 end;
2317
2318 if Budlevering1.Checked then
2319 begin
2320 case BladhusSted of
2321 00 : begin;
2322 // 20150304: start
2323 // if PrintNyLabel and (kontrolKoreliste <> '') or (RuteNummer = 'Rutenr') then
2324 // // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste
2325 // // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')
2326 // // Det holder dog ikke for DAO DIREKTE fordi Schenker altid skal printes, da deres label mangler DAO ruteoplysninger553915076624451294
2327 if PrintNyLabel or (RuteNummer = 'Rutenr') then
2328 // 20150304: slut
2329 begin
2330 LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2331 end;
2332 end;
2333 01 : begin;
2334 if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2335 // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste
2336 // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')
2337 begin
2338 LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2339 end;
2340 end;
2341 02 : begin;
2342 if PrintNyLabel or (RuteNummer = 'Rutenr') then // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test
2343 begin
2344 LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2345 end;
2346 end;
2347 03 : begin;
2348 if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2349 // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste
2350 // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')
2351 begin
2352 LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2353 end;
2354 end;
2355 04 : begin;
2356 if PrintNyLabel or (RuteNummer = 'Rutenr') then // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test
2357 begin
2358 LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2359 end;
2360 end;
2361 else
2362 ShowMessage('Ukendt Bladhus sted: ' + IntToStr(BladhusSted));
2363 end;
2364 end;
2365
2366 // Hvis det er normal bogpakke modtagelse til UBD skal vi p.t. ikke printe - men stopper her
2367 if Pakkernormal1.Checked and ( (Sted = '1') or (Sted = '2') or (Sted = '3') or (Sted = '4') ) then
2368 begin
2369 exit;
2370 end;
2371
2372 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
2373 begin
2374 end
2375 else
2376 begin
2377 if ( (PrinterNavn <> 'Ingen') and (PrintNyLabel or chkAltidPrintLabel.Checked) and (RuteNummer <> 'Ukendt') or (RuteNummer = 'Rutenr')) then
2378 begin
2379 logTekst := 'Printer label type ';
2380 if (chkAltidPrintLabel.Checked) then
2381 begin
2382 logTekst := logTekst + 'Alle ';
2383 end
2384 else if (PrintNyLabel) then
2385 begin
2386 logTekst := logTekst + 'Rute ';
2387 end
2388 else
2389 begin
2390 logTekst := logTekst + 'Ukendt ';
2391 end;
2392 logTekst := logTekst + ' for '+BoghandlerNavn;
2393 SkrivScanningLogFil(logTekst);
2394
2395 LabelPrint.PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn) ;
2396
2397 end;
2398 end;
2399
2400 end;
2401
2402
2403
2404 procedure TMainForm.radioStorPakkeClick(Sender: TObject);
2405 begin
2406 Storepakker1.Checked := true;
2407 radioStorPakke.Checked := true;
2408 end;
2409
2410 procedure TMainForm.radioLillePakkeClick(Sender: TObject);
2411 begin
2412 Smpakker1.Checked := true;
2413 radioLillePakke.Checked := true;
2414 end;
2415
2416
2417 procedure TMainForm.chkSporgEfterKundeClick(Sender: TObject);
2418 begin
2419 if chkSporgEfterKunde.Checked then
2420 begin
2421 Sprgefterboghandlernummer1.Checked := true;
2422 end
2423 else
2424 begin
2425 Sprgefterboghandlernummer1.Checked := false;
2426 end;
2427 end;
2428
2429
2430 procedure TMainForm.chkAltidPrintLabelClick(Sender: TObject);
2431 begin
2432 if chkAltidPrintLabel.Checked then
2433 begin
2434 Altidprintepakkelabel1.Checked := true;
2435 end
2436 else
2437 begin
2438 Altidprintepakkelabel1.Checked := false;
2439 end;
2440
2441 end;
2442
2443 procedure TMainForm.chkScanTjekkodeClick(Sender: TObject);
2444 begin
2445 if chkScanTjekkode.Checked then
2446 begin
2447 Scanogstjekkoden1.Checked := true;
2448 end
2449 else
2450 begin
2451 Scanogstjekkoden1.Checked := false;
2452 end;
2453 end;
2454
2455 procedure TMainForm.Pakkeshoplevering1Click(Sender: TObject);
2456 begin
2457 Scanningtype := '5';
2458 InitPakkeshoplevering();
2459 NulstilAutomatiskValg();
2460 end;
2461
2462 procedure TMainForm.NulstilAutomatiskValg();
2463 begin
2464 Automatiskvalg1.Checked := false;
2465 PanelValgA.Color := clBtnFace;
2466 PanelValgA.Font.Color := clWindowText;
2467
2468 if (SpecialVersionSted = '01')
2469 or (SpecialVersionSted = '02')
2470 or (SpecialVersionSted = '03')
2471 or (SpecialVersionSted = '04') then
2472 begin
2473 // her skal vi også disable knappen for 01, 02, 03 og 04 (NS, BK, FD og DBK)
2474 PanelValgA.Enabled := false;
2475 PanelValgA.Font.Color := clInactiveCaption;
2476 Automatiskvalg1.Enabled := false;
2477 end;
2478 // 20150317: slut
2479 end;
2480
2481 procedure TMainForm.TjekkerUrls();
2482 const
2483 crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
2484 var
2485 urlFejl : Integer;
2486 begin
2487 urlFejl := 0;
2488 //UpdateScreen('', '', 'Tjekker forbindelsen...', '', ''); // virker ikke
2489 ShowMessage('Tjekker data forbindelse til serveren.' + crlf + 'Det kan godt tage nogle minutter.' + crlf + 'Resultatet af testen vises i skærmbilledet...');
2490
2491 try
2492 // Tjekker urls
2493 logTekst := 'Tjekker urls.';
2494 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2495 SkrivScanningLogFil(logTekst);
2496
2497
2498
2499 // Tjekker UrlNormal
2500 if PanelValg1.Enabled = true then
2501 begin
2502 TjekkerEnkeltUrl('UrlNormal', UrlNormal, urlFejl);
2503 end;
2504
2505 // Tjekker UrlReturDAO
2506 if PanelValg2.Enabled = true then
2507 begin
2508 TjekkerEnkeltUrl('UrlReturDAO', UrlReturDAO, urlFejl);
2509 end;
2510
2511 // Tjekker UrlReturBoghandler
2512 if PanelValg3.Enabled = true then
2513 begin
2514 TjekkerEnkeltUrl('UrlReturBoghandler', UrlReturBoghandler, urlFejl);
2515 end;
2516
2517 // Tjekker UrlBudlevering
2518 if PanelValg4.Enabled = true then
2519 begin
2520 TjekkerEnkeltUrl('UrlBudlevering', UrlBudlevering, urlFejl);
2521 end;
2522
2523 // Tjekker UrlPakkeshoplevering
2524 if PanelValg5.Enabled = true then
2525 begin
2526 TjekkerEnkeltUrl('UrlPakkeshoplevering', UrlPakkeshoplevering, urlFejl);
2527 end;
2528
2529 // Tjekker UrlReturPakkeshop
2530 if PanelValg6.Enabled = true then
2531 begin
2532 TjekkerEnkeltUrl('UrlReturPakkeshop', UrlReturPakkeshop, urlFejl);
2533 end;
2534
2535 // Tjekker UrlManglendeScanninger
2536 if (PanelValg1.Enabled = true) or (PanelValg4.Enabled = true) then
2537 begin
2538 TjekkerEnkeltUrl('UrlManglendeScanninger', UrlManglendeScanninger, urlFejl);
2539 end;
2540
2541 // Tjekker UrlPakkeshopManglendeScanninger
2542 if PanelValg5.Enabled = true then
2543 begin
2544 TjekkerEnkeltUrl('UrlPakkeshopManglendeScanninger', UrlPakkeshopManglendeScanninger, urlFejl);
2545 end;
2546
2547 // Tjekker UrlPakkeshopManglendeReturScanninger
2548 if PanelValg6.Enabled = true then
2549 begin
2550 TjekkerEnkeltUrl('UrlPakkeshopManglendeReturScanninger', UrlPakkeshopManglendeReturScanninger, urlFejl);
2551 end;
2552
2553 // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
2554 if PanelValg7.Enabled = true then
2555 begin
2556 TjekkerEnkeltUrl('UrlIndleveringsPakke', UrlIndleveringsPakke, urlFejl);
2557 TjekkerEnkeltUrl('UrlIndleveringsPakkeManglendeScanninger', UrlIndleveringsPakkeManglendeScanninger, urlFejl);
2558 end;
2559
2560 // Tjekker UrlEKLoverforsel
2561 if PanelValg1.Enabled = true then
2562 begin
2563 TjekkerEnkeltUrl('UrlEKLoverforsel', UrlEKLoverforsel, urlFejl);
2564 end;
2565
2566
2567 // Tjekker UrlEKLoverforselPakkeshop
2568 if PanelValg5.Enabled = true then
2569 begin
2570 TjekkerEnkeltUrl('UrlEKLoverforselPakkeshop', UrlEKLoverforselPakkeshop, urlFejl);
2571 end;
2572
2573
2574 // Tjekker UrlFindPakketype
2575 TjekkerEnkeltUrl('UrlFindPakketype', UrlFindPakketype, urlFejl);
2576
2577 // Tjekker UrlSendPrograminfo
2578 TjekkerEnkeltUrl('UrlSendPrograminfo', UrlSendPrograminfo, urlFejl);
2579
2580
2581
2582 logTekst := 'urls er ok';
2583 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2584 SkrivScanningLogFil(logTekst);
2585
2586 Except
2587 TjekUrls := '-'; // markerer at der var fejl
2588
2589 end;
2590 end;
2591
2592 procedure TMainForm.TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
2593 const
2594 crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
2595 begin
2596 if TUtils.CheckUrl(Url) then
2597
2598 begin
2599 logTekst := UrlNavn + ' accepteret: ' + Url;
2600 SkrivScanningLogFil(logTekst);
2601 end
2602 else
2603 begin
2604 inc(urlFejl); // Optæller antal fejl
2605 logTekst := UrlNavn + ' svarer ikke: ' + Url;
2606 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2607 if TjekUrls = '1' then
2608 begin
2609 logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2610 end;
2611
2612 SkrivScanningLogFil(logTekst);
2613
2614 if TjekUrls = '1' then
2615 begin
2616 ShowMessage(logTekst);
2617 UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2618 Application.Terminate;
2619
2620 raise Exception.Create('UrlFejl');
2621
2622 end;
2623 end;
2624
2625 end;
2626
2627
2628
2629 procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);
2630 var
2631 SR: TSearchRec;
2632 dt: TDateTime;
2633 CreationTime: TFileTime;
2634 dtCreation: TDateTime;
2635 BemTxt : String;
2636 begin
2637 logTekst := 'Logfiler tjekkes for sletning.';
2638 SkrivScanningLogFil(logTekst);
2639 FileList.Insert(0,logTekst);
2640 if FindFirst(Path + '*.log', faAnyFile, SR) = 0 then // finder log filer
2641 begin
2642 repeat
2643 if (SR.Attr <> faDirectory) then
2644 begin
2645
2646 dt := fileDateToDateTime(SR.Time); // finder filens timestamp for seneste ændring
2647 CreationTime := SR.FindData.ftCreationTime; // finder filens timestamp for oprettelse
2648 dtCreation := TUtils.FileTime2DateTime(CreationTime); // finder filens timestamp for oprettelse
2649 // Selvom creation date godt kan være forskellig fra modified date,
2650 // skal vi alligevel altid tjekke filens alder ud fra modified date
2651 // (ændring den kan ligge både før og efter oprettelse, hvis filerne er flyttet eller ændret manuelt)
2652 BemTxt := '';
2653 if (DaysBetween(now, dt) > 14) then // så er filen kandidat til at blive slettet
2654 begin
2655 BemTxt := ' (skal slettes)';
2656 end;
2657 logTekst := SR.Name + ' Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',dt) + ' ' + BemTxt + ' ' + IntToStr(DaysBetween(now, dt)) + ' dage gammel';
2658 if DaysBetween(dtCreation, dt) > 1 then
2659 begin
2660 logTekst := logTekst + ' (Oprettet ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',dtCreation) + ')';
2661 end;
2662 FileList.Insert(0,logTekst);
2663 SkrivScanningLogFil(logTekst);
2664 if BemTxt = ' (skal slettes)' then
2665 begin
2666 if DeleteFile(Path + SR.Name) then
2667 begin
2668 logTekst := 'Logfil er slettet.';
2669 FileList.Insert(0,logTekst);
2670 SkrivScanningLogFil(logTekst);
2671 end
2672 else
2673 begin
2674 logTekst := 'Logfil kunne IKKE slettes.';
2675 FileList.Insert(0,logTekst);
2676 SkrivScanningLogFil(logTekst);
2677 end;
2678 end;
2679 end;
2680 until FindNext(SR) <> 0;
2681 FindClose(SR);
2682 end;
2683 end;
2684
2685 procedure TMainForm.btnNulstilClick(Sender: TObject);
2686 begin
2687 PakkeshopStregkode := '';
2688 PakkeshopTjekkode := '';
2689 btnNulstil.Visible := false;
2690 PakkeshopText1.Caption := 'Stregkode';
2691 BoghandlerStregkode := '';
2692 BoghandlerTjekkode := '';
2693 Stregkode := '';
2694 // 20150312: start
2695 if BoghandlerNavnST.Caption = 'Fejl i forbindelse til server' then
2696 begin
2697 ShowMessage('Programmet afbrydes...');
2698 UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2699 Application.Terminate;
2700 exit;
2701 end;
2702 // 20150312: slut
2703 InitScreen();
2704 // MainForm.Color := HexToTColor(Farve);
2705 if Farve <> '' then
2706 begin
2707 MainForm.Color := TUtils.HexToTColor(Farve);
2708 end;
2709 if (Budlevering1.Checked) then
2710 begin
2711 InitLillePakke();
2712 end;
2713 PrinterstatusStaticText1.Caption := '';
2714 PrinterstatusStaticText1.Color := MainForm.Color;
2715 end;
2716
2717
2718 procedure TMainForm.PanelValg1Click(Sender: TObject);
2719 begin
2720 Scanningtype := '1';
2721 InitNatxpresslevering();
2722 NulstilAutomatiskValg();
2723 end;
2724
2725 procedure TMainForm.PanelValg2Click(Sender: TObject);
2726 begin
2727 Scanningtype := '2';
2728 InitReturFraDao();
2729 NulstilAutomatiskValg();
2730 end;
2731
2732 procedure TMainForm.PanelValg3Click(Sender: TObject);
2733 begin
2734 Scanningtype := '3';
2735 InitReturFraKunde();
2736 NulstilAutomatiskValg();
2737 end;
2738
2739 procedure TMainForm.PanelValg4Click(Sender: TObject);
2740 begin
2741 Scanningtype := '4';
2742 InitDirektelevering();
2743 NulstilAutomatiskValg();
2744 end;
2745
2746 procedure TMainForm.PanelValg5Click(Sender: TObject);
2747 begin
2748 Scanningtype := '5';
2749 InitPakkeshoplevering();
2750 NulstilAutomatiskValg();
2751 end;
2752
2753 procedure TMainForm.PanelValg6Click(Sender: TObject);
2754 begin
2755 Scanningtype := '6';
2756 InitReturFraPakkeshop();
2757 NulstilAutomatiskValg();
2758 end;
2759
2760
2761 procedure TMainForm.PanelValg7Click(Sender: TObject);
2762 begin
2763 Scanningtype := '7';
2764 InitIndleveringskode();
2765 NulstilAutomatiskValg();
2766
2767 end;
2768
2769 procedure TMainForm.PanelValgAClick(Sender: TObject);
2770 begin
2771 // Skal ikke toggle men bare sætte funktionen on
2772 // Fravælges ved at vælge en scanningstype
2773 AutomatiskValg1.Checked := true;
2774 PanelValgA.Color := clGreen;
2775 PanelValgA.Font.Color := clWhite;
2776
2777
2778
2779 end;
2780
2781 procedure TMainForm.Pakkernormal1Click(Sender: TObject);
2782 begin
2783 Scanningtype := '1';
2784 NulstilAutomatiskValg();
2785 InitNatxpresslevering();
2786 end;
2787
2788 procedure TMainForm.Testforbindelsen1Click(Sender: TObject);
2789 var
2790 RuteNummer : String;
2791 Kommentar : String;
2792 BoghandlerNavn : String;
2793 Koreliste : String;
2794 Falsk : Boolean;
2795 SmsKode : String;
2796 DBKbane : String;
2797 Leveringssted : String;
2798 orgTjekUrls : String;
2799 begin
2800 orgTjekUrls := TjekUrls;
2801 if (TjekUrls = '1') or (TjekUrls = '2') then
2802 begin
2803 TjekkerUrls();
2804 end;
2805 if TjekUrls = '-' then
2806 begin
2807 //ShowMessage('Der var fejl i een eller flere urls - se logvinduet');
2808 RuteNummer := '';
2809 Kommentar := 'Se log vinduet';
2810 BoghandlerNavn := 'Fejl i forbindelse til server';
2811 Koreliste := '';
2812 UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
2813 // Her kommer en alarm og rød skærm
2814 PlaySound(PWideChar(AlarmLyd));
2815 MainForm.Color := clRed;
2816 btnNulstil.Visible := true;
2817 end
2818 else
2819 begin
2820 Falsk := False;
2821
2822 HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');
2823 UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
2824 SmsKode := '999999';
2825 DBKbane := '999';
2826 Leveringssted := 'XXX';
2827 PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);
2828 FocusControl(StregkodeST);
2829 end;
2830 TjekUrls := orgTjekUrls;
2831
2832 end;
2833
2834 procedure TMainForm.Testprinter1Click(Sender: TObject);
2835 var
2836 RuteNummer : String;
2837 Kommentar : String;
2838 BoghandlerNavn : String;
2839 Koreliste : String;
2840 Falsk : Boolean;
2841 SmsKode : String;
2842 DBKbane : String;
2843 Leveringssted : String;
2844 begin
2845 RuteNummer := 'Rutenr';
2846 Kommentar := '***** Kommentar *****';
2847 BoghandlerNavn := 'Modtagernavn';
2848 Falsk := False;
2849
2850
2851 if (LabelPrint.GetPrinterCount() = 0) then
2852 begin
2853 ShowMessage('Der er ikke installeret en printer på denne PC.');
2854 end
2855 else if PrinterNavn = 'Ingen' then
2856 begin
2857 ShowMessage('Der er fravalgt printer i dette program.');
2858 end
2859 else
2860 begin
2861 UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
2862 SmsKode := '999999';
2863 DBKbane := '999';
2864 Leveringssted := 'XXX';
2865 PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);
2866 LabelPrint.CheckPrintQue('Test', PrinterNavn);
2867 end;
2868 FocusControl(StregkodeST);
2869 end;
2870
2871 procedure TMainForm.Timer1Timer(Sender: TObject);
2872 begin
2873 if (TjekPrinter = '1') then
2874 begin
2875 LabelPrint.CheckPrintQue('Timer', PrinterNavn);
2876 end
2877 else
2878 begin
2879 PrinterstatusStaticText1.Caption := '';
2880 PrinterstatusStaticText1.Color := MainForm.Color;
2881 end;
2882 end;
2883
2884
2885
2886 procedure TMainForm.Om1Click(Sender: TObject);
2887 const
2888 crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
2889 var
2890 tekst, filversion : String;
2891 begin
2892
2893 filversion := TUtils.Sto_GetFmtFileVersion('');
2894 tekst := 'Program til indscanning af pakker'+crlf+'Version '+filversion+crlf+crlf+'Udviklet af it afdelingen, DAO';
2895
2896 tekst := tekst+crlf+crlf;
2897 tekst := tekst+'Programmet er installeret som:'+crlf+ParamStr(0);
2898 tekst := tekst+crlf;
2899
2900 if SpecialVersionSted = '' then
2901 begin
2902 tekst := tekst+crlf+crlf+'Scanningssted: '+StringReplace(Stednavn, ':', '', [rfReplaceAll, rfIgnoreCase])+' ('+Sted+')';
2903 end;
2904
2905 if SpecialVersionSted <> '' then
2906 begin
2907 if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
2908 begin
2909 if Stednavn = '' then
2910 begin
2911 tekst := tekst+crlf+crlf+'Speciel version til: '+BladhusStedNavn[BladhusSted]+' ('+BladhusStedKode[BladhusSted]+')';
2912 end
2913 else
2914 begin
2915 tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
2916 end;
2917 end
2918 else
2919 begin
2920 tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
2921 end;
2922 end;
2923
2924 if (Pos('omdeling.info',Url) = 0) then
2925 begin
2926 tekst := tekst+crlf+crlf;
2927 tekst := tekst+crlf+crlf+' ********** DETTE ER KUN EN TEST VERSION **********';
2928 tekst := tekst+crlf+crlf;
2929 tekst := tekst+crlf+crlf+'Url: '+url;
2930 end;
2931
2932 MessageBox(Handle, PWideChar(tekst), 'Information', MB_OK);
2933
2934 end;
2935
2936 procedure TMainForm.ListBox1DrawItem(Control: TWinControl; Index: Integer;
2937 Rect: TRect; State: TOwnerDrawState);
2938 var
2939 ListBox1MaxLinLgd,i : Integer;
2940 myColor: TColor;
2941 myBrush: TBrush;
2942 begin
2943 ListBox1MaxLinLgd := 0;
2944 myBrush := TBrush.Create;
2945 with (Control as TListBox).Canvas do
2946 begin
2947 if not Odd(Index) then
2948 myColor := clWhite
2949 else
2950 myColor := clSilver;
2951
2952 if odSelected in State then
2953 begin
2954 myColor := MainForm.Color;
2955 font.Color := clBlack;
2956 end;
2957
2958 myBrush.Style := bsSolid;
2959 myBrush.Color := myColor;
2960 Windows.FillRect(handle, Rect, myBrush.Handle) ;
2961 Brush.Style := bsClear;
2962 TextOut(Rect.Left, Rect.Top,
2963 (Control as TListBox).Items[Index]) ;
2964 MyBrush.Free;
2965 end;
2966
2967 for i := 0 to (ListBox1.Items.Count - 1) do
2968 if (ListBox1.Canvas.TextWidth(ListBox1.Items[i]) > ListBox1MaxLinLgd) then
2969 ListBox1MaxLinLgd := ListBox1.Canvas.TextWidth(ListBox1.Items[i]);
2970 ListBox1.ScrollWidth := ListBox1MaxLinLgd;
2971 end;
2972
2973 procedure TMainForm.Lukprogrammet1Click(Sender: TObject);
2974 begin
2975
2976 Application.Terminate;
2977
2978 end;
2979
2980 procedure TMainForm.Manual1Click(Sender: TObject);
2981 var
2982 fileName : string;
2983 begin
2984 fileName := 'Docs\Manual_' + Scanningtype + '.pdf';
2985
2986 if FileExists(fileName) then
2987 begin
2988 if TUtils.AdobeReaderExists then
2989 begin
2990 //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
2991 ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
2992 end
2993 else
2994 begin
2995 ShowMessage('Acrobat Reader er ikke installeret!');
2996 end;
2997 end
2998 else
2999 begin
3000 ShowMessage('Manualen : ' + #10#13 + fileName + #10#13 + 'blev ikke fundet!');
3001 end;
3002 end;
3003
3004 procedure TMainForm.Manualgenerel1Click(Sender: TObject);
3005 var
3006 fileName : string;
3007 begin
3008 fileName := 'Docs\Manual_0.pdf';
3009
3010 if FileExists(fileName) then
3011 begin
3012 if TUtils.AdobeReaderExists then
3013 begin
3014 //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3015 ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
3016 end
3017 else
3018 begin
3019 ShowMessage('Adobe Reader er ikke installeret!');
3020 end;
3021 end
3022 else
3023 begin
3024 ShowMessage('Manualen : ' + #10#13 + fileName + #10#13 + 'blev ikke fundet!');
3025 end;
3026 end;
3027
3028 procedure TMainForm.menuIndleveringClick(Sender: TObject);
3029 begin
3030 Scanningtype := '7';
3031 NulstilAutomatiskValg();
3032 InitIndleveringskode();
3033 end;
3034
3035 procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);
3036 begin
3037
3038 if Sprgefterboghandlernummer1.Checked then
3039 begin
3040 chkSporgEfterKunde.Checked := true;
3041 end
3042 else
3043 begin
3044 chkSporgEfterKunde.Checked := false;
3045 end;
3046
3047
3048 end;
3049
3050 procedure TMainForm.ReturpakkerfraDAO1Click(Sender: TObject);
3051 begin
3052 Scanningtype := '2';
3053 NulstilAutomatiskValg();
3054 InitReturFraDao();
3055 end;
3056
3057 procedure TMainForm.Returpakkerfrapakkeshop1Click(Sender: TObject);
3058 begin
3059 Scanningtype := '6';
3060 InitReturFraPakkeshop();
3061 NulstilAutomatiskValg();
3062 end;
3063
3064 procedure TMainForm.InitNatxpresslevering();
3065 begin
3066 AutomatiskTjekkodeStyring1.Enabled := true;
3067 btnNulstil.Visible := false;
3068 Pakkernormal1.Checked := true;
3069 InitForm(FarveNormal,TitelNormal,UrlNormal);
3070 PanelValg1.Color := clGreen;
3071 PanelValg1.Font.Color := clWhite;
3072
3073 chkAltidPrintLabel.Enabled := true;
3074 Altidprintepakkelabel1.Enabled := true;
3075 Altidprintepakkelabel1.Checked := false;
3076 chkAltidPrintLabel.Checked := false;
3077 Sprgefterboghandlernummer1.Checked := false;
3078 chkSporgEfterKunde.Checked := false;
3079 Sprgefterboghandlernummer1.Enabled := true;
3080 Smpakker1.Enabled := false;
3081 Storepakker1.Enabled := false;
3082 radioStorPakke.Enabled := false;
3083 radioLillePakke.Enabled := false;
3084 ListBox1.Visible := true;
3085 BtnOpdaterListen.Enabled := true;
3086 BtnEKLoverforsel.Enabled := true;
3087 InitLillePakke();
3088 ListBox1.Items.Clear;
3089 if BladhusSted = 0 then
3090 begin
3091 IndlesScanningLogFil();
3092 IndlesManglendeScanninger();
3093 end;
3094 end;
3095
3096 procedure TMainForm.InitReturFraDao();
3097 begin
3098 AutomatiskTjekkodeStyring1.Enabled := false;
3099 ReturpakkerfraDAO1.Checked := true;
3100 btnNulstil.Visible := false;
3101 InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);
3102 PanelValg2.Color := clGreen;
3103 PanelValg2.Font.Color := clWhite;
3104
3105 chkAltidPrintLabel.Enabled := false;
3106 Altidprintepakkelabel1.Enabled := false;
3107
3108 Altidprintepakkelabel1.Checked := false;
3109 Sprgefterboghandlernummer1.Checked := false;
3110 chkSporgEfterKunde.Checked := false;
3111 Sprgefterboghandlernummer1.Enabled := false;
3112 Smpakker1.Enabled := true;
3113 Storepakker1.Enabled := true;
3114 radioStorPakke.Enabled := true;
3115 radioLillePakke.Enabled := true;
3116 ListBox1.Visible := true;
3117 ListBox1.Items.Clear;
3118 ListBox2.Items.Clear;
3119 BtnEKLoverforsel.Enabled := false;
3120 InitLillePakke();
3121 end;
3122
3123 procedure TMainForm.InitReturFraKunde();
3124 begin
3125 AutomatiskTjekkodeStyring1.Enabled := false;
3126 Returpakkerfraboghandler1.Checked := true;
3127 btnNulstil.Visible := false;
3128 InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);
3129 PanelValg3.Color := clGreen;
3130 PanelValg3.Font.Color := clWhite;
3131
3132 chkAltidPrintLabel.Enabled := false;
3133 Altidprintepakkelabel1.Enabled := false;
3134 Altidprintepakkelabel1.Checked := false;
3135 Sprgefterboghandlernummer1.Checked := false;
3136 chkSporgEfterKunde.Checked := false;
3137 Sprgefterboghandlernummer1.Enabled := false;
3138 Smpakker1.Enabled := true;
3139 Storepakker1.Enabled := true;
3140 radioStorPakke.Enabled := true;
3141 radioLillePakke.Enabled := true;
3142 ListBox1.Visible := true;
3143 ListBox1.Items.Clear;
3144 ListBox2.Items.Clear;
3145 BtnEKLoverforsel.Enabled := false;
3146 InitLillePakke();
3147 end;
3148
3149 procedure TMainForm.InitDirektelevering();
3150 begin
3151 AutomatiskTjekkodeStyring1.Enabled := false;
3152 Budlevering1.Checked := true;
3153 btnNulstil.Visible := false;
3154 InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);
3155 PanelValg4.Color := clGreen;
3156 PanelValg4.Font.Color := clWhite;
3157
3158 chkAltidPrintLabel.Enabled := false;
3159 Altidprintepakkelabel1.Enabled := false;
3160
3161 Altidprintepakkelabel1.Checked := false;
3162 Sprgefterboghandlernummer1.Checked := false;
3163 chkSporgEfterKunde.Checked := false;
3164 Sprgefterboghandlernummer1.Enabled := false;
3165 Smpakker1.Enabled := true;
3166 Storepakker1.Enabled := true;
3167 radioStorPakke.Enabled := true;
3168 radioLillePakke.Enabled := true;
3169 ListBox1.Visible := true;
3170 ListBox1.Items.Clear;
3171 BtnDownloadKontrolfil.Enabled := false;
3172 BtnOpdaterListen.Enabled := true;
3173 BtnDownloadRuteskiftFil.Visible := false;
3174 BtnEKLoverforsel.Enabled := false;
3175 IdFTP1.Passive := true;
3176 IdFTP1.PassiveUseControlHost := true;
3177 if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then
3178 begin
3179 IndlesScanningLogFil();
3180 IndlesManglendeScanninger();
3181 end;
3182
3183 end;
3184
3185 procedure TMainForm.InitPakkeshoplevering();
3186 begin
3187 AutomatiskTjekkodeStyring1.Enabled := true;
3188 Pakkeshoplevering1.Checked := true;
3189 btnNulstil.Visible := false;
3190 InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);
3191 PanelValg5.Color := clGreen;
3192 PanelValg5.Font.Color := clWhite;
3193
3194 chkAltidPrintLabel.Enabled := false;
3195 Altidprintepakkelabel1.Enabled := false;
3196
3197 Altidprintepakkelabel1.Checked := false;
3198 Sprgefterboghandlernummer1.Checked := false;
3199 chkSporgEfterKunde.Checked := false;
3200 Sprgefterboghandlernummer1.Enabled := false;
3201 Smpakker1.Enabled := false;
3202 Storepakker1.Enabled := false;
3203 radioStorPakke.Enabled := false;
3204 radioLillePakke.Enabled := false;
3205 ListBox1.Visible := true;
3206 ListBox1.Items.Clear;
3207 BtnDownloadKontrolfil.Enabled := false;
3208 BtnOpdaterListen.Enabled := true;
3209
3210 BtnEKLoverforsel.Enabled := true;
3211
3212 InitLillePakke();
3213 IndlesScanningLogFil();
3214 if BladhusSted = 0 then
3215 begin
3216 IndlesManglendeScanninger();
3217 end;
3218 IdFTP1.Passive := true;
3219 IdFTP1.PassiveUseControlHost := true;
3220 end;
3221
3222 procedure TMainForm.InitReturFraPakkeshop();
3223 begin
3224 AutomatiskTjekkodeStyring1.Enabled := false;
3225 Returpakkerfrapakkeshop1.Checked := true;
3226 btnNulstil.Visible := false;
3227 InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);
3228 PanelValg6.Color := clGreen;
3229 PanelValg6.Font.Color := clWhite;
3230
3231 chkAltidPrintLabel.Enabled := false;
3232 Altidprintepakkelabel1.Enabled := false;
3233
3234 Altidprintepakkelabel1.Checked := false;
3235 Sprgefterboghandlernummer1.Checked := false;
3236 chkSporgEfterKunde.Checked := false;
3237 Sprgefterboghandlernummer1.Enabled := false;
3238 Smpakker1.Enabled := false;
3239 Storepakker1.Enabled := false;
3240 radioStorPakke.Enabled := false;
3241 radioLillePakke.Enabled := false;
3242 ListBox1.Visible := true;
3243 ListBox1.Items.Clear;
3244 BtnDownloadKontrolfil.Enabled := false;
3245 BtnOpdaterListen.Enabled := true;
3246 BtnEKLoverforsel.Enabled := false;
3247 InitLillePakke();
3248 IndlesScanningLogFil();
3249 if BladhusSted = 0 then
3250 begin
3251 IndlesManglendeScanninger();
3252 end;
3253 IdFTP1.Passive := true;
3254 IdFTP1.PassiveUseControlHost := true;
3255 end;
3256
3257 procedure TMainForm.Returpakkerfraboghandler1Click(Sender: TObject);
3258 begin
3259 Scanningtype := '3';
3260 NulstilAutomatiskValg();
3261 InitReturFraKunde();
3262 end;
3263
3264 procedure TMainForm.InitIndleveringskode();
3265 begin
3266 menuIndlevering.Checked := true;
3267 AutomatiskTjekkodeStyring1.Enabled := false;
3268
3269 btnNulstil.Visible := false;
3270 InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);
3271 PanelValg7.Color := clGreen;
3272 PanelValg7.Font.Color := clWhite;
3273
3274 chkAltidPrintLabel.Enabled := false;
3275 Altidprintepakkelabel1.Enabled := false;
3276
3277 Altidprintepakkelabel1.Checked := false;
3278 Sprgefterboghandlernummer1.Checked := false;
3279 Sprgefterboghandlernummer1.Enabled := false;
3280 chkSporgEfterKunde.Checked := false;
3281
3282
3283
3284 Smpakker1.Enabled := false;
3285 Storepakker1.Enabled := false;
3286 radioStorPakke.Enabled := false;
3287 radioLillePakke.Enabled := false;
3288 ListBox1.Visible := true;
3289 ListBox1.Items.Clear();
3290
3291 BtnDownloadKontrolfil.Enabled := false;
3292 BtnOpdaterListen.Enabled := true;
3293 BtnEKLoverforsel.Enabled := false;
3294 InitLillePakke();
3295 IndlesScanningLogFil();
3296 if BladhusSted = 0 then
3297 begin
3298 IndlesManglendeScanninger();
3299 end;
3300 IdFTP1.Passive := true;
3301 IdFTP1.PassiveUseControlHost := true;
3302 end;
3303
3304
3305 procedure TMainForm.Storepakker1Click(Sender: TObject);
3306 begin
3307 InitStorPakke();
3308 end;
3309
3310 procedure TMainForm.Smpakker1Click(Sender: TObject);
3311 begin
3312 InitLillePakke();
3313 end;
3314
3315 procedure TMainForm.InitLillePakke();
3316 begin
3317 radioLillePakke.Checked := true;
3318 Smpakker1.Checked := true;
3319 // Stregkode := '';
3320 end;
3321
3322 procedure TMainForm.InitStorPakke();
3323 begin
3324 radioStorPakke.Checked := true;
3325 Storepakker1.Checked := true;
3326 // 20150310: start
3327 // Stregkode := '';
3328 // 20150310: slut
3329 end;
3330
3331
3332
3333 procedure TMainForm.PlaySound(filename : PWideChar);
3334 begin
3335 if (filename <> '') then
3336 begin
3337 sndPlaySound(filename,
3338 SND_NODEFAULT Or SND_ASYNC);
3339 end;
3340 end;
3341
3342 procedure TMainForm.Testlyd1Click(Sender: TObject);
3343 begin
3344 if AlarmLyd <> '' then
3345 begin
3346 PlaySound(PWideChar(AlarmLyd));
3347 end
3348 else
3349 begin
3350 MessageBox(Handle, PWideChar('Lyd fil ikke fundet (alarm)'), 'Information', MB_OK);
3351 end;
3352 end;
3353
3354 procedure TMainForm.Testlyd2Click(Sender: TObject);
3355 begin
3356 if (PakkeshopText1.Caption = 'Tjekkode') then
3357 begin
3358 if ScannetOkTilTjekkodeLyd <> '' then
3359 begin
3360 PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));
3361 end
3362 else
3363 begin
3364 MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkTilTjekkodeLyd)'), 'Information', MB_OK);
3365 end;
3366 exit;
3367 end;
3368
3369 if Smpakker1.Checked then
3370 if ScannetOkLyd <> '' then
3371 begin
3372 PlaySound(PWideChar(ScannetOkLyd));
3373 end
3374 else
3375 begin
3376 MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);
3377 end;
3378 if Storepakker1.Checked then
3379 if ScannetOkStorLyd <> '' then
3380 begin
3381 PlaySound(PWideChar(ScannetOkStorLyd));
3382 end
3383 else
3384 begin
3385 MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);
3386 end;
3387 end;
3388
3389
3390 procedure TMainForm.Budlevering1Click(Sender: TObject);
3391 begin
3392 Scanningtype := '4';
3393 NulstilAutomatiskValg();
3394 InitDirektelevering();
3395 end;
3396
3397 procedure TMainForm.Button1Click(Sender: TObject);
3398 begin;
3399 CheckCode();
3400 end;
3401
3402 procedure TMainForm.BtnEKLoverforselClick(Sender: TObject);
3403 var
3404 WebSvar : String;
3405 URLStr : String;
3406 StedKode : String;
3407 Node: IXMLNode;
3408 I: Integer;
3409 status, kommentar : String;
3410
3411 begin
3412 BtnEKLoverforsel.Enabled := false;
3413
3414 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Overfører de scannede pakker til EKL');
3415 logTekst := 'Overfører de scannede pakker til EKL';
3416 SkrivScanningLogFil(logTekst);
3417 StedKode := Sted;
3418 URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);
3419
3420 if PanelValg5.Color = clGreen then
3421 begin
3422 URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);
3423 end;
3424
3425
3426 try
3427 //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
3428 WebSvar := IdHTTP1.Get(URLStr);
3429 except
3430 on e:EIdConnClosedGracefully do
3431 begin
3432 // Her skal vi ikke gøre noget - men vi skal forespørge igen
3433 WebSvar := IdHTTP1.Get(URLStr);
3434 end;
3435 on e:exception do
3436 begin
3437 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Fejl i web forespørgsel: '+e.Message);
3438 logTekst := 'Fejl i web forespørgsel: '+e.Message;
3439 SkrivScanningLogFil(logTekst);
3440 raise exception.CreateFmt('Fejl i web forespørgsel: %s',[e.Message]);
3441 end;
3442 end;
3443 try
3444 XMLDocument1.LoadFromXML(WebSvar);
3445 for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
3446 Node:= XMLDocument1.DocumentElement.ChildNodes[I];
3447 if Node.NodeType = ntElement then begin
3448 if Node.NodeName = 'Status' then begin
3449 if not VarIsNull(Node.NodeValue) then
3450 status := Node.NodeValue;
3451 end;
3452 if Node.NodeName = 'Kommentar' then begin
3453 if not VarIsNull(Node.NodeValue) then
3454 kommentar := Node.NodeValue;
3455 end;
3456 end;
3457 end;
3458
3459 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Overførsel til EKL: ' + status+' '+kommentar);
3460 logTekst := 'Overførsel til EKL: ' + status;
3461 SkrivScanningLogFil(logTekst);
3462
3463 except on e:exception do
3464 begin
3465 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Overførsel til EKL: ' + status);
3466 logTekst := 'Overførsel til EKL: ' + status;
3467 SkrivScanningLogFil(logTekst);
3468 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Fejl i XML-format: '+e.Message);
3469 logTekst := 'Fejl i XML-format: '+e.Message;
3470 SkrivScanningLogFil(logTekst);
3471 raise exception.CreateFmt('Fejl i XML-format: %s',[e.Message]);
3472 end;
3473 end;
3474
3475 BtnEKLoverforsel.Enabled := true;
3476
3477 ListBox1.SetFocus; // for at flytte fokus væk fra knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
3478
3479 // Hvis der var fejl i overførslen skal dette fejlmeldes her
3480 if status = 'Fejl' then
3481 begin // Her skal komme en alarm og rød skærm
3482 PlaySound(PWideChar(AlarmLyd));
3483 MainForm.Color := clRed;
3484 RutenummerST.Caption := 'EKL overførsel';
3485 BoghandlerNavnST.Caption := 'Fejl:';
3486 if (pos('Deadlock', Kommentar) > 0) then
3487 begin
3488 RutenummerST.Caption := 'EKL overførsel fejlet';
3489 BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';
3490 end;
3491 KommentarST.Caption := Kommentar;
3492 btnNulstil.Visible := true;
3493 end;
3494
3495 end;
3496
3497 procedure TMainForm.CheckCode();
3498 var
3499 Barcode, Svar : String;
3500 ClickedOK : Boolean;
3501 begin
3502 ClickedOK := InputQuery('Barcode check', 'Indtast stregkode', Barcode);
3503 if ClickedOk then
3504 begin
3505 { if (BarCodeValid(Barcode)) then
3506 MessageBox(Handle, 'ok', 'Stregkode', MB_OK)
3507 else
3508 MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);
3509 }
3510 // MessageBox(Handle, PAnsiChar(CheckSumModulo10(Barcode)), 'Stregkode', MB_OK);
3511 { if (CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1)) = Barcode) then
3512 MessageBox(Handle, 'ok', 'Stregkode', MB_OK)
3513 else
3514 MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);
3515 }
3516 Svar := 'Beregnet: ' + TUtils.CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;
3517
3518 MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);
3519 CheckCode();
3520 end;
3521
3522 end;
3523
3524
3525 //
3526 // Bladhus ***
3527 //
3528 procedure TMainForm.DownloadBladhusRuteskiftfil();
3529 const
3530 crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
3531
3532 var
3533 filnavn_input : string;
3534 filnavn_output : string;
3535 buttonSelected : Integer;
3536
3537 begin
3538 filnavn_input := BladhusRuteskiftfil_server; // hvis filen ikke findes vises 'no such file or directory'
3539 filnavn_output := BladhusRuteskiftfil_lokal;
3540
3541 case BladhusSted of
3542 00 : begin;
3543 end;
3544 01 : begin;
3545 buttonSelected := MessageDlg('Henter ruteskift filen ' + filnavn_input + ' fra DAO ftp server',mtConfirmation, mbOKCancel, 0);
3546 if buttonSelected = mrOK then
3547 begin
3548 ListBox1.Items.Insert(0,TimeToStr(now) + ': Henter ' + filnavn_input + ' fra DAO ftp serveren.');
3549 logTekst := 'Henter ' + filnavn_input + ' fra DAO ftp serveren.';
3550 SkrivScanningLogFil(logTekst);
3551 try
3552 try
3553
3554 IdFTP1.host:='ftp.daoas.dk'; // hvis forkert vises 'socket error # 11001 host not found'
3555 IdFTP1.Username:='nordjyske'; // hvis forkert vises 'login incorrect'
3556 IdFTP1.Password:='kew3ma9u'; // hvis forkert vises 'login incorrect'
3557 IdFTP1.Connect;
3558
3559 //IdFTP1.TransferType := ftASCII;
3560 // IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3561 try
3562 //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
3563 IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3564 except on e:EIdConnClosedGracefully do
3565 begin
3566 // Her skal vi ikke gøre noget - men vi skal forespørge igen
3567 IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3568 end;
3569 end;
3570 // hvis 3. parameter er false (filen må ikke overskrives) vises 'Destination file already exists' hvis filen findes på disken
3571
3572 ListBox1.Items.Insert(0,TimeToStr(now) + ': Ruteskift fil gemt lokalt som ' + filnavn_output + '.');
3573 logTekst := 'Ruteskift fil gemt lokalt som ' + filnavn_output + '.';
3574 SkrivScanningLogFil(logTekst);
3575
3576 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Ruteskift fil tjekkes.');
3577 logTekst := 'Ruteskift fil tjekkes.';
3578 SkrivScanningLogFil(logTekst);
3579
3580 finally
3581 IdFTP1.Disconnect;
3582 end;
3583
3584 except on e:exception do
3585 begin
3586 ListBox1.Items.Insert(0,TimeToStr(now) + ': Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username);
3587 logTekst := 'Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username;
3588 SkrivScanningLogFil(logTekst);
3589 raise exception.CreateFmt('Fejl i FTP handling:'+ CrLf + '%s',
3590 [e.Message
3591 + CrLf + 'Host: '+IdFTP1.host
3592 + CrLf + 'Username: '+IdFTP1.Username
3593 ]
3594 );
3595 end;
3596 end;
3597 end
3598 else
3599 begin
3600 ListBox1.Items.Insert(0,TimeToStr(now) + ': Download af ruteskiftfil annulleret.');
3601 logTekst := 'Download af ruteskiftfil annulleret';
3602 SkrivScanningLogFil(logTekst);
3603 end;
3604 IndlesRuteskiftFil(filnavn_output);
3605 end;
3606 02 : begin;
3607 end;
3608 03 : begin;
3609 buttonSelected := MessageDlg('Henter ruteskift filen ' + filnavn_input + ' fra DAO ftp server',mtConfirmation, mbOKCancel, 0);
3610 if buttonSelected = mrOK then
3611 begin
3612 ListBox1.Items.Insert(0,TimeToStr(now) + ': Henter ' + filnavn_input + ' fra DAO ftp serveren.');
3613 logTekst := 'Henter ' + filnavn_input + ' fra DAO ftp serveren.';
3614 SkrivScanningLogFil(logTekst);
3615 try
3616 try
3617
3618 IdFTP1.host:='ftp.daoas.dk'; // hvis forkert vises 'socket error # 11001 host not found'
3619 IdFTP1.Username:='fd'; // hvis forkert vises 'login incorrect'
3620 IdFTP1.Password:='pu4aphedre'; // hvis forkert vises 'login incorrect'
3621 IdFTP1.Connect;
3622
3623 //IdFTP1.TransferType := ftASCII;
3624 // IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3625 try
3626 //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
3627 IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3628 except on e:EIdConnClosedGracefully do
3629 begin
3630 // Her skal vi ikke gøre noget - men vi skal forespørge igen
3631 IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3632 end;
3633 end;
3634 // hvis 3. parameter er false (filen må ikke overskrives) vises 'Destination file already exists' hvis filen findes på disken
3635
3636 ListBox1.Items.Insert(0,TimeToStr(now) + ': Rute ruteskift fil gemt lokalt som ' + filnavn_output + '.');
3637 logTekst := 'Ruteskift fil gemt lokalt som ' + filnavn_output + '.';
3638 SkrivScanningLogFil(logTekst);
3639
3640 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Ruteskift fil tjekkes.');
3641 logTekst := 'Ruteskift fil tjekkes.';
3642 SkrivScanningLogFil(logTekst);
3643
3644 finally
3645 IdFTP1.Disconnect;
3646 end;
3647
3648 except on e:exception do
3649 begin
3650 ListBox1.Items.Insert(0,TimeToStr(now) + ': Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username);
3651 logTekst := 'Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username;
3652 SkrivScanningLogFil(logTekst);
3653 raise exception.CreateFmt('Fejl i FTP handling:'+ CrLf + '%s',
3654 [e.Message
3655 + CrLf + 'Host: '+IdFTP1.host
3656 + CrLf + 'Username: '+IdFTP1.Username
3657 ]
3658 );
3659 end;
3660 end;
3661 end
3662 else
3663 begin
3664 ListBox1.Items.Insert(0,TimeToStr(now) + ': Download af ruteskiftfil annulleret.');
3665 logTekst := 'Download af ruteskiftfil annulleret';
3666 SkrivScanningLogFil(logTekst);
3667 end;
3668 IndlesRuteskiftFil(filnavn_output);
3669 end;
3670 04 : begin;
3671 end;
3672 else
3673 ShowMessage('Ukendt Bladhus sted: ' + IntToStr(BladhusSted));
3674 end;
3675
3676 end;
3677
3678 procedure TMainForm.DownloadBladhusKontrolfil();
3679 const
3680 crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
3681
3682 var
3683 filnavn_input : string;
3684 filnavn_output : string;
3685 buttonSelected : Integer;
3686
3687 begin
3688 filnavn_input := BladhusKontrolfil_server; // hvis filen ikke findes vises 'no such file or directory'
3689 filnavn_output := BladhusKontrolfil_lokal;
3690
3691 case BladhusSted of
3692 01 :
3693 begin;
3694 buttonSelected := MessageDlg('Henter rute kontrol filen ' + filnavn_input + ' fra DAO ftp server',mtConfirmation, mbOKCancel, 0);
3695 if buttonSelected = mrOK then
3696 begin
3697 ListBox1.Items.Insert(0,TimeToStr(now) + ': Henter ' + filnavn_input + ' fra DAO ftp serveren.');
3698 logTekst := 'Henter ' + filnavn_input + ' fra DAO ftp serveren.';
3699 SkrivScanningLogFil(logTekst);
3700 try
3701 try
3702
3703 IdFTP1.host:='ftp.daoas.dk'; // hvis forkert vises 'socket error # 11001 host not found'
3704 IdFTP1.Username:='nordjyske'; // hvis forkert vises 'login incorrect'
3705 IdFTP1.Password:='kew3ma9u'; // hvis forkert vises 'login incorrect'
3706 IdFTP1.Connect;
3707
3708 //IdFTP1.TransferType := ftASCII;
3709 // IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3710 try
3711 //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
3712 IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3713 except on e:EIdConnClosedGracefully do
3714 begin
3715 // Her skal vi ikke gøre noget - men vi skal forespørge igen
3716 IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3717 end;
3718 end;
3719 // hvis 3. parameter er false (filen må ikke overskrives) vises 'Destination file already exists' hvis filen findes på disken
3720
3721 ListBox1.Items.Insert(0,TimeToStr(now) + ': Rute kontrol fil gemt lokalt som ' + filnavn_output + '.');
3722 logTekst := 'Rute kontrol fil gemt lokalt som ' + filnavn_output + '.';
3723 SkrivScanningLogFil(logTekst);
3724
3725 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Rute kontrol fil tjekkes.');
3726 logTekst := 'Rute kontrol fil tjekkes.';
3727 SkrivScanningLogFil(logTekst);
3728
3729 finally
3730 IdFTP1.Disconnect;
3731 end;
3732
3733 except on e:exception do
3734 begin
3735 ListBox1.Items.Insert(0,TimeToStr(now) + ': Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username);
3736 logTekst := 'Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username;
3737 SkrivScanningLogFil(logTekst);
3738 raise exception.CreateFmt('Fejl i FTP handling:'+ CrLf + '%s',
3739 [e.Message
3740 + CrLf + 'Host: '+IdFTP1.host
3741 + CrLf + 'Username: '+IdFTP1.Username
3742 ]
3743 );
3744 end;
3745 end;
3746 end
3747 else
3748 begin
3749 ListBox1.Items.Insert(0,TimeToStr(now) + ': Download af kontrolfil annulleret.');
3750 logTekst := 'Download af kontrolfil annulleret';
3751 SkrivScanningLogFil(logTekst);
3752 end;
3753 IndlesKontrolFil(filnavn_output);
3754 end;
3755 02 : begin;
3756 end;
3757 03 : begin;
3758 buttonSelected := MessageDlg('Henter rute kontrol filen ' + filnavn_input + ' fra DAO ftp server',mtConfirmation, mbOKCancel, 0);
3759 if buttonSelected = mrOK then
3760 begin
3761 ListBox1.Items.Insert(0,TimeToStr(now) + ': Henter ' + filnavn_input + ' fra DAO ftp serveren.');
3762 logTekst := 'Henter ' + filnavn_input + ' fra DAO ftp serveren.';
3763 SkrivScanningLogFil(logTekst);
3764 try
3765 try
3766
3767 IdFTP1.host:='ftp.daoas.dk'; // hvis forkert vises 'socket error # 11001 host not found'
3768 IdFTP1.Username:='fd'; // hvis forkert vises 'login incorrect'
3769 IdFTP1.Password:='pu4aphedre'; // hvis forkert vises 'login incorrect'
3770 IdFTP1.Connect;
3771
3772 //IdFTP1.TransferType := ftASCII;
3773 IdFTP1.Get(filnavn_input, filnavn_output, True, False);
3774 // hvis 3. parameter er false (filen må ikke overskrives) vises 'Destination file already exists' hvis filen findes på disken
3775
3776 ListBox1.Items.Insert(0,TimeToStr(now) + ': Rute kontrol fil gemt lokalt som ' + filnavn_output + '.');
3777 logTekst := 'Rute kontrol fil gemt lokalt som ' + filnavn_output + '.';
3778 SkrivScanningLogFil(logTekst);
3779
3780 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Rute kontrol fil tjekkes.');
3781 logTekst := 'Rute kontrol fil tjekkes.';
3782 SkrivScanningLogFil(logTekst);
3783
3784 finally
3785 IdFTP1.Disconnect;
3786 end;
3787
3788 except on e:exception do
3789 begin
3790 ListBox1.Items.Insert(0,TimeToStr(now) + ': Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username);
3791 logTekst := 'Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username;
3792 SkrivScanningLogFil(logTekst);
3793 raise exception.CreateFmt('Fejl i FTP handling:'+ CrLf + '%s',
3794 [e.Message
3795 + CrLf + 'Host: '+IdFTP1.host
3796 + CrLf + 'Username: '+IdFTP1.Username
3797 ]
3798 );
3799 end;
3800 end;
3801 end
3802 else
3803 begin
3804 ListBox1.Items.Insert(0,TimeToStr(now) + ': Download af kontrolfil annulleret.');
3805 logTekst := 'Download af kontrolfil annulleret';
3806 SkrivScanningLogFil(logTekst);
3807 end;
3808 IndlesKontrolFil(filnavn_output);
3809 end;
3810 04 : begin;
3811 end;
3812 else
3813 ShowMessage('Ukendt Bladhus sted ???') ;
3814 end;
3815
3816 end;
3817
3818 procedure TMainForm.SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);
3819 const
3820 crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
3821
3822 var
3823 testsystem : String;
3824
3825 begin
3826 testsystem := '';
3827 if (Pos('omdeling.info',Url) = 0) then
3828 begin
3829 testsystem := 'TEST_';
3830 end;
3831 filnavn_output := testsystem + filnavn_output;
3832
3833 ListBox1.Items.Insert(0,TimeToStr(now) + ': Sender ' + filnavn_input + ' til DAO ftp serveren.');
3834 logTekst := 'Sender ' + filnavn_input + ' til DAO ftp serveren.';
3835 SkrivScanningLogFil(logTekst);
3836 try
3837 try
3838
3839 IdFTP1.host:='ftp.daoas.dk'; // hvis forkert vises 'socket error # 11001 host not found'
3840 IdFTP1.Username:='scannerprogram'; // hvis forkert vises 'login incorrect'
3841 IdFTP1.Password:='DaoScan2015'; // hvis forkert vises 'login incorrect'
3842 IdFTP1.Connect;
3843
3844 //IdFTP1.TransferType := ftASCII;
3845 try
3846 //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
3847 IdFTP1.ChangeDir('fraScannerprogram');
3848 IdFTP1.Put(filnavn_input, filnavn_output, True);
3849 except on e:EIdConnClosedGracefully do
3850 begin
3851 // Her skal vi ikke gøre noget - men vi skal forespørge igen
3852 IdFTP1.Put(filnavn_input, filnavn_output, True);
3853 end;
3854 end;
3855 // hvis 3. parameter er false (filen må ikke overskrives) vises 'Destination file already exists' hvis filen findes på disken
3856
3857 logTekst := fil_type + ' fil sendt til DAO som ' + filnavn_output + '.';
3858 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
3859 SkrivScanningLogFil(logTekst);
3860
3861 finally
3862 IdFTP1.Disconnect;
3863 end;
3864
3865 except on e:exception do
3866 begin
3867 ListBox1.Items.Insert(0,TimeToStr(now) + ': Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username);
3868 logTekst := 'Fejl i FTP handling: ' + e.Message + ' Host: '+IdFTP1.host + ' Username: '+IdFTP1.Username;
3869 SkrivScanningLogFil(logTekst);
3870 raise exception.CreateFmt('Fejl i FTP handling:'+ CrLf + '%s',
3871 [e.Message
3872 + CrLf + 'Host: '+IdFTP1.host
3873 + CrLf + 'Username: '+IdFTP1.Username
3874 ]
3875 );
3876 end;
3877 end;
3878 end;
3879
3880 procedure TMainForm.UploadLogfilTilDAO();
3881 const
3882 crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
3883
3884 var
3885 idag, imorgen : TDateTime;
3886 imorgenYmd : string;
3887 logFilnavn : string;
3888 filnavn_input : string;
3889 filnavn_output : string;
3890 buttonSelected : Integer;
3891 openDialog : TOpenDialog;
3892
3893 begin
3894 idag := Now;
3895 imorgen := IncDay(idag, 1); //adds 1 day(s)
3896 // Hvis vi er efter midnat og inden middag skal vi bruge dagsdato som imorgen
3897 if (FormatDateTime('hh:nn',idag) < '12:00') then
3898 begin
3899 imorgen := idag;
3900 end;
3901 imorgenYmd := FormatDateTime('_yyyymmdd',imorgen);
3902 logFilnavn := 'Logs/' + 'Scanning' + imorgenYmd + '.log';
3903 filnavn_input := logFilnavn; // hvis filen ikke findes vises 'no such file or directory'
3904 filnavn_output := Sted + '_Scanning' + imorgenYmd + '_' + FormatDateTime('hhmmss',idag) + '.log';
3905
3906 buttonSelected := MessageDlg('Sender den aktuelle log fil (' + filnavn_input + ') til DAO ftp server',mtConfirmation, mbOKCancel, 0);
3907 if buttonSelected = mrOK then
3908 begin
3909 SendFilTilDao('Log', filnavn_input, filnavn_output);
3910 end
3911 else
3912 begin
3913 buttonSelected := MessageDlg('Vil du sende en anden logfil til DAO ftp server',mtConfirmation, mbOKCancel, 0);
3914 if buttonSelected = mrOK then
3915 begin
3916 // Create the open dialog object - assign to our open dialog variable
3917 openDialog := TOpenDialog.Create(self);
3918
3919 // Set up the starting directory to be the current one
3920 openDialog.InitialDir := GetCurrentDir + '\Logs';
3921
3922 // Only allow existing files to be selected
3923 openDialog.Options := [ofFileMustExist];
3924
3925 // Allow only .log files to be selected
3926 openDialog.Filter := 'Log filer|*.log';
3927
3928 // Display the open file dialog
3929 if openDialog.Execute then
3930 begin
3931 filnavn_input := openDialog.FileName; // hvis filen ikke findes vises 'no such file or directory'
3932 filnavn_output := Sted + '_Scanning' + imorgenYmd + '_' + FormatDateTime('hhmmss',idag) + '.log';
3933 SendFilTilDao('Log', filnavn_input, filnavn_output);
3934 end
3935 else
3936 begin
3937 logTekst := 'Upload af log fil annulleret';
3938 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
3939 SkrivScanningLogFil(logTekst);
3940 end;
3941
3942 // Free up the dialog
3943 openDialog.Free;
3944 end
3945 else
3946 begin
3947 logTekst := 'Upload af log fil annulleret';
3948 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
3949 SkrivScanningLogFil(logTekst);
3950 end;
3951 end;
3952
3953 end;
3954
3955 procedure TMainForm.UploadInifilTilDAO();
3956 const
3957 crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
3958
3959 var
3960 idag, imorgen : TDateTime;
3961 imorgenYmd : string;
3962 iniFilnavn : string;
3963 filnavn_input : string;
3964 filnavn_output : string;
3965 buttonSelected : Integer;
3966
3967 begin
3968 idag := Now;
3969 imorgen := IncDay(idag, 1); //adds 1 day(s)
3970 // Hvis vi er efter midnat og inden middag skal vi bruge dagsdato som imorgen
3971 if (FormatDateTime('hh:nn',idag) < '12:00') then
3972 begin
3973 imorgen := idag;
3974 end;
3975 imorgenYmd := FormatDateTime('_yyyymmdd',imorgen);
3976 iniFilnavn := ChangeFileExt(ExtractFileName(ExtractFileName(ParamStr(0))), '.ini');
3977 filnavn_input := iniFilnavn; // hvis filen ikke findes vises 'no such file or directory'
3978 filnavn_output := Sted + '_Scanning' + imorgenYmd + '_' + FormatDateTime('hhmmss',idag) + '.ini';
3979
3980 buttonSelected := MessageDlg('Sender ini filen ' + filnavn_input + ' til DAO ftp server',mtConfirmation, mbOKCancel, 0);
3981 if buttonSelected = mrOK then
3982 begin
3983 SendFilTilDao('Ini', filnavn_input, filnavn_output);
3984 end
3985 else
3986 begin
3987 logTekst := 'Upload af ini fil annulleret';
3988 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
3989 SkrivScanningLogFil(logTekst);
3990 end;
3991
3992 end;
3993
3994 procedure TMainForm.Uploadlogfil1Click(Sender: TObject);
3995 begin
3996 UploadLogfilTilDAO();
3997 UploadInifilTilDAO();
3998 ListBox1.SetFocus; // for at flytte fokus væk fra upload knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
3999 end;
4000
4001 procedure TMainForm.BtnDownloadKontrolfilClick(Sender: TObject);
4002 begin
4003 DownloadBladhusKontrolfil();
4004 ListBox1.SetFocus; // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4005 end;
4006
4007 procedure TMainForm.BtnOpdaterListenClick(Sender: TObject);
4008 const
4009 crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed
4010
4011 begin
4012 IndlesManglendeScanninger();
4013 ListBox1.SetFocus; // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4014 end;
4015
4016 procedure TMainForm.BtnDownloadRuteskiftFilClick(Sender: TObject);
4017 begin
4018 if (getProddag() = 'lørdag') then
4019 begin
4020 DownloadBladhusRuteskiftfil();
4021 end;
4022 ListBox1.SetFocus; // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4023 end;
4024
4025
4026
4027 procedure TMainForm.IndlesManglendeScanninger();
4028 var
4029 WebSvar : String;
4030 URLStr : String;
4031 StedKode : String;
4032 Node: IXMLNode;
4033 I: Integer;
4034 stregkode, modtagernavn, modtageradresse, kommentar : string;
4035 pakketype, tjekkodestatus : String;
4036 pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;
4037 pakketyper : TStrings;
4038 antlin : Integer;
4039
4040 antlinIdag, antlinSenere : Integer;
4041
4042 XmlFelter : TStrings;
4043
4044 begin
4045 XmlFelter := TStringList.Create;
4046 pakketyper := TStringList.Create;
4047 linienr := 0;
4048 ListBox2.Clear;
4049 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Henter oversigt over pakker der endnu ikke er modtaget');
4050 logTekst := 'Henter oversigt over pakker der endnu ikke er modtaget';
4051 SkrivScanningLogFil(logTekst);
4052 if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
4053 begin
4054 StedKode := BladhusStedKode[BladhusSted];
4055 end
4056 else
4057 begin
4058 StedKode := Sted;
4059 end;
4060
4061
4062
4063 if (Scanningtype = '7') then
4064 begin
4065 URLStr := Format(UrlIndleveringsPakkeManglendeScanninger, [StedKode]);
4066 end
4067 else if (Scanningtype = '6') then
4068 begin
4069 URLStr := Format(UrlPakkeshopManglendeReturScanninger, [StedKode]);
4070 end
4071 else if (Scanningtype = '5') then
4072 begin
4073 URLStr := Format(UrlPakkeshopManglendeScanninger, [StedKode]);
4074 end
4075 else if (Scanningtype = '1') then
4076 begin
4077 URLStr := Format(UrlManglendeScanninger,[StedKode,'B2']);
4078 end
4079 else if (Scanningtype = '4') then
4080 begin
4081 URLStr := Format(UrlManglendeScanninger,[StedKode,'A2']); // Budleveringer
4082 end
4083 else
4084 begin
4085 exit;
4086 end;
4087 // 20150310: slut
4088
4089 try
4090 //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST
4091 // URLStr := string(Utf8Encode(URLStr));
4092 WebSvar := IdHTTP1.Get(URLStr);
4093 except
4094 on e:EIdConnClosedGracefully do
4095 begin
4096 // Her skal vi ikke gøre noget - men vi skal forespørge igen
4097 WebSvar := IdHTTP1.Get(URLStr);
4098 end;
4099 on e:exception do
4100 begin
4101 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Fejl i web forespørgsel: '+e.Message);
4102 logTekst := 'Fejl i web forespørgsel: '+e.Message;
4103 SkrivScanningLogFil(logTekst);
4104 raise exception.CreateFmt('Fejl i web forespørgsel: %s',[e.Message]);
4105 end;
4106 end;
4107 try
4108 XMLDocument1.LoadFromXML(WebSvar);
4109
4110
4111 antlin := 0;
4112 antlinIdag := 0;
4113 antlinSenere := 0;
4114
4115 for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4116 Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4117 if Node.NodeType = ntElement then begin
4118 if Node.NodeName = 'Stregkode' then
4119 begin
4120 antlin := antlin + 1;
4121 // 20150306: start
4122 if not VarIsNull(Node.NodeValue) then
4123 begin
4124 if (pos('(', Node.NodeValue) = 0) then
4125 begin
4126 antlinIdag := antlinIdag + 1;
4127 end
4128 else
4129 begin
4130 antlinSenere := antlinSenere + 1;
4131 end;
4132 end;
4133 // 20150306: slut
4134 end;
4135 end;
4136 if (XmlFelter.values[Node.NodeName] <> '') then
4137 XmlFelter.values[Node.NodeName] := IntToStr(StrToInt(XmlFelter.values[Node.NodeName]) + 1)
4138 else
4139 XmlFelter.values[Node.NodeName] := '1';
4140
4141 end;
4142 antalLiniefelter := XmlFelter.Count;
4143 antalFelterFundet := 0;
4144 SetLength(stregkoderMedTjekkodeArray, 0); // reset fra tidligere brug
4145 SetLength(stregkoderMedTjekkodeArray, antlin); // sæt antal elementer i array
4146
4147 logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4148 if (antlinSenere > 0) then
4149 begin
4150 logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';
4151 end;
4152 logTekst := logTekst + '.';
4153
4154 SkrivScanningLogFil(logTekst);
4155 for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4156 Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4157 if Node.NodeType = ntElement then begin
4158 if Node.NodeName = 'Stregkode' then begin
4159 if not VarIsNull(Node.NodeValue) then
4160 stregkode := Node.NodeValue;
4161 antalFelterFundet := antalFelterFundet + 1;
4162 end;
4163 if Node.NodeName = 'ModtagerNavn' then begin
4164 if not VarIsNull(Node.NodeValue) then
4165 modtagernavn := Node.NodeValue;
4166 antalFelterFundet := antalFelterFundet + 1;
4167 end;
4168 if Node.NodeName = 'ModtagerAdresse' then begin
4169 if not VarIsNull(Node.NodeValue) then
4170 modtageradresse := Node.NodeValue;
4171 antalFelterFundet := antalFelterFundet + 1;
4172 end;
4173 if Node.NodeName = 'Kommentar' then begin
4174 if not VarIsNull(Node.NodeValue) then
4175 kommentar := Node.NodeValue;
4176 antalFelterFundet := antalFelterFundet + 1;
4177 end;
4178 if Node.NodeName = 'PakkeType' then begin
4179 if not VarIsNull(Node.NodeValue) then
4180 pakketype := Node.NodeValue;
4181 antalFelterFundet := antalFelterFundet + 1;
4182 if (pakketyper.values[pakketype] <> '') then
4183 pakketyper.values[pakketype] := IntToStr(StrToInt(pakketyper.values[pakketype]) + 1)
4184 else
4185 pakketyper.values[pakketype] := '1';
4186 end;
4187 if Node.NodeName = 'TjekkodeStatus' then begin
4188 if not VarIsNull(Node.NodeValue) then
4189 tjekkodestatus := Node.NodeValue;
4190 antalFelterFundet := antalFelterFundet + 1;
4191 if (tjekkodestatus = '-1') then
4192 begin
4193
4194 if (pos(' ', stregkode) > 0) then
4195 begin
4196 stregkoderMedTjekkodeArray[linienr] := TUtils.split(stregkode, ' ', 2); // Fjerner lige en evt. fremtidig dato fra feltet
4197 end
4198 else
4199 begin
4200 stregkoderMedTjekkodeArray[linienr] := stregkode;
4201 end;
4202 linienr := linienr + 1;
4203 end;
4204 end;
4205 if antalFelterFundet = antalLiniefelter then
4206 begin
4207 if (ScanningType = '1') then
4208 ListBox2.Items.Add(pakketype+'; '+stregkode+'; '+modtagernavn+'; '+modtageradresse+'; '+kommentar+'; '+tjekkodestatus)
4209 else if (ScanningType = '4') then
4210 ListBox2.Items.Add(pakketype+'; '+stregkode+'; '+modtagernavn+'; '+modtageradresse+'; '+kommentar)
4211 else if (ScanningType = '5') then
4212 ListBox2.Items.Add(stregkode+'; '+modtagernavn+'; '+modtageradresse+'; '+kommentar+'; '+tjekkodestatus)
4213 else
4214 ListBox2.Items.Add(stregkode+'; '+modtagernavn+'; '+modtageradresse+'; '+kommentar);
4215 antalFelterFundet := 0;
4216 tjekkodestatus := '';
4217 end;
4218 end;
4219 end;
4220 for pakketypeix := 0 to pakketyper.Count-1 do
4221 begin
4222 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + ' '+pakketyper[pakketypeix]+' pakke(r) ikke modtaget');
4223 end;
4224
4225 // Free up the list object
4226 pakketyper.Free;
4227 // ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.');
4228 logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4229 if (antlinSenere > 0) then
4230 begin
4231 logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';
4232 end;
4233 logTekst := logTekst + '.';
4234 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
4235 if (antlinSenere > 0) then
4236 begin
4237 StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);
4238 end
4239 else
4240 begin
4241 StaticTextManglendePakker.Caption := IntToStr(antlinIdag);
4242 end;
4243
4244 if (Scanningtype = '1') then
4245 begin
4246 //antlinIdag := 9876; // til test af boksens udseende ved stort tal
4247 PanelManglendePakker1.Caption := IntToStr(antlinIdag + antlinSenere);
4248 if (antlinIdag + antlinSenere > 0) then
4249 begin
4250 PanelManglendePakker1.Visible := true;
4251 end
4252 else
4253 begin
4254 PanelManglendePakker1.Visible := false;
4255 end;
4256 end;
4257
4258 if (Scanningtype = '2') then
4259 begin
4260 PanelManglendePakker2.Caption := IntToStr(antlinIdag + antlinSenere);
4261 if (antlinIdag + antlinSenere > 0) then
4262 begin
4263 PanelManglendePakker2.Visible := true;
4264 end
4265 else
4266 begin
4267 PanelManglendePakker2.Visible := false;
4268 end;
4269 end;
4270
4271 if (Scanningtype = '3') then
4272 begin
4273 PanelManglendePakker3.Caption := IntToStr(antlinIdag + antlinSenere);
4274 if (antlinIdag + antlinSenere > 0) then
4275 begin
4276 PanelManglendePakker3.Visible := true;
4277 end
4278 else
4279 begin
4280 PanelManglendePakker3.Visible := false;
4281 end;
4282 end;
4283
4284 if (Scanningtype = '4') then
4285 begin
4286 PanelManglendePakker4.Caption := IntToStr(antlinIdag + antlinSenere);
4287 if (antlinIdag + antlinSenere > 0) then
4288 begin
4289 PanelManglendePakker4.Visible := true;
4290 end
4291 else
4292 begin
4293 PanelManglendePakker4.Visible := false;
4294 end;
4295 end;
4296
4297 if (Scanningtype = '5') then
4298 begin
4299 PanelManglendePakker5.Caption := IntToStr(antlinIdag + antlinSenere);
4300 if (antlinIdag + antlinSenere > 0) then
4301 begin
4302 PanelManglendePakker5.Visible := true;
4303 end
4304 else
4305 begin
4306 PanelManglendePakker5.Visible := false;
4307 end;
4308 end;
4309
4310 if (Scanningtype = '6') then
4311 begin
4312 PanelManglendePakker6.Caption := IntToStr(antlinIdag + antlinSenere);
4313 if (antlinIdag + antlinSenere > 0) then
4314 begin
4315 PanelManglendePakker6.Visible := true;
4316 end
4317 else
4318 begin
4319 PanelManglendePakker6.Visible := false;
4320 end;
4321 end;
4322
4323 except on e:exception do
4324 begin
4325 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Fejl i XML-format: '+e.Message);
4326 logTekst := 'Fejl i XML-format: '+e.Message;
4327 SkrivScanningLogFil(logTekst);
4328 raise exception.CreateFmt('Fejl i XML-format: %s',[e.Message]);
4329 end;
4330 end;
4331
4332 end;
4333
4334 procedure TMainForm.IndlesScanningLogFil();
4335 var
4336 SomeTxtFile : TextFile;
4337 buffer : string;
4338 S: string;
4339 idag, imorgen : TDateTime;
4340 imorgenYmd : string;
4341 logFilnavn : string;
4342
4343 begin
4344 idag := Now;
4345 imorgen := IncDay(idag, 1); //adds 1 day(s)
4346 // Hvis vi er efter midnat og inden middag skal vi bruge dagsdato som imorgen
4347 if (FormatDateTime('hh:nn',idag) < '12:00') then
4348 begin
4349 imorgen := idag;
4350 end;
4351 imorgenYmd := FormatDateTime('_yyyymmdd',imorgen);
4352 logFilnavn := 'Logs/Scanning' + imorgenYmd + '.log';
4353 if FileExists(logFilnavn) then
4354 begin
4355 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logFilnavn+' indlæses.');
4356 logTekst := logFilnavn+' indlæses.';
4357 SkrivScanningLogFil(logTekst);
4358 AssignFile(SomeTxtFile, logFilnavn);
4359 try
4360 Reset(SomeTxtFile);
4361 while not EOF(SomeTxtFile) do
4362 begin
4363 ReadLn(SomeTxtFile, buffer) ;
4364 S := buffer;
4365 ListBox1.Items.Insert(0, S);
4366 end;
4367 finally
4368 CloseFile(SomeTxtFile);
4369 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logFilnavn+' indlæst.');
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 ListBox1.Items.Insert(0,'');
4376 end;
4377 end;
4378 end;
4379
4380 procedure TMainForm.SkrivScanningLogFil(var tekst : string);
4381 var
4382 SomeTxtFile : TextFile;
4383 idag, imorgen : TDateTime;
4384 imorgenYmd : string;
4385 logFilnavn : string;
4386 //error : Integer;
4387
4388 begin
4389 if (SkrivLog = '1') then
4390 begin
4391 idag := Now;
4392 imorgen := IncDay(idag, 1); //adds 1 day(s)
4393 // Hvis vi er efter midnat og inden middag skal vi bruge dagsdato som imorgen
4394 if (FormatDateTime('hh:nn',idag) < '12:00') then
4395 begin
4396 imorgen := idag;
4397 end;
4398 imorgenYmd := FormatDateTime('_yyyymmdd',imorgen);
4399 logFilnavn := 'Logs/' + 'Scanning' + imorgenYmd + '.log';
4400 // Get the current directory
4401 // dir := GetCurrentDir;
4402 // ShowMessage('Current directory = '+dir);
4403 // logFilnavn := dir + '\Logs\' + 'Scanning' + imorgenYmd + '.log';
4404 // ShowMessage('logFilnavn = '+logFilnavn);
4405
4406 if not DirectoryExists('Logs') then
4407 begin
4408 CreateDir('Logs');
4409 end;
4410
4411 AssignFile(SomeTxtFile, logFilnavn);
4412 if FileExists(logFilnavn) then
4413 begin
4414 try
4415 try
4416 Append(SomeTxtFile);
4417 WriteLn(SomeTxtFile, TimeToStr(now) + ': ' + tekst) ;
4418 except on e:exception do
4419 //ShowMessageFmt('File create failed with error %d',[error]);
4420 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + ' Kan ikke skrive til log filen...');
4421 end;
4422 finally
4423 CloseFile(SomeTxtFile);
4424 end;
4425 end
4426 else
4427 begin
4428 try
4429 try
4430 ReWrite(SomeTxtFile);
4431 WriteLn(SomeTxtFile, TimeToStr(now) + ': ' + tekst) ;
4432 except on e:exception do
4433 // ShowMessageFmt('File create failed with error %d',[error]);
4434 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + ' Kan ikke oprette/skrive til log filen...');
4435 end;
4436 finally
4437 CloseFile(SomeTxtFile);
4438 end;
4439 end;
4440 end;
4441 end;
4442
4443 procedure TMainForm.IndlesRuteskiftFil(var filnavn : string);
4444 var
4445 SomeTxtFile : TextFile;
4446 buffer : string;
4447 linnr : integer;
4448 S: string;
4449 A: TStrArray;
4450 idag, imorgen : TDateTime;
4451 imorgenYmd : string;
4452
4453 begin
4454 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + filnavn+' indlæses.');
4455 logTekst := filnavn+' indlæses.';
4456 SkrivScanningLogFil(logTekst);
4457 SetLength(ruteHverdagArray, 1);
4458 SetLength(ruteLordagArray, 1);
4459 idag := Now;
4460 imorgen := IncDay(idag, 1); //adds 1 day(s)
4461 // Hvis vi er efter midnat og inden middag skal vi bruge dagsdato som imorgen
4462 if (FormatDateTime('hh:nn',idag) < '12:00') then
4463 begin
4464 imorgen := idag;
4465 end;
4466 imorgenYmd := FormatDateTime('yyyy-mm-dd',imorgen);
4467 if FileExists(filnavn) then
4468 begin
4469 AssignFile(SomeTxtFile, filnavn);
4470 linnr := 0;
4471 try
4472 Reset(SomeTxtFile);
4473 while not EOF(SomeTxtFile) do
4474 begin
4475 ReadLn(SomeTxtFile, buffer) ;
4476 S := buffer;
4477 SetLength(A,0);
4478 TUtils.Explode(A, ';', S);
4479 if (length(A) < 2) then
4480 begin
4481 TUtils.Explode(A, ',', S);
4482 end;
4483 if (length(A) > 1) then
4484 begin
4485 SetLength(ruteHverdagArray, linnr+1);
4486 SetLength(ruteLordagArray, linnr+1);
4487 ruteHverdagArray[linnr] := A[0];
4488 ruteLordagArray[linnr] := A[1];
4489 linnr := linnr+1;
4490 end;
4491 end;
4492 finally
4493 //ShowMessage(IntToStr(length(A)));
4494 CloseFile(SomeTxtFile);
4495 //ShowMessage(IntToStr(length(ruteHverdagArray)));
4496 if (linnr > 0) then
4497 begin
4498 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + IntToStr(linnr)+' linier indlæst til '+imorgenYmd+'.');
4499 logTekst := IntToStr(linnr)+' linier indlæst til '+imorgenYmd+'.';
4500 SkrivScanningLogFil(logTekst);
4501 end
4502 else
4503 begin
4504 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' +'Fandt ingen linier til '+imorgenYmd+'.');
4505 logTekst := 'Fandt ingen linier til '+imorgenYmd+'.';
4506 SkrivScanningLogFil(logTekst);
4507 PlaySound(PWideChar(AlarmLyd));
4508 end;
4509 end;
4510 end
4511 else
4512 begin
4513 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Ruteskift fil '+filnavn+' findes ikke.');
4514 logTekst := 'Ruteskift fil '+filnavn+' findes ikke.';
4515 SkrivScanningLogFil(logTekst);
4516 PlaySound(PWideChar(AlarmLyd));
4517 end;
4518 end;
4519
4520 procedure TMainForm.IndlesKontrolFil(var filnavn : string);
4521 var
4522 SomeTxtFile : TextFile;
4523 buffer : string;
4524 linnr : integer;
4525 S: string;
4526 A: TStrArray;
4527 idag, imorgen : TDateTime;
4528 imorgenYmd : string;
4529
4530 begin
4531 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + filnavn+' indlæses.');
4532 logTekst := filnavn+' indlæses.';
4533 SkrivScanningLogFil(logTekst);
4534 SetLength(ruteArray, 1);
4535 SetLength(korelisteArray, 1);
4536 idag := Now;
4537 imorgen := IncDay(idag, 1); //adds 1 day(s)
4538 // Hvis vi er efter midnat og inden middag skal vi bruge dagsdato som imorgen
4539 if (FormatDateTime('hh:nn',idag) < '12:00') then
4540 begin
4541 imorgen := idag;
4542 end;
4543 imorgenYmd := FormatDateTime('yyyy-mm-dd',imorgen);
4544 if FileExists(filnavn) then
4545 begin
4546 AssignFile(SomeTxtFile, filnavn);
4547 linnr := 0;
4548 try
4549 Reset(SomeTxtFile);
4550 while not EOF(SomeTxtFile) do
4551 begin
4552 ReadLn(SomeTxtFile, buffer) ;
4553 S := buffer;
4554 SetLength(A,0);
4555 TUtils.Explode(A, ';', S);
4556 if (length(A) < 3) then
4557 begin
4558 TUtils.Explode(A, ',', S);
4559 end;
4560 if (A[0]=imorgenYmd) then
4561 begin
4562 if (length(A) > 2) then
4563 begin
4564 SetLength(ruteArray, linnr+1);
4565 SetLength(korelisteArray, linnr+1);
4566 ruteArray[linnr] := A[1];
4567 korelisteArray[linnr] := A[2];
4568 linnr := linnr+1;
4569 end;
4570 end;
4571 end;
4572 finally
4573 //ShowMessage(IntToStr(length(A)));
4574 CloseFile(SomeTxtFile);
4575 //ShowMessage(IntToStr(length(ruteArray)));
4576 if (linnr > 0) then
4577 begin
4578 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + IntToStr(linnr)+' linier indlæst til '+imorgenYmd+'.');
4579 logTekst := IntToStr(linnr)+' linier indlæst til '+imorgenYmd+'.';
4580 SkrivScanningLogFil(logTekst);
4581 end
4582 else
4583 begin
4584 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' +'Fandt ingen linier til '+imorgenYmd+'.');
4585 logTekst := 'Fandt ingen linier til '+imorgenYmd+'.';
4586 SkrivScanningLogFil(logTekst);
4587 PlaySound(PWideChar(AlarmLyd));
4588 end;
4589 end;
4590 end
4591 else
4592 begin
4593 ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Kontrol fil '+filnavn+' findes ikke.');
4594 logTekst := 'Kontrol fil '+filnavn+' findes ikke.';
4595 SkrivScanningLogFil(logTekst);
4596 PlaySound(PWideChar(AlarmLyd));
4597 end;
4598 end;
4599
4600 //
4601 // Bladhus ***
4602 //
4603 function TMainForm.TjekKoreliste(var RuteNummer, Koreliste : string) : string;
4604 var
4605 i : Integer;
4606 svar : String;
4607
4608 begin
4609 //ShowMessage('Køreliste 1: '+korelisteArray[0]);
4610 // ShowMessage('Kontrollerer rute ' + RuteNummer + ' og køreliste ' + Koreliste + ' i kontrolfilen');
4611 // NB. Der er rod i begreberne RuteNummer og Koreliste - nogle steder er de byttet rundt!
4612 //ShowMessage('Kontrollerer rute ' + Koreliste + ' og køreliste ' + RuteNummer + ' i kontrolfilen');
4613
4614 svar := 'Køreliste ikke i kontrolfil';
4615 case BladhusSted of
4616 01 :
4617 begin;
4618 for i := 0 to length(ruteArray)-1 do
4619 begin
4620 if (Koreliste=ruteArray[i]) then
4621 begin
4622 svar := korelisteArray[i]; // returnerer den forventede køreliste
4623 end;
4624 end;
4625 end;
4626 // 02 : begin;
4627 //ShowMessage('02') ;
4628 // end;
4629 03 : begin;
4630 for i := 0 to length(ruteArray)-1 do
4631 begin
4632 if (Koreliste=ruteArray[i]) then
4633 begin
4634 svar := korelisteArray[i]; // returnerer den forventede køreliste
4635 end;
4636 end;
4637 end;
4638 // 04 : begin;
4639 //ShowMessage('04') ;
4640 // end;
4641 else
4642 svar := RuteNummer; // Dette svarer til at køreliste er godkendt uden kontrol fil
4643 end;
4644 if (RuteNummer = 'Rutenr') then // fra printertest funktionen
4645 svar := RuteNummer; // Dette svarer til at køreliste er godkendt uden kontrol fil
4646
4647 result := svar;
4648 end;
4649
4650 procedure TMainForm.VisAlarmSkaerm(strMessage: string);
4651 begin
4652 //ShowMessage('Ændring ikke tilladt');
4653 // Her skal komme en 'rød skærm' alarm
4654 PlaySound(PWideChar(AlarmLyd));
4655 MainForm.Color := clRed;
4656
4657
4658 RuteNummerST.Caption := '';
4659 BoghandlerNavnST.Caption := '';
4660 btnNulstil.Visible := true;
4661
4662 if (strMessage <> '') then
4663 begin
4664 ListBox1.Items.Insert(0, strMessage);
4665 KommentarST.Caption := strMessage;
4666 end;
4667
4668 end;
4669
4670 function TMainForm.getProddato() : TDate;
4671 var
4672 idag, imorgen : TDateTime;
4673 imorgenYmd : string;
4674
4675 begin
4676 idag := Now;
4677 imorgen := IncDay(idag, 1); //adds 1 day(s)
4678 // Hvis vi er efter midnat og inden middag skal vi bruge dagsdato som imorgen
4679 if (FormatDateTime('hh:nn',idag) < '12:00') then
4680 begin
4681 imorgen := idag;
4682 end;
4683 imorgenYmd := FormatDateTime('dd-mm-yyyy',imorgen);
4684 result := StrToDateTime(imorgenYmd);
4685 end;
4686
4687 function TMainForm.getProddag() : String;
4688 begin
4689 // ShowMessage(LongDayNames[DayOfWeek(getProddato())]);
4690 result := FormatSettings.LongDayNames[DayOfWeek(getProddato())];
4691 //result := 'lørdag'; // MENS VI TESTER kan vi fremtvinge lørdag situation her
4692 end;
4693
4694 function TMainForm.retRutenummer(rutenummer : String) : String;
4695 var
4696 i : Integer;
4697 svar : String;
4698
4699 begin
4700 svar := rutenummer;
4701 case BladhusSted of
4702 01 :
4703 begin;
4704 //ShowMessage('01') ;
4705 end;
4706 // 02 : begin;
4707 //ShowMessage('02') ;
4708 // end;
4709 03 : begin;
4710 for i := 0 to length(ruteHverdagArray)-1 do
4711 begin
4712 if (rutenummer=ruteHverdagArray[i]) then
4713 begin
4714 svar := ruteLordagArray[i]; // returnerer den forventede lørdagsrute
4715 end;
4716 end;
4717 end;
4718 // 04 : begin;
4719 //ShowMessage('04') ;
4720 // end;
4721 else
4722 svar := rutenummer; // Dette svarer til at rute ikke skal ændres
4723 end;
4724 result := svar;
4725 end;
4726
4727
4728 procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);
4729 begin
4730 if Scanogstjekkoden1.Checked then
4731 begin
4732 chkScanTjekkode.Checked := true;
4733 end
4734 else
4735 begin
4736 chkScanTjekkode.Checked := false;
4737 end;
4738 end;
4739
4740
4741
4742 //Nedarvet fra IParentForm
4743 procedure TMainForm.LogMessage( msg : string);
4744 begin
4745 ListBox1.Items.Insert(0, msg);
4746 SkrivScanningLogFil(msg);
4747 end;
4748
4749
4750 //Nedarvet fra IParentForm
4751 procedure TMainForm.SetPrinterstatusText( txt: string; alert: boolean);
4752 begin
4753
4754 PrinterstatusStaticText1.Caption := txt;
4755 if (alert) then
4756 begin
4757 PrinterstatusStaticText1.Font.Color := clBlack;
4758 PrinterstatusStaticText1.Color := MainForm.Color;
4759 PrinterstatusStaticText1.Transparent := True;
4760 end
4761 else
4762 begin
4763 PrinterstatusStaticText1.Font.Color := clRed;
4764 PrinterstatusStaticText1.Color := clWhite;
4765 PrinterstatusStaticText1.Transparent := true;
4766 end;
4767 end;
4768
4769 //Nedarvet fra IParentForm
4770 function TMainForm.GetFormObject() : TForm;
4771 begin
4772 Result := self;
4773 end;
4774
4775 end.
4776

  ViewVC Help
Powered by ViewVC 1.1.20