/[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 2780 by torben, Tue Nov 24 15:35:17 2015 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    
30    ;    ;
31    
32  type  type
33    TStrArray = array of string;    TMainForm = class(TForm, IParentForm)
   TMainForm = class(TForm)  
34      StregkodeST: TStaticText;      StregkodeST: TStaticText;
35      RuteNummerST: TStaticText;      RuteNummerST: TStaticText;
36      BoghandlerNavnST: TStaticText;      BoghandlerNavnST: TStaticText;
37      IdHTTP1: TIdHTTP;      IdHTTP1: TIdHTTP;
38      XMLDocument1: TXMLDocument;      XMLDocument1: TXMLDocument;
39      ApplicationEvents1: TApplicationEvents;      ApplicationEvents1: TApplicationEvents;
40      CheckBox1: TCheckBox;      chkSporgEfterKunde: TCheckBox;
41      KommentarST: TStaticText;      KommentarST: TStaticText;
42      MainMenu1: TMainMenu;      MainMenu1: TMainMenu;
43      N1: TMenuItem;      N1: TMenuItem;
# Line 36  type Line 53  type
53      Lukprogrammet1: TMenuItem;      Lukprogrammet1: TMenuItem;
54      N2: TMenuItem;      N2: TMenuItem;
55      N3: TMenuItem;      N3: TMenuItem;
56      RadioButton1: TRadioButton;      radioStorPakke: TRadioButton;
57      RadioButton2: TRadioButton;      radioLillePakke: TRadioButton;
58      N4: TMenuItem;      N4: TMenuItem;
59      Storepakker1: TMenuItem;      Storepakker1: TMenuItem;
60      Smpakker1: TMenuItem;      Smpakker1: TMenuItem;
# Line 47  type Line 64  type
64      Testlyd1: TMenuItem;      Testlyd1: TMenuItem;
65      ListBox1: TListBox;      ListBox1: TListBox;
66      Budlevering1: TMenuItem;      Budlevering1: TMenuItem;
67      DownloadButton01: TButton;      BtnDownloadKontrolfil: TButton;
68      IdFTP1: TIdFTP;      IdFTP1: TIdFTP;
69      Image1: TImage;      Image1: TImage;
70      ListBox2: TListBox;      ListBox2: TListBox;
71      OpdaterListenButton01: TButton;      BtnOpdaterListen: TButton;
72      UploadButton01: TButton;      BtnUploadLogfil: TButton;
73      DownloadButton03: TButton;      BtnDownloadRuteskiftFil: TButton;
74      Pakkeshoplevering1: TMenuItem;      Pakkeshoplevering1: TMenuItem;
75      PakkeshopText1: TStaticText;      PakkeshopText1: TStaticText;
76      PakkeshopNulstil: TButton;      btnNulstil: TButton;
77      Returpakkerfrapakkeshop1: TMenuItem;      Returpakkerfrapakkeshop1: TMenuItem;
78      Altidprintepakkelabel1: TMenuItem;      Altidprintepakkelabel1: TMenuItem;
79      CheckBox2: TCheckBox;      chkAltidPrintLabel: TCheckBox;
80      EKLoverforsel: TButton;      BtnEKLoverforsel: TButton;
81      N5: TMenuItem;      N5: TMenuItem;
82      Uploadlogfil1: TMenuItem;      Uploadlogfil1: TMenuItem;
83      Manual1: TMenuItem;      Manual1: TMenuItem;
84      PrinterstatusStaticText1: TStaticText;      PrinterstatusStaticText1: TStaticText;
85      Timer1: TTimer;      Timer1: TTimer;
86      CheckBox3: TCheckBox;      chkScanTjekkode: TCheckBox;
87      Scanogstjekkoden1: TMenuItem;      Scanogstjekkoden1: TMenuItem;
88      Automatisktjekkodestyring1: TMenuItem;      Automatisktjekkodestyring1: TMenuItem;
89      Automatiskvalg1: TMenuItem;      Automatiskvalg1: TMenuItem;
# Line 77  type Line 94  type
94      PanelValg4: TPanel;      PanelValg4: TPanel;
95      PanelValg5: TPanel;      PanelValg5: TPanel;
96      PanelValg6: TPanel;      PanelValg6: TPanel;
97        PanelValg7: TPanel;
98      Manualgenerel1: TMenuItem;      Manualgenerel1: TMenuItem;
99      StaticTextManglendePakker: TStaticText;      StaticTextManglendePakker: TStaticText;
100      PanelManglendePakker1: TPanel;      PanelManglendePakker1: TPanel;
# Line 85  type Line 103  type
103      PanelManglendePakker4: TPanel;      PanelManglendePakker4: TPanel;
104      PanelManglendePakker5: TPanel;      PanelManglendePakker5: TPanel;
105      PanelManglendePakker6: TPanel;      PanelManglendePakker6: TPanel;
106      PanelValg7: TPanel;      menuIndlevering: TMenuItem;
107    
108    
109    
   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;  
110    function getProddato() : TDate;    function getProddato() : TDate;
111    function getProddag() : String;    function getProddag() : String;
112    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;  
113    
114    procedure PlaySound(filename : PWideChar);    procedure PlaySound(filename : PWideChar);
115    procedure StartScreen();    procedure StartScreen();
# Line 113  type Line 122  type
122    procedure FormKeyPress(Sender: TObject; var Key: Char);    procedure FormKeyPress(Sender: TObject; var Key: Char);
123    procedure FormCreate(Sender: TObject);    procedure FormCreate(Sender: TObject);
124    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
125    procedure RadioButton1Click(Sender: TObject);    procedure radioStorPakkeClick(Sender: TObject);
126    procedure RadioButton2Click(Sender: TObject);    procedure radioLillePakkeClick(Sender: TObject);
127    procedure CheckBox1Click(Sender: TObject);    procedure chkSporgEfterKundeClick(Sender: TObject);
128    procedure Pakkernormal1Click(Sender: TObject);    procedure Pakkernormal1Click(Sender: TObject);
129    procedure Testforbindelsen1Click(Sender: TObject);    procedure Testforbindelsen1Click(Sender: TObject);
130    procedure Testprinter1Click(Sender: TObject);    procedure Testprinter1Click(Sender: TObject);
# Line 131  type Line 140  type
140    procedure Button1Click(Sender: TObject);    procedure Button1Click(Sender: TObject);
141    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
142    procedure Budlevering1Click(Sender: TObject);    procedure Budlevering1Click(Sender: TObject);
143    procedure DownloadButton01Click(Sender: TObject);    procedure BtnDownloadKontrolfilClick(Sender: TObject);
144    procedure OpdaterListenButton01Click(Sender: TObject);    procedure BtnOpdaterListenClick(Sender: TObject);
145    procedure DownloadBladhusRuteskiftfil();    procedure DownloadBladhusRuteskiftfil();
146    procedure DownloadBladhusKontrolfil();    procedure DownloadBladhusKontrolfil();
147    procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);    procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);
# Line 140  type Line 149  type
149    procedure UploadInifilTilDAO();    procedure UploadInifilTilDAO();
150    procedure SletStregkodelinieFraListboks2(StregKode : String);    procedure SletStregkodelinieFraListboks2(StregKode : String);
151    procedure FormDestroy(Sender: TObject);    procedure FormDestroy(Sender: TObject);
152    procedure UploadButton01Click(Sender: TObject);    procedure BtnUploadLogfilClick(Sender: TObject);
153    procedure DownloadButton03Click(Sender: TObject);    procedure BtnDownloadRuteskiftFilClick(Sender: TObject);
154    procedure Pakkeshoplevering1Click(Sender: TObject);    procedure Pakkeshoplevering1Click(Sender: TObject);
155    procedure PakkeshopNulstilClick(Sender: TObject);    procedure btnNulstilClick(Sender: TObject);
156    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);
157    procedure InitNatxpresslevering();    procedure InitNatxpresslevering();
158    procedure InitReturFraDao();    procedure InitReturFraDao();
# Line 154  type Line 163  type
163    procedure InitIndleveringskode();    procedure InitIndleveringskode();
164    
165    procedure Altidprintepakkelabel1Click(Sender: TObject);    procedure Altidprintepakkelabel1Click(Sender: TObject);
166    procedure CheckBox2Click(Sender: TObject);    procedure chkAltidPrintLabelClick(Sender: TObject);
167    procedure EKLoverforselClick(Sender: TObject);    procedure BtnEKLoverforselClick(Sender: TObject);
168    procedure Uploadlogfil1Click(Sender: TObject);    procedure Uploadlogfil1Click(Sender: TObject);
169    procedure Manual1Click(Sender: TObject);    procedure Manual1Click(Sender: TObject);
   procedure CheckPrintQue(tjektype : string);  
170    procedure Timer1Timer(Sender: TObject);    procedure Timer1Timer(Sender: TObject);
171    procedure Scanogstjekkoden1Click(Sender: TObject);    procedure Scanogstjekkoden1Click(Sender: TObject);
172    procedure CheckBox3Click(Sender: TObject);    procedure chkScanTjekkodeClick(Sender: TObject);
173    procedure Automatisktjekkodestyring1Click(Sender: TObject);    procedure Automatisktjekkodestyring1Click(Sender: TObject);
174    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
175    procedure Automatiskvalg1Click(Sender: TObject);    procedure Automatiskvalg1Click(Sender: TObject);
# Line 172  type Line 180  type
180    procedure PanelValg4Click(Sender: TObject);    procedure PanelValg4Click(Sender: TObject);
181    procedure PanelValg5Click(Sender: TObject);    procedure PanelValg5Click(Sender: TObject);
182    procedure PanelValg6Click(Sender: TObject);    procedure PanelValg6Click(Sender: TObject);
183      procedure PanelValg7Click(Sender: TObject);
184    
185    procedure NulstilAutomatiskValg();    procedure NulstilAutomatiskValg();
186    procedure SletLogfiler(Path: string; FileList: TStrings);    procedure SletLogfiler(Path: string; FileList: TStrings);
187    procedure Manualgenerel1Click(Sender: TObject);    procedure Manualgenerel1Click(Sender: TObject);
188    procedure TjekkerUrls();    procedure TjekkerUrls();
189  // 20150310: start    procedure TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
190    procedure RoundCornerOf(Control: TWinControl);  
191      procedure menuIndleveringClick(Sender: TObject);
192    
193    
194    
195    
196      //Nedarvet fra IParentForm
197      procedure LogMessage( msg : string);
198      procedure SetPrinterstatusText( txt: string; alert: boolean);
199      function GetFormObject() : TForm;
200    
     procedure PanelValg7Click(Sender: TObject);  
 // 20150310: slut  
201    
202    private    private
203      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 205  type
205      SkrivLog : String;      SkrivLog : String;
206      Sted : String;      Sted : String;
207      StedNavn : String;      StedNavn : String;
208      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlEKLoverforsel : String;      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,UrlIndleveringsPakkeManglendeScanninger,UrlEKLoverforsel : String;
209  // 29150330: start  
210      UrlEKLoverforselPakkeshop : String;      UrlEKLoverforselPakkeshop : String;
211  // 20150330: slut  
212      UrlFindPakketype, UrlSendPrograminfo: String;      UrlFindPakketype, UrlSendPrograminfo: String;
213      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;
214      ScanTjekkode : String;      ScanTjekkode : String;
215      ScanTjekkodeAutomatik : string;      ScanTjekkodeAutomatik : string;
216      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop : String;      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop, FarveIndlevering : String;
217      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop : String;      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop, TitelIndlevering : String;
218      LabelType : integer;  
219      AlarmLyd : String;      AlarmLyd : String;
220      ScannetOkLyd : String;      ScannetOkLyd : String;
221      ScannetOkStorLyd : String;      ScannetOkStorLyd : String;
222  // 20150317: start  
223      ScannetOkTilTjekkodeLyd : String;      ScannetOkTilTjekkodeLyd : String;
224  // 20150317: slut  
225      PrinterNavn : String;      PrinterNavn : String;
226      TjekPrinter : String;      TjekPrinter : String;
227      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;  
228      Org_RuteNummerST, Org_BoghandlerNavnST, Org_KommentarST : String;      Org_RuteNummerST, Org_BoghandlerNavnST, Org_KommentarST : String;
229      BladhusSted : Integer;      BladhusSted : Integer;
230      BladhusStedKode : Array of string;      BladhusStedKode : Array of string;
# Line 242  type Line 237  type
237      PakkeshopStregkode, PakkeshopTjekkode : String;      PakkeshopStregkode, PakkeshopTjekkode : String;
238      BoghandlerStregkode, BoghandlerTjekkode : String;      BoghandlerStregkode, BoghandlerTjekkode : String;
239      TjekUrls : String;      TjekUrls : String;
240        Config : TConfiguration;
241    
242    
243            function CheckSumModulo10(const data:string):string;          { used for EAN 8/13 }      LabelPrint: TLabelPrint;
244    
245      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 = '');
246      procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');  
247      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 = '');
248      procedure CheckCode();      procedure CheckCode();
249      procedure IndlesManglendeScanninger();      procedure IndlesManglendeScanninger();
# Line 255  type Line 252  type
252      procedure IndlesScanningLogFil();      procedure IndlesScanningLogFil();
253      procedure SkrivScanningLogFil(var tekst : string);      procedure SkrivScanningLogFil(var tekst : string);
254      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;
255        procedure VisAlarmSkaerm(strMessage: string);
256    
257    public    public
258      { Public declarations }      { Public declarations }
259    end;    end;
260    
261    
262  var  var
263    MainForm: TMainForm;    MainForm: TMainForm;
264    
# Line 273  var Line 272  var
272  implementation  implementation
273  {$R *.dfm}  {$R *.dfm}
274    
275  function TMainForm.TColorToHex(Color : TColor) : string;  
276  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;  
277    
278  procedure TMainForm.InitForm(Farve,Titel,Url : String);  procedure TMainForm.InitForm(Farve,Titel,Url : String);
279  begin  begin
280    
 // 20150309: startr  
281      StaticTextManglendePakker.Caption := '';      StaticTextManglendePakker.Caption := '';
282  // 20150309: slut  
283    
284      PanelValg1.Color := clBtnFace;      PanelValg1.Color := clBtnFace;
285      if PanelValg1.Enabled = true then      if PanelValg1.Enabled = true then
# Line 340  begin Line 323  begin
323        PanelValg7.Font.Color := clWindowText;        PanelValg7.Font.Color := clWindowText;
324      end;      end;
325    
326      OpdaterListenButton01.Enabled := false;      BtnOpdaterListen.Enabled := false;
327    
328      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
329      begin      begin
# Line 394  begin Line 377  begin
377    
378      StartScreen();      StartScreen();
379      MainForm.Caption := Titel;      MainForm.Caption := Titel;
380      MainForm.Color := HexToTColor(Farve);      MainForm.Color := TUtils.HexToTColor(Farve);
381      MainForm.Farve := Farve;      MainForm.Farve := Farve;
382      MainForm.Titel := Titel;      MainForm.Titel := Titel;
383      MainForm.Url := Url;      MainForm.Url := Url;
# Line 409  begin Line 392  begin
392      else      else
393        PakkeshopText1.Visible := false;        PakkeshopText1.Visible := false;
394    
395      CheckBox3.Checked := false;      chkScanTjekkode.Checked := false;
396      CheckBox3.Enabled := false;      chkScanTjekkode.Enabled := false;
397      Scanogstjekkoden1.Enabled := false;      Scanogstjekkoden1.Enabled := false;
398    
399      if (Scanningtype = '1') or (Scanningtype = '5') then      if (Scanningtype = '1') or (Scanningtype = '5') then
400      begin      begin
401        if (ScanTjekkode = '1') then        if (ScanTjekkode = '1') then
402        begin        begin
403          CheckBox3.Checked := true;          chkScanTjekkode.Checked := true;
404          CheckBox3.Enabled := true;          chkScanTjekkode.Enabled := true;
405          Scanogstjekkoden1.Enabled := true;          Scanogstjekkoden1.Enabled := true;
406        end        end
407        else        else
408        begin        begin
409          CheckBox3.Checked := false;          chkScanTjekkode.Checked := false;
410          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
411          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
412        end;        end;
413      end;      end;
414    
415      if Automatisktjekkodestyring1.Checked then      if Automatisktjekkodestyring1.Checked then
416      begin      begin
417        CheckBox3.Enabled := false;        chkScanTjekkode.Enabled := false;
418        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
419      end;      end;
420    
# Line 454  begin Line 437  begin
437          end          end
438          else          else
439          begin          begin
440            logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
441          end;          end;
442          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
443        end        end
444        else        else
445        begin        begin
446          logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';          logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
447          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
448        end;        end;
449      end;      end;
450    
451    
452  end;  end;
453    
454  procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);  procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);
# Line 472  begin Line 456  begin
456    
457    if Altidprintepakkelabel1.Checked then    if Altidprintepakkelabel1.Checked then
458    begin    begin
459       CheckBox2.Checked := true;       chkAltidPrintLabel.Checked := true;
460    end    end
461    else    else
462    begin    begin
463       CheckBox2.Checked := false;       chkAltidPrintLabel.Checked := false;
464    end;    end;
465    
466  end;  end;
# Line 490  procedure TMainForm.Automatisktjekkodest Line 474  procedure TMainForm.Automatisktjekkodest
474  begin  begin
475    if Automatisktjekkodestyring1.Checked then    if Automatisktjekkodestyring1.Checked then
476    begin    begin
477       CheckBox3.Enabled := false;       chkScanTjekkode.Enabled := false;
478       Scanogstjekkoden1.Enabled := false;       Scanogstjekkoden1.Enabled := false;
479    end    end
480    else    else
481    begin    begin
482       CheckBox3.Enabled := true;       chkScanTjekkode.Enabled := true;
483       Scanogstjekkoden1.Enabled := true;       Scanogstjekkoden1.Enabled := true;
484    end;    end;
485    
# Line 503  end; Line 487  end;
487    
488  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);
489  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;  
 *)  
490  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
491  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
492       AutomatiskValg1.Checked := true;       AutomatiskValg1.Checked := true;
493       PanelValgA.Color := clGreen;       PanelValgA.Color := clGreen;
494       PanelValgA.Font.Color := clWhite;       PanelValgA.Font.Color := clWhite;
 // 20150317: slut  
495  end;  end;
496    
497    
498    //InitForm kaldes før FormCreate
499  procedure TMainForm.FormCreate(Sender: TObject);  procedure TMainForm.FormCreate(Sender: TObject);
500  const  const
501    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
502  var  var
   printerInd : integer;  
   i : Integer;  
 // 20150310: start  
503    gemScanningtype : String;    gemScanningtype : String;
 // 20150310: slut  
504    
505  begin  begin
506    
507    
508    // Initierer nogle variabler    // Initierer nogle variabler
509    BladhusSted := 00;    BladhusSted := 00;
510    Application.ShowHint := True;    Application.ShowHint := True;
511    PrinterstatusStaticText1.Caption := '';    PrinterstatusStaticText1.Caption := '';
512    PrinterstatusStaticText1.Color := MainForm.Color;    PrinterstatusStaticText1.Color := MainForm.Color;
513  // 20150306: start  
514    PakkeshopNulstil.BringToFront;    btnNulstil.BringToFront;
515  // 20150306: slut  
516  // 20150310: start    TUtils.RoundCornerOf(PanelManglendePakker1);
517    RoundCornerOf(PanelManglendePakker1);    TUtils.RoundCornerOf(PanelManglendePakker2);
518    RoundCornerOf(PanelManglendePakker2);    TUtils.RoundCornerOf(PanelManglendePakker3);
519    RoundCornerOf(PanelManglendePakker3);    TUtils.RoundCornerOf(PanelManglendePakker4);
520    RoundCornerOf(PanelManglendePakker4);    TUtils.RoundCornerOf(PanelManglendePakker5);
521    RoundCornerOf(PanelManglendePakker5);    TUtils.RoundCornerOf(PanelManglendePakker6);
522    RoundCornerOf(PanelManglendePakker6);  
 // 20150310: slut  
523    
524    // 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
525    if DirectoryExists('Docs') then    if DirectoryExists('Docs') then
# Line 565  begin Line 532  begin
532    MainForm.ClientWidth := 1000;    MainForm.ClientWidth := 1000;
533    MainForm.ClientHeight := 750;    MainForm.ClientHeight := 750;
534    
535      Config := TConfiguration.Create();
536      Config.ReadFromInifile( TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) );    //ToDo: clean up duplicate ini ref
537      Config.Sted := Sted;
538    
539    // Læser parametre fra ini filen    // Læser parametre fra ini filen
540    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do
541    try    try
542    
543    
544      SkrivLog := ReadString('Settings','SkrivLog','0');      SkrivLog := ReadString('Settings','SkrivLog','0');
545      Sted := ReadString('Settings','Sted','');      Sted := ReadString('Settings','Sted','');
546      StedNavn := ReadString('Settings','Stednavn','');      StedNavn := ReadString('Settings','Stednavn','');
# Line 579  begin Line 552  begin
552      UrlBudlevering := ReadString('Settings','UrlBudlevering','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&leveringstype=%s&pakkestorrelse=%s');      UrlBudlevering := ReadString('Settings','UrlBudlevering','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&leveringstype=%s&pakkestorrelse=%s');
553      UrlManglendeScanninger := ReadString('Settings','UrlManglendeScanninger','http://omdeling.info/webservices/bogpakkekontrol/bogpakkemanglendescanninger.php?sted=%s&type=%s');      UrlManglendeScanninger := ReadString('Settings','UrlManglendeScanninger','http://omdeling.info/webservices/bogpakkekontrol/bogpakkemanglendescanninger.php?sted=%s&type=%s');
554      UrlEKLoverforsel := ReadString('Settings','UrlEKLoverforsel','http://omdeling.info/webservices/bogpakkekontrol/bogpakkertilekl.php?sted=%s');      UrlEKLoverforsel := ReadString('Settings','UrlEKLoverforsel','http://omdeling.info/webservices/bogpakkekontrol/bogpakkertilekl.php?sted=%s');
555  // 20150330: start  
556      UrlEKLoverforselPakkeshop := ReadString('Settings','UrlEKLoverforselPakkeshop','http://omdeling.info/webservices/pakkeshop/pakkertilekl.php?sted=%s');      UrlEKLoverforselPakkeshop := ReadString('Settings','UrlEKLoverforselPakkeshop','http://omdeling.info/webservices/pakkeshop/pakkertilekl.php?sted=%s');
557  // 20150330: slut  
558      UrlPakkeshoplevering := ReadString('Settings','UrlPakkeshoplevering','http://omdeling.info/webservices/pakkeshop/pakkekontrol.php?sted=%s&stregkode=%s&tjekkode=%s');      UrlPakkeshoplevering := ReadString('Settings','UrlPakkeshoplevering','http://omdeling.info/webservices/pakkeshop/pakkekontrol.php?sted=%s&stregkode=%s&tjekkode=%s');
559      UrlReturPakkeshop := ReadString('Settings','UrlReturPakkeshop','http://omdeling.info/webservices/pakkeshop/returpakkekontrol.php?sted=%s&stregkode=%s');      UrlReturPakkeshop := ReadString('Settings','UrlReturPakkeshop','http://omdeling.info/webservices/pakkeshop/returpakkekontrol.php?sted=%s&stregkode=%s');
560      UrlPakkeshopManglendeScanninger := ReadString('Settings','UrlPakkeshopManglendeScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendescanninger.php?sted=%s');      UrlPakkeshopManglendeScanninger := ReadString('Settings','UrlPakkeshopManglendeScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendescanninger.php?sted=%s');
561      UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s');      UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s');
562      LabelType := ReadInteger('Settings','LabelType',1);  
563    
564        UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');
565        UrlIndleveringsPakkeManglendeScanninger := ReadString('Settings', 'UrlIndleveringsPakkeManglendeScanninger','http://omdeling.info/webservices/pakkeshop/IndleveringsPakkeManglendeScanninger.php?sted=%s');
566    
567    
568    
569      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');      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 639  begin Line 624  begin
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;        Automatisktjekkodestyring1.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_DBK}
684        SpecialVersionSted := 'DBK';
685    {$EndIf}
686    {$IfDef STED_FD}
687        SpecialVersionSted := 'FD';
688    {$EndIf}
689    {$IfDef STED_NS}
690        SpecialVersionSted := 'NS';
691    {$EndIf}
692    
693    
694      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
695      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)
696      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
# Line 775  begin Line 706  begin
706      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)
707      // ændrer vi Sted og Scanningtype her:      // ændrer vi Sted og Scanningtype her:
708    
 // 20150313: start  
709      if SpecialVersionSted = 'NS' then      if SpecialVersionSted = 'NS' then
710      begin      begin
711         SpecialVersionSted := '01';         SpecialVersionSted := '01';
# Line 786  begin Line 716  begin
716         SpecialVersionSted := '03';         SpecialVersionSted := '03';
717         SpecialVersionScanningtype := '4';         SpecialVersionScanningtype := '4';
718      end;      end;
 // 20150313: slut  
719    
720      if SpecialVersionSted = 'BK' then      if SpecialVersionSted = 'BK' then
721      begin      begin
# Line 797  begin Line 726  begin
726        PanelValg2.Font.Color := clInactiveCaption;        PanelValg2.Font.Color := clInactiveCaption;
727        PanelValg3.Enabled := false;        PanelValg3.Enabled := false;
728        PanelValg3.Font.Color := clInactiveCaption;        PanelValg3.Font.Color := clInactiveCaption;
729        PanelValg6.Enabled := false;        //PanelValg6.Enabled := false;
730        PanelValg6.Font.Color := clInactiveCaption;        //PanelValg6.Font.Color := clInactiveCaption;
731    
732       // her skal vi også disable de menupunkter BK ikke kan bruge       // her skal vi også disable de menupunkter BK ikke kan bruge
733        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
734        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
735        Returpakkerfrapakkeshop1.Enabled := false;  
736          //Returpakkerfrapakkeshop1.Enabled := false;
737    
738        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
739        begin        begin
740           Scanningtype := '1';           Scanningtype := '1';
# Line 826  begin Line 758  begin
758        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
759        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
760        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
761          PanelValg7.Enabled := false;
762          PanelValg7.Font.Color := clInactiveCaption;
763    
764       // her skal vi også disable de menupunkter DBK ikke kan bruge       // her skal vi også disable de menupunkter DBK ikke kan bruge
765        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
766        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
767  // 20150317: start  
768        Pakkeshoplevering1.Enabled := false;        Pakkeshoplevering1.Enabled := false;
769        Returpakkerfrapakkeshop1.Enabled := false;        Returpakkerfrapakkeshop1.Enabled := false;
770  // 20150317: slut  
771        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
772        begin        begin
773           Scanningtype := '1';           Scanningtype := '1';
# Line 862  begin Line 797  begin
797        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
798        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
799        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
800          PanelValg7.Enabled := false;
801          PanelValg7.Font.Color := clInactiveCaption;
802       // her skal vi også disable de menupunkter Bladhusene (01, 02, 03 og 04) ikke kan bruge       // her skal vi også disable de menupunkter Bladhusene (01, 02, 03 og 04) ikke kan bruge
803  // 20150317: start  
804        Automatiskvalg1.Enabled := false;        Automatiskvalg1.Enabled := false;
805  // 20150317: slut  
806        Pakkernormal1.Enabled := false;        Pakkernormal1.Enabled := false;
807        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
808        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
# Line 957  begin Line 894  begin
894             RutenummerST.Caption := '';             RutenummerST.Caption := '';
895             BoghandlerNavnST.Caption := 'Fejl i urls';             BoghandlerNavnST.Caption := 'Fejl i urls';
896             KommentarST.Caption := 'Se log vinduet';             KommentarST.Caption := 'Se log vinduet';
897             PakkeshopNulstil.Visible := true;             btnNulstil.Visible := true;
898             exit;             exit;
899          end;          end;
900      end      end
# Line 1000  begin Line 937  begin
937      if Pakketype = '1' then      if Pakketype = '1' then
938      begin      begin
939        Storepakker1.Checked := true;        Storepakker1.Checked := true;
940        RadioButton1.Checked := true;        radioStorPakke.Checked := true;
941      end      end
942      else      else
943      begin      begin
944        Smpakker1.Checked := true;        Smpakker1.Checked := true;
945        RadioButton2.Checked := true;        radioLillePakke.Checked := true;
946      end;      end;
947    
948      if TestFunktionen = '1' then      if TestFunktionen = '1' then
# Line 1045  begin Line 982  begin
982        ScannetOkStorLyd := '';        ScannetOkStorLyd := '';
983      end;      end;
984    
985  // 20150317: start  
986      if not FileExists(ScannetOkTilTjekkodeLyd) then      if not FileExists(ScannetOkTilTjekkodeLyd) then
987      begin      begin
988        ScannetOkTilTjekkodeLyd := '';        ScannetOkTilTjekkodeLyd := '';
989      end;      end;
 // 20150317: slut  
990    
     if (PrinterNavn <> '') then  
     begin  
        printerInd := Printer.Printers.IndexOf(printerNavn);  
        if printerInd >= 0 then  
           Printer.PrinterIndex := printerInd;  
     end;  
991    
992      CheckPrintQue('Opstart');  
993    
994        LabelPrint := TLabelPrint.Create( self, Config, PrinterNavn );
995        LabelPrint.CheckPrintQue('Opstart', PrinterNavn);
996    
997    finally    finally
998      Free;      Free;
# Line 1083  begin Line 1016  begin
1016          InitBladhus();          InitBladhus();
1017        end;        end;
1018    
1019  // 20150310: start  
1020      // Opbygger PanelManglendePakker information      // Opbygger PanelManglendePakker information
1021      gemScanningtype := Scanningtype;      gemScanningtype := Scanningtype;
1022    
# Line 1124  begin Line 1057  begin
1057      end;      end;
1058    
1059      Scanningtype := gemScanningtype;      Scanningtype := gemScanningtype;
 // 20150310: slut  
1060    
1061      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');
1062      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion('',''));      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', TUtils.Sto_GetFmtFileVersion(''));
1063    
1064  end;  end;
1065    
# Line 1145  var Line 1077  var
1077    BoghandlerNavn : String;    BoghandlerNavn : String;
1078    Koreliste : String;    Koreliste : String;
1079    PrintNyLabel : Boolean;    PrintNyLabel : Boolean;
   List1msg : String;  
1080    pakkeErScannet : Integer;    pakkeErScannet : Integer;
1081    pakkeForkertSted : Integer;    pakkeForkertSted : Integer;
1082    tjekkodeMangler : Integer;    tjekkodeMangler : Integer;
# Line 1170  begin Line 1101  begin
1101      ClipboardData := Clipboard.AsText;      ClipboardData := Clipboard.AsText;
1102      numberString := ClipboardData;      numberString := ClipboardData;
1103      Val(numberString, float, errorPos);      Val(numberString, float, errorPos);
1104  // 20150311: start  
1105  //    if (ClipboardData <> '') and (errorPos = 0) then      //    if (ClipboardData <> '') and (errorPos = 0) then
1106      if (ClipboardData <> '') and (errorPos = 0)      if (ClipboardData <> '') and (errorPos = 0)
1107      or (NumberString = 'Nulstil')      or (NumberString = 'Nulstil')
1108      or (NumberString = 'Indtast kundenummer')      or (NumberString = 'Indtast kundenummer')
# Line 1186  begin Line 1117  begin
1117      or (NumberString = 'DAO DIREKTE')      or (NumberString = 'DAO DIREKTE')
1118      or (NumberString = 'DAO PAKKESHOP')      or (NumberString = 'DAO PAKKESHOP')
1119      or (NumberString = 'Retur fra pakkeshop') then      or (NumberString = 'Retur fra pakkeshop') then
1120  // 20150311: slut  
1121      begin      begin
1122        Stregkode := Stregkode + ClipboardData;        Stregkode := Stregkode + ClipboardData;
1123        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1199  begin Line 1130  begin
1130    
1131    if Key = #13 then     // Enter    if Key = #13 then     // Enter
1132    begin    begin
 // 20150306: start  
1133      if (Length(Trim(Stregkode)) = 0) then      if (Length(Trim(Stregkode)) = 0) then
1134      begin      begin
1135        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );
1136        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;  
1137        exit;        exit;
1138      end;      end;
 // 20150306: slut  
1139    
 // 20150311: start  
1140      if StregKode = 'Nulstil' then      if StregKode = 'Nulstil' then
1141      begin      begin
1142         PakkeshopNulstil.Click();         btnNulstil.Click();
1143         exit;         exit;
1144      end;      end;
1145    
1146      if PakkeshopNulstil.Visible then      if btnNulstil.Visible then
1147      begin      begin
1148         PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'HUSK at klikke Nulstil før ny scanning...' );
1149  // 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  
1150         exit;         exit;
1151      end;      end;
1152    
1153      if StregKode = 'Lille pakke' then      if StregKode = 'Lille pakke' then
1154      begin      begin
1155         if RadioButton2.Enabled = true then         if radioLillePakke.Enabled = true then
1156         begin         begin
1157            InitLillePakke();            InitLillePakke();
1158         end         end
1159         else         else
1160         begin         begin
1161          //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;  
1162         end;         end;
1163         Stregkode := '';         Stregkode := '';
1164         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1268  begin Line 1167  begin
1167    
1168      if StregKode = 'Stor pakke' then      if StregKode = 'Stor pakke' then
1169      begin      begin
1170         if RadioButton1.Enabled = true then         if radioStorPakke.Enabled = true then
1171         begin         begin
1172            InitStorPakke();            InitStorPakke();
1173         end         end
1174         else         else
1175         begin         begin
1176          //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;  
1177         end;         end;
1178         Stregkode := '';         Stregkode := '';
1179         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1294  begin Line 1182  begin
1182    
1183      if StregKode = 'Indtast kundenummer' then      if StregKode = 'Indtast kundenummer' then
1184      begin      begin
1185         if CheckBox1.Enabled = true then         if chkSporgEfterKunde.Enabled = true then
1186         begin         begin
1187           if (CheckBox1.State = cbChecked) then           if (chkSporgEfterKunde.State = cbChecked) then
1188           begin           begin
1189            CheckBox1.State := cbUnchecked;            chkSporgEfterKunde.State := cbUnchecked;
1190           end           end
1191           else           else
1192           begin           begin
1193            CheckBox1.State := cbChecked;            chkSporgEfterKunde.State := cbChecked;
1194           end;           end;
1195         end         end
1196         else         else
1197         begin         begin
1198          //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;  
1199         end;         end;
1200         Stregkode := '';         Stregkode := '';
1201         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1327  begin Line 1204  begin
1204    
1205      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
1206      begin      begin
1207        if CheckBox3.Enabled = true then        if chkScanTjekkode.Enabled = true then
1208        begin        begin
1209           if (CheckBox3.State = cbChecked) then           if (chkScanTjekkode.State = cbChecked) then
1210           begin           begin
1211            CheckBox3.State := cbUnchecked;            chkScanTjekkode.State := cbUnchecked;
1212           end           end
1213           else           else
1214           begin           begin
1215            CheckBox3.State := cbChecked;            chkScanTjekkode.State := cbChecked;
1216           end;           end;
1217        end        end
1218        else        else
1219        begin        begin
1220          //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;  
1221        end;        end;
1222        Stregkode := '';        Stregkode := '';
1223        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1366  begin Line 1232  begin
1232         end         end
1233         else         else
1234         begin         begin
1235          //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;  
1236         end;         end;
1237         Stregkode := '';         Stregkode := '';
1238         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1239         exit;         exit;
1240      end;      end;
1241    
1242  // 20150323: start  
 //    if StregKode = 'DAO NAT X-PRESS' then  
1243      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  
1244      begin      begin
1245         if (PanelValg1.Enabled = true) then         if (PanelValg1.Enabled = true) then
1246         begin         begin
# Line 1395  begin Line 1248  begin
1248         end         end
1249         else         else
1250         begin         begin
1251          //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;  
1252         end;         end;
1253         Stregkode := '';         Stregkode := '';
1254         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1421  begin Line 1263  begin
1263         end         end
1264         else         else
1265         begin         begin
1266          //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;  
1267         end;         end;
1268         Stregkode := '';         Stregkode := '';
1269         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1447  begin Line 1278  begin
1278         end         end
1279         else         else
1280         begin         begin
1281          //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;  
1282         end;         end;
1283         Stregkode := '';         Stregkode := '';
1284         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1473  begin Line 1293  begin
1293         end         end
1294         else         else
1295         begin         begin
1296          //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;  
1297         end;         end;
1298         Stregkode := '';         Stregkode := '';
1299         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1499  begin Line 1308  begin
1308         end         end
1309         else         else
1310         begin         begin
1311          //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;  
1312         end;         end;
1313         Stregkode := '';         Stregkode := '';
1314         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1525  begin Line 1323  begin
1323         end         end
1324         else         else
1325         begin         begin
1326          //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;  
1327         end;         end;
1328         Stregkode := '';         Stregkode := '';
1329         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1330         exit;         exit;
1331      end;      end;
1332  // 20150311: slut  
1333    
1334      if (Length(Stregkode) > 8) then      if (Length(Stregkode) > 8) then
1335      begin      begin
# Line 1590  begin Line 1377  begin
1377        Pakkescanningtype := Scanningtype;        Pakkescanningtype := Scanningtype;
1378      end;      end;
1379    
1380      if (   (Pakkescanningtype = '1') and (PanelValg1.Enabled = false)      if (   ( (Pakkescanningtype = '1') and (PanelValg1.Enabled = false) )
1381          or (Pakkescanningtype = '2') and (PanelValg2.Enabled = false)          or ( (Pakkescanningtype = '2') and (PanelValg2.Enabled = false) )
1382          or (Pakkescanningtype = '3') and (PanelValg3.Enabled = false)          or ( (Pakkescanningtype = '3') and (PanelValg3.Enabled = false) )
1383          or (Pakkescanningtype = '4') and (PanelValg4.Enabled = false)          or ( (Pakkescanningtype = '4') and (PanelValg4.Enabled = false) )
1384          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)          or ( (Pakkescanningtype = '5') and (PanelValg5.Enabled = false) )
1385          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then          or ( (Pakkescanningtype = '6') and (PanelValg6.Enabled = false) ) ) then
1386      begin   // Her skal komme en alarm og rød skærm      begin   // Her skal komme en alarm og rød skærm
1387         PlaySound(PWideChar(AlarmLyd));          VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1388         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  
1389         exit;         exit;
1390      end;      end;
1391    
1392      if Automatiskvalg1.Checked and (Length(Stregkode) > 8) then      if (Automatiskvalg1.Checked and (Length(Stregkode) > 8) ) then
1393      begin      begin
1394        GemStregkode := Stregkode;        GemStregkode := Stregkode;
1395        if Pakketype = 'NatXpress' then        if Pakketype = 'NatXpress' then
# Line 1626  begin Line 1401  begin
1401              end;              end;
1402            end            end
1403        // Retur kan ikke scannes med 'Automatisk valg'        // Retur kan ikke scannes med 'Automatisk valg'
1404  (*  
       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  
 *)  
1405        else if Pakketype = 'Direkte' then        else if Pakketype = 'Direkte' then
1406            begin            begin
1407              if Scanningtype <> '4' then              if Scanningtype <> '4' then
# Line 1661  begin Line 1419  begin
1419              end;              end;
1420            end            end
1421        // Retur kan ikke scannes med 'Automatisk valg'        // Retur kan ikke scannes med 'Automatisk valg'
1422  (*  
       else if Pakketype = 'PakkeshopRetur' then  
           begin  
             if Scanningtype <> '6' then  
             begin  
               Scanningtype := '6';  
               InitReturFraPakkeshop();  
             end;  
           end  
 *)  
1423        else        else
1424            begin   // Her skal komme en alarm og rød skærm            begin
1425               PlaySound(PWideChar(AlarmLyd));            // Her skal komme en alarm og rød skærm
1426               List1msg := 'Pakken kan ikke scannes med automatisk valg';              //VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1427               ListBox1.Items.Insert(0,List1Msg);               VisAlarmSkaerm( Stregkode + ' kan ikke bruges med automatisk valg' );
1428               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  
1429               exit;               exit;
1430            end;            end;
1431        Stregkode := GemStregkode;        Stregkode := GemStregkode;
1432      end      end
1433      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then
1434      begin      begin
1435        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );
1436        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  
1437        exit;        exit;
1438      end;      end;
1439    
# Line 1714  begin Line 1441  begin
1441      begin      begin
1442        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then
1443        begin        begin
         PlaySound(PWideChar(AlarmLyd));  
         List1msg := 'Pakke findes som pakketype: ' + Pakketype;  
         ListBox1.Items.Insert(0,List1Msg);  
         MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
         KommentarST.Caption := List1msg;  
         PakkeshopNulstil.Visible := true;  
 // 20150312: start  
         StregKode := '';  
         StregkodeST.Caption := StregKode;  
 // 20150312: slut  
         exit;  
       end;  
     end;  
   
 // 20150311: start  
 (*  
     if StregKode = 'Nulstil' then  
     begin  
        PakkeshopNulstil.Click();  
        exit;  
     end;  
   
     if PakkeshopNulstil.Visible then  
     begin  
        PlaySound(PWideChar(AlarmLyd));  
        List1msg := 'HUSK at trykke Nulstil før ny scanning...';  
        ListBox1.Items.Insert(0,List1Msg);  
        MainForm.Color := clRed;  
        KommentarST.Caption := List1msg;  
        exit;  
     end;  
   
     if StregKode = 'Lille pakke' then  
     begin  
        InitLillePakke();  
        exit;  
     end;  
1444    
1445      if StregKode = 'Stor pakke' then          VisAlarmSkaerm( 'Pakke findes som pakketype: ' + Pakketype );
     begin  
        InitStorPakke();  
        exit;  
     end;  
1446    
1447      if StregKode = 'Indtast kundenummer' then          exit;
1448      begin        end;
        if (CheckBox1.State = cbChecked) then  
        begin  
         CheckBox1.State := cbUnchecked;  
        end  
        else  
        begin  
         CheckBox1.State := cbChecked;  
        end;  
        Stregkode := '';  
        exit;  
1449      end;      end;
1450    
     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  
1451    
1452    
1453      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then
1454      begin      begin
1455        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
1456        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do
1457        begin        begin
1458          if (Stregkode=stregkoderMedTjekkodeArray[i]) then          if (Stregkode=stregkoderMedTjekkodeArray[i]) then
1459          begin          begin
1460              CheckBox3.Checked := true;              chkScanTjekkode.Checked := true;
1461              Scanogstjekkoden1.Checked := true;              Scanogstjekkoden1.Checked := true;
1462          end;          end;
1463        end;        end;
# Line 1812  begin Line 1469  begin
1469             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1470             BoghandlerTjekkode := '';             BoghandlerTjekkode := '';
1471             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1472             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1473             Stregkode := '';             Stregkode := '';
1474             InitScreen();             InitScreen();
1475        end        end
# Line 1824  begin Line 1481  begin
1481             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1482             BoghandlerTjekkode := '-1';             BoghandlerTjekkode := '-1';
1483             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1484             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1485             Stregkode := '';             Stregkode := '';
1486             InitScreen();             InitScreen();
1487        end        end
# Line 1836  begin Line 1493  begin
1493              PakkeshopStregkode := Stregkode;              PakkeshopStregkode := Stregkode;
1494              BoghandlerStregkode := Stregkode;              BoghandlerStregkode := Stregkode;
1495              PakkeshopText1.Caption := 'Tjekkode';              PakkeshopText1.Caption := 'Tjekkode';
1496  // 20150317: start  
1497              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));
1498  // 20150317: slut  
1499             end             end
1500            else            else
1501             begin             begin
1502                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;  
1503             end;             end;
1504            Stregkode := '';            Stregkode := '';
1505            InitScreen();            InitScreen();
# Line 1861  begin Line 1512  begin
1512             BoghandlerTjekkode := Stregkode;             BoghandlerTjekkode := Stregkode;
1513             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1514             if (PakkeshopLevering1.Checked) then             if (PakkeshopLevering1.Checked) then
1515                MainForm.Color := HexToTColor(FarvePakkeshoplevering);                MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering);
1516             if (Pakkernormal1.Checked) then             if (Pakkernormal1.Checked) then
1517                MainForm.Color := HexToTColor(FarveNormal);                MainForm.Color := TUtils.HexToTColor(FarveNormal);
1518             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1519           end           end
1520          else          else
1521           begin           begin
1522                if (PakkeshopLevering1.Checked) then                if (PakkeshopLevering1.Checked) then
1523                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);
1524                if (Pakkernormal1.Checked) then                if (Pakkernormal1.Checked) then
1525                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);
1526                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  
1527                StregKode := '';                StregKode := '';
1528                StregkodeST.Caption := StregKode;                StregkodeST.Caption := StregKode;
1529  // 20150323: slut  
1530                exit;                exit;
1531           end;           end;
1532          Stregkode := '';          Stregkode := '';
# Line 1891  begin Line 1535  begin
1535    
1536      if not PakkeshopLevering1.Checked and not Pakkernormal1.Checked or (PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '')) or (Pakkernormal1.Checked and (Scanogstjekkoden1.Checked and (BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked)) then      if not PakkeshopLevering1.Checked and not Pakkernormal1.Checked or (PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '')) or (Pakkernormal1.Checked and (Scanogstjekkoden1.Checked and (BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked)) then
1537      begin      begin
1538    
1539         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then
1540            StregKode := PakkeshopStregkode;            StregKode := PakkeshopStregkode;
1541         if Pakkernormal1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then         if Pakkernormal1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then
# Line 1903  begin Line 1548  begin
1548            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her
1549            if Rutenummer = 'sql fejl' then            if Rutenummer = 'sql fejl' then
1550            begin   // Her skal komme en alarm og rød skærm            begin   // Her skal komme en alarm og rød skærm
1551               PlaySound(PWideChar(AlarmLyd));               VisAlarmSkaerm( 'SQL fejl: ' + Kommentar );
1552               //List1msg := 'SQL fejl: ' + Kommentar;  
              //ListBox1.Items.Insert(0,List1Msg);  
              MainForm.Color := clRed;  
              //KommentarST.Caption := List1msg;  
              PakkeshopNulstil.Visible := true;  
1553              exit;              exit;
1554            end;            end;
1555            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then
# Line 1928  begin Line 1569  begin
1569              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then
1570              begin              begin
1571                PlaySound(PWideChar(AlarmLyd));                PlaySound(PWideChar(AlarmLyd));
1572                PakkeshopNulstil.Visible := true;                btnNulstil.Visible := true;
1573                MainForm.Color := clRed;                MainForm.Color := clRed;
1574              end;              end;
1575           end;           end;
1576            if ( Pakkernormal1.Checked and (pakkeErScannet = 0) and (pakkeForkertSted = 0) and (tjekkodemangler = 0) and (RuteNummerST.Caption <> 'Ukendt') ) or (Copy(Kommentar,1,2) = 'Ok') then            if ( Pakkernormal1.Checked and (pakkeErScannet = 0) and (pakkeForkertSted = 0) and (tjekkodemangler = 0) and (RuteNummerST.Caption <> 'Ukendt') ) or (Copy(Kommentar,1,2) = 'Ok') then
1577            begin            begin
1578              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1579              if Storepakker1.Checked then              if Storepakker1.Checked then
1580              begin              begin
1581                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1943  begin Line 1584  begin
1584              begin              begin
1585                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1586              end;              end;
1587              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1588            end            end
1589            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then
1590            begin            begin
1591              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1592              if Storepakker1.Checked then              if Storepakker1.Checked then
1593              begin              begin
1594                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1956  begin Line 1597  begin
1597              begin              begin
1598                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1599              end;              end;
1600              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1601            end            end
1602            else if Copy(Kommentar,1,8) = 'OPRETTET' then            else if Copy(Kommentar,1,8) = 'OPRETTET' then
1603            begin            begin
1604              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;  
1605            end            end
1606            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'
1607            begin            begin
1608            end            end
1609            else            else
1610            begin            begin
1611              MainForm.Color := clRed;              VisAlarmSkaerm('');
             PlaySound(PWideChar(AlarmLyd));  
             PakkeshopNulstil.Visible := true;  
1612            end;            end;
1613           if not PakkeshopNulstil.Visible then  
1614             if not btnNulstil.Visible then
1615            begin            begin
1616  // 20150310: start  
 //            SletStregkodelinieFraListboks2(StregKode);  
 // 20150310: slut  
1617              If (Budlevering1.Checked) then              If (Budlevering1.Checked) then
1618              begin              begin
1619                if Storepakker1.Checked then                if Storepakker1.Checked then
# Line 1993  begin Line 1627  begin
1627                InitLillePakke();                InitLillePakke();
1628              end;              end;
1629            end;            end;
1630  // 20150310: start  
1631            SletStregkodelinieFraListboks2(StregKode);            SletStregkodelinieFraListboks2(StregKode);
1632  // 20150310: slut  
1633            PakkeshopStregkode := '';            PakkeshopStregkode := '';
1634            PakkeshopTjekkode := '';            PakkeshopTjekkode := '';
1635            BoghandlerStregkode := '';            BoghandlerStregkode := '';
# Line 2026  begin Line 1660  begin
1660    
1661    Key := #0;    Key := #0;
1662    
1663  end;  end; //End of OnKeyPress
1664    
1665  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
1666  const  const
# Line 2063  end; Line 1697  end;
1697    
1698  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);
1699  var  var
 // 20150309: start  
 //  i:integer;  
1700    i : Integer;    i : Integer;
1701    wrkAntal : String;    wrkAntal : String;
1702    wrkAntalIdag, wrkAntalSenere : Integer;    wrkAntalIdag, wrkAntalSenere : Integer;
1703  // 20150309: slut  
1704    
1705  begin  begin
1706      if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked then      if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked or menuIndlevering.Checked then
1707      begin      begin
1708        for i := ListBox2.items.count-1 downto 0 do        for i := ListBox2.items.count-1 downto 0 do
1709          if pos(StregKode,ListBox2.items[i]) <> 0 then          if pos(StregKode,ListBox2.items[i]) <> 0 then
1710          begin          begin
1711  // 20150309: start  
1712            // Ajourføring af tæller for manglende pakker (scanninger)            // Ajourføring af tæller for manglende pakker (scanninger)
1713            wrkAntal := StaticTextManglendePakker.Caption;            wrkAntal := StaticTextManglendePakker.Caption;
1714            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere
1715            begin            begin
1716              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen
1717              wrkAntalIdag := StrToInt(split(wrkAntal, '/', 2));              wrkAntalIdag := StrToInt( TUtils.split(wrkAntal, '/', 2));
1718  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));
1719  //            ShowMessage(SPLIT('data/another/','/',3));  //            ShowMessage(SPLIT('data/another/','/',3));
1720  //            ShowMessage(SPLIT('data/another','/',3));  //            ShowMessage(SPLIT('data/another','/',3));
1721              wrkAntalSenere := StrToInt(split(wrkAntal, '/', 3));              wrkAntalSenere := StrToInt( TUtils.split(wrkAntal, '/', 3));
1722            end            end
1723            else     // kun idag            else     // kun idag
1724            begin            begin
# Line 2112  begin Line 1744  begin
1744            begin            begin
1745              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);
1746            end;            end;
 // 20150309: slut  
1747    
 // 20150310: start  
1748            if (Scanningtype = '1') then            if (Scanningtype = '1') then
1749            begin            begin
1750              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
# Line 2192  begin Line 1822  begin
1822                PanelManglendePakker6.Visible := false;                PanelManglendePakker6.Visible := false;
1823              end;              end;
1824            end;            end;
1825  // 20150310: slut  
1826            ListBox2.items.delete(i);            ListBox2.items.delete(i);
1827          end;          end;
1828      end;      end;
# Line 2219  begin Line 1849  begin
1849  end;  end;
1850    
1851  procedure TMainForm.InitBladhus();  procedure TMainForm.InitBladhus();
 var  
   LogFilnavn : string;  
1852    
1853  begin  begin
1854    Altidprintepakkelabel1.Enabled := false;    Altidprintepakkelabel1.Enabled := false;
# Line 2230  begin Line 1858  begin
1858    Sprgefterboghandlernummer1.Enabled := false;    Sprgefterboghandlernummer1.Enabled := false;
1859    ListBox1.Visible := true;    ListBox1.Visible := true;
1860  //  TestFunktionen := '1';  //  TestFunktionen := '1';
1861  // 20150317: start  
 (*  
   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  
1862    if Budlevering1.Checked then    if Budlevering1.Checked then
1863    begin    begin
1864      IndlesScanningLogFil();      IndlesScanningLogFil();
# Line 2283  begin Line 1871  begin
1871      01 :      01 :
1872            begin;      // NS            begin;      // NS
1873              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1874              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1875              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1876              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1877              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1878              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';
# Line 2297  begin Line 1885  begin
1885              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1886              Smpakker1.Enabled := true;              Smpakker1.Enabled := true;
1887              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
1888              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
1889              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
1890              DownloadButton01.Enabled := false;     // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;     // kontrolfil bruges ikke her
1891              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1892              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1893              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1894              IndlesManglendeScanninger();              IndlesManglendeScanninger();
# Line 2310  begin Line 1898  begin
1898              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1899             if (getProddag() = 'lørdag') then             if (getProddag() = 'lørdag') then
1900              begin              begin
1901                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
1902              end              end
1903              else              else
1904              begin              begin
1905                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
1906              end;              end;
1907              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1908              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1909              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1910              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1911              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';
# Line 2335  begin Line 1923  begin
1923              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1924              Smpakker1.Enabled := true;              Smpakker1.Enabled := true;
1925              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
1926              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
1927              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
1928              DownloadButton01.Enabled := false;    // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;    // kontrolfil bruges ikke her
1929              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1930              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1931              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1932            end;            end;
# Line 2354  var Line 1942  var
1942    URLStr : String;    URLStr : String;
1943    pakkestorrelse : String;    pakkestorrelse : String;
1944    PrintNyLabelInteger : Integer;    PrintNyLabelInteger : Integer;
1945    
1946      PakkeshopLabel: TPakkeshopLabel;
1947  begin  begin
1948    if RadioButton1.Checked then    if radioStorPakke.Checked then
1949    begin    begin
1950      pakkestorrelse := 'Stor';      pakkestorrelse := 'Stor';
1951    end;    end;
1952    if RadioButton2.Checked then    if radioLillePakke.Checked then
1953    begin    begin
1954      pakkestorrelse := 'Lille';      pakkestorrelse := 'Lille';
1955    end;    end;
1956    
1957    
1958    if Pakkernormal1.Checked then    if Pakkernormal1.Checked then
1959    begin    begin
1960       if (BoghandlerTjekkode = '') then       if (BoghandlerTjekkode = '') then
# Line 2391  begin Line 1983  begin
1983    begin    begin
1984       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);
1985    end    end
1986      else if menuIndlevering.Checked then
1987      begin
1988        URLStr := Format(UrlIndleveringsPakke,[Sted, PakkeNr]);
1989      end
1990    else    else
1991    begin    begin
1992      exit;      exit;
# Line 2425  begin Line 2021  begin
2021        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;
2022        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;
2023        PrintNyLabel := False;        PrintNyLabel := False;
2024  // 20150310: start  
2025        if Pakkeshoplevering1.Checked then        if Pakkeshoplevering1.Checked then
2026        begin        begin
 // 20150310: slut  
2027          try          try
2028            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);
2029          except on e:exception do          except on e:exception do
# Line 2438  begin Line 2033  begin
2033          begin          begin
2034            PrintNyLabel := True;            PrintNyLabel := True;
2035          end;          end;
 // 20150310: start  
2036        end;        end;
 // 20150310: slut  
2037       end       end
2038        else if menuIndlevering.Checked then
2039        begin
2040    
2041    
2042    
2043    
2044         Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2045         if (Kommentar = 'Ok') then
2046         begin
2047           PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2048           PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc
2049           RuteNummer := PakkeshopLabel.Koreliste + '  ->  ' +  PakkeshopLabel.PakkeshopTurid;
2050           Stregkode := PakkeshopLabel.Stregkode;
2051    
2052           LabelPrint.PrintPakkeshopLabel( PakkeshopLabel );
2053    
2054         end;
2055    
2056    
2057        end
2058      else      else
2059       begin       begin
2060        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;
# Line 2474  begin Line 2087  begin
2087          PrintNyLabel := True;          PrintNyLabel := True;
2088        end;        end;
2089      end;      end;
2090    
2091    
2092      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
2093      begin      begin
2094        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then
# Line 2514  begin Line 2129  begin
2129    if Pakkeshoplevering1.Checked then    if Pakkeshoplevering1.Checked then
2130      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';
2131    List1Pakkestorrelse := '';    List1Pakkestorrelse := '';
2132    if RadioButton1.Checked then    if radioStorPakke.Checked then
2133    begin    begin
2134      List1Pakkestorrelse := 'Stor pakke';      List1Pakkestorrelse := 'Stor pakke';
2135    end;    end;
2136    if RadioButton2.Checked then    if radioLillePakke.Checked then
2137    begin    begin
2138      List1Pakkestorrelse := 'Lille pakke';      List1Pakkestorrelse := 'Lille pakke';
2139    end;    end;
# Line 2540  begin Line 2155  begin
2155    if Budlevering1.Checked then    if Budlevering1.Checked then
2156    begin    begin
2157       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;
2158        if (RadioButton1.Checked) then        if (radioStorPakke.Checked) then
2159        begin        begin
2160          List1msg := List1msg + '; Stor pakke';          List1msg := List1msg + '; Stor pakke';
2161        end;        end;
2162        if (RadioButton2.Checked) then        if (radioLillePakke.Checked) then
2163        begin        begin
2164          List1msg := List1msg + '; Lille pakke';          List1msg := List1msg + '; Lille pakke';
2165        end;        end;
# Line 2566  begin Line 2181  begin
2181        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;
2182      end;      end;
2183    end;    end;
2184      if menuIndlevering.Checked then
2185      begin
2186        List1Msg := Stregkode;
2187      end;
2188    
2189    
2190    ListBox1.Items.Insert(0,List1Msg);    ListBox1.Items.Insert(0,List1Msg);
2191    logTekst := RightStr(List1Msg, Length(List1Msg)-10);    logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2192    SkrivScanningLogFil(logTekst);    SkrivScanningLogFil(logTekst);
2193  end;  end;
2194    
2195  procedure TMainForm.UploadButton01Click(Sender: TObject);  procedure TMainForm.BtnUploadLogfilClick(Sender: TObject);
2196  begin  begin
2197    UploadLogfilTilDAO();    UploadLogfilTilDAO();
2198    UploadInifilTilDAO();    UploadInifilTilDAO();
# Line 2588  pakkeForkertSted : Integer; Line 2209  pakkeForkertSted : Integer;
2209    nytRuteNummer, nyFarve : String;    nytRuteNummer, nyFarve : String;
2210  begin  begin
2211    if Budlevering1.Checked then    if Budlevering1.Checked then
2212       RuteNummerST.Color := HexToTColor(Farve);       RuteNummerST.Color := TUtils.HexToTColor(Farve);
2213    
2214    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
2215    if pakkeErScannet = 0 then    if pakkeErScannet = 0 then
# Line 2601  begin Line 2222  begin
2222    end;    end;
2223    pakkeForkertSted := pos('burde være hos', Kommentar);    pakkeForkertSted := pos('burde være hos', Kommentar);
2224    
2225  // 20150306: start  
2226  //  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
2227    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  
2228    begin    begin
2229        if (RuteNummer = 'Ukendt') then        if (RuteNummer = 'Ukendt') then
2230        begin        begin
# Line 2631  begin Line 2251  begin
2251       if (BoghandlerNavn = 'Ukendt pakke') then       if (BoghandlerNavn = 'Ukendt pakke') then
2252       begin       begin
2253          PrintNyLabel := false;          PrintNyLabel := false;
2254  // 20150306: start  
 //        PlaySound(PWideChar(AlarmLyd));  
2255          PlaySound(PWideChar(AlarmLyd));          PlaySound(PWideChar(AlarmLyd));
2256          MainForm.Color := clRed;          MainForm.Color := clRed;
2257          PakkeshopNulstil.Visible := true;          btnNulstil.Visible := true;
2258  // 20150306: slut  
2259       end       end
2260       else       else
2261       begin       begin
# Line 2646  begin Line 2265  begin
2265            PrintNyLabel := true;            PrintNyLabel := true;
2266            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;
2267            nyFarve := Farve;            nyFarve := Farve;
2268            RuteNummerST.Color := HexToTColor(nyFarve);            RuteNummerST.Color := TUtils.HexToTColor(nyFarve);
2269            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;
2270            RuteNummer := nytRuteNummer;            RuteNummer := nytRuteNummer;
2271            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2272            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2273            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2274  // 20150213: start  
2275            if (PrinterNavn = 'Ingen') then            if (PrinterNavn = 'Ingen') then
2276            begin            begin
2277               PrintNyLabel := false;               PrintNyLabel := false;
2278            end;            end;
2279  // 20150313: slut  
 // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2280            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
2281            begin            begin
2282              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2283              MainForm.Color := clRed;              MainForm.Color := clRed;
2284              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2285            end;            end;
2286  // 20150306: slut  
2287         end;         end;
2288         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);
2289         if (kontrolKoreliste <> RuteNummer) then         if (kontrolKoreliste <> RuteNummer) then
# Line 2685  begin Line 2302  begin
2302            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2303            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2304            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2305  // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2306            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
2307            begin            begin
2308              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2309              MainForm.Color := clRed;              MainForm.Color := clRed;
2310              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2311            end;            end;
2312  // 20150306: slut  
 // 20150306: start  
 //       end  
 //       else  
 //       begin  
2313         end;         end;
2314       end;       end;
2315    
# Line 2715  begin Line 2327  begin
2327               if PrintNyLabel or (RuteNummer = 'Rutenr') then               if PrintNyLabel or (RuteNummer = 'Rutenr') then
2328  // 20150304: slut  // 20150304: slut
2329                begin                begin
2330                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2331                end;                end;
2332              end;              end;
2333        01 :  begin;        01 :  begin;
2334               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2335                    // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste                    // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste
2336                    // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')                    // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')
2337                begin                begin
2338                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2339                end;                end;
2340              end;              end;
2341        02 :  begin;        02 :  begin;
2342                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
2343                begin                begin
2344                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2345                end;                end;
2346              end;              end;
2347        03 :  begin;        03 :  begin;
2348               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2349                    // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste                    // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste
2350                    // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')                    // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')
2351               begin               begin
2352                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2353               end;               end;
2354              end;              end;
2355        04 :  begin;        04 :  begin;
2356                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
2357                begin                begin
2358                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2359                end;                end;
2360              end;              end;
2361        else        else
# Line 2757  begin Line 2369  begin
2369      exit;      exit;
2370    end;    end;
2371    
2372    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 Budlevering1.Checked or ( Sprgefterboghandlernummer1.Enabled and chkSporgEfterKunde.Checked and ( (RuteNummer = 'Ukendt') or (RuteNummer = 'Ukendt tur') or (RuteNummer = 'Retur ukendt') or (pakkeErScannet > 0) ) and (printNyLabel = false) ) then
2373    begin    begin
2374    end    end
2375    else    else
2376    begin    begin
2377      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
2378      begin      begin
2379        logTekst := 'Printer label type ';        logTekst := 'Printer label type ';
2380        if (CheckBox2.Checked) then        if (chkAltidPrintLabel.Checked) then
2381        begin        begin
2382          logTekst := logTekst + 'Alle ';          logTekst := logTekst + 'Alle ';
2383        end        end
# Line 2779  begin Line 2391  begin
2391        end;        end;
2392        logTekst := logTekst + ' for '+BoghandlerNavn;        logTekst := logTekst + ' for '+BoghandlerNavn;
2393        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
2394        with Printer do  
2395        begin        LabelPrint.PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn) ;
2396          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;  
2397      end;      end;
2398    end;    end;
2399    
2400  end;  end;
2401    
 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;  
2402    
2403    
2404  procedure TMainForm.RadioButton1Click(Sender: TObject);  procedure TMainForm.radioStorPakkeClick(Sender: TObject);
2405  begin  begin
2406      Storepakker1.Checked := true;      Storepakker1.Checked := true;
2407      RadioButton1.Checked := true;      radioStorPakke.Checked := true;
2408  end;  end;
2409    
2410  procedure TMainForm.RadioButton2Click(Sender: TObject);  procedure TMainForm.radioLillePakkeClick(Sender: TObject);
2411  begin  begin
2412      Smpakker1.Checked := true;      Smpakker1.Checked := true;
2413      RadioButton2.Checked := true;      radioLillePakke.Checked := true;
2414  end;  end;
2415    
2416    
2417  procedure TMainForm.CheckBox1Click(Sender: TObject);  procedure TMainForm.chkSporgEfterKundeClick(Sender: TObject);
2418  begin  begin
2419    if CheckBox1.Checked then    if chkSporgEfterKunde.Checked then
2420    begin    begin
2421       Sprgefterboghandlernummer1.Checked := true;       Sprgefterboghandlernummer1.Checked := true;
2422    end    end
# Line 2875  begin Line 2427  begin
2427  end;  end;
2428    
2429    
2430  procedure TMainForm.CheckBox2Click(Sender: TObject);  procedure TMainForm.chkAltidPrintLabelClick(Sender: TObject);
2431  begin  begin
2432    if CheckBox2.Checked then    if chkAltidPrintLabel.Checked then
2433    begin    begin
2434       Altidprintepakkelabel1.Checked := true;       Altidprintepakkelabel1.Checked := true;
2435    end    end
# Line 2888  begin Line 2440  begin
2440    
2441  end;  end;
2442    
2443  procedure TMainForm.CheckBox3Click(Sender: TObject);  procedure TMainForm.chkScanTjekkodeClick(Sender: TObject);
2444  begin  begin
2445    if CheckBox3.Checked then    if chkScanTjekkode.Checked then
2446    begin    begin
2447       Scanogstjekkoden1.Checked := true;       Scanogstjekkoden1.Checked := true;
2448    end    end
# Line 2912  begin Line 2464  begin
2464      Automatiskvalg1.Checked := false;      Automatiskvalg1.Checked := false;
2465      PanelValgA.Color := clBtnFace;      PanelValgA.Color := clBtnFace;
2466      PanelValgA.Font.Color := clWindowText;      PanelValgA.Font.Color := clWindowText;
2467  // 20150317: start  
2468      if (SpecialVersionSted = '01')      if (SpecialVersionSted = '01')
2469      or (SpecialVersionSted = '02')        or (SpecialVersionSted = '02')
2470      or (SpecialVersionSted = '03')        or (SpecialVersionSted = '03')
2471      or (SpecialVersionSted = '04') then        or (SpecialVersionSted = '04') then
2472      begin      begin
2473        // 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)
2474        PanelValgA.Enabled := false;        PanelValgA.Enabled := false;
# Line 2936  begin Line 2488  begin
2488    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke
2489    ShowMessage('Tjekker data forbindelse til serveren.' + crlf + 'Det kan godt tage nogle minutter.' + crlf + 'Resultatet af testen vises i skærmbilledet...');    ShowMessage('Tjekker data forbindelse til serveren.' + crlf + 'Det kan godt tage nogle minutter.' + crlf + 'Resultatet af testen vises i skærmbilledet...');
2490    
2491          // Tjekker urls    try
2492          logTekst := 'Tjekker urls.';      // Tjekker urls
2493          ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);      logTekst := 'Tjekker urls.';
2494          SkrivScanningLogFil(logTekst);      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2495        SkrivScanningLogFil(logTekst);
2496    
         // 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;  
2497    
         // 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;  
2498    
2499          // Tjekker UrlReturBoghandler      // Tjekker UrlNormal
2500          if PanelValg3.Enabled = true then      if PanelValg1.Enabled = true then
2501          begin      begin
2502            if CheckUrl(UrlReturBoghandler) then        TjekkerEnkeltUrl('UrlNormal', UrlNormal, urlFejl);
2503            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;  
2504    
2505          // Tjekker UrlBudlevering      // Tjekker UrlReturDAO
2506          if PanelValg4.Enabled = true then      if PanelValg2.Enabled = true then
2507          begin      begin
2508            if CheckUrl(UrlBudlevering) then        TjekkerEnkeltUrl('UrlReturDAO', UrlReturDAO, urlFejl);
2509            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;  
2510    
2511          // Tjekker UrlPakkeshoplevering      // Tjekker UrlReturBoghandler
2512          if PanelValg5.Enabled = true then      if PanelValg3.Enabled = true then
2513          begin      begin
2514            if CheckUrl(UrlPakkeshoplevering) then        TjekkerEnkeltUrl('UrlReturBoghandler', UrlReturBoghandler, urlFejl);
2515            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;  
2516    
2517          // Tjekker UrlReturPakkeshop      // Tjekker UrlBudlevering
2518          if PanelValg6.Enabled = true then      if PanelValg4.Enabled = true then
2519          begin      begin
2520            if CheckUrl(UrlReturPakkeshop) then        TjekkerEnkeltUrl('UrlBudlevering', UrlBudlevering, urlFejl);
2521            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;  
2522    
2523          // Tjekker UrlManglendeScanninger      // Tjekker UrlPakkeshoplevering
2524          if (PanelValg1.Enabled = true)      if PanelValg5.Enabled = true then
2525          or (PanelValg4.Enabled = true) then      begin
2526          begin        TjekkerEnkeltUrl('UrlPakkeshoplevering', UrlPakkeshoplevering, urlFejl);
2527            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;  
2528    
2529          // Tjekker UrlPakkeshopManglendeScanninger      // Tjekker UrlReturPakkeshop
2530          if PanelValg5.Enabled = true then      if PanelValg6.Enabled = true then
2531          begin      begin
2532            if CheckUrl(UrlPakkeshopManglendeScanninger) then        TjekkerEnkeltUrl('UrlReturPakkeshop', UrlReturPakkeshop, urlFejl);
2533            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;  
2534    
2535          // Tjekker UrlPakkeshopManglendeReturScanninger      // Tjekker UrlManglendeScanninger
2536          if PanelValg6.Enabled = true then      if (PanelValg1.Enabled = true) or (PanelValg4.Enabled = true) then
2537          begin      begin
2538            if CheckUrl(UrlPakkeshopManglendeReturScanninger) then        TjekkerEnkeltUrl('UrlManglendeScanninger', UrlManglendeScanninger, urlFejl);
2539            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;  
2540    
2541          // Tjekker UrlEKLoverforsel      // Tjekker UrlPakkeshopManglendeScanninger
2542          if PanelValg1.Enabled = true then      if PanelValg5.Enabled = true then
2543          begin      begin
2544            if CheckUrl(UrlEKLoverforsel) then        TjekkerEnkeltUrl('UrlPakkeshopManglendeScanninger', UrlPakkeshopManglendeScanninger, urlFejl);
2545            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;  
2546    
2547  // 20150330: start      // Tjekker UrlPakkeshopManglendeReturScanninger
2548          // Tjekker UrlEKLoverforselPakkeshop      if PanelValg6.Enabled = true then
2549          if PanelValg5.Enabled = true then      begin
2550          begin        TjekkerEnkeltUrl('UrlPakkeshopManglendeReturScanninger', UrlPakkeshopManglendeReturScanninger, urlFejl);
2551            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  
2552    
2553          // Tjekker UrlFindPakketype     // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
2554          if CheckUrl(UrlFindPakketype) then      if PanelValg7.Enabled = true then
2555          begin      begin
2556            logTekst := 'UrlFindPakketype accepteret: ' + UrlFindPakketype;        TjekkerEnkeltUrl('UrlIndleveringsPakke', UrlIndleveringsPakke, urlFejl);
2557            SkrivScanningLogFil(logTekst);        TjekkerEnkeltUrl('UrlIndleveringsPakkeManglendeScanninger', UrlIndleveringsPakkeManglendeScanninger, urlFejl);
2558          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;  
2559    
2560          // Tjekker UrlSendPrograminfo      // Tjekker UrlEKLoverforsel
2561          if CheckUrl(UrlSendPrograminfo) then      if PanelValg1.Enabled = true then
2562          begin      begin
2563            logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;        TjekkerEnkeltUrl('UrlEKLoverforsel', UrlEKLoverforsel, urlFejl);
2564            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;  
2565    
         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;  
2566    
2567        // Tjekker UrlEKLoverforselPakkeshop
2568        if PanelValg5.Enabled = true then
2569        begin
2570          TjekkerEnkeltUrl('UrlEKLoverforselPakkeshop', UrlEKLoverforselPakkeshop, urlFejl);
2571        end;
2572    
2573    
2574        // Tjekker UrlFindPakketype
2575        TjekkerEnkeltUrl('UrlFindPakketype', UrlFindPakketype, urlFejl);
2576    
2577        // Tjekker UrlSendPrograminfo
2578        TjekkerEnkeltUrl('UrlSendPrograminfo', UrlSendPrograminfo, urlFejl);
2579    
2580    
2581    
2582        logTekst := 'urls er ok';
2583        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2584        SkrivScanningLogFil(logTekst);
2585    
2586      Except
2587        TjekUrls := '-';   // markerer at der var fejl
2588    
2589      end;
2590  end;  end;
2591    
2592  function TMainForm.FileTime2DateTime(FileTime: TFileTime): TDateTime;  procedure TMainForm.TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
2593  var  const
2594     LocalFileTime: TFileTime;    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
    SystemTime: TSystemTime;  
2595  begin  begin
2596     FileTimeToLocalFileTime(FileTime, LocalFileTime) ;    if TUtils.CheckUrl(Url) then
2597     FileTimeToSystemTime(LocalFileTime, SystemTime) ;  
2598     Result := SystemTimeToDateTime(SystemTime) ;    begin
2599        logTekst := UrlNavn + ' accepteret: ' + Url;
2600        SkrivScanningLogFil(logTekst);
2601      end
2602      else
2603      begin
2604        inc(urlFejl);   // Optæller antal fejl
2605        logTekst := UrlNavn + ' svarer ikke: ' + Url;
2606        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2607        if TjekUrls = '1' then
2608        begin
2609          logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2610        end;
2611    
2612        SkrivScanningLogFil(logTekst);
2613    
2614        if TjekUrls = '1' then
2615        begin
2616          ShowMessage(logTekst);
2617          UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2618          Application.Terminate;
2619    
2620          raise Exception.Create('UrlFejl');
2621    
2622        end;
2623      end;
2624    
2625  end;  end;
2626    
2627    
2628    
2629  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);
2630  var  var
2631    SR: TSearchRec;    SR: TSearchRec;
# Line 3342  begin Line 2642  begin
2642      repeat      repeat
2643        if (SR.Attr <> faDirectory) then        if (SR.Attr <> faDirectory) then
2644        begin        begin
2645    
2646          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring
2647          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse
2648          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse          dtCreation := TUtils.FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse
2649          // Selvom creation date godt kan være forskellig fra modified date,          // Selvom creation date godt kan være forskellig fra modified date,
2650          // skal vi alligevel altid tjekke filens alder ud fra modified date          // skal vi alligevel altid tjekke filens alder ud fra modified date
2651          // (ændring den kan ligge både før og efter oprettelse, hvis filerne er flyttet eller ændret manuelt)          // (ændring den kan ligge både før og efter oprettelse, hvis filerne er flyttet eller ændret manuelt)
# Line 3381  begin Line 2682  begin
2682    end;    end;
2683  end;  end;
2684    
2685  procedure TMainForm.PakkeshopNulstilClick(Sender: TObject);  procedure TMainForm.btnNulstilClick(Sender: TObject);
2686  begin  begin
2687    PakkeshopStregkode := '';    PakkeshopStregkode := '';
2688    PakkeshopTjekkode := '';    PakkeshopTjekkode := '';
2689    PakkeshopNulstil.Visible := false;    btnNulstil.Visible := false;
2690    PakkeshopText1.Caption := 'Stregkode';    PakkeshopText1.Caption := 'Stregkode';
2691    BoghandlerStregkode := '';    BoghandlerStregkode := '';
2692    BoghandlerTjekkode := '';    BoghandlerTjekkode := '';
# Line 3403  begin Line 2704  begin
2704  //  MainForm.Color := HexToTColor(Farve);  //  MainForm.Color := HexToTColor(Farve);
2705    if Farve <> '' then    if Farve <> '' then
2706    begin    begin
2707       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  
2708    end;    end;
2709    if (Budlevering1.Checked) then    if (Budlevering1.Checked) then
2710    begin    begin
# Line 3477  end; Line 2768  end;
2768    
2769  procedure TMainForm.PanelValgAClick(Sender: TObject);  procedure TMainForm.PanelValgAClick(Sender: TObject);
2770  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;  
 *)  
2771  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
2772  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
2773       AutomatiskValg1.Checked := true;    AutomatiskValg1.Checked := true;
2774       PanelValgA.Color := clGreen;    PanelValgA.Color := clGreen;
2775       PanelValgA.Font.Color := clWhite;    PanelValgA.Font.Color := clWhite;
2776  // 20150311: slut  
2777    
2778    
2779  end;  end;
2780    
2781  procedure TMainForm.Pakkernormal1Click(Sender: TObject);  procedure TMainForm.Pakkernormal1Click(Sender: TObject);
# Line 3514  var Line 2792  var
2792    BoghandlerNavn : String;    BoghandlerNavn : String;
2793    Koreliste : String;    Koreliste : String;
2794    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
2795    SmsKode : String;    SmsKode : String;
2796    DBKbane : String;    DBKbane : String;
2797    Leveringssted : String;    Leveringssted : String;
# Line 3536  begin Line 2813  begin
2813      // Her kommer en alarm og rød skærm      // Her kommer en alarm og rød skærm
2814      PlaySound(PWideChar(AlarmLyd));      PlaySound(PWideChar(AlarmLyd));
2815      MainForm.Color := clRed;      MainForm.Color := clRed;
2816      PakkeshopNulstil.Visible := true;      btnNulstil.Visible := true;
2817    end    end
2818    else    else
2819    begin    begin
2820      Falsk := False;      Falsk := False;
2821      Sand := True;  
2822      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');
2823      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
2824      SmsKode := '999999';      SmsKode := '999999';
# Line 3561  var Line 2838  var
2838    BoghandlerNavn : String;    BoghandlerNavn : String;
2839    Koreliste : String;    Koreliste : String;
2840    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
2841    SmsKode : String;    SmsKode : String;
2842    DBKbane : String;    DBKbane : String;
2843    Leveringssted : String;    Leveringssted : String;
# Line 3570  begin Line 2846  begin
2846    Kommentar := '***** Kommentar *****';    Kommentar := '***** Kommentar *****';
2847    BoghandlerNavn := 'Modtagernavn';    BoghandlerNavn := 'Modtagernavn';
2848    Falsk := False;    Falsk := False;
   Sand := True;  
2849    
2850    if (Printer.Printers.Count = 0) then  
2851      if (LabelPrint.GetPrinterCount() = 0) then
2852    begin    begin
2853      ShowMessage('Der er ikke installeret en printer på denne PC.');      ShowMessage('Der er ikke installeret en printer på denne PC.');
2854    end    end
# Line 3587  begin Line 2863  begin
2863      DBKbane := '999';      DBKbane := '999';
2864      Leveringssted := 'XXX';      Leveringssted := 'XXX';
2865      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);
2866      CheckPrintQue('Test');      LabelPrint.CheckPrintQue('Test', PrinterNavn);
2867    end;    end;
2868    FocusControl(StregkodeST);    FocusControl(StregkodeST);
2869  end;  end;
# Line 3596  procedure TMainForm.Timer1Timer(Sender: Line 2872  procedure TMainForm.Timer1Timer(Sender:
2872  begin  begin
2873    if (TjekPrinter = '1') then    if (TjekPrinter = '1') then
2874    begin    begin
2875      CheckPrintQue('Timer');      LabelPrint.CheckPrintQue('Timer', PrinterNavn);
2876    end    end
2877    else    else
2878    begin    begin
# Line 3605  begin Line 2881  begin
2881    end;    end;
2882  end;  end;
2883    
2884  {  
  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;  
2885    
2886  procedure TMainForm.Om1Click(Sender: TObject);  procedure TMainForm.Om1Click(Sender: TObject);
2887  const  const
# Line 3643  var Line 2890  var
2890   tekst, filversion : String;   tekst, filversion : String;
2891  begin  begin
2892    
2893    filversion := Sto_GetFmtFileVersion('','');    filversion := TUtils.Sto_GetFmtFileVersion('');
2894    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';
2895    
2896    tekst := tekst+crlf+crlf;    tekst := tekst+crlf+crlf;
# Line 3665  begin Line 2912  begin
2912          end          end
2913          else          else
2914          begin          begin
2915            tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
2916          end;          end;
2917      end      end
2918      else      else
2919      begin      begin
2920        tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';        tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
2921      end;      end;
2922    end;    end;
2923    
# Line 3738  begin Line 2985  begin
2985    
2986    if FileExists(fileName) then    if FileExists(fileName) then
2987    begin    begin
2988      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
2989      begin      begin
2990        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
2991        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
# Line 3762  begin Line 3009  begin
3009    
3010    if FileExists(fileName) then    if FileExists(fileName) then
3011    begin    begin
3012      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3013      begin      begin
3014        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3015        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
3016      end      end
3017      else      else
3018      begin      begin
3019        ShowMessage('Acrobat Reader er ikke installeret!');        ShowMessage('Adobe Reader er ikke installeret!');
3020      end;      end;
3021    end    end
3022    else    else
# Line 3778  begin Line 3025  begin
3025    end;    end;
3026  end;  end;
3027    
3028    procedure TMainForm.menuIndleveringClick(Sender: TObject);
3029    begin
3030      Scanningtype := '7';
3031      NulstilAutomatiskValg();
3032      InitIndleveringskode();
3033    end;
3034    
3035  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);
3036  begin  begin
3037    
3038    if Sprgefterboghandlernummer1.Checked then    if Sprgefterboghandlernummer1.Checked then
3039    begin    begin
3040       CheckBox1.Checked := true;       chkSporgEfterKunde.Checked := true;
3041    end    end
3042    else    else
3043    begin    begin
3044       CheckBox1.Checked := false;       chkSporgEfterKunde.Checked := false;
3045    end;    end;
3046    
3047    
# Line 3810  end; Line 3064  end;
3064  procedure TMainForm.InitNatxpresslevering();  procedure TMainForm.InitNatxpresslevering();
3065  begin  begin
3066        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3067        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3068        Pakkernormal1.Checked := true;        Pakkernormal1.Checked := true;
3069        InitForm(FarveNormal,TitelNormal,UrlNormal);        InitForm(FarveNormal,TitelNormal,UrlNormal);
3070        PanelValg1.Color := clGreen;        PanelValg1.Color := clGreen;
3071        PanelValg1.Font.Color := clWhite;        PanelValg1.Font.Color := clWhite;
3072        CheckBox1.Enabled := true;  
3073        CheckBox2.Enabled := true;        chkAltidPrintLabel.Enabled := true;
3074        Altidprintepakkelabel1.Enabled := true;        Altidprintepakkelabel1.Enabled := true;
3075        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3076        CheckBox2.Checked := false;        chkAltidPrintLabel.Checked := false;
3077        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3078        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3079        Sprgefterboghandlernummer1.Enabled := true;        Sprgefterboghandlernummer1.Enabled := true;
3080        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3081        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3082        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3083        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3084        ListBox1.Visible := true;        ListBox1.Visible := true;
3085        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3086        EKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3087        InitLillePakke();        InitLillePakke();
3088        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3089        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3843  procedure TMainForm.InitReturFraDao(); Line 3097  procedure TMainForm.InitReturFraDao();
3097  begin  begin
3098        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3099        ReturpakkerfraDAO1.Checked := true;        ReturpakkerfraDAO1.Checked := true;
3100        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3101        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);
3102        PanelValg2.Color := clGreen;        PanelValg2.Color := clGreen;
3103        PanelValg2.Font.Color := clWhite;        PanelValg2.Font.Color := clWhite;
3104        CheckBox1.Enabled := false;  
3105        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3106        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3107        CheckBox2.Checked := false;  
3108        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3109        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3110        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3111        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3112        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3113        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3114        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3115        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3116        ListBox1.Visible := true;        ListBox1.Visible := true;
3117        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3118        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3119        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3120        InitLillePakke();        InitLillePakke();
3121  end;  end;
3122    
# Line 3870  procedure TMainForm.InitReturFraKunde(); Line 3124  procedure TMainForm.InitReturFraKunde();
3124  begin  begin
3125        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3126        Returpakkerfraboghandler1.Checked := true;        Returpakkerfraboghandler1.Checked := true;
3127        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3128        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);
3129        PanelValg3.Color := clGreen;        PanelValg3.Color := clGreen;
3130        PanelValg3.Font.Color := clWhite;        PanelValg3.Font.Color := clWhite;
3131        CheckBox1.Enabled := false;  
3132        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3133        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
       CheckBox2.Checked := false;  
3134        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3135        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3136        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3137        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3138        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3139        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3140        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3141        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3142        ListBox1.Visible := true;        ListBox1.Visible := true;
3143        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3144        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3145        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3146        InitLillePakke();        InitLillePakke();
3147  end;  end;
3148    
# Line 3897  procedure TMainForm.InitDirektelevering( Line 3150  procedure TMainForm.InitDirektelevering(
3150  begin  begin
3151        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3152        Budlevering1.Checked := true;        Budlevering1.Checked := true;
3153        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3154        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);
3155        PanelValg4.Color := clGreen;        PanelValg4.Color := clGreen;
3156        PanelValg4.Font.Color := clWhite;        PanelValg4.Font.Color := clWhite;
3157        CheckBox1.Enabled := false;  
3158        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3159        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3160        CheckBox2.Checked := false;  
3161        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3162        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3163        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3164        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3165        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3166        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3167        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3168        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3169        ListBox1.Visible := true;        ListBox1.Visible := true;
3170        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3171        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3172        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3173        DownloadButton03.Visible := false;        BtnDownloadRuteskiftFil.Visible := false;
3174        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3175        IdFTP1.Passive := true;        IdFTP1.Passive := true;
3176        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3177        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then
# Line 3933  procedure TMainForm.InitPakkeshopleverin Line 3186  procedure TMainForm.InitPakkeshopleverin
3186  begin  begin
3187        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3188        Pakkeshoplevering1.Checked := true;        Pakkeshoplevering1.Checked := true;
3189        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3190        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);
3191        PanelValg5.Color := clGreen;        PanelValg5.Color := clGreen;
3192        PanelValg5.Font.Color := clWhite;        PanelValg5.Font.Color := clWhite;
3193        CheckBox1.Enabled := false;  
3194        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3195        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3196        CheckBox2.Checked := false;  
3197        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3198        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3199        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3200        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3201        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3202        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3203        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3204        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3205        ListBox1.Visible := true;        ListBox1.Visible := true;
3206        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3207        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3208        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3209  // 20150330: start  
3210  //      EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := true;
3211        EKLoverforsel.Enabled := true;  
 // 20150330: slut  
3212        InitLillePakke();        InitLillePakke();
3213        IndlesScanningLogFil();        IndlesScanningLogFil();
3214        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3971  procedure TMainForm.InitReturFraPakkesho Line 3223  procedure TMainForm.InitReturFraPakkesho
3223  begin  begin
3224        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3225        Returpakkerfrapakkeshop1.Checked := true;        Returpakkerfrapakkeshop1.Checked := true;
3226        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3227        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);
3228        PanelValg6.Color := clGreen;        PanelValg6.Color := clGreen;
3229        PanelValg6.Font.Color := clWhite;        PanelValg6.Font.Color := clWhite;
3230        CheckBox1.Enabled := false;  
3231        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3232        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3233        CheckBox2.Checked := false;  
3234        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3235        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3236        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3237        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3238        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3239        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3240        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3241        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3242        ListBox1.Visible := true;        ListBox1.Visible := true;
3243        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3244        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3245        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3246        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3247        InitLillePakke();        InitLillePakke();
3248        IndlesScanningLogFil();        IndlesScanningLogFil();
3249        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4011  end; Line 3263  end;
3263    
3264  procedure TMainForm.InitIndleveringskode();  procedure TMainForm.InitIndleveringskode();
3265  begin  begin
3266          menuIndlevering.Checked := true;
3267        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3268        Returpakkerfrapakkeshop1.Checked := true;  
3269        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3270        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);
3271        PanelValg7.Color := clGreen;        PanelValg7.Color := clGreen;
3272        PanelValg7.Font.Color := clWhite;        PanelValg7.Font.Color := clWhite;
3273        CheckBox1.Enabled := false;  
3274        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3275        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3276        CheckBox2.Checked := false;  
3277        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3278        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
       CheckBox1.Checked := false;  
3279        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3280          chkSporgEfterKunde.Checked := false;
3281    
3282    
3283    
3284        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3285        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3286        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3287        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3288        ListBox1.Visible := true;        ListBox1.Visible := true;
3289        ListBox1.Items.Clear;        ListBox1.Items.Clear();
3290        DownloadButton01.Enabled := false;  
3291        OpdaterListenButton01.Enabled := true;        BtnDownloadKontrolfil.Enabled := false;
3292        EKLoverforsel.Enabled := false;        BtnOpdaterListen.Enabled := true;
3293          BtnEKLoverforsel.Enabled := false;
3294        InitLillePakke();        InitLillePakke();
3295        IndlesScanningLogFil();        IndlesScanningLogFil();
3296        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4057  end; Line 3314  end;
3314    
3315  procedure TMainForm.InitLillePakke();  procedure TMainForm.InitLillePakke();
3316  begin  begin
3317    RadioButton2.Checked := true;    radioLillePakke.Checked := true;
3318    Smpakker1.Checked := true;    Smpakker1.Checked := true;
 // 20150310: start  
3319  //  Stregkode := '';  //  Stregkode := '';
 // 20150310: slut  
3320  end;  end;
3321    
3322  procedure TMainForm.InitStorPakke();  procedure TMainForm.InitStorPakke();
3323  begin  begin
3324    RadioButton1.Checked := true;    radioStorPakke.Checked := true;
3325    Storepakker1.Checked := true;    Storepakker1.Checked := true;
3326  // 20150310: start  // 20150310: start
3327  //  Stregkode := '';  //  Stregkode := '';
3328  // 20150310: slut  // 20150310: slut
3329  end;  end;
3330    
 /// <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]]);  
3331    
     // 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;  
3332    
3333  procedure TMainForm.PlaySound(filename : PWideChar);  procedure TMainForm.PlaySound(filename : PWideChar);
3334  begin  begin
# Line 4163  end; Line 3353  end;
3353    
3354  procedure TMainForm.Testlyd2Click(Sender: TObject);  procedure TMainForm.Testlyd2Click(Sender: TObject);
3355  begin  begin
 // 20150317: start  
3356    if (PakkeshopText1.Caption = 'Tjekkode') then    if (PakkeshopText1.Caption = 'Tjekkode') then
3357    begin    begin
3358       if ScannetOkTilTjekkodeLyd  <> '' then       if ScannetOkTilTjekkodeLyd  <> '' then
# Line 4176  begin Line 3365  begin
3365       end;       end;
3366       exit;       exit;
3367    end;    end;
 // 20150317: slut  
3368    
3369    if Smpakker1.Checked then    if Smpakker1.Checked then
3370       if ScannetOkLyd  <> '' then       if ScannetOkLyd  <> '' then
# Line 4185  begin Line 3373  begin
3373       end       end
3374       else       else
3375       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet)'), 'Information', MB_OK);  
3376         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3377       end;       end;
3378    if Storepakker1.Checked then    if Storepakker1.Checked then
3379       if ScannetOkStorLyd  <> '' then       if ScannetOkStorLyd  <> '' then
# Line 4197  begin Line 3382  begin
3382       end       end
3383       else       else
3384       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet stor)'), 'Information', MB_OK);  
3385         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3386       end;       end;
3387  end;  end;
3388    
# Line 4217  begin; Line 3399  begin;
3399    CheckCode();    CheckCode();
3400  end;  end;
3401    
3402  procedure TMainForm.EKLoverforselClick(Sender: TObject);  procedure TMainForm.BtnEKLoverforselClick(Sender: TObject);
3403  var  var
3404    WebSvar : String;    WebSvar : String;
3405    URLStr : String;    URLStr : String;
# Line 4227  var Line 3409  var
3409    status, kommentar : String;    status, kommentar : String;
3410    
3411  begin  begin
3412      EKLoverforsel.Enabled := false;      BtnEKLoverforsel.Enabled := false;
3413    
3414      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');
3415      logTekst := 'Overfører de scannede pakker til EKL';      logTekst := 'Overfører de scannede pakker til EKL';
3416      SkrivScanningLogFil(logTekst);      SkrivScanningLogFil(logTekst);
3417      StedKode := Sted;      StedKode := Sted;
3418      URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);      URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);
3419  // 20150330: start  
3420      if PanelValg5.Color = clGreen then      if PanelValg5.Color = clGreen then
3421      begin      begin
3422        URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);        URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);
3423      end;      end;
3424  // 20150330: slut  
3425    
3426      try      try
3427      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
# Line 4290  begin Line 3472  begin
3472        end;        end;
3473      end;      end;
3474    
3475      EKLoverforsel.Enabled := true;      BtnEKLoverforsel.Enabled := true;
3476    
3477      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
3478    
# Line 4307  begin Line 3489  begin
3489           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';
3490         end;         end;
3491         KommentarST.Caption := Kommentar;         KommentarST.Caption := Kommentar;
3492         PakkeshopNulstil.Visible := true;         btnNulstil.Visible := true;
3493      end;      end;
3494    
3495  end;  end;
# Line 4331  begin Line 3513  begin
3513    else    else
3514      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);
3515  }  }
3516    Svar := 'Beregnet: '+CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;    Svar := 'Beregnet: ' + TUtils.CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;
3517    
3518    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);
3519    CheckCode();    CheckCode();
# Line 4339  end; Line 3521  end;
3521    
3522  end;  end;
3523    
 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;  
3524    
3525  //  //
3526  // Bladhus ***  // Bladhus ***
# Line 4855  begin Line 3998  begin
3998    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
3999  end;  end;
4000    
4001  procedure TMainForm.DownloadButton01Click(Sender: TObject);  procedure TMainForm.BtnDownloadKontrolfilClick(Sender: TObject);
4002  begin  begin
4003      DownloadBladhusKontrolfil();      DownloadBladhusKontrolfil();
4004      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
4005  end;  end;
4006    
4007  procedure TMainForm.OpdaterListenButton01Click(Sender: TObject);  procedure TMainForm.BtnOpdaterListenClick(Sender: TObject);
4008  const  const
4009    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
4010    
# Line 4870  begin Line 4013  begin
4013      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
4014  end;  end;
4015    
4016  procedure TMainForm.DownloadButton03Click(Sender: TObject);  procedure TMainForm.BtnDownloadRuteskiftFilClick(Sender: TObject);
4017  begin  begin
4018      if (getProddag() = 'lørdag') then      if (getProddag() = 'lørdag') then
4019      begin      begin
# Line 4879  begin Line 4022  begin
4022      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
4023  end;  end;
4024    
4025  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;  
4026    
4027  procedure TMainForm.IndlesManglendeScanninger();  procedure TMainForm.IndlesManglendeScanninger();
4028  var  var
# Line 4905  var Line 4036  var
4036    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;
4037    pakketyper : TStrings;    pakketyper : TStrings;
4038    antlin : Integer;    antlin : Integer;
4039  // 20150306: start  
4040    antlinIdag, antlinSenere : Integer;    antlinIdag, antlinSenere : Integer;
4041  // 20150306: slut  
4042    XmlFelter : TStrings;    XmlFelter : TStrings;
4043    
4044   begin   begin
# Line 4927  var Line 4058  var
4058          StedKode := Sted;          StedKode := Sted;
4059        end;        end;
4060    
4061  // 20150310: start  
4062  (*  
4063      if Returpakkerfrapakkeshop1.Checked then      if (Scanningtype = '7') then
      begin  
       URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);  
      end  
     else if Pakkeshoplevering1.Checked then  
      begin  
       URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);  
      end  
     else if Pakkernormal1.Checked then  
4064       begin       begin
4065        URLStr := Format(UrlManglendeScanninger,[StedKode,'B2']);        URLStr := Format(UrlIndleveringsPakkeManglendeScanninger, [StedKode]);
4066       end       end
4067      else      else if (Scanningtype = '6') then
      begin  
       URLStr := Format(UrlManglendeScanninger,[StedKode,'A2']);    // Budleveringer  
      end;  
 *)  
     if (Scanningtype = '6') then  
4068       begin       begin
4069        URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeReturScanninger, [StedKode]);
4070       end       end
4071      else if (Scanningtype = '5') then      else if (Scanningtype = '5') then
4072       begin       begin
4073        URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeScanninger, [StedKode]);
4074       end       end
4075      else if (Scanningtype = '1') then      else if (Scanningtype = '1') then
4076       begin       begin
# Line 4989  var Line 4107  var
4107      try      try
4108        XMLDocument1.LoadFromXML(WebSvar);        XMLDocument1.LoadFromXML(WebSvar);
4109    
4110  // 20150206: start  
4111        antlin := 0;        antlin := 0;
4112        antlinIdag := 0;        antlinIdag := 0;
4113        antlinSenere := 0;        antlinSenere := 0;
4114  // 20150306: slut  
       antalFelterFundet := 0;  
4115        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4116            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4117            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
# Line 5026  var Line 4143  var
4143        antalFelterFundet := 0;        antalFelterFundet := 0;
4144        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug
4145        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array
4146  // 20150206: start  
 //      logTekst := 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.';  
4147        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4148        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4149        begin        begin
4150          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';
4151        end;        end;
4152        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4153  // 20150306: slut  
4154        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4155        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4156            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
# Line 5074  var Line 4190  var
4190                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4191                  if (tjekkodestatus = '-1') then                  if (tjekkodestatus = '-1') then
4192                  begin                  begin
4193  // 20150306: start  
 //                    stregkoderMedTjekkodeArray[linienr] := stregkode;  
4194                    if (pos(' ', stregkode) > 0) then                    if (pos(' ', stregkode) > 0) then
4195                    begin                    begin
4196                      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
4197                    end                    end
4198                    else                    else
4199                    begin                    begin
4200                      stregkoderMedTjekkodeArray[linienr] := stregkode;                      stregkoderMedTjekkodeArray[linienr] := stregkode;
4201                    end;                    end;
4202  // 20150306: slut                    linienr := linienr + 1;
                     linienr := linienr + 1;  
4203                  end;                  end;
4204              end;              end;
4205              if antalFelterFundet = antalLiniefelter then              if antalFelterFundet = antalLiniefelter then
# Line 5110  var Line 4224  var
4224    
4225          // Free up the list object          // Free up the list object
4226        pakketyper.Free;        pakketyper.Free;
 // 20150306: start  
4227  //      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.');
4228        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4229        if (antlinSenere > 0) then        if (antlinSenere > 0) then
# Line 5119  var Line 4232  var
4232        end;        end;
4233        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4234        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
 // 20150306: slut  
 // 20150309: start  
4235        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4236        begin        begin
4237          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);
# Line 5129  var Line 4240  var
4240        begin        begin
4241          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);
4242        end;        end;
 // 20150309: slut  
4243    
 // 20150310: start  
4244        if (Scanningtype = '1') then        if (Scanningtype = '1') then
4245        begin        begin
4246          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal
# Line 5210  var Line 4319  var
4319            PanelManglendePakker6.Visible := false;            PanelManglendePakker6.Visible := false;
4320          end;          end;
4321        end;        end;
 // 20150310: slut  
4322    
4323      except on e:exception do      except on e:exception do
4324        begin        begin
# Line 5272  end; Line 4380  end;
4380  procedure TMainForm.SkrivScanningLogFil(var tekst : string);  procedure TMainForm.SkrivScanningLogFil(var tekst : string);
4381  var  var
4382     SomeTxtFile : TextFile;     SomeTxtFile : TextFile;
    buffer : string;  
    S: string;  
4383     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
4384     imorgenYmd : string;     imorgenYmd : string;
4385     logFilnavn : string;     logFilnavn : string;
4386      error : Integer;     //error : Integer;
4387    
4388  begin  begin
4389    if (SkrivLog = '1') then    if (SkrivLog = '1') then
# Line 5369  begin Line 4475  begin
4475          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
4476          S := buffer;          S := buffer;
4477          SetLength(A,0);          SetLength(A,0);
4478          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
4479          if (length(A) < 2) then          if (length(A) < 2) then
4480          begin          begin
4481            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
4482          end;          end;
4483            if (length(A) > 1) then            if (length(A) > 1) then
4484            begin            begin
# Line 5446  begin Line 4552  begin
4552          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
4553          S := buffer;          S := buffer;
4554          SetLength(A,0);          SetLength(A,0);
4555          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
4556          if (length(A) < 3) then          if (length(A) < 3) then
4557          begin          begin
4558            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
4559          end;          end;
4560          if (A[0]=imorgenYmd) then          if (A[0]=imorgenYmd) then
4561          begin          begin
# Line 5541  begin Line 4647  begin
4647    result := svar;    result := svar;
4648  end;  end;
4649    
4650    procedure TMainForm.VisAlarmSkaerm(strMessage: string);
4651    begin
4652      //ShowMessage('Ændring ikke tilladt');
4653      // Her skal komme en 'rød skærm' alarm
4654      PlaySound(PWideChar(AlarmLyd));
4655      MainForm.Color := clRed;
4656    
4657    
4658      RuteNummerST.Caption := '';
4659      BoghandlerNavnST.Caption := '';
4660      btnNulstil.Visible := true;
4661    
4662      if (strMessage <> '') then
4663      begin
4664        ListBox1.Items.Insert(0, strMessage);
4665        KommentarST.Caption := strMessage;
4666      end;
4667    
4668    end;
4669    
4670  function TMainForm.getProddato() : TDate;  function TMainForm.getProddato() : TDate;
4671  var  var
4672     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
# Line 5598  begin Line 4724  begin
4724    result := svar;    result := svar;
4725  end;  end;
4726    
 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;  
4727    
4728  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);
4729  begin  begin
4730    if Scanogstjekkoden1.Checked then    if Scanogstjekkoden1.Checked then
4731    begin    begin
4732       CheckBox3.Checked := true;       chkScanTjekkode.Checked := true;
4733    end    end
4734    else    else
4735    begin    begin
4736       CheckBox3.Checked := false;       chkScanTjekkode.Checked := false;
4737    end;    end;
4738  end;  end;
4739    
4740  function TMainForm.AdobeReaderExists: Boolean;  
4741  var  
4742    AReg: TRegistry;  //Nedarvet fra IParentForm
4743    procedure TMainForm.LogMessage( msg : string);
4744  begin  begin
4745    result:= false;    ListBox1.Items.Insert(0, msg);
4746    AReg := TRegistry.Create;    SkrivScanningLogFil(msg);
   AReg.RootKey := HKEY_LOCAL_MACHINE;  
   if AReg.KeyExists('\SOFTWARE\Adobe\Acrobat Reader') then  
     result:= True;  
   AReg.Free;  
4747  end;  end;
4748    
 procedure TMainForm.CheckPrintQue(tjektype : string);  
 type  
   TJobs  = array [0..1000] of JOB_INFO_1;  
   PJobs = ^TJobs;  
 var  
   hPrinter: THandle;  
   bytesNeeded, numJobs, i: Cardinal;  
   pJ: PJobs;  
   printerTxt, statusTxt, dokumentTxt: String;  
 begin  
4749    
4750  // tjektype = 'Opstart' skal vise alarmlinie, samt opdatere listbox1  //Nedarvet fra IParentForm
4751  //            'Test'  skal vise alarmlinie, samt opdatere listbox1  procedure TMainForm.SetPrinterstatusText( txt: string; alert: boolean);
4752  //            'Timer' skal kun vise alarmlinie  begin
4753    
4754    if (PrinterNavn = 'Ingen') and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then    PrinterstatusStaticText1.Caption := txt;
4755    begin    if (alert) then
     printerTxt := 'Der er fravalgt printer i dette program';  
     ListBox1.Items.Insert(0,printerTxt);  
     SkrivScanningLogFil(printerTxt);  
   end  
   else if (Printer.Printers.Count = 0) and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then  
4756    begin    begin
4757      printerTxt := 'Der er ikke installeret en printer på denne PC';      PrinterstatusStaticText1.Font.Color := clBlack;
4758      ListBox1.Items.Insert(0,printerTxt);      PrinterstatusStaticText1.Color := MainForm.Color;
4759      SkrivScanningLogFil(printerTxt);      PrinterstatusStaticText1.Transparent := True;
4760    end    end
4761    else    else
4762    begin    begin
4763      hPrinter := GetCurrentPrinterHandle;      PrinterstatusStaticText1.Font.Color := clRed;
4764      try      PrinterstatusStaticText1.Color := clWhite;
4765        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;  
   end;  
 end;  
   
 function TMainForm.CheckUrl(url:string):boolean;  
 var  
   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);  
4766    end;    end;
   
4767  end;  end;
4768    
4769  // 20150310: start  //Nedarvet fra IParentForm
4770  procedure TMainForm.RoundCornerOf(Control: TWinControl);  function TMainForm.GetFormObject() : TForm;
 var  
    R: TRect;  
    Rgn: HRGN;  
4771  begin  begin
4772     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;  
4773  end;  end;
 // 20150310: slut  
4774    
4775  end.  end.
4776    

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

  ViewVC Help
Powered by ViewVC 1.1.20