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

Contents of /dao/DelphiScanner/Main.pas

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.20