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

Diff of /dao/DelphiScanner/Main.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2654 by torben, Sun Aug 23 11:00:22 2015 UTC revision 3089 by torben, Mon Aug 15 19:09:21 2016 UTC
# Line 1  Line 1 
1  unit Main;  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  interface
14    
15  uses  uses
16    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
17    Dialogs, StdCtrls, Printers, IdBaseComponent, IdComponent, IdTCPConnection,    Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
18    IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,    IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,
19    Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,    Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,
20    IdExplicitTLSClientServerBase, IdFTP, pngimage, GIFImg, IdException,    IdExplicitTLSClientServerBase, IdFTP, IdException,
21    Winspool, Registry, ShellApi, ClipBrd, Buttons, wininet    ShellApi, ClipBrd, Buttons, wininet,
22      UITypes,
23      PakkeshopLabels,
24      Utils,
25      ParentForm,
26      LabelPrint,
27      Configuration,
28      Vcl.Imaging.pngimage,
29      Generics.Collections,
30      TimingHelper
31    
32    ;    ;
33    
34  type  type
35    TStrArray = array of string;    TMainForm = class(TForm, IParentForm)
   TMainForm = class(TForm)  
36      StregkodeST: TStaticText;      StregkodeST: TStaticText;
37      RuteNummerST: TStaticText;      RuteNummerST: TStaticText;
38      BoghandlerNavnST: TStaticText;      BoghandlerNavnST: TStaticText;
# Line 21  type Line 40  type
40      XMLDocument1: TXMLDocument;      XMLDocument1: TXMLDocument;
41      ApplicationEvents1: TApplicationEvents;      ApplicationEvents1: TApplicationEvents;
42      chkSporgEfterKunde: TCheckBox;      chkSporgEfterKunde: TCheckBox;
     KommentarST: TStaticText;  
43      MainMenu1: TMainMenu;      MainMenu1: TMainMenu;
44      N1: TMenuItem;      N1: TMenuItem;
45      Pakkernormal1: TMenuItem;      menuNatXpress1: TMenuItem;
46      ReturpakkerfraDAO1: TMenuItem;      menuNatxpressReturDAO1: TMenuItem;
47      Returpakkerfraboghandler1: TMenuItem;      menuNatxpressReturfraKunde1: TMenuItem;
48      Hjlp1: TMenuItem;      Hjlp1: TMenuItem;
49      Om1: TMenuItem;      Om1: TMenuItem;
50      Testforbindelsen1: TMenuItem;      Testforbindelsen1: TMenuItem;
# Line 36  type Line 54  type
54      Lukprogrammet1: TMenuItem;      Lukprogrammet1: TMenuItem;
55      N2: TMenuItem;      N2: TMenuItem;
56      N3: TMenuItem;      N3: TMenuItem;
57      RadioButton1: TRadioButton;      radioStorPakke: TRadioButton;
58      RadioButton2: TRadioButton;      radioLillePakke: TRadioButton;
59      N4: TMenuItem;      N4: TMenuItem;
60      Storepakker1: TMenuItem;      menuStorePakker: TMenuItem;
61      Smpakker1: TMenuItem;      menuSmaaPakker: TMenuItem;
62      Panel1: TPanel;      Panel1: TPanel;
63      Testlyd2: TMenuItem;      Testlyd2: TMenuItem;
64      Button1: TButton;      Button1: TButton;
65      Testlyd1: TMenuItem;      Testlyd1: TMenuItem;
66      ListBox1: TListBox;      ListBox1: TListBox;
67      Budlevering1: TMenuItem;      menuDaoDirekte1: TMenuItem;
68      DownloadButton01: TButton;      BtnDownloadKontrolfil: TButton;
69      IdFTP1: TIdFTP;      IdFTP1: TIdFTP;
70      Image1: TImage;      Image1: TImage;
71      ListBox2: TListBox;      ListBox2: TListBox;
72      OpdaterListenButton01: TButton;      BtnOpdaterListen: TButton;
73      UploadButton01: TButton;      BtnUploadLogfil: TButton;
74      DownloadButton03: TButton;      BtnDownloadRuteskiftFil: TButton;
75      Pakkeshoplevering1: TMenuItem;      menuPakkeshop1: TMenuItem;
76      PakkeshopText1: TStaticText;      PakkeshopText1: TStaticText;
77      PakkeshopNulstil: TButton;      btnNulstil: TButton;
78      Returpakkerfrapakkeshop1: TMenuItem;      menuPakkeshopRetur1: TMenuItem;
79      Altidprintepakkelabel1: TMenuItem;      Altidprintepakkelabel1: TMenuItem;
80      chkAltidPrintLabel: TCheckBox;      chkAltidPrintLabel: TCheckBox;
81      EKLoverforsel: TButton;      BtnEKLoverforsel: TButton;
82      N5: TMenuItem;      N5: TMenuItem;
83      Uploadlogfil1: TMenuItem;      Uploadlogfil1: TMenuItem;
84      Manual1: TMenuItem;      Manual1: TMenuItem;
# Line 68  type Line 86  type
86      Timer1: TTimer;      Timer1: TTimer;
87      chkScanTjekkode: TCheckBox;      chkScanTjekkode: TCheckBox;
88      Scanogstjekkoden1: TMenuItem;      Scanogstjekkoden1: TMenuItem;
89      Automatisktjekkodestyring1: TMenuItem;      menuAutomatiskTjekkodeStyring: TMenuItem;
90      Automatiskvalg1: TMenuItem;      menuAutomatiskvalg1: TMenuItem;
91      PanelValgA: TPanel;      PanelValgA: TPanel;
92      PanelValg1: TPanel;      PanelValg1: TPanel;
93      PanelValg2: TPanel;      PanelValg2: TPanel;
# Line 77  type Line 95  type
95      PanelValg4: TPanel;      PanelValg4: TPanel;
96      PanelValg5: TPanel;      PanelValg5: TPanel;
97      PanelValg6: TPanel;      PanelValg6: TPanel;
98        PanelValg7: TPanel;
99      Manualgenerel1: TMenuItem;      Manualgenerel1: TMenuItem;
100      StaticTextManglendePakker: TStaticText;      StaticTextManglendePakker: TStaticText;
101      PanelManglendePakker1: TPanel;      PanelManglendePakker1: TPanel;
# Line 85  type Line 104  type
104      PanelManglendePakker4: TPanel;      PanelManglendePakker4: TPanel;
105      PanelManglendePakker5: TPanel;      PanelManglendePakker5: TPanel;
106      PanelManglendePakker6: TPanel;      PanelManglendePakker6: TPanel;
107      PanelValg7: TPanel;      menuIndlevering: TMenuItem;
108        chkForstorTilDirekte: TCheckBox;
109        chkEmballageRepareret: TCheckBox;
110        KommentarST: TLabel;
111        chkUdenforSpecifikation: TCheckBox;
112    
113    
114    
   function Explode(var a: TStrArray; Border, S: string): Integer;  
   function BarCodeValid (ACode: string): boolean;  
   function Sto_GetFmtFileVersion(const FileName: String = ''; const Fmt: String = '%d.%d.%d.%d'): String;  
   function TColorToHex(Color : TColor) : string;  
   function HexToTColor(sColor : string) : TColor;  
115    function getProddato() : TDate;    function getProddato() : TDate;
116    function getProddag() : String;    function getProddag() : String;
117    function retRutenummer(rutenummer : String) : String;    function retRutenummer(rutenummer : String) : String;
   function GetCurrentPrinterHandle() : THandle;  
   function SavePChar(p: PChar): PChar;  
   function AdobeReaderExists(): Boolean;  
   function FileTime2DateTime(FileTime: TFileTime): TDateTime;  
   function split(input: string; schar: Char; s: Integer): string;  
   function CheckUrl(url:string):boolean;  
118    
119    procedure PlaySound(filename : PWideChar);    procedure PlaySound(filename : PWideChar);
120    procedure StartScreen();    procedure StartScreen();
# Line 113  type Line 127  type
127    procedure FormKeyPress(Sender: TObject; var Key: Char);    procedure FormKeyPress(Sender: TObject; var Key: Char);
128    procedure FormCreate(Sender: TObject);    procedure FormCreate(Sender: TObject);
129    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
130    procedure RadioButton1Click(Sender: TObject);    procedure radioStorPakkeClick(Sender: TObject);
131    procedure RadioButton2Click(Sender: TObject);    procedure radioLillePakkeClick(Sender: TObject);
132    procedure chkSporgEfterKundeClick(Sender: TObject);    procedure chkSporgEfterKundeClick(Sender: TObject);
133    procedure Pakkernormal1Click(Sender: TObject);    procedure menuNatXpress1Click(Sender: TObject);
134    procedure Testforbindelsen1Click(Sender: TObject);    procedure Testforbindelsen1Click(Sender: TObject);
135    procedure Testprinter1Click(Sender: TObject);    procedure Testprinter1Click(Sender: TObject);
136    procedure Om1Click(Sender: TObject);    procedure Om1Click(Sender: TObject);
137    procedure Lukprogrammet1Click(Sender: TObject);    procedure Lukprogrammet1Click(Sender: TObject);
138    procedure Sprgefterboghandlernummer1Click(Sender: TObject);    procedure Sprgefterboghandlernummer1Click(Sender: TObject);
139    procedure ReturpakkerfraDAO1Click(Sender: TObject);    procedure menuNatxpressReturDAO1Click(Sender: TObject);
140    procedure Returpakkerfraboghandler1Click(Sender: TObject);    procedure menuNatxpressReturfraKunde1Click(Sender: TObject);
141    procedure Storepakker1Click(Sender: TObject);    procedure menuStorePakkerClick(Sender: TObject);
142    procedure Smpakker1Click(Sender: TObject);    procedure menuSmaaPakkerClick(Sender: TObject);
143    procedure Testlyd1Click(Sender: TObject);    procedure Testlyd1Click(Sender: TObject);
144    procedure Testlyd2Click(Sender: TObject);    procedure Testlyd2Click(Sender: TObject);
145    procedure Button1Click(Sender: TObject);    procedure Button1Click(Sender: TObject);
146    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
147    procedure Budlevering1Click(Sender: TObject);    procedure menuDaoDirekte1Click(Sender: TObject);
148    procedure DownloadButton01Click(Sender: TObject);    procedure BtnDownloadKontrolfilClick(Sender: TObject);
149    procedure OpdaterListenButton01Click(Sender: TObject);    procedure BtnOpdaterListenClick(Sender: TObject);
150    procedure DownloadBladhusRuteskiftfil();    procedure DownloadBladhusRuteskiftfil();
151    procedure DownloadBladhusKontrolfil();    procedure DownloadBladhusKontrolfil();
152    procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);    procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);
# Line 140  type Line 154  type
154    procedure UploadInifilTilDAO();    procedure UploadInifilTilDAO();
155    procedure SletStregkodelinieFraListboks2(StregKode : String);    procedure SletStregkodelinieFraListboks2(StregKode : String);
156    procedure FormDestroy(Sender: TObject);    procedure FormDestroy(Sender: TObject);
157    procedure UploadButton01Click(Sender: TObject);    procedure BtnUploadLogfilClick(Sender: TObject);
158    procedure DownloadButton03Click(Sender: TObject);    procedure BtnDownloadRuteskiftFilClick(Sender: TObject);
159    procedure Pakkeshoplevering1Click(Sender: TObject);    procedure menuPakkeshop1Click(Sender: TObject);
160    procedure PakkeshopNulstilClick(Sender: TObject);    procedure btnNulstilClick(Sender: TObject);
161    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);    procedure menuPakkeshopRetur1Click(Sender: TObject);
162    procedure InitNatxpresslevering();    procedure InitNatxpresslevering();
163    procedure InitReturFraDao();    procedure InitReturFraDao();
164    procedure InitReturFraKunde();    procedure InitReturFraKunde();
# Line 155  type Line 169  type
169    
170    procedure Altidprintepakkelabel1Click(Sender: TObject);    procedure Altidprintepakkelabel1Click(Sender: TObject);
171    procedure chkAltidPrintLabelClick(Sender: TObject);    procedure chkAltidPrintLabelClick(Sender: TObject);
172    procedure EKLoverforselClick(Sender: TObject);    procedure BtnEKLoverforselClick(Sender: TObject);
173    procedure Uploadlogfil1Click(Sender: TObject);    procedure Uploadlogfil1Click(Sender: TObject);
174    procedure Manual1Click(Sender: TObject);    procedure Manual1Click(Sender: TObject);
   procedure CheckPrintQue(tjektype : string);  
175    procedure Timer1Timer(Sender: TObject);    procedure Timer1Timer(Sender: TObject);
176    procedure Scanogstjekkoden1Click(Sender: TObject);    procedure Scanogstjekkoden1Click(Sender: TObject);
177    procedure chkScanTjekkodeClick(Sender: TObject);    procedure chkScanTjekkodeClick(Sender: TObject);
178    procedure Automatisktjekkodestyring1Click(Sender: TObject);    procedure menuAutomatiskTjekkodeStyringClick(Sender: TObject);
179    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
180    procedure Automatiskvalg1Click(Sender: TObject);    procedure menuAutomatiskvalg1Click(Sender: TObject);
181    procedure PanelValgAClick(Sender: TObject);    procedure PanelValgAClick(Sender: TObject);
182    procedure PanelValg1Click(Sender: TObject);    procedure PanelValg1Click(Sender: TObject);
183    procedure PanelValg2Click(Sender: TObject);    procedure PanelValg2Click(Sender: TObject);
# Line 172  type Line 185  type
185    procedure PanelValg4Click(Sender: TObject);    procedure PanelValg4Click(Sender: TObject);
186    procedure PanelValg5Click(Sender: TObject);    procedure PanelValg5Click(Sender: TObject);
187    procedure PanelValg6Click(Sender: TObject);    procedure PanelValg6Click(Sender: TObject);
188      procedure PanelValg7Click(Sender: TObject);
189    
190    procedure NulstilAutomatiskValg();    procedure NulstilAutomatiskValg();
191    procedure SletLogfiler(Path: string; FileList: TStrings);    procedure SletLogfiler(Path: string; FileList: TStrings);
192    procedure Manualgenerel1Click(Sender: TObject);    procedure Manualgenerel1Click(Sender: TObject);
193    procedure TjekkerUrls();    procedure TjekkerUrls();
194  // 20150310: start    procedure TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
195    procedure RoundCornerOf(Control: TWinControl);  
196      procedure menuIndleveringClick(Sender: TObject);
197    
198    
199    
200      //Nedarvet fra IParentForm
201      procedure Msg( msg : string);
202      procedure LogMessage( msg : string);
203      procedure SetPrinterstatusText( txt: string; alert: boolean);
204      function GetFormObject() : TForm;
205    
206    
     procedure PanelValg7Click(Sender: TObject);  
 // 20150310: slut  
207    
208    private    private
209      SpecialVersionSted, SpecialVersionScanningtype: String;    // Bruges når programmet skal bruges udenfor DAO scanningssteder      SpecialVersionSted, SpecialVersionScanningtype: String;    // Bruges når programmet skal bruges udenfor DAO scanningssteder
# Line 188  type Line 211  type
211      SkrivLog : String;      SkrivLog : String;
212      Sted : String;      Sted : String;
213      StedNavn : String;      StedNavn : String;
214      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlEKLoverforsel : String;  
 // 29150330: start  
     UrlEKLoverforselPakkeshop : String;  
 // 20150330: slut  
     UrlFindPakketype, UrlSendPrograminfo: String;  
215      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;
216      ScanTjekkode : String;      ScanTjekkode : String;
217      ScanTjekkodeAutomatik : string;      ScanTjekkodeAutomatik : string;
218      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop : String;  
219      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop : String;      Url : String;
220      LabelType : integer;  
221        Farve : String;
222    
223        Titel : String;
224    
225      AlarmLyd : String;      AlarmLyd : String;
226      ScannetOkLyd : String;      ScannetOkLyd : String;
227      ScannetOkStorLyd : String;      ScannetOkStorLyd : String;
228  // 20150317: start  
229      ScannetOkTilTjekkodeLyd : String;      ScannetOkTilTjekkodeLyd : String;
230  // 20150317: slut  
231      PrinterNavn : String;      PrinterNavn : String;
232      TjekPrinter : String;      TjekPrinter : String;
233      XPosRute : integer;  
     YPosRute : integer;  
     FontSizeRute : integer;  
     FontSizeRuteLille : integer;  
     XPosKommentar : integer;  
     YPosKommentar : integer;  
     FontSizeKommentar : integer;  
     XPosBoghandler : integer;  
     YPosBoghandler : integer;  
     FontSizeBoghandler : integer;  
     XPosKoreliste : integer;  
     YPosKoreliste : integer;  
     FontSizeKoreliste : integer;  
     FontSizeKorelisteLille : integer;  
     XPosSorteringsfelt1 : integer;  
     YPosSorteringsfelt1 : integer;  
     FontSizeSorteringsfelt1 : integer;  
     XPosSorteringsfelt2 : integer;  
     YPosSorteringsfelt2 : integer;  
     FontSizeSorteringsfelt2 : integer;  
     XPosSmskode : integer;  
     YPosSmskode : integer;  
     FontSizeSmskode : integer;  
234      Org_RuteNummerST, Org_BoghandlerNavnST, Org_KommentarST : String;      Org_RuteNummerST, Org_BoghandlerNavnST, Org_KommentarST : String;
235      BladhusSted : Integer;      BladhusSted : Integer;
236      BladhusStedKode : Array of string;      BladhusStedKode : Array of string;
# Line 242  type Line 243  type
243      PakkeshopStregkode, PakkeshopTjekkode : String;      PakkeshopStregkode, PakkeshopTjekkode : String;
244      BoghandlerStregkode, BoghandlerTjekkode : String;      BoghandlerStregkode, BoghandlerTjekkode : String;
245      TjekUrls : String;      TjekUrls : String;
246        Config : TConfiguration;
247    
248    
249            function CheckSumModulo10(const data:string):string;          { used for EAN 8/13 }      LabelPrint: TLabelPrint;
250    
251      procedure PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : String = '');      procedure PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : String = '');
252      procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');  
253      procedure HentPakkeInfoFraServer(const Sted, PakkeNr : String; var RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel: Boolean; BoghandlerNummer : String = '');      procedure HentPakkeInfoFraServer(const Sted, PakkeNr : String; var RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel: Boolean; BoghandlerNummer : String = '');
254      procedure CheckCode();      procedure CheckCode();
255      procedure IndlesManglendeScanninger();      procedure IndlesManglendeScanninger();
# Line 255  type Line 258  type
258      procedure IndlesScanningLogFil();      procedure IndlesScanningLogFil();
259      procedure SkrivScanningLogFil(var tekst : string);      procedure SkrivScanningLogFil(var tekst : string);
260      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;
261        procedure VisAlarmSkaerm(strMessage: string);
262    
263    
264    public    public
265      { Public declarations }      { Public declarations }
266    end;    end;
267    
268    
269  var  var
270    MainForm: TMainForm;    MainForm: TMainForm;
271    
# Line 273  var Line 279  var
279  implementation  implementation
280  {$R *.dfm}  {$R *.dfm}
281    
282  function TMainForm.TColorToHex(Color : TColor) : string;  
283  begin  //FormCreate kaldes før InitForm
    Result :=  
      IntToHex(GetRValue(Color), 2) +  
      IntToHex(GetGValue(Color), 2) +  
      IntToHex(GetBValue(Color), 2) ;  
 end;  
   
 function TMainForm.HexToTColor(sColor : string) : TColor;  
 begin  
    Result :=  
      RGB(  
        StrToInt('$'+Copy(sColor, 1, 2)),  
        StrToInt('$'+Copy(sColor, 3, 2)),  
        StrToInt('$'+Copy(sColor, 5, 2))  
      ) ;  
 end;  
284    
285  procedure TMainForm.InitForm(Farve,Titel,Url : String);  procedure TMainForm.InitForm(Farve,Titel,Url : String);
286  begin  begin
287    
288  // 20150309: startr      IdHTTP1.ConnectTimeout := 5000; // Vent max 5 sek på connect
289        IdHTTP1.ReadTimeout := 10000; // Vent max 10 sek på read
290    
291    
292    
293    
294      StaticTextManglendePakker.Caption := '';      StaticTextManglendePakker.Caption := '';
295  // 20150309: slut  
296    
297      PanelValg1.Color := clBtnFace;      PanelValg1.Color := clBtnFace;
298      if PanelValg1.Enabled = true then      if PanelValg1.Enabled = true then
# Line 340  begin Line 336  begin
336        PanelValg7.Font.Color := clWindowText;        PanelValg7.Font.Color := clWindowText;
337      end;      end;
338    
339      OpdaterListenButton01.Enabled := false;      BtnOpdaterListen.Enabled := false;
340    
341      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
342      begin      begin
# Line 368  begin Line 364  begin
364        else if (Sted = 'BR') then        else if (Sted = 'BR') then
365          begin StedNavn := 'Brøndby: '; end          begin StedNavn := 'Brøndby: '; end
366        else if (Sted = 'BK') then        else if (Sted = 'BK') then
367          begin StedNavn := 'Bladkompagniet: '; end          begin StedNavn := 'Bladkompagniet/ISV: '; end
368          else if (Sted = 'TK') then
369            begin StedNavn := 'BK/Trykkompagniet: '; end
370        else if (Sted = 'DBK') then        else if (Sted = 'DBK') then
371          begin StedNavn := 'DBK Køge: '; end          begin StedNavn := 'DBK/Køge: '; end
372        else if (Sted = '1') then        else if (Sted = '1') then
373          begin StedNavn := 'Ålborg: '; end          begin StedNavn := 'Ålborg: '; end
374        else if (Sted = '2') then        else if (Sted = '2') then
# Line 394  begin Line 392  begin
392    
393      StartScreen();      StartScreen();
394      MainForm.Caption := Titel;      MainForm.Caption := Titel;
395      MainForm.Color := HexToTColor(Farve);      MainForm.Color := TUtils.HexToTColor(Farve);
396      MainForm.Farve := Farve;      MainForm.Farve := Farve;
397      MainForm.Titel := Titel;      MainForm.Titel := Titel;
398      MainForm.Url := Url;      MainForm.Url := Url;
# Line 404  begin Line 402  begin
402        PrinterstatusStaticText1.Color := MainForm.Color;        PrinterstatusStaticText1.Color := MainForm.Color;
403      end;      end;
404    
405      if PakkeshopLevering1.Checked or Pakkernormal1.Checked then      if menuPakkeshop1.Checked or menuNatXpress1.Checked then
406        PakkeshopText1.Visible := true        PakkeshopText1.Visible := true
407      else      else
408        PakkeshopText1.Visible := false;        PakkeshopText1.Visible := false;
# Line 429  begin Line 427  begin
427        end;        end;
428      end;      end;
429    
430      if Automatisktjekkodestyring1.Checked then      if menuAutomatiskTjekkodeStyring.Checked then
431      begin      begin
432        chkScanTjekkode.Enabled := false;        chkScanTjekkode.Enabled := false;
433        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
# Line 454  begin Line 452  begin
452          end          end
453          else          else
454          begin          begin
455            logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
456          end;          end;
457          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
458        end        end
459        else        else
460        begin        begin
461          logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';          logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
462          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
463        end;        end;
464      end;      end;
465    
466    
467  end;  end;
468    
469  procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);  procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);
# Line 486  begin Line 485  begin
485    StregkodeST.Caption := Stregkode;    StregkodeST.Caption := Stregkode;
486  end;  end;
487    
488  procedure TMainForm.Automatisktjekkodestyring1Click(Sender: TObject);  procedure TMainForm.menuAutomatiskTjekkodeStyringClick(Sender: TObject);
489  begin  begin
490    if Automatisktjekkodestyring1.Checked then    if menuAutomatiskTjekkodeStyring.Checked then
491    begin    begin
492       chkScanTjekkode.Enabled := false;       chkScanTjekkode.Enabled := false;
493       Scanogstjekkoden1.Enabled := false;       Scanogstjekkoden1.Enabled := false;
# Line 501  begin Line 500  begin
500    
501  end;  end;
502    
503  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);  procedure TMainForm.menuAutomatiskvalg1Click(Sender: TObject);
504  begin  begin
 // 20150317: start  
 (*  
   if Automatiskvalg1.Checked then  
   begin  
      AutomatiskValg1.Checked := true;  
      PanelValgA.Color := clGreen;  
      PanelValgA.Font.Color := clWhite;  
   end  
   else  
   begin  
      AutomatiskValg1.Checked := false;  
      PanelValgA.Color := clBtnFace;  
      PanelValgA.Font.Color := clWindowText;  
   end;  
 *)  
505  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
506  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
507       AutomatiskValg1.Checked := true;       menuAutomatiskvalg1.Checked := true;
508       PanelValgA.Color := clGreen;       PanelValgA.Color := clGreen;
509       PanelValgA.Font.Color := clWhite;       PanelValgA.Font.Color := clWhite;
 // 20150317: slut  
510  end;  end;
511    
512    
513    
514    //InitForm kaldes før FormCreate
515  procedure TMainForm.FormCreate(Sender: TObject);  procedure TMainForm.FormCreate(Sender: TObject);
516  const  const
517    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
518  var  var
   printerInd : integer;  
   i : Integer;  
 // 20150310: start  
519    gemScanningtype : String;    gemScanningtype : String;
 // 20150310: slut  
520    
521  begin  begin
522    
523    
524    // Initierer nogle variabler    // Initierer nogle variabler
525    BladhusSted := 00;    BladhusSted := 00;
526    Application.ShowHint := True;    Application.ShowHint := True;
527    PrinterstatusStaticText1.Caption := '';    PrinterstatusStaticText1.Caption := '';
528    PrinterstatusStaticText1.Color := MainForm.Color;    PrinterstatusStaticText1.Color := MainForm.Color;
529  // 20150306: start  
530    PakkeshopNulstil.BringToFront;    btnNulstil.BringToFront;
531  // 20150306: slut  
532  // 20150310: start    TUtils.RoundCornerOf(PanelManglendePakker1);
533    RoundCornerOf(PanelManglendePakker1);    TUtils.RoundCornerOf(PanelManglendePakker2);
534    RoundCornerOf(PanelManglendePakker2);    TUtils.RoundCornerOf(PanelManglendePakker3);
535    RoundCornerOf(PanelManglendePakker3);    TUtils.RoundCornerOf(PanelManglendePakker4);
536    RoundCornerOf(PanelManglendePakker4);    TUtils.RoundCornerOf(PanelManglendePakker5);
537    RoundCornerOf(PanelManglendePakker5);    TUtils.RoundCornerOf(PanelManglendePakker6);
538    RoundCornerOf(PanelManglendePakker6);  
 // 20150310: slut  
539    
540    // Hvis mappen Docs eksisterer kan vi vælge Manual i menuen Hjælp    // Hvis mappen Docs eksisterer kan vi vælge Manual i menuen Hjælp
541    if DirectoryExists('Docs') then    if DirectoryExists('Docs') then
# Line 563  begin Line 546  begin
546    
547  // Sætter lige en default panel størrelse  // Sætter lige en default panel størrelse
548    MainForm.ClientWidth := 1000;    MainForm.ClientWidth := 1000;
549    MainForm.ClientHeight := 750;    MainForm.ClientHeight := 820;
550    
551      Config := TConfiguration.Create();
552      Config.ReadFromInifile( TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) );    //ToDo: clean up duplicate ini ref
553      Config.Sted := Sted;
554    
555    // Læser parametre fra ini filen    // Læser parametre fra ini filen
556    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do
557    try    try
558    
559    
560      SkrivLog := ReadString('Settings','SkrivLog','0');      SkrivLog := ReadString('Settings','SkrivLog','0');
561      Sted := ReadString('Settings','Sted','');      Sted := ReadString('Settings','Sted','');
562      StedNavn := ReadString('Settings','Stednavn','');      StedNavn := ReadString('Settings','Stednavn','');
563      UrlFindPakketype := ReadString('Settings','UrlFindPakketype','http://omdeling.info/webservices/bogpakkekontrol/FindPakketype.php?stregkode=%s');  
564      UrlSendPrograminfo := ReadString('Settings','UrlSendPrograminfo','http://omdeling.info/webservices/bogpakkekontrol/SendPrograminfo.php?programnavn=%s&sted=%s&scanningtype=%s&infotype=%s&info=%s');  
565      UrlNormal := ReadString('Settings','UrlNormal','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&tjekkode=%s');  
566      UrlReturDAO := ReadString('Settings','UrlReturDAO','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&returpakketype=%s&pakkestorrelse=%s');  
     UrlReturBoghandler := ReadString('Settings','UrlReturBoghandler','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&returpakketype=%s&pakkestorrelse=%s');  
     UrlBudlevering := ReadString('Settings','UrlBudlevering','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&leveringstype=%s&pakkestorrelse=%s');  
     UrlManglendeScanninger := ReadString('Settings','UrlManglendeScanninger','http://omdeling.info/webservices/bogpakkekontrol/bogpakkemanglendescanninger.php?sted=%s&type=%s');  
     UrlEKLoverforsel := ReadString('Settings','UrlEKLoverforsel','http://omdeling.info/webservices/bogpakkekontrol/bogpakkertilekl.php?sted=%s');  
 // 20150330: start  
     UrlEKLoverforselPakkeshop := ReadString('Settings','UrlEKLoverforselPakkeshop','http://omdeling.info/webservices/pakkeshop/pakkertilekl.php?sted=%s');  
 // 20150330: slut  
     UrlPakkeshoplevering := ReadString('Settings','UrlPakkeshoplevering','http://omdeling.info/webservices/pakkeshop/pakkekontrol.php?sted=%s&stregkode=%s&tjekkode=%s');  
     UrlReturPakkeshop := ReadString('Settings','UrlReturPakkeshop','http://omdeling.info/webservices/pakkeshop/returpakkekontrol.php?sted=%s&stregkode=%s');  
     UrlPakkeshopManglendeScanninger := ReadString('Settings','UrlPakkeshopManglendeScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendescanninger.php?sted=%s');  
     UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s');  
     LabelType := ReadInteger('Settings','LabelType',1);  
     FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');  
     TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');  
     FarveReturDAO := ReadString('Settings','FarveReturDAO','A9F5A9');  
     TitelReturDAO := ReadString('Settings','TitelReturDAO','Returforsendelse fra DAO');  
     FarveReturBoghandler := ReadString('Settings','FarveReturBoghandler','F2F5A9');  
     TitelReturBoghandler := ReadString('Settings','TitelReturBoghandler','Returforsendelse fra boghandler');  
     FarveBudlevering := ReadString('Settings','FarveBudlevering','2E9AFE');  
     TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');  
     FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');  
     TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');  
     FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');  
     TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');  
     SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');  
     ScanTjekkode := ReadString('Settings','ScanTjekkode','0');  
     ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');  
     Scanningtype := ReadString('Settings','Scanningtype','A');  
     Pakketype := ReadString('Settings','Pakketype','0');  
     TestFunktionen := ReadString('Settings','TestFunktion','0');  
     AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');  
     ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');  
     ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');  
 // 20150317: start  
     ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');  
 // 20150317: slut  
     PrinterNavn := ReadString('Settings','PrinterNavn','');  
     TjekPrinter := ReadString('Settings','TjekPrinter','1');  
     TjekUrls := ReadString('Settings','TjekUrls','2');  
567    
568      if (SkrivLog = '1') then      if (SkrivLog = '1') then
569      begin      begin
570        logTekst := 'Program start (Version: ' + Sto_GetFmtFileVersion('','') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now);        logTekst := 'Program start (Version: ' + TUtils.Sto_GetFmtFileVersion('') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now);
571        try        try
572          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
573          Uploadlogfil1.Enabled := true;          Uploadlogfil1.Enabled := true;
574          UploadButton01.Enabled := true;          BtnUploadLogfil.Enabled := true;
575          logTekst := 'Programmet er installeret som: '+ParamStr(0);          logTekst := 'Programmet er installeret som: '+ParamStr(0);
576          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
577          // Oprydning i gamle logfiler          // Oprydning i gamle logfiler
# Line 633  begin Line 583  begin
583    
584      if Scanningtype = 'A' then      if Scanningtype = 'A' then
585      begin      begin
586        Automatiskvalg1.Checked := true;        menuAutomatiskvalg1.Checked := true;
587        Scanningtype := '1';        Scanningtype := '1';
588        PanelValgA.Color := clGreen;        PanelValgA.Color := clGreen;
589        PanelValgA.Font.Color := clWhite;        PanelValgA.Font.Color := clWhite;
590      end;      end;
591    
592      if LabelType = 0 then  
     begin  
        XPosRute := ReadInteger('RuteBred','XPos',1);  
        YPosRute := ReadInteger('RuteBred','YPos',1);  
        FontSizeRute := ReadInteger('RuteBred','FontSize',72);  
        FontSizeRuteLille := ReadInteger('RuteBred','FontSizeLille',20);  
        XPosKommentar := ReadInteger('KommentarBred','XPos',1);  
        YPosKommentar := ReadInteger('KommentarBred','YPos',250);  
        FontSizeKommentar := ReadInteger('KommentarBred','FontSize',16);  
        XPosBoghandler := ReadInteger('BoghandlerBred','XPos',1);  
        YPosBoghandler := ReadInteger('BoghandlerBred','YPos',400);  
        FontSizeBoghandler := ReadInteger('BoghandlerBred','FontSize',16);  
        XPosKoreliste := ReadInteger('KorelisteSmal','XPos',1);  
        YPosKoreliste := ReadInteger('KorelisteSmal','YPos',100);  
        FontSizeKoreliste := ReadInteger('KorelisteSmal','FontSize',72);  
        FontSizeKorelisteLille := ReadInteger('KorelisteSmal','FontSizeLille',20);  
        XPosSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','XPos',700);  
        YPosSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','YPos',100);  
        FontSizeSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','FontSize',16);  
        XPosSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','XPos',700);  
        YPosSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','YPos',150);  
        FontSizeSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','FontSize',16);  
        XPosSmskode := ReadInteger('SmskodeSmal','XPos',1);  
        YPosSmskode := ReadInteger('SmskodeSmal','YPos',300);  
        FontSizeSmskode := ReadInteger('SmskodeSmal','FontSize',32);  
     end  
     else  
     begin  
        XPosRute := ReadInteger('RuteSmal','XPos',1);  
        YPosRute := ReadInteger('RuteSmal','YPos',1);  
        FontSizeRute := ReadInteger('RuteSmal','FontSize',72);  
        FontSizeRuteLille := ReadInteger('RuteSmal','FontSizeLille',20);  
        XPosKommentar := ReadInteger('KommentarSmal','XPos',1);  
        YPosKommentar := ReadInteger('KommentarSmal','YPos',250);  
        FontSizeKommentar := ReadInteger('KommentarSmal','FontSize',16);  
        XPosBoghandler := ReadInteger('BoghandlerSmal','XPos',1);  
        YPosBoghandler := ReadInteger('BoghandlerSmal','YPos',400);  
        FontSizeBoghandler := ReadInteger('BoghandlerSmal','FontSize',16);  
        XPosKoreliste := ReadInteger('KorelisteSmal','XPos',1);  
        YPosKoreliste := ReadInteger('KorelisteSmal','YPos',100);  
        FontSizeKoreliste := ReadInteger('KorelisteSmal','FontSize',72);  
        FontSizeKorelisteLille := ReadInteger('KorelisteSmal','FontSizeLille',20);  
        XPosSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','XPos',700);  
        YPosSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','YPos',100);  
        FontSizeSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','FontSize',16);  
        XPosSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','XPos',700);  
        YPosSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','YPos',150);  
        FontSizeSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','FontSize',16);  
        XPosSmskode := ReadInteger('SmskodeSmal','XPos',1);  
        YPosSmskode := ReadInteger('SmskodeSmal','YPos',300);  
        FontSizeSmskode := ReadInteger('SmskodeSmal','FontSize',32);  
        if LabelType = 2 then // test på alm. printer kræver at XY-positionerne ganges med 3  
        begin  
           XPosRute := XPosRute * 3;  
           YPosRute := YPosRute * 3;  
           XPosKommentar := XPosKommentar * 3;  
           YPosKommentar := YPosKommentar * 3;  
           XPosBoghandler := XPosBoghandler * 3;  
           YPosBoghandler := YPosBoghandler * 3;  
           XPosKoreliste := XPosKoreliste * 3;  
           YPosKoreliste := YPosKoreliste * 3;  
           XPosSorteringsfelt1 := XPosSorteringsfelt1 * 3;  
           YPosSorteringsfelt1 := YPosSorteringsfelt1 * 3;  
           XPosSorteringsfelt2 := XPosSorteringsfelt2 * 3;  
           YPosSorteringsfelt2 := YPosSorteringsfelt2 * 3;  
           XPosSmskode := XPosSmskode * 3;  
           YPosSmskode := YPosSmskode * 3;  
        end;  
     end;  
593    
594      if SporgEfterBoghandler = '1' then      if SporgEfterBoghandler = '1' then
595      begin      begin
# Line 733  begin Line 615  begin
615    
616      if ScanTjekkodeAutomatik = '1' then      if ScanTjekkodeAutomatik = '1' then
617      begin      begin
618        Automatisktjekkodestyring1.Checked := true;        menuAutomatiskTjekkodeStyring.Checked := true;
619        chkScanTjekkode.Enabled := false;        chkScanTjekkode.Enabled := false;
620        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
621      end;      end;
# Line 760  begin Line 642  begin
642      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)
643      // *************************** //      // *************************** //
644    
645    {$IfDef STED_BK}
646        SpecialVersionSted := 'BK';
647    {$EndIf}
648    {$IfDef STED_TK}
649        SpecialVersionSted := 'TK';// BK-Trykkompagniet
650    {$EndIf}
651    {$IfDef STED_DBK}
652        SpecialVersionSted := 'DBK';
653    {$EndIf}
654    {$IfDef STED_FD}
655        SpecialVersionSted := 'FD';
656    {$EndIf}
657    {$IfDef STED_NS}
658        SpecialVersionSted := 'NS';
659    {$EndIf}
660    
661      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
662      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)
663      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
# Line 775  begin Line 673  begin
673      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)
674      // ændrer vi Sted og Scanningtype her:      // ændrer vi Sted og Scanningtype her:
675    
 // 20150313: start  
676      if SpecialVersionSted = 'NS' then      if SpecialVersionSted = 'NS' then
677      begin      begin
678         SpecialVersionSted := '01';         //SpecialVersionSted := '01'; // Fra før NS overtog scanning løssalg
679         SpecialVersionScanningtype := '4';         //SpecialVersionScanningtype := '4';
680    
681          //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
682          Sted := SpecialVersionSted;
683         // her skal vi også disable de knapper BK ikke kan bruge
684          PanelValg2.Enabled := false;
685          PanelValg2.Font.Color := clInactiveCaption;
686          PanelValg3.Enabled := false;
687          PanelValg3.Font.Color := clInactiveCaption;
688          //PanelValg6.Enabled := false;
689          //PanelValg6.Font.Color := clInactiveCaption;
690    
691         // her skal vi også disable de menupunkter FD ikke kan bruge
692          menuNatxpressReturDAO1.Enabled := false;
693          menuNatxpressReturfraKunde1.Enabled := false;
694    
695          //Returpakkerfrapakkeshop1.Enabled := false;
696      end;      end;
697    
698      if SpecialVersionSted = 'FD' then      if SpecialVersionSted = 'FD' then
699      begin      begin
700         SpecialVersionSted := '03';         //SpecialVersionSted := '03'; //fra før at FD overtog scanning
701         SpecialVersionScanningtype := '4';         //SpecialVersionScanningtype := '4';
702      end;  
 // 20150313: slut  
703    
     if SpecialVersionSted = 'BK' then  
     begin  
704        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
705        Sted := SpecialVersionSted;        Sted := SpecialVersionSted;
706       // her skal vi også disable de knapper BK ikke kan bruge       // her skal vi også disable de knapper BK ikke kan bruge
# Line 797  begin Line 708  begin
708        PanelValg2.Font.Color := clInactiveCaption;        PanelValg2.Font.Color := clInactiveCaption;
709        PanelValg3.Enabled := false;        PanelValg3.Enabled := false;
710        PanelValg3.Font.Color := clInactiveCaption;        PanelValg3.Font.Color := clInactiveCaption;
711        PanelValg6.Enabled := false;        //PanelValg6.Enabled := false;
712        PanelValg6.Font.Color := clInactiveCaption;        //PanelValg6.Font.Color := clInactiveCaption;
713       // her skal vi også disable de menupunkter BK ikke kan bruge  
714        ReturpakkerfraDAO1.Enabled := false;       // her skal vi også disable de menupunkter FD ikke kan bruge
715        Returpakkerfraboghandler1.Enabled := false;        menuNatxpressReturDAO1.Enabled := false;
716        Returpakkerfrapakkeshop1.Enabled := false;        menuNatxpressReturfraKunde1.Enabled := false;
717        if SpecialVersionScanningtype = 'A' then  
718        begin        //Returpakkerfrapakkeshop1.Enabled := false;
719           Scanningtype := '1';  
       end  
       else  
       begin  
         Scanningtype := SpecialVersionScanningtype;  
       end;  
720      end;      end;
721    
722      if SpecialVersionSted = 'DBK' then      if (SpecialVersionSted = 'BK') OR (SpecialVersionSted = 'TK') then
723      begin      begin
724        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
725        Sted := SpecialVersionSted;        Sted := SpecialVersionSted;
726        // her skal vi også disable de knapper DBK ikke kan bruge       // her skal vi også disable de knapper BK ikke kan bruge
727        PanelValg2.Enabled := false;        PanelValg2.Enabled := false;
728        PanelValg2.Font.Color := clInactiveCaption;        PanelValg2.Font.Color := clInactiveCaption;
729        PanelValg3.Enabled := false;        PanelValg3.Enabled := false;
730        PanelValg3.Font.Color := clInactiveCaption;        PanelValg3.Font.Color := clInactiveCaption;
731        PanelValg5.Enabled := false;        //PanelValg6.Enabled := false;
732        PanelValg5.Font.Color := clInactiveCaption;        //PanelValg6.Font.Color := clInactiveCaption;
733        PanelValg6.Enabled := false;  
734        PanelValg6.Font.Color := clInactiveCaption;       // her skal vi også disable de menupunkter BK ikke kan bruge
735       // her skal vi også disable de menupunkter DBK ikke kan bruge        menuNatxpressReturDAO1.Enabled := false;
736        ReturpakkerfraDAO1.Enabled := false;        menuNatxpressReturfraKunde1.Enabled := false;
737        Returpakkerfraboghandler1.Enabled := false;  
738  // 20150317: start        //Returpakkerfrapakkeshop1.Enabled := false;
739        Pakkeshoplevering1.Enabled := false;  
       Returpakkerfrapakkeshop1.Enabled := false;  
 // 20150317: slut  
740        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
741        begin        begin
742           Scanningtype := '1';           Scanningtype := '1';
# Line 843  begin Line 747  begin
747        end;        end;
748      end;      end;
749    
750        if SpecialVersionSted = 'DBK' then
751        begin
752          Sted := SpecialVersionSted;
753        end;
754    
755      if (SpecialVersionSted = '01')      if (SpecialVersionSted = '01')
756      or (SpecialVersionSted = '02')      or (SpecialVersionSted = '02')
757      or (SpecialVersionSted = '03')      or (SpecialVersionSted = '03')
# Line 862  begin Line 771  begin
771        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
772        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
773        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
774          PanelValg7.Enabled := false;
775          PanelValg7.Font.Color := clInactiveCaption;
776       // her skal vi også disable de menupunkter Bladhusene (01, 02, 03 og 04) ikke kan bruge       // her skal vi også disable de menupunkter Bladhusene (01, 02, 03 og 04) ikke kan bruge
777  // 20150317: start  
778        Automatiskvalg1.Enabled := false;        menuAutomatiskvalg1.Enabled := false;
779  // 20150317: slut  
780        Pakkernormal1.Enabled := false;        menuNatXpress1.Enabled := false;
781        ReturpakkerfraDAO1.Enabled := false;        menuNatxpressReturDAO1.Enabled := false;
782        Returpakkerfraboghandler1.Enabled := false;        menuNatxpressReturfraKunde1.Enabled := false;
783        Budlevering1.Enabled := false;        menuDaoDirekte1.Enabled := false;
784        Pakkeshoplevering1.Enabled := false;        menuPakkeshop1.Enabled := false;
785        Returpakkerfrapakkeshop1.Enabled := false;        menuPakkeshopRetur1.Enabled := false;
786        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
787        begin        begin
788          Scanningtype := '4';          Scanningtype := '4';
789          Budlevering1.Enabled := true;          menuDaoDirekte1.Enabled := true;
790          PanelValg4.Font.Color := clWindowText;          PanelValg4.Font.Color := clWindowText;
791          PanelValg4.Enabled := true;          PanelValg4.Enabled := true;
792        end        end
# Line 884  begin Line 795  begin
795          Scanningtype := SpecialVersionScanningtype;          Scanningtype := SpecialVersionScanningtype;
796          PanelValgA.Enabled := false;          PanelValgA.Enabled := false;
797          PanelValgA.Font.Color := clInactiveCaption;          PanelValgA.Font.Color := clInactiveCaption;
798          AutomatiskValg1.Checked := false;          menuAutomatiskvalg1.Checked := false;
799          PanelValgA.Color := clBtnFace;          PanelValgA.Color := clBtnFace;
800          if Scanningtype = '1' then          if Scanningtype = '1' then
801          begin          begin
802            Pakkernormal1.Enabled := true;            menuNatXpress1.Enabled := true;
803            PanelValg1.Enabled := true;            PanelValg1.Enabled := true;
804            PanelValg1.Font.Color := clWindowText;            PanelValg1.Font.Color := clWindowText;
805          end;          end;
806          if Scanningtype = '2' then          if Scanningtype = '2' then
807          begin          begin
808            ReturpakkerfraDAO1.Enabled := true;            menuNatxpressReturDAO1.Enabled := true;
809            PanelValg2.Enabled := true;            PanelValg2.Enabled := true;
810            PanelValg2.Font.Color := clWindowText;            PanelValg2.Font.Color := clWindowText;
811          end;          end;
812          if Scanningtype = '3' then          if Scanningtype = '3' then
813          begin          begin
814            Returpakkerfraboghandler1.Enabled := true;            menuNatxpressReturfraKunde1.Enabled := true;
815            PanelValg3.Enabled := true;            PanelValg3.Enabled := true;
816            PanelValg3.Font.Color := clWindowText;            PanelValg3.Font.Color := clWindowText;
817          end;          end;
818          if Scanningtype = '4' then          if Scanningtype = '4' then
819          begin          begin
820            Budlevering1.Enabled := true;            menuDaoDirekte1.Enabled := true;
821            PanelValg4.Enabled := true;            PanelValg4.Enabled := true;
822            PanelValg4.Font.Color := clWindowText;            PanelValg4.Font.Color := clWindowText;
823          end;          end;
824          if Scanningtype = '5' then          if Scanningtype = '5' then
825          begin          begin
826            Pakkeshoplevering1.Enabled := true;            menuPakkeshop1.Enabled := true;
827            PanelValg5.Enabled := true;            PanelValg5.Enabled := true;
828            PanelValg5.Font.Color := clWindowText;            PanelValg5.Font.Color := clWindowText;
829          end;          end;
830          if Scanningtype = '6' then          if Scanningtype = '6' then
831          begin          begin
832            Returpakkerfrapakkeshop1.Enabled := true;            menuPakkeshopRetur1.Enabled := true;
833            PanelValg6.Enabled := true;            PanelValg6.Enabled := true;
834            PanelValg6.Font.Color := clWindowText;            PanelValg6.Font.Color := clWindowText;
835          end;          end;
# Line 957  begin Line 868  begin
868             RutenummerST.Caption := '';             RutenummerST.Caption := '';
869             BoghandlerNavnST.Caption := 'Fejl i urls';             BoghandlerNavnST.Caption := 'Fejl i urls';
870             KommentarST.Caption := 'Se log vinduet';             KommentarST.Caption := 'Se log vinduet';
871             PakkeshopNulstil.Visible := true;             btnNulstil.Visible := true;
872             exit;             exit;
873          end;          end;
874      end      end
# Line 999  begin Line 910  begin
910    
911      if Pakketype = '1' then      if Pakketype = '1' then
912      begin      begin
913        Storepakker1.Checked := true;        menuStorePakker.Checked := true;
914        RadioButton1.Checked := true;        radioStorPakke.Checked := true;
915      end      end
916      else      else
917      begin      begin
918        Smpakker1.Checked := true;        menuSmaaPakker.Checked := true;
919        RadioButton2.Checked := true;        radioLillePakke.Checked := true;
920      end;      end;
921    
922      if TestFunktionen = '1' then      if TestFunktionen = '1' then
# Line 1045  begin Line 956  begin
956        ScannetOkStorLyd := '';        ScannetOkStorLyd := '';
957      end;      end;
958    
959  // 20150317: start  
960      if not FileExists(ScannetOkTilTjekkodeLyd) then      if not FileExists(ScannetOkTilTjekkodeLyd) then
961      begin      begin
962        ScannetOkTilTjekkodeLyd := '';        ScannetOkTilTjekkodeLyd := '';
963      end;      end;
 // 20150317: slut  
964    
     if (PrinterNavn <> '') then  
     begin  
        printerInd := Printer.Printers.IndexOf(printerNavn);  
        if printerInd >= 0 then  
           Printer.PrinterIndex := printerInd;  
     end;  
965    
966      CheckPrintQue('Opstart');  
967    
968        LabelPrint := TLabelPrint.Create( self, Config, PrinterNavn );
969        LabelPrint.CheckPrintQue('Opstart', PrinterNavn);
970    
971    finally    finally
972      Free;      Free;
# Line 1068  begin Line 975  begin
975      // UBD skal p.t. ikke have adgang til flg. funktioner      // UBD skal p.t. ikke have adgang til flg. funktioner
976      if ( (Sted = '1') or (Sted = '2') or (Sted = '3') or (Sted = '4') ) then      if ( (Sted = '1') or (Sted = '2') or (Sted = '3') or (Sted = '4') ) then
977      begin      begin
978        ReturpakkerfraDAO1.Visible := false;        menuNatxpressReturDAO1.Visible := false;
979        Returpakkerfraboghandler1.Visible := false;        menuNatxpressReturfraKunde1.Visible := false;
980        Budlevering1.Visible := false;        menuDaoDirekte1.Visible := false;
981        Storepakker1.Visible := false;        menuStorePakker.Visible := false;
982        Smpakker1.Visible := false;        menuSmaaPakker.Visible := false;
983        Testprinter1.Visible := false;        Testprinter1.Visible := false;
984        Pakkeshoplevering1.Visible := false;        menuPakkeshop1.Visible := false;
985        Returpakkerfrapakkeshop1.Visible := false;        menuPakkeshopRetur1.Visible := false;
986      end;      end;
987    
988      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
# Line 1083  begin Line 990  begin
990          InitBladhus();          InitBladhus();
991        end;        end;
992    
993  // 20150310: start  
994      // Opbygger PanelManglendePakker information      // Opbygger PanelManglendePakker information
995      gemScanningtype := Scanningtype;      gemScanningtype := Scanningtype;
996    
# Line 1124  begin Line 1031  begin
1031      end;      end;
1032    
1033      Scanningtype := gemScanningtype;      Scanningtype := gemScanningtype;
 // 20150310: slut  
1034    
1035      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');
1036      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion('',''));      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', TUtils.Sto_GetFmtFileVersion(''));
1037    
1038  end;  end;
1039    
# Line 1145  var Line 1051  var
1051    BoghandlerNavn : String;    BoghandlerNavn : String;
1052    Koreliste : String;    Koreliste : String;
1053    PrintNyLabel : Boolean;    PrintNyLabel : Boolean;
   List1msg : String;  
1054    pakkeErScannet : Integer;    pakkeErScannet : Integer;
1055    pakkeForkertSted : Integer;    pakkeForkertSted : Integer;
1056    tjekkodeMangler : Integer;    tjekkodeMangler : Integer;
# Line 1170  begin Line 1075  begin
1075      ClipboardData := Clipboard.AsText;      ClipboardData := Clipboard.AsText;
1076      numberString := ClipboardData;      numberString := ClipboardData;
1077      Val(numberString, float, errorPos);      Val(numberString, float, errorPos);
1078  // 20150311: start  
1079  //    if (ClipboardData <> '') and (errorPos = 0) then      //    if (ClipboardData <> '') and (errorPos = 0) then
1080      if (ClipboardData <> '') and (errorPos = 0)      if (ClipboardData <> '') and (errorPos = 0)
1081      or (NumberString = 'Nulstil')      or (NumberString = 'Nulstil')
1082      or (NumberString = 'Indtast kundenummer')      or (NumberString = 'Indtast kundenummer')
# Line 1185  begin Line 1090  begin
1090      or (NumberString = 'Retur fra kunde')      or (NumberString = 'Retur fra kunde')
1091      or (NumberString = 'DAO DIREKTE')      or (NumberString = 'DAO DIREKTE')
1092      or (NumberString = 'DAO PAKKESHOP')      or (NumberString = 'DAO PAKKESHOP')
1093        or (NumberString = 'DAO PAKKESHOP')
1094        or (LowerCase(NumberString) = 'for stor hjemmelevering' )
1095            or (LowerCase(NumberString) = 'for stor daodirekte' )
1096      or (NumberString = 'Retur fra pakkeshop') then      or (NumberString = 'Retur fra pakkeshop') then
1097  // 20150311: slut  
1098      begin      begin
1099        Stregkode := Stregkode + ClipboardData;        Stregkode := Stregkode + ClipboardData;
1100        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1195  begin Line 1103  begin
1103      begin      begin
1104        ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift');        ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift');
1105      end;      end;
1106    end;    end;  // Slut ctrl-v
1107    
1108    if Key = #13 then     // Enter    if Key = #13 then     // Enter
1109    begin    begin
1110  // 20150306: start  
1111      if (Length(Trim(Stregkode)) = 0) then      // Sikre at den er trimmet inden vi går videre - DBK kan finde på at encode et space i enden af deres barcodes
1112        Stregkode := Trim(Stregkode);
1113    
1114        if (Length(Stregkode) = 0) then
1115      begin      begin
1116        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );
1117        List1msg := 'Der skal scannes en stregkode...';  
       ListBox1.Items.Insert(0,List1Msg);  
       MainForm.Color := clRed;  
 // 20150316: start  
       RuteNummerST.Caption := '';  
       BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
       KommentarST.Caption := List1msg;  
       PakkeshopNulstil.Visible := true;  
1118        exit;        exit;
1119      end;      end;
 // 20150306: slut  
1120    
 // 20150311: start  
1121      if StregKode = 'Nulstil' then      if StregKode = 'Nulstil' then
1122      begin      begin
1123         PakkeshopNulstil.Click();         btnNulstil.Click();
1124         exit;         exit;
1125      end;      end;
1126    
1127      if PakkeshopNulstil.Visible then      if btnNulstil.Visible then
1128      begin      begin
1129         PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'HUSK at klikke Nulstil før ny scanning...' );
1130  // 20150312: start  
 //       List1msg := 'HUSK at trykke Nulstil før ny scanning...';  
        List1msg := 'HUSK at klikke Nulstil før ny scanning...';  
 // 20150312: slut  
        ListBox1.Items.Insert(0,List1Msg);  
        MainForm.Color := clRed;  
        KommentarST.Caption := List1msg;  
 // 20150312: start  
        Stregkode := '';  
        StregkodeST.Caption := StregKode;  
 // 20150312: slut  
1131         exit;         exit;
1132      end;      end;
1133    
1134      if StregKode = 'Lille pakke' then      if StregKode = 'Lille pakke' then
1135      begin      begin
1136         if RadioButton2.Enabled = true then         if radioLillePakke.Enabled = true then
1137         begin         begin
1138            InitLillePakke();            InitLillePakke();
1139         end         end
1140         else         else
1141         begin         begin
1142          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1143         end;         end;
1144         Stregkode := '';         Stregkode := '';
1145         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1268  begin Line 1148  begin
1148    
1149      if StregKode = 'Stor pakke' then      if StregKode = 'Stor pakke' then
1150      begin      begin
1151         if RadioButton1.Enabled = true then         if radioStorPakke.Enabled = true then
1152         begin         begin
1153            InitStorPakke();            InitStorPakke();
1154         end         end
1155         else         else
1156         begin         begin
1157          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1158         end;         end;
1159         Stregkode := '';         Stregkode := '';
1160         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1161         exit;         exit;
1162      end;      end;
1163    
1164        if (LowerCase(StregKode) = 'for stor hjemmelevering') OR (LowerCase(StregKode) = 'for stor daodirekte') then
1165        begin
1166          if chkForstorTilDirekte.Enabled then
1167          begin
1168            chkForstorTilDirekte.Checked := true;
1169          end
1170          else
1171          begin
1172             VisAlarmSkaerm( Stregkode + ' kan ikke vælges på denne scannings tilstand' );
1173          end;
1174          Stregkode := '';
1175          StregkodeST.Caption := StregKode;
1176          exit;
1177        end;
1178    
1179    
1180      if StregKode = 'Indtast kundenummer' then      if StregKode = 'Indtast kundenummer' then
1181      begin      begin
1182         if chkSporgEfterKunde.Enabled = true then         if chkSporgEfterKunde.Enabled = true then
# Line 1307  begin Line 1192  begin
1192         end         end
1193         else         else
1194         begin         begin
1195          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1196         end;         end;
1197         Stregkode := '';         Stregkode := '';
1198         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1340  begin Line 1214  begin
1214        end        end
1215        else        else
1216        begin        begin
1217          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1218        end;        end;
1219        Stregkode := '';        Stregkode := '';
1220        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1366  begin Line 1229  begin
1229         end         end
1230         else         else
1231         begin         begin
1232          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm(Stregkode + ' kan ikke vælges på dette scanningsted');
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1233         end;         end;
1234         Stregkode := '';         Stregkode := '';
1235         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1236         exit;         exit;
1237      end;      end;
1238    
1239  // 20150323: start  
 //    if StregKode = 'DAO NAT X-PRESS' then  
1240      if (StregKode = 'DAO NAT X-PRESS' ) or (StregKode = 'DAO NAT X+PRESS') then      if (StregKode = 'DAO NAT X-PRESS' ) or (StregKode = 'DAO NAT X+PRESS') then
 // 20150323: slut  
1241      begin      begin
1242         if (PanelValg1.Enabled = true) then         if (PanelValg1.Enabled = true) then
1243         begin         begin
# Line 1395  begin Line 1245  begin
1245         end         end
1246         else         else
1247         begin         begin
1248          //ShowMessage('Ændring ikke tilladt');          VisAlarmSkaerm(Stregkode + ' kan ikke vælges på dette scanningsted');
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1249         end;         end;
1250         Stregkode := '';         Stregkode := '';
1251         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1421  begin Line 1260  begin
1260         end         end
1261         else         else
1262         begin         begin
1263          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1264         end;         end;
1265         Stregkode := '';         Stregkode := '';
1266         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1447  begin Line 1275  begin
1275         end         end
1276         else         else
1277         begin         begin
1278          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1279         end;         end;
1280         Stregkode := '';         Stregkode := '';
1281         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1473  begin Line 1290  begin
1290         end         end
1291         else         else
1292         begin         begin
1293          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1294         end;         end;
1295         Stregkode := '';         Stregkode := '';
1296         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1499  begin Line 1305  begin
1305         end         end
1306         else         else
1307         begin         begin
1308          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1309         end;         end;
1310         Stregkode := '';         Stregkode := '';
1311         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1525  begin Line 1320  begin
1320         end         end
1321         else         else
1322         begin         begin
1323          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1324         end;         end;
1325         Stregkode := '';         Stregkode := '';
1326         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1327         exit;         exit;
1328      end;      end;
1329  // 20150311: slut  
1330    
1331      if (Length(Stregkode) > 8) then      if (Length(Stregkode) > 8) then
1332      begin      begin
1333        // Her skal vi så forespørge pakketype på serveren udfra stregkode feltet        // Her skal vi så forespørge pakketype på serveren udfra stregkode feltet
1334        URLStr := Format(UrlFindPakketype,[Stregkode]);        URLStr := Format(Config.UrlFindPakketype,[Stregkode]);
1335        try        try
1336          //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST          //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
1337          WebSvar := IdHTTP1.Get(URLStr);          WebSvar := IdHTTP1.Get(URLStr);
# Line 1590  begin Line 1374  begin
1374        Pakkescanningtype := Scanningtype;        Pakkescanningtype := Scanningtype;
1375      end;      end;
1376    
1377      if (   (Pakkescanningtype = '1') and (PanelValg1.Enabled = false)      if (   ( (Pakkescanningtype = '1') and (PanelValg1.Enabled = false) )
1378          or (Pakkescanningtype = '2') and (PanelValg2.Enabled = false)          or ( (Pakkescanningtype = '2') and (PanelValg2.Enabled = false) )
1379          or (Pakkescanningtype = '3') and (PanelValg3.Enabled = false)          or ( (Pakkescanningtype = '3') and (PanelValg3.Enabled = false) )
1380          or (Pakkescanningtype = '4') and (PanelValg4.Enabled = false)          or ( (Pakkescanningtype = '4') and (PanelValg4.Enabled = false) )
1381          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)          or ( (Pakkescanningtype = '5') and (PanelValg5.Enabled = false) )
1382          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then          or ( (Pakkescanningtype = '6') and (PanelValg6.Enabled = false) ) ) then
1383      begin   // Her skal komme en alarm og rød skærm      begin   // Her skal komme en alarm og rød skærm
1384         PlaySound(PWideChar(AlarmLyd));          VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1385         List1msg := 'Pakketype ' + Pakketype + ' kan ikke scannes på dette scanningsted';  
        ListBox1.Items.Insert(0,List1Msg);  
        MainForm.Color := clRed;  
 // 20150316: start  
        RuteNummerST.Caption := '';  
        BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
        KommentarST.Caption := List1msg;  
        PakkeshopNulstil.Visible := true;  
 // 20150311: start  
        StregKode := '';  
        StregkodeST.Caption := StregKode;  
 // 20150311: slut  
1386         exit;         exit;
1387      end;      end;
1388    
1389      if Automatiskvalg1.Checked and (Length(Stregkode) > 8) then      if (menuAutomatiskvalg1.Checked and (Length(Stregkode) > 8) ) then
1390      begin      begin
1391        GemStregkode := Stregkode;        GemStregkode := Stregkode;
1392        if Pakketype = 'NatXpress' then        if Pakketype = 'NatXpress' then
# Line 1626  begin Line 1398  begin
1398              end;              end;
1399            end            end
1400        // Retur kan ikke scannes med 'Automatisk valg'        // Retur kan ikke scannes med 'Automatisk valg'
1401  (*  
       else if Pakketype = 'NatXpressReturDAO' then  
           begin  
             if Scanningtype <> '2' then  
             begin  
               Scanningtype := '2';  
               InitReturFraDao();  
             end;  
           end  
       else if Pakketype = 'NatXpressReturKunde' then  
           begin  
             if Scanningtype <> '3' then  
             begin  
               Scanningtype := '3';  
               InitReturFraKunde();  
             end;  
           end  
 *)  
1402        else if Pakketype = 'Direkte' then        else if Pakketype = 'Direkte' then
1403            begin            begin
1404              if Scanningtype <> '4' then              if Scanningtype <> '4' then
# Line 1660  begin Line 1415  begin
1415                InitPakkeshoplevering();                InitPakkeshoplevering();
1416              end;              end;
1417            end            end
1418        // Retur kan ikke scannes med 'Automatisk valg'       else if Pakketype = 'PakkeshopRetur' then
 (*  
       else if Pakketype = 'PakkeshopRetur' then  
1419            begin            begin
1420              if Scanningtype <> '6' then              if Scanningtype <> '6' then
1421              begin              begin
1422                Scanningtype := '6';               VisAlarmSkaerm( Stregkode + ' Pakkeshop retur,'#13#10' kan ikke bruges med automatisk valg' );
1423                InitReturFraPakkeshop();  
1424                 exit;
1425              end;              end;
1426            end            end
1427  *)  
1428    
1429        else        else
1430            begin   // Her skal komme en alarm og rød skærm            begin
1431               PlaySound(PWideChar(AlarmLyd));            // Her skal komme en alarm og rød skærm
1432               List1msg := 'Pakken kan ikke scannes med automatisk valg';              //VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1433               ListBox1.Items.Insert(0,List1Msg);               VisAlarmSkaerm( Stregkode + ' kan ikke bruges med automatisk valg' );
1434               MainForm.Color := clRed;  
 // 20150316: start  
              RuteNummerST.Caption := '';  
              BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
              KommentarST.Caption := List1msg;  
              PakkeshopNulstil.Visible := true;  
 // 20150311: start  
              StregKode := '';  
              StregkodeST.Caption := StregKode;  
 // 20150311: slut  
1435               exit;               exit;
1436            end;            end;
1437        Stregkode := GemStregkode;        Stregkode := GemStregkode;
1438      end      end
1439      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then      else if menuAutomatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then
1440      begin      begin
1441        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );
1442        List1msg := 'Pakkenummer ikke gyldigt (for kort)';  
       ListBox1.Items.Insert(0,List1Msg);  
       MainForm.Color := clRed;  
 // 20150316: start  
       RuteNummerST.Caption := '';  
       BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
       KommentarST.Caption := List1msg;  
       PakkeshopNulstil.Visible := true;  
 // 20150312: start  
       StregKode := '';  
       StregkodeST.Caption := StregKode;  
 // 20150312: slut  
1443        exit;        exit;
1444      end;      end;
1445    
1446      if not Automatiskvalg1.Checked then      if not menuAutomatiskvalg1.Checked then
1447      begin      begin
1448        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then
1449        begin        begin
         PlaySound(PWideChar(AlarmLyd));  
         List1msg := 'Pakke findes som pakketype: ' + Pakketype;  
         ListBox1.Items.Insert(0,List1Msg);  
         MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
         KommentarST.Caption := List1msg;  
         PakkeshopNulstil.Visible := true;  
 // 20150312: start  
         StregKode := '';  
         StregkodeST.Caption := StregKode;  
 // 20150312: slut  
         exit;  
       end;  
     end;  
   
 // 20150311: start  
 (*  
     if StregKode = 'Nulstil' then  
     begin  
        PakkeshopNulstil.Click();  
        exit;  
     end;  
   
     if PakkeshopNulstil.Visible then  
     begin  
        PlaySound(PWideChar(AlarmLyd));  
        List1msg := 'HUSK at trykke Nulstil før ny scanning...';  
        ListBox1.Items.Insert(0,List1Msg);  
        MainForm.Color := clRed;  
        KommentarST.Caption := List1msg;  
        exit;  
     end;  
1450    
1451      if StregKode = 'Lille pakke' then          VisAlarmSkaerm( 'Pakke findes som pakketype: ' + Pakketype );
     begin  
        InitLillePakke();  
        exit;  
     end;  
1452    
1453      if StregKode = 'Stor pakke' then          exit;
1454      begin        end;
        InitStorPakke();  
        exit;  
     end;  
   
     if StregKode = 'Indtast kundenummer' then  
     begin  
        if (CheckBox1.State = cbChecked) then  
        begin  
         CheckBox1.State := cbUnchecked;  
        end  
        else  
        begin  
         CheckBox1.State := cbChecked;  
        end;  
        Stregkode := '';  
        exit;  
1455      end;      end;
1456    
     if (Stregkode = 'Scan tjekkode') or (PakkeshopStregkode = 'Scan tjekkode') or (BoghandlerStregkode = 'Scan tjekkode') then  
     begin  
        if (CheckBox3.State = cbChecked) then  
        begin  
         CheckBox3.State := cbUnchecked;  
        end  
        else  
        begin  
         CheckBox3.State := cbChecked;  
        end;  
        Stregkode := '';  
        exit;  
     end;  
 *)  
 // 20150311: slut  
1457    
1458    
1459      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and menuAutomatiskTjekkodeStyring.Checked then
1460      begin      begin
1461        chkScanTjekkode.Checked := false;        chkScanTjekkode.Checked := false;
1462        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do
# Line 1806  begin Line 1469  begin
1469        end;        end;
1470      end;      end;
1471    
1472      if Pakkernormal1.Checked and not Scanogstjekkoden1.Checked then      if menuNatXpress1.Checked and not Scanogstjekkoden1.Checked then
1473        begin        begin
1474          // Når vi ikke kræver tjekkode er alt ok her          // Når vi ikke kræver tjekkode er alt ok her
1475             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1476             BoghandlerTjekkode := '';             BoghandlerTjekkode := '';
1477             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1478             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1479             Stregkode := '';             Stregkode := '';
1480             InitScreen();             InitScreen();
1481        end        end
1482      else if (PakkeshopLevering1.Checked or Pakkernormal1.Checked) and not Scanogstjekkoden1.Checked then      else if (menuPakkeshop1.Checked or menuNatXpress1.Checked) and not Scanogstjekkoden1.Checked then
1483        begin        begin
1484          // Når vi ikke kræver tjekkode er alt ok her          // Når vi ikke kræver tjekkode er alt ok her
1485             PakkeshopStregkode := Stregkode;             PakkeshopStregkode := Stregkode;
# Line 1824  begin Line 1487  begin
1487             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1488             BoghandlerTjekkode := '-1';             BoghandlerTjekkode := '-1';
1489             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1490             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1491             Stregkode := '';             Stregkode := '';
1492             InitScreen();             InitScreen();
1493        end        end
1494      else if PakkeshopLevering1.Checked or Pakkernormal1.Checked then      else if menuPakkeshop1.Checked or menuNatXpress1.Checked then
1495        if PakkeshopText1.Caption = 'Stregkode' then        if PakkeshopText1.Caption = 'Stregkode' then
1496         begin         begin
1497            if length(Stregkode) > 5 then            if length(Stregkode) > 5 then
# Line 1836  begin Line 1499  begin
1499              PakkeshopStregkode := Stregkode;              PakkeshopStregkode := Stregkode;
1500              BoghandlerStregkode := Stregkode;              BoghandlerStregkode := Stregkode;
1501              PakkeshopText1.Caption := 'Tjekkode';              PakkeshopText1.Caption := 'Tjekkode';
1502  // 20150317: start  
1503              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));
1504  // 20150317: slut  
1505             end             end
1506            else            else
1507             begin             begin
1508                List1msg := 'Du skal scanne en stregkode';                VisAlarmSkaerm( 'Du skal scanne en stregkode' );
               ListBox1.Items.Insert(0,List1Msg);  
               //logTekst := RightStr(List1Msg, Length(List1Msg)-10);  
               //SkrivScanningLogFil(logTekst);  
               PlaySound(PWideChar(AlarmLyd));  
               PakkeshopNulstil.Visible := true;  
               MainForm.Color := clRed;  
1509             end;             end;
1510            Stregkode := '';            Stregkode := '';
1511            InitScreen();            InitScreen();
# Line 1860  begin Line 1517  begin
1517             PakkeshopTjekkode := Stregkode;             PakkeshopTjekkode := Stregkode;
1518             BoghandlerTjekkode := Stregkode;             BoghandlerTjekkode := Stregkode;
1519             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1520             if (PakkeshopLevering1.Checked) then             if (menuPakkeshop1.Checked) then
1521                MainForm.Color := HexToTColor(FarvePakkeshoplevering);                MainForm.Color := TUtils.HexToTColor(Config.FarvePakkeshoplevering);
1522             if (Pakkernormal1.Checked) then             if (menuNatXpress1.Checked) then
1523                MainForm.Color := HexToTColor(FarveNormal);                MainForm.Color := TUtils.HexToTColor(Config.FarveNormal);
1524             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1525           end           end
1526          else          else
1527           begin           begin
1528                if (PakkeshopLevering1.Checked) then                if (menuPakkeshop1.Checked) then
1529                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);
1530                if (Pakkernormal1.Checked) then                if (menuNatXpress1.Checked) then
1531                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);
1532                KommentarST.Caption := List1msg;                  
               ListBox1.Items.Insert(0,List1Msg);  
               //logTekst := RightStr(List1Msg, Length(List1Msg)-10);  
               //SkrivScanningLogFil(logTekst);  
               PlaySound(PWideChar(AlarmLyd));  
               PakkeshopNulstil.Visible := true;  
               MainForm.Color := clRed;  
 // 20150323: start  
1533                StregKode := '';                StregKode := '';
1534                StregkodeST.Caption := StregKode;                StregkodeST.Caption := StregKode;
1535  // 20150323: slut  
1536                exit;                exit;
1537           end;           end;
1538          Stregkode := '';          Stregkode := '';
1539          InitScreen();          InitScreen();
1540       end;       end;
1541    
1542      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      if not menuPakkeshop1.Checked and not menuNatXpress1.Checked or (menuPakkeshop1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '')) or (menuNatXpress1.Checked and (Scanogstjekkoden1.Checked and (BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked)) then
1543      begin      begin
1544         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then  
1545           if menuPakkeshop1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then
1546            StregKode := PakkeshopStregkode;            StregKode := PakkeshopStregkode;
1547         if Pakkernormal1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then         if menuNatXpress1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then
1548            StregKode := BoghandlerStregkode;            StregKode := BoghandlerStregkode;
1549         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1550         try         try
# Line 1903  begin Line 1554  begin
1554            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her
1555            if Rutenummer = 'sql fejl' then            if Rutenummer = 'sql fejl' then
1556            begin   // Her skal komme en alarm og rød skærm            begin   // Her skal komme en alarm og rød skærm
1557               PlaySound(PWideChar(AlarmLyd));               VisAlarmSkaerm( 'SQL fejl: ' + Kommentar );
1558               //List1msg := 'SQL fejl: ' + Kommentar;  
              //ListBox1.Items.Insert(0,List1Msg);  
              MainForm.Color := clRed;  
              //KommentarST.Caption := List1msg;  
              PakkeshopNulstil.Visible := true;  
1559              exit;              exit;
1560            end;            end;
1561            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then            if (menuNatXpress1.Checked or menuDaoDirekte1.Checked or menuPakkeshop1.Checked) then
1562            begin            begin
1563              PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel);              PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel);
1564              pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);              pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
# Line 1928  begin Line 1575  begin
1575              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then
1576              begin              begin
1577                PlaySound(PWideChar(AlarmLyd));                PlaySound(PWideChar(AlarmLyd));
1578                PakkeshopNulstil.Visible := true;                btnNulstil.Visible := true;
1579                MainForm.Color := clRed;                MainForm.Color := clRed;
1580              end;              end;
1581           end;           end;
1582            if ( Pakkernormal1.Checked and (pakkeErScannet = 0) and (pakkeForkertSted = 0) and (tjekkodemangler = 0) and (RuteNummerST.Caption <> 'Ukendt') ) or (Copy(Kommentar,1,2) = 'Ok') then            if ( menuNatXpress1.Checked and (pakkeErScannet = 0) and (pakkeForkertSted = 0) and (tjekkodemangler = 0) and (RuteNummerST.Caption <> 'Ukendt') ) or (Copy(Kommentar,1,2) = 'Ok') then
1583            begin            begin
1584              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1585              if Storepakker1.Checked then              if menuStorePakker.Checked then
1586              begin              begin
1587                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
1588              end              end
# Line 1943  begin Line 1590  begin
1590              begin              begin
1591                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1592              end;              end;
1593              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1594            end            end
1595            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then            else if (menuNatxpressReturDAO1.Checked or menuNatxpressReturfraKunde1.Checked) then
1596            begin            begin
1597              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1598              if Storepakker1.Checked then              if menuStorePakker.Checked then
1599              begin              begin
1600                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
1601              end              end
# Line 1956  begin Line 1603  begin
1603              begin              begin
1604                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1605              end;              end;
1606              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1607            end            end
1608            else if Copy(Kommentar,1,8) = 'OPRETTET' then            else if Copy(Kommentar,1,8) = 'OPRETTET' then
1609            begin            begin
1610              List1msg := 'Pakke ' + PakkeshopStregkode + ' skal gemmes på lager indtil data modtages';              VisAlarmSkaerm( 'Pakke ' + PakkeshopStregkode + ' skal gemmes på lager indtil data modtages' );
             ListBox1.Items.Insert(0,List1Msg);  
             MainForm.Color := clRed;  
             PlaySound(PWideChar(AlarmLyd));  
             PakkeshopNulstil.Visible := true;  
1611            end            end
1612            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'
1613            begin            begin
1614            end            end
1615            else            else
1616            begin            begin
1617              MainForm.Color := clRed;              VisAlarmSkaerm('');
             PlaySound(PWideChar(AlarmLyd));  
             PakkeshopNulstil.Visible := true;  
1618            end;            end;
1619           if not PakkeshopNulstil.Visible then  
1620             if not btnNulstil.Visible then
1621            begin            begin
1622  // 20150310: start  
1623  //            SletStregkodelinieFraListboks2(StregKode);              If (menuDaoDirekte1.Checked) then
 // 20150310: slut  
             If (Budlevering1.Checked) then  
1624              begin              begin
1625                if Storepakker1.Checked then                if menuStorePakker.Checked then
1626                begin                begin
1627                  PlaySound(PWideChar(ScannetOkStorLyd));                  PlaySound(PWideChar(ScannetOkStorLyd));
1628                end                end
# Line 1993  begin Line 1633  begin
1633                InitLillePakke();                InitLillePakke();
1634              end;              end;
1635            end;            end;
1636  // 20150310: start  
1637            SletStregkodelinieFraListboks2(StregKode);            SletStregkodelinieFraListboks2(StregKode);
1638  // 20150310: slut  
1639            PakkeshopStregkode := '';            PakkeshopStregkode := '';
1640            PakkeshopTjekkode := '';            PakkeshopTjekkode := '';
1641            BoghandlerStregkode := '';            BoghandlerStregkode := '';
# Line 2026  begin Line 1666  begin
1666    
1667    Key := #0;    Key := #0;
1668    
1669  end;  
1670    
1671    
1672    
1673    
1674    end; //End of OnKeyPress
1675    
1676    
1677    
1678  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
1679  const  const
# Line 2035  var Line 1682  var
1682    WebSvar : String;    WebSvar : String;
1683    URLStr : String;    URLStr : String;
1684  begin  begin
1685    if UrlSendPrograminfo <> '' then    if Config.UrlSendPrograminfo <> '' then
1686    begin    begin
1687      URLStr := Format(UrlSendPrograminfo,[ExtractFileName(ParamStr(0)), Sted, Scanningtype, Infotype, Info]);      URLStr := Format(Config.UrlSendPrograminfo,[ExtractFileName(ParamStr(0)), Sted, Scanningtype, Infotype, Info]);
1688      try      try
1689        //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST        //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
1690        WebSvar := IdHTTP1.Get(URLStr);        WebSvar := IdHTTP1.Get(URLStr);
# Line 2050  begin Line 1697  begin
1697        ShowMessage(logTekst);        ShowMessage(logTekst);
1698        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
1699        // Vi nulstiller lige url feltet så rutinen ikke kaldes igen i forbindelse med lukning af programmet        // Vi nulstiller lige url feltet så rutinen ikke kaldes igen i forbindelse med lukning af programmet
1700        UrlSendPrograminfo := '';        Config.UrlSendPrograminfo := '';
1701        Application.Terminate;        Application.Terminate;
1702      end;      end;
1703      end;      end;
# Line 2063  end; Line 1710  end;
1710    
1711  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);
1712  var  var
 // 20150309: start  
 //  i:integer;  
1713    i : Integer;    i : Integer;
1714    wrkAntal : String;    wrkAntal : String;
1715    wrkAntalIdag, wrkAntalSenere : Integer;    wrkAntalIdag, wrkAntalSenere : Integer;
1716  // 20150309: slut  
1717    
1718  begin  begin
1719      if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked then      if menuDaoDirekte1.Checked or menuPakkeshop1.Checked or menuPakkeshopRetur1.Checked or menuNatXpress1.Checked or menuIndlevering.Checked then
1720      begin      begin
1721        for i := ListBox2.items.count-1 downto 0 do        for i := ListBox2.items.count-1 downto 0 do
1722          if pos(StregKode,ListBox2.items[i]) <> 0 then          if pos(StregKode,ListBox2.items[i]) <> 0 then
1723          begin          begin
1724  // 20150309: start            wrkAntalSenere := 0;//initial Value
1725    
1726            // Ajourføring af tæller for manglende pakker (scanninger)            // Ajourføring af tæller for manglende pakker (scanninger)
1727            wrkAntal := StaticTextManglendePakker.Caption;            wrkAntal := StaticTextManglendePakker.Caption;
1728            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere
1729            begin            begin
1730              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen
1731              wrkAntalIdag := StrToInt(split(wrkAntal, '/', 2));              wrkAntalIdag := StrToInt( TUtils.split(wrkAntal, '/', 2));
1732  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));
1733  //            ShowMessage(SPLIT('data/another/','/',3));  //            ShowMessage(SPLIT('data/another/','/',3));
1734  //            ShowMessage(SPLIT('data/another','/',3));  //            ShowMessage(SPLIT('data/another','/',3));
1735              wrkAntalSenere := StrToInt(split(wrkAntal, '/', 3));              wrkAntalSenere := StrToInt( TUtils.split(wrkAntal, '/', 3));
1736            end            end
1737            else     // kun idag            else     // kun idag
1738            begin            begin
# Line 2112  begin Line 1758  begin
1758            begin            begin
1759              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);
1760            end;            end;
 // 20150309: slut  
1761    
 // 20150310: start  
1762            if (Scanningtype = '1') then            if (Scanningtype = '1') then
1763            begin            begin
1764              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
# Line 2192  begin Line 1836  begin
1836                PanelManglendePakker6.Visible := false;                PanelManglendePakker6.Visible := false;
1837              end;              end;
1838            end;            end;
1839  // 20150310: slut  
1840            ListBox2.items.delete(i);            ListBox2.items.delete(i);
1841          end;          end;
1842      end;      end;
# Line 2219  begin Line 1863  begin
1863  end;  end;
1864    
1865  procedure TMainForm.InitBladhus();  procedure TMainForm.InitBladhus();
 var  
   LogFilnavn : string;  
1866    
1867  begin  begin
1868    Altidprintepakkelabel1.Enabled := false;    Altidprintepakkelabel1.Enabled := false;
1869    Pakkernormal1.Visible := false;    menuNatXpress1.Visible := false;
1870    ReturpakkerfraDAO1.Visible := false;    menuNatxpressReturDAO1.Visible := false;
1871    Returpakkerfraboghandler1.Visible := false;    menuNatxpressReturfraKunde1.Visible := false;
1872    Sprgefterboghandlernummer1.Enabled := false;    Sprgefterboghandlernummer1.Enabled := false;
1873    ListBox1.Visible := true;    ListBox1.Visible := true;
1874  //  TestFunktionen := '1';  //  TestFunktionen := '1';
1875  // 20150317: start  
1876  (*    if menuDaoDirekte1.Checked then
   if TestFunktionen = '1' then  
     begin  
       Testforbindelsen1.Visible := true;  
       Testprinter1.Visible := true;  
       Testlyd1.Visible := true;  
       Testlyd2.Visible := true;  
     end  
   else if TestFunktionen = '2' then  
     begin  
       Testforbindelsen1.Enabled := false;  
       Testprinter1.Enabled := false;  
       Testlyd1.Enabled := false;  
       Testlyd2.Enabled := false;  
     end  
   else  
     begin  
       Testforbindelsen1.Visible := false;  
       Testprinter1.Visible := false;  
       Testlyd1.Visible := false;  
       Testlyd2.Visible := false;  
     end;  
   Testprinter1.Visible := false;  
   AlarmLyd := 'Sounds\Alarm.wav';  
   if not FileExists(AlarmLyd) then  
     begin  
       AlarmLyd := '';  
     end;  
   ScannetOkLyd := 'Sounds\Ok.wav';  
   if not FileExists(ScannetOkLyd) then  
     begin  
       ScannetOkLyd := '';  
     end;  
   ScannetOkStorLyd := 'Sounds\Ok_stor.wav';  
   if not FileExists(ScannetOkStorLyd) then  
     begin  
       ScannetOkStorLyd := '';  
     end;  
 *)  
 // 20150317: slut  
   if Budlevering1.Checked then  
1877    begin    begin
1878      IndlesScanningLogFil();      IndlesScanningLogFil();
1879    end;    end;
# Line 2283  begin Line 1885  begin
1885      01 :      01 :
1886            begin;      // NS            begin;      // NS
1887              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1888              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1889              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1890              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1891              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1892              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';
# Line 2295  begin Line 1897  begin
1897      02 :      02 :
1898            begin;    // BK            begin;    // BK
1899              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1900              Smpakker1.Enabled := true;              menuSmaaPakker.Enabled := true;
1901              Storepakker1.Enabled := true;              menuStorePakker.Enabled := true;
1902              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
1903              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
1904              DownloadButton01.Enabled := false;     // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;     // kontrolfil bruges ikke her
1905              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1906              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1907              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1908              IndlesManglendeScanninger();              IndlesManglendeScanninger();
# Line 2310  begin Line 1912  begin
1912              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1913             if (getProddag() = 'lørdag') then             if (getProddag() = 'lørdag') then
1914              begin              begin
1915                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
1916              end              end
1917              else              else
1918              begin              begin
1919                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
1920              end;              end;
1921              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1922              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1923              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1924              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1925              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';
# Line 2333  begin Line 1935  begin
1935            end;            end;
1936      04 :  begin;           // DBK      04 :  begin;           // DBK
1937              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1938              Smpakker1.Enabled := true;              menuSmaaPakker.Enabled := true;
1939              Storepakker1.Enabled := true;              menuStorePakker.Enabled := true;
1940              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
1941              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
1942              DownloadButton01.Enabled := false;    // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;    // kontrolfil bruges ikke her
1943              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1944              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1945              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1946            end;            end;
# Line 2354  var Line 1956  var
1956    URLStr : String;    URLStr : String;
1957    pakkestorrelse : String;    pakkestorrelse : String;
1958    PrintNyLabelInteger : Integer;    PrintNyLabelInteger : Integer;
1959    
1960      PakkeshopLabel: TPakkeshopLabel;
1961  begin  begin
1962    if RadioButton1.Checked then    if radioStorPakke.Checked then
1963    begin    begin
1964      pakkestorrelse := 'Stor';      pakkestorrelse := 'Stor';
1965    end;    end;
1966    if RadioButton2.Checked then    if radioLillePakke.Checked then
1967    begin    begin
1968      pakkestorrelse := 'Lille';      pakkestorrelse := 'Lille';
1969    end;    end;
1970    if Pakkernormal1.Checked then  
1971    
1972      if menuNatXpress1.Checked then
1973    begin    begin
1974       if (BoghandlerTjekkode = '') then       if (BoghandlerTjekkode = '') then
1975       begin       begin
1976         BoghandlerTjekkode := '-1';         BoghandlerTjekkode := '-1';
1977       end;       end;
1978       URLStr := Format(UrlNormal,[Sted, PakkeNr, BoghandlerNummer, BoghandlerTjekkode]);       URLStr := Format(Config.UrlNormal,[Sted, PakkeNr, BoghandlerNummer, BoghandlerTjekkode]);
1979    end    end
1980    else if ReturpakkerfraDAO1.Checked then    else if menuNatxpressReturDAO1.Checked then
1981    begin    begin
1982       URLStr := Format(UrlReturDAO,[Sted, PakkeNr, BoghandlerNummer, 'DAO', pakkestorrelse]);       URLStr := Format(Config.UrlReturDAO,[Sted, PakkeNr, BoghandlerNummer, 'DAO', pakkestorrelse]);
1983    end    end
1984    else if Returpakkerfraboghandler1.Checked then    else if menuNatxpressReturfraKunde1.Checked then
1985    begin    begin
1986       URLStr := Format(UrlReturBoghandler,[Sted, PakkeNr, BoghandlerNummer, 'Boghandler', pakkestorrelse]);       URLStr := Format(Config.UrlReturBoghandler,[Sted, PakkeNr, BoghandlerNummer, 'Boghandler', pakkestorrelse]);
1987    end    end
1988    else if Budlevering1.Checked then    else if menuDaoDirekte1.Checked then
1989    begin    begin
1990       URLStr := Format(UrlBudlevering,[Sted, PakkeNr, 'bud', pakkestorrelse]);       URLStr := Format(Config.UrlBudlevering,[Sted, PakkeNr, 'bud', pakkestorrelse]);
1991    end    end
1992    else if Pakkeshoplevering1.Checked then    else if menuPakkeshop1.Checked then
1993    begin    begin
1994       URLStr := Format(UrlPakkeshoplevering,[Sted, PakkeNr, PakkeshopTjekkode]);       URLStr := Format(Config.UrlPakkeshoplevering,[Sted, PakkeNr, PakkeshopTjekkode]);
1995    end    end
1996    else if Returpakkerfrapakkeshop1.Checked then    else if menuPakkeshopRetur1.Checked then
1997    begin    begin
1998       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);       URLStr := Format(Config.UrlReturPakkeshop,[Sted, PakkeNr]);
1999      end
2000      else if menuIndlevering.Checked then
2001      begin
2002        URLStr := Format(Config.UrlIndleveringsPakke,[Sted, PakkeNr]);
2003    end    end
2004    else    else
2005    begin    begin
2006      exit;      exit;
2007    end;    end;
2008    
2009      if chkForstorTilDirekte.Checked then  // Denne skal være efter if/else kæden da den overrider de øvrige URL'er
2010      begin
2011        URLStr := Format(Config.URLOmdirigerTilPakkeshop,[Sted, PakkeNr]);
2012      end;
2013    
2014    try    try
2015      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
2016      WebSvar := IdHTTP1.Get(URLStr);      WebSvar := IdHTTP1.Get(URLStr);
# Line 2416  begin Line 2032  begin
2032          end;          end;
2033      end;      end;
2034    end;    end;
2035    
2036    XMLDocument1.LoadFromXML(WebSvar);    XMLDocument1.LoadFromXML(WebSvar);
2037    try    try
2038      if Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked then      if menuPakkeshop1.Checked or menuPakkeshopRetur1.Checked then
2039       begin       begin
2040        RuteNummer := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopTurid').Text;        RuteNummer := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopTurid').Text;
2041        Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;        Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2042        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;
2043        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;
2044        PrintNyLabel := False;        PrintNyLabel := False;
2045  // 20150310: start  
2046        if Pakkeshoplevering1.Checked then        if menuPakkeshop1.Checked then
2047        begin        begin
 // 20150310: slut  
2048          try          try
2049            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);
2050          except on e:exception do          except on e:exception do
# Line 2438  begin Line 2054  begin
2054          begin          begin
2055            PrintNyLabel := True;            PrintNyLabel := True;
2056          end;          end;
 // 20150310: start  
2057        end;        end;
 // 20150310: slut  
2058       end       end
2059        else if menuIndlevering.Checked or chkForstorTilDirekte.Checked then
2060        begin
2061    
2062    
2063    
2064    
2065         Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2066         if (Kommentar = 'Ok') then
2067         begin
2068           PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2069           PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc
2070           RuteNummer := PakkeshopLabel.Koreliste + '  ->  ' +  PakkeshopLabel.PakkeshopTurid;
2071           Stregkode := PakkeshopLabel.Stregkode;
2072    
2073           LabelPrint.PrintFuldPakkeLabel( PakkeshopLabel );
2074           chkForstorTilDirekte.Checked := false;
2075    
2076         end;
2077    
2078    
2079        end
2080      else      else
2081       begin       begin
2082        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;
# Line 2449  begin Line 2084  begin
2084        Kommentar := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Kommentar').Text;        Kommentar := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Kommentar').Text;
2085        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('BoghandlerNavn').Text;        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('BoghandlerNavn').Text;
2086        Leveringssted := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Leveringssted').Text;        Leveringssted := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Leveringssted').Text;
2087        if Budlevering1.Checked then        if menuDaoDirekte1.Checked then
2088          begin          begin
2089          try          try
2090            SmsKode := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('SmsKode').Text;            SmsKode := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('SmsKode').Text;
# Line 2474  begin Line 2109  begin
2109          PrintNyLabel := True;          PrintNyLabel := True;
2110        end;        end;
2111      end;      end;
2112    
2113    
2114      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
2115      begin      begin
2116        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then
2117        begin        begin
2118            Kommentar := Kommentar + ' Pakke burde være hos DAO Distribution';            Kommentar := Kommentar + 'Pakke burde være hos ' + Leveringssted;
2119            PrintNyLabel := False;            PrintNyLabel := False;
2120        end;        end;
2121      end      end
2122      else if (Budlevering1.Checked) and (Leveringssted <> Sted) then      else if (menuDaoDirekte1.Checked) and (Leveringssted <> Sted) And (Leveringssted <> '') then
2123      begin      begin
2124         if (Leveringssted = 'E') and (Sted = 'DBK') then         if (Leveringssted = 'E') and (Sted = 'DBK') then
2125         begin         begin
# Line 2490  begin Line 2127  begin
2127         end         end
2128         else         else
2129         begin         begin
2130            Kommentar := Kommentar + ' Pakke burde være hos DAO Distribution';            Kommentar := Kommentar + 'Pakke burde være hos ' + Leveringssted;
2131            PrintNyLabel := False;            PrintNyLabel := False;
2132         end;         end;
2133      end;      end;
# Line 2511  begin Line 2148  begin
2148    //Label1.Caption := Kommentar;   // bruges hvis der skal vises linieskift - det kan man ikke i en staticText    //Label1.Caption := Kommentar;   // bruges hvis der skal vises linieskift - det kan man ikke i en staticText
2149    BoghandlerNavnST.Caption := StringReplace(BoghandlerNavn, ' & ', ' && ', [rfReplaceAll, rfIgnoreCase]);    BoghandlerNavnST.Caption := StringReplace(BoghandlerNavn, ' & ', ' && ', [rfReplaceAll, rfIgnoreCase]);
2150    List1msg := TimeToStr(now) + '; ';    List1msg := TimeToStr(now) + '; ';
2151    if Pakkeshoplevering1.Checked then    if menuPakkeshop1.Checked then
2152      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';
2153    List1Pakkestorrelse := '';    List1Pakkestorrelse := '';
2154    if RadioButton1.Checked then    if radioStorPakke.Checked then
2155    begin    begin
2156      List1Pakkestorrelse := 'Stor pakke';      List1Pakkestorrelse := 'Stor pakke';
2157    end;    end;
2158    if RadioButton2.Checked then    if radioLillePakke.Checked then
2159    begin    begin
2160      List1Pakkestorrelse := 'Lille pakke';      List1Pakkestorrelse := 'Lille pakke';
2161    end;    end;
2162    List1msg := List1msg + BoghandlerNavn + '; ';    List1msg := List1msg + BoghandlerNavn + '; ';
2163    if ReturpakkerfraDAO1.Checked then    if menuNatxpressReturDAO1.Checked then
2164    begin    begin
2165      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-8);      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-8);
2166    end;    end;
2167    if Returpakkerfraboghandler1.Checked then    if menuNatxpressReturfraKunde1.Checked then
2168    begin    begin
2169      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-16);      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-16);
2170    end;    end;
2171    if ReturpakkerfraDAO1.Checked or Returpakkerfraboghandler1.Checked then    if menuNatxpressReturDAO1.Checked or menuNatxpressReturfraKunde1.Checked then
2172       List1msg := List1msg + '; ' + List1Pakkestorrelse;       List1msg := List1msg + '; ' + List1Pakkestorrelse;
2173    if length(BoghNr) > 0 then    if length(BoghNr) > 0 then
2174    begin    begin
2175      List1Msg := List1Msg + '; Indtastet ' + BoghNr;      List1Msg := List1Msg + '; Indtastet ' + BoghNr;
2176    end;    end;
2177    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2178    begin    begin
2179       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;
2180        if (RadioButton1.Checked) then        if (radioStorPakke.Checked) then
2181        begin        begin
2182          List1msg := List1msg + '; Stor pakke';          List1msg := List1msg + '; Stor pakke';
2183        end;        end;
2184        if (RadioButton2.Checked) then        if (radioLillePakke.Checked) then
2185        begin        begin
2186          List1msg := List1msg + '; Lille pakke';          List1msg := List1msg + '; Lille pakke';
2187        end;        end;
2188    end;    end;
2189    if Returpakkerfrapakkeshop1.Checked then    if menuPakkeshopRetur1.Checked then
2190    begin    begin
2191      List1msg := List1msg + Stregkode + ' ' + RightStr(Kommentar, Length(Kommentar)-6);      List1msg := List1msg + Stregkode + ' ' + RightStr(Kommentar, Length(Kommentar)-6);
2192    end;    end;
2193    if Pakkernormal1.Checked then    if menuNatXpress1.Checked then
2194    begin    begin
2195      if (Kommentar = '***** Kommentar *****')                       // fra test printer funktionen      if (Kommentar = '***** Kommentar *****')                       // fra test printer funktionen
2196      or (BoghandlerNavn = 'Forbindelse ok')                         // fra test forbindelse funktionen      or (BoghandlerNavn = 'Forbindelse ok')                         // fra test forbindelse funktionen
# Line 2566  begin Line 2203  begin
2203        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;
2204      end;      end;
2205    end;    end;
2206      if menuIndlevering.Checked then
2207      begin
2208        List1Msg := Stregkode;
2209      end;
2210    
2211    
2212    ListBox1.Items.Insert(0,List1Msg);    ListBox1.Items.Insert(0,List1Msg);
2213    logTekst := RightStr(List1Msg, Length(List1Msg)-10);    logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2214    SkrivScanningLogFil(logTekst);    SkrivScanningLogFil(logTekst);
2215  end;  end;
2216    
2217  procedure TMainForm.UploadButton01Click(Sender: TObject);  procedure TMainForm.BtnUploadLogfilClick(Sender: TObject);
2218  begin  begin
2219    UploadLogfilTilDAO();    UploadLogfilTilDAO();
2220    UploadInifilTilDAO();    UploadInifilTilDAO();
# Line 2587  pakkeForkertSted : Integer; Line 2230  pakkeForkertSted : Integer;
2230    kontrolKoreliste : string;    kontrolKoreliste : string;
2231    nytRuteNummer, nyFarve : String;    nytRuteNummer, nyFarve : String;
2232  begin  begin
2233    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2234       RuteNummerST.Color := HexToTColor(Farve);       RuteNummerST.Color := TUtils.HexToTColor(Farve);
2235    
2236    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
2237    if pakkeErScannet = 0 then    if pakkeErScannet = 0 then
# Line 2601  begin Line 2244  begin
2244    end;    end;
2245    pakkeForkertSted := pos('burde være hos', Kommentar);    pakkeForkertSted := pos('burde være hos', Kommentar);
2246    
2247  // 20150306: start  
 //  if Sprgefterboghandlernummer1.Enabled and CheckBox1.Checked and (RuteNummer = 'Ukendt') or (RuteNummer = 'Ukendt tur') or (RuteNummer = 'Retur ukendt') or (pakkeErScannet > 0) or (pakkeForkertSted > 0) then  
2248    if Sprgefterboghandlernummer1.Enabled and chkSporgEfterKunde.Checked and ( (RuteNummer = 'Ukendt') or (RuteNummer = 'Ukendt tur') or (RuteNummer = 'Retur ukendt') or (pakkeErScannet > 0) or (pakkeForkertSted > 0) ) then    if Sprgefterboghandlernummer1.Enabled and chkSporgEfterKunde.Checked and ( (RuteNummer = 'Ukendt') or (RuteNummer = 'Ukendt tur') or (RuteNummer = 'Retur ukendt') or (pakkeErScannet > 0) or (pakkeForkertSted > 0) ) then
2249  // 20150306: slut  
2250    begin    begin
2251        if (RuteNummer = 'Ukendt') then        if (RuteNummer = 'Ukendt') then
2252        begin        begin
# Line 2626  begin Line 2268  begin
2268        end;        end;
2269    end    end
2270    else    else
2271    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2272    begin    begin
2273       if (BoghandlerNavn = 'Ukendt pakke') then       if (BoghandlerNavn = 'Ukendt pakke') then
2274       begin       begin
2275          PrintNyLabel := false;          PrintNyLabel := false;
2276  // 20150306: start  
 //        PlaySound(PWideChar(AlarmLyd));  
2277          PlaySound(PWideChar(AlarmLyd));          PlaySound(PWideChar(AlarmLyd));
2278          MainForm.Color := clRed;          MainForm.Color := clRed;
2279          PakkeshopNulstil.Visible := true;          btnNulstil.Visible := true;
2280  // 20150306: slut  
2281       end       end
2282       else       else
2283       begin       begin
# Line 2646  begin Line 2287  begin
2287            PrintNyLabel := true;            PrintNyLabel := true;
2288            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;
2289            nyFarve := Farve;            nyFarve := Farve;
2290            RuteNummerST.Color := HexToTColor(nyFarve);            RuteNummerST.Color := TUtils.HexToTColor(nyFarve);
2291            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;
2292            RuteNummer := nytRuteNummer;            RuteNummer := nytRuteNummer;
2293            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2294            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2295            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2296  // 20150213: start  
2297            if (PrinterNavn = 'Ingen') then            if (PrinterNavn = 'Ingen') then
2298            begin            begin
2299               PrintNyLabel := false;               PrintNyLabel := false;
2300            end;            end;
2301  // 20150313: slut  
 // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2302            if (PrintNyLabel = false) then  // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm            if (PrintNyLabel = false) then  // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm
2303            begin            begin
2304              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2305              MainForm.Color := clRed;              MainForm.Color := clRed;
2306              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2307            end;            end;
2308  // 20150306: slut  
2309         end;         end;
2310         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);
2311         if (kontrolKoreliste <> RuteNummer) then         if (kontrolKoreliste <> RuteNummer) then
# Line 2685  begin Line 2324  begin
2324            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2325            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2326            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2327  // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2328            if (PrintNyLabel = false) then  // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm            if (PrintNyLabel = false) then  // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm
2329            begin            begin
2330              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2331              MainForm.Color := clRed;              MainForm.Color := clRed;
2332              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2333            end;            end;
2334  // 20150306: slut  
 // 20150306: start  
 //       end  
 //       else  
 //       begin  
2335         end;         end;
2336       end;       end;
2337    
2338    end;    end;
2339    
2340    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2341    begin    begin
2342      case BladhusSted of      case BladhusSted of
2343        00 :  begin;        00 :  begin;
# Line 2715  begin Line 2349  begin
2349               if PrintNyLabel or (RuteNummer = 'Rutenr') then               if PrintNyLabel or (RuteNummer = 'Rutenr') then
2350  // 20150304: slut  // 20150304: slut
2351                begin                begin
2352                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2353                end;                end;
2354              end;              end;
2355        01 :  begin;        01 :  begin;
2356               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2357                    // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste                    // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste
2358                    // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')                    // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')
2359                begin                begin
2360                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2361                end;                end;
2362              end;              end;
2363        02 :  begin;        02 :  begin;
2364                if PrintNyLabel or (RuteNummer = 'Rutenr') then   // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test                if PrintNyLabel or (RuteNummer = 'Rutenr') then   // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test
2365                begin                begin
2366                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2367                end;                end;
2368              end;              end;
2369        03 :  begin;        03 :  begin;
2370               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2371                    // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste                    // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste
2372                    // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')                    // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')
2373               begin               begin
2374                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2375               end;               end;
2376              end;              end;
2377        04 :  begin;        04 :  begin;
2378                if PrintNyLabel or (RuteNummer = 'Rutenr') then   // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test                if PrintNyLabel or (RuteNummer = 'Rutenr') then   // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test
2379                begin                begin
2380                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2381                end;                end;
2382              end;              end;
2383        else        else
# Line 2752  begin Line 2386  begin
2386    end;    end;
2387    
2388  // Hvis det er normal bogpakke modtagelse til UBD skal vi p.t. ikke printe - men stopper her  // Hvis det er normal bogpakke modtagelse til UBD skal vi p.t. ikke printe - men stopper her
2389    if Pakkernormal1.Checked and ( (Sted = '1') or (Sted = '2') or (Sted = '3') or (Sted = '4') ) then    if menuNatXpress1.Checked and ( (Sted = '1') or (Sted = '2') or (Sted = '3') or (Sted = '4') ) then
2390    begin    begin
2391      exit;      exit;
2392    end;    end;
2393    
2394    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    if menuDaoDirekte1.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
2395    begin    begin
2396    end    end
2397    else    else
# Line 2779  begin Line 2413  begin
2413        end;        end;
2414        logTekst := logTekst + ' for '+BoghandlerNavn;        logTekst := logTekst + ' for '+BoghandlerNavn;
2415        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
2416        with Printer do  
2417        begin        LabelPrint.PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn) ;
2418          BeginDoc;        
         Canvas.Font.Size := FontSizeRute;  
         if (Length(RuteNummer) > 7) then  
         begin  
           Canvas.Font.Size := FontSizeRuteLille;  
         end;  
         Canvas.TextOut(XPosRute,YPosRute, RuteNummer);  
         Canvas.Font.Size := FontSizeKommentar;  
         Kommentar := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);  
         if (Kommentar = 'Ok') or (Kommentar = 'ALLEREDE SCANNET') then  
         begin  
           Kommentar := '';  
         end;  
         if (BoghandlerNavn = 'PAKKE ER SCANNET') then  
         begin  
           BoghandlerNavn := '';  
         end;  
         Canvas.TextOut(XPosKommentar,YPosKommentar, Kommentar);  // Kan ikke lave linieskift (se tidligere kommentar om samme)  
         Canvas.Font.Size := FontSizeBoghandler;  
         Canvas.TextOut(XPosBoghandler,YPosBoghandler, BoghandlerNavn);  
         EndDoc;  
       end;  
2419      end;      end;
2420    end;    end;
2421    
2422  end;  end;
2423    
 procedure TMainForm.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');  
 begin  
     with Printer do  
     begin  
       BeginDoc;  
       Canvas.Font.Size := FontSizeRuteLille;  
       if (kontrolKoreliste <> '') then  
       begin  
         Canvas.TextOut(XPosRute,YPosRute, kontrolKoreliste);  
       end  
       else  
       begin  
         Canvas.TextOut(XPosRute,YPosRute, RuteNummer);  
       end;  
       Canvas.Font.Size := FontSizeKorelisteLille;  
       Canvas.TextOut(XPosKoreliste,YPosKoreliste, Koreliste);  
       if (Sted = 'DBK') or (Sted = '04') then  
       begin  
         Canvas.Font.Size := FontSizeSorteringsfelt1;  
         Canvas.TextOut(XPosSorteringsfelt1,YPosSorteringsfelt1, DBKbane);   // sorteringsoplysning 1  
         Canvas.Font.Size := FontSizeSorteringsfelt1;  
         Canvas.TextOut(XPosSorteringsfelt2,YPosSorteringsfelt2, Leveringssted);   // sorteringsoplysning 2  
       end;  
       Canvas.Font.Size := FontSizeKommentar;  
       Kommentar := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);  
 // 20150304: start  
       Kommentar := StringReplace(Kommentar, 'PAKKE ER SCANNET', '', [rfReplaceAll, rfIgnoreCase]);  
 // 20150304: slut  
       Canvas.TextOut(XPosKommentar,YPosKommentar, Kommentar);  // Kan ikke lave linieskift (se tidligere kommentar om samme)  
       if SmsKode <> '' then  
       begin  
         Canvas.Font.Size := FontSizeSmskode;  
         Canvas.TextOut(XPosKommentar,YPosSmskode, concat('CODE: ', SmsKode));  
       end;  
       Canvas.Font.Size := FontSizeBoghandler;  
       Canvas.TextOut(XPosBoghandler,YPosBoghandler, BoghandlerNavn);  
       EndDoc;  
     end;  
 end;  
2424    
2425    
2426  procedure TMainForm.RadioButton1Click(Sender: TObject);  procedure TMainForm.radioStorPakkeClick(Sender: TObject);
2427  begin  begin
2428      Storepakker1.Checked := true;      menuStorePakker.Checked := true;
2429      RadioButton1.Checked := true;      radioStorPakke.Checked := true;
2430  end;  end;
2431    
2432  procedure TMainForm.RadioButton2Click(Sender: TObject);  procedure TMainForm.radioLillePakkeClick(Sender: TObject);
2433  begin  begin
2434      Smpakker1.Checked := true;      menuSmaaPakker.Checked := true;
2435      RadioButton2.Checked := true;      radioLillePakke.Checked := true;
2436  end;  end;
2437    
2438    
# Line 2900  begin Line 2474  begin
2474    end;    end;
2475  end;  end;
2476    
2477  procedure TMainForm.Pakkeshoplevering1Click(Sender: TObject);  procedure TMainForm.menuPakkeshop1Click(Sender: TObject);
2478  begin  begin
2479        Scanningtype := '5';        Scanningtype := '5';
2480        InitPakkeshoplevering();        InitPakkeshoplevering();
# Line 2909  end; Line 2483  end;
2483    
2484  procedure TMainForm.NulstilAutomatiskValg();  procedure TMainForm.NulstilAutomatiskValg();
2485  begin  begin
2486      Automatiskvalg1.Checked := false;      menuAutomatiskvalg1.Checked := false;
2487      PanelValgA.Color := clBtnFace;      PanelValgA.Color := clBtnFace;
2488      PanelValgA.Font.Color := clWindowText;      PanelValgA.Font.Color := clWindowText;
2489  // 20150317: start  
2490      if (SpecialVersionSted = '01')      if (SpecialVersionSted = '01')
2491      or (SpecialVersionSted = '02')        or (SpecialVersionSted = '02')
2492      or (SpecialVersionSted = '03')        or (SpecialVersionSted = '03')
2493      or (SpecialVersionSted = '04') then        or (SpecialVersionSted = '04') then
2494      begin      begin
2495        // her skal vi også disable knappen for 01, 02, 03 og 04 (NS, BK, FD og DBK)        // her skal vi også disable knappen for 01, 02, 03 og 04 (NS, BK, FD og DBK)
2496        PanelValgA.Enabled := false;        PanelValgA.Enabled := false;
2497        PanelValgA.Font.Color := clInactiveCaption;        PanelValgA.Font.Color := clInactiveCaption;
2498        Automatiskvalg1.Enabled := false;        menuAutomatiskvalg1.Enabled := false;
2499      end;      end;
2500  // 20150317: slut  // 20150317: slut
2501  end;  end;
# Line 2936  begin Line 2510  begin
2510    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke
2511    ShowMessage('Tjekker data forbindelse til serveren.' + crlf + 'Det kan godt tage nogle minutter.' + crlf + 'Resultatet af testen vises i skærmbilledet...');    ShowMessage('Tjekker data forbindelse til serveren.' + crlf + 'Det kan godt tage nogle minutter.' + crlf + 'Resultatet af testen vises i skærmbilledet...');
2512    
2513          // Tjekker urls    try
2514          logTekst := 'Tjekker urls.';      // Tjekker urls
2515          ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);      logTekst := 'Tjekker urls.';
2516          SkrivScanningLogFil(logTekst);      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2517        SkrivScanningLogFil(logTekst);
2518    
         // Tjekker UrlNormal  
         if PanelValg1.Enabled = true then  
         begin  
           if CheckUrl(UrlNormal) then  
           begin  
             logTekst := 'UrlNormal accepteret: ' + UrlNormal;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlNormal svarer ikke: ' + UrlNormal;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               TjekUrls := '-';   // markerer at der var fejl  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2519    
         // Tjekker UrlReturDAO  
         if PanelValg2.Enabled = true then  
         begin  
           if CheckUrl(UrlReturDAO) then  
           begin  
             logTekst := 'UrlReturDAO accepteret: ' + UrlReturDAO;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlReturDAO svarer ikke: ' + UrlReturDAO;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2520    
2521          // Tjekker UrlReturBoghandler      // Tjekker UrlNormal
2522          if PanelValg3.Enabled = true then      if PanelValg1.Enabled = true then
2523          begin      begin
2524            if CheckUrl(UrlReturBoghandler) then        TjekkerEnkeltUrl('UrlNormal', Config.UrlNormal, urlFejl);
2525            begin      end;
             logTekst := 'UrlReturBoghandler accepteret: ' + UrlReturBoghandler;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlReturDAO svarer ikke: ' + UrlReturDAO;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2526    
2527          // Tjekker UrlBudlevering      // Tjekker UrlReturDAO
2528          if PanelValg4.Enabled = true then      if PanelValg2.Enabled = true then
2529          begin      begin
2530            if CheckUrl(UrlBudlevering) then        TjekkerEnkeltUrl('UrlReturDAO', Config.UrlReturDAO, urlFejl);
2531            begin      end;
             logTekst := 'UrlBudlevering accepteret: ' + UrlBudlevering;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlBudlevering svarer ikke: ' + UrlBudlevering;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2532    
2533          // Tjekker UrlPakkeshoplevering      // Tjekker UrlReturBoghandler
2534          if PanelValg5.Enabled = true then      if PanelValg3.Enabled = true then
2535          begin      begin
2536            if CheckUrl(UrlPakkeshoplevering) then        TjekkerEnkeltUrl('UrlReturBoghandler', Config.UrlReturBoghandler, urlFejl);
2537            begin      end;
             logTekst := 'UrlPakkeshoplevering accepteret: ' + UrlPakkeshoplevering;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlPakkeshoplevering svarer ikke: ' + UrlPakkeshoplevering;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2538    
2539          // Tjekker UrlReturPakkeshop      // Tjekker UrlBudlevering
2540          if PanelValg6.Enabled = true then      if PanelValg4.Enabled = true then
2541          begin      begin
2542            if CheckUrl(UrlReturPakkeshop) then        TjekkerEnkeltUrl('UrlBudlevering', Config.UrlBudlevering, urlFejl);
2543            begin      end;
             logTekst := 'UrlReturPakkeshop accepteret: ' + UrlReturPakkeshop;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlReturPakkeshop svarer ikke: ' + UrlReturPakkeshop;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2544    
2545          // Tjekker UrlManglendeScanninger      // Tjekker UrlPakkeshoplevering
2546          if (PanelValg1.Enabled = true)      if PanelValg5.Enabled = true then
2547          or (PanelValg4.Enabled = true) then      begin
2548          begin        TjekkerEnkeltUrl('UrlPakkeshoplevering', Config.UrlPakkeshoplevering, urlFejl);
2549            if CheckUrl(UrlManglendeScanninger) then      end;
           begin  
             logTekst := 'UrlManglendeScanninger accepteret: ' + UrlManglendeScanninger;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlManglendeScanninger svarer ikke: ' + UrlManglendeScanninger;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2550    
2551          // Tjekker UrlPakkeshopManglendeScanninger      // Tjekker UrlReturPakkeshop
2552          if PanelValg5.Enabled = true then      if PanelValg6.Enabled = true then
2553          begin      begin
2554            if CheckUrl(UrlPakkeshopManglendeScanninger) then        TjekkerEnkeltUrl('UrlReturPakkeshop', Config.UrlReturPakkeshop, urlFejl);
2555            begin      end;
             logTekst := 'UrlPakkeshopManglendeScanninger accepteret: ' + UrlPakkeshopManglendeScanninger;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlPakkeshopManglendeScanninger svarer ikke: ' + UrlPakkeshopManglendeScanninger;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2556    
2557          // Tjekker UrlPakkeshopManglendeReturScanninger      // Tjekker UrlManglendeScanninger
2558          if PanelValg6.Enabled = true then      if (PanelValg1.Enabled = true) or (PanelValg4.Enabled = true) then
2559          begin      begin
2560            if CheckUrl(UrlPakkeshopManglendeReturScanninger) then        TjekkerEnkeltUrl('UrlManglendeScanninger', Config.UrlManglendeScanninger, urlFejl);
2561            begin      end;
             logTekst := 'UrlPakkeshopManglendeReturScanninger accepteret: ' + UrlPakkeshopManglendeReturScanninger;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlPakkeshopManglendeReturScanninger svarer ikke: ' + UrlPakkeshopManglendeReturScanninger;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2562    
2563          // Tjekker UrlEKLoverforsel      // Tjekker UrlPakkeshopManglendeScanninger
2564          if PanelValg1.Enabled = true then      if PanelValg5.Enabled = true then
2565          begin      begin
2566            if CheckUrl(UrlEKLoverforsel) then        TjekkerEnkeltUrl('UrlPakkeshopManglendeScanninger', Config.UrlPakkeshopManglendeScanninger, urlFejl);
2567            begin      end;
             logTekst := 'UrlEKLoverforsel accepteret: ' + UrlEKLoverforsel;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlEKLoverforsel svarer ikke: ' + UrlEKLoverforsel;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2568    
2569  // 20150330: start      // Tjekker UrlPakkeshopManglendeReturScanninger
2570          // Tjekker UrlEKLoverforselPakkeshop      if PanelValg6.Enabled = true then
2571          if PanelValg5.Enabled = true then      begin
2572          begin        TjekkerEnkeltUrl('UrlPakkeshopManglendeReturScanninger', Config.UrlPakkeshopManglendeReturScanninger, urlFejl);
2573            if CheckUrl(UrlEKLoverforselPakkeshop) then      end;
           begin  
             logTekst := 'UrlEKLoverforselPakkeshop accepteret: ' + UrlEKLoverforselPakkeshop;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlEKLoverforselPakkeshop svarer ikke: ' + UrlEKLoverforselPakkeshop;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
 // 20150330: slut  
2574    
2575          // Tjekker UrlFindPakketype     // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
2576          if CheckUrl(UrlFindPakketype) then      if PanelValg7.Enabled = true then
2577          begin      begin
2578            logTekst := 'UrlFindPakketype accepteret: ' + UrlFindPakketype;        TjekkerEnkeltUrl('UrlIndleveringsPakke', Config.UrlIndleveringsPakke, urlFejl);
2579            SkrivScanningLogFil(logTekst);        TjekkerEnkeltUrl('UrlIndleveringsPakkeManglendeScanninger', Config.UrlIndleveringsPakkeManglendeScanninger, urlFejl);
2580          end      end;
         else  
         begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlFindPakketype svarer ikke: ' + UrlFindPakketype;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
         end;  
2581    
2582          // Tjekker UrlSendPrograminfo      // Tjekker UrlEKLoverforsel
2583          if CheckUrl(UrlSendPrograminfo) then      if PanelValg1.Enabled = true then
2584          begin      begin
2585            logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;        TjekkerEnkeltUrl('UrlEKLoverforsel', Config.UrlEKLoverforsel, urlFejl);
2586            SkrivScanningLogFil(logTekst);      end;
2587          end  
2588          else  
2589          begin      // Tjekker UrlEKLoverforselPakkeshop
2590              inc(urlFejl);   // Optæller antal fejl      if PanelValg5.Enabled = true then
2591              logTekst := 'UrlSendPrograminfo svarer ikke: ' + UrlSendPrograminfo;      begin
2592              ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);        TjekkerEnkeltUrl('UrlEKLoverforselPakkeshop', Config.UrlEKLoverforselPakkeshop, urlFejl);
2593              if TjekUrls = '1' then      end;
2594              begin  
2595                logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
2596              end;      // Tjekker UrlFindPakketype
2597              SkrivScanningLogFil(logTekst);      TjekkerEnkeltUrl('UrlFindPakketype', Config.UrlFindPakketype, urlFejl);
2598              if TjekUrls = '1' then  
2599              begin      // Tjekker UrlSendPrograminfo
2600                ShowMessage(logTekst);      TjekkerEnkeltUrl('UrlSendPrograminfo', Config.UrlSendPrograminfo, urlFejl);
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
         end;  
2601    
         if urlFejl > 0 then  
         begin  
           TjekUrls := '-';   // markerer at der var fejl  
         end  
         else  
         begin  
           logTekst := 'urls er ok';  
           ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
           SkrivScanningLogFil(logTekst);  
         end;  
2602    
2603    
2604        logTekst := 'urls er ok';
2605        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2606        SkrivScanningLogFil(logTekst);
2607    
2608      Except
2609        TjekUrls := '-';   // markerer at der var fejl
2610    
2611      end;
2612  end;  end;
2613    
2614  function TMainForm.FileTime2DateTime(FileTime: TFileTime): TDateTime;  procedure TMainForm.TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
2615  var  const
2616     LocalFileTime: TFileTime;    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
    SystemTime: TSystemTime;  
2617  begin  begin
2618     FileTimeToLocalFileTime(FileTime, LocalFileTime) ;    if TUtils.CheckUrl(Url) then
2619     FileTimeToSystemTime(LocalFileTime, SystemTime) ;  
2620     Result := SystemTimeToDateTime(SystemTime) ;    begin
2621        logTekst := UrlNavn + ' accepteret: ' + Url;
2622        SkrivScanningLogFil(logTekst);
2623      end
2624      else
2625      begin
2626        inc(urlFejl);   // Optæller antal fejl
2627        logTekst := UrlNavn + ' svarer ikke: ' + Url;
2628        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2629        if TjekUrls = '1' then
2630        begin
2631          logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2632        end;
2633    
2634        SkrivScanningLogFil(logTekst);
2635    
2636        if TjekUrls = '1' then
2637        begin
2638          ShowMessage(logTekst);
2639          Config.UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2640          Application.Terminate;
2641    
2642          raise Exception.Create('UrlFejl');
2643    
2644        end;
2645      end;
2646    
2647  end;  end;
2648    
2649    
2650    
2651  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);
2652  var  var
2653    SR: TSearchRec;    SR: TSearchRec;
# Line 3342  begin Line 2664  begin
2664      repeat      repeat
2665        if (SR.Attr <> faDirectory) then        if (SR.Attr <> faDirectory) then
2666        begin        begin
2667    
2668          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring
2669          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse
2670          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse          dtCreation := TUtils.FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse
2671          // Selvom creation date godt kan være forskellig fra modified date,          // Selvom creation date godt kan være forskellig fra modified date,
2672          // skal vi alligevel altid tjekke filens alder ud fra modified date          // skal vi alligevel altid tjekke filens alder ud fra modified date
2673          // (ændring den kan ligge både før og efter oprettelse, hvis filerne er flyttet eller ændret manuelt)          // (ændring den kan ligge både før og efter oprettelse, hvis filerne er flyttet eller ændret manuelt)
# Line 3381  begin Line 2704  begin
2704    end;    end;
2705  end;  end;
2706    
2707  procedure TMainForm.PakkeshopNulstilClick(Sender: TObject);  procedure TMainForm.btnNulstilClick(Sender: TObject);
2708  begin  begin
2709    PakkeshopStregkode := '';    PakkeshopStregkode := '';
2710    PakkeshopTjekkode := '';    PakkeshopTjekkode := '';
2711    PakkeshopNulstil.Visible := false;    btnNulstil.Visible := false;
2712    PakkeshopText1.Caption := 'Stregkode';    PakkeshopText1.Caption := 'Stregkode';
2713    BoghandlerStregkode := '';    BoghandlerStregkode := '';
2714    BoghandlerTjekkode := '';    BoghandlerTjekkode := '';
# Line 3394  begin Line 2717  begin
2717    if BoghandlerNavnST.Caption = 'Fejl i forbindelse til server' then    if BoghandlerNavnST.Caption = 'Fejl i forbindelse til server' then
2718    begin    begin
2719       ShowMessage('Programmet afbrydes...');       ShowMessage('Programmet afbrydes...');
2720       UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut       Config.UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2721       Application.Terminate;       Application.Terminate;
2722       exit;       exit;
2723    end;    end;
# Line 3403  begin Line 2726  begin
2726  //  MainForm.Color := HexToTColor(Farve);  //  MainForm.Color := HexToTColor(Farve);
2727    if Farve <> '' then    if Farve <> '' then
2728    begin    begin
2729       MainForm.Color := HexToTColor(Farve);       MainForm.Color := TUtils.HexToTColor(Farve);
 // 20150312: start  
 (*  
   end  
   else  
   begin  
      ShowMessage('Programmet afbrydes...');  
      UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
      Application.Terminate;  
 *)  
 // 20150312: slut  
2730    end;    end;
2731    if (Budlevering1.Checked) then    if (menuDaoDirekte1.Checked) then
2732    begin    begin
2733       InitLillePakke();       InitLillePakke();
2734    end;    end;
# Line 3477  end; Line 2790  end;
2790    
2791  procedure TMainForm.PanelValgAClick(Sender: TObject);  procedure TMainForm.PanelValgAClick(Sender: TObject);
2792  begin  begin
 // 20150311: start  
 (*  
   if PanelValgA.Color = clBtnFace then  
   begin  
      AutomatiskValg1.Checked := true;  
      PanelValgA.Color := clGreen;  
      PanelValgA.Font.Color := clWhite;  
   end  
   else  
   begin  
      AutomatiskValg1.Checked := false;  
      PanelValgA.Color := clBtnFace;  
      PanelValgA.Font.Color := clWindowText;  
   end;  
 *)  
2793  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
2794  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
2795       AutomatiskValg1.Checked := true;    menuAutomatiskvalg1.Checked := true;
2796       PanelValgA.Color := clGreen;    PanelValgA.Color := clGreen;
2797       PanelValgA.Font.Color := clWhite;    PanelValgA.Font.Color := clWhite;
2798  // 20150311: slut  
2799    
2800    
2801  end;  end;
2802    
2803  procedure TMainForm.Pakkernormal1Click(Sender: TObject);  procedure TMainForm.menuNatXpress1Click(Sender: TObject);
2804  begin  begin
2805        Scanningtype := '1';        Scanningtype := '1';
2806        NulstilAutomatiskValg();        NulstilAutomatiskValg();
# Line 3514  var Line 2814  var
2814    BoghandlerNavn : String;    BoghandlerNavn : String;
2815    Koreliste : String;    Koreliste : String;
2816    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
2817    SmsKode : String;    SmsKode : String;
2818    DBKbane : String;    DBKbane : String;
2819    Leveringssted : String;    Leveringssted : String;
# Line 3536  begin Line 2835  begin
2835      // Her kommer en alarm og rød skærm      // Her kommer en alarm og rød skærm
2836      PlaySound(PWideChar(AlarmLyd));      PlaySound(PWideChar(AlarmLyd));
2837      MainForm.Color := clRed;      MainForm.Color := clRed;
2838      PakkeshopNulstil.Visible := true;      btnNulstil.Visible := true;
2839    end    end
2840    else    else
2841    begin    begin
2842      Falsk := False;      Falsk := False;
2843      Sand := True;  
2844      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');
2845      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
2846      SmsKode := '999999';      SmsKode := '999999';
# Line 3561  var Line 2860  var
2860    BoghandlerNavn : String;    BoghandlerNavn : String;
2861    Koreliste : String;    Koreliste : String;
2862    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
2863    SmsKode : String;    SmsKode : String;
2864    DBKbane : String;    DBKbane : String;
2865    Leveringssted : String;    Leveringssted : String;
# Line 3570  begin Line 2868  begin
2868    Kommentar := '***** Kommentar *****';    Kommentar := '***** Kommentar *****';
2869    BoghandlerNavn := 'Modtagernavn';    BoghandlerNavn := 'Modtagernavn';
2870    Falsk := False;    Falsk := False;
   Sand := True;  
2871    
2872    if (Printer.Printers.Count = 0) then  
2873      if (LabelPrint.GetPrinterCount() = 0) then
2874    begin    begin
2875      ShowMessage('Der er ikke installeret en printer på denne PC.');      ShowMessage('Der er ikke installeret en printer på denne PC.');
2876    end    end
# Line 3587  begin Line 2885  begin
2885      DBKbane := '999';      DBKbane := '999';
2886      Leveringssted := 'XXX';      Leveringssted := 'XXX';
2887      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);
2888      CheckPrintQue('Test');      LabelPrint.CheckPrintQue('Test', PrinterNavn);
2889    end;    end;
2890    FocusControl(StregkodeST);    FocusControl(StregkodeST);
2891  end;  end;
# Line 3596  procedure TMainForm.Timer1Timer(Sender: Line 2894  procedure TMainForm.Timer1Timer(Sender:
2894  begin  begin
2895    if (TjekPrinter = '1') then    if (TjekPrinter = '1') then
2896    begin    begin
2897      CheckPrintQue('Timer');      LabelPrint.CheckPrintQue('Timer', PrinterNavn);
2898    end    end
2899    else    else
2900    begin    begin
# Line 3605  begin Line 2903  begin
2903    end;    end;
2904  end;  end;
2905    
2906  {  
  VERY fast split function  
  this function returns part of a string based on  
  constant defineable delimiters, such as ";". So  
  SPLIT('this is a test ',' ',3) = 'is' or  
  SPLIT('data;another;yet;again;more;',';',4) = 'yet'  
   
  Split function shifts index integer by two to  
  be compatible with commonly used PD split function  
  gpl 2004 / Juhani Suhonen  
 }  
 function TMainForm.split(input: string; schar: Char; s: Integer): string;  
 var  
   c: array of Integer;  
   b, t: Integer;  
 begin  
   Dec(s, 2);  // for compatibility with very old & slow split function  
   t := 0;     // variable T needs to be initialized...  
   setlength(c, Length(input));  
   for b := 0 to pred(High(c)) do  
   begin  
     c[b + 1] := posex(schar, input, succ(c[b]));  
     // BREAK LOOP if posex looped (position before previous)  
     // or wanted position reached..  
     if (c[b + 1] < c[b]) or (s < t) then break  
     else  
       Inc(t);  
   end;  
   Result := Copy(input, succ(c[s]), pred(c[s + 1] - c[s]));  
 end;  
2907    
2908  procedure TMainForm.Om1Click(Sender: TObject);  procedure TMainForm.Om1Click(Sender: TObject);
2909  const  const
# Line 3643  var Line 2912  var
2912   tekst, filversion : String;   tekst, filversion : String;
2913  begin  begin
2914    
2915    filversion := Sto_GetFmtFileVersion('','');    filversion := TUtils.Sto_GetFmtFileVersion('');
2916    tekst := 'Program til indscanning af pakker'+crlf+'Version '+filversion+crlf+crlf+'Udviklet af it afdelingen, DAO';    tekst := 'Program til indscanning af pakker'+crlf+'Version '+filversion+crlf+crlf+'Udviklet af it afdelingen, DAO';
2917    
2918    tekst := tekst+crlf+crlf;    tekst := tekst+crlf+crlf;
# Line 3665  begin Line 2934  begin
2934          end          end
2935          else          else
2936          begin          begin
2937            tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
2938          end;          end;
2939      end      end
2940      else      else
2941      begin      begin
2942        tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';        tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
2943      end;      end;
2944    end;    end;
2945    
# Line 3679  begin Line 2948  begin
2948      tekst := tekst+crlf+crlf;      tekst := tekst+crlf+crlf;
2949      tekst := tekst+crlf+crlf+'          **********  DETTE ER KUN EN TEST VERSION  **********';      tekst := tekst+crlf+crlf+'          **********  DETTE ER KUN EN TEST VERSION  **********';
2950      tekst := tekst+crlf+crlf;      tekst := tekst+crlf+crlf;
2951      tekst := tekst+crlf+crlf+'Url: '+url;      tekst := tekst+crlf+crlf+'Url: ' + Url;
2952    end;    end;
2953    
2954    MessageBox(Handle, PWideChar(tekst), 'Information', MB_OK);    MessageBox(Handle, PWideChar(tekst), 'Information', MB_OK);
2955    
2956  end;  end;
2957    
2958    
2959  procedure TMainForm.ListBox1DrawItem(Control: TWinControl; Index: Integer;  procedure TMainForm.ListBox1DrawItem(Control: TWinControl; Index: Integer;
2960    Rect: TRect; State: TOwnerDrawState);    Rect: TRect; State: TOwnerDrawState);
2961  var  var
# Line 3738  begin Line 3008  begin
3008    
3009    if FileExists(fileName) then    if FileExists(fileName) then
3010    begin    begin
3011      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3012      begin      begin
3013        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3014        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
# Line 3762  begin Line 3032  begin
3032    
3033    if FileExists(fileName) then    if FileExists(fileName) then
3034    begin    begin
3035      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3036      begin      begin
3037        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3038        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
3039      end      end
3040      else      else
3041      begin      begin
3042        ShowMessage('Acrobat Reader er ikke installeret!');        ShowMessage('Adobe Reader er ikke installeret!');
3043      end;      end;
3044    end    end
3045    else    else
# Line 3778  begin Line 3048  begin
3048    end;    end;
3049  end;  end;
3050    
3051    procedure TMainForm.menuIndleveringClick(Sender: TObject);
3052    begin
3053      Scanningtype := '7';
3054      NulstilAutomatiskValg();
3055      InitIndleveringskode();
3056    end;
3057    
3058  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);
3059  begin  begin
3060    
# Line 3793  begin Line 3070  begin
3070    
3071  end;  end;
3072    
3073  procedure TMainForm.ReturpakkerfraDAO1Click(Sender: TObject);  procedure TMainForm.menuNatxpressReturDAO1Click(Sender: TObject);
3074  begin  begin
3075        Scanningtype := '2';        Scanningtype := '2';
3076        NulstilAutomatiskValg();        NulstilAutomatiskValg();
3077        InitReturFraDao();        InitReturFraDao();
3078  end;  end;
3079    
3080  procedure TMainForm.Returpakkerfrapakkeshop1Click(Sender: TObject);  procedure TMainForm.menuPakkeshopRetur1Click(Sender: TObject);
3081  begin  begin
3082        Scanningtype := '6';        Scanningtype := '6';
3083        InitReturFraPakkeshop();        InitReturFraPakkeshop();
# Line 3809  end; Line 3086  end;
3086    
3087  procedure TMainForm.InitNatxpresslevering();  procedure TMainForm.InitNatxpresslevering();
3088  begin  begin
3089        AutomatiskTjekkodeStyring1.Enabled := true;        menuAutomatiskTjekkodeStyring.Enabled := true;
3090        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3091        Pakkernormal1.Checked := true;        menuNatXpress1.Checked := true;
3092        InitForm(FarveNormal,TitelNormal,UrlNormal);        InitForm(Config.FarveNormal,Config.TitelNormal,Config.UrlNormal);
3093        PanelValg1.Color := clGreen;        PanelValg1.Color := clGreen;
3094        PanelValg1.Font.Color := clWhite;        PanelValg1.Font.Color := clWhite;
3095    
# Line 3823  begin Line 3100  begin
3100        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3101        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3102        Sprgefterboghandlernummer1.Enabled := true;        Sprgefterboghandlernummer1.Enabled := true;
3103        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3104        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3105        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3106        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3107        ListBox1.Visible := true;        ListBox1.Visible := true;
3108        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3109        EKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3110        InitLillePakke();        InitLillePakke();
3111        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3112    
3113          chkForstorTilDirekte.Checked := false;
3114          chkForstorTilDirekte.Enabled := false;
3115    
3116        if BladhusSted = 0 then        if BladhusSted = 0 then
3117        begin        begin
3118          IndlesScanningLogFil();          IndlesScanningLogFil();
# Line 3841  end; Line 3122  end;
3122    
3123  procedure TMainForm.InitReturFraDao();  procedure TMainForm.InitReturFraDao();
3124  begin  begin
3125        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3126        ReturpakkerfraDAO1.Checked := true;        menuNatxpressReturDAO1.Checked := true;
3127        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3128        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);        InitForm(Config.FarveReturDAO, Config.TitelReturDAO, Config.UrlReturDAO);
3129        PanelValg2.Color := clGreen;        PanelValg2.Color := clGreen;
3130        PanelValg2.Font.Color := clWhite;        PanelValg2.Font.Color := clWhite;
3131    
# Line 3855  begin Line 3136  begin
3136        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3137        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3138        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3139        Smpakker1.Enabled := true;        menuSmaaPakker.Enabled := true;
3140        Storepakker1.Enabled := true;        menuStorePakker.Enabled := true;
3141        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3142        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3143        ListBox1.Visible := true;        ListBox1.Visible := true;
3144        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3145        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3146        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3147    
3148          chkForstorTilDirekte.Checked := false;
3149          chkForstorTilDirekte.Enabled := false;
3150    
3151        InitLillePakke();        InitLillePakke();
3152  end;  end;
3153    
3154  procedure TMainForm.InitReturFraKunde();  procedure TMainForm.InitReturFraKunde();
3155  begin  begin
3156        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3157        Returpakkerfraboghandler1.Checked := true;        menuNatxpressReturfraKunde1.Checked := true;
3158        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3159        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);        InitForm(Config.FarveReturBoghandler, Config.TitelReturBoghandler, Config.UrlReturBoghandler);
3160        PanelValg3.Color := clGreen;        PanelValg3.Color := clGreen;
3161        PanelValg3.Font.Color := clWhite;        PanelValg3.Font.Color := clWhite;
3162    
# Line 3881  begin Line 3166  begin
3166        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3167        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3168        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3169        Smpakker1.Enabled := true;        menuSmaaPakker.Enabled := true;
3170        Storepakker1.Enabled := true;        menuStorePakker.Enabled := true;
3171        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3172        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3173        ListBox1.Visible := true;        ListBox1.Visible := true;
3174        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3175        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3176        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3177    
3178          chkForstorTilDirekte.Checked := false;
3179          chkForstorTilDirekte.Enabled := false;
3180    
3181        InitLillePakke();        InitLillePakke();
3182  end;  end;
3183    
3184  procedure TMainForm.InitDirektelevering();  procedure TMainForm.InitDirektelevering();
3185  begin  begin
3186        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3187        Budlevering1.Checked := true;        menuDaoDirekte1.Checked := true;
3188        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3189        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);        InitForm(Config.FarveBudlevering, Config.TitelBudlevering, Config.UrlBudlevering);
3190        PanelValg4.Color := clGreen;        PanelValg4.Color := clGreen;
3191        PanelValg4.Font.Color := clWhite;        PanelValg4.Font.Color := clWhite;
3192    
# Line 3908  begin Line 3197  begin
3197        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3198        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3199        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3200        Smpakker1.Enabled := true;        menuSmaaPakker.Enabled := true;
3201        Storepakker1.Enabled := true;        menuStorePakker.Enabled := true;
3202        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3203        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3204        ListBox1.Visible := true;        ListBox1.Visible := true;
3205        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3206        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3207        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3208        DownloadButton03.Visible := false;        BtnDownloadRuteskiftFil.Visible := false;
3209        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3210        IdFTP1.Passive := true;        IdFTP1.Passive := true;
3211        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3212    
3213          chkForstorTilDirekte.Checked := false;
3214          chkForstorTilDirekte.Enabled := true;
3215    
3216        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then
3217        begin        begin
3218            IndlesScanningLogFil();            IndlesScanningLogFil();
# Line 3930  end; Line 3223  end;
3223    
3224  procedure TMainForm.InitPakkeshoplevering();  procedure TMainForm.InitPakkeshoplevering();
3225  begin  begin
3226        AutomatiskTjekkodeStyring1.Enabled := true;        menuAutomatiskTjekkodeStyring.Enabled := true;
3227        Pakkeshoplevering1.Checked := true;        menuPakkeshop1.Checked := true;
3228        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3229        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);        InitForm(Config.FarvePakkeshoplevering, Config.TitelPakkeshoplevering, Config.UrlPakkeshoplevering);
3230        PanelValg5.Color := clGreen;        PanelValg5.Color := clGreen;
3231        PanelValg5.Font.Color := clWhite;        PanelValg5.Font.Color := clWhite;
3232    
# Line 3944  begin Line 3237  begin
3237        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3238        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3239        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3240        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3241        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3242        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3243        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3244        ListBox1.Visible := true;        ListBox1.Visible := true;
3245        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3246        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3247        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3248  // 20150330: start  
3249  //      EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := true;
3250        EKLoverforsel.Enabled := true;  
3251  // 20150330: slut        chkForstorTilDirekte.Checked := false;
3252          chkForstorTilDirekte.Enabled := true;
3253    
3254        InitLillePakke();        InitLillePakke();
3255        IndlesScanningLogFil();        IndlesScanningLogFil();
3256        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3968  end; Line 3263  end;
3263    
3264  procedure TMainForm.InitReturFraPakkeshop();  procedure TMainForm.InitReturFraPakkeshop();
3265  begin  begin
3266        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3267        Returpakkerfrapakkeshop1.Checked := true;        menuPakkeshopRetur1.Checked := true;
3268        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3269        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(Config.FarveReturPakkeshop, Config.TitelReturPakkeshop, Config.UrlReturPakkeshop);
3270        PanelValg6.Color := clGreen;        PanelValg6.Color := clGreen;
3271        PanelValg6.Font.Color := clWhite;        PanelValg6.Font.Color := clWhite;
3272    
# Line 3982  begin Line 3277  begin
3277        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3278        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3279        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3280        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3281        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3282        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3283        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3284        ListBox1.Visible := true;        ListBox1.Visible := true;
3285        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3286        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3287        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3288        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3289    
3290          chkForstorTilDirekte.Checked := false;
3291          chkForstorTilDirekte.Enabled := false;
3292    
3293    
3294        InitLillePakke();        InitLillePakke();
3295        IndlesScanningLogFil();        IndlesScanningLogFil();
3296        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4001  begin Line 3301  begin
3301        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3302  end;  end;
3303    
3304  procedure TMainForm.Returpakkerfraboghandler1Click(Sender: TObject);  procedure TMainForm.menuNatxpressReturfraKunde1Click(Sender: TObject);
3305  begin  begin
3306        Scanningtype := '3';        Scanningtype := '3';
3307        NulstilAutomatiskValg();        NulstilAutomatiskValg();
# Line 4010  end; Line 3310  end;
3310    
3311  procedure TMainForm.InitIndleveringskode();  procedure TMainForm.InitIndleveringskode();
3312  begin  begin
3313        AutomatiskTjekkodeStyring1.Enabled := false;        menuIndlevering.Checked := true;
3314        Returpakkerfrapakkeshop1.Checked := true;        menuAutomatiskTjekkodeStyring.Enabled := false;
3315        PakkeshopNulstil.Visible := false;  
3316        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        btnNulstil.Visible := false;
3317          InitForm(Config.FarveIndlevering, Config.TitelIndlevering, Config.UrlReturPakkeshop);
3318        PanelValg7.Color := clGreen;        PanelValg7.Color := clGreen;
3319        PanelValg7.Font.Color := clWhite;        PanelValg7.Font.Color := clWhite;
3320    
# Line 4022  begin Line 3323  begin
3323    
3324        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3325        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
       chkSporgEfterKunde.Checked := false;  
3326        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3327        Smpakker1.Enabled := false;        chkSporgEfterKunde.Checked := false;
3328        Storepakker1.Enabled := false;  
3329        RadioButton1.Enabled := false;  
3330        RadioButton2.Enabled := false;  
3331          menuSmaaPakker.Enabled := false;
3332          menuStorePakker.Enabled := false;
3333          radioStorPakke.Enabled := false;
3334          radioLillePakke.Enabled := false;
3335        ListBox1.Visible := true;        ListBox1.Visible := true;
3336        ListBox1.Items.Clear;        ListBox1.Items.Clear();
3337        DownloadButton01.Enabled := false;  
3338        OpdaterListenButton01.Enabled := true;        BtnDownloadKontrolfil.Enabled := false;
3339        EKLoverforsel.Enabled := false;        BtnOpdaterListen.Enabled := true;
3340          BtnEKLoverforsel.Enabled := false;
3341    
3342          chkForstorTilDirekte.Checked := false;
3343          chkForstorTilDirekte.Enabled := false;
3344    
3345    
3346        InitLillePakke();        InitLillePakke();
3347        IndlesScanningLogFil();        IndlesScanningLogFil();
3348        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4044  begin Line 3354  begin
3354  end;  end;
3355    
3356    
3357  procedure TMainForm.Storepakker1Click(Sender: TObject);  procedure TMainForm.menuStorePakkerClick(Sender: TObject);
3358  begin  begin
3359    InitStorPakke();    InitStorPakke();
3360  end;  end;
3361    
3362  procedure TMainForm.Smpakker1Click(Sender: TObject);  procedure TMainForm.menuSmaaPakkerClick(Sender: TObject);
3363  begin  begin
3364    InitLillePakke();    InitLillePakke();
3365  end;  end;
3366    
3367  procedure TMainForm.InitLillePakke();  procedure TMainForm.InitLillePakke();
3368  begin  begin
3369    RadioButton2.Checked := true;    radioLillePakke.Checked := true;
3370    Smpakker1.Checked := true;    menuSmaaPakker.Checked := true;
 // 20150310: start  
3371  //  Stregkode := '';  //  Stregkode := '';
 // 20150310: slut  
3372  end;  end;
3373    
3374  procedure TMainForm.InitStorPakke();  procedure TMainForm.InitStorPakke();
3375  begin  begin
3376    RadioButton1.Checked := true;    radioStorPakke.Checked := true;
3377    Storepakker1.Checked := true;    menuStorePakker.Checked := true;
3378  // 20150310: start  // 20150310: start
3379  //  Stregkode := '';  //  Stregkode := '';
3380  // 20150310: slut  // 20150310: slut
3381  end;  end;
3382    
 /// <summary>  
 ///   This function reads the file resource of "FileName" and returns  
 ///   the version number as formatted text.</summary>  
 /// <example>  
 ///   Sto_GetFmtFileVersion() = '4.13.128.0'  
 ///   Sto_GetFmtFileVersion('', '%.2d-%.2d-%.2d') = '04-13-128'  
 /// </example>  
 /// <remarks>If "Fmt" is invalid, the function may raise an  
 ///   EConvertError exception.</remarks>  
 /// <param name="FileName">Full path to exe or dll. If an empty  
 ///   string is passed, the function uses the filename of the  
 ///   running exe or dll.</param>  
 /// <param name="Fmt">Format string, you can use at most four integer  
 ///   values.</param>  
 /// <returns>Formatted version number of file, '' if no version  
 ///   resource found.</returns>  
 function TMainForm.Sto_GetFmtFileVersion(const FileName: String = '';  
   const Fmt: String = '%d.%d.%d.%d'): String;  
 var  
   sFileName: String;  
   iBufferSize: DWORD;  
   iDummy: DWORD;  
   pBuffer: Pointer;  
   pFileInfo: Pointer;  
   iVer: array[1..4] of Word;  
   S : String;  
 begin  
   // set default value  
   Result := '';  
   // get filename of exe/dll if no filename is specified  
   sFileName := Trim(FileName);  
   if (sFileName = '') then  
     sFileName := GetModuleName(HInstance);  
   // get size of version info (0 if no version info exists)  
   iBufferSize := GetFileVersionInfoSize(PChar(sFileName), iDummy);  
   if (iBufferSize > 0) then  
   begin  
     GetMem(pBuffer, iBufferSize);  
     try  
     // get fixed file info (language independent)  
     GetFileVersionInfo(PChar(sFileName), 0, iBufferSize, pBuffer);  
     VerQueryValue(pBuffer, '\', pFileInfo, iDummy);  
     // read version blocks  
     iVer[1] := HiWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionMS);  
     iVer[2] := LoWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionMS);  
     iVer[3] := HiWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionLS);  
     iVer[4] := LoWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionLS);  
     finally  
       FreeMem(pBuffer);  
     end;  
     // format result string  
     Result := Format(Fmt, [iVer[1], iVer[2], iVer[3], iVer[4]]);  
3383    
     // Hvorfor virker ovenstående ikke ???  
     S := '';  
     Str(iVer[1],Result);  
     S := S+Result+'.';  
     Str(iVer[2],Result);  
     S := S+Result+'.';  
     Str(iVer[3],Result);  
     S := S+Result+'.';  
     Str(iVer[4],Result);  
     S := S+Result+'';  
     Result := S;  
   end;  
 end;  
3384    
3385  procedure TMainForm.PlaySound(filename : PWideChar);  procedure TMainForm.PlaySound(filename : PWideChar);
3386  begin  begin
# Line 4162  end; Line 3405  end;
3405    
3406  procedure TMainForm.Testlyd2Click(Sender: TObject);  procedure TMainForm.Testlyd2Click(Sender: TObject);
3407  begin  begin
 // 20150317: start  
3408    if (PakkeshopText1.Caption = 'Tjekkode') then    if (PakkeshopText1.Caption = 'Tjekkode') then
3409    begin    begin
3410       if ScannetOkTilTjekkodeLyd  <> '' then       if ScannetOkTilTjekkodeLyd  <> '' then
# Line 4175  begin Line 3417  begin
3417       end;       end;
3418       exit;       exit;
3419    end;    end;
 // 20150317: slut  
3420    
3421    if Smpakker1.Checked then    if menuSmaaPakker.Checked then
3422       if ScannetOkLyd  <> '' then       if ScannetOkLyd  <> '' then
3423       begin       begin
3424         PlaySound(PWideChar(ScannetOkLyd));         PlaySound(PWideChar(ScannetOkLyd));
3425       end       end
3426       else       else
3427       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet)'), 'Information', MB_OK);  
3428         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3429       end;       end;
3430    if Storepakker1.Checked then    if menuStorePakker.Checked then
3431       if ScannetOkStorLyd  <> '' then       if ScannetOkStorLyd  <> '' then
3432       begin       begin
3433         PlaySound(PWideChar(ScannetOkStorLyd));         PlaySound(PWideChar(ScannetOkStorLyd));
3434       end       end
3435       else       else
3436       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet stor)'), 'Information', MB_OK);  
3437         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3438       end;       end;
3439  end;  end;
3440    
3441    
3442  procedure TMainForm.Budlevering1Click(Sender: TObject);  procedure TMainForm.menuDaoDirekte1Click(Sender: TObject);
3443  begin  begin
3444        Scanningtype := '4';        Scanningtype := '4';
3445        NulstilAutomatiskValg();        NulstilAutomatiskValg();
# Line 4216  begin; Line 3451  begin;
3451    CheckCode();    CheckCode();
3452  end;  end;
3453    
3454  procedure TMainForm.EKLoverforselClick(Sender: TObject);  procedure TMainForm.BtnEKLoverforselClick(Sender: TObject);
3455  var  var
3456    WebSvar : String;    WebSvar : String;
3457    URLStr : String;    URLStr : String;
# Line 4226  var Line 3461  var
3461    status, kommentar : String;    status, kommentar : String;
3462    
3463  begin  begin
3464      EKLoverforsel.Enabled := false;      BtnEKLoverforsel.Enabled := false;
3465    
3466      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Overfører de scannede pakker til EKL');      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Overfører de scannede pakker til EKL');
3467      logTekst := 'Overfører de scannede pakker til EKL';      logTekst := 'Overfører de scannede pakker til EKL';
3468      SkrivScanningLogFil(logTekst);      SkrivScanningLogFil(logTekst);
3469      StedKode := Sted;      StedKode := Sted;
3470      URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);      URLStr := Format(Config.UrlEKLoverforsel,[StedKode,Sted]);
3471  // 20150330: start  
3472      if PanelValg5.Color = clGreen then      if PanelValg5.Color = clGreen then
3473      begin      begin
3474        URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);        URLStr := Format(Config.UrlEKLoverforselPakkeshop,[StedKode,Sted]);
3475      end;      end;
3476  // 20150330: slut  
3477    
3478      try      try
3479      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
# Line 4289  begin Line 3524  begin
3524        end;        end;
3525      end;      end;
3526    
3527      EKLoverforsel.Enabled := true;      BtnEKLoverforsel.Enabled := true;
3528    
3529      ListBox1.SetFocus;  // for at flytte fokus væk fra knappen så denne ikke aktiveres ved scanning / indtastning af stregkode      ListBox1.SetFocus;  // for at flytte fokus væk fra knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
3530    
# Line 4306  begin Line 3541  begin
3541           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';
3542         end;         end;
3543         KommentarST.Caption := Kommentar;         KommentarST.Caption := Kommentar;
3544         PakkeshopNulstil.Visible := true;         btnNulstil.Visible := true;
3545      end;      end;
3546    
3547  end;  end;
# Line 4330  begin Line 3565  begin
3565    else    else
3566      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);
3567  }  }
3568    Svar := 'Beregnet: '+CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;    Svar := 'Beregnet: ' + TUtils.CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;
3569    
3570    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);
3571    CheckCode();    CheckCode();
# Line 4338  end; Line 3573  end;
3573    
3574  end;  end;
3575    
 function TMainForm.BarCodeValid (ACode: string): boolean;  
 var  
    I: integer;  
    SumOdd, SumEven: integer;  
    ADigit, AChecksumDigit: integer;  
 begin  
    SumOdd := 0;  
    SumEven := 0;  
    for I := 1 to (Length (ACode) - 1) do begin  
       ADigit := StrToIntDef (ACode [I], 0);  
       if (I MOD 2 = 0) then begin  
          SumEven := SumEven + ADigit;  
       end else begin  
          SumOdd := SumOdd + ADigit;  
       end; {if}  
    end; {for}  
    AChecksumDigit := StrToIntDef (ACode [Length (ACode)], 0);  
    Result := ((SumOdd*3 + SumEven + AChecksumDigit) MOD 10 = 0);  
 end; {--BarCodeValid--}  
   
 { used for EAN 8/13 }  
 function TMainForm.CheckSumModulo10(const data:string):string;  
         var i,fak,sum : Integer;  
 begin  
         sum := 0;  
         fak := Length(data);  
         for i:=1 to Length(data) do  
         begin  
                 if (fak mod 2) = 0 then  
                         sum := sum + (StrToInt(data[i])*1)  
                 else  
                         sum := sum + (StrToInt(data[i])*3);  
                 dec(fak);  
         end;  
         if (sum mod 10) = 0 then  
                 result := data+'0'  
         else  
                 result := data+IntToStr(10-(sum mod 10));  
 end;  
3576    
3577  //  //
3578  // Bladhus ***  // Bladhus ***
# Line 4854  begin Line 4050  begin
4050    ListBox1.SetFocus;  // for at flytte fokus væk fra upload knappen så denne ikke aktiveres ved scanning / indtastning af stregkode    ListBox1.SetFocus;  // for at flytte fokus væk fra upload knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4051  end;  end;
4052    
4053  procedure TMainForm.DownloadButton01Click(Sender: TObject);  procedure TMainForm.BtnDownloadKontrolfilClick(Sender: TObject);
4054  begin  begin
4055      DownloadBladhusKontrolfil();      DownloadBladhusKontrolfil();
4056      ListBox1.SetFocus;  // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode      ListBox1.SetFocus;  // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4057  end;  end;
4058    
4059  procedure TMainForm.OpdaterListenButton01Click(Sender: TObject);  procedure TMainForm.BtnOpdaterListenClick(Sender: TObject);
4060  const  const
4061    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
4062    
# Line 4869  begin Line 4065  begin
4065      ListBox1.SetFocus;  // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode      ListBox1.SetFocus;  // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4066  end;  end;
4067    
4068  procedure TMainForm.DownloadButton03Click(Sender: TObject);  procedure TMainForm.BtnDownloadRuteskiftFilClick(Sender: TObject);
4069  begin  begin
4070      if (getProddag() = 'lørdag') then      if (getProddag() = 'lørdag') then
4071      begin      begin
# Line 4878  begin Line 4074  begin
4074      ListBox1.SetFocus;  // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode      ListBox1.SetFocus;  // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4075  end;  end;
4076    
4077  function TMainForm.Explode(var a: TStrArray; Border, S: string): Integer;  
 var  
   S2: string;  
 begin  
   Result  := 0;  
   S2 := S + Border;  
   repeat  
     SetLength(A, Length(A) + 1);  
     a[Result] := Copy(S2, 0,Pos(Border, S2) - 1);  
     Delete(S2, 1,Length(a[Result] + Border));  
     Inc(Result);  
   until S2 = '';  
 end;  
4078    
4079  procedure TMainForm.IndlesManglendeScanninger();  procedure TMainForm.IndlesManglendeScanninger();
4080  var  var
# Line 4901  var Line 4085  var
4085    I: Integer;    I: Integer;
4086    stregkode, modtagernavn, modtageradresse, kommentar : string;    stregkode, modtagernavn, modtageradresse, kommentar : string;
4087    pakketype, tjekkodestatus : String;    pakketype, tjekkodestatus : String;
4088    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;    antalLiniefelter, antalFelterFundet, linienr : Integer;
4089    pakketyper : TStrings;    //pakketyper : TStrings;
4090      pakketyper : TDictionary<String, Integer>;
4091      tmpAntal : Integer;
4092    
4093     time, timeSamlet : TTimingHelper;
4094    
4095    
4096    antlin : Integer;    antlin : Integer;
4097  // 20150306: start  
4098    antlinIdag, antlinSenere : Integer;    antlinIdag, antlinSenere : Integer;
4099  // 20150306: slut  
4100    XmlFelter : TStrings;    //XmlFelter : TStrings;
4101      XmlFelter : TDictionary<String, Integer>;
4102    
4103   begin   begin
4104      XmlFelter := TStringList.Create;  
4105      pakketyper := TStringList.Create;  
4106        XmlFelter := TDictionary<String, Integer>.Create;
4107        pakketyper := TDictionary<String, Integer>.Create;
4108    
4109      linienr := 0;      linienr := 0;
4110      ListBox2.Clear;      ListBox2.Clear;
4111      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Henter oversigt over pakker der endnu ikke er modtaget');      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Henter oversigt over pakker der endnu ikke er modtaget');
# Line 4926  var Line 4120  var
4120          StedKode := Sted;          StedKode := Sted;
4121        end;        end;
4122    
4123  // 20150310: start        Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4124  (*  
4125      if Returpakkerfrapakkeshop1.Checked then  
4126       begin  
4127        URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);      if (Scanningtype = '7') then
      end  
     else if Pakkeshoplevering1.Checked then  
4128       begin       begin
4129        URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);        URLStr := Format(Config.UrlIndleveringsPakkeManglendeScanninger, [StedKode]);
4130       end       end
4131      else if Pakkernormal1.Checked then      else if (Scanningtype = '6') then
4132       begin       begin
4133        URLStr := Format(UrlManglendeScanninger,[StedKode,'B2']);        URLStr := Format(Config.UrlPakkeshopManglendeReturScanninger, [StedKode]);
      end  
     else  
      begin  
       URLStr := Format(UrlManglendeScanninger,[StedKode,'A2']);    // Budleveringer  
      end;  
 *)  
     if (Scanningtype = '6') then  
      begin  
       URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);  
4134       end       end
4135      else if (Scanningtype = '5') then      else if (Scanningtype = '5') then
4136       begin       begin
4137        URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);        URLStr := Format(Config.UrlPakkeshopManglendeScanninger, [StedKode]);
4138       end       end
4139      else if (Scanningtype = '1') then      else if (Scanningtype = '1') then
4140       begin       begin
4141        URLStr := Format(UrlManglendeScanninger,[StedKode,'B2']);        URLStr := Format(Config.UrlManglendeScanninger,[StedKode,'B2']);
4142       end       end
4143      else if (Scanningtype = '4') then      else if (Scanningtype = '4') then
4144       begin       begin
4145        URLStr := Format(UrlManglendeScanninger,[StedKode,'A2']);    // Budleveringer        URLStr := Format(Config.UrlManglendeScanninger,[StedKode,'A2']);    // Budleveringer
4146       end       end
4147      else      else
4148       begin       begin
# Line 4967  var Line 4150  var
4150       end;       end;
4151  // 20150310: slut  // 20150310: slut
4152    
4153        time := TTimingHelper.create();        //DEBUG
4154        timeSamlet := TTimingHelper.create();        //DEBUG
4155    
4156      try      try
4157      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
4158  //    URLStr := string(Utf8Encode(URLStr));  //    URLStr := string(Utf8Encode(URLStr));
# Line 4976  var Line 4162  var
4162        begin        begin
4163          // Her skal vi ikke gøre noget - men vi skal forespørge igen          // Her skal vi ikke gøre noget - men vi skal forespørge igen
4164          WebSvar := IdHTTP1.Get(URLStr);          WebSvar := IdHTTP1.Get(URLStr);
4165    
4166    
4167    
4168        end;        end;
4169        on e:exception do        on e:exception do
4170        begin        begin
# Line 4986  var Line 4175  var
4175        end;        end;
4176      end;      end;
4177      try      try
4178          time.stop('HTTP Load');     //DEBUG
4179    
4180        XMLDocument1.LoadFromXML(WebSvar);        XMLDocument1.LoadFromXML(WebSvar);
4181    
4182  // 20150206: start        time.stop('XML Load');     //DEBUG
4183    
4184    
4185    
4186    
4187    
4188    
4189        antlin := 0;        antlin := 0;
4190        antlinIdag := 0;        antlinIdag := 0;
4191        antlinSenere := 0;        antlinSenere := 0;
4192  // 20150306: slut  
       antalFelterFundet := 0;  
4193        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4194            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4195            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
4196              if Node.NodeName = 'Stregkode' then              if Node.NodeName = 'Stregkode' then
4197              begin              begin
4198                 antlin := antlin + 1;                 Inc(antlin);
4199                 // 20150306: start                 // 20150306: start
4200                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4201                begin                begin
4202                   if (pos('(', Node.NodeValue) = 0) then                   if (pos('(', Node.NodeValue) = 0) then
4203                   begin                   begin
4204                     antlinIdag := antlinIdag + 1;                     Inc(antlinIdag);
4205                   end                   end
4206                   else                   else
4207                   begin                   begin
4208                     antlinSenere := antlinSenere + 1;                     Inc(antlinSenere);
4209                   end;                   end;
4210                end;                end;
4211                 // 20150306: slut                 // 20150306: slut
4212              end;              end;
4213            end;            end;
4214            if (XmlFelter.values[Node.NodeName] <> '') then            if ( XmlFelter.ContainsKey(Node.NodeName) ) then
4215                  XmlFelter.values[Node.NodeName] := IntToStr(StrToInt(XmlFelter.values[Node.NodeName]) + 1)                begin
4216                    XmlFelter.TryGetValue(Node.NodeName, tmpAntal);
4217                    XmlFelter.AddOrSetValue(Node.NodeName, tmpAntal + 1);
4218                  end
4219                else                else
4220                  XmlFelter.values[Node.NodeName] := '1';                begin
4221                    XmlFelter.Add(Node.NodeName, 1);
4222                  end;
4223    
4224        end;        end;
4225        antalLiniefelter := XmlFelter.Count;        antalLiniefelter := XmlFelter.Count;
4226        antalFelterFundet := 0;        antalFelterFundet := 0;
4227        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug
4228        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array
4229  // 20150206: start  
4230  //      logTekst := 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.';        time.stop('Antal Linier');//DEBUG
4231    
4232          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4233    
4234        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4235        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4236        begin        begin
4237          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';
4238        end;        end;
4239        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4240  // 20150306: slut  
4241        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4242    
4243    
4244        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4245            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4246            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
# Line 5042  var Line 4248  var
4248                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4249                  stregkode := Node.NodeValue;                  stregkode := Node.NodeValue;
4250                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4251              end;              end
4252              if Node.NodeName = 'ModtagerNavn' then begin              else if Node.NodeName = 'ModtagerNavn' then begin
4253                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4254                  modtagernavn := Node.NodeValue;                  modtagernavn := Node.NodeValue;
4255                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4256              end;              end
4257              if Node.NodeName = 'ModtagerAdresse' then begin              else if Node.NodeName = 'ModtagerAdresse' then begin
4258                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4259                  modtageradresse := Node.NodeValue;                  modtageradresse := Node.NodeValue;
4260                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4261              end;              end
4262              if Node.NodeName = 'Kommentar' then begin              else if Node.NodeName = 'Kommentar' then begin
4263                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4264                  kommentar := Node.NodeValue;                  kommentar := Node.NodeValue;
4265                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4266              end;              end
4267              if Node.NodeName = 'PakkeType' then begin              else if Node.NodeName = 'PakkeType' then begin
4268                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4269                  pakketype := Node.NodeValue;                  pakketype := Node.NodeValue;
4270                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4271                if (pakketyper.values[pakketype] <> '') then                if ( pakketyper.ContainsKey(pakketype) ) then
4272                  pakketyper.values[pakketype] := IntToStr(StrToInt(pakketyper.values[pakketype]) + 1)                begin
4273                    pakketyper.TryGetValue(pakketype, tmpAntal);
4274                    pakketyper.AddOrSetValue(pakketype, tmpAntal + 1);
4275                  end
4276                else                else
4277                  pakketyper.values[pakketype] := '1';                  pakketyper.Add(pakketype, 1);
4278              end;              end
4279              if Node.NodeName = 'TjekkodeStatus' then begin              else if Node.NodeName = 'TjekkodeStatus' then begin
4280                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4281                  tjekkodestatus := Node.NodeValue;                  tjekkodestatus := Node.NodeValue;
4282                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4283                  if (tjekkodestatus = '-1') then                  if (tjekkodestatus = '-1') then
4284                  begin                  begin
4285  // 20150306: start  
 //                    stregkoderMedTjekkodeArray[linienr] := stregkode;  
4286                    if (pos(' ', stregkode) > 0) then                    if (pos(' ', stregkode) > 0) then
4287                    begin                    begin
4288                      stregkoderMedTjekkodeArray[linienr] := split(stregkode, ' ', 2);  // Fjerner lige en evt. fremtidig dato fra feltet                      stregkoderMedTjekkodeArray[linienr] := TUtils.split(stregkode, ' ', 2);  // Fjerner lige en evt. fremtidig dato fra feltet
4289                    end                    end
4290                    else                    else
4291                    begin                    begin
4292                      stregkoderMedTjekkodeArray[linienr] := stregkode;                      stregkoderMedTjekkodeArray[linienr] := stregkode;
4293                    end;                    end;
4294  // 20150306: slut                    linienr := linienr + 1;
                     linienr := linienr + 1;  
4295                  end;                  end;
4296              end;              end;
4297    
4298    
4299              if antalFelterFundet = antalLiniefelter then              if antalFelterFundet = antalLiniefelter then
4300              begin              begin
4301                if (ScanningType = '1') then                if (ScanningType = '1') then
# Line 5102  var Line 4311  var
4311              end;              end;
4312            end;            end;
4313        end;        end;
       for pakketypeix := 0 to pakketyper.Count-1 do  
         begin  
           ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + ' '+pakketyper[pakketypeix]+' pakke(r) ikke modtaget');  
         end;  
4314    
4315          // Free up the list object  
4316          time.stop('Fyld Listbox2');//DEBUG
4317    
4318    
4319          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4320    
4321    
4322          for pakketype in pakketyper.Keys do
4323          begin
4324            pakketyper.TryGetValue(pakketype, tmpAntal);
4325            ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + pakketype + ' ' + IntToStr(tmpAntal) + ' pakke(r) ikke modtaget');
4326          end;
4327    
4328            // Free up the dictionary object
4329        pakketyper.Free;        pakketyper.Free;
4330  // 20150306: start  
4331    
4332    
4333  //      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.');  //      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.');
4334        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4335        if (antlinSenere > 0) then        if (antlinSenere > 0) then
# Line 5118  var Line 4338  var
4338        end;        end;
4339        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4340        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
 // 20150306: slut  
 // 20150309: start  
4341        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4342        begin        begin
4343          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);
# Line 5128  var Line 4346  var
4346        begin        begin
4347          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);
4348        end;        end;
 // 20150309: slut  
4349    
 // 20150310: start  
4350        if (Scanningtype = '1') then        if (Scanningtype = '1') then
4351        begin        begin
4352          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal
# Line 5209  var Line 4425  var
4425            PanelManglendePakker6.Visible := false;            PanelManglendePakker6.Visible := false;
4426          end;          end;
4427        end;        end;
 // 20150310: slut  
4428    
4429      except on e:exception do      except on e:exception do
4430        begin        begin
# Line 5220  var Line 4435  var
4435        end;        end;
4436      end;      end;
4437    
4438        time.stop('Done');//DEBUG
4439        timeSamlet.stop('SamletTid');//DEBUG
4440    
4441    
4442  end;  end;
4443    
4444  procedure TMainForm.IndlesScanningLogFil();  procedure TMainForm.IndlesScanningLogFil();
# Line 5271  end; Line 4490  end;
4490  procedure TMainForm.SkrivScanningLogFil(var tekst : string);  procedure TMainForm.SkrivScanningLogFil(var tekst : string);
4491  var  var
4492     SomeTxtFile : TextFile;     SomeTxtFile : TextFile;
    buffer : string;  
    S: string;  
4493     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
4494     imorgenYmd : string;     imorgenYmd : string;
4495     logFilnavn : string;     logFilnavn : string;
4496      error : Integer;     //error : Integer;
4497    
4498  begin  begin
4499    if (SkrivLog = '1') then    if (SkrivLog = '1') then
# Line 5368  begin Line 4585  begin
4585          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
4586          S := buffer;          S := buffer;
4587          SetLength(A,0);          SetLength(A,0);
4588          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
4589          if (length(A) < 2) then          if (length(A) < 2) then
4590          begin          begin
4591            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
4592          end;          end;
4593            if (length(A) > 1) then            if (length(A) > 1) then
4594            begin            begin
# Line 5445  begin Line 4662  begin
4662          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
4663          S := buffer;          S := buffer;
4664          SetLength(A,0);          SetLength(A,0);
4665          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
4666          if (length(A) < 3) then          if (length(A) < 3) then
4667          begin          begin
4668            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
4669          end;          end;
4670          if (A[0]=imorgenYmd) then          if (A[0]=imorgenYmd) then
4671          begin          begin
# Line 5540  begin Line 4757  begin
4757    result := svar;    result := svar;
4758  end;  end;
4759    
4760    procedure TMainForm.VisAlarmSkaerm(strMessage: string);
4761    begin
4762      //ShowMessage('Ændring ikke tilladt');
4763      // Her skal komme en 'rød skærm' alarm
4764      PlaySound(PWideChar(AlarmLyd));
4765      MainForm.Color := clRed;
4766    
4767    
4768      RuteNummerST.Caption := '';
4769      BoghandlerNavnST.Caption := '';
4770      btnNulstil.Visible := true;
4771    
4772      if (strMessage <> '') then
4773      begin
4774        ListBox1.Items.Insert(0, strMessage);
4775        KommentarST.Caption := strMessage;
4776      end;
4777    
4778      Stregkode := ''; //Nulstil stregkode feltet efter at fejl er vist
4779    
4780    end;
4781    
4782  function TMainForm.getProddato() : TDate;  function TMainForm.getProddato() : TDate;
4783  var  var
4784     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
# Line 5597  begin Line 4836  begin
4836    result := svar;    result := svar;
4837  end;  end;
4838    
 function TMainForm.GetCurrentPrinterHandle: THandle;  
 var  
   Device, Driver, Port: array[0..255] of Char;  
   hDeviceMode: THandle;  
 begin  
   Printer.GetPrinter(Device, Driver, Port, hDeviceMode);  
   if not OpenPrinter(@Device, Result, nil) then  
     RaiseLastWin32Error;  
 end;  
   
 function TMainForm.SavePChar(p: PChar): PChar;  
 const  
   error: PChar = 'Nil';  
 begin  
   if not Assigned(p) then  
     Result := error  
   else  
     Result := p;  
 end;  
4839    
4840  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);
4841  begin  begin
# Line 5629  begin Line 4849  begin
4849    end;    end;
4850  end;  end;
4851    
4852  function TMainForm.AdobeReaderExists: Boolean;  
4853  var  //Nedarvet fra IParentForm
4854    AReg: TRegistry;  procedure TMainForm.Msg( msg : string);
4855  begin  begin
4856    result:= false;    ShowMessage(msg);
   AReg := TRegistry.Create;  
   AReg.RootKey := HKEY_LOCAL_MACHINE;  
   if AReg.KeyExists('\SOFTWARE\Adobe\Acrobat Reader') then  
     result:= True;  
   AReg.Free;  
4857  end;  end;
4858    
4859  procedure TMainForm.CheckPrintQue(tjektype : string);  //Nedarvet fra IParentForm
4860  type  procedure TMainForm.LogMessage( msg : string);
   TJobs  = array [0..1000] of JOB_INFO_1;  
   PJobs = ^TJobs;  
 var  
   hPrinter: THandle;  
   bytesNeeded, numJobs, i: Cardinal;  
   pJ: PJobs;  
   printerTxt, statusTxt, dokumentTxt: String;  
4861  begin  begin
4862      ListBox1.Items.Insert(0, msg);
4863      SkrivScanningLogFil(msg);
4864    end;
4865    
 // tjektype = 'Opstart' skal vise alarmlinie, samt opdatere listbox1  
 //            'Test'  skal vise alarmlinie, samt opdatere listbox1  
 //            'Timer' skal kun vise alarmlinie  
4866    
4867    if (PrinterNavn = 'Ingen') and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then  //Nedarvet fra IParentForm
4868    begin  procedure TMainForm.SetPrinterstatusText( txt: string; alert: boolean);
4869      printerTxt := 'Der er fravalgt printer i dette program';  begin
4870      ListBox1.Items.Insert(0,printerTxt);  
4871      SkrivScanningLogFil(printerTxt);    PrinterstatusStaticText1.Caption := txt;
4872    end    if (alert) then
   else if (Printer.Printers.Count = 0) and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then  
4873    begin    begin
4874      printerTxt := 'Der er ikke installeret en printer på denne PC';      PrinterstatusStaticText1.Font.Color := clBlack;
4875      ListBox1.Items.Insert(0,printerTxt);      PrinterstatusStaticText1.Color := MainForm.Color;
4876      SkrivScanningLogFil(printerTxt);      PrinterstatusStaticText1.Transparent := True;
4877    end    end
4878    else    else
4879    begin    begin
4880      hPrinter := GetCurrentPrinterHandle;      PrinterstatusStaticText1.Font.Color := clRed;
4881      try      PrinterstatusStaticText1.Color := clWhite;
4882        EnumJobs(hPrinter, 0, 1000, 1, nil, 0, bytesNeeded, numJobs);      PrinterstatusStaticText1.Transparent := true;
       pJ := AllocMem(bytesNeeded);  
       if not EnumJobs(hPrinter, 0, 1000, 1, pJ, bytesNeeded, bytesNeeded, numJobs) then  
         RaiseLastWin32Error;  
   
       if numJobs = 0 then  
       begin  
         if (tjektype = 'Test') then  
         begin  
           logTekst := printerTxt + ': Ingen dokumenter i kø';  
           ListBox1.Items.Insert(0,logTekst);  
           SkrivScanningLogFil(logTekst);  
         end;  
         PrinterstatusStaticText1.Caption := '';  
         PrinterstatusStaticText1.Color := MainForm.Color;  
       end  
       else   // så er der kø til printeren  
       begin  
         printerTxt := SavePChar(pJ^[0].pPrinterName);  
         if (tjektype = 'Opstart') or (tjektype = 'Test') then  
         begin  
           logTekst := IntToStr(numJobs) + ' dokument(er) i kø til printer: ' + printerTxt;  
           ListBox1.Items.Insert(0,logTekst);  
           SkrivScanningLogFil(logTekst);  
         end;  
         for i := 0 to Pred(numJobs) do  
         begin  
           printerTxt := SavePChar(pJ^[i].pPrinterName);  
           statusTxt := 'Ukendt';  
           if (IntToStr(pJ^[i].Status) = '0') then  
             statusTxt := 'Venter...';  
           if (IntToStr(pJ^[i].Status) = '4096') then  
             statusTxt := 'Printer...';  
           if (IntToStr(pJ^[i].Status) = '8210') then  
             statusTxt := 'Printerfejl';  
           if (IntToStr(pJ^[i].Status) = '8214') then  
             statusTxt := 'Sletter print...';  
   
           dokumentTxt := SavePChar(pJ^[i].pDocument);  
           if (dokumentTxt = '') then  
             dokumentTxt := 'Uden navn';  
   
           if (tjektype = 'Opstart') or (tjektype = 'Test') then  
           begin  
             logTekst := Format('Printer %s, Dokument %d: %s, Status (%d): %s',  
                                     [printerTxt, i+1, dokumentTxt, pJ^[i].Status, statusTxt]);  
             ListBox1.Items.Insert(0,logTekst);  
             SkrivScanningLogFil(logTekst);  
           end;  
   
           if (i = 0) then  
           begin  
             PrinterstatusStaticText1.Caption := printerTxt + ': ' + IntToStr(numJobs) + ' dokument(er) in kø. Dokument status: ' + statusTxt;  
             PrinterstatusStaticText1.Font.Color := clBlack;  
             PrinterstatusStaticText1.Color := MainForm.Color;  
             PrinterstatusStaticText1.Transparent := True;  
             if (numJobs > 3) then  
             begin  
               PrinterstatusStaticText1.Font.Color := clRed;  
               PrinterstatusStaticText1.Color := clWhite;  
               PrinterstatusStaticText1.Transparent := true;  
             end;  
           end;  
   
         end;  
       end  
       finally  
         ClosePrinter(hPrinter);  
     end;  
4883    end;    end;
4884  end;  end;
4885    
4886  function TMainForm.CheckUrl(url:string):boolean;  //Nedarvet fra IParentForm
4887  var  function TMainForm.GetFormObject() : TForm;
   hSession, hfile, hRequest: hInternet;  
   dwindex,dwcodelen :dword;  
   dwcode:array[1..20] of char;  
   res : pchar;  
 begin  
   if pos('http://',lowercase(url))=0 then  
     url := 'http://'+url;  
   Result := false;  
   hSession := InternetOpen('InetURL:/1.0',  
                             INTERNET_OPEN_TYPE_PRECONFIG,  
                             nil,  
                             nil,  
                             0);  
   if assigned(hsession) then  
   begin  
     hfile := InternetOpenUrl(hsession,  
                              pchar(url),  
                              nil,  
                              0,  
                              INTERNET_FLAG_RELOAD,  
                              0);  
     dwIndex := 0;  
     dwCodeLen := 10;  
     HttpQueryInfo(hfile,  
                   HTTP_QUERY_STATUS_CODE,  
                   @dwcode,  
                   dwcodeLen,  
                   dwIndex);  
     res := pchar(@dwcode);  
     result:= (res ='200') or (res ='302');  
     if assigned(hfile) then  
       InternetCloseHandle(hfile);  
     InternetCloseHandle(hsession);  
   end;  
   
 end;  
   
 // 20150310: start  
 procedure TMainForm.RoundCornerOf(Control: TWinControl);  
 var  
    R: TRect;  
    Rgn: HRGN;  
4888  begin  begin
4889     with Control do    Result := self;
    begin  
      R := ClientRect;  
 //     rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 20, 20) ;  
      rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 25, 25) ;  
 //     rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 30, 30) ;  
      Perform(EM_GETRECT, 0, lParam(@r)) ;  
      InflateRect(r, - 4, - 4) ;  
      Perform(EM_SETRECTNP, 0, lParam(@r)) ;  
      SetWindowRgn(Handle, rgn, True) ;  
      Invalidate;  
    end;  
4890  end;  end;
 // 20150310: slut  
4891    
4892  end.  end.
4893    

Legend:
Removed from v.2654  
changed lines
  Added in v.3089

  ViewVC Help
Powered by ViewVC 1.1.20