/[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 2756 by torben, Thu Oct 22 14:06:23 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 1597  begin Line 1384  begin
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    
# 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);  
              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  
1428               exit;               exit;
1429            end;            end;
1430        Stregkode := GemStregkode;        Stregkode := GemStregkode;
1431      end      end
1432      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then
1433      begin      begin
1434        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );
1435        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  
1436        exit;        exit;
1437      end;      end;
1438    
# Line 1714  begin Line 1440  begin
1440      begin      begin
1441        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then
1442        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;  
1443    
1444      if StregKode = 'Stor pakke' then          VisAlarmSkaerm( 'Pakke findes som pakketype: ' + Pakketype );
     begin  
        InitStorPakke();  
        exit;  
     end;  
1445    
1446      if StregKode = 'Indtast kundenummer' then          exit;
1447      begin        end;
        if (CheckBox1.State = cbChecked) then  
        begin  
         CheckBox1.State := cbUnchecked;  
        end  
        else  
        begin  
         CheckBox1.State := cbChecked;  
        end;  
        Stregkode := '';  
        exit;  
1448      end;      end;
1449    
     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  
1450    
1451    
1452      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then
1453      begin      begin
1454        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
1455        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do
1456        begin        begin
1457          if (Stregkode=stregkoderMedTjekkodeArray[i]) then          if (Stregkode=stregkoderMedTjekkodeArray[i]) then
1458          begin          begin
1459              CheckBox3.Checked := true;              chkScanTjekkode.Checked := true;
1460              Scanogstjekkoden1.Checked := true;              Scanogstjekkoden1.Checked := true;
1461          end;          end;
1462        end;        end;
# Line 1812  begin Line 1468  begin
1468             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1469             BoghandlerTjekkode := '';             BoghandlerTjekkode := '';
1470             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1471             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1472             Stregkode := '';             Stregkode := '';
1473             InitScreen();             InitScreen();
1474        end        end
# Line 1824  begin Line 1480  begin
1480             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1481             BoghandlerTjekkode := '-1';             BoghandlerTjekkode := '-1';
1482             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1483             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1484             Stregkode := '';             Stregkode := '';
1485             InitScreen();             InitScreen();
1486        end        end
# Line 1836  begin Line 1492  begin
1492              PakkeshopStregkode := Stregkode;              PakkeshopStregkode := Stregkode;
1493              BoghandlerStregkode := Stregkode;              BoghandlerStregkode := Stregkode;
1494              PakkeshopText1.Caption := 'Tjekkode';              PakkeshopText1.Caption := 'Tjekkode';
1495  // 20150317: start  
1496              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));
1497  // 20150317: slut  
1498             end             end
1499            else            else
1500             begin             begin
1501                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;  
1502             end;             end;
1503            Stregkode := '';            Stregkode := '';
1504            InitScreen();            InitScreen();
# Line 1861  begin Line 1511  begin
1511             BoghandlerTjekkode := Stregkode;             BoghandlerTjekkode := Stregkode;
1512             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1513             if (PakkeshopLevering1.Checked) then             if (PakkeshopLevering1.Checked) then
1514                MainForm.Color := HexToTColor(FarvePakkeshoplevering);                MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering);
1515             if (Pakkernormal1.Checked) then             if (Pakkernormal1.Checked) then
1516                MainForm.Color := HexToTColor(FarveNormal);                MainForm.Color := TUtils.HexToTColor(FarveNormal);
1517             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1518           end           end
1519          else          else
1520           begin           begin
1521                if (PakkeshopLevering1.Checked) then                if (PakkeshopLevering1.Checked) then
1522                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);
1523                if (Pakkernormal1.Checked) then                if (Pakkernormal1.Checked) then
1524                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);
1525                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  
1526                StregKode := '';                StregKode := '';
1527                StregkodeST.Caption := StregKode;                StregkodeST.Caption := StregKode;
1528  // 20150323: slut  
1529                exit;                exit;
1530           end;           end;
1531          Stregkode := '';          Stregkode := '';
# Line 1891  begin Line 1534  begin
1534    
1535      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
1536      begin      begin
1537    
1538         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then
1539            StregKode := PakkeshopStregkode;            StregKode := PakkeshopStregkode;
1540         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 1547  begin
1547            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her
1548            if Rutenummer = 'sql fejl' then            if Rutenummer = 'sql fejl' then
1549            begin   // Her skal komme en alarm og rød skærm            begin   // Her skal komme en alarm og rød skærm
1550               PlaySound(PWideChar(AlarmLyd));               VisAlarmSkaerm( 'SQL fejl: ' + Kommentar );
1551               //List1msg := 'SQL fejl: ' + Kommentar;  
              //ListBox1.Items.Insert(0,List1Msg);  
              MainForm.Color := clRed;  
              //KommentarST.Caption := List1msg;  
              PakkeshopNulstil.Visible := true;  
1552              exit;              exit;
1553            end;            end;
1554            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then
# Line 1928  begin Line 1568  begin
1568              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then
1569              begin              begin
1570                PlaySound(PWideChar(AlarmLyd));                PlaySound(PWideChar(AlarmLyd));
1571                PakkeshopNulstil.Visible := true;                btnNulstil.Visible := true;
1572                MainForm.Color := clRed;                MainForm.Color := clRed;
1573              end;              end;
1574           end;           end;
1575            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
1576            begin            begin
1577              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1578              if Storepakker1.Checked then              if Storepakker1.Checked then
1579              begin              begin
1580                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1943  begin Line 1583  begin
1583              begin              begin
1584                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1585              end;              end;
1586              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1587            end            end
1588            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then
1589            begin            begin
1590              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1591              if Storepakker1.Checked then              if Storepakker1.Checked then
1592              begin              begin
1593                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1956  begin Line 1596  begin
1596              begin              begin
1597                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1598              end;              end;
1599              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1600            end            end
1601            else if Copy(Kommentar,1,8) = 'OPRETTET' then            else if Copy(Kommentar,1,8) = 'OPRETTET' then
1602            begin            begin
1603              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;  
1604            end            end
1605            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'
1606            begin            begin
1607            end            end
1608            else            else
1609            begin            begin
1610              MainForm.Color := clRed;              VisAlarmSkaerm('');
             PlaySound(PWideChar(AlarmLyd));  
             PakkeshopNulstil.Visible := true;  
1611            end;            end;
1612           if not PakkeshopNulstil.Visible then  
1613             if not btnNulstil.Visible then
1614            begin            begin
1615  // 20150310: start  
 //            SletStregkodelinieFraListboks2(StregKode);  
 // 20150310: slut  
1616              If (Budlevering1.Checked) then              If (Budlevering1.Checked) then
1617              begin              begin
1618                if Storepakker1.Checked then                if Storepakker1.Checked then
# Line 1993  begin Line 1626  begin
1626                InitLillePakke();                InitLillePakke();
1627              end;              end;
1628            end;            end;
1629  // 20150310: start  
1630            SletStregkodelinieFraListboks2(StregKode);            SletStregkodelinieFraListboks2(StregKode);
1631  // 20150310: slut  
1632            PakkeshopStregkode := '';            PakkeshopStregkode := '';
1633            PakkeshopTjekkode := '';            PakkeshopTjekkode := '';
1634            BoghandlerStregkode := '';            BoghandlerStregkode := '';
# Line 2026  begin Line 1659  begin
1659    
1660    Key := #0;    Key := #0;
1661    
1662  end;  end; //End of OnKeyPress
1663    
1664  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
1665  const  const
# Line 2063  end; Line 1696  end;
1696    
1697  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);
1698  var  var
 // 20150309: start  
 //  i:integer;  
1699    i : Integer;    i : Integer;
1700    wrkAntal : String;    wrkAntal : String;
1701    wrkAntalIdag, wrkAntalSenere : Integer;    wrkAntalIdag, wrkAntalSenere : Integer;
1702  // 20150309: slut  
1703    
1704  begin  begin
1705      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
1706      begin      begin
1707        for i := ListBox2.items.count-1 downto 0 do        for i := ListBox2.items.count-1 downto 0 do
1708          if pos(StregKode,ListBox2.items[i]) <> 0 then          if pos(StregKode,ListBox2.items[i]) <> 0 then
1709          begin          begin
1710  // 20150309: start  
1711            // Ajourføring af tæller for manglende pakker (scanninger)            // Ajourføring af tæller for manglende pakker (scanninger)
1712            wrkAntal := StaticTextManglendePakker.Caption;            wrkAntal := StaticTextManglendePakker.Caption;
1713            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere
1714            begin            begin
1715              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen
1716              wrkAntalIdag := StrToInt(split(wrkAntal, '/', 2));              wrkAntalIdag := StrToInt( TUtils.split(wrkAntal, '/', 2));
1717  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));
1718  //            ShowMessage(SPLIT('data/another/','/',3));  //            ShowMessage(SPLIT('data/another/','/',3));
1719  //            ShowMessage(SPLIT('data/another','/',3));  //            ShowMessage(SPLIT('data/another','/',3));
1720              wrkAntalSenere := StrToInt(split(wrkAntal, '/', 3));              wrkAntalSenere := StrToInt( TUtils.split(wrkAntal, '/', 3));
1721            end            end
1722            else     // kun idag            else     // kun idag
1723            begin            begin
# Line 2112  begin Line 1743  begin
1743            begin            begin
1744              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);
1745            end;            end;
 // 20150309: slut  
1746    
 // 20150310: start  
1747            if (Scanningtype = '1') then            if (Scanningtype = '1') then
1748            begin            begin
1749              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
# Line 2192  begin Line 1821  begin
1821                PanelManglendePakker6.Visible := false;                PanelManglendePakker6.Visible := false;
1822              end;              end;
1823            end;            end;
1824  // 20150310: slut  
1825            ListBox2.items.delete(i);            ListBox2.items.delete(i);
1826          end;          end;
1827      end;      end;
# Line 2219  begin Line 1848  begin
1848  end;  end;
1849    
1850  procedure TMainForm.InitBladhus();  procedure TMainForm.InitBladhus();
 var  
   LogFilnavn : string;  
1851    
1852  begin  begin
1853    Altidprintepakkelabel1.Enabled := false;    Altidprintepakkelabel1.Enabled := false;
# Line 2230  begin Line 1857  begin
1857    Sprgefterboghandlernummer1.Enabled := false;    Sprgefterboghandlernummer1.Enabled := false;
1858    ListBox1.Visible := true;    ListBox1.Visible := true;
1859  //  TestFunktionen := '1';  //  TestFunktionen := '1';
1860  // 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  
1861    if Budlevering1.Checked then    if Budlevering1.Checked then
1862    begin    begin
1863      IndlesScanningLogFil();      IndlesScanningLogFil();
# Line 2283  begin Line 1870  begin
1870      01 :      01 :
1871            begin;      // NS            begin;      // NS
1872              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1873              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1874              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1875              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1876              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1877              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';
# Line 2297  begin Line 1884  begin
1884              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1885              Smpakker1.Enabled := true;              Smpakker1.Enabled := true;
1886              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
1887              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
1888              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
1889              DownloadButton01.Enabled := false;     // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;     // kontrolfil bruges ikke her
1890              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1891              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1892              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1893              IndlesManglendeScanninger();              IndlesManglendeScanninger();
# Line 2310  begin Line 1897  begin
1897              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1898             if (getProddag() = 'lørdag') then             if (getProddag() = 'lørdag') then
1899              begin              begin
1900                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
1901              end              end
1902              else              else
1903              begin              begin
1904                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
1905              end;              end;
1906              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1907              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1908              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1909              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1910              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';
# Line 2335  begin Line 1922  begin
1922              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1923              Smpakker1.Enabled := true;              Smpakker1.Enabled := true;
1924              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
1925              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
1926              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
1927              DownloadButton01.Enabled := false;    // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;    // kontrolfil bruges ikke her
1928              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1929              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1930              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1931            end;            end;
# Line 2354  var Line 1941  var
1941    URLStr : String;    URLStr : String;
1942    pakkestorrelse : String;    pakkestorrelse : String;
1943    PrintNyLabelInteger : Integer;    PrintNyLabelInteger : Integer;
1944    
1945      PakkeshopLabel: TPakkeshopLabel;
1946  begin  begin
1947    if RadioButton1.Checked then    if radioStorPakke.Checked then
1948    begin    begin
1949      pakkestorrelse := 'Stor';      pakkestorrelse := 'Stor';
1950    end;    end;
1951    if RadioButton2.Checked then    if radioLillePakke.Checked then
1952    begin    begin
1953      pakkestorrelse := 'Lille';      pakkestorrelse := 'Lille';
1954    end;    end;
1955    
1956    
1957    if Pakkernormal1.Checked then    if Pakkernormal1.Checked then
1958    begin    begin
1959       if (BoghandlerTjekkode = '') then       if (BoghandlerTjekkode = '') then
# Line 2391  begin Line 1982  begin
1982    begin    begin
1983       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);
1984    end    end
1985      else if menuIndlevering.Checked then
1986      begin
1987        URLStr := Format(UrlIndleveringsPakke,[Sted, PakkeNr]);
1988      end
1989    else    else
1990    begin    begin
1991      exit;      exit;
# Line 2425  begin Line 2020  begin
2020        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;
2021        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;
2022        PrintNyLabel := False;        PrintNyLabel := False;
2023  // 20150310: start  
2024        if Pakkeshoplevering1.Checked then        if Pakkeshoplevering1.Checked then
2025        begin        begin
 // 20150310: slut  
2026          try          try
2027            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);
2028          except on e:exception do          except on e:exception do
# Line 2438  begin Line 2032  begin
2032          begin          begin
2033            PrintNyLabel := True;            PrintNyLabel := True;
2034          end;          end;
 // 20150310: start  
2035        end;        end;
 // 20150310: slut  
2036       end       end
2037        else if menuIndlevering.Checked then
2038        begin
2039    
2040    
2041    
2042    
2043         Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2044         if (Kommentar = 'Ok') then
2045         begin
2046           PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2047           PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc
2048           RuteNummer := PakkeshopLabel.Koreliste + '  ->  ' +  PakkeshopLabel.PakkeshopTurid;
2049           Stregkode := PakkeshopLabel.Stregkode;
2050    
2051           LabelPrint.PrintPakkeshopLabel( PakkeshopLabel );
2052    
2053         end;
2054    
2055    
2056        end
2057      else      else
2058       begin       begin
2059        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;
# Line 2474  begin Line 2086  begin
2086          PrintNyLabel := True;          PrintNyLabel := True;
2087        end;        end;
2088      end;      end;
2089    
2090    
2091      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
2092      begin      begin
2093        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then
# Line 2514  begin Line 2128  begin
2128    if Pakkeshoplevering1.Checked then    if Pakkeshoplevering1.Checked then
2129      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';
2130    List1Pakkestorrelse := '';    List1Pakkestorrelse := '';
2131    if RadioButton1.Checked then    if radioStorPakke.Checked then
2132    begin    begin
2133      List1Pakkestorrelse := 'Stor pakke';      List1Pakkestorrelse := 'Stor pakke';
2134    end;    end;
2135    if RadioButton2.Checked then    if radioLillePakke.Checked then
2136    begin    begin
2137      List1Pakkestorrelse := 'Lille pakke';      List1Pakkestorrelse := 'Lille pakke';
2138    end;    end;
# Line 2540  begin Line 2154  begin
2154    if Budlevering1.Checked then    if Budlevering1.Checked then
2155    begin    begin
2156       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;
2157        if (RadioButton1.Checked) then        if (radioStorPakke.Checked) then
2158        begin        begin
2159          List1msg := List1msg + '; Stor pakke';          List1msg := List1msg + '; Stor pakke';
2160        end;        end;
2161        if (RadioButton2.Checked) then        if (radioLillePakke.Checked) then
2162        begin        begin
2163          List1msg := List1msg + '; Lille pakke';          List1msg := List1msg + '; Lille pakke';
2164        end;        end;
# Line 2566  begin Line 2180  begin
2180        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;
2181      end;      end;
2182    end;    end;
2183      if menuIndlevering.Checked then
2184      begin
2185        List1Msg := Stregkode;
2186      end;
2187    
2188    
2189    ListBox1.Items.Insert(0,List1Msg);    ListBox1.Items.Insert(0,List1Msg);
2190    logTekst := RightStr(List1Msg, Length(List1Msg)-10);    logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2191    SkrivScanningLogFil(logTekst);    SkrivScanningLogFil(logTekst);
2192  end;  end;
2193    
2194  procedure TMainForm.UploadButton01Click(Sender: TObject);  procedure TMainForm.BtnUploadLogfilClick(Sender: TObject);
2195  begin  begin
2196    UploadLogfilTilDAO();    UploadLogfilTilDAO();
2197    UploadInifilTilDAO();    UploadInifilTilDAO();
# Line 2588  pakkeForkertSted : Integer; Line 2208  pakkeForkertSted : Integer;
2208    nytRuteNummer, nyFarve : String;    nytRuteNummer, nyFarve : String;
2209  begin  begin
2210    if Budlevering1.Checked then    if Budlevering1.Checked then
2211       RuteNummerST.Color := HexToTColor(Farve);       RuteNummerST.Color := TUtils.HexToTColor(Farve);
2212    
2213    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
2214    if pakkeErScannet = 0 then    if pakkeErScannet = 0 then
# Line 2601  begin Line 2221  begin
2221    end;    end;
2222    pakkeForkertSted := pos('burde være hos', Kommentar);    pakkeForkertSted := pos('burde være hos', Kommentar);
2223    
2224  // 20150306: start  
2225  //  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
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  
 // 20150306: slut  
2227    begin    begin
2228        if (RuteNummer = 'Ukendt') then        if (RuteNummer = 'Ukendt') then
2229        begin        begin
# Line 2631  begin Line 2250  begin
2250       if (BoghandlerNavn = 'Ukendt pakke') then       if (BoghandlerNavn = 'Ukendt pakke') then
2251       begin       begin
2252          PrintNyLabel := false;          PrintNyLabel := false;
2253  // 20150306: start  
 //        PlaySound(PWideChar(AlarmLyd));  
2254          PlaySound(PWideChar(AlarmLyd));          PlaySound(PWideChar(AlarmLyd));
2255          MainForm.Color := clRed;          MainForm.Color := clRed;
2256          PakkeshopNulstil.Visible := true;          btnNulstil.Visible := true;
2257  // 20150306: slut  
2258       end       end
2259       else       else
2260       begin       begin
# Line 2646  begin Line 2264  begin
2264            PrintNyLabel := true;            PrintNyLabel := true;
2265            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;
2266            nyFarve := Farve;            nyFarve := Farve;
2267            RuteNummerST.Color := HexToTColor(nyFarve);            RuteNummerST.Color := TUtils.HexToTColor(nyFarve);
2268            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;
2269            RuteNummer := nytRuteNummer;            RuteNummer := nytRuteNummer;
2270            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2271            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2272            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2273  // 20150213: start  
2274            if (PrinterNavn = 'Ingen') then            if (PrinterNavn = 'Ingen') then
2275            begin            begin
2276               PrintNyLabel := false;               PrintNyLabel := false;
2277            end;            end;
2278  // 20150313: slut  
 // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2279            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
2280            begin            begin
2281              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2282              MainForm.Color := clRed;              MainForm.Color := clRed;
2283              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2284            end;            end;
2285  // 20150306: slut  
2286         end;         end;
2287         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);
2288         if (kontrolKoreliste <> RuteNummer) then         if (kontrolKoreliste <> RuteNummer) then
# Line 2685  begin Line 2301  begin
2301            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2302            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2303            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2304  // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2305            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
2306            begin            begin
2307              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2308              MainForm.Color := clRed;              MainForm.Color := clRed;
2309              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2310            end;            end;
2311  // 20150306: slut  
 // 20150306: start  
 //       end  
 //       else  
 //       begin  
2312         end;         end;
2313       end;       end;
2314    
# Line 2715  begin Line 2326  begin
2326               if PrintNyLabel or (RuteNummer = 'Rutenr') then               if PrintNyLabel or (RuteNummer = 'Rutenr') then
2327  // 20150304: slut  // 20150304: slut
2328                begin                begin
2329                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2330                end;                end;
2331              end;              end;
2332        01 :  begin;        01 :  begin;
2333               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2334                    // 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
2335                    // 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')
2336                begin                begin
2337                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2338                end;                end;
2339              end;              end;
2340        02 :  begin;        02 :  begin;
2341                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
2342                begin                begin
2343                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2344                end;                end;
2345              end;              end;
2346        03 :  begin;        03 :  begin;
2347               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2348                    // 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
2349                    // 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')
2350               begin               begin
2351                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2352               end;               end;
2353              end;              end;
2354        04 :  begin;        04 :  begin;
2355                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
2356                begin                begin
2357                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2358                end;                end;
2359              end;              end;
2360        else        else
# Line 2757  begin Line 2368  begin
2368      exit;      exit;
2369    end;    end;
2370    
2371    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
2372    begin    begin
2373    end    end
2374    else    else
2375    begin    begin
2376      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
2377      begin      begin
2378        logTekst := 'Printer label type ';        logTekst := 'Printer label type ';
2379        if (CheckBox2.Checked) then        if (chkAltidPrintLabel.Checked) then
2380        begin        begin
2381          logTekst := logTekst + 'Alle ';          logTekst := logTekst + 'Alle ';
2382        end        end
# Line 2779  begin Line 2390  begin
2390        end;        end;
2391        logTekst := logTekst + ' for '+BoghandlerNavn;        logTekst := logTekst + ' for '+BoghandlerNavn;
2392        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
2393        with Printer do  
2394        begin        LabelPrint.PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn) ;
2395          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;  
2396      end;      end;
2397    end;    end;
2398    
2399  end;  end;
2400    
 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;  
2401    
2402    
2403  procedure TMainForm.RadioButton1Click(Sender: TObject);  procedure TMainForm.radioStorPakkeClick(Sender: TObject);
2404  begin  begin
2405      Storepakker1.Checked := true;      Storepakker1.Checked := true;
2406      RadioButton1.Checked := true;      radioStorPakke.Checked := true;
2407  end;  end;
2408    
2409  procedure TMainForm.RadioButton2Click(Sender: TObject);  procedure TMainForm.radioLillePakkeClick(Sender: TObject);
2410  begin  begin
2411      Smpakker1.Checked := true;      Smpakker1.Checked := true;
2412      RadioButton2.Checked := true;      radioLillePakke.Checked := true;
2413  end;  end;
2414    
2415    
2416  procedure TMainForm.CheckBox1Click(Sender: TObject);  procedure TMainForm.chkSporgEfterKundeClick(Sender: TObject);
2417  begin  begin
2418    if CheckBox1.Checked then    if chkSporgEfterKunde.Checked then
2419    begin    begin
2420       Sprgefterboghandlernummer1.Checked := true;       Sprgefterboghandlernummer1.Checked := true;
2421    end    end
# Line 2875  begin Line 2426  begin
2426  end;  end;
2427    
2428    
2429  procedure TMainForm.CheckBox2Click(Sender: TObject);  procedure TMainForm.chkAltidPrintLabelClick(Sender: TObject);
2430  begin  begin
2431    if CheckBox2.Checked then    if chkAltidPrintLabel.Checked then
2432    begin    begin
2433       Altidprintepakkelabel1.Checked := true;       Altidprintepakkelabel1.Checked := true;
2434    end    end
# Line 2888  begin Line 2439  begin
2439    
2440  end;  end;
2441    
2442  procedure TMainForm.CheckBox3Click(Sender: TObject);  procedure TMainForm.chkScanTjekkodeClick(Sender: TObject);
2443  begin  begin
2444    if CheckBox3.Checked then    if chkScanTjekkode.Checked then
2445    begin    begin
2446       Scanogstjekkoden1.Checked := true;       Scanogstjekkoden1.Checked := true;
2447    end    end
# Line 2912  begin Line 2463  begin
2463      Automatiskvalg1.Checked := false;      Automatiskvalg1.Checked := false;
2464      PanelValgA.Color := clBtnFace;      PanelValgA.Color := clBtnFace;
2465      PanelValgA.Font.Color := clWindowText;      PanelValgA.Font.Color := clWindowText;
2466  // 20150317: start  
2467      if (SpecialVersionSted = '01')      if (SpecialVersionSted = '01')
2468      or (SpecialVersionSted = '02')        or (SpecialVersionSted = '02')
2469      or (SpecialVersionSted = '03')        or (SpecialVersionSted = '03')
2470      or (SpecialVersionSted = '04') then        or (SpecialVersionSted = '04') then
2471      begin      begin
2472        // 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)
2473        PanelValgA.Enabled := false;        PanelValgA.Enabled := false;
# Line 2936  begin Line 2487  begin
2487    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke
2488    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...');
2489    
2490          // Tjekker urls    try
2491          logTekst := 'Tjekker urls.';      // Tjekker urls
2492          ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);      logTekst := 'Tjekker urls.';
2493          SkrivScanningLogFil(logTekst);      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2494        SkrivScanningLogFil(logTekst);
2495    
         // 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;  
2496    
         // 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;  
2497    
2498          // Tjekker UrlReturBoghandler      // Tjekker UrlNormal
2499          if PanelValg3.Enabled = true then      if PanelValg1.Enabled = true then
2500          begin      begin
2501            if CheckUrl(UrlReturBoghandler) then        TjekkerEnkeltUrl('UrlNormal', UrlNormal, urlFejl);
2502            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;  
2503    
2504          // Tjekker UrlBudlevering      // Tjekker UrlReturDAO
2505          if PanelValg4.Enabled = true then      if PanelValg2.Enabled = true then
2506          begin      begin
2507            if CheckUrl(UrlBudlevering) then        TjekkerEnkeltUrl('UrlReturDAO', UrlReturDAO, urlFejl);
2508            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;  
2509    
2510          // Tjekker UrlPakkeshoplevering      // Tjekker UrlReturBoghandler
2511          if PanelValg5.Enabled = true then      if PanelValg3.Enabled = true then
2512          begin      begin
2513            if CheckUrl(UrlPakkeshoplevering) then        TjekkerEnkeltUrl('UrlReturBoghandler', UrlReturBoghandler, urlFejl);
2514            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;  
2515    
2516          // Tjekker UrlReturPakkeshop      // Tjekker UrlBudlevering
2517          if PanelValg6.Enabled = true then      if PanelValg4.Enabled = true then
2518          begin      begin
2519            if CheckUrl(UrlReturPakkeshop) then        TjekkerEnkeltUrl('UrlBudlevering', UrlBudlevering, urlFejl);
2520            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;  
2521    
2522          // Tjekker UrlManglendeScanninger      // Tjekker UrlPakkeshoplevering
2523          if (PanelValg1.Enabled = true)      if PanelValg5.Enabled = true then
2524          or (PanelValg4.Enabled = true) then      begin
2525          begin        TjekkerEnkeltUrl('UrlPakkeshoplevering', UrlPakkeshoplevering, urlFejl);
2526            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;  
2527    
2528          // Tjekker UrlPakkeshopManglendeScanninger      // Tjekker UrlReturPakkeshop
2529          if PanelValg5.Enabled = true then      if PanelValg6.Enabled = true then
2530          begin      begin
2531            if CheckUrl(UrlPakkeshopManglendeScanninger) then        TjekkerEnkeltUrl('UrlReturPakkeshop', UrlReturPakkeshop, urlFejl);
2532            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;  
2533    
2534          // Tjekker UrlPakkeshopManglendeReturScanninger      // Tjekker UrlManglendeScanninger
2535          if PanelValg6.Enabled = true then      if (PanelValg1.Enabled = true) or (PanelValg4.Enabled = true) then
2536          begin      begin
2537            if CheckUrl(UrlPakkeshopManglendeReturScanninger) then        TjekkerEnkeltUrl('UrlManglendeScanninger', UrlManglendeScanninger, urlFejl);
2538            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;  
2539    
2540          // Tjekker UrlEKLoverforsel      // Tjekker UrlPakkeshopManglendeScanninger
2541          if PanelValg1.Enabled = true then      if PanelValg5.Enabled = true then
2542          begin      begin
2543            if CheckUrl(UrlEKLoverforsel) then        TjekkerEnkeltUrl('UrlPakkeshopManglendeScanninger', UrlPakkeshopManglendeScanninger, urlFejl);
2544            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;  
2545    
2546  // 20150330: start      // Tjekker UrlPakkeshopManglendeReturScanninger
2547          // Tjekker UrlEKLoverforselPakkeshop      if PanelValg6.Enabled = true then
2548          if PanelValg5.Enabled = true then      begin
2549          begin        TjekkerEnkeltUrl('UrlPakkeshopManglendeReturScanninger', UrlPakkeshopManglendeReturScanninger, urlFejl);
2550            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  
2551    
2552          // Tjekker UrlFindPakketype     // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
2553          if CheckUrl(UrlFindPakketype) then      if PanelValg7.Enabled = true then
2554          begin      begin
2555            logTekst := 'UrlFindPakketype accepteret: ' + UrlFindPakketype;        TjekkerEnkeltUrl('UrlIndleveringsPakke', UrlIndleveringsPakke, urlFejl);
2556            SkrivScanningLogFil(logTekst);        TjekkerEnkeltUrl('UrlIndleveringsPakkeManglendeScanninger', UrlIndleveringsPakkeManglendeScanninger, urlFejl);
2557          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;  
2558    
2559          // Tjekker UrlSendPrograminfo      // Tjekker UrlEKLoverforsel
2560          if CheckUrl(UrlSendPrograminfo) then      if PanelValg1.Enabled = true then
2561          begin      begin
2562            logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;        TjekkerEnkeltUrl('UrlEKLoverforsel', UrlEKLoverforsel, urlFejl);
2563            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;  
2564    
         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;  
2565    
2566        // Tjekker UrlEKLoverforselPakkeshop
2567        if PanelValg5.Enabled = true then
2568        begin
2569          TjekkerEnkeltUrl('UrlEKLoverforselPakkeshop', UrlEKLoverforselPakkeshop, urlFejl);
2570        end;
2571    
2572    
2573        // Tjekker UrlFindPakketype
2574        TjekkerEnkeltUrl('UrlFindPakketype', UrlFindPakketype, urlFejl);
2575    
2576        // Tjekker UrlSendPrograminfo
2577        TjekkerEnkeltUrl('UrlSendPrograminfo', UrlSendPrograminfo, urlFejl);
2578    
2579    
2580    
2581        logTekst := 'urls er ok';
2582        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2583        SkrivScanningLogFil(logTekst);
2584    
2585      Except
2586        TjekUrls := '-';   // markerer at der var fejl
2587    
2588      end;
2589  end;  end;
2590    
2591  function TMainForm.FileTime2DateTime(FileTime: TFileTime): TDateTime;  procedure TMainForm.TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
2592  var  const
2593     LocalFileTime: TFileTime;    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
    SystemTime: TSystemTime;  
2594  begin  begin
2595     FileTimeToLocalFileTime(FileTime, LocalFileTime) ;    if TUtils.CheckUrl(Url) then
2596     FileTimeToSystemTime(LocalFileTime, SystemTime) ;  
2597     Result := SystemTimeToDateTime(SystemTime) ;    begin
2598        logTekst := UrlNavn + ' accepteret: ' + Url;
2599        SkrivScanningLogFil(logTekst);
2600      end
2601      else
2602      begin
2603        inc(urlFejl);   // Optæller antal fejl
2604        logTekst := UrlNavn + ' svarer ikke: ' + Url;
2605        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2606        if TjekUrls = '1' then
2607        begin
2608          logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2609        end;
2610    
2611        SkrivScanningLogFil(logTekst);
2612    
2613        if TjekUrls = '1' then
2614        begin
2615          ShowMessage(logTekst);
2616          UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2617          Application.Terminate;
2618    
2619          raise Exception.Create('UrlFejl');
2620    
2621        end;
2622      end;
2623    
2624  end;  end;
2625    
2626    
2627    
2628  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);
2629  var  var
2630    SR: TSearchRec;    SR: TSearchRec;
# Line 3342  begin Line 2641  begin
2641      repeat      repeat
2642        if (SR.Attr <> faDirectory) then        if (SR.Attr <> faDirectory) then
2643        begin        begin
2644    
2645          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring
2646          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse
2647          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse          dtCreation := TUtils.FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse
2648          // Selvom creation date godt kan være forskellig fra modified date,          // Selvom creation date godt kan være forskellig fra modified date,
2649          // skal vi alligevel altid tjekke filens alder ud fra modified date          // skal vi alligevel altid tjekke filens alder ud fra modified date
2650          // (æ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 2681  begin
2681    end;    end;
2682  end;  end;
2683    
2684  procedure TMainForm.PakkeshopNulstilClick(Sender: TObject);  procedure TMainForm.btnNulstilClick(Sender: TObject);
2685  begin  begin
2686    PakkeshopStregkode := '';    PakkeshopStregkode := '';
2687    PakkeshopTjekkode := '';    PakkeshopTjekkode := '';
2688    PakkeshopNulstil.Visible := false;    btnNulstil.Visible := false;
2689    PakkeshopText1.Caption := 'Stregkode';    PakkeshopText1.Caption := 'Stregkode';
2690    BoghandlerStregkode := '';    BoghandlerStregkode := '';
2691    BoghandlerTjekkode := '';    BoghandlerTjekkode := '';
# Line 3403  begin Line 2703  begin
2703  //  MainForm.Color := HexToTColor(Farve);  //  MainForm.Color := HexToTColor(Farve);
2704    if Farve <> '' then    if Farve <> '' then
2705    begin    begin
2706       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  
2707    end;    end;
2708    if (Budlevering1.Checked) then    if (Budlevering1.Checked) then
2709    begin    begin
# Line 3477  end; Line 2767  end;
2767    
2768  procedure TMainForm.PanelValgAClick(Sender: TObject);  procedure TMainForm.PanelValgAClick(Sender: TObject);
2769  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;  
 *)  
2770  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
2771  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
2772       AutomatiskValg1.Checked := true;    AutomatiskValg1.Checked := true;
2773       PanelValgA.Color := clGreen;    PanelValgA.Color := clGreen;
2774       PanelValgA.Font.Color := clWhite;    PanelValgA.Font.Color := clWhite;
2775  // 20150311: slut  
2776    
2777    
2778  end;  end;
2779    
2780  procedure TMainForm.Pakkernormal1Click(Sender: TObject);  procedure TMainForm.Pakkernormal1Click(Sender: TObject);
# Line 3514  var Line 2791  var
2791    BoghandlerNavn : String;    BoghandlerNavn : String;
2792    Koreliste : String;    Koreliste : String;
2793    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
2794    SmsKode : String;    SmsKode : String;
2795    DBKbane : String;    DBKbane : String;
2796    Leveringssted : String;    Leveringssted : String;
# Line 3536  begin Line 2812  begin
2812      // Her kommer en alarm og rød skærm      // Her kommer en alarm og rød skærm
2813      PlaySound(PWideChar(AlarmLyd));      PlaySound(PWideChar(AlarmLyd));
2814      MainForm.Color := clRed;      MainForm.Color := clRed;
2815      PakkeshopNulstil.Visible := true;      btnNulstil.Visible := true;
2816    end    end
2817    else    else
2818    begin    begin
2819      Falsk := False;      Falsk := False;
2820      Sand := True;  
2821      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');
2822      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
2823      SmsKode := '999999';      SmsKode := '999999';
# Line 3561  var Line 2837  var
2837    BoghandlerNavn : String;    BoghandlerNavn : String;
2838    Koreliste : String;    Koreliste : String;
2839    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
2840    SmsKode : String;    SmsKode : String;
2841    DBKbane : String;    DBKbane : String;
2842    Leveringssted : String;    Leveringssted : String;
# Line 3570  begin Line 2845  begin
2845    Kommentar := '***** Kommentar *****';    Kommentar := '***** Kommentar *****';
2846    BoghandlerNavn := 'Modtagernavn';    BoghandlerNavn := 'Modtagernavn';
2847    Falsk := False;    Falsk := False;
   Sand := True;  
2848    
2849    if (Printer.Printers.Count = 0) then  
2850      if (LabelPrint.GetPrinterCount() = 0) then
2851    begin    begin
2852      ShowMessage('Der er ikke installeret en printer på denne PC.');      ShowMessage('Der er ikke installeret en printer på denne PC.');
2853    end    end
# Line 3587  begin Line 2862  begin
2862      DBKbane := '999';      DBKbane := '999';
2863      Leveringssted := 'XXX';      Leveringssted := 'XXX';
2864      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);
2865      CheckPrintQue('Test');      LabelPrint.CheckPrintQue('Test', PrinterNavn);
2866    end;    end;
2867    FocusControl(StregkodeST);    FocusControl(StregkodeST);
2868  end;  end;
# Line 3596  procedure TMainForm.Timer1Timer(Sender: Line 2871  procedure TMainForm.Timer1Timer(Sender:
2871  begin  begin
2872    if (TjekPrinter = '1') then    if (TjekPrinter = '1') then
2873    begin    begin
2874      CheckPrintQue('Timer');      LabelPrint.CheckPrintQue('Timer', PrinterNavn);
2875    end    end
2876    else    else
2877    begin    begin
# Line 3605  begin Line 2880  begin
2880    end;    end;
2881  end;  end;
2882    
2883  {  
  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;  
2884    
2885  procedure TMainForm.Om1Click(Sender: TObject);  procedure TMainForm.Om1Click(Sender: TObject);
2886  const  const
# Line 3643  var Line 2889  var
2889   tekst, filversion : String;   tekst, filversion : String;
2890  begin  begin
2891    
2892    filversion := Sto_GetFmtFileVersion('','');    filversion := TUtils.Sto_GetFmtFileVersion('');
2893    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';
2894    
2895    tekst := tekst+crlf+crlf;    tekst := tekst+crlf+crlf;
# Line 3665  begin Line 2911  begin
2911          end          end
2912          else          else
2913          begin          begin
2914            tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
2915          end;          end;
2916      end      end
2917      else      else
2918      begin      begin
2919        tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';        tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
2920      end;      end;
2921    end;    end;
2922    
# Line 3738  begin Line 2984  begin
2984    
2985    if FileExists(fileName) then    if FileExists(fileName) then
2986    begin    begin
2987      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
2988      begin      begin
2989        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
2990        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
# Line 3762  begin Line 3008  begin
3008    
3009    if FileExists(fileName) then    if FileExists(fileName) then
3010    begin    begin
3011      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3012      begin      begin
3013        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3014        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
3015      end      end
3016      else      else
3017      begin      begin
3018        ShowMessage('Acrobat Reader er ikke installeret!');        ShowMessage('Adobe Reader er ikke installeret!');
3019      end;      end;
3020    end    end
3021    else    else
# Line 3778  begin Line 3024  begin
3024    end;    end;
3025  end;  end;
3026    
3027    procedure TMainForm.menuIndleveringClick(Sender: TObject);
3028    begin
3029      Scanningtype := '7';
3030      NulstilAutomatiskValg();
3031      InitIndleveringskode();
3032    end;
3033    
3034  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);
3035  begin  begin
3036    
3037    if Sprgefterboghandlernummer1.Checked then    if Sprgefterboghandlernummer1.Checked then
3038    begin    begin
3039       CheckBox1.Checked := true;       chkSporgEfterKunde.Checked := true;
3040    end    end
3041    else    else
3042    begin    begin
3043       CheckBox1.Checked := false;       chkSporgEfterKunde.Checked := false;
3044    end;    end;
3045    
3046    
# Line 3810  end; Line 3063  end;
3063  procedure TMainForm.InitNatxpresslevering();  procedure TMainForm.InitNatxpresslevering();
3064  begin  begin
3065        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3066        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3067        Pakkernormal1.Checked := true;        Pakkernormal1.Checked := true;
3068        InitForm(FarveNormal,TitelNormal,UrlNormal);        InitForm(FarveNormal,TitelNormal,UrlNormal);
3069        PanelValg1.Color := clGreen;        PanelValg1.Color := clGreen;
3070        PanelValg1.Font.Color := clWhite;        PanelValg1.Font.Color := clWhite;
3071        CheckBox1.Enabled := true;  
3072        CheckBox2.Enabled := true;        chkAltidPrintLabel.Enabled := true;
3073        Altidprintepakkelabel1.Enabled := true;        Altidprintepakkelabel1.Enabled := true;
3074        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3075        CheckBox2.Checked := false;        chkAltidPrintLabel.Checked := false;
3076        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3077        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3078        Sprgefterboghandlernummer1.Enabled := true;        Sprgefterboghandlernummer1.Enabled := true;
3079        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3080        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3081        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3082        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3083        ListBox1.Visible := true;        ListBox1.Visible := true;
3084        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3085        EKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3086        InitLillePakke();        InitLillePakke();
3087        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3088        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3843  procedure TMainForm.InitReturFraDao(); Line 3096  procedure TMainForm.InitReturFraDao();
3096  begin  begin
3097        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3098        ReturpakkerfraDAO1.Checked := true;        ReturpakkerfraDAO1.Checked := true;
3099        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3100        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);
3101        PanelValg2.Color := clGreen;        PanelValg2.Color := clGreen;
3102        PanelValg2.Font.Color := clWhite;        PanelValg2.Font.Color := clWhite;
3103        CheckBox1.Enabled := false;  
3104        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3105        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3106        CheckBox2.Checked := false;  
3107        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3108        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3109        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3110        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3111        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3112        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3113        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3114        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3115        ListBox1.Visible := true;        ListBox1.Visible := true;
3116        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3117        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3118        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3119        InitLillePakke();        InitLillePakke();
3120  end;  end;
3121    
# Line 3870  procedure TMainForm.InitReturFraKunde(); Line 3123  procedure TMainForm.InitReturFraKunde();
3123  begin  begin
3124        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3125        Returpakkerfraboghandler1.Checked := true;        Returpakkerfraboghandler1.Checked := true;
3126        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3127        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);
3128        PanelValg3.Color := clGreen;        PanelValg3.Color := clGreen;
3129        PanelValg3.Font.Color := clWhite;        PanelValg3.Font.Color := clWhite;
3130        CheckBox1.Enabled := false;  
3131        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3132        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
       CheckBox2.Checked := false;  
3133        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3134        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3135        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3136        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3137        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3138        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3139        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3140        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3141        ListBox1.Visible := true;        ListBox1.Visible := true;
3142        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3143        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3144        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3145        InitLillePakke();        InitLillePakke();
3146  end;  end;
3147    
# Line 3897  procedure TMainForm.InitDirektelevering( Line 3149  procedure TMainForm.InitDirektelevering(
3149  begin  begin
3150        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3151        Budlevering1.Checked := true;        Budlevering1.Checked := true;
3152        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3153        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);
3154        PanelValg4.Color := clGreen;        PanelValg4.Color := clGreen;
3155        PanelValg4.Font.Color := clWhite;        PanelValg4.Font.Color := clWhite;
3156        CheckBox1.Enabled := false;  
3157        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3158        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3159        CheckBox2.Checked := false;  
3160        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3161        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3162        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3163        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3164        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3165        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3166        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3167        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3168        ListBox1.Visible := true;        ListBox1.Visible := true;
3169        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3170        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3171        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3172        DownloadButton03.Visible := false;        BtnDownloadRuteskiftFil.Visible := false;
3173        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3174        IdFTP1.Passive := true;        IdFTP1.Passive := true;
3175        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3176        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 3185  procedure TMainForm.InitPakkeshopleverin
3185  begin  begin
3186        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3187        Pakkeshoplevering1.Checked := true;        Pakkeshoplevering1.Checked := true;
3188        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3189        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);
3190        PanelValg5.Color := clGreen;        PanelValg5.Color := clGreen;
3191        PanelValg5.Font.Color := clWhite;        PanelValg5.Font.Color := clWhite;
3192        CheckBox1.Enabled := false;  
3193        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3194        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3195        CheckBox2.Checked := false;  
3196        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3197        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3198        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3199        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3200        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3201        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3202        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3203        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3204        ListBox1.Visible := true;        ListBox1.Visible := true;
3205        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3206        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3207        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3208  // 20150330: start  
3209  //      EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := true;
3210        EKLoverforsel.Enabled := true;  
 // 20150330: slut  
3211        InitLillePakke();        InitLillePakke();
3212        IndlesScanningLogFil();        IndlesScanningLogFil();
3213        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3971  procedure TMainForm.InitReturFraPakkesho Line 3222  procedure TMainForm.InitReturFraPakkesho
3222  begin  begin
3223        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3224        Returpakkerfrapakkeshop1.Checked := true;        Returpakkerfrapakkeshop1.Checked := true;
3225        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3226        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);
3227        PanelValg6.Color := clGreen;        PanelValg6.Color := clGreen;
3228        PanelValg6.Font.Color := clWhite;        PanelValg6.Font.Color := clWhite;
3229        CheckBox1.Enabled := false;  
3230        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3231        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3232        CheckBox2.Checked := false;  
3233        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3234        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3235        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3236        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3237        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3238        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3239        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3240        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3241        ListBox1.Visible := true;        ListBox1.Visible := true;
3242        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3243        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3244        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3245        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3246        InitLillePakke();        InitLillePakke();
3247        IndlesScanningLogFil();        IndlesScanningLogFil();
3248        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4011  end; Line 3262  end;
3262    
3263  procedure TMainForm.InitIndleveringskode();  procedure TMainForm.InitIndleveringskode();
3264  begin  begin
3265          menuIndlevering.Checked := true;
3266        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3267        Returpakkerfrapakkeshop1.Checked := true;  
3268        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3269        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);
3270        PanelValg7.Color := clGreen;        PanelValg7.Color := clGreen;
3271        PanelValg7.Font.Color := clWhite;        PanelValg7.Font.Color := clWhite;
3272        CheckBox1.Enabled := false;  
3273        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3274        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3275        CheckBox2.Checked := false;  
3276        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3277        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
       CheckBox1.Checked := false;  
3278        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3279          chkSporgEfterKunde.Checked := false;
3280    
3281    
3282    
3283        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3284        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3285        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3286        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3287        ListBox1.Visible := true;        ListBox1.Visible := true;
3288        ListBox1.Items.Clear;        ListBox1.Items.Clear();
3289        DownloadButton01.Enabled := false;  
3290        OpdaterListenButton01.Enabled := true;        BtnDownloadKontrolfil.Enabled := false;
3291        EKLoverforsel.Enabled := false;        BtnOpdaterListen.Enabled := true;
3292          BtnEKLoverforsel.Enabled := false;
3293        InitLillePakke();        InitLillePakke();
3294        IndlesScanningLogFil();        IndlesScanningLogFil();
3295        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4057  end; Line 3313  end;
3313    
3314  procedure TMainForm.InitLillePakke();  procedure TMainForm.InitLillePakke();
3315  begin  begin
3316    RadioButton2.Checked := true;    radioLillePakke.Checked := true;
3317    Smpakker1.Checked := true;    Smpakker1.Checked := true;
 // 20150310: start  
3318  //  Stregkode := '';  //  Stregkode := '';
 // 20150310: slut  
3319  end;  end;
3320    
3321  procedure TMainForm.InitStorPakke();  procedure TMainForm.InitStorPakke();
3322  begin  begin
3323    RadioButton1.Checked := true;    radioStorPakke.Checked := true;
3324    Storepakker1.Checked := true;    Storepakker1.Checked := true;
3325  // 20150310: start  // 20150310: start
3326  //  Stregkode := '';  //  Stregkode := '';
3327  // 20150310: slut  // 20150310: slut
3328  end;  end;
3329    
 /// <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]]);  
3330    
     // 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;  
3331    
3332  procedure TMainForm.PlaySound(filename : PWideChar);  procedure TMainForm.PlaySound(filename : PWideChar);
3333  begin  begin
# Line 4163  end; Line 3352  end;
3352    
3353  procedure TMainForm.Testlyd2Click(Sender: TObject);  procedure TMainForm.Testlyd2Click(Sender: TObject);
3354  begin  begin
 // 20150317: start  
3355    if (PakkeshopText1.Caption = 'Tjekkode') then    if (PakkeshopText1.Caption = 'Tjekkode') then
3356    begin    begin
3357       if ScannetOkTilTjekkodeLyd  <> '' then       if ScannetOkTilTjekkodeLyd  <> '' then
# Line 4176  begin Line 3364  begin
3364       end;       end;
3365       exit;       exit;
3366    end;    end;
 // 20150317: slut  
3367    
3368    if Smpakker1.Checked then    if Smpakker1.Checked then
3369       if ScannetOkLyd  <> '' then       if ScannetOkLyd  <> '' then
# Line 4185  begin Line 3372  begin
3372       end       end
3373       else       else
3374       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet)'), 'Information', MB_OK);  
3375         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3376       end;       end;
3377    if Storepakker1.Checked then    if Storepakker1.Checked then
3378       if ScannetOkStorLyd  <> '' then       if ScannetOkStorLyd  <> '' then
# Line 4197  begin Line 3381  begin
3381       end       end
3382       else       else
3383       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet stor)'), 'Information', MB_OK);  
3384         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3385       end;       end;
3386  end;  end;
3387    
# Line 4217  begin; Line 3398  begin;
3398    CheckCode();    CheckCode();
3399  end;  end;
3400    
3401  procedure TMainForm.EKLoverforselClick(Sender: TObject);  procedure TMainForm.BtnEKLoverforselClick(Sender: TObject);
3402  var  var
3403    WebSvar : String;    WebSvar : String;
3404    URLStr : String;    URLStr : String;
# Line 4227  var Line 3408  var
3408    status, kommentar : String;    status, kommentar : String;
3409    
3410  begin  begin
3411      EKLoverforsel.Enabled := false;      BtnEKLoverforsel.Enabled := false;
3412    
3413      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');
3414      logTekst := 'Overfører de scannede pakker til EKL';      logTekst := 'Overfører de scannede pakker til EKL';
3415      SkrivScanningLogFil(logTekst);      SkrivScanningLogFil(logTekst);
3416      StedKode := Sted;      StedKode := Sted;
3417      URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);      URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);
3418  // 20150330: start  
3419      if PanelValg5.Color = clGreen then      if PanelValg5.Color = clGreen then
3420      begin      begin
3421        URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);        URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);
3422      end;      end;
3423  // 20150330: slut  
3424    
3425      try      try
3426      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
# Line 4290  begin Line 3471  begin
3471        end;        end;
3472      end;      end;
3473    
3474      EKLoverforsel.Enabled := true;      BtnEKLoverforsel.Enabled := true;
3475    
3476      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
3477    
# Line 4307  begin Line 3488  begin
3488           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';
3489         end;         end;
3490         KommentarST.Caption := Kommentar;         KommentarST.Caption := Kommentar;
3491         PakkeshopNulstil.Visible := true;         btnNulstil.Visible := true;
3492      end;      end;
3493    
3494  end;  end;
# Line 4331  begin Line 3512  begin
3512    else    else
3513      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);
3514  }  }
3515    Svar := 'Beregnet: '+CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;    Svar := 'Beregnet: ' + TUtils.CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;
3516    
3517    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);
3518    CheckCode();    CheckCode();
# Line 4339  end; Line 3520  end;
3520    
3521  end;  end;
3522    
 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;  
3523    
3524  //  //
3525  // Bladhus ***  // Bladhus ***
# Line 4855  begin Line 3997  begin
3997    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
3998  end;  end;
3999    
4000  procedure TMainForm.DownloadButton01Click(Sender: TObject);  procedure TMainForm.BtnDownloadKontrolfilClick(Sender: TObject);
4001  begin  begin
4002      DownloadBladhusKontrolfil();      DownloadBladhusKontrolfil();
4003      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
4004  end;  end;
4005    
4006  procedure TMainForm.OpdaterListenButton01Click(Sender: TObject);  procedure TMainForm.BtnOpdaterListenClick(Sender: TObject);
4007  const  const
4008    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
4009    
# Line 4870  begin Line 4012  begin
4012      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
4013  end;  end;
4014    
4015  procedure TMainForm.DownloadButton03Click(Sender: TObject);  procedure TMainForm.BtnDownloadRuteskiftFilClick(Sender: TObject);
4016  begin  begin
4017      if (getProddag() = 'lørdag') then      if (getProddag() = 'lørdag') then
4018      begin      begin
# Line 4879  begin Line 4021  begin
4021      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
4022  end;  end;
4023    
4024  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;  
4025    
4026  procedure TMainForm.IndlesManglendeScanninger();  procedure TMainForm.IndlesManglendeScanninger();
4027  var  var
# Line 4905  var Line 4035  var
4035    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;
4036    pakketyper : TStrings;    pakketyper : TStrings;
4037    antlin : Integer;    antlin : Integer;
4038  // 20150306: start  
4039    antlinIdag, antlinSenere : Integer;    antlinIdag, antlinSenere : Integer;
4040  // 20150306: slut  
4041    XmlFelter : TStrings;    XmlFelter : TStrings;
4042    
4043   begin   begin
# Line 4927  var Line 4057  var
4057          StedKode := Sted;          StedKode := Sted;
4058        end;        end;
4059    
4060  // 20150310: start  
4061  (*  
4062      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  
4063       begin       begin
4064        URLStr := Format(UrlManglendeScanninger,[StedKode,'B2']);        URLStr := Format(UrlIndleveringsPakkeManglendeScanninger, [StedKode]);
4065       end       end
4066      else      else if (Scanningtype = '6') then
      begin  
       URLStr := Format(UrlManglendeScanninger,[StedKode,'A2']);    // Budleveringer  
      end;  
 *)  
     if (Scanningtype = '6') then  
4067       begin       begin
4068        URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeReturScanninger, [StedKode]);
4069       end       end
4070      else if (Scanningtype = '5') then      else if (Scanningtype = '5') then
4071       begin       begin
4072        URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeScanninger, [StedKode]);
4073       end       end
4074      else if (Scanningtype = '1') then      else if (Scanningtype = '1') then
4075       begin       begin
# Line 4989  var Line 4106  var
4106      try      try
4107        XMLDocument1.LoadFromXML(WebSvar);        XMLDocument1.LoadFromXML(WebSvar);
4108    
4109  // 20150206: start  
4110        antlin := 0;        antlin := 0;
4111        antlinIdag := 0;        antlinIdag := 0;
4112        antlinSenere := 0;        antlinSenere := 0;
4113  // 20150306: slut  
       antalFelterFundet := 0;  
4114        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4115            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4116            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
# Line 5026  var Line 4142  var
4142        antalFelterFundet := 0;        antalFelterFundet := 0;
4143        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug
4144        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array
4145  // 20150206: start  
 //      logTekst := 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.';  
4146        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4147        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4148        begin        begin
4149          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';
4150        end;        end;
4151        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4152  // 20150306: slut  
4153        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4154        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4155            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
# Line 5074  var Line 4189  var
4189                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4190                  if (tjekkodestatus = '-1') then                  if (tjekkodestatus = '-1') then
4191                  begin                  begin
4192  // 20150306: start  
 //                    stregkoderMedTjekkodeArray[linienr] := stregkode;  
4193                    if (pos(' ', stregkode) > 0) then                    if (pos(' ', stregkode) > 0) then
4194                    begin                    begin
4195                      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
4196                    end                    end
4197                    else                    else
4198                    begin                    begin
4199                      stregkoderMedTjekkodeArray[linienr] := stregkode;                      stregkoderMedTjekkodeArray[linienr] := stregkode;
4200                    end;                    end;
4201  // 20150306: slut                    linienr := linienr + 1;
                     linienr := linienr + 1;  
4202                  end;                  end;
4203              end;              end;
4204              if antalFelterFundet = antalLiniefelter then              if antalFelterFundet = antalLiniefelter then
# Line 5110  var Line 4223  var
4223    
4224          // Free up the list object          // Free up the list object
4225        pakketyper.Free;        pakketyper.Free;
 // 20150306: start  
4226  //      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.');
4227        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4228        if (antlinSenere > 0) then        if (antlinSenere > 0) then
# Line 5119  var Line 4231  var
4231        end;        end;
4232        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4233        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
 // 20150306: slut  
 // 20150309: start  
4234        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4235        begin        begin
4236          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);
# Line 5129  var Line 4239  var
4239        begin        begin
4240          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);
4241        end;        end;
 // 20150309: slut  
4242    
 // 20150310: start  
4243        if (Scanningtype = '1') then        if (Scanningtype = '1') then
4244        begin        begin
4245          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal
# Line 5210  var Line 4318  var
4318            PanelManglendePakker6.Visible := false;            PanelManglendePakker6.Visible := false;
4319          end;          end;
4320        end;        end;
 // 20150310: slut  
4321    
4322      except on e:exception do      except on e:exception do
4323        begin        begin
# Line 5272  end; Line 4379  end;
4379  procedure TMainForm.SkrivScanningLogFil(var tekst : string);  procedure TMainForm.SkrivScanningLogFil(var tekst : string);
4380  var  var
4381     SomeTxtFile : TextFile;     SomeTxtFile : TextFile;
    buffer : string;  
    S: string;  
4382     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
4383     imorgenYmd : string;     imorgenYmd : string;
4384     logFilnavn : string;     logFilnavn : string;
4385      error : Integer;     //error : Integer;
4386    
4387  begin  begin
4388    if (SkrivLog = '1') then    if (SkrivLog = '1') then
# Line 5369  begin Line 4474  begin
4474          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
4475          S := buffer;          S := buffer;
4476          SetLength(A,0);          SetLength(A,0);
4477          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
4478          if (length(A) < 2) then          if (length(A) < 2) then
4479          begin          begin
4480            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
4481          end;          end;
4482            if (length(A) > 1) then            if (length(A) > 1) then
4483            begin            begin
# Line 5446  begin Line 4551  begin
4551          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
4552          S := buffer;          S := buffer;
4553          SetLength(A,0);          SetLength(A,0);
4554          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
4555          if (length(A) < 3) then          if (length(A) < 3) then
4556          begin          begin
4557            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
4558          end;          end;
4559          if (A[0]=imorgenYmd) then          if (A[0]=imorgenYmd) then
4560          begin          begin
# Line 5541  begin Line 4646  begin
4646    result := svar;    result := svar;
4647  end;  end;
4648    
4649    procedure TMainForm.VisAlarmSkaerm(strMessage: string);
4650    begin
4651      //ShowMessage('Ændring ikke tilladt');
4652      // Her skal komme en 'rød skærm' alarm
4653      PlaySound(PWideChar(AlarmLyd));
4654      MainForm.Color := clRed;
4655    
4656    
4657      RuteNummerST.Caption := '';
4658      BoghandlerNavnST.Caption := '';
4659      btnNulstil.Visible := true;
4660    
4661      if (strMessage <> '') then
4662      begin
4663        ListBox1.Items.Insert(0, strMessage);
4664        KommentarST.Caption := strMessage;
4665      end;
4666    
4667    end;
4668    
4669  function TMainForm.getProddato() : TDate;  function TMainForm.getProddato() : TDate;
4670  var  var
4671     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
# Line 5598  begin Line 4723  begin
4723    result := svar;    result := svar;
4724  end;  end;
4725    
 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;  
4726    
4727  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);
4728  begin  begin
4729    if Scanogstjekkoden1.Checked then    if Scanogstjekkoden1.Checked then
4730    begin    begin
4731       CheckBox3.Checked := true;       chkScanTjekkode.Checked := true;
4732    end    end
4733    else    else
4734    begin    begin
4735       CheckBox3.Checked := false;       chkScanTjekkode.Checked := false;
4736    end;    end;
4737  end;  end;
4738    
4739  function TMainForm.AdobeReaderExists: Boolean;  
4740  var  
4741    AReg: TRegistry;  //Nedarvet fra IParentForm
4742    procedure TMainForm.LogMessage( msg : string);
4743  begin  begin
4744    result:= false;    ListBox1.Items.Insert(0, msg);
4745    AReg := TRegistry.Create;    SkrivScanningLogFil(msg);
   AReg.RootKey := HKEY_LOCAL_MACHINE;  
   if AReg.KeyExists('\SOFTWARE\Adobe\Acrobat Reader') then  
     result:= True;  
   AReg.Free;  
4746  end;  end;
4747    
 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  
4748    
4749  // tjektype = 'Opstart' skal vise alarmlinie, samt opdatere listbox1  //Nedarvet fra IParentForm
4750  //            'Test'  skal vise alarmlinie, samt opdatere listbox1  procedure TMainForm.SetPrinterstatusText( txt: string; alert: boolean);
4751  //            'Timer' skal kun vise alarmlinie  begin
4752    
4753    if (PrinterNavn = 'Ingen') and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then    PrinterstatusStaticText1.Caption := txt;
4754    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  
4755    begin    begin
4756      printerTxt := 'Der er ikke installeret en printer på denne PC';      PrinterstatusStaticText1.Font.Color := clBlack;
4757      ListBox1.Items.Insert(0,printerTxt);      PrinterstatusStaticText1.Color := MainForm.Color;
4758      SkrivScanningLogFil(printerTxt);      PrinterstatusStaticText1.Transparent := True;
4759    end    end
4760    else    else
4761    begin    begin
4762      hPrinter := GetCurrentPrinterHandle;      PrinterstatusStaticText1.Font.Color := clRed;
4763      try      PrinterstatusStaticText1.Color := clWhite;
4764        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);  
4765    end;    end;
   
4766  end;  end;
4767    
4768  // 20150310: start  //Nedarvet fra IParentForm
4769  procedure TMainForm.RoundCornerOf(Control: TWinControl);  function TMainForm.GetFormObject() : TForm;
 var  
    R: TRect;  
    Rgn: HRGN;  
4770  begin  begin
4771     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;  
4772  end;  end;
 // 20150310: slut  
4773    
4774  end.  end.
4775    

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

  ViewVC Help
Powered by ViewVC 1.1.20