/[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 2650 by torben, Thu Aug 20 20:58:26 2015 UTC revision 3087 by torben, Mon Aug 15 14:14:14 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;
39      IdHTTP1: TIdHTTP;      IdHTTP1: TIdHTTP;
40      XMLDocument1: TXMLDocument;      XMLDocument1: TXMLDocument;
41      ApplicationEvents1: TApplicationEvents;      ApplicationEvents1: TApplicationEvents;
42      CheckBox1: 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      CheckBox2: TCheckBox;      chkAltidPrintLabel: TCheckBox;
81      EKLoverforsel: TButton;      BtnEKLoverforsel: TButton;
82      N5: TMenuItem;      N5: TMenuItem;
83      Uploadlogfil1: TMenuItem;      Uploadlogfil1: TMenuItem;
84      Manual1: TMenuItem;      Manual1: TMenuItem;
85      PrinterstatusStaticText1: TStaticText;      PrinterstatusStaticText1: TStaticText;
86      Timer1: TTimer;      Timer1: TTimer;
87      CheckBox3: 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 CheckBox1Click(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 154  type Line 168  type
168    procedure InitIndleveringskode();    procedure InitIndleveringskode();
169    
170    procedure Altidprintepakkelabel1Click(Sender: TObject);    procedure Altidprintepakkelabel1Click(Sender: TObject);
171    procedure CheckBox2Click(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 CheckBox3Click(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, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop,
222              FarveIndlevering : String;
223    
224        Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop,
225              TitelIndlevering : String;
226    
227      AlarmLyd : String;      AlarmLyd : String;
228      ScannetOkLyd : String;      ScannetOkLyd : String;
229      ScannetOkStorLyd : String;      ScannetOkStorLyd : String;
230  // 20150317: start  
231      ScannetOkTilTjekkodeLyd : String;      ScannetOkTilTjekkodeLyd : String;
232  // 20150317: slut  
233      PrinterNavn : String;      PrinterNavn : String;
234      TjekPrinter : String;      TjekPrinter : String;
235      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;  
236      Org_RuteNummerST, Org_BoghandlerNavnST, Org_KommentarST : String;      Org_RuteNummerST, Org_BoghandlerNavnST, Org_KommentarST : String;
237      BladhusSted : Integer;      BladhusSted : Integer;
238      BladhusStedKode : Array of string;      BladhusStedKode : Array of string;
# Line 242  type Line 245  type
245      PakkeshopStregkode, PakkeshopTjekkode : String;      PakkeshopStregkode, PakkeshopTjekkode : String;
246      BoghandlerStregkode, BoghandlerTjekkode : String;      BoghandlerStregkode, BoghandlerTjekkode : String;
247      TjekUrls : String;      TjekUrls : String;
248        Config : TConfiguration;
249    
250            function CheckSumModulo10(const data:string):string;          { used for EAN 8/13 }  
251        LabelPrint: TLabelPrint;
252    
253      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 = '');
254      procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');  
255      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 = '');
256      procedure CheckCode();      procedure CheckCode();
257      procedure IndlesManglendeScanninger();      procedure IndlesManglendeScanninger();
# Line 255  type Line 260  type
260      procedure IndlesScanningLogFil();      procedure IndlesScanningLogFil();
261      procedure SkrivScanningLogFil(var tekst : string);      procedure SkrivScanningLogFil(var tekst : string);
262      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;
263        procedure VisAlarmSkaerm(strMessage: string);
264    
265    
266    public    public
267      { Public declarations }      { Public declarations }
268    end;    end;
269    
270    
271  var  var
272    MainForm: TMainForm;    MainForm: TMainForm;
273    
# Line 273  var Line 281  var
281  implementation  implementation
282  {$R *.dfm}  {$R *.dfm}
283    
284  function TMainForm.TColorToHex(Color : TColor) : string;  
285  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;  
286    
287  procedure TMainForm.InitForm(Farve,Titel,Url : String);  procedure TMainForm.InitForm(Farve,Titel,Url : String);
288  begin  begin
289    
290  // 20150309: startr      IdHTTP1.ConnectTimeout := 5000; // Vent max 5 sek på connect
291        IdHTTP1.ReadTimeout := 10000; // Vent max 10 sek på read
292    
293    
294    
295    
296      StaticTextManglendePakker.Caption := '';      StaticTextManglendePakker.Caption := '';
297  // 20150309: slut  
298    
299      PanelValg1.Color := clBtnFace;      PanelValg1.Color := clBtnFace;
300      if PanelValg1.Enabled = true then      if PanelValg1.Enabled = true then
# Line 340  begin Line 338  begin
338        PanelValg7.Font.Color := clWindowText;        PanelValg7.Font.Color := clWindowText;
339      end;      end;
340    
341      OpdaterListenButton01.Enabled := false;      BtnOpdaterListen.Enabled := false;
342    
343      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
344      begin      begin
# Line 368  begin Line 366  begin
366        else if (Sted = 'BR') then        else if (Sted = 'BR') then
367          begin StedNavn := 'Brøndby: '; end          begin StedNavn := 'Brøndby: '; end
368        else if (Sted = 'BK') then        else if (Sted = 'BK') then
369          begin StedNavn := 'Bladkompagniet: '; end          begin StedNavn := 'Bladkompagniet/ISV: '; end
370          else if (Sted = 'TK') then
371            begin StedNavn := 'BK/Trykkompagniet: '; end
372        else if (Sted = 'DBK') then        else if (Sted = 'DBK') then
373          begin StedNavn := 'DBK Køge: '; end          begin StedNavn := 'DBK/Køge: '; end
374        else if (Sted = '1') then        else if (Sted = '1') then
375          begin StedNavn := 'Ålborg: '; end          begin StedNavn := 'Ålborg: '; end
376        else if (Sted = '2') then        else if (Sted = '2') then
# Line 394  begin Line 394  begin
394    
395      StartScreen();      StartScreen();
396      MainForm.Caption := Titel;      MainForm.Caption := Titel;
397      MainForm.Color := HexToTColor(Farve);      MainForm.Color := TUtils.HexToTColor(Farve);
398      MainForm.Farve := Farve;      MainForm.Farve := Farve;
399      MainForm.Titel := Titel;      MainForm.Titel := Titel;
400      MainForm.Url := Url;      MainForm.Url := Url;
# Line 404  begin Line 404  begin
404        PrinterstatusStaticText1.Color := MainForm.Color;        PrinterstatusStaticText1.Color := MainForm.Color;
405      end;      end;
406    
407      if PakkeshopLevering1.Checked or Pakkernormal1.Checked then      if menuPakkeshop1.Checked or menuNatXpress1.Checked then
408        PakkeshopText1.Visible := true        PakkeshopText1.Visible := true
409      else      else
410        PakkeshopText1.Visible := false;        PakkeshopText1.Visible := false;
411    
412      CheckBox3.Checked := false;      chkScanTjekkode.Checked := false;
413      CheckBox3.Enabled := false;      chkScanTjekkode.Enabled := false;
414      Scanogstjekkoden1.Enabled := false;      Scanogstjekkoden1.Enabled := false;
415    
416      if (Scanningtype = '1') or (Scanningtype = '5') then      if (Scanningtype = '1') or (Scanningtype = '5') then
417      begin      begin
418        if (ScanTjekkode = '1') then        if (ScanTjekkode = '1') then
419        begin        begin
420          CheckBox3.Checked := true;          chkScanTjekkode.Checked := true;
421          CheckBox3.Enabled := true;          chkScanTjekkode.Enabled := true;
422          Scanogstjekkoden1.Enabled := true;          Scanogstjekkoden1.Enabled := true;
423        end        end
424        else        else
425        begin        begin
426          CheckBox3.Checked := false;          chkScanTjekkode.Checked := false;
427          CheckBox3.Enabled := true;         // False vil forhindre indtastning af tjekkode i nat x-press scanning          chkScanTjekkode.Enabled := true;         // False vil forhindre indtastning af tjekkode i nat x-press scanning
428          Scanogstjekkoden1.Enabled := true; // False vil forhindre indtastning af tjekkode i nat x-press scanning          Scanogstjekkoden1.Enabled := true; // False vil forhindre indtastning af tjekkode i nat x-press scanning
429        end;        end;
430      end;      end;
431    
432      if Automatisktjekkodestyring1.Checked then      if menuAutomatiskTjekkodeStyring.Checked then
433      begin      begin
434        CheckBox3.Enabled := false;        chkScanTjekkode.Enabled := false;
435        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
436      end;      end;
437    
# Line 454  begin Line 454  begin
454          end          end
455          else          else
456          begin          begin
457            logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
458          end;          end;
459          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
460        end        end
461        else        else
462        begin        begin
463          logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';          logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
464          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
465        end;        end;
466      end;      end;
467    
468    
469  end;  end;
470    
471  procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);  procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);
# Line 472  begin Line 473  begin
473    
474    if Altidprintepakkelabel1.Checked then    if Altidprintepakkelabel1.Checked then
475    begin    begin
476       CheckBox2.Checked := true;       chkAltidPrintLabel.Checked := true;
477    end    end
478    else    else
479    begin    begin
480       CheckBox2.Checked := false;       chkAltidPrintLabel.Checked := false;
481    end;    end;
482    
483  end;  end;
# Line 486  begin Line 487  begin
487    StregkodeST.Caption := Stregkode;    StregkodeST.Caption := Stregkode;
488  end;  end;
489    
490  procedure TMainForm.Automatisktjekkodestyring1Click(Sender: TObject);  procedure TMainForm.menuAutomatiskTjekkodeStyringClick(Sender: TObject);
491  begin  begin
492    if Automatisktjekkodestyring1.Checked then    if menuAutomatiskTjekkodeStyring.Checked then
493    begin    begin
494       CheckBox3.Enabled := false;       chkScanTjekkode.Enabled := false;
495       Scanogstjekkoden1.Enabled := false;       Scanogstjekkoden1.Enabled := false;
496    end    end
497    else    else
498    begin    begin
499       CheckBox3.Enabled := true;       chkScanTjekkode.Enabled := true;
500       Scanogstjekkoden1.Enabled := true;       Scanogstjekkoden1.Enabled := true;
501    end;    end;
502    
503  end;  end;
504    
505  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);  procedure TMainForm.menuAutomatiskvalg1Click(Sender: TObject);
506  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;  
 *)  
507  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
508  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
509       AutomatiskValg1.Checked := true;       menuAutomatiskvalg1.Checked := true;
510       PanelValgA.Color := clGreen;       PanelValgA.Color := clGreen;
511       PanelValgA.Font.Color := clWhite;       PanelValgA.Font.Color := clWhite;
 // 20150317: slut  
512  end;  end;
513    
514    
515    
516    //InitForm kaldes før FormCreate
517  procedure TMainForm.FormCreate(Sender: TObject);  procedure TMainForm.FormCreate(Sender: TObject);
518  const  const
519    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
520  var  var
   printerInd : integer;  
   i : Integer;  
 // 20150310: start  
521    gemScanningtype : String;    gemScanningtype : String;
 // 20150310: slut  
522    
523  begin  begin
524    
525    
526    // Initierer nogle variabler    // Initierer nogle variabler
527    BladhusSted := 00;    BladhusSted := 00;
528    Application.ShowHint := True;    Application.ShowHint := True;
529    PrinterstatusStaticText1.Caption := '';    PrinterstatusStaticText1.Caption := '';
530    PrinterstatusStaticText1.Color := MainForm.Color;    PrinterstatusStaticText1.Color := MainForm.Color;
531  // 20150306: start  
532    PakkeshopNulstil.BringToFront;    btnNulstil.BringToFront;
533  // 20150306: slut  
534  // 20150310: start    TUtils.RoundCornerOf(PanelManglendePakker1);
535    RoundCornerOf(PanelManglendePakker1);    TUtils.RoundCornerOf(PanelManglendePakker2);
536    RoundCornerOf(PanelManglendePakker2);    TUtils.RoundCornerOf(PanelManglendePakker3);
537    RoundCornerOf(PanelManglendePakker3);    TUtils.RoundCornerOf(PanelManglendePakker4);
538    RoundCornerOf(PanelManglendePakker4);    TUtils.RoundCornerOf(PanelManglendePakker5);
539    RoundCornerOf(PanelManglendePakker5);    TUtils.RoundCornerOf(PanelManglendePakker6);
540    RoundCornerOf(PanelManglendePakker6);  
 // 20150310: slut  
541    
542    // 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
543    if DirectoryExists('Docs') then    if DirectoryExists('Docs') then
# Line 563  begin Line 548  begin
548    
549  // Sætter lige en default panel størrelse  // Sætter lige en default panel størrelse
550    MainForm.ClientWidth := 1000;    MainForm.ClientWidth := 1000;
551    MainForm.ClientHeight := 750;    MainForm.ClientHeight := 820;
552    
553      Config := TConfiguration.Create();
554      Config.ReadFromInifile( TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) );    //ToDo: clean up duplicate ini ref
555      Config.Sted := Sted;
556    
557    // Læser parametre fra ini filen    // Læser parametre fra ini filen
558    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do
559    try    try
560    
561    
562      SkrivLog := ReadString('Settings','SkrivLog','0');      SkrivLog := ReadString('Settings','SkrivLog','0');
563      Sted := ReadString('Settings','Sted','');      Sted := ReadString('Settings','Sted','');
564      StedNavn := ReadString('Settings','Stednavn','');      StedNavn := ReadString('Settings','Stednavn','');
565      UrlFindPakketype := ReadString('Settings','UrlFindPakketype','http://omdeling.info/webservices/bogpakkekontrol/FindPakketype.php?stregkode=%s');  
566      UrlSendPrograminfo := ReadString('Settings','UrlSendPrograminfo','http://omdeling.info/webservices/bogpakkekontrol/SendPrograminfo.php?programnavn=%s&sted=%s&scanningtype=%s&infotype=%s&info=%s');  
567      UrlNormal := ReadString('Settings','UrlNormal','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&tjekkode=%s');  
568      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);  
569      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');
570      TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');      TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');
571      FarveReturDAO := ReadString('Settings','FarveReturDAO','A9F5A9');      FarveReturDAO := ReadString('Settings','FarveReturDAO','A9F5A9');
# Line 597  begin Line 576  begin
576      TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');      TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');
577      FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');      FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');
578      TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');      TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');
579    
580      FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');      FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');
581      TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');      TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');
582    
583        FarveIndlevering := ReadString('Settings', 'FarveIndlevering', 'E5B2CB');
584        TitelIndlevering := ReadString('Settings', 'TitelIndlevering', 'Indleveringskode');
585    
586    
587      SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');      SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');
588      ScanTjekkode := ReadString('Settings','ScanTjekkode','0');      ScanTjekkode := ReadString('Settings','ScanTjekkode','0');
589      ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');      ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');
# Line 608  begin Line 593  begin
593      AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');      AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');
594      ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');      ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');
595      ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');      ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');
596  // 20150317: start  
597      ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');      ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');
598  // 20150317: slut  
599      PrinterNavn := ReadString('Settings','PrinterNavn','');      PrinterNavn := ReadString('Settings','PrinterNavn','');
600      TjekPrinter := ReadString('Settings','TjekPrinter','1');      TjekPrinter := ReadString('Settings','TjekPrinter','1');
601      TjekUrls := ReadString('Settings','TjekUrls','2');      TjekUrls := ReadString('Settings','TjekUrls','2');
602    
603      if (SkrivLog = '1') then      if (SkrivLog = '1') then
604      begin      begin
605        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);
606        try        try
607          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
608          Uploadlogfil1.Enabled := true;          Uploadlogfil1.Enabled := true;
609          UploadButton01.Enabled := true;          BtnUploadLogfil.Enabled := true;
610          logTekst := 'Programmet er installeret som: '+ParamStr(0);          logTekst := 'Programmet er installeret som: '+ParamStr(0);
611          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
612          // Oprydning i gamle logfiler          // Oprydning i gamle logfiler
# Line 633  begin Line 618  begin
618    
619      if Scanningtype = 'A' then      if Scanningtype = 'A' then
620      begin      begin
621        Automatiskvalg1.Checked := true;        menuAutomatiskvalg1.Checked := true;
622        Scanningtype := '1';        Scanningtype := '1';
623        PanelValgA.Color := clGreen;        PanelValgA.Color := clGreen;
624        PanelValgA.Font.Color := clWhite;        PanelValgA.Font.Color := clWhite;
625      end;      end;
626    
627      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;  
628    
629      if SporgEfterBoghandler = '1' then      if SporgEfterBoghandler = '1' then
630      begin      begin
631        CheckBox1.Checked := true;        chkSporgEfterKunde.Checked := true;
632        Sprgefterboghandlernummer1.Checked := true;        Sprgefterboghandlernummer1.Checked := true;
633      end      end
634      else      else
635      begin      begin
636        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
637        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
638      end;      end;
639    
640      if ScanTjekkode = '1' then      if ScanTjekkode = '1' then
641      begin      begin
642        CheckBox3.Checked := true;        chkScanTjekkode.Checked := true;
643        Scanogstjekkoden1.Checked := true;        Scanogstjekkoden1.Checked := true;
644      end      end
645      else      else
646      begin      begin
647        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
648        Scanogstjekkoden1.Checked := false;        Scanogstjekkoden1.Checked := false;
649      end;      end;
650    
651      if ScanTjekkodeAutomatik = '1' then      if ScanTjekkodeAutomatik = '1' then
652      begin      begin
653        Automatisktjekkodestyring1.Checked := true;        menuAutomatiskTjekkodeStyring.Checked := true;
654        CheckBox3.Enabled := false;        chkScanTjekkode.Enabled := false;
655        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
656      end;      end;
657    
# Line 760  begin Line 677  begin
677      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)
678      // *************************** //      // *************************** //
679    
680    {$IfDef STED_BK}
681        SpecialVersionSted := 'BK';
682    {$EndIf}
683    {$IfDef STED_TK}
684        SpecialVersionSted := 'TK';// BK-Trykkompagniet
685    {$EndIf}
686    {$IfDef STED_DBK}
687        SpecialVersionSted := 'DBK';
688    {$EndIf}
689    {$IfDef STED_FD}
690        SpecialVersionSted := 'FD';
691    {$EndIf}
692    {$IfDef STED_NS}
693        SpecialVersionSted := 'NS';
694    {$EndIf}
695    
696      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
697      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)
698      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
# Line 775  begin Line 708  begin
708      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)
709      // ændrer vi Sted og Scanningtype her:      // ændrer vi Sted og Scanningtype her:
710    
 // 20150313: start  
711      if SpecialVersionSted = 'NS' then      if SpecialVersionSted = 'NS' then
712      begin      begin
713         SpecialVersionSted := '01';         //SpecialVersionSted := '01'; // Fra før NS overtog scanning løssalg
714         SpecialVersionScanningtype := '4';         //SpecialVersionScanningtype := '4';
715    
716          //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
717          Sted := SpecialVersionSted;
718         // her skal vi også disable de knapper BK ikke kan bruge
719          PanelValg2.Enabled := false;
720          PanelValg2.Font.Color := clInactiveCaption;
721          PanelValg3.Enabled := false;
722          PanelValg3.Font.Color := clInactiveCaption;
723          //PanelValg6.Enabled := false;
724          //PanelValg6.Font.Color := clInactiveCaption;
725    
726         // her skal vi også disable de menupunkter FD ikke kan bruge
727          menuNatxpressReturDAO1.Enabled := false;
728          menuNatxpressReturfraKunde1.Enabled := false;
729    
730          //Returpakkerfrapakkeshop1.Enabled := false;
731      end;      end;
732    
733      if SpecialVersionSted = 'FD' then      if SpecialVersionSted = 'FD' then
734      begin      begin
735         SpecialVersionSted := '03';         //SpecialVersionSted := '03'; //fra før at FD overtog scanning
736         SpecialVersionScanningtype := '4';         //SpecialVersionScanningtype := '4';
737      end;  
 // 20150313: slut  
738    
     if SpecialVersionSted = 'BK' then  
     begin  
739        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
740        Sted := SpecialVersionSted;        Sted := SpecialVersionSted;
741       // 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 743  begin
743        PanelValg2.Font.Color := clInactiveCaption;        PanelValg2.Font.Color := clInactiveCaption;
744        PanelValg3.Enabled := false;        PanelValg3.Enabled := false;
745        PanelValg3.Font.Color := clInactiveCaption;        PanelValg3.Font.Color := clInactiveCaption;
746        PanelValg6.Enabled := false;        //PanelValg6.Enabled := false;
747        PanelValg6.Font.Color := clInactiveCaption;        //PanelValg6.Font.Color := clInactiveCaption;
748       // her skal vi også disable de menupunkter BK ikke kan bruge  
749        ReturpakkerfraDAO1.Enabled := false;       // her skal vi også disable de menupunkter FD ikke kan bruge
750        Returpakkerfraboghandler1.Enabled := false;        menuNatxpressReturDAO1.Enabled := false;
751        Returpakkerfrapakkeshop1.Enabled := false;        menuNatxpressReturfraKunde1.Enabled := false;
752        if SpecialVersionScanningtype = 'A' then  
753        begin        //Returpakkerfrapakkeshop1.Enabled := false;
754           Scanningtype := '1';  
       end  
       else  
       begin  
         Scanningtype := SpecialVersionScanningtype;  
       end;  
755      end;      end;
756    
757      if SpecialVersionSted = 'DBK' then      if (SpecialVersionSted = 'BK') OR (SpecialVersionSted = 'TK') then
758      begin      begin
759        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
760        Sted := SpecialVersionSted;        Sted := SpecialVersionSted;
761        // her skal vi også disable de knapper DBK ikke kan bruge       // her skal vi også disable de knapper BK ikke kan bruge
762        PanelValg2.Enabled := false;        PanelValg2.Enabled := false;
763        PanelValg2.Font.Color := clInactiveCaption;        PanelValg2.Font.Color := clInactiveCaption;
764        PanelValg3.Enabled := false;        PanelValg3.Enabled := false;
765        PanelValg3.Font.Color := clInactiveCaption;        PanelValg3.Font.Color := clInactiveCaption;
766        PanelValg5.Enabled := false;        //PanelValg6.Enabled := false;
767        PanelValg5.Font.Color := clInactiveCaption;        //PanelValg6.Font.Color := clInactiveCaption;
768        PanelValg6.Enabled := false;  
769        PanelValg6.Font.Color := clInactiveCaption;       // her skal vi også disable de menupunkter BK ikke kan bruge
770       // her skal vi også disable de menupunkter DBK ikke kan bruge        menuNatxpressReturDAO1.Enabled := false;
771        ReturpakkerfraDAO1.Enabled := false;        menuNatxpressReturfraKunde1.Enabled := false;
772        Returpakkerfraboghandler1.Enabled := false;  
773  // 20150317: start        //Returpakkerfrapakkeshop1.Enabled := false;
774        Pakkeshoplevering1.Enabled := false;  
       Returpakkerfrapakkeshop1.Enabled := false;  
 // 20150317: slut  
775        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
776        begin        begin
777           Scanningtype := '1';           Scanningtype := '1';
# Line 843  begin Line 782  begin
782        end;        end;
783      end;      end;
784    
785        if SpecialVersionSted = 'DBK' then
786        begin
787          Sted := SpecialVersionSted;
788        end;
789    
790      if (SpecialVersionSted = '01')      if (SpecialVersionSted = '01')
791      or (SpecialVersionSted = '02')      or (SpecialVersionSted = '02')
792      or (SpecialVersionSted = '03')      or (SpecialVersionSted = '03')
# Line 862  begin Line 806  begin
806        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
807        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
808        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
809          PanelValg7.Enabled := false;
810          PanelValg7.Font.Color := clInactiveCaption;
811       // 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
812  // 20150317: start  
813        Automatiskvalg1.Enabled := false;        menuAutomatiskvalg1.Enabled := false;
814  // 20150317: slut  
815        Pakkernormal1.Enabled := false;        menuNatXpress1.Enabled := false;
816        ReturpakkerfraDAO1.Enabled := false;        menuNatxpressReturDAO1.Enabled := false;
817        Returpakkerfraboghandler1.Enabled := false;        menuNatxpressReturfraKunde1.Enabled := false;
818        Budlevering1.Enabled := false;        menuDaoDirekte1.Enabled := false;
819        Pakkeshoplevering1.Enabled := false;        menuPakkeshop1.Enabled := false;
820        Returpakkerfrapakkeshop1.Enabled := false;        menuPakkeshopRetur1.Enabled := false;
821        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
822        begin        begin
823          Scanningtype := '4';          Scanningtype := '4';
824          Budlevering1.Enabled := true;          menuDaoDirekte1.Enabled := true;
825          PanelValg4.Font.Color := clWindowText;          PanelValg4.Font.Color := clWindowText;
826          PanelValg4.Enabled := true;          PanelValg4.Enabled := true;
827        end        end
# Line 884  begin Line 830  begin
830          Scanningtype := SpecialVersionScanningtype;          Scanningtype := SpecialVersionScanningtype;
831          PanelValgA.Enabled := false;          PanelValgA.Enabled := false;
832          PanelValgA.Font.Color := clInactiveCaption;          PanelValgA.Font.Color := clInactiveCaption;
833          AutomatiskValg1.Checked := false;          menuAutomatiskvalg1.Checked := false;
834          PanelValgA.Color := clBtnFace;          PanelValgA.Color := clBtnFace;
835          if Scanningtype = '1' then          if Scanningtype = '1' then
836          begin          begin
837            Pakkernormal1.Enabled := true;            menuNatXpress1.Enabled := true;
838            PanelValg1.Enabled := true;            PanelValg1.Enabled := true;
839            PanelValg1.Font.Color := clWindowText;            PanelValg1.Font.Color := clWindowText;
840          end;          end;
841          if Scanningtype = '2' then          if Scanningtype = '2' then
842          begin          begin
843            ReturpakkerfraDAO1.Enabled := true;            menuNatxpressReturDAO1.Enabled := true;
844            PanelValg2.Enabled := true;            PanelValg2.Enabled := true;
845            PanelValg2.Font.Color := clWindowText;            PanelValg2.Font.Color := clWindowText;
846          end;          end;
847          if Scanningtype = '3' then          if Scanningtype = '3' then
848          begin          begin
849            Returpakkerfraboghandler1.Enabled := true;            menuNatxpressReturfraKunde1.Enabled := true;
850            PanelValg3.Enabled := true;            PanelValg3.Enabled := true;
851            PanelValg3.Font.Color := clWindowText;            PanelValg3.Font.Color := clWindowText;
852          end;          end;
853          if Scanningtype = '4' then          if Scanningtype = '4' then
854          begin          begin
855            Budlevering1.Enabled := true;            menuDaoDirekte1.Enabled := true;
856            PanelValg4.Enabled := true;            PanelValg4.Enabled := true;
857            PanelValg4.Font.Color := clWindowText;            PanelValg4.Font.Color := clWindowText;
858          end;          end;
859          if Scanningtype = '5' then          if Scanningtype = '5' then
860          begin          begin
861            Pakkeshoplevering1.Enabled := true;            menuPakkeshop1.Enabled := true;
862            PanelValg5.Enabled := true;            PanelValg5.Enabled := true;
863            PanelValg5.Font.Color := clWindowText;            PanelValg5.Font.Color := clWindowText;
864          end;          end;
865          if Scanningtype = '6' then          if Scanningtype = '6' then
866          begin          begin
867            Returpakkerfrapakkeshop1.Enabled := true;            menuPakkeshopRetur1.Enabled := true;
868            PanelValg6.Enabled := true;            PanelValg6.Enabled := true;
869            PanelValg6.Font.Color := clWindowText;            PanelValg6.Font.Color := clWindowText;
870          end;          end;
# Line 957  begin Line 903  begin
903             RutenummerST.Caption := '';             RutenummerST.Caption := '';
904             BoghandlerNavnST.Caption := 'Fejl i urls';             BoghandlerNavnST.Caption := 'Fejl i urls';
905             KommentarST.Caption := 'Se log vinduet';             KommentarST.Caption := 'Se log vinduet';
906             PakkeshopNulstil.Visible := true;             btnNulstil.Visible := true;
907             exit;             exit;
908          end;          end;
909      end      end
# Line 999  begin Line 945  begin
945    
946      if Pakketype = '1' then      if Pakketype = '1' then
947      begin      begin
948        Storepakker1.Checked := true;        menuStorePakker.Checked := true;
949        RadioButton1.Checked := true;        radioStorPakke.Checked := true;
950      end      end
951      else      else
952      begin      begin
953        Smpakker1.Checked := true;        menuSmaaPakker.Checked := true;
954        RadioButton2.Checked := true;        radioLillePakke.Checked := true;
955      end;      end;
956    
957      if TestFunktionen = '1' then      if TestFunktionen = '1' then
# Line 1045  begin Line 991  begin
991        ScannetOkStorLyd := '';        ScannetOkStorLyd := '';
992      end;      end;
993    
994  // 20150317: start  
995      if not FileExists(ScannetOkTilTjekkodeLyd) then      if not FileExists(ScannetOkTilTjekkodeLyd) then
996      begin      begin
997        ScannetOkTilTjekkodeLyd := '';        ScannetOkTilTjekkodeLyd := '';
998      end;      end;
 // 20150317: slut  
999    
     if (PrinterNavn <> '') then  
     begin  
        printerInd := Printer.Printers.IndexOf(printerNavn);  
        if printerInd >= 0 then  
           Printer.PrinterIndex := printerInd;  
     end;  
1000    
1001      CheckPrintQue('Opstart');  
1002    
1003        LabelPrint := TLabelPrint.Create( self, Config, PrinterNavn );
1004        LabelPrint.CheckPrintQue('Opstart', PrinterNavn);
1005    
1006    finally    finally
1007      Free;      Free;
# Line 1068  begin Line 1010  begin
1010      // UBD skal p.t. ikke have adgang til flg. funktioner      // UBD skal p.t. ikke have adgang til flg. funktioner
1011      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
1012      begin      begin
1013        ReturpakkerfraDAO1.Visible := false;        menuNatxpressReturDAO1.Visible := false;
1014        Returpakkerfraboghandler1.Visible := false;        menuNatxpressReturfraKunde1.Visible := false;
1015        Budlevering1.Visible := false;        menuDaoDirekte1.Visible := false;
1016        Storepakker1.Visible := false;        menuStorePakker.Visible := false;
1017        Smpakker1.Visible := false;        menuSmaaPakker.Visible := false;
1018        Testprinter1.Visible := false;        Testprinter1.Visible := false;
1019        Pakkeshoplevering1.Visible := false;        menuPakkeshop1.Visible := false;
1020        Returpakkerfrapakkeshop1.Visible := false;        menuPakkeshopRetur1.Visible := false;
1021      end;      end;
1022    
1023      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
# Line 1083  begin Line 1025  begin
1025          InitBladhus();          InitBladhus();
1026        end;        end;
1027    
1028  // 20150310: start  
1029      // Opbygger PanelManglendePakker information      // Opbygger PanelManglendePakker information
1030      gemScanningtype := Scanningtype;      gemScanningtype := Scanningtype;
1031    
# Line 1124  begin Line 1066  begin
1066      end;      end;
1067    
1068      Scanningtype := gemScanningtype;      Scanningtype := gemScanningtype;
 // 20150310: slut  
1069    
1070      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');
1071      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion('',''));      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', TUtils.Sto_GetFmtFileVersion(''));
1072    
1073  end;  end;
1074    
# Line 1145  var Line 1086  var
1086    BoghandlerNavn : String;    BoghandlerNavn : String;
1087    Koreliste : String;    Koreliste : String;
1088    PrintNyLabel : Boolean;    PrintNyLabel : Boolean;
   List1msg : String;  
1089    pakkeErScannet : Integer;    pakkeErScannet : Integer;
1090    pakkeForkertSted : Integer;    pakkeForkertSted : Integer;
1091    tjekkodeMangler : Integer;    tjekkodeMangler : Integer;
# Line 1170  begin Line 1110  begin
1110      ClipboardData := Clipboard.AsText;      ClipboardData := Clipboard.AsText;
1111      numberString := ClipboardData;      numberString := ClipboardData;
1112      Val(numberString, float, errorPos);      Val(numberString, float, errorPos);
1113  // 20150311: start  
1114  //    if (ClipboardData <> '') and (errorPos = 0) then      //    if (ClipboardData <> '') and (errorPos = 0) then
1115      if (ClipboardData <> '') and (errorPos = 0)      if (ClipboardData <> '') and (errorPos = 0)
1116      or (NumberString = 'Nulstil')      or (NumberString = 'Nulstil')
1117      or (NumberString = 'Indtast kundenummer')      or (NumberString = 'Indtast kundenummer')
# Line 1185  begin Line 1125  begin
1125      or (NumberString = 'Retur fra kunde')      or (NumberString = 'Retur fra kunde')
1126      or (NumberString = 'DAO DIREKTE')      or (NumberString = 'DAO DIREKTE')
1127      or (NumberString = 'DAO PAKKESHOP')      or (NumberString = 'DAO PAKKESHOP')
1128        or (NumberString = 'DAO PAKKESHOP')
1129        or (LowerCase(NumberString) = 'for stor hjemmelevering' )
1130            or (LowerCase(NumberString) = 'for stor daodirekte' )
1131      or (NumberString = 'Retur fra pakkeshop') then      or (NumberString = 'Retur fra pakkeshop') then
1132  // 20150311: slut  
1133      begin      begin
1134        Stregkode := Stregkode + ClipboardData;        Stregkode := Stregkode + ClipboardData;
1135        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1195  begin Line 1138  begin
1138      begin      begin
1139        ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift');        ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift');
1140      end;      end;
1141    end;    end;  // Slut ctrl-v
1142    
1143    if Key = #13 then     // Enter    if Key = #13 then     // Enter
1144    begin    begin
1145  // 20150306: start  
1146      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
1147        Stregkode := Trim(Stregkode);
1148    
1149        if (Length(Stregkode) = 0) then
1150      begin      begin
1151        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );
1152        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;  
1153        exit;        exit;
1154      end;      end;
 // 20150306: slut  
1155    
 // 20150311: start  
1156      if StregKode = 'Nulstil' then      if StregKode = 'Nulstil' then
1157      begin      begin
1158         PakkeshopNulstil.Click();         btnNulstil.Click();
1159         exit;         exit;
1160      end;      end;
1161    
1162      if PakkeshopNulstil.Visible then      if btnNulstil.Visible then
1163      begin      begin
1164         PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'HUSK at klikke Nulstil før ny scanning...' );
1165  // 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  
1166         exit;         exit;
1167      end;      end;
1168    
1169      if StregKode = 'Lille pakke' then      if StregKode = 'Lille pakke' then
1170      begin      begin
1171         if RadioButton2.Enabled = true then         if radioLillePakke.Enabled = true then
1172         begin         begin
1173            InitLillePakke();            InitLillePakke();
1174         end         end
1175         else         else
1176         begin         begin
1177          //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;  
1178         end;         end;
1179         Stregkode := '';         Stregkode := '';
1180         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1268  begin Line 1183  begin
1183    
1184      if StregKode = 'Stor pakke' then      if StregKode = 'Stor pakke' then
1185      begin      begin
1186         if RadioButton1.Enabled = true then         if radioStorPakke.Enabled = true then
1187         begin         begin
1188            InitStorPakke();            InitStorPakke();
1189         end         end
1190         else         else
1191         begin         begin
1192          //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;  
1193         end;         end;
1194         Stregkode := '';         Stregkode := '';
1195         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1196         exit;         exit;
1197      end;      end;
1198    
1199        if (LowerCase(StregKode) = 'for stor hjemmelevering') OR (LowerCase(StregKode) = 'for stor daodirekte') then
1200        begin
1201          if chkForstorTilDirekte.Enabled then
1202          begin
1203            chkForstorTilDirekte.Checked := true;
1204          end
1205          else
1206          begin
1207             VisAlarmSkaerm( Stregkode + ' kan ikke vælges på denne scannings tilstand' );
1208          end;
1209          Stregkode := '';
1210          StregkodeST.Caption := StregKode;
1211          exit;
1212        end;
1213    
1214    
1215      if StregKode = 'Indtast kundenummer' then      if StregKode = 'Indtast kundenummer' then
1216      begin      begin
1217         if CheckBox1.Enabled = true then         if chkSporgEfterKunde.Enabled = true then
1218         begin         begin
1219           if (CheckBox1.State = cbChecked) then           if (chkSporgEfterKunde.State = cbChecked) then
1220           begin           begin
1221            CheckBox1.State := cbUnchecked;            chkSporgEfterKunde.State := cbUnchecked;
1222           end           end
1223           else           else
1224           begin           begin
1225            CheckBox1.State := cbChecked;            chkSporgEfterKunde.State := cbChecked;
1226           end;           end;
1227         end         end
1228         else         else
1229         begin         begin
1230          //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;  
1231         end;         end;
1232         Stregkode := '';         Stregkode := '';
1233         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1327  begin Line 1236  begin
1236    
1237      if (Stregkode = 'Scan tjekkode') or (PakkeshopStregkode = 'Scan tjekkode') or (BoghandlerStregkode = 'Scan tjekkode') then      if (Stregkode = 'Scan tjekkode') or (PakkeshopStregkode = 'Scan tjekkode') or (BoghandlerStregkode = 'Scan tjekkode') then
1238      begin      begin
1239        if CheckBox3.Enabled = true then        if chkScanTjekkode.Enabled = true then
1240        begin        begin
1241           if (CheckBox3.State = cbChecked) then           if (chkScanTjekkode.State = cbChecked) then
1242           begin           begin
1243            CheckBox3.State := cbUnchecked;            chkScanTjekkode.State := cbUnchecked;
1244           end           end
1245           else           else
1246           begin           begin
1247            CheckBox3.State := cbChecked;            chkScanTjekkode.State := cbChecked;
1248           end;           end;
1249        end        end
1250        else        else
1251        begin        begin
1252          //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;  
1253        end;        end;
1254        Stregkode := '';        Stregkode := '';
1255        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1366  begin Line 1264  begin
1264         end         end
1265         else         else
1266         begin         begin
1267          //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;  
1268         end;         end;
1269         Stregkode := '';         Stregkode := '';
1270         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1271         exit;         exit;
1272      end;      end;
1273    
1274  // 20150323: start  
 //    if StregKode = 'DAO NAT X-PRESS' then  
1275      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  
1276      begin      begin
1277         if (PanelValg1.Enabled = true) then         if (PanelValg1.Enabled = true) then
1278         begin         begin
# Line 1395  begin Line 1280  begin
1280         end         end
1281         else         else
1282         begin         begin
1283          //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;  
1284         end;         end;
1285         Stregkode := '';         Stregkode := '';
1286         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1421  begin Line 1295  begin
1295         end         end
1296         else         else
1297         begin         begin
1298          //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;  
1299         end;         end;
1300         Stregkode := '';         Stregkode := '';
1301         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1447  begin Line 1310  begin
1310         end         end
1311         else         else
1312         begin         begin
1313          //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;  
1314         end;         end;
1315         Stregkode := '';         Stregkode := '';
1316         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1473  begin Line 1325  begin
1325         end         end
1326         else         else
1327         begin         begin
1328          //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;  
1329         end;         end;
1330         Stregkode := '';         Stregkode := '';
1331         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1499  begin Line 1340  begin
1340         end         end
1341         else         else
1342         begin         begin
1343          //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;  
1344         end;         end;
1345         Stregkode := '';         Stregkode := '';
1346         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1525  begin Line 1355  begin
1355         end         end
1356         else         else
1357         begin         begin
1358          //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;  
1359         end;         end;
1360         Stregkode := '';         Stregkode := '';
1361         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1362         exit;         exit;
1363      end;      end;
1364  // 20150311: slut  
1365    
1366      if (Length(Stregkode) > 8) then      if (Length(Stregkode) > 8) then
1367      begin      begin
1368        // Her skal vi så forespørge pakketype på serveren udfra stregkode feltet        // Her skal vi så forespørge pakketype på serveren udfra stregkode feltet
1369        URLStr := Format(UrlFindPakketype,[Stregkode]);        URLStr := Format(Config.UrlFindPakketype,[Stregkode]);
1370        try        try
1371          //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST          //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
1372          WebSvar := IdHTTP1.Get(URLStr);          WebSvar := IdHTTP1.Get(URLStr);
# Line 1590  begin Line 1409  begin
1409        Pakkescanningtype := Scanningtype;        Pakkescanningtype := Scanningtype;
1410      end;      end;
1411    
1412      if (   (Pakkescanningtype = '1') and (PanelValg1.Enabled = false)      if (   ( (Pakkescanningtype = '1') and (PanelValg1.Enabled = false) )
1413          or (Pakkescanningtype = '2') and (PanelValg2.Enabled = false)          or ( (Pakkescanningtype = '2') and (PanelValg2.Enabled = false) )
1414          or (Pakkescanningtype = '3') and (PanelValg3.Enabled = false)          or ( (Pakkescanningtype = '3') and (PanelValg3.Enabled = false) )
1415          or (Pakkescanningtype = '4') and (PanelValg4.Enabled = false)          or ( (Pakkescanningtype = '4') and (PanelValg4.Enabled = false) )
1416          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)          or ( (Pakkescanningtype = '5') and (PanelValg5.Enabled = false) )
1417          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then          or ( (Pakkescanningtype = '6') and (PanelValg6.Enabled = false) ) ) then
1418      begin   // Her skal komme en alarm og rød skærm      begin   // Her skal komme en alarm og rød skærm
1419         PlaySound(PWideChar(AlarmLyd));          VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1420         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  
1421         exit;         exit;
1422      end;      end;
1423    
1424      if Automatiskvalg1.Checked and (Length(Stregkode) > 8) then      if (menuAutomatiskvalg1.Checked and (Length(Stregkode) > 8) ) then
1425      begin      begin
1426        GemStregkode := Stregkode;        GemStregkode := Stregkode;
1427        if Pakketype = 'NatXpress' then        if Pakketype = 'NatXpress' then
# Line 1626  begin Line 1433  begin
1433              end;              end;
1434            end            end
1435        // Retur kan ikke scannes med 'Automatisk valg'        // Retur kan ikke scannes med 'Automatisk valg'
1436  (*  
       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  
 *)  
1437        else if Pakketype = 'Direkte' then        else if Pakketype = 'Direkte' then
1438            begin            begin
1439              if Scanningtype <> '4' then              if Scanningtype <> '4' then
# Line 1660  begin Line 1450  begin
1450                InitPakkeshoplevering();                InitPakkeshoplevering();
1451              end;              end;
1452            end            end
1453        // Retur kan ikke scannes med 'Automatisk valg'       else if Pakketype = 'PakkeshopRetur' then
 (*  
       else if Pakketype = 'PakkeshopRetur' then  
1454            begin            begin
1455              if Scanningtype <> '6' then              if Scanningtype <> '6' then
1456              begin              begin
1457                Scanningtype := '6';               VisAlarmSkaerm( Stregkode + ' Pakkeshop retur,'#13#10' kan ikke bruges med automatisk valg' );
1458                InitReturFraPakkeshop();  
1459                 exit;
1460              end;              end;
1461            end            end
1462  *)  
1463    
1464        else        else
1465            begin   // Her skal komme en alarm og rød skærm            begin
1466               PlaySound(PWideChar(AlarmLyd));            // Her skal komme en alarm og rød skærm
1467               List1msg := 'Pakken kan ikke scannes med automatisk valg';              //VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1468               ListBox1.Items.Insert(0,List1Msg);               VisAlarmSkaerm( Stregkode + ' kan ikke bruges med automatisk valg' );
1469               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  
1470               exit;               exit;
1471            end;            end;
1472        Stregkode := GemStregkode;        Stregkode := GemStregkode;
1473      end      end
1474      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then      else if menuAutomatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then
1475      begin      begin
1476        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );
1477        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  
1478        exit;        exit;
1479      end;      end;
1480    
1481      if not Automatiskvalg1.Checked then      if not menuAutomatiskvalg1.Checked then
1482      begin      begin
1483        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then
1484        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;  
1485    
1486  // 20150311: start          VisAlarmSkaerm( 'Pakke findes som pakketype: ' + Pakketype );
 (*  
     if StregKode = 'Nulstil' then  
     begin  
        PakkeshopNulstil.Click();  
        exit;  
     end;  
1487    
1488      if PakkeshopNulstil.Visible then          exit;
1489      begin        end;
        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;  
   
     if StregKode = 'Lille pakke' then  
     begin  
        InitLillePakke();  
        exit;  
     end;  
   
     if StregKode = 'Stor pakke' then  
     begin  
        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;  
1490      end;      end;
1491    
     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  
1492    
1493    
1494      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and menuAutomatiskTjekkodeStyring.Checked then
1495      begin      begin
1496        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
1497        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do
1498        begin        begin
1499          if (Stregkode=stregkoderMedTjekkodeArray[i]) then          if (Stregkode=stregkoderMedTjekkodeArray[i]) then
1500          begin          begin
1501              CheckBox3.Checked := true;              chkScanTjekkode.Checked := true;
1502              Scanogstjekkoden1.Checked := true;              Scanogstjekkoden1.Checked := true;
1503          end;          end;
1504        end;        end;
1505      end;      end;
1506    
1507      if Pakkernormal1.Checked and not Scanogstjekkoden1.Checked then      if menuNatXpress1.Checked and not Scanogstjekkoden1.Checked then
1508        begin        begin
1509          // Når vi ikke kræver tjekkode er alt ok her          // Når vi ikke kræver tjekkode er alt ok her
1510             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1511             BoghandlerTjekkode := '';             BoghandlerTjekkode := '';
1512             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1513             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1514             Stregkode := '';             Stregkode := '';
1515             InitScreen();             InitScreen();
1516        end        end
1517      else if (PakkeshopLevering1.Checked or Pakkernormal1.Checked) and not Scanogstjekkoden1.Checked then      else if (menuPakkeshop1.Checked or menuNatXpress1.Checked) and not Scanogstjekkoden1.Checked then
1518        begin        begin
1519          // Når vi ikke kræver tjekkode er alt ok her          // Når vi ikke kræver tjekkode er alt ok her
1520             PakkeshopStregkode := Stregkode;             PakkeshopStregkode := Stregkode;
# Line 1824  begin Line 1522  begin
1522             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1523             BoghandlerTjekkode := '-1';             BoghandlerTjekkode := '-1';
1524             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1525             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1526             Stregkode := '';             Stregkode := '';
1527             InitScreen();             InitScreen();
1528        end        end
1529      else if PakkeshopLevering1.Checked or Pakkernormal1.Checked then      else if menuPakkeshop1.Checked or menuNatXpress1.Checked then
1530        if PakkeshopText1.Caption = 'Stregkode' then        if PakkeshopText1.Caption = 'Stregkode' then
1531         begin         begin
1532            if length(Stregkode) > 5 then            if length(Stregkode) > 5 then
# Line 1836  begin Line 1534  begin
1534              PakkeshopStregkode := Stregkode;              PakkeshopStregkode := Stregkode;
1535              BoghandlerStregkode := Stregkode;              BoghandlerStregkode := Stregkode;
1536              PakkeshopText1.Caption := 'Tjekkode';              PakkeshopText1.Caption := 'Tjekkode';
1537  // 20150317: start  
1538              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));
1539  // 20150317: slut  
1540             end             end
1541            else            else
1542             begin             begin
1543                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;  
1544             end;             end;
1545            Stregkode := '';            Stregkode := '';
1546            InitScreen();            InitScreen();
# Line 1860  begin Line 1552  begin
1552             PakkeshopTjekkode := Stregkode;             PakkeshopTjekkode := Stregkode;
1553             BoghandlerTjekkode := Stregkode;             BoghandlerTjekkode := Stregkode;
1554             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1555             if (PakkeshopLevering1.Checked) then             if (menuPakkeshop1.Checked) then
1556                MainForm.Color := HexToTColor(FarvePakkeshoplevering);                MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering);
1557             if (Pakkernormal1.Checked) then             if (menuNatXpress1.Checked) then
1558                MainForm.Color := HexToTColor(FarveNormal);                MainForm.Color := TUtils.HexToTColor(FarveNormal);
1559             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1560           end           end
1561          else          else
1562           begin           begin
1563                if (PakkeshopLevering1.Checked) then                if (menuPakkeshop1.Checked) then
1564                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);
1565                if (Pakkernormal1.Checked) then                if (menuNatXpress1.Checked) then
1566                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);
1567                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  
1568                StregKode := '';                StregKode := '';
1569                StregkodeST.Caption := StregKode;                StregkodeST.Caption := StregKode;
1570  // 20150323: slut  
1571                exit;                exit;
1572           end;           end;
1573          Stregkode := '';          Stregkode := '';
1574          InitScreen();          InitScreen();
1575       end;       end;
1576    
1577      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
1578      begin      begin
1579         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then  
1580           if menuPakkeshop1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then
1581            StregKode := PakkeshopStregkode;            StregKode := PakkeshopStregkode;
1582         if Pakkernormal1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then         if menuNatXpress1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then
1583            StregKode := BoghandlerStregkode;            StregKode := BoghandlerStregkode;
1584         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1585         try         try
# Line 1903  begin Line 1589  begin
1589            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her
1590            if Rutenummer = 'sql fejl' then            if Rutenummer = 'sql fejl' then
1591            begin   // Her skal komme en alarm og rød skærm            begin   // Her skal komme en alarm og rød skærm
1592               PlaySound(PWideChar(AlarmLyd));               VisAlarmSkaerm( 'SQL fejl: ' + Kommentar );
1593               //List1msg := 'SQL fejl: ' + Kommentar;  
              //ListBox1.Items.Insert(0,List1Msg);  
              MainForm.Color := clRed;  
              //KommentarST.Caption := List1msg;  
              PakkeshopNulstil.Visible := true;  
1594              exit;              exit;
1595            end;            end;
1596            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then            if (menuNatXpress1.Checked or menuDaoDirekte1.Checked or menuPakkeshop1.Checked) then
1597            begin            begin
1598              PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel);              PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel);
1599              pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);              pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
# Line 1928  begin Line 1610  begin
1610              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then
1611              begin              begin
1612                PlaySound(PWideChar(AlarmLyd));                PlaySound(PWideChar(AlarmLyd));
1613                PakkeshopNulstil.Visible := true;                btnNulstil.Visible := true;
1614                MainForm.Color := clRed;                MainForm.Color := clRed;
1615              end;              end;
1616           end;           end;
1617            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
1618            begin            begin
1619              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1620              if Storepakker1.Checked then              if menuStorePakker.Checked then
1621              begin              begin
1622                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
1623              end              end
# Line 1943  begin Line 1625  begin
1625              begin              begin
1626                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1627              end;              end;
1628              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1629            end            end
1630            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then            else if (menuNatxpressReturDAO1.Checked or menuNatxpressReturfraKunde1.Checked) then
1631            begin            begin
1632              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1633              if Storepakker1.Checked then              if menuStorePakker.Checked then
1634              begin              begin
1635                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
1636              end              end
# Line 1956  begin Line 1638  begin
1638              begin              begin
1639                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1640              end;              end;
1641              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1642            end            end
1643            else if Copy(Kommentar,1,8) = 'OPRETTET' then            else if Copy(Kommentar,1,8) = 'OPRETTET' then
1644            begin            begin
1645              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;  
1646            end            end
1647            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'
1648            begin            begin
1649            end            end
1650            else            else
1651            begin            begin
1652              MainForm.Color := clRed;              VisAlarmSkaerm('');
             PlaySound(PWideChar(AlarmLyd));  
             PakkeshopNulstil.Visible := true;  
1653            end;            end;
1654           if not PakkeshopNulstil.Visible then  
1655             if not btnNulstil.Visible then
1656            begin            begin
1657  // 20150310: start  
1658  //            SletStregkodelinieFraListboks2(StregKode);              If (menuDaoDirekte1.Checked) then
 // 20150310: slut  
             If (Budlevering1.Checked) then  
1659              begin              begin
1660                if Storepakker1.Checked then                if menuStorePakker.Checked then
1661                begin                begin
1662                  PlaySound(PWideChar(ScannetOkStorLyd));                  PlaySound(PWideChar(ScannetOkStorLyd));
1663                end                end
# Line 1993  begin Line 1668  begin
1668                InitLillePakke();                InitLillePakke();
1669              end;              end;
1670            end;            end;
1671  // 20150310: start  
1672            SletStregkodelinieFraListboks2(StregKode);            SletStregkodelinieFraListboks2(StregKode);
1673  // 20150310: slut  
1674            PakkeshopStregkode := '';            PakkeshopStregkode := '';
1675            PakkeshopTjekkode := '';            PakkeshopTjekkode := '';
1676            BoghandlerStregkode := '';            BoghandlerStregkode := '';
# Line 2026  begin Line 1701  begin
1701    
1702    Key := #0;    Key := #0;
1703    
1704  end;  
1705    
1706    
1707    
1708    
1709    end; //End of OnKeyPress
1710    
1711    
1712    
1713  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
1714  const  const
# Line 2035  var Line 1717  var
1717    WebSvar : String;    WebSvar : String;
1718    URLStr : String;    URLStr : String;
1719  begin  begin
1720    if UrlSendPrograminfo <> '' then    if Config.UrlSendPrograminfo <> '' then
1721    begin    begin
1722      URLStr := Format(UrlSendPrograminfo,[ExtractFileName(ParamStr(0)), Sted, Scanningtype, Infotype, Info]);      URLStr := Format(Config.UrlSendPrograminfo,[ExtractFileName(ParamStr(0)), Sted, Scanningtype, Infotype, Info]);
1723      try      try
1724        //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST        //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
1725        WebSvar := IdHTTP1.Get(URLStr);        WebSvar := IdHTTP1.Get(URLStr);
# Line 2050  begin Line 1732  begin
1732        ShowMessage(logTekst);        ShowMessage(logTekst);
1733        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
1734        // 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
1735        UrlSendPrograminfo := '';        Config.UrlSendPrograminfo := '';
1736        Application.Terminate;        Application.Terminate;
1737      end;      end;
1738      end;      end;
# Line 2063  end; Line 1745  end;
1745    
1746  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);
1747  var  var
 // 20150309: start  
 //  i:integer;  
1748    i : Integer;    i : Integer;
1749    wrkAntal : String;    wrkAntal : String;
1750    wrkAntalIdag, wrkAntalSenere : Integer;    wrkAntalIdag, wrkAntalSenere : Integer;
1751  // 20150309: slut  
1752    
1753  begin  begin
1754      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
1755      begin      begin
1756        for i := ListBox2.items.count-1 downto 0 do        for i := ListBox2.items.count-1 downto 0 do
1757          if pos(StregKode,ListBox2.items[i]) <> 0 then          if pos(StregKode,ListBox2.items[i]) <> 0 then
1758          begin          begin
1759  // 20150309: start            wrkAntalSenere := 0;//initial Value
1760    
1761            // Ajourføring af tæller for manglende pakker (scanninger)            // Ajourføring af tæller for manglende pakker (scanninger)
1762            wrkAntal := StaticTextManglendePakker.Caption;            wrkAntal := StaticTextManglendePakker.Caption;
1763            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere
1764            begin            begin
1765              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen
1766              wrkAntalIdag := StrToInt(split(wrkAntal, '/', 2));              wrkAntalIdag := StrToInt( TUtils.split(wrkAntal, '/', 2));
1767  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));
1768  //            ShowMessage(SPLIT('data/another/','/',3));  //            ShowMessage(SPLIT('data/another/','/',3));
1769  //            ShowMessage(SPLIT('data/another','/',3));  //            ShowMessage(SPLIT('data/another','/',3));
1770              wrkAntalSenere := StrToInt(split(wrkAntal, '/', 3));              wrkAntalSenere := StrToInt( TUtils.split(wrkAntal, '/', 3));
1771            end            end
1772            else     // kun idag            else     // kun idag
1773            begin            begin
# Line 2112  begin Line 1793  begin
1793            begin            begin
1794              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);
1795            end;            end;
 // 20150309: slut  
1796    
 // 20150310: start  
1797            if (Scanningtype = '1') then            if (Scanningtype = '1') then
1798            begin            begin
1799              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
# Line 2192  begin Line 1871  begin
1871                PanelManglendePakker6.Visible := false;                PanelManglendePakker6.Visible := false;
1872              end;              end;
1873            end;            end;
1874  // 20150310: slut  
1875            ListBox2.items.delete(i);            ListBox2.items.delete(i);
1876          end;          end;
1877      end;      end;
# Line 2219  begin Line 1898  begin
1898  end;  end;
1899    
1900  procedure TMainForm.InitBladhus();  procedure TMainForm.InitBladhus();
 var  
   LogFilnavn : string;  
1901    
1902  begin  begin
1903    Altidprintepakkelabel1.Enabled := false;    Altidprintepakkelabel1.Enabled := false;
1904    Pakkernormal1.Visible := false;    menuNatXpress1.Visible := false;
1905    ReturpakkerfraDAO1.Visible := false;    menuNatxpressReturDAO1.Visible := false;
1906    Returpakkerfraboghandler1.Visible := false;    menuNatxpressReturfraKunde1.Visible := false;
1907    Sprgefterboghandlernummer1.Enabled := false;    Sprgefterboghandlernummer1.Enabled := false;
1908    ListBox1.Visible := true;    ListBox1.Visible := true;
1909  //  TestFunktionen := '1';  //  TestFunktionen := '1';
1910  // 20150317: start  
1911  (*    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  
1912    begin    begin
1913      IndlesScanningLogFil();      IndlesScanningLogFil();
1914    end;    end;
# Line 2283  begin Line 1920  begin
1920      01 :      01 :
1921            begin;      // NS            begin;      // NS
1922              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1923              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1924              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1925              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1926              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1927              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';
# Line 2295  begin Line 1932  begin
1932      02 :      02 :
1933            begin;    // BK            begin;    // BK
1934              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1935              Smpakker1.Enabled := true;              menuSmaaPakker.Enabled := true;
1936              Storepakker1.Enabled := true;              menuStorePakker.Enabled := true;
1937              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
1938              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
1939              DownloadButton01.Enabled := false;     // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;     // kontrolfil bruges ikke her
1940              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1941              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1942              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1943              IndlesManglendeScanninger();              IndlesManglendeScanninger();
# Line 2310  begin Line 1947  begin
1947              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1948             if (getProddag() = 'lørdag') then             if (getProddag() = 'lørdag') then
1949              begin              begin
1950                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
1951              end              end
1952              else              else
1953              begin              begin
1954                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
1955              end;              end;
1956              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1957              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1958              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1959              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1960              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';
# Line 2333  begin Line 1970  begin
1970            end;            end;
1971      04 :  begin;           // DBK      04 :  begin;           // DBK
1972              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1973              Smpakker1.Enabled := true;              menuSmaaPakker.Enabled := true;
1974              Storepakker1.Enabled := true;              menuStorePakker.Enabled := true;
1975              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
1976              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
1977              DownloadButton01.Enabled := false;    // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;    // kontrolfil bruges ikke her
1978              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1979              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1980              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1981            end;            end;
# Line 2354  var Line 1991  var
1991    URLStr : String;    URLStr : String;
1992    pakkestorrelse : String;    pakkestorrelse : String;
1993    PrintNyLabelInteger : Integer;    PrintNyLabelInteger : Integer;
1994    
1995      PakkeshopLabel: TPakkeshopLabel;
1996  begin  begin
1997    if RadioButton1.Checked then    if radioStorPakke.Checked then
1998    begin    begin
1999      pakkestorrelse := 'Stor';      pakkestorrelse := 'Stor';
2000    end;    end;
2001    if RadioButton2.Checked then    if radioLillePakke.Checked then
2002    begin    begin
2003      pakkestorrelse := 'Lille';      pakkestorrelse := 'Lille';
2004    end;    end;
2005    if Pakkernormal1.Checked then  
2006    
2007      if menuNatXpress1.Checked then
2008    begin    begin
2009       if (BoghandlerTjekkode = '') then       if (BoghandlerTjekkode = '') then
2010       begin       begin
2011         BoghandlerTjekkode := '-1';         BoghandlerTjekkode := '-1';
2012       end;       end;
2013       URLStr := Format(UrlNormal,[Sted, PakkeNr, BoghandlerNummer, BoghandlerTjekkode]);       URLStr := Format(Config.UrlNormal,[Sted, PakkeNr, BoghandlerNummer, BoghandlerTjekkode]);
2014    end    end
2015    else if ReturpakkerfraDAO1.Checked then    else if menuNatxpressReturDAO1.Checked then
2016    begin    begin
2017       URLStr := Format(UrlReturDAO,[Sted, PakkeNr, BoghandlerNummer, 'DAO', pakkestorrelse]);       URLStr := Format(Config.UrlReturDAO,[Sted, PakkeNr, BoghandlerNummer, 'DAO', pakkestorrelse]);
2018    end    end
2019    else if Returpakkerfraboghandler1.Checked then    else if menuNatxpressReturfraKunde1.Checked then
2020    begin    begin
2021       URLStr := Format(UrlReturBoghandler,[Sted, PakkeNr, BoghandlerNummer, 'Boghandler', pakkestorrelse]);       URLStr := Format(Config.UrlReturBoghandler,[Sted, PakkeNr, BoghandlerNummer, 'Boghandler', pakkestorrelse]);
2022    end    end
2023    else if Budlevering1.Checked then    else if menuDaoDirekte1.Checked then
2024    begin    begin
2025       URLStr := Format(UrlBudlevering,[Sted, PakkeNr, 'bud', pakkestorrelse]);       URLStr := Format(Config.UrlBudlevering,[Sted, PakkeNr, 'bud', pakkestorrelse]);
2026    end    end
2027    else if Pakkeshoplevering1.Checked then    else if menuPakkeshop1.Checked then
2028    begin    begin
2029       URLStr := Format(UrlPakkeshoplevering,[Sted, PakkeNr, PakkeshopTjekkode]);       URLStr := Format(Config.UrlPakkeshoplevering,[Sted, PakkeNr, PakkeshopTjekkode]);
2030    end    end
2031    else if Returpakkerfrapakkeshop1.Checked then    else if menuPakkeshopRetur1.Checked then
2032    begin    begin
2033       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);       URLStr := Format(Config.UrlReturPakkeshop,[Sted, PakkeNr]);
2034      end
2035      else if menuIndlevering.Checked then
2036      begin
2037        URLStr := Format(Config.UrlIndleveringsPakke,[Sted, PakkeNr]);
2038    end    end
2039    else    else
2040    begin    begin
2041      exit;      exit;
2042    end;    end;
2043    
2044      if chkForstorTilDirekte.Checked then  // Denne skal være efter if/else kæden da den overrider de øvrige URL'er
2045      begin
2046        URLStr := Format(Config.URLOmdirigerTilPakkeshop,[Sted, PakkeNr]);
2047      end;
2048    
2049    try    try
2050      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
2051      WebSvar := IdHTTP1.Get(URLStr);      WebSvar := IdHTTP1.Get(URLStr);
# Line 2416  begin Line 2067  begin
2067          end;          end;
2068      end;      end;
2069    end;    end;
2070    
2071    XMLDocument1.LoadFromXML(WebSvar);    XMLDocument1.LoadFromXML(WebSvar);
2072    try    try
2073      if Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked then      if menuPakkeshop1.Checked or menuPakkeshopRetur1.Checked then
2074       begin       begin
2075        RuteNummer := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopTurid').Text;        RuteNummer := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopTurid').Text;
2076        Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;        Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2077        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;
2078        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;
2079        PrintNyLabel := False;        PrintNyLabel := False;
2080  // 20150310: start  
2081        if Pakkeshoplevering1.Checked then        if menuPakkeshop1.Checked then
2082        begin        begin
 // 20150310: slut  
2083          try          try
2084            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);
2085          except on e:exception do          except on e:exception do
# Line 2438  begin Line 2089  begin
2089          begin          begin
2090            PrintNyLabel := True;            PrintNyLabel := True;
2091          end;          end;
 // 20150310: start  
2092        end;        end;
 // 20150310: slut  
2093       end       end
2094        else if menuIndlevering.Checked or chkForstorTilDirekte.Checked then
2095        begin
2096    
2097    
2098    
2099    
2100         Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2101         if (Kommentar = 'Ok') then
2102         begin
2103           PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2104           PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc
2105           RuteNummer := PakkeshopLabel.Koreliste + '  ->  ' +  PakkeshopLabel.PakkeshopTurid;
2106           Stregkode := PakkeshopLabel.Stregkode;
2107    
2108           LabelPrint.PrintFuldPakkeLabel( PakkeshopLabel );
2109           chkForstorTilDirekte.Checked := false;
2110    
2111         end;
2112    
2113    
2114        end
2115      else      else
2116       begin       begin
2117        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;
# Line 2449  begin Line 2119  begin
2119        Kommentar := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Kommentar').Text;        Kommentar := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Kommentar').Text;
2120        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('BoghandlerNavn').Text;        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('BoghandlerNavn').Text;
2121        Leveringssted := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Leveringssted').Text;        Leveringssted := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Leveringssted').Text;
2122        if Budlevering1.Checked then        if menuDaoDirekte1.Checked then
2123          begin          begin
2124          try          try
2125            SmsKode := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('SmsKode').Text;            SmsKode := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('SmsKode').Text;
# Line 2474  begin Line 2144  begin
2144          PrintNyLabel := True;          PrintNyLabel := True;
2145        end;        end;
2146      end;      end;
2147    
2148    
2149      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
2150      begin      begin
2151        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then
2152        begin        begin
2153            Kommentar := Kommentar + ' Pakke burde være hos DAO Distribution';            Kommentar := Kommentar + 'Pakke burde være hos ' + Leveringssted;
2154            PrintNyLabel := False;            PrintNyLabel := False;
2155        end;        end;
2156      end      end
2157      else if (Budlevering1.Checked) and (Leveringssted <> Sted) then      else if (menuDaoDirekte1.Checked) and (Leveringssted <> Sted) And (Leveringssted <> '') then
2158      begin      begin
2159         if (Leveringssted = 'E') and (Sted = 'DBK') then         if (Leveringssted = 'E') and (Sted = 'DBK') then
2160         begin         begin
# Line 2490  begin Line 2162  begin
2162         end         end
2163         else         else
2164         begin         begin
2165            Kommentar := Kommentar + ' Pakke burde være hos DAO Distribution';            Kommentar := Kommentar + 'Pakke burde være hos ' + Leveringssted;
2166            PrintNyLabel := False;            PrintNyLabel := False;
2167         end;         end;
2168      end;      end;
# Line 2511  begin Line 2183  begin
2183    //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
2184    BoghandlerNavnST.Caption := StringReplace(BoghandlerNavn, ' & ', ' && ', [rfReplaceAll, rfIgnoreCase]);    BoghandlerNavnST.Caption := StringReplace(BoghandlerNavn, ' & ', ' && ', [rfReplaceAll, rfIgnoreCase]);
2185    List1msg := TimeToStr(now) + '; ';    List1msg := TimeToStr(now) + '; ';
2186    if Pakkeshoplevering1.Checked then    if menuPakkeshop1.Checked then
2187      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';
2188    List1Pakkestorrelse := '';    List1Pakkestorrelse := '';
2189    if RadioButton1.Checked then    if radioStorPakke.Checked then
2190    begin    begin
2191      List1Pakkestorrelse := 'Stor pakke';      List1Pakkestorrelse := 'Stor pakke';
2192    end;    end;
2193    if RadioButton2.Checked then    if radioLillePakke.Checked then
2194    begin    begin
2195      List1Pakkestorrelse := 'Lille pakke';      List1Pakkestorrelse := 'Lille pakke';
2196    end;    end;
2197    List1msg := List1msg + BoghandlerNavn + '; ';    List1msg := List1msg + BoghandlerNavn + '; ';
2198    if ReturpakkerfraDAO1.Checked then    if menuNatxpressReturDAO1.Checked then
2199    begin    begin
2200      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-8);      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-8);
2201    end;    end;
2202    if Returpakkerfraboghandler1.Checked then    if menuNatxpressReturfraKunde1.Checked then
2203    begin    begin
2204      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-16);      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-16);
2205    end;    end;
2206    if ReturpakkerfraDAO1.Checked or Returpakkerfraboghandler1.Checked then    if menuNatxpressReturDAO1.Checked or menuNatxpressReturfraKunde1.Checked then
2207       List1msg := List1msg + '; ' + List1Pakkestorrelse;       List1msg := List1msg + '; ' + List1Pakkestorrelse;
2208    if length(BoghNr) > 0 then    if length(BoghNr) > 0 then
2209    begin    begin
2210      List1Msg := List1Msg + '; Indtastet ' + BoghNr;      List1Msg := List1Msg + '; Indtastet ' + BoghNr;
2211    end;    end;
2212    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2213    begin    begin
2214       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;
2215        if (RadioButton1.Checked) then        if (radioStorPakke.Checked) then
2216        begin        begin
2217          List1msg := List1msg + '; Stor pakke';          List1msg := List1msg + '; Stor pakke';
2218        end;        end;
2219        if (RadioButton2.Checked) then        if (radioLillePakke.Checked) then
2220        begin        begin
2221          List1msg := List1msg + '; Lille pakke';          List1msg := List1msg + '; Lille pakke';
2222        end;        end;
2223    end;    end;
2224    if Returpakkerfrapakkeshop1.Checked then    if menuPakkeshopRetur1.Checked then
2225    begin    begin
2226      List1msg := List1msg + Stregkode + ' ' + RightStr(Kommentar, Length(Kommentar)-6);      List1msg := List1msg + Stregkode + ' ' + RightStr(Kommentar, Length(Kommentar)-6);
2227    end;    end;
2228    if Pakkernormal1.Checked then    if menuNatXpress1.Checked then
2229    begin    begin
2230      if (Kommentar = '***** Kommentar *****')                       // fra test printer funktionen      if (Kommentar = '***** Kommentar *****')                       // fra test printer funktionen
2231      or (BoghandlerNavn = 'Forbindelse ok')                         // fra test forbindelse funktionen      or (BoghandlerNavn = 'Forbindelse ok')                         // fra test forbindelse funktionen
# Line 2566  begin Line 2238  begin
2238        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;
2239      end;      end;
2240    end;    end;
2241      if menuIndlevering.Checked then
2242      begin
2243        List1Msg := Stregkode;
2244      end;
2245    
2246    
2247    ListBox1.Items.Insert(0,List1Msg);    ListBox1.Items.Insert(0,List1Msg);
2248    logTekst := RightStr(List1Msg, Length(List1Msg)-10);    logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2249    SkrivScanningLogFil(logTekst);    SkrivScanningLogFil(logTekst);
2250  end;  end;
2251    
2252  procedure TMainForm.UploadButton01Click(Sender: TObject);  procedure TMainForm.BtnUploadLogfilClick(Sender: TObject);
2253  begin  begin
2254    UploadLogfilTilDAO();    UploadLogfilTilDAO();
2255    UploadInifilTilDAO();    UploadInifilTilDAO();
# Line 2587  pakkeForkertSted : Integer; Line 2265  pakkeForkertSted : Integer;
2265    kontrolKoreliste : string;    kontrolKoreliste : string;
2266    nytRuteNummer, nyFarve : String;    nytRuteNummer, nyFarve : String;
2267  begin  begin
2268    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2269       RuteNummerST.Color := HexToTColor(Farve);       RuteNummerST.Color := TUtils.HexToTColor(Farve);
2270    
2271    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
2272    if pakkeErScannet = 0 then    if pakkeErScannet = 0 then
# Line 2601  begin Line 2279  begin
2279    end;    end;
2280    pakkeForkertSted := pos('burde være hos', Kommentar);    pakkeForkertSted := pos('burde være hos', Kommentar);
2281    
2282  // 20150306: start  
2283  //  if Sprgefterboghandlernummer1.Enabled and CheckBox1.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
2284    if Sprgefterboghandlernummer1.Enabled and CheckBox1.Checked and ( (RuteNummer = 'Ukendt') or (RuteNummer = 'Ukendt tur') or (RuteNummer = 'Retur ukendt') or (pakkeErScannet > 0) or (pakkeForkertSted > 0) ) then  
 // 20150306: slut  
2285    begin    begin
2286        if (RuteNummer = 'Ukendt') then        if (RuteNummer = 'Ukendt') then
2287        begin        begin
# Line 2626  begin Line 2303  begin
2303        end;        end;
2304    end    end
2305    else    else
2306    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2307    begin    begin
2308       if (BoghandlerNavn = 'Ukendt pakke') then       if (BoghandlerNavn = 'Ukendt pakke') then
2309       begin       begin
2310          PrintNyLabel := false;          PrintNyLabel := false;
2311  // 20150306: start  
 //        PlaySound(PWideChar(AlarmLyd));  
2312          PlaySound(PWideChar(AlarmLyd));          PlaySound(PWideChar(AlarmLyd));
2313          MainForm.Color := clRed;          MainForm.Color := clRed;
2314          PakkeshopNulstil.Visible := true;          btnNulstil.Visible := true;
2315  // 20150306: slut  
2316       end       end
2317       else       else
2318       begin       begin
# Line 2646  begin Line 2322  begin
2322            PrintNyLabel := true;            PrintNyLabel := true;
2323            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;
2324            nyFarve := Farve;            nyFarve := Farve;
2325            RuteNummerST.Color := HexToTColor(nyFarve);            RuteNummerST.Color := TUtils.HexToTColor(nyFarve);
2326            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;
2327            RuteNummer := nytRuteNummer;            RuteNummer := nytRuteNummer;
2328            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2329            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2330            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2331  // 20150213: start  
2332            if (PrinterNavn = 'Ingen') then            if (PrinterNavn = 'Ingen') then
2333            begin            begin
2334               PrintNyLabel := false;               PrintNyLabel := false;
2335            end;            end;
2336  // 20150313: slut  
 // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2337            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
2338            begin            begin
2339              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2340              MainForm.Color := clRed;              MainForm.Color := clRed;
2341              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2342            end;            end;
2343  // 20150306: slut  
2344         end;         end;
2345         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);
2346         if (kontrolKoreliste <> RuteNummer) then         if (kontrolKoreliste <> RuteNummer) then
# Line 2685  begin Line 2359  begin
2359            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2360            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2361            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2362  // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2363            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
2364            begin            begin
2365              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2366              MainForm.Color := clRed;              MainForm.Color := clRed;
2367              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2368            end;            end;
2369  // 20150306: slut  
 // 20150306: start  
 //       end  
 //       else  
 //       begin  
2370         end;         end;
2371       end;       end;
2372    
2373    end;    end;
2374    
2375    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2376    begin    begin
2377      case BladhusSted of      case BladhusSted of
2378        00 :  begin;        00 :  begin;
# Line 2715  begin Line 2384  begin
2384               if PrintNyLabel or (RuteNummer = 'Rutenr') then               if PrintNyLabel or (RuteNummer = 'Rutenr') then
2385  // 20150304: slut  // 20150304: slut
2386                begin                begin
2387                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2388                end;                end;
2389              end;              end;
2390        01 :  begin;        01 :  begin;
2391               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2392                    // 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
2393                    // 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')
2394                begin                begin
2395                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2396                end;                end;
2397              end;              end;
2398        02 :  begin;        02 :  begin;
2399                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
2400                begin                begin
2401                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2402                end;                end;
2403              end;              end;
2404        03 :  begin;        03 :  begin;
2405               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2406                    // 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
2407                    // 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')
2408               begin               begin
2409                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2410               end;               end;
2411              end;              end;
2412        04 :  begin;        04 :  begin;
2413                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
2414                begin                begin
2415                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2416                end;                end;
2417              end;              end;
2418        else        else
# Line 2752  begin Line 2421  begin
2421    end;    end;
2422    
2423  // 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
2424    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
2425    begin    begin
2426      exit;      exit;
2427    end;    end;
2428    
2429    if Budlevering1.Checked or ( Sprgefterboghandlernummer1.Enabled and CheckBox1.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
2430    begin    begin
2431    end    end
2432    else    else
2433    begin    begin
2434      if ( (PrinterNavn <> 'Ingen') and (PrintNyLabel or CheckBox2.Checked) and (RuteNummer <> 'Ukendt') or (RuteNummer = 'Rutenr')) then      if ( (PrinterNavn <> 'Ingen') and (PrintNyLabel or chkAltidPrintLabel.Checked) and (RuteNummer <> 'Ukendt') or (RuteNummer = 'Rutenr')) then
2435      begin      begin
2436        logTekst := 'Printer label type ';        logTekst := 'Printer label type ';
2437        if (CheckBox2.Checked) then        if (chkAltidPrintLabel.Checked) then
2438        begin        begin
2439          logTekst := logTekst + 'Alle ';          logTekst := logTekst + 'Alle ';
2440        end        end
# Line 2779  begin Line 2448  begin
2448        end;        end;
2449        logTekst := logTekst + ' for '+BoghandlerNavn;        logTekst := logTekst + ' for '+BoghandlerNavn;
2450        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
2451        with Printer do  
2452        begin        LabelPrint.PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn) ;
2453          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;  
2454      end;      end;
2455    end;    end;
2456    
2457  end;  end;
2458    
 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;  
2459    
2460    
2461  procedure TMainForm.RadioButton1Click(Sender: TObject);  procedure TMainForm.radioStorPakkeClick(Sender: TObject);
2462  begin  begin
2463      Storepakker1.Checked := true;      menuStorePakker.Checked := true;
2464      RadioButton1.Checked := true;      radioStorPakke.Checked := true;
2465  end;  end;
2466    
2467  procedure TMainForm.RadioButton2Click(Sender: TObject);  procedure TMainForm.radioLillePakkeClick(Sender: TObject);
2468  begin  begin
2469      Smpakker1.Checked := true;      menuSmaaPakker.Checked := true;
2470      RadioButton2.Checked := true;      radioLillePakke.Checked := true;
2471  end;  end;
2472    
2473    
2474  procedure TMainForm.CheckBox1Click(Sender: TObject);  procedure TMainForm.chkSporgEfterKundeClick(Sender: TObject);
2475  begin  begin
2476    if CheckBox1.Checked then    if chkSporgEfterKunde.Checked then
2477    begin    begin
2478       Sprgefterboghandlernummer1.Checked := true;       Sprgefterboghandlernummer1.Checked := true;
2479    end    end
# Line 2875  begin Line 2484  begin
2484  end;  end;
2485    
2486    
2487  procedure TMainForm.CheckBox2Click(Sender: TObject);  procedure TMainForm.chkAltidPrintLabelClick(Sender: TObject);
2488  begin  begin
2489    if CheckBox2.Checked then    if chkAltidPrintLabel.Checked then
2490    begin    begin
2491       Altidprintepakkelabel1.Checked := true;       Altidprintepakkelabel1.Checked := true;
2492    end    end
# Line 2888  begin Line 2497  begin
2497    
2498  end;  end;
2499    
2500  procedure TMainForm.CheckBox3Click(Sender: TObject);  procedure TMainForm.chkScanTjekkodeClick(Sender: TObject);
2501  begin  begin
2502    if CheckBox3.Checked then    if chkScanTjekkode.Checked then
2503    begin    begin
2504       Scanogstjekkoden1.Checked := true;       Scanogstjekkoden1.Checked := true;
2505    end    end
# Line 2900  begin Line 2509  begin
2509    end;    end;
2510  end;  end;
2511    
2512  procedure TMainForm.Pakkeshoplevering1Click(Sender: TObject);  procedure TMainForm.menuPakkeshop1Click(Sender: TObject);
2513  begin  begin
2514        Scanningtype := '5';        Scanningtype := '5';
2515        InitPakkeshoplevering();        InitPakkeshoplevering();
# Line 2909  end; Line 2518  end;
2518    
2519  procedure TMainForm.NulstilAutomatiskValg();  procedure TMainForm.NulstilAutomatiskValg();
2520  begin  begin
2521      Automatiskvalg1.Checked := false;      menuAutomatiskvalg1.Checked := false;
2522      PanelValgA.Color := clBtnFace;      PanelValgA.Color := clBtnFace;
2523      PanelValgA.Font.Color := clWindowText;      PanelValgA.Font.Color := clWindowText;
2524  // 20150317: start  
2525      if (SpecialVersionSted = '01')      if (SpecialVersionSted = '01')
2526      or (SpecialVersionSted = '02')        or (SpecialVersionSted = '02')
2527      or (SpecialVersionSted = '03')        or (SpecialVersionSted = '03')
2528      or (SpecialVersionSted = '04') then        or (SpecialVersionSted = '04') then
2529      begin      begin
2530        // 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)
2531        PanelValgA.Enabled := false;        PanelValgA.Enabled := false;
2532        PanelValgA.Font.Color := clInactiveCaption;        PanelValgA.Font.Color := clInactiveCaption;
2533        Automatiskvalg1.Enabled := false;        menuAutomatiskvalg1.Enabled := false;
2534      end;      end;
2535  // 20150317: slut  // 20150317: slut
2536  end;  end;
# Line 2936  begin Line 2545  begin
2545    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke
2546    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...');
2547    
2548          // Tjekker urls    try
2549          logTekst := 'Tjekker urls.';      // Tjekker urls
2550          ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);      logTekst := 'Tjekker urls.';
2551          SkrivScanningLogFil(logTekst);      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2552        SkrivScanningLogFil(logTekst);
2553    
         // 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;  
2554    
         // 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;  
2555    
2556          // Tjekker UrlReturBoghandler      // Tjekker UrlNormal
2557          if PanelValg3.Enabled = true then      if PanelValg1.Enabled = true then
2558          begin      begin
2559            if CheckUrl(UrlReturBoghandler) then        TjekkerEnkeltUrl('UrlNormal', Config.UrlNormal, urlFejl);
2560            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;  
2561    
2562          // Tjekker UrlBudlevering      // Tjekker UrlReturDAO
2563          if PanelValg4.Enabled = true then      if PanelValg2.Enabled = true then
2564          begin      begin
2565            if CheckUrl(UrlBudlevering) then        TjekkerEnkeltUrl('UrlReturDAO', Config.UrlReturDAO, urlFejl);
2566            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;  
2567    
2568          // Tjekker UrlPakkeshoplevering      // Tjekker UrlReturBoghandler
2569          if PanelValg5.Enabled = true then      if PanelValg3.Enabled = true then
2570          begin      begin
2571            if CheckUrl(UrlPakkeshoplevering) then        TjekkerEnkeltUrl('UrlReturBoghandler', Config.UrlReturBoghandler, urlFejl);
2572            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;  
2573    
2574          // Tjekker UrlReturPakkeshop      // Tjekker UrlBudlevering
2575          if PanelValg6.Enabled = true then      if PanelValg4.Enabled = true then
2576          begin      begin
2577            if CheckUrl(UrlReturPakkeshop) then        TjekkerEnkeltUrl('UrlBudlevering', Config.UrlBudlevering, urlFejl);
2578            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;  
2579    
2580          // Tjekker UrlManglendeScanninger      // Tjekker UrlPakkeshoplevering
2581          if (PanelValg1.Enabled = true)      if PanelValg5.Enabled = true then
2582          or (PanelValg4.Enabled = true) then      begin
2583          begin        TjekkerEnkeltUrl('UrlPakkeshoplevering', Config.UrlPakkeshoplevering, urlFejl);
2584            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;  
2585    
2586          // Tjekker UrlPakkeshopManglendeScanninger      // Tjekker UrlReturPakkeshop
2587          if PanelValg5.Enabled = true then      if PanelValg6.Enabled = true then
2588          begin      begin
2589            if CheckUrl(UrlPakkeshopManglendeScanninger) then        TjekkerEnkeltUrl('UrlReturPakkeshop', Config.UrlReturPakkeshop, urlFejl);
2590            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;  
2591    
2592          // Tjekker UrlPakkeshopManglendeReturScanninger      // Tjekker UrlManglendeScanninger
2593          if PanelValg6.Enabled = true then      if (PanelValg1.Enabled = true) or (PanelValg4.Enabled = true) then
2594          begin      begin
2595            if CheckUrl(UrlPakkeshopManglendeReturScanninger) then        TjekkerEnkeltUrl('UrlManglendeScanninger', Config.UrlManglendeScanninger, urlFejl);
2596            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;  
2597    
2598          // Tjekker UrlEKLoverforsel      // Tjekker UrlPakkeshopManglendeScanninger
2599          if PanelValg1.Enabled = true then      if PanelValg5.Enabled = true then
2600          begin      begin
2601            if CheckUrl(UrlEKLoverforsel) then        TjekkerEnkeltUrl('UrlPakkeshopManglendeScanninger', Config.UrlPakkeshopManglendeScanninger, urlFejl);
2602            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;  
2603    
2604  // 20150330: start      // Tjekker UrlPakkeshopManglendeReturScanninger
2605          // Tjekker UrlEKLoverforselPakkeshop      if PanelValg6.Enabled = true then
2606          if PanelValg5.Enabled = true then      begin
2607          begin        TjekkerEnkeltUrl('UrlPakkeshopManglendeReturScanninger', Config.UrlPakkeshopManglendeReturScanninger, urlFejl);
2608            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  
2609    
2610          // Tjekker UrlFindPakketype     // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
2611          if CheckUrl(UrlFindPakketype) then      if PanelValg7.Enabled = true then
2612          begin      begin
2613            logTekst := 'UrlFindPakketype accepteret: ' + UrlFindPakketype;        TjekkerEnkeltUrl('UrlIndleveringsPakke', Config.UrlIndleveringsPakke, urlFejl);
2614            SkrivScanningLogFil(logTekst);        TjekkerEnkeltUrl('UrlIndleveringsPakkeManglendeScanninger', Config.UrlIndleveringsPakkeManglendeScanninger, urlFejl);
2615          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;  
2616    
2617          // Tjekker UrlSendPrograminfo      // Tjekker UrlEKLoverforsel
2618          if CheckUrl(UrlSendPrograminfo) then      if PanelValg1.Enabled = true then
2619          begin      begin
2620            logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;        TjekkerEnkeltUrl('UrlEKLoverforsel', Config.UrlEKLoverforsel, urlFejl);
2621            SkrivScanningLogFil(logTekst);      end;
         end  
         else  
         begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlSendPrograminfo svarer ikke: ' + UrlSendPrograminfo;  
             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;  
2622    
         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;  
2623    
2624        // Tjekker UrlEKLoverforselPakkeshop
2625        if PanelValg5.Enabled = true then
2626        begin
2627          TjekkerEnkeltUrl('UrlEKLoverforselPakkeshop', Config.UrlEKLoverforselPakkeshop, urlFejl);
2628        end;
2629    
2630    
2631        // Tjekker UrlFindPakketype
2632        TjekkerEnkeltUrl('UrlFindPakketype', Config.UrlFindPakketype, urlFejl);
2633    
2634        // Tjekker UrlSendPrograminfo
2635        TjekkerEnkeltUrl('UrlSendPrograminfo', Config.UrlSendPrograminfo, urlFejl);
2636    
2637    
2638    
2639        logTekst := 'urls er ok';
2640        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2641        SkrivScanningLogFil(logTekst);
2642    
2643      Except
2644        TjekUrls := '-';   // markerer at der var fejl
2645    
2646      end;
2647  end;  end;
2648    
2649  function TMainForm.FileTime2DateTime(FileTime: TFileTime): TDateTime;  procedure TMainForm.TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
2650  var  const
2651     LocalFileTime: TFileTime;    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
    SystemTime: TSystemTime;  
2652  begin  begin
2653     FileTimeToLocalFileTime(FileTime, LocalFileTime) ;    if TUtils.CheckUrl(Url) then
2654     FileTimeToSystemTime(LocalFileTime, SystemTime) ;  
2655     Result := SystemTimeToDateTime(SystemTime) ;    begin
2656        logTekst := UrlNavn + ' accepteret: ' + Url;
2657        SkrivScanningLogFil(logTekst);
2658      end
2659      else
2660      begin
2661        inc(urlFejl);   // Optæller antal fejl
2662        logTekst := UrlNavn + ' svarer ikke: ' + Url;
2663        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2664        if TjekUrls = '1' then
2665        begin
2666          logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2667        end;
2668    
2669        SkrivScanningLogFil(logTekst);
2670    
2671        if TjekUrls = '1' then
2672        begin
2673          ShowMessage(logTekst);
2674          Config.UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2675          Application.Terminate;
2676    
2677          raise Exception.Create('UrlFejl');
2678    
2679        end;
2680      end;
2681    
2682  end;  end;
2683    
2684    
2685    
2686  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);
2687  var  var
2688    SR: TSearchRec;    SR: TSearchRec;
# Line 3342  begin Line 2699  begin
2699      repeat      repeat
2700        if (SR.Attr <> faDirectory) then        if (SR.Attr <> faDirectory) then
2701        begin        begin
2702    
2703          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring
2704          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse
2705          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse          dtCreation := TUtils.FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse
2706          // Selvom creation date godt kan være forskellig fra modified date,          // Selvom creation date godt kan være forskellig fra modified date,
2707          // skal vi alligevel altid tjekke filens alder ud fra modified date          // skal vi alligevel altid tjekke filens alder ud fra modified date
2708          // (æ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 2739  begin
2739    end;    end;
2740  end;  end;
2741    
2742  procedure TMainForm.PakkeshopNulstilClick(Sender: TObject);  procedure TMainForm.btnNulstilClick(Sender: TObject);
2743  begin  begin
2744    PakkeshopStregkode := '';    PakkeshopStregkode := '';
2745    PakkeshopTjekkode := '';    PakkeshopTjekkode := '';
2746    PakkeshopNulstil.Visible := false;    btnNulstil.Visible := false;
2747    PakkeshopText1.Caption := 'Stregkode';    PakkeshopText1.Caption := 'Stregkode';
2748    BoghandlerStregkode := '';    BoghandlerStregkode := '';
2749    BoghandlerTjekkode := '';    BoghandlerTjekkode := '';
# Line 3394  begin Line 2752  begin
2752    if BoghandlerNavnST.Caption = 'Fejl i forbindelse til server' then    if BoghandlerNavnST.Caption = 'Fejl i forbindelse til server' then
2753    begin    begin
2754       ShowMessage('Programmet afbrydes...');       ShowMessage('Programmet afbrydes...');
2755       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
2756       Application.Terminate;       Application.Terminate;
2757       exit;       exit;
2758    end;    end;
# Line 3403  begin Line 2761  begin
2761  //  MainForm.Color := HexToTColor(Farve);  //  MainForm.Color := HexToTColor(Farve);
2762    if Farve <> '' then    if Farve <> '' then
2763    begin    begin
2764       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  
2765    end;    end;
2766    if (Budlevering1.Checked) then    if (menuDaoDirekte1.Checked) then
2767    begin    begin
2768       InitLillePakke();       InitLillePakke();
2769    end;    end;
# Line 3477  end; Line 2825  end;
2825    
2826  procedure TMainForm.PanelValgAClick(Sender: TObject);  procedure TMainForm.PanelValgAClick(Sender: TObject);
2827  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;  
 *)  
2828  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
2829  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
2830       AutomatiskValg1.Checked := true;    menuAutomatiskvalg1.Checked := true;
2831       PanelValgA.Color := clGreen;    PanelValgA.Color := clGreen;
2832       PanelValgA.Font.Color := clWhite;    PanelValgA.Font.Color := clWhite;
2833  // 20150311: slut  
2834    
2835    
2836  end;  end;
2837    
2838  procedure TMainForm.Pakkernormal1Click(Sender: TObject);  procedure TMainForm.menuNatXpress1Click(Sender: TObject);
2839  begin  begin
2840        Scanningtype := '1';        Scanningtype := '1';
2841        NulstilAutomatiskValg();        NulstilAutomatiskValg();
# Line 3514  var Line 2849  var
2849    BoghandlerNavn : String;    BoghandlerNavn : String;
2850    Koreliste : String;    Koreliste : String;
2851    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
2852    SmsKode : String;    SmsKode : String;
2853    DBKbane : String;    DBKbane : String;
2854    Leveringssted : String;    Leveringssted : String;
# Line 3536  begin Line 2870  begin
2870      // Her kommer en alarm og rød skærm      // Her kommer en alarm og rød skærm
2871      PlaySound(PWideChar(AlarmLyd));      PlaySound(PWideChar(AlarmLyd));
2872      MainForm.Color := clRed;      MainForm.Color := clRed;
2873      PakkeshopNulstil.Visible := true;      btnNulstil.Visible := true;
2874    end    end
2875    else    else
2876    begin    begin
2877      Falsk := False;      Falsk := False;
2878      Sand := True;  
2879      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');
2880      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
2881      SmsKode := '999999';      SmsKode := '999999';
# Line 3561  var Line 2895  var
2895    BoghandlerNavn : String;    BoghandlerNavn : String;
2896    Koreliste : String;    Koreliste : String;
2897    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
2898    SmsKode : String;    SmsKode : String;
2899    DBKbane : String;    DBKbane : String;
2900    Leveringssted : String;    Leveringssted : String;
# Line 3570  begin Line 2903  begin
2903    Kommentar := '***** Kommentar *****';    Kommentar := '***** Kommentar *****';
2904    BoghandlerNavn := 'Modtagernavn';    BoghandlerNavn := 'Modtagernavn';
2905    Falsk := False;    Falsk := False;
   Sand := True;  
2906    
2907    if (Printer.Printers.Count = 0) then  
2908      if (LabelPrint.GetPrinterCount() = 0) then
2909    begin    begin
2910      ShowMessage('Der er ikke installeret en printer på denne PC.');      ShowMessage('Der er ikke installeret en printer på denne PC.');
2911    end    end
# Line 3587  begin Line 2920  begin
2920      DBKbane := '999';      DBKbane := '999';
2921      Leveringssted := 'XXX';      Leveringssted := 'XXX';
2922      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);
2923      CheckPrintQue('Test');      LabelPrint.CheckPrintQue('Test', PrinterNavn);
2924    end;    end;
2925    FocusControl(StregkodeST);    FocusControl(StregkodeST);
2926  end;  end;
# Line 3596  procedure TMainForm.Timer1Timer(Sender: Line 2929  procedure TMainForm.Timer1Timer(Sender:
2929  begin  begin
2930    if (TjekPrinter = '1') then    if (TjekPrinter = '1') then
2931    begin    begin
2932      CheckPrintQue('Timer');      LabelPrint.CheckPrintQue('Timer', PrinterNavn);
2933    end    end
2934    else    else
2935    begin    begin
# Line 3605  begin Line 2938  begin
2938    end;    end;
2939  end;  end;
2940    
2941  {  
  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;  
2942    
2943  procedure TMainForm.Om1Click(Sender: TObject);  procedure TMainForm.Om1Click(Sender: TObject);
2944  const  const
# Line 3643  var Line 2947  var
2947   tekst, filversion : String;   tekst, filversion : String;
2948  begin  begin
2949    
2950    filversion := Sto_GetFmtFileVersion('','');    filversion := TUtils.Sto_GetFmtFileVersion('');
2951    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';
2952    
2953    tekst := tekst+crlf+crlf;    tekst := tekst+crlf+crlf;
# Line 3665  begin Line 2969  begin
2969          end          end
2970          else          else
2971          begin          begin
2972            tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
2973          end;          end;
2974      end      end
2975      else      else
2976      begin      begin
2977        tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';        tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
2978      end;      end;
2979    end;    end;
2980    
# Line 3679  begin Line 2983  begin
2983      tekst := tekst+crlf+crlf;      tekst := tekst+crlf+crlf;
2984      tekst := tekst+crlf+crlf+'          **********  DETTE ER KUN EN TEST VERSION  **********';      tekst := tekst+crlf+crlf+'          **********  DETTE ER KUN EN TEST VERSION  **********';
2985      tekst := tekst+crlf+crlf;      tekst := tekst+crlf+crlf;
2986      tekst := tekst+crlf+crlf+'Url: '+url;      tekst := tekst+crlf+crlf+'Url: ' + Url;
2987    end;    end;
2988    
2989    MessageBox(Handle, PWideChar(tekst), 'Information', MB_OK);    MessageBox(Handle, PWideChar(tekst), 'Information', MB_OK);
2990    
2991  end;  end;
2992    
2993    
2994  procedure TMainForm.ListBox1DrawItem(Control: TWinControl; Index: Integer;  procedure TMainForm.ListBox1DrawItem(Control: TWinControl; Index: Integer;
2995    Rect: TRect; State: TOwnerDrawState);    Rect: TRect; State: TOwnerDrawState);
2996  var  var
# Line 3738  begin Line 3043  begin
3043    
3044    if FileExists(fileName) then    if FileExists(fileName) then
3045    begin    begin
3046      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3047      begin      begin
3048        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3049        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
# Line 3762  begin Line 3067  begin
3067    
3068    if FileExists(fileName) then    if FileExists(fileName) then
3069    begin    begin
3070      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3071      begin      begin
3072        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3073        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
3074      end      end
3075      else      else
3076      begin      begin
3077        ShowMessage('Acrobat Reader er ikke installeret!');        ShowMessage('Adobe Reader er ikke installeret!');
3078      end;      end;
3079    end    end
3080    else    else
# Line 3778  begin Line 3083  begin
3083    end;    end;
3084  end;  end;
3085    
3086    procedure TMainForm.menuIndleveringClick(Sender: TObject);
3087    begin
3088      Scanningtype := '7';
3089      NulstilAutomatiskValg();
3090      InitIndleveringskode();
3091    end;
3092    
3093  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);
3094  begin  begin
3095    
3096    if Sprgefterboghandlernummer1.Checked then    if Sprgefterboghandlernummer1.Checked then
3097    begin    begin
3098       CheckBox1.Checked := true;       chkSporgEfterKunde.Checked := true;
3099    end    end
3100    else    else
3101    begin    begin
3102       CheckBox1.Checked := false;       chkSporgEfterKunde.Checked := false;
3103    end;    end;
3104    
3105    
3106  end;  end;
3107    
3108  procedure TMainForm.ReturpakkerfraDAO1Click(Sender: TObject);  procedure TMainForm.menuNatxpressReturDAO1Click(Sender: TObject);
3109  begin  begin
3110        Scanningtype := '2';        Scanningtype := '2';
3111        NulstilAutomatiskValg();        NulstilAutomatiskValg();
3112        InitReturFraDao();        InitReturFraDao();
3113  end;  end;
3114    
3115  procedure TMainForm.Returpakkerfrapakkeshop1Click(Sender: TObject);  procedure TMainForm.menuPakkeshopRetur1Click(Sender: TObject);
3116  begin  begin
3117        Scanningtype := '6';        Scanningtype := '6';
3118        InitReturFraPakkeshop();        InitReturFraPakkeshop();
# Line 3809  end; Line 3121  end;
3121    
3122  procedure TMainForm.InitNatxpresslevering();  procedure TMainForm.InitNatxpresslevering();
3123  begin  begin
3124        AutomatiskTjekkodeStyring1.Enabled := true;        menuAutomatiskTjekkodeStyring.Enabled := true;
3125        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3126        Pakkernormal1.Checked := true;        menuNatXpress1.Checked := true;
3127        InitForm(FarveNormal,TitelNormal,UrlNormal);        InitForm(FarveNormal,TitelNormal,Config.UrlNormal);
3128        PanelValg1.Color := clGreen;        PanelValg1.Color := clGreen;
3129        PanelValg1.Font.Color := clWhite;        PanelValg1.Font.Color := clWhite;
3130        CheckBox1.Enabled := true;  
3131        CheckBox2.Enabled := true;        chkAltidPrintLabel.Enabled := true;
3132        Altidprintepakkelabel1.Enabled := true;        Altidprintepakkelabel1.Enabled := true;
3133        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3134        CheckBox2.Checked := false;        chkAltidPrintLabel.Checked := false;
3135        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3136        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3137        Sprgefterboghandlernummer1.Enabled := true;        Sprgefterboghandlernummer1.Enabled := true;
3138        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3139        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3140        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3141        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3142        ListBox1.Visible := true;        ListBox1.Visible := true;
3143        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3144        EKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3145        InitLillePakke();        InitLillePakke();
3146        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3147    
3148          chkForstorTilDirekte.Checked := false;
3149          chkForstorTilDirekte.Enabled := false;
3150    
3151        if BladhusSted = 0 then        if BladhusSted = 0 then
3152        begin        begin
3153          IndlesScanningLogFil();          IndlesScanningLogFil();
# Line 3841  end; Line 3157  end;
3157    
3158  procedure TMainForm.InitReturFraDao();  procedure TMainForm.InitReturFraDao();
3159  begin  begin
3160        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3161        ReturpakkerfraDAO1.Checked := true;        menuNatxpressReturDAO1.Checked := true;
3162        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3163        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);        InitForm(FarveReturDAO,TitelReturDAO, Config.UrlReturDAO);
3164        PanelValg2.Color := clGreen;        PanelValg2.Color := clGreen;
3165        PanelValg2.Font.Color := clWhite;        PanelValg2.Font.Color := clWhite;
3166        CheckBox1.Enabled := false;  
3167        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3168        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3169        CheckBox2.Checked := false;  
3170        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3171        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3172        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3173        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3174        Smpakker1.Enabled := true;        menuSmaaPakker.Enabled := true;
3175        Storepakker1.Enabled := true;        menuStorePakker.Enabled := true;
3176        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3177        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3178        ListBox1.Visible := true;        ListBox1.Visible := true;
3179        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3180        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3181        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3182    
3183          chkForstorTilDirekte.Checked := false;
3184          chkForstorTilDirekte.Enabled := false;
3185    
3186        InitLillePakke();        InitLillePakke();
3187  end;  end;
3188    
3189  procedure TMainForm.InitReturFraKunde();  procedure TMainForm.InitReturFraKunde();
3190  begin  begin
3191        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3192        Returpakkerfraboghandler1.Checked := true;        menuNatxpressReturfraKunde1.Checked := true;
3193        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3194        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);        InitForm(FarveReturBoghandler,TitelReturBoghandler, Config.UrlReturBoghandler);
3195        PanelValg3.Color := clGreen;        PanelValg3.Color := clGreen;
3196        PanelValg3.Font.Color := clWhite;        PanelValg3.Font.Color := clWhite;
3197        CheckBox1.Enabled := false;  
3198        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3199        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
       CheckBox2.Checked := false;  
3200        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3201        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3202        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3203        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3204        Smpakker1.Enabled := true;        menuSmaaPakker.Enabled := true;
3205        Storepakker1.Enabled := true;        menuStorePakker.Enabled := true;
3206        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3207        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3208        ListBox1.Visible := true;        ListBox1.Visible := true;
3209        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3210        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3211        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3212    
3213          chkForstorTilDirekte.Checked := false;
3214          chkForstorTilDirekte.Enabled := false;
3215    
3216        InitLillePakke();        InitLillePakke();
3217  end;  end;
3218    
3219  procedure TMainForm.InitDirektelevering();  procedure TMainForm.InitDirektelevering();
3220  begin  begin
3221        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3222        Budlevering1.Checked := true;        menuDaoDirekte1.Checked := true;
3223        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3224        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);        InitForm(FarveBudlevering,TitelBudlevering, Config.UrlBudlevering);
3225        PanelValg4.Color := clGreen;        PanelValg4.Color := clGreen;
3226        PanelValg4.Font.Color := clWhite;        PanelValg4.Font.Color := clWhite;
3227        CheckBox1.Enabled := false;  
3228        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3229        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3230        CheckBox2.Checked := false;  
3231        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3232        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3233        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3234        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3235        Smpakker1.Enabled := true;        menuSmaaPakker.Enabled := true;
3236        Storepakker1.Enabled := true;        menuStorePakker.Enabled := true;
3237        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3238        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3239        ListBox1.Visible := true;        ListBox1.Visible := true;
3240        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3241        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3242        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3243        DownloadButton03.Visible := false;        BtnDownloadRuteskiftFil.Visible := false;
3244        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3245        IdFTP1.Passive := true;        IdFTP1.Passive := true;
3246        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3247    
3248          chkForstorTilDirekte.Checked := false;
3249          chkForstorTilDirekte.Enabled := true;
3250    
3251        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then
3252        begin        begin
3253            IndlesScanningLogFil();            IndlesScanningLogFil();
# Line 3931  end; Line 3258  end;
3258    
3259  procedure TMainForm.InitPakkeshoplevering();  procedure TMainForm.InitPakkeshoplevering();
3260  begin  begin
3261        AutomatiskTjekkodeStyring1.Enabled := true;        menuAutomatiskTjekkodeStyring.Enabled := true;
3262        Pakkeshoplevering1.Checked := true;        menuPakkeshop1.Checked := true;
3263        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3264        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering, Config.UrlPakkeshoplevering);
3265        PanelValg5.Color := clGreen;        PanelValg5.Color := clGreen;
3266        PanelValg5.Font.Color := clWhite;        PanelValg5.Font.Color := clWhite;
3267        CheckBox1.Enabled := false;  
3268        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3269        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3270        CheckBox2.Checked := false;  
3271        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3272        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3273        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3274        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3275        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3276        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3277        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3278        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3279        ListBox1.Visible := true;        ListBox1.Visible := true;
3280        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3281        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3282        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3283  // 20150330: start  
3284  //      EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := true;
3285        EKLoverforsel.Enabled := true;  
3286  // 20150330: slut        chkForstorTilDirekte.Checked := false;
3287          chkForstorTilDirekte.Enabled := true;
3288    
3289        InitLillePakke();        InitLillePakke();
3290        IndlesScanningLogFil();        IndlesScanningLogFil();
3291        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3969  end; Line 3298  end;
3298    
3299  procedure TMainForm.InitReturFraPakkeshop();  procedure TMainForm.InitReturFraPakkeshop();
3300  begin  begin
3301        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3302        Returpakkerfrapakkeshop1.Checked := true;        menuPakkeshopRetur1.Checked := true;
3303        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3304        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveReturPakkeshop,TitelReturPakkeshop, Config.UrlReturPakkeshop);
3305        PanelValg6.Color := clGreen;        PanelValg6.Color := clGreen;
3306        PanelValg6.Font.Color := clWhite;        PanelValg6.Font.Color := clWhite;
3307        CheckBox1.Enabled := false;  
3308        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3309        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3310        CheckBox2.Checked := false;  
3311        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3312        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3313        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3314        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3315        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3316        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3317        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3318        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3319        ListBox1.Visible := true;        ListBox1.Visible := true;
3320        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3321        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3322        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3323        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3324    
3325          chkForstorTilDirekte.Checked := false;
3326          chkForstorTilDirekte.Enabled := false;
3327    
3328    
3329        InitLillePakke();        InitLillePakke();
3330        IndlesScanningLogFil();        IndlesScanningLogFil();
3331        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4002  begin Line 3336  begin
3336        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3337  end;  end;
3338    
3339  procedure TMainForm.Returpakkerfraboghandler1Click(Sender: TObject);  procedure TMainForm.menuNatxpressReturfraKunde1Click(Sender: TObject);
3340  begin  begin
3341        Scanningtype := '3';        Scanningtype := '3';
3342        NulstilAutomatiskValg();        NulstilAutomatiskValg();
# Line 4011  end; Line 3345  end;
3345    
3346  procedure TMainForm.InitIndleveringskode();  procedure TMainForm.InitIndleveringskode();
3347  begin  begin
3348        AutomatiskTjekkodeStyring1.Enabled := false;        menuIndlevering.Checked := true;
3349        Returpakkerfrapakkeshop1.Checked := true;        menuAutomatiskTjekkodeStyring.Enabled := false;
3350        PakkeshopNulstil.Visible := false;  
3351        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        btnNulstil.Visible := false;
3352          InitForm(FarveIndlevering, TitelIndlevering, Config.UrlReturPakkeshop);
3353        PanelValg7.Color := clGreen;        PanelValg7.Color := clGreen;
3354        PanelValg7.Font.Color := clWhite;        PanelValg7.Font.Color := clWhite;
3355        CheckBox1.Enabled := false;  
3356        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3357        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3358        CheckBox2.Checked := false;  
3359        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3360        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
       CheckBox1.Checked := false;  
3361        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3362        Smpakker1.Enabled := false;        chkSporgEfterKunde.Checked := false;
3363        Storepakker1.Enabled := false;  
3364        RadioButton1.Enabled := false;  
3365        RadioButton2.Enabled := false;  
3366          menuSmaaPakker.Enabled := false;
3367          menuStorePakker.Enabled := false;
3368          radioStorPakke.Enabled := false;
3369          radioLillePakke.Enabled := false;
3370        ListBox1.Visible := true;        ListBox1.Visible := true;
3371        ListBox1.Items.Clear;        ListBox1.Items.Clear();
3372        DownloadButton01.Enabled := false;  
3373        OpdaterListenButton01.Enabled := true;        BtnDownloadKontrolfil.Enabled := false;
3374        EKLoverforsel.Enabled := false;        BtnOpdaterListen.Enabled := true;
3375          BtnEKLoverforsel.Enabled := false;
3376    
3377          chkForstorTilDirekte.Checked := false;
3378          chkForstorTilDirekte.Enabled := false;
3379    
3380    
3381        InitLillePakke();        InitLillePakke();
3382        IndlesScanningLogFil();        IndlesScanningLogFil();
3383        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4045  begin Line 3389  begin
3389  end;  end;
3390    
3391    
3392  procedure TMainForm.Storepakker1Click(Sender: TObject);  procedure TMainForm.menuStorePakkerClick(Sender: TObject);
3393  begin  begin
3394    InitStorPakke();    InitStorPakke();
3395  end;  end;
3396    
3397  procedure TMainForm.Smpakker1Click(Sender: TObject);  procedure TMainForm.menuSmaaPakkerClick(Sender: TObject);
3398  begin  begin
3399    InitLillePakke();    InitLillePakke();
3400  end;  end;
3401    
3402  procedure TMainForm.InitLillePakke();  procedure TMainForm.InitLillePakke();
3403  begin  begin
3404    RadioButton2.Checked := true;    radioLillePakke.Checked := true;
3405    Smpakker1.Checked := true;    menuSmaaPakker.Checked := true;
 // 20150310: start  
3406  //  Stregkode := '';  //  Stregkode := '';
 // 20150310: slut  
3407  end;  end;
3408    
3409  procedure TMainForm.InitStorPakke();  procedure TMainForm.InitStorPakke();
3410  begin  begin
3411    RadioButton1.Checked := true;    radioStorPakke.Checked := true;
3412    Storepakker1.Checked := true;    menuStorePakker.Checked := true;
3413  // 20150310: start  // 20150310: start
3414  //  Stregkode := '';  //  Stregkode := '';
3415  // 20150310: slut  // 20150310: slut
3416  end;  end;
3417    
 /// <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]]);  
3418    
     // 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;  
3419    
3420  procedure TMainForm.PlaySound(filename : PWideChar);  procedure TMainForm.PlaySound(filename : PWideChar);
3421  begin  begin
# Line 4163  end; Line 3440  end;
3440    
3441  procedure TMainForm.Testlyd2Click(Sender: TObject);  procedure TMainForm.Testlyd2Click(Sender: TObject);
3442  begin  begin
 // 20150317: start  
3443    if (PakkeshopText1.Caption = 'Tjekkode') then    if (PakkeshopText1.Caption = 'Tjekkode') then
3444    begin    begin
3445       if ScannetOkTilTjekkodeLyd  <> '' then       if ScannetOkTilTjekkodeLyd  <> '' then
# Line 4176  begin Line 3452  begin
3452       end;       end;
3453       exit;       exit;
3454    end;    end;
 // 20150317: slut  
3455    
3456    if Smpakker1.Checked then    if menuSmaaPakker.Checked then
3457       if ScannetOkLyd  <> '' then       if ScannetOkLyd  <> '' then
3458       begin       begin
3459         PlaySound(PWideChar(ScannetOkLyd));         PlaySound(PWideChar(ScannetOkLyd));
3460       end       end
3461       else       else
3462       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet)'), 'Information', MB_OK);  
3463         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3464       end;       end;
3465    if Storepakker1.Checked then    if menuStorePakker.Checked then
3466       if ScannetOkStorLyd  <> '' then       if ScannetOkStorLyd  <> '' then
3467       begin       begin
3468         PlaySound(PWideChar(ScannetOkStorLyd));         PlaySound(PWideChar(ScannetOkStorLyd));
3469       end       end
3470       else       else
3471       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet stor)'), 'Information', MB_OK);  
3472         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3473       end;       end;
3474  end;  end;
3475    
3476    
3477  procedure TMainForm.Budlevering1Click(Sender: TObject);  procedure TMainForm.menuDaoDirekte1Click(Sender: TObject);
3478  begin  begin
3479        Scanningtype := '4';        Scanningtype := '4';
3480        NulstilAutomatiskValg();        NulstilAutomatiskValg();
# Line 4217  begin; Line 3486  begin;
3486    CheckCode();    CheckCode();
3487  end;  end;
3488    
3489  procedure TMainForm.EKLoverforselClick(Sender: TObject);  procedure TMainForm.BtnEKLoverforselClick(Sender: TObject);
3490  var  var
3491    WebSvar : String;    WebSvar : String;
3492    URLStr : String;    URLStr : String;
# Line 4227  var Line 3496  var
3496    status, kommentar : String;    status, kommentar : String;
3497    
3498  begin  begin
3499      EKLoverforsel.Enabled := false;      BtnEKLoverforsel.Enabled := false;
3500    
3501      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');
3502      logTekst := 'Overfører de scannede pakker til EKL';      logTekst := 'Overfører de scannede pakker til EKL';
3503      SkrivScanningLogFil(logTekst);      SkrivScanningLogFil(logTekst);
3504      StedKode := Sted;      StedKode := Sted;
3505      URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);      URLStr := Format(Config.UrlEKLoverforsel,[StedKode,Sted]);
3506  // 20150330: start  
3507      if PanelValg5.Color = clGreen then      if PanelValg5.Color = clGreen then
3508      begin      begin
3509        URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);        URLStr := Format(Config.UrlEKLoverforselPakkeshop,[StedKode,Sted]);
3510      end;      end;
3511  // 20150330: slut  
3512    
3513      try      try
3514      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
# Line 4290  begin Line 3559  begin
3559        end;        end;
3560      end;      end;
3561    
3562      EKLoverforsel.Enabled := true;      BtnEKLoverforsel.Enabled := true;
3563    
3564      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
3565    
# Line 4307  begin Line 3576  begin
3576           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';
3577         end;         end;
3578         KommentarST.Caption := Kommentar;         KommentarST.Caption := Kommentar;
3579         PakkeshopNulstil.Visible := true;         btnNulstil.Visible := true;
3580      end;      end;
3581    
3582  end;  end;
# Line 4331  begin Line 3600  begin
3600    else    else
3601      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);
3602  }  }
3603    Svar := 'Beregnet: '+CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;    Svar := 'Beregnet: ' + TUtils.CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;
3604    
3605    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);
3606    CheckCode();    CheckCode();
# Line 4339  end; Line 3608  end;
3608    
3609  end;  end;
3610    
 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;  
3611    
3612  //  //
3613  // Bladhus ***  // Bladhus ***
# Line 4855  begin Line 4085  begin
4085    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
4086  end;  end;
4087    
4088  procedure TMainForm.DownloadButton01Click(Sender: TObject);  procedure TMainForm.BtnDownloadKontrolfilClick(Sender: TObject);
4089  begin  begin
4090      DownloadBladhusKontrolfil();      DownloadBladhusKontrolfil();
4091      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
4092  end;  end;
4093    
4094  procedure TMainForm.OpdaterListenButton01Click(Sender: TObject);  procedure TMainForm.BtnOpdaterListenClick(Sender: TObject);
4095  const  const
4096    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
4097    
# Line 4870  begin Line 4100  begin
4100      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
4101  end;  end;
4102    
4103  procedure TMainForm.DownloadButton03Click(Sender: TObject);  procedure TMainForm.BtnDownloadRuteskiftFilClick(Sender: TObject);
4104  begin  begin
4105      if (getProddag() = 'lørdag') then      if (getProddag() = 'lørdag') then
4106      begin      begin
# Line 4879  begin Line 4109  begin
4109      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
4110  end;  end;
4111    
4112  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;  
4113    
4114  procedure TMainForm.IndlesManglendeScanninger();  procedure TMainForm.IndlesManglendeScanninger();
4115  var  var
# Line 4902  var Line 4120  var
4120    I: Integer;    I: Integer;
4121    stregkode, modtagernavn, modtageradresse, kommentar : string;    stregkode, modtagernavn, modtageradresse, kommentar : string;
4122    pakketype, tjekkodestatus : String;    pakketype, tjekkodestatus : String;
4123    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;    antalLiniefelter, antalFelterFundet, linienr : Integer;
4124    pakketyper : TStrings;    //pakketyper : TStrings;
4125      pakketyper : TDictionary<String, Integer>;
4126      tmpAntal : Integer;
4127    
4128     time, timeSamlet : TTimingHelper;
4129    
4130    
4131    antlin : Integer;    antlin : Integer;
4132  // 20150306: start  
4133    antlinIdag, antlinSenere : Integer;    antlinIdag, antlinSenere : Integer;
4134  // 20150306: slut  
4135    XmlFelter : TStrings;    //XmlFelter : TStrings;
4136      XmlFelter : TDictionary<String, Integer>;
4137    
4138   begin   begin
4139      XmlFelter := TStringList.Create;  
4140      pakketyper := TStringList.Create;  
4141        XmlFelter := TDictionary<String, Integer>.Create;
4142        pakketyper := TDictionary<String, Integer>.Create;
4143    
4144      linienr := 0;      linienr := 0;
4145      ListBox2.Clear;      ListBox2.Clear;
4146      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 4927  var Line 4155  var
4155          StedKode := Sted;          StedKode := Sted;
4156        end;        end;
4157    
4158  // 20150310: start        Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4159  (*  
4160      if Returpakkerfrapakkeshop1.Checked then  
4161       begin  
4162        URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);      if (Scanningtype = '7') then
      end  
     else if Pakkeshoplevering1.Checked then  
      begin  
       URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);  
      end  
     else if Pakkernormal1.Checked then  
4163       begin       begin
4164        URLStr := Format(UrlManglendeScanninger,[StedKode,'B2']);        URLStr := Format(Config.UrlIndleveringsPakkeManglendeScanninger, [StedKode]);
4165       end       end
4166      else      else if (Scanningtype = '6') then
4167       begin       begin
4168        URLStr := Format(UrlManglendeScanninger,[StedKode,'A2']);    // Budleveringer        URLStr := Format(Config.UrlPakkeshopManglendeReturScanninger, [StedKode]);
      end;  
 *)  
     if (Scanningtype = '6') then  
      begin  
       URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);  
4169       end       end
4170      else if (Scanningtype = '5') then      else if (Scanningtype = '5') then
4171       begin       begin
4172        URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);        URLStr := Format(Config.UrlPakkeshopManglendeScanninger, [StedKode]);
4173       end       end
4174      else if (Scanningtype = '1') then      else if (Scanningtype = '1') then
4175       begin       begin
4176        URLStr := Format(UrlManglendeScanninger,[StedKode,'B2']);        URLStr := Format(Config.UrlManglendeScanninger,[StedKode,'B2']);
4177       end       end
4178      else if (Scanningtype = '4') then      else if (Scanningtype = '4') then
4179       begin       begin
4180        URLStr := Format(UrlManglendeScanninger,[StedKode,'A2']);    // Budleveringer        URLStr := Format(Config.UrlManglendeScanninger,[StedKode,'A2']);    // Budleveringer
4181       end       end
4182      else      else
4183       begin       begin
# Line 4968  var Line 4185  var
4185       end;       end;
4186  // 20150310: slut  // 20150310: slut
4187    
4188        time := TTimingHelper.create();        //DEBUG
4189        timeSamlet := TTimingHelper.create();        //DEBUG
4190    
4191      try      try
4192      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
4193  //    URLStr := string(Utf8Encode(URLStr));  //    URLStr := string(Utf8Encode(URLStr));
# Line 4977  var Line 4197  var
4197        begin        begin
4198          // 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
4199          WebSvar := IdHTTP1.Get(URLStr);          WebSvar := IdHTTP1.Get(URLStr);
4200    
4201    
4202    
4203        end;        end;
4204        on e:exception do        on e:exception do
4205        begin        begin
# Line 4987  var Line 4210  var
4210        end;        end;
4211      end;      end;
4212      try      try
4213          time.stop('HTTP Load');     //DEBUG
4214    
4215        XMLDocument1.LoadFromXML(WebSvar);        XMLDocument1.LoadFromXML(WebSvar);
4216    
4217  // 20150206: start        time.stop('XML Load');     //DEBUG
4218    
4219    
4220    
4221    
4222    
4223    
4224        antlin := 0;        antlin := 0;
4225        antlinIdag := 0;        antlinIdag := 0;
4226        antlinSenere := 0;        antlinSenere := 0;
4227  // 20150306: slut  
       antalFelterFundet := 0;  
4228        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4229            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4230            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
4231              if Node.NodeName = 'Stregkode' then              if Node.NodeName = 'Stregkode' then
4232              begin              begin
4233                 antlin := antlin + 1;                 Inc(antlin);
4234                 // 20150306: start                 // 20150306: start
4235                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4236                begin                begin
4237                   if (pos('(', Node.NodeValue) = 0) then                   if (pos('(', Node.NodeValue) = 0) then
4238                   begin                   begin
4239                     antlinIdag := antlinIdag + 1;                     Inc(antlinIdag);
4240                   end                   end
4241                   else                   else
4242                   begin                   begin
4243                     antlinSenere := antlinSenere + 1;                     Inc(antlinSenere);
4244                   end;                   end;
4245                end;                end;
4246                 // 20150306: slut                 // 20150306: slut
4247              end;              end;
4248            end;            end;
4249            if (XmlFelter.values[Node.NodeName] <> '') then            if ( XmlFelter.ContainsKey(Node.NodeName) ) then
4250                  XmlFelter.values[Node.NodeName] := IntToStr(StrToInt(XmlFelter.values[Node.NodeName]) + 1)                begin
4251                    XmlFelter.TryGetValue(Node.NodeName, tmpAntal);
4252                    XmlFelter.AddOrSetValue(Node.NodeName, tmpAntal + 1);
4253                  end
4254                else                else
4255                  XmlFelter.values[Node.NodeName] := '1';                begin
4256                    XmlFelter.Add(Node.NodeName, 1);
4257                  end;
4258    
4259        end;        end;
4260        antalLiniefelter := XmlFelter.Count;        antalLiniefelter := XmlFelter.Count;
4261        antalFelterFundet := 0;        antalFelterFundet := 0;
4262        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug
4263        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array
4264  // 20150206: start  
4265  //      logTekst := 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.';        time.stop('Antal Linier');//DEBUG
4266    
4267          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4268    
4269        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4270        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4271        begin        begin
4272          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';
4273        end;        end;
4274        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4275  // 20150306: slut  
4276        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4277    
4278    
4279        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4280            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4281            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
# Line 5043  var Line 4283  var
4283                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4284                  stregkode := Node.NodeValue;                  stregkode := Node.NodeValue;
4285                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4286              end;              end
4287              if Node.NodeName = 'ModtagerNavn' then begin              else if Node.NodeName = 'ModtagerNavn' then begin
4288                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4289                  modtagernavn := Node.NodeValue;                  modtagernavn := Node.NodeValue;
4290                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4291              end;              end
4292              if Node.NodeName = 'ModtagerAdresse' then begin              else if Node.NodeName = 'ModtagerAdresse' then begin
4293                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4294                  modtageradresse := Node.NodeValue;                  modtageradresse := Node.NodeValue;
4295                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4296              end;              end
4297              if Node.NodeName = 'Kommentar' then begin              else if Node.NodeName = 'Kommentar' then begin
4298                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4299                  kommentar := Node.NodeValue;                  kommentar := Node.NodeValue;
4300                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4301              end;              end
4302              if Node.NodeName = 'PakkeType' then begin              else if Node.NodeName = 'PakkeType' then begin
4303                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4304                  pakketype := Node.NodeValue;                  pakketype := Node.NodeValue;
4305                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4306                if (pakketyper.values[pakketype] <> '') then                if ( pakketyper.ContainsKey(pakketype) ) then
4307                  pakketyper.values[pakketype] := IntToStr(StrToInt(pakketyper.values[pakketype]) + 1)                begin
4308                    pakketyper.TryGetValue(pakketype, tmpAntal);
4309                    pakketyper.AddOrSetValue(pakketype, tmpAntal + 1);
4310                  end
4311                else                else
4312                  pakketyper.values[pakketype] := '1';                  pakketyper.Add(pakketype, 1);
4313              end;              end
4314              if Node.NodeName = 'TjekkodeStatus' then begin              else if Node.NodeName = 'TjekkodeStatus' then begin
4315                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4316                  tjekkodestatus := Node.NodeValue;                  tjekkodestatus := Node.NodeValue;
4317                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4318                  if (tjekkodestatus = '-1') then                  if (tjekkodestatus = '-1') then
4319                  begin                  begin
4320  // 20150306: start  
 //                    stregkoderMedTjekkodeArray[linienr] := stregkode;  
4321                    if (pos(' ', stregkode) > 0) then                    if (pos(' ', stregkode) > 0) then
4322                    begin                    begin
4323                      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
4324                    end                    end
4325                    else                    else
4326                    begin                    begin
4327                      stregkoderMedTjekkodeArray[linienr] := stregkode;                      stregkoderMedTjekkodeArray[linienr] := stregkode;
4328                    end;                    end;
4329  // 20150306: slut                    linienr := linienr + 1;
                     linienr := linienr + 1;  
4330                  end;                  end;
4331              end;              end;
4332    
4333    
4334              if antalFelterFundet = antalLiniefelter then              if antalFelterFundet = antalLiniefelter then
4335              begin              begin
4336                if (ScanningType = '1') then                if (ScanningType = '1') then
# Line 5103  var Line 4346  var
4346              end;              end;
4347            end;            end;
4348        end;        end;
       for pakketypeix := 0 to pakketyper.Count-1 do  
         begin  
           ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + ' '+pakketyper[pakketypeix]+' pakke(r) ikke modtaget');  
         end;  
4349    
4350          // Free up the list object  
4351          time.stop('Fyld Listbox2');//DEBUG
4352    
4353    
4354          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4355    
4356    
4357          for pakketype in pakketyper.Keys do
4358          begin
4359            pakketyper.TryGetValue(pakketype, tmpAntal);
4360            ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + pakketype + ' ' + IntToStr(tmpAntal) + ' pakke(r) ikke modtaget');
4361          end;
4362    
4363            // Free up the dictionary object
4364        pakketyper.Free;        pakketyper.Free;
4365  // 20150306: start  
4366    
4367    
4368  //      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.');
4369        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4370        if (antlinSenere > 0) then        if (antlinSenere > 0) then
# Line 5119  var Line 4373  var
4373        end;        end;
4374        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4375        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
 // 20150306: slut  
 // 20150309: start  
4376        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4377        begin        begin
4378          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);
# Line 5129  var Line 4381  var
4381        begin        begin
4382          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);
4383        end;        end;
 // 20150309: slut  
4384    
 // 20150310: start  
4385        if (Scanningtype = '1') then        if (Scanningtype = '1') then
4386        begin        begin
4387          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal
# Line 5210  var Line 4460  var
4460            PanelManglendePakker6.Visible := false;            PanelManglendePakker6.Visible := false;
4461          end;          end;
4462        end;        end;
 // 20150310: slut  
4463    
4464      except on e:exception do      except on e:exception do
4465        begin        begin
# Line 5221  var Line 4470  var
4470        end;        end;
4471      end;      end;
4472    
4473        time.stop('Done');//DEBUG
4474        timeSamlet.stop('SamletTid');//DEBUG
4475    
4476    
4477  end;  end;
4478    
4479  procedure TMainForm.IndlesScanningLogFil();  procedure TMainForm.IndlesScanningLogFil();
# Line 5272  end; Line 4525  end;
4525  procedure TMainForm.SkrivScanningLogFil(var tekst : string);  procedure TMainForm.SkrivScanningLogFil(var tekst : string);
4526  var  var
4527     SomeTxtFile : TextFile;     SomeTxtFile : TextFile;
    buffer : string;  
    S: string;  
4528     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
4529     imorgenYmd : string;     imorgenYmd : string;
4530     logFilnavn : string;     logFilnavn : string;
4531      error : Integer;     //error : Integer;
4532    
4533  begin  begin
4534    if (SkrivLog = '1') then    if (SkrivLog = '1') then
# Line 5369  begin Line 4620  begin
4620          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
4621          S := buffer;          S := buffer;
4622          SetLength(A,0);          SetLength(A,0);
4623          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
4624          if (length(A) < 2) then          if (length(A) < 2) then
4625          begin          begin
4626            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
4627          end;          end;
4628            if (length(A) > 1) then            if (length(A) > 1) then
4629            begin            begin
# Line 5446  begin Line 4697  begin
4697          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
4698          S := buffer;          S := buffer;
4699          SetLength(A,0);          SetLength(A,0);
4700          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
4701          if (length(A) < 3) then          if (length(A) < 3) then
4702          begin          begin
4703            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
4704          end;          end;
4705          if (A[0]=imorgenYmd) then          if (A[0]=imorgenYmd) then
4706          begin          begin
# Line 5541  begin Line 4792  begin
4792    result := svar;    result := svar;
4793  end;  end;
4794    
4795    procedure TMainForm.VisAlarmSkaerm(strMessage: string);
4796    begin
4797      //ShowMessage('Ændring ikke tilladt');
4798      // Her skal komme en 'rød skærm' alarm
4799      PlaySound(PWideChar(AlarmLyd));
4800      MainForm.Color := clRed;
4801    
4802    
4803      RuteNummerST.Caption := '';
4804      BoghandlerNavnST.Caption := '';
4805      btnNulstil.Visible := true;
4806    
4807      if (strMessage <> '') then
4808      begin
4809        ListBox1.Items.Insert(0, strMessage);
4810        KommentarST.Caption := strMessage;
4811      end;
4812    
4813      Stregkode := ''; //Nulstil stregkode feltet efter at fejl er vist
4814    
4815    end;
4816    
4817  function TMainForm.getProddato() : TDate;  function TMainForm.getProddato() : TDate;
4818  var  var
4819     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
# Line 5598  begin Line 4871  begin
4871    result := svar;    result := svar;
4872  end;  end;
4873    
 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;  
4874    
4875  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);
4876  begin  begin
4877    if Scanogstjekkoden1.Checked then    if Scanogstjekkoden1.Checked then
4878    begin    begin
4879       CheckBox3.Checked := true;       chkScanTjekkode.Checked := true;
4880    end    end
4881    else    else
4882    begin    begin
4883       CheckBox3.Checked := false;       chkScanTjekkode.Checked := false;
4884    end;    end;
4885  end;  end;
4886    
4887  function TMainForm.AdobeReaderExists: Boolean;  
4888  var  //Nedarvet fra IParentForm
4889    AReg: TRegistry;  procedure TMainForm.Msg( msg : string);
4890  begin  begin
4891    result:= false;    ShowMessage(msg);
   AReg := TRegistry.Create;  
   AReg.RootKey := HKEY_LOCAL_MACHINE;  
   if AReg.KeyExists('\SOFTWARE\Adobe\Acrobat Reader') then  
     result:= True;  
   AReg.Free;  
4892  end;  end;
4893    
4894  procedure TMainForm.CheckPrintQue(tjektype : string);  //Nedarvet fra IParentForm
4895  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;  
4896  begin  begin
4897      ListBox1.Items.Insert(0, msg);
4898      SkrivScanningLogFil(msg);
4899    end;
4900    
 // tjektype = 'Opstart' skal vise alarmlinie, samt opdatere listbox1  
 //            'Test'  skal vise alarmlinie, samt opdatere listbox1  
 //            'Timer' skal kun vise alarmlinie  
4901    
4902    if (PrinterNavn = 'Ingen') and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then  //Nedarvet fra IParentForm
4903    begin  procedure TMainForm.SetPrinterstatusText( txt: string; alert: boolean);
4904      printerTxt := 'Der er fravalgt printer i dette program';  begin
4905      ListBox1.Items.Insert(0,printerTxt);  
4906      SkrivScanningLogFil(printerTxt);    PrinterstatusStaticText1.Caption := txt;
4907    end    if (alert) then
   else if (Printer.Printers.Count = 0) and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then  
4908    begin    begin
4909      printerTxt := 'Der er ikke installeret en printer på denne PC';      PrinterstatusStaticText1.Font.Color := clBlack;
4910      ListBox1.Items.Insert(0,printerTxt);      PrinterstatusStaticText1.Color := MainForm.Color;
4911      SkrivScanningLogFil(printerTxt);      PrinterstatusStaticText1.Transparent := True;
4912    end    end
4913    else    else
4914    begin    begin
4915      hPrinter := GetCurrentPrinterHandle;      PrinterstatusStaticText1.Font.Color := clRed;
4916      try      PrinterstatusStaticText1.Color := clWhite;
4917        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;  
4918    end;    end;
4919  end;  end;
4920    
4921  function TMainForm.CheckUrl(url:string):boolean;  //Nedarvet fra IParentForm
4922  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;  
4923  begin  begin
4924     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;  
4925  end;  end;
 // 20150310: slut  
4926    
4927  end.  end.
4928    

Legend:
Removed from v.2650  
changed lines
  Added in v.3087

  ViewVC Help
Powered by ViewVC 1.1.20