/[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 2701 by torben, Thu Sep 3 15:22:09 2015 UTC
# Line 8  uses Line 8  uses
8    IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,    IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,
9    Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,    Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,
10    IdExplicitTLSClientServerBase, IdFTP, pngimage, GIFImg, IdException,    IdExplicitTLSClientServerBase, IdFTP, pngimage, GIFImg, IdException,
11    Winspool, Registry, ShellApi, ClipBrd, Buttons, wininet    Winspool, ShellApi, ClipBrd, Buttons, wininet,
12      UITypes,
13      PakkeshopLabels,
14      StBarC,
15      Math, // DegToRad() bruges i PrintPakkeshopLabel
16      Utils
17    
18    ;    ;
19    
20  type  type
   TStrArray = array of string;  
21    TMainForm = class(TForm)    TMainForm = class(TForm)
22      StregkodeST: TStaticText;      StregkodeST: TStaticText;
23      RuteNummerST: TStaticText;      RuteNummerST: TStaticText;
# Line 20  type Line 25  type
25      IdHTTP1: TIdHTTP;      IdHTTP1: TIdHTTP;
26      XMLDocument1: TXMLDocument;      XMLDocument1: TXMLDocument;
27      ApplicationEvents1: TApplicationEvents;      ApplicationEvents1: TApplicationEvents;
28      CheckBox1: TCheckBox;      chkSporgEfterKunde: TCheckBox;
29      KommentarST: TStaticText;      KommentarST: TStaticText;
30      MainMenu1: TMainMenu;      MainMenu1: TMainMenu;
31      N1: TMenuItem;      N1: TMenuItem;
# Line 36  type Line 41  type
41      Lukprogrammet1: TMenuItem;      Lukprogrammet1: TMenuItem;
42      N2: TMenuItem;      N2: TMenuItem;
43      N3: TMenuItem;      N3: TMenuItem;
44      RadioButton1: TRadioButton;      radioStorPakke: TRadioButton;
45      RadioButton2: TRadioButton;      radioLillePakke: TRadioButton;
46      N4: TMenuItem;      N4: TMenuItem;
47      Storepakker1: TMenuItem;      Storepakker1: TMenuItem;
48      Smpakker1: TMenuItem;      Smpakker1: TMenuItem;
# Line 47  type Line 52  type
52      Testlyd1: TMenuItem;      Testlyd1: TMenuItem;
53      ListBox1: TListBox;      ListBox1: TListBox;
54      Budlevering1: TMenuItem;      Budlevering1: TMenuItem;
55      DownloadButton01: TButton;      BtnDownloadKontrolfil: TButton;
56      IdFTP1: TIdFTP;      IdFTP1: TIdFTP;
57      Image1: TImage;      Image1: TImage;
58      ListBox2: TListBox;      ListBox2: TListBox;
59      OpdaterListenButton01: TButton;      BtnOpdaterListen: TButton;
60      UploadButton01: TButton;      BtnUploadLogfil: TButton;
61      DownloadButton03: TButton;      BtnDownloadRuteskiftFil: TButton;
62      Pakkeshoplevering1: TMenuItem;      Pakkeshoplevering1: TMenuItem;
63      PakkeshopText1: TStaticText;      PakkeshopText1: TStaticText;
64      PakkeshopNulstil: TButton;      btnNulstil: TButton;
65      Returpakkerfrapakkeshop1: TMenuItem;      Returpakkerfrapakkeshop1: TMenuItem;
66      Altidprintepakkelabel1: TMenuItem;      Altidprintepakkelabel1: TMenuItem;
67      CheckBox2: TCheckBox;      chkAltidPrintLabel: TCheckBox;
68      EKLoverforsel: TButton;      BtnEKLoverforsel: TButton;
69      N5: TMenuItem;      N5: TMenuItem;
70      Uploadlogfil1: TMenuItem;      Uploadlogfil1: TMenuItem;
71      Manual1: TMenuItem;      Manual1: TMenuItem;
72      PrinterstatusStaticText1: TStaticText;      PrinterstatusStaticText1: TStaticText;
73      Timer1: TTimer;      Timer1: TTimer;
74      CheckBox3: TCheckBox;      chkScanTjekkode: TCheckBox;
75      Scanogstjekkoden1: TMenuItem;      Scanogstjekkoden1: TMenuItem;
76      Automatisktjekkodestyring1: TMenuItem;      Automatisktjekkodestyring1: TMenuItem;
77      Automatiskvalg1: TMenuItem;      Automatiskvalg1: TMenuItem;
# Line 77  type Line 82  type
82      PanelValg4: TPanel;      PanelValg4: TPanel;
83      PanelValg5: TPanel;      PanelValg5: TPanel;
84      PanelValg6: TPanel;      PanelValg6: TPanel;
85        PanelValg7: TPanel;
86      Manualgenerel1: TMenuItem;      Manualgenerel1: TMenuItem;
87      StaticTextManglendePakker: TStaticText;      StaticTextManglendePakker: TStaticText;
88      PanelManglendePakker1: TPanel;      PanelManglendePakker1: TPanel;
# Line 85  type Line 91  type
91      PanelManglendePakker4: TPanel;      PanelManglendePakker4: TPanel;
92      PanelManglendePakker5: TPanel;      PanelManglendePakker5: TPanel;
93      PanelManglendePakker6: TPanel;      PanelManglendePakker6: TPanel;
94      PanelValg7: TPanel;      menuIndlevering: TMenuItem;
95    
   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;  
96    function getProddato() : TDate;    function getProddato() : TDate;
97    function getProddag() : String;    function getProddag() : String;
98    function retRutenummer(rutenummer : String) : String;    function retRutenummer(rutenummer : String) : String;
99    function GetCurrentPrinterHandle() : THandle;    function GetCurrentPrinterHandle() : THandle;
100    function SavePChar(p: PChar): PChar;    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;  
101    
102    procedure PlaySound(filename : PWideChar);    procedure PlaySound(filename : PWideChar);
103    procedure StartScreen();    procedure StartScreen();
# Line 113  type Line 110  type
110    procedure FormKeyPress(Sender: TObject; var Key: Char);    procedure FormKeyPress(Sender: TObject; var Key: Char);
111    procedure FormCreate(Sender: TObject);    procedure FormCreate(Sender: TObject);
112    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
113    procedure RadioButton1Click(Sender: TObject);    procedure radioStorPakkeClick(Sender: TObject);
114    procedure RadioButton2Click(Sender: TObject);    procedure radioLillePakkeClick(Sender: TObject);
115    procedure CheckBox1Click(Sender: TObject);    procedure chkSporgEfterKundeClick(Sender: TObject);
116    procedure Pakkernormal1Click(Sender: TObject);    procedure Pakkernormal1Click(Sender: TObject);
117    procedure Testforbindelsen1Click(Sender: TObject);    procedure Testforbindelsen1Click(Sender: TObject);
118    procedure Testprinter1Click(Sender: TObject);    procedure Testprinter1Click(Sender: TObject);
# Line 131  type Line 128  type
128    procedure Button1Click(Sender: TObject);    procedure Button1Click(Sender: TObject);
129    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
130    procedure Budlevering1Click(Sender: TObject);    procedure Budlevering1Click(Sender: TObject);
131    procedure DownloadButton01Click(Sender: TObject);    procedure BtnDownloadKontrolfilClick(Sender: TObject);
132    procedure OpdaterListenButton01Click(Sender: TObject);    procedure BtnOpdaterListenClick(Sender: TObject);
133    procedure DownloadBladhusRuteskiftfil();    procedure DownloadBladhusRuteskiftfil();
134    procedure DownloadBladhusKontrolfil();    procedure DownloadBladhusKontrolfil();
135    procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);    procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);
# Line 140  type Line 137  type
137    procedure UploadInifilTilDAO();    procedure UploadInifilTilDAO();
138    procedure SletStregkodelinieFraListboks2(StregKode : String);    procedure SletStregkodelinieFraListboks2(StregKode : String);
139    procedure FormDestroy(Sender: TObject);    procedure FormDestroy(Sender: TObject);
140    procedure UploadButton01Click(Sender: TObject);    procedure BtnUploadLogfilClick(Sender: TObject);
141    procedure DownloadButton03Click(Sender: TObject);    procedure BtnDownloadRuteskiftFilClick(Sender: TObject);
142    procedure Pakkeshoplevering1Click(Sender: TObject);    procedure Pakkeshoplevering1Click(Sender: TObject);
143    procedure PakkeshopNulstilClick(Sender: TObject);    procedure btnNulstilClick(Sender: TObject);
144    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);
145    procedure InitNatxpresslevering();    procedure InitNatxpresslevering();
146    procedure InitReturFraDao();    procedure InitReturFraDao();
# Line 154  type Line 151  type
151    procedure InitIndleveringskode();    procedure InitIndleveringskode();
152    
153    procedure Altidprintepakkelabel1Click(Sender: TObject);    procedure Altidprintepakkelabel1Click(Sender: TObject);
154    procedure CheckBox2Click(Sender: TObject);    procedure chkAltidPrintLabelClick(Sender: TObject);
155    procedure EKLoverforselClick(Sender: TObject);    procedure BtnEKLoverforselClick(Sender: TObject);
156    procedure Uploadlogfil1Click(Sender: TObject);    procedure Uploadlogfil1Click(Sender: TObject);
157    procedure Manual1Click(Sender: TObject);    procedure Manual1Click(Sender: TObject);
   procedure CheckPrintQue(tjektype : string);  
158    procedure Timer1Timer(Sender: TObject);    procedure Timer1Timer(Sender: TObject);
159    procedure Scanogstjekkoden1Click(Sender: TObject);    procedure Scanogstjekkoden1Click(Sender: TObject);
160    procedure CheckBox3Click(Sender: TObject);    procedure chkScanTjekkodeClick(Sender: TObject);
161    procedure Automatisktjekkodestyring1Click(Sender: TObject);    procedure Automatisktjekkodestyring1Click(Sender: TObject);
162    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
163    procedure Automatiskvalg1Click(Sender: TObject);    procedure Automatiskvalg1Click(Sender: TObject);
# Line 172  type Line 168  type
168    procedure PanelValg4Click(Sender: TObject);    procedure PanelValg4Click(Sender: TObject);
169    procedure PanelValg5Click(Sender: TObject);    procedure PanelValg5Click(Sender: TObject);
170    procedure PanelValg6Click(Sender: TObject);    procedure PanelValg6Click(Sender: TObject);
171      procedure PanelValg7Click(Sender: TObject);
172    
173    procedure NulstilAutomatiskValg();    procedure NulstilAutomatiskValg();
174    procedure SletLogfiler(Path: string; FileList: TStrings);    procedure SletLogfiler(Path: string; FileList: TStrings);
175    procedure Manualgenerel1Click(Sender: TObject);    procedure Manualgenerel1Click(Sender: TObject);
176    procedure TjekkerUrls();    procedure TjekkerUrls();
 // 20150310: start  
   procedure RoundCornerOf(Control: TWinControl);  
177    
178      procedure PanelValg7Click(Sender: TObject);    procedure menuIndleveringClick(Sender: TObject);
179  // 20150310: slut  
180      procedure PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);
181      procedure CheckPrintQue(tjektype : string);
182    
183    
184    private    private
185      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 187  type
187      SkrivLog : String;      SkrivLog : String;
188      Sted : String;      Sted : String;
189      StedNavn : String;      StedNavn : String;
190      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;
191  // 29150330: start  // 29150330: start
192      UrlEKLoverforselPakkeshop : String;      UrlEKLoverforselPakkeshop : String;
193  // 20150330: slut  // 20150330: slut
# Line 196  type Line 195  type
195      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;
196      ScanTjekkode : String;      ScanTjekkode : String;
197      ScanTjekkodeAutomatik : string;      ScanTjekkodeAutomatik : string;
198      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop : String;      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop, FarveIndlevering : String;
199      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop : String;      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop, TitelIndlevering : String;
200      LabelType : integer;      LabelType : integer;
201      AlarmLyd : String;      AlarmLyd : String;
202      ScannetOkLyd : String;      ScannetOkLyd : String;
203      ScannetOkStorLyd : String;      ScannetOkStorLyd : String;
204  // 20150317: start  
205      ScannetOkTilTjekkodeLyd : String;      ScannetOkTilTjekkodeLyd : String;
206  // 20150317: slut  
207      PrinterNavn : String;      PrinterNavn : String;
208      TjekPrinter : String;      TjekPrinter : String;
209      XPosRute : integer;      XPosRute : integer;
# Line 243  type Line 242  type
242      BoghandlerStregkode, BoghandlerTjekkode : String;      BoghandlerStregkode, BoghandlerTjekkode : String;
243      TjekUrls : String;      TjekUrls : String;
244    
245            function CheckSumModulo10(const data:string):string;          { used for EAN 8/13 }      Barcode : TStBarcode;
246    
247    
248      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 = '');
249      procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');      procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');
# Line 255  type Line 255  type
255      procedure IndlesScanningLogFil();      procedure IndlesScanningLogFil();
256      procedure SkrivScanningLogFil(var tekst : string);      procedure SkrivScanningLogFil(var tekst : string);
257      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;
258        procedure VisAlarmSkaerm(strMessage: string);
259    
260    public    public
261      { Public declarations }      { Public declarations }
262    end;    end;
263    
264          function GetPixelsPerInchX(): Integer;
265        function GetPixelsPerInchY(): Integer;
266    
267  var  var
268    MainForm: TMainForm;    MainForm: TMainForm;
269    
# Line 273  var Line 277  var
277  implementation  implementation
278  {$R *.dfm}  {$R *.dfm}
279    
 function TMainForm.TColorToHex(Color : TColor) : string;  
 begin  
    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;  
280    
281  procedure TMainForm.InitForm(Farve,Titel,Url : String);  procedure TMainForm.InitForm(Farve,Titel,Url : String);
282  begin  begin
# Line 298  begin Line 285  begin
285      StaticTextManglendePakker.Caption := '';      StaticTextManglendePakker.Caption := '';
286  // 20150309: slut  // 20150309: slut
287    
288        Barcode := TStBarcode.Create(MainForm);//Dynamisk oprettelse af Barcode component
289    
290      PanelValg1.Color := clBtnFace;      PanelValg1.Color := clBtnFace;
291      if PanelValg1.Enabled = true then      if PanelValg1.Enabled = true then
292      begin      begin
# Line 340  begin Line 329  begin
329        PanelValg7.Font.Color := clWindowText;        PanelValg7.Font.Color := clWindowText;
330      end;      end;
331    
332      OpdaterListenButton01.Enabled := false;      BtnOpdaterListen.Enabled := false;
333    
334      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
335      begin      begin
# Line 394  begin Line 383  begin
383    
384      StartScreen();      StartScreen();
385      MainForm.Caption := Titel;      MainForm.Caption := Titel;
386      MainForm.Color := HexToTColor(Farve);      MainForm.Color := TUtils.HexToTColor(Farve);
387      MainForm.Farve := Farve;      MainForm.Farve := Farve;
388      MainForm.Titel := Titel;      MainForm.Titel := Titel;
389      MainForm.Url := Url;      MainForm.Url := Url;
# Line 409  begin Line 398  begin
398      else      else
399        PakkeshopText1.Visible := false;        PakkeshopText1.Visible := false;
400    
401      CheckBox3.Checked := false;      chkScanTjekkode.Checked := false;
402      CheckBox3.Enabled := false;      chkScanTjekkode.Enabled := false;
403      Scanogstjekkoden1.Enabled := false;      Scanogstjekkoden1.Enabled := false;
404    
405      if (Scanningtype = '1') or (Scanningtype = '5') then      if (Scanningtype = '1') or (Scanningtype = '5') then
406      begin      begin
407        if (ScanTjekkode = '1') then        if (ScanTjekkode = '1') then
408        begin        begin
409          CheckBox3.Checked := true;          chkScanTjekkode.Checked := true;
410          CheckBox3.Enabled := true;          chkScanTjekkode.Enabled := true;
411          Scanogstjekkoden1.Enabled := true;          Scanogstjekkoden1.Enabled := true;
412        end        end
413        else        else
414        begin        begin
415          CheckBox3.Checked := false;          chkScanTjekkode.Checked := false;
416          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
417          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
418        end;        end;
419      end;      end;
420    
421      if Automatisktjekkodestyring1.Checked then      if Automatisktjekkodestyring1.Checked then
422      begin      begin
423        CheckBox3.Enabled := false;        chkScanTjekkode.Enabled := false;
424        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
425      end;      end;
426    
# Line 454  begin Line 443  begin
443          end          end
444          else          else
445          begin          begin
446            logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
447          end;          end;
448          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
449        end        end
450        else        else
451        begin        begin
452          logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';          logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
453          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
454        end;        end;
455      end;      end;
# Line 472  begin Line 461  begin
461    
462    if Altidprintepakkelabel1.Checked then    if Altidprintepakkelabel1.Checked then
463    begin    begin
464       CheckBox2.Checked := true;       chkAltidPrintLabel.Checked := true;
465    end    end
466    else    else
467    begin    begin
468       CheckBox2.Checked := false;       chkAltidPrintLabel.Checked := false;
469    end;    end;
470    
471  end;  end;
# Line 490  procedure TMainForm.Automatisktjekkodest Line 479  procedure TMainForm.Automatisktjekkodest
479  begin  begin
480    if Automatisktjekkodestyring1.Checked then    if Automatisktjekkodestyring1.Checked then
481    begin    begin
482       CheckBox3.Enabled := false;       chkScanTjekkode.Enabled := false;
483       Scanogstjekkoden1.Enabled := false;       Scanogstjekkoden1.Enabled := false;
484    end    end
485    else    else
486    begin    begin
487       CheckBox3.Enabled := true;       chkScanTjekkode.Enabled := true;
488       Scanogstjekkoden1.Enabled := true;       Scanogstjekkoden1.Enabled := true;
489    end;    end;
490    
# Line 503  end; Line 492  end;
492    
493  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);
494  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;  
 *)  
495  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
496  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
497       AutomatiskValg1.Checked := true;       AutomatiskValg1.Checked := true;
498       PanelValgA.Color := clGreen;       PanelValgA.Color := clGreen;
499       PanelValgA.Font.Color := clWhite;       PanelValgA.Font.Color := clWhite;
 // 20150317: slut  
500  end;  end;
501    
502  procedure TMainForm.FormCreate(Sender: TObject);  procedure TMainForm.FormCreate(Sender: TObject);
# Line 531  const Line 504  const
504    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
505  var  var
506    printerInd : integer;    printerInd : integer;
   i : Integer;  
 // 20150310: start  
507    gemScanningtype : String;    gemScanningtype : String;
 // 20150310: slut  
508    
509  begin  begin
510    // Initierer nogle variabler    // Initierer nogle variabler
# Line 542  begin Line 512  begin
512    Application.ShowHint := True;    Application.ShowHint := True;
513    PrinterstatusStaticText1.Caption := '';    PrinterstatusStaticText1.Caption := '';
514    PrinterstatusStaticText1.Color := MainForm.Color;    PrinterstatusStaticText1.Color := MainForm.Color;
515  // 20150306: start  
516    PakkeshopNulstil.BringToFront;    btnNulstil.BringToFront;
517  // 20150306: slut  
518  // 20150310: start    TUtils.RoundCornerOf(PanelManglendePakker1);
519    RoundCornerOf(PanelManglendePakker1);    TUtils.RoundCornerOf(PanelManglendePakker2);
520    RoundCornerOf(PanelManglendePakker2);    TUtils.RoundCornerOf(PanelManglendePakker3);
521    RoundCornerOf(PanelManglendePakker3);    TUtils.RoundCornerOf(PanelManglendePakker4);
522    RoundCornerOf(PanelManglendePakker4);    TUtils.RoundCornerOf(PanelManglendePakker5);
523    RoundCornerOf(PanelManglendePakker5);    TUtils.RoundCornerOf(PanelManglendePakker6);
524    RoundCornerOf(PanelManglendePakker6);  
 // 20150310: slut  
525    
526    // 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
527    if DirectoryExists('Docs') then    if DirectoryExists('Docs') then
# Line 579  begin Line 548  begin
548      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');
549      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');
550      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');
551  // 20150330: start  
552      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');
553  // 20150330: slut  
554      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');
555      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');
556      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');
557      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');
558    
559    
560        UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');
561        UrlIndleveringsPakkeManglendeScanninger := ReadString('Settings', 'UrlIndleveringsPakkeManglendeScanninger','http://omdeling.info/webservices/pakkeshop/IndleveringsPakkeManglendeScanninger.php?sted=%s');
562    
563    
564    
565      LabelType := ReadInteger('Settings','LabelType',1);      LabelType := ReadInteger('Settings','LabelType',1);
566      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');
567      TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');      TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');
# Line 597  begin Line 573  begin
573      TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');      TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');
574      FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');      FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');
575      TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');      TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');
576    
577      FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');      FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');
578      TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');      TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');
579    
580        FarveIndlevering := ReadString('Settings', 'FarveIndlevering', 'E5B2CB');
581        TitelIndlevering := ReadString('Settings', 'TitelIndlevering', 'Indleveringskode');
582    
583    
584      SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');      SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');
585      ScanTjekkode := ReadString('Settings','ScanTjekkode','0');      ScanTjekkode := ReadString('Settings','ScanTjekkode','0');
586      ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');      ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');
# Line 608  begin Line 590  begin
590      AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');      AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');
591      ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');      ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');
592      ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');      ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');
593  // 20150317: start  
594      ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');      ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');
595  // 20150317: slut  
596      PrinterNavn := ReadString('Settings','PrinterNavn','');      PrinterNavn := ReadString('Settings','PrinterNavn','');
597      TjekPrinter := ReadString('Settings','TjekPrinter','1');      TjekPrinter := ReadString('Settings','TjekPrinter','1');
598      TjekUrls := ReadString('Settings','TjekUrls','2');      TjekUrls := ReadString('Settings','TjekUrls','2');
599    
600      if (SkrivLog = '1') then      if (SkrivLog = '1') then
601      begin      begin
602        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);
603        try        try
604          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
605          Uploadlogfil1.Enabled := true;          Uploadlogfil1.Enabled := true;
606          UploadButton01.Enabled := true;          BtnUploadLogfil.Enabled := true;
607          logTekst := 'Programmet er installeret som: '+ParamStr(0);          logTekst := 'Programmet er installeret som: '+ParamStr(0);
608          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
609          // Oprydning i gamle logfiler          // Oprydning i gamle logfiler
# Line 711  begin Line 693  begin
693    
694      if SporgEfterBoghandler = '1' then      if SporgEfterBoghandler = '1' then
695      begin      begin
696        CheckBox1.Checked := true;        chkSporgEfterKunde.Checked := true;
697        Sprgefterboghandlernummer1.Checked := true;        Sprgefterboghandlernummer1.Checked := true;
698      end      end
699      else      else
700      begin      begin
701        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
702        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
703      end;      end;
704    
705      if ScanTjekkode = '1' then      if ScanTjekkode = '1' then
706      begin      begin
707        CheckBox3.Checked := true;        chkScanTjekkode.Checked := true;
708        Scanogstjekkoden1.Checked := true;        Scanogstjekkoden1.Checked := true;
709      end      end
710      else      else
711      begin      begin
712        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
713        Scanogstjekkoden1.Checked := false;        Scanogstjekkoden1.Checked := false;
714      end;      end;
715    
716      if ScanTjekkodeAutomatik = '1' then      if ScanTjekkodeAutomatik = '1' then
717      begin      begin
718        Automatisktjekkodestyring1.Checked := true;        Automatisktjekkodestyring1.Checked := true;
719        CheckBox3.Enabled := false;        chkScanTjekkode.Enabled := false;
720        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
721      end;      end;
722    
# Line 760  begin Line 742  begin
742      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)
743      // *************************** //      // *************************** //
744    
745    {$IfDef STED_BK}
746        SpecialVersionSted := 'BK';
747    {$EndIf}
748    {$IfDef STED_DBK}
749        SpecialVersionSted := 'DBK';
750    {$EndIf}
751    {$IfDef STED_FD}
752        SpecialVersionSted := 'FD';
753    {$EndIf}
754    {$IfDef STED_NS}
755        SpecialVersionSted := 'NS';
756    {$EndIf}
757    
758    
759      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
760      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)
761      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
# Line 775  begin Line 771  begin
771      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)
772      // ændrer vi Sted og Scanningtype her:      // ændrer vi Sted og Scanningtype her:
773    
 // 20150313: start  
774      if SpecialVersionSted = 'NS' then      if SpecialVersionSted = 'NS' then
775      begin      begin
776         SpecialVersionSted := '01';         SpecialVersionSted := '01';
# Line 786  begin Line 781  begin
781         SpecialVersionSted := '03';         SpecialVersionSted := '03';
782         SpecialVersionScanningtype := '4';         SpecialVersionScanningtype := '4';
783      end;      end;
 // 20150313: slut  
784    
785      if SpecialVersionSted = 'BK' then      if SpecialVersionSted = 'BK' then
786      begin      begin
# Line 826  begin Line 820  begin
820        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
821        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
822        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
823          PanelValg7.Enabled := false;
824          PanelValg7.Font.Color := clInactiveCaption;
825    
826       // her skal vi også disable de menupunkter DBK ikke kan bruge       // her skal vi også disable de menupunkter DBK ikke kan bruge
827        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
828        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
829  // 20150317: start  
830        Pakkeshoplevering1.Enabled := false;        Pakkeshoplevering1.Enabled := false;
831        Returpakkerfrapakkeshop1.Enabled := false;        Returpakkerfrapakkeshop1.Enabled := false;
832  // 20150317: slut  
833        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
834        begin        begin
835           Scanningtype := '1';           Scanningtype := '1';
# Line 862  begin Line 859  begin
859        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
860        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
861        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
862          PanelValg7.Enabled := false;
863          PanelValg7.Font.Color := clInactiveCaption;
864       // 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
865  // 20150317: start  
866        Automatiskvalg1.Enabled := false;        Automatiskvalg1.Enabled := false;
867  // 20150317: slut  
868        Pakkernormal1.Enabled := false;        Pakkernormal1.Enabled := false;
869        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
870        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
# Line 957  begin Line 956  begin
956             RutenummerST.Caption := '';             RutenummerST.Caption := '';
957             BoghandlerNavnST.Caption := 'Fejl i urls';             BoghandlerNavnST.Caption := 'Fejl i urls';
958             KommentarST.Caption := 'Se log vinduet';             KommentarST.Caption := 'Se log vinduet';
959             PakkeshopNulstil.Visible := true;             btnNulstil.Visible := true;
960             exit;             exit;
961          end;          end;
962      end      end
# Line 1000  begin Line 999  begin
999      if Pakketype = '1' then      if Pakketype = '1' then
1000      begin      begin
1001        Storepakker1.Checked := true;        Storepakker1.Checked := true;
1002        RadioButton1.Checked := true;        radioStorPakke.Checked := true;
1003      end      end
1004      else      else
1005      begin      begin
1006        Smpakker1.Checked := true;        Smpakker1.Checked := true;
1007        RadioButton2.Checked := true;        radioLillePakke.Checked := true;
1008      end;      end;
1009    
1010      if TestFunktionen = '1' then      if TestFunktionen = '1' then
# Line 1045  begin Line 1044  begin
1044        ScannetOkStorLyd := '';        ScannetOkStorLyd := '';
1045      end;      end;
1046    
1047  // 20150317: start  
1048      if not FileExists(ScannetOkTilTjekkodeLyd) then      if not FileExists(ScannetOkTilTjekkodeLyd) then
1049      begin      begin
1050        ScannetOkTilTjekkodeLyd := '';        ScannetOkTilTjekkodeLyd := '';
1051      end;      end;
1052  // 20150317: slut  
1053    
1054      if (PrinterNavn <> '') then      if (PrinterNavn <> '') then
1055      begin      begin
# Line 1083  begin Line 1082  begin
1082          InitBladhus();          InitBladhus();
1083        end;        end;
1084    
1085  // 20150310: start  
1086      // Opbygger PanelManglendePakker information      // Opbygger PanelManglendePakker information
1087      gemScanningtype := Scanningtype;      gemScanningtype := Scanningtype;
1088    
# Line 1124  begin Line 1123  begin
1123      end;      end;
1124    
1125      Scanningtype := gemScanningtype;      Scanningtype := gemScanningtype;
 // 20150310: slut  
1126    
1127      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');
1128      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion('',''));      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', TUtils.Sto_GetFmtFileVersion(''));
1129    
1130  end;  end;
1131    
# Line 1145  var Line 1143  var
1143    BoghandlerNavn : String;    BoghandlerNavn : String;
1144    Koreliste : String;    Koreliste : String;
1145    PrintNyLabel : Boolean;    PrintNyLabel : Boolean;
   List1msg : String;  
1146    pakkeErScannet : Integer;    pakkeErScannet : Integer;
1147    pakkeForkertSted : Integer;    pakkeForkertSted : Integer;
1148    tjekkodeMangler : Integer;    tjekkodeMangler : Integer;
# Line 1170  begin Line 1167  begin
1167      ClipboardData := Clipboard.AsText;      ClipboardData := Clipboard.AsText;
1168      numberString := ClipboardData;      numberString := ClipboardData;
1169      Val(numberString, float, errorPos);      Val(numberString, float, errorPos);
1170  // 20150311: start  
1171  //    if (ClipboardData <> '') and (errorPos = 0) then      //    if (ClipboardData <> '') and (errorPos = 0) then
1172      if (ClipboardData <> '') and (errorPos = 0)      if (ClipboardData <> '') and (errorPos = 0)
1173      or (NumberString = 'Nulstil')      or (NumberString = 'Nulstil')
1174      or (NumberString = 'Indtast kundenummer')      or (NumberString = 'Indtast kundenummer')
# Line 1186  begin Line 1183  begin
1183      or (NumberString = 'DAO DIREKTE')      or (NumberString = 'DAO DIREKTE')
1184      or (NumberString = 'DAO PAKKESHOP')      or (NumberString = 'DAO PAKKESHOP')
1185      or (NumberString = 'Retur fra pakkeshop') then      or (NumberString = 'Retur fra pakkeshop') then
1186  // 20150311: slut  
1187      begin      begin
1188        Stregkode := Stregkode + ClipboardData;        Stregkode := Stregkode + ClipboardData;
1189        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1199  begin Line 1196  begin
1196    
1197    if Key = #13 then     // Enter    if Key = #13 then     // Enter
1198    begin    begin
 // 20150306: start  
1199      if (Length(Trim(Stregkode)) = 0) then      if (Length(Trim(Stregkode)) = 0) then
1200      begin      begin
1201        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );
1202        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;  
1203        exit;        exit;
1204      end;      end;
 // 20150306: slut  
1205    
 // 20150311: start  
1206      if StregKode = 'Nulstil' then      if StregKode = 'Nulstil' then
1207      begin      begin
1208         PakkeshopNulstil.Click();         btnNulstil.Click();
1209         exit;         exit;
1210      end;      end;
1211    
1212      if PakkeshopNulstil.Visible then      if btnNulstil.Visible then
1213      begin      begin
1214         PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'HUSK at klikke Nulstil før ny scanning...' );
1215  // 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  
1216         exit;         exit;
1217      end;      end;
1218    
1219      if StregKode = 'Lille pakke' then      if StregKode = 'Lille pakke' then
1220      begin      begin
1221         if RadioButton2.Enabled = true then         if radioLillePakke.Enabled = true then
1222         begin         begin
1223            InitLillePakke();            InitLillePakke();
1224         end         end
1225         else         else
1226         begin         begin
1227          //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;  
1228         end;         end;
1229         Stregkode := '';         Stregkode := '';
1230         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1268  begin Line 1233  begin
1233    
1234      if StregKode = 'Stor pakke' then      if StregKode = 'Stor pakke' then
1235      begin      begin
1236         if RadioButton1.Enabled = true then         if radioStorPakke.Enabled = true then
1237         begin         begin
1238            InitStorPakke();            InitStorPakke();
1239         end         end
1240         else         else
1241         begin         begin
1242          //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;  
1243         end;         end;
1244         Stregkode := '';         Stregkode := '';
1245         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1294  begin Line 1248  begin
1248    
1249      if StregKode = 'Indtast kundenummer' then      if StregKode = 'Indtast kundenummer' then
1250      begin      begin
1251         if CheckBox1.Enabled = true then         if chkSporgEfterKunde.Enabled = true then
1252         begin         begin
1253           if (CheckBox1.State = cbChecked) then           if (chkSporgEfterKunde.State = cbChecked) then
1254           begin           begin
1255            CheckBox1.State := cbUnchecked;            chkSporgEfterKunde.State := cbUnchecked;
1256           end           end
1257           else           else
1258           begin           begin
1259            CheckBox1.State := cbChecked;            chkSporgEfterKunde.State := cbChecked;
1260           end;           end;
1261         end         end
1262         else         else
1263         begin         begin
1264          //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;  
1265         end;         end;
1266         Stregkode := '';         Stregkode := '';
1267         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1327  begin Line 1270  begin
1270    
1271      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
1272      begin      begin
1273        if CheckBox3.Enabled = true then        if chkScanTjekkode.Enabled = true then
1274        begin        begin
1275           if (CheckBox3.State = cbChecked) then           if (chkScanTjekkode.State = cbChecked) then
1276           begin           begin
1277            CheckBox3.State := cbUnchecked;            chkScanTjekkode.State := cbUnchecked;
1278           end           end
1279           else           else
1280           begin           begin
1281            CheckBox3.State := cbChecked;            chkScanTjekkode.State := cbChecked;
1282           end;           end;
1283        end        end
1284        else        else
1285        begin        begin
1286          //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;  
1287        end;        end;
1288        Stregkode := '';        Stregkode := '';
1289        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1366  begin Line 1298  begin
1298         end         end
1299         else         else
1300         begin         begin
1301          //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;  
1302         end;         end;
1303         Stregkode := '';         Stregkode := '';
1304         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1305         exit;         exit;
1306      end;      end;
1307    
1308  // 20150323: start  
 //    if StregKode = 'DAO NAT X-PRESS' then  
1309      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  
1310      begin      begin
1311         if (PanelValg1.Enabled = true) then         if (PanelValg1.Enabled = true) then
1312         begin         begin
# Line 1395  begin Line 1314  begin
1314         end         end
1315         else         else
1316         begin         begin
1317          //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;  
1318         end;         end;
1319         Stregkode := '';         Stregkode := '';
1320         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1421  begin Line 1329  begin
1329         end         end
1330         else         else
1331         begin         begin
1332          //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;  
1333         end;         end;
1334         Stregkode := '';         Stregkode := '';
1335         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1447  begin Line 1344  begin
1344         end         end
1345         else         else
1346         begin         begin
1347          //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;  
1348         end;         end;
1349         Stregkode := '';         Stregkode := '';
1350         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1473  begin Line 1359  begin
1359         end         end
1360         else         else
1361         begin         begin
1362          //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;  
1363         end;         end;
1364         Stregkode := '';         Stregkode := '';
1365         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1499  begin Line 1374  begin
1374         end         end
1375         else         else
1376         begin         begin
1377          //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;  
1378         end;         end;
1379         Stregkode := '';         Stregkode := '';
1380         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1525  begin Line 1389  begin
1389         end         end
1390         else         else
1391         begin         begin
1392          //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;  
1393         end;         end;
1394         Stregkode := '';         Stregkode := '';
1395         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1396         exit;         exit;
1397      end;      end;
1398  // 20150311: slut  
1399    
1400      if (Length(Stregkode) > 8) then      if (Length(Stregkode) > 8) then
1401      begin      begin
# Line 1597  begin Line 1450  begin
1450          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)
1451          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then
1452      begin   // Her skal komme en alarm og rød skærm      begin   // Her skal komme en alarm og rød skærm
1453         PlaySound(PWideChar(AlarmLyd));          VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1454         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  
1455         exit;         exit;
1456      end;      end;
1457    
# Line 1626  begin Line 1467  begin
1467              end;              end;
1468            end            end
1469        // Retur kan ikke scannes med 'Automatisk valg'        // Retur kan ikke scannes med 'Automatisk valg'
1470  (*  
       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  
 *)  
1471        else if Pakketype = 'Direkte' then        else if Pakketype = 'Direkte' then
1472            begin            begin
1473              if Scanningtype <> '4' then              if Scanningtype <> '4' then
# Line 1661  begin Line 1485  begin
1485              end;              end;
1486            end            end
1487        // Retur kan ikke scannes med 'Automatisk valg'        // Retur kan ikke scannes med 'Automatisk valg'
1488  (*  
       else if Pakketype = 'PakkeshopRetur' then  
           begin  
             if Scanningtype <> '6' then  
             begin  
               Scanningtype := '6';  
               InitReturFraPakkeshop();  
             end;  
           end  
 *)  
1489        else        else
1490            begin   // Her skal komme en alarm og rød skærm            begin
1491               PlaySound(PWideChar(AlarmLyd));            // Her skal komme en alarm og rød skærm
1492               List1msg := 'Pakken kan ikke scannes med automatisk valg';              VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1493               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  
1494               exit;               exit;
1495            end;            end;
1496        Stregkode := GemStregkode;        Stregkode := GemStregkode;
1497      end      end
1498      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then
1499      begin      begin
1500        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );
1501        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  
1502        exit;        exit;
1503      end;      end;
1504    
# Line 1714  begin Line 1506  begin
1506      begin      begin
1507        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then
1508        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;  
1509    
1510  // 20150311: start          VisAlarmSkaerm( 'Pakke findes som pakketype: ' + Pakketype );
 (*  
     if StregKode = 'Nulstil' then  
     begin  
        PakkeshopNulstil.Click();  
        exit;  
     end;  
1511    
1512      if PakkeshopNulstil.Visible then          exit;
1513      begin        end;
        PlaySound(PWideChar(AlarmLyd));  
        List1msg := 'HUSK at trykke Nulstil før ny scanning...';  
        ListBox1.Items.Insert(0,List1Msg);  
        MainForm.Color := clRed;  
        KommentarST.Caption := List1msg;  
        exit;  
     end;  
   
     if StregKode = 'Lille pakke' then  
     begin  
        InitLillePakke();  
        exit;  
     end;  
   
     if StregKode = 'Stor pakke' then  
     begin  
        InitStorPakke();  
        exit;  
     end;  
   
     if StregKode = 'Indtast kundenummer' then  
     begin  
        if (CheckBox1.State = cbChecked) then  
        begin  
         CheckBox1.State := cbUnchecked;  
        end  
        else  
        begin  
         CheckBox1.State := cbChecked;  
        end;  
        Stregkode := '';  
        exit;  
1514      end;      end;
1515    
     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  
1516    
1517    
1518      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then
1519      begin      begin
1520        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
1521        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do
1522        begin        begin
1523          if (Stregkode=stregkoderMedTjekkodeArray[i]) then          if (Stregkode=stregkoderMedTjekkodeArray[i]) then
1524          begin          begin
1525              CheckBox3.Checked := true;              chkScanTjekkode.Checked := true;
1526              Scanogstjekkoden1.Checked := true;              Scanogstjekkoden1.Checked := true;
1527          end;          end;
1528        end;        end;
# Line 1812  begin Line 1534  begin
1534             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1535             BoghandlerTjekkode := '';             BoghandlerTjekkode := '';
1536             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1537             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1538             Stregkode := '';             Stregkode := '';
1539             InitScreen();             InitScreen();
1540        end        end
# Line 1824  begin Line 1546  begin
1546             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1547             BoghandlerTjekkode := '-1';             BoghandlerTjekkode := '-1';
1548             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1549             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1550             Stregkode := '';             Stregkode := '';
1551             InitScreen();             InitScreen();
1552        end        end
# Line 1836  begin Line 1558  begin
1558              PakkeshopStregkode := Stregkode;              PakkeshopStregkode := Stregkode;
1559              BoghandlerStregkode := Stregkode;              BoghandlerStregkode := Stregkode;
1560              PakkeshopText1.Caption := 'Tjekkode';              PakkeshopText1.Caption := 'Tjekkode';
1561  // 20150317: start  
1562              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));
1563  // 20150317: slut  
1564             end             end
1565            else            else
1566             begin             begin
1567                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;  
1568             end;             end;
1569            Stregkode := '';            Stregkode := '';
1570            InitScreen();            InitScreen();
# Line 1861  begin Line 1577  begin
1577             BoghandlerTjekkode := Stregkode;             BoghandlerTjekkode := Stregkode;
1578             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1579             if (PakkeshopLevering1.Checked) then             if (PakkeshopLevering1.Checked) then
1580                MainForm.Color := HexToTColor(FarvePakkeshoplevering);                MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering);
1581             if (Pakkernormal1.Checked) then             if (Pakkernormal1.Checked) then
1582                MainForm.Color := HexToTColor(FarveNormal);                MainForm.Color := TUtils.HexToTColor(FarveNormal);
1583             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1584           end           end
1585          else          else
1586           begin           begin
1587                if (PakkeshopLevering1.Checked) then                if (PakkeshopLevering1.Checked) then
1588                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);
1589                if (Pakkernormal1.Checked) then                if (Pakkernormal1.Checked) then
1590                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);
1591                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  
1592                StregKode := '';                StregKode := '';
1593                StregkodeST.Caption := StregKode;                StregkodeST.Caption := StregKode;
1594  // 20150323: slut  
1595                exit;                exit;
1596           end;           end;
1597          Stregkode := '';          Stregkode := '';
# Line 1891  begin Line 1600  begin
1600    
1601      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
1602      begin      begin
1603    
1604         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then
1605            StregKode := PakkeshopStregkode;            StregKode := PakkeshopStregkode;
1606         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 1613  begin
1613            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her
1614            if Rutenummer = 'sql fejl' then            if Rutenummer = 'sql fejl' then
1615            begin   // Her skal komme en alarm og rød skærm            begin   // Her skal komme en alarm og rød skærm
1616               PlaySound(PWideChar(AlarmLyd));               VisAlarmSkaerm( 'SQL fejl: ' + Kommentar );
1617               //List1msg := 'SQL fejl: ' + Kommentar;  
              //ListBox1.Items.Insert(0,List1Msg);  
              MainForm.Color := clRed;  
              //KommentarST.Caption := List1msg;  
              PakkeshopNulstil.Visible := true;  
1618              exit;              exit;
1619            end;            end;
1620            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then
# Line 1928  begin Line 1634  begin
1634              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then
1635              begin              begin
1636                PlaySound(PWideChar(AlarmLyd));                PlaySound(PWideChar(AlarmLyd));
1637                PakkeshopNulstil.Visible := true;                btnNulstil.Visible := true;
1638                MainForm.Color := clRed;                MainForm.Color := clRed;
1639              end;              end;
1640           end;           end;
1641            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
1642            begin            begin
1643              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1644              if Storepakker1.Checked then              if Storepakker1.Checked then
1645              begin              begin
1646                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1943  begin Line 1649  begin
1649              begin              begin
1650                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1651              end;              end;
1652              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1653            end            end
1654            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then
1655            begin            begin
1656              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1657              if Storepakker1.Checked then              if Storepakker1.Checked then
1658              begin              begin
1659                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1956  begin Line 1662  begin
1662              begin              begin
1663                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1664              end;              end;
1665              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1666            end            end
1667            else if Copy(Kommentar,1,8) = 'OPRETTET' then            else if Copy(Kommentar,1,8) = 'OPRETTET' then
1668            begin            begin
1669              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;  
1670            end            end
1671            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'
1672            begin            begin
1673            end            end
1674            else            else
1675            begin            begin
1676              MainForm.Color := clRed;              VisAlarmSkaerm('');
             PlaySound(PWideChar(AlarmLyd));  
             PakkeshopNulstil.Visible := true;  
1677            end;            end;
1678           if not PakkeshopNulstil.Visible then  
1679             if not btnNulstil.Visible then
1680            begin            begin
1681  // 20150310: start  
 //            SletStregkodelinieFraListboks2(StregKode);  
 // 20150310: slut  
1682              If (Budlevering1.Checked) then              If (Budlevering1.Checked) then
1683              begin              begin
1684                if Storepakker1.Checked then                if Storepakker1.Checked then
# Line 1993  begin Line 1692  begin
1692                InitLillePakke();                InitLillePakke();
1693              end;              end;
1694            end;            end;
1695  // 20150310: start  
1696            SletStregkodelinieFraListboks2(StregKode);            SletStregkodelinieFraListboks2(StregKode);
1697  // 20150310: slut  
1698            PakkeshopStregkode := '';            PakkeshopStregkode := '';
1699            PakkeshopTjekkode := '';            PakkeshopTjekkode := '';
1700            BoghandlerStregkode := '';            BoghandlerStregkode := '';
# Line 2026  begin Line 1725  begin
1725    
1726    Key := #0;    Key := #0;
1727    
1728  end;  end; //End of OnKeyPress
1729    
1730  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
1731  const  const
# Line 2063  end; Line 1762  end;
1762    
1763  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);
1764  var  var
 // 20150309: start  
 //  i:integer;  
1765    i : Integer;    i : Integer;
1766    wrkAntal : String;    wrkAntal : String;
1767    wrkAntalIdag, wrkAntalSenere : Integer;    wrkAntalIdag, wrkAntalSenere : Integer;
1768  // 20150309: slut  
1769    
1770  begin  begin
1771      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
1772      begin      begin
1773        for i := ListBox2.items.count-1 downto 0 do        for i := ListBox2.items.count-1 downto 0 do
1774          if pos(StregKode,ListBox2.items[i]) <> 0 then          if pos(StregKode,ListBox2.items[i]) <> 0 then
1775          begin          begin
1776  // 20150309: start  
1777            // Ajourføring af tæller for manglende pakker (scanninger)            // Ajourføring af tæller for manglende pakker (scanninger)
1778            wrkAntal := StaticTextManglendePakker.Caption;            wrkAntal := StaticTextManglendePakker.Caption;
1779            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere
1780            begin            begin
1781              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen
1782              wrkAntalIdag := StrToInt(split(wrkAntal, '/', 2));              wrkAntalIdag := StrToInt( TUtils.split(wrkAntal, '/', 2));
1783  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));
1784  //            ShowMessage(SPLIT('data/another/','/',3));  //            ShowMessage(SPLIT('data/another/','/',3));
1785  //            ShowMessage(SPLIT('data/another','/',3));  //            ShowMessage(SPLIT('data/another','/',3));
1786              wrkAntalSenere := StrToInt(split(wrkAntal, '/', 3));              wrkAntalSenere := StrToInt( TUtils.split(wrkAntal, '/', 3));
1787            end            end
1788            else     // kun idag            else     // kun idag
1789            begin            begin
# Line 2112  begin Line 1809  begin
1809            begin            begin
1810              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);
1811            end;            end;
 // 20150309: slut  
1812    
 // 20150310: start  
1813            if (Scanningtype = '1') then            if (Scanningtype = '1') then
1814            begin            begin
1815              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
# Line 2219  begin Line 1914  begin
1914  end;  end;
1915    
1916  procedure TMainForm.InitBladhus();  procedure TMainForm.InitBladhus();
 var  
   LogFilnavn : string;  
1917    
1918  begin  begin
1919    Altidprintepakkelabel1.Enabled := false;    Altidprintepakkelabel1.Enabled := false;
# Line 2283  begin Line 1976  begin
1976      01 :      01 :
1977            begin;      // NS            begin;      // NS
1978              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1979              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1980              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1981              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1982              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1983              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';
# Line 2297  begin Line 1990  begin
1990              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1991              Smpakker1.Enabled := true;              Smpakker1.Enabled := true;
1992              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
1993              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
1994              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
1995              DownloadButton01.Enabled := false;     // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;     // kontrolfil bruges ikke her
1996              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1997              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1998              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1999              IndlesManglendeScanninger();              IndlesManglendeScanninger();
# Line 2310  begin Line 2003  begin
2003              Testprinter1.Visible := true;              Testprinter1.Visible := true;
2004             if (getProddag() = 'lørdag') then             if (getProddag() = 'lørdag') then
2005              begin              begin
2006                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
2007              end              end
2008              else              else
2009              begin              begin
2010                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
2011              end;              end;
2012              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
2013              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
2014              IdFTP1.Passive := true;              IdFTP1.Passive := true;
2015              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
2016              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';
# Line 2335  begin Line 2028  begin
2028              Testprinter1.Visible := true;              Testprinter1.Visible := true;
2029              Smpakker1.Enabled := true;              Smpakker1.Enabled := true;
2030              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
2031              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
2032              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
2033              DownloadButton01.Enabled := false;    // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;    // kontrolfil bruges ikke her
2034              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
2035              IdFTP1.Passive := true;              IdFTP1.Passive := true;
2036              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
2037            end;            end;
# Line 2354  var Line 2047  var
2047    URLStr : String;    URLStr : String;
2048    pakkestorrelse : String;    pakkestorrelse : String;
2049    PrintNyLabelInteger : Integer;    PrintNyLabelInteger : Integer;
2050    
2051      PakkeshopLabel: TPakkeshopLabel;
2052  begin  begin
2053    if RadioButton1.Checked then    if radioStorPakke.Checked then
2054    begin    begin
2055      pakkestorrelse := 'Stor';      pakkestorrelse := 'Stor';
2056    end;    end;
2057    if RadioButton2.Checked then    if radioLillePakke.Checked then
2058    begin    begin
2059      pakkestorrelse := 'Lille';      pakkestorrelse := 'Lille';
2060    end;    end;
2061    
2062    
2063    if Pakkernormal1.Checked then    if Pakkernormal1.Checked then
2064    begin    begin
2065       if (BoghandlerTjekkode = '') then       if (BoghandlerTjekkode = '') then
# Line 2391  begin Line 2088  begin
2088    begin    begin
2089       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);
2090    end    end
2091      else if menuIndlevering.Checked then
2092      begin
2093        URLStr := Format(UrlIndleveringsPakke,[Sted, PakkeNr]);
2094      end
2095    else    else
2096    begin    begin
2097      exit;      exit;
# Line 2425  begin Line 2126  begin
2126        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;
2127        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;
2128        PrintNyLabel := False;        PrintNyLabel := False;
2129  // 20150310: start  
2130        if Pakkeshoplevering1.Checked then        if Pakkeshoplevering1.Checked then
2131        begin        begin
 // 20150310: slut  
2132          try          try
2133            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);
2134          except on e:exception do          except on e:exception do
# Line 2438  begin Line 2138  begin
2138          begin          begin
2139            PrintNyLabel := True;            PrintNyLabel := True;
2140          end;          end;
 // 20150310: start  
2141        end;        end;
 // 20150310: slut  
2142       end       end
2143        else if menuIndlevering.Checked then
2144        begin
2145    
2146    
2147    
2148    
2149         Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2150         if (Kommentar = 'Ok') then
2151         begin
2152           PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2153           PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc
2154           RuteNummer := PakkeshopLabel.Koreliste;
2155           Stregkode := PakkeshopLabel.Stregkode;
2156    
2157           PrintPakkeshopLabel( PakkeshopLabel );
2158    
2159         end;
2160    
2161    
2162        end
2163      else      else
2164       begin       begin
2165        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;
# Line 2474  begin Line 2192  begin
2192          PrintNyLabel := True;          PrintNyLabel := True;
2193        end;        end;
2194      end;      end;
2195    
2196    
2197      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
2198      begin      begin
2199        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then
# Line 2514  begin Line 2234  begin
2234    if Pakkeshoplevering1.Checked then    if Pakkeshoplevering1.Checked then
2235      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';
2236    List1Pakkestorrelse := '';    List1Pakkestorrelse := '';
2237    if RadioButton1.Checked then    if radioStorPakke.Checked then
2238    begin    begin
2239      List1Pakkestorrelse := 'Stor pakke';      List1Pakkestorrelse := 'Stor pakke';
2240    end;    end;
2241    if RadioButton2.Checked then    if radioLillePakke.Checked then
2242    begin    begin
2243      List1Pakkestorrelse := 'Lille pakke';      List1Pakkestorrelse := 'Lille pakke';
2244    end;    end;
# Line 2540  begin Line 2260  begin
2260    if Budlevering1.Checked then    if Budlevering1.Checked then
2261    begin    begin
2262       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;
2263        if (RadioButton1.Checked) then        if (radioStorPakke.Checked) then
2264        begin        begin
2265          List1msg := List1msg + '; Stor pakke';          List1msg := List1msg + '; Stor pakke';
2266        end;        end;
2267        if (RadioButton2.Checked) then        if (radioLillePakke.Checked) then
2268        begin        begin
2269          List1msg := List1msg + '; Lille pakke';          List1msg := List1msg + '; Lille pakke';
2270        end;        end;
# Line 2566  begin Line 2286  begin
2286        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;
2287      end;      end;
2288    end;    end;
2289      if menuIndlevering.Checked then
2290      begin
2291        List1Msg := Stregkode;
2292      end;
2293    
2294    
2295    ListBox1.Items.Insert(0,List1Msg);    ListBox1.Items.Insert(0,List1Msg);
2296    logTekst := RightStr(List1Msg, Length(List1Msg)-10);    logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2297    SkrivScanningLogFil(logTekst);    SkrivScanningLogFil(logTekst);
2298  end;  end;
2299    
2300  procedure TMainForm.UploadButton01Click(Sender: TObject);  procedure TMainForm.BtnUploadLogfilClick(Sender: TObject);
2301  begin  begin
2302    UploadLogfilTilDAO();    UploadLogfilTilDAO();
2303    UploadInifilTilDAO();    UploadInifilTilDAO();
# Line 2588  pakkeForkertSted : Integer; Line 2314  pakkeForkertSted : Integer;
2314    nytRuteNummer, nyFarve : String;    nytRuteNummer, nyFarve : String;
2315  begin  begin
2316    if Budlevering1.Checked then    if Budlevering1.Checked then
2317       RuteNummerST.Color := HexToTColor(Farve);       RuteNummerST.Color := TUtils.HexToTColor(Farve);
2318    
2319    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
2320    if pakkeErScannet = 0 then    if pakkeErScannet = 0 then
# Line 2601  begin Line 2327  begin
2327    end;    end;
2328    pakkeForkertSted := pos('burde være hos', Kommentar);    pakkeForkertSted := pos('burde være hos', Kommentar);
2329    
2330  // 20150306: start  
2331  //  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
2332    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  
2333    begin    begin
2334        if (RuteNummer = 'Ukendt') then        if (RuteNummer = 'Ukendt') then
2335        begin        begin
# Line 2631  begin Line 2356  begin
2356       if (BoghandlerNavn = 'Ukendt pakke') then       if (BoghandlerNavn = 'Ukendt pakke') then
2357       begin       begin
2358          PrintNyLabel := false;          PrintNyLabel := false;
2359  // 20150306: start  
 //        PlaySound(PWideChar(AlarmLyd));  
2360          PlaySound(PWideChar(AlarmLyd));          PlaySound(PWideChar(AlarmLyd));
2361          MainForm.Color := clRed;          MainForm.Color := clRed;
2362          PakkeshopNulstil.Visible := true;          btnNulstil.Visible := true;
2363  // 20150306: slut  
2364       end       end
2365       else       else
2366       begin       begin
# Line 2646  begin Line 2370  begin
2370            PrintNyLabel := true;            PrintNyLabel := true;
2371            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;
2372            nyFarve := Farve;            nyFarve := Farve;
2373            RuteNummerST.Color := HexToTColor(nyFarve);            RuteNummerST.Color := TUtils.HexToTColor(nyFarve);
2374            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;
2375            RuteNummer := nytRuteNummer;            RuteNummer := nytRuteNummer;
2376            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2377            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2378            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2379  // 20150213: start  
2380            if (PrinterNavn = 'Ingen') then            if (PrinterNavn = 'Ingen') then
2381            begin            begin
2382               PrintNyLabel := false;               PrintNyLabel := false;
2383            end;            end;
2384  // 20150313: slut  
 // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2385            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
2386            begin            begin
2387              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2388              MainForm.Color := clRed;              MainForm.Color := clRed;
2389              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2390            end;            end;
2391  // 20150306: slut  
2392         end;         end;
2393         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);
2394         if (kontrolKoreliste <> RuteNummer) then         if (kontrolKoreliste <> RuteNummer) then
# Line 2685  begin Line 2407  begin
2407            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2408            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2409            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2410  // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2411            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
2412            begin            begin
2413              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2414              MainForm.Color := clRed;              MainForm.Color := clRed;
2415              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2416            end;            end;
2417  // 20150306: slut  
 // 20150306: start  
 //       end  
 //       else  
 //       begin  
2418         end;         end;
2419       end;       end;
2420    
# Line 2719  begin Line 2436  begin
2436                end;                end;
2437              end;              end;
2438        01 :  begin;        01 :  begin;
2439               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2440                    // 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
2441                    // 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')
2442                begin                begin
# Line 2733  begin Line 2450  begin
2450                end;                end;
2451              end;              end;
2452        03 :  begin;        03 :  begin;
2453               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2454                    // 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
2455                    // 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')
2456               begin               begin
# Line 2757  begin Line 2474  begin
2474      exit;      exit;
2475    end;    end;
2476    
2477    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
2478    begin    begin
2479    end    end
2480    else    else
2481    begin    begin
2482      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
2483      begin      begin
2484        logTekst := 'Printer label type ';        logTekst := 'Printer label type ';
2485        if (CheckBox2.Checked) then        if (chkAltidPrintLabel.Checked) then
2486        begin        begin
2487          logTekst := logTekst + 'Alle ';          logTekst := logTekst + 'Alle ';
2488        end        end
# Line 2832  begin Line 2549  begin
2549          Canvas.TextOut(XPosSorteringsfelt2,YPosSorteringsfelt2, Leveringssted);   // sorteringsoplysning 2          Canvas.TextOut(XPosSorteringsfelt2,YPosSorteringsfelt2, Leveringssted);   // sorteringsoplysning 2
2550        end;        end;
2551        Canvas.Font.Size := FontSizeKommentar;        Canvas.Font.Size := FontSizeKommentar;
2552    
2553        Kommentar := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);        Kommentar := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);
 // 20150304: start  
2554        Kommentar := StringReplace(Kommentar, 'PAKKE ER SCANNET', '', [rfReplaceAll, rfIgnoreCase]);        Kommentar := StringReplace(Kommentar, 'PAKKE ER SCANNET', '', [rfReplaceAll, rfIgnoreCase]);
2555  // 20150304: slut  
2556        Canvas.TextOut(XPosKommentar,YPosKommentar, Kommentar);  // Kan ikke lave linieskift (se tidligere kommentar om samme)        Canvas.TextOut(XPosKommentar,YPosKommentar, Kommentar);  // Kan ikke lave linieskift (se tidligere kommentar om samme)
2557        if SmsKode <> '' then        if SmsKode <> '' then
2558        begin        begin
# Line 2849  begin Line 2566  begin
2566  end;  end;
2567    
2568    
2569  procedure TMainForm.RadioButton1Click(Sender: TObject);  procedure TMainForm.radioStorPakkeClick(Sender: TObject);
2570  begin  begin
2571      Storepakker1.Checked := true;      Storepakker1.Checked := true;
2572      RadioButton1.Checked := true;      radioStorPakke.Checked := true;
2573  end;  end;
2574    
2575  procedure TMainForm.RadioButton2Click(Sender: TObject);  procedure TMainForm.radioLillePakkeClick(Sender: TObject);
2576  begin  begin
2577      Smpakker1.Checked := true;      Smpakker1.Checked := true;
2578      RadioButton2.Checked := true;      radioLillePakke.Checked := true;
2579  end;  end;
2580    
2581    
2582  procedure TMainForm.CheckBox1Click(Sender: TObject);  procedure TMainForm.chkSporgEfterKundeClick(Sender: TObject);
2583  begin  begin
2584    if CheckBox1.Checked then    if chkSporgEfterKunde.Checked then
2585    begin    begin
2586       Sprgefterboghandlernummer1.Checked := true;       Sprgefterboghandlernummer1.Checked := true;
2587    end    end
# Line 2875  begin Line 2592  begin
2592  end;  end;
2593    
2594    
2595  procedure TMainForm.CheckBox2Click(Sender: TObject);  procedure TMainForm.chkAltidPrintLabelClick(Sender: TObject);
2596  begin  begin
2597    if CheckBox2.Checked then    if chkAltidPrintLabel.Checked then
2598    begin    begin
2599       Altidprintepakkelabel1.Checked := true;       Altidprintepakkelabel1.Checked := true;
2600    end    end
# Line 2888  begin Line 2605  begin
2605    
2606  end;  end;
2607    
2608  procedure TMainForm.CheckBox3Click(Sender: TObject);  procedure TMainForm.chkScanTjekkodeClick(Sender: TObject);
2609  begin  begin
2610    if CheckBox3.Checked then    if chkScanTjekkode.Checked then
2611    begin    begin
2612       Scanogstjekkoden1.Checked := true;       Scanogstjekkoden1.Checked := true;
2613    end    end
# Line 2912  begin Line 2629  begin
2629      Automatiskvalg1.Checked := false;      Automatiskvalg1.Checked := false;
2630      PanelValgA.Color := clBtnFace;      PanelValgA.Color := clBtnFace;
2631      PanelValgA.Font.Color := clWindowText;      PanelValgA.Font.Color := clWindowText;
2632  // 20150317: start  
2633      if (SpecialVersionSted = '01')      if (SpecialVersionSted = '01')
2634      or (SpecialVersionSted = '02')        or (SpecialVersionSted = '02')
2635      or (SpecialVersionSted = '03')        or (SpecialVersionSted = '03')
2636      or (SpecialVersionSted = '04') then        or (SpecialVersionSted = '04') then
2637      begin      begin
2638        // 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)
2639        PanelValgA.Enabled := false;        PanelValgA.Enabled := false;
# Line 2944  begin Line 2661  begin
2661          // Tjekker UrlNormal          // Tjekker UrlNormal
2662          if PanelValg1.Enabled = true then          if PanelValg1.Enabled = true then
2663          begin          begin
2664            if CheckUrl(UrlNormal) then            if TUtils.CheckUrl(UrlNormal) then
2665            begin            begin
2666              logTekst := 'UrlNormal accepteret: ' + UrlNormal;              logTekst := 'UrlNormal accepteret: ' + UrlNormal;
2667              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2973  begin Line 2690  begin
2690          // Tjekker UrlReturDAO          // Tjekker UrlReturDAO
2691          if PanelValg2.Enabled = true then          if PanelValg2.Enabled = true then
2692          begin          begin
2693            if CheckUrl(UrlReturDAO) then            if TUtils.CheckUrl(UrlReturDAO) then
2694            begin            begin
2695              logTekst := 'UrlReturDAO accepteret: ' + UrlReturDAO;              logTekst := 'UrlReturDAO accepteret: ' + UrlReturDAO;
2696              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3001  begin Line 2718  begin
2718          // Tjekker UrlReturBoghandler          // Tjekker UrlReturBoghandler
2719          if PanelValg3.Enabled = true then          if PanelValg3.Enabled = true then
2720          begin          begin
2721            if CheckUrl(UrlReturBoghandler) then            if TUtils.CheckUrl(UrlReturBoghandler) then
2722            begin            begin
2723              logTekst := 'UrlReturBoghandler accepteret: ' + UrlReturBoghandler;              logTekst := 'UrlReturBoghandler accepteret: ' + UrlReturBoghandler;
2724              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3029  begin Line 2746  begin
2746          // Tjekker UrlBudlevering          // Tjekker UrlBudlevering
2747          if PanelValg4.Enabled = true then          if PanelValg4.Enabled = true then
2748          begin          begin
2749            if CheckUrl(UrlBudlevering) then            if TUtils.CheckUrl(UrlBudlevering) then
2750            begin            begin
2751              logTekst := 'UrlBudlevering accepteret: ' + UrlBudlevering;              logTekst := 'UrlBudlevering accepteret: ' + UrlBudlevering;
2752              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3057  begin Line 2774  begin
2774          // Tjekker UrlPakkeshoplevering          // Tjekker UrlPakkeshoplevering
2775          if PanelValg5.Enabled = true then          if PanelValg5.Enabled = true then
2776          begin          begin
2777            if CheckUrl(UrlPakkeshoplevering) then            if TUtils.CheckUrl(UrlPakkeshoplevering) then
2778            begin            begin
2779              logTekst := 'UrlPakkeshoplevering accepteret: ' + UrlPakkeshoplevering;              logTekst := 'UrlPakkeshoplevering accepteret: ' + UrlPakkeshoplevering;
2780              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3085  begin Line 2802  begin
2802          // Tjekker UrlReturPakkeshop          // Tjekker UrlReturPakkeshop
2803          if PanelValg6.Enabled = true then          if PanelValg6.Enabled = true then
2804          begin          begin
2805            if CheckUrl(UrlReturPakkeshop) then            if TUtils.CheckUrl(UrlReturPakkeshop) then
2806            begin            begin
2807              logTekst := 'UrlReturPakkeshop accepteret: ' + UrlReturPakkeshop;              logTekst := 'UrlReturPakkeshop accepteret: ' + UrlReturPakkeshop;
2808              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3114  begin Line 2831  begin
2831          if (PanelValg1.Enabled = true)          if (PanelValg1.Enabled = true)
2832          or (PanelValg4.Enabled = true) then          or (PanelValg4.Enabled = true) then
2833          begin          begin
2834            if CheckUrl(UrlManglendeScanninger) then            if TUtils.CheckUrl(UrlManglendeScanninger) then
2835            begin            begin
2836              logTekst := 'UrlManglendeScanninger accepteret: ' + UrlManglendeScanninger;              logTekst := 'UrlManglendeScanninger accepteret: ' + UrlManglendeScanninger;
2837              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3142  begin Line 2859  begin
2859          // Tjekker UrlPakkeshopManglendeScanninger          // Tjekker UrlPakkeshopManglendeScanninger
2860          if PanelValg5.Enabled = true then          if PanelValg5.Enabled = true then
2861          begin          begin
2862            if CheckUrl(UrlPakkeshopManglendeScanninger) then            if TUtils.CheckUrl(UrlPakkeshopManglendeScanninger) then
2863            begin            begin
2864              logTekst := 'UrlPakkeshopManglendeScanninger accepteret: ' + UrlPakkeshopManglendeScanninger;              logTekst := 'UrlPakkeshopManglendeScanninger accepteret: ' + UrlPakkeshopManglendeScanninger;
2865              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3170  begin Line 2887  begin
2887          // Tjekker UrlPakkeshopManglendeReturScanninger          // Tjekker UrlPakkeshopManglendeReturScanninger
2888          if PanelValg6.Enabled = true then          if PanelValg6.Enabled = true then
2889          begin          begin
2890            if CheckUrl(UrlPakkeshopManglendeReturScanninger) then            if TUtils.CheckUrl(UrlPakkeshopManglendeReturScanninger) then
2891            begin            begin
2892              logTekst := 'UrlPakkeshopManglendeReturScanninger accepteret: ' + UrlPakkeshopManglendeReturScanninger;              logTekst := 'UrlPakkeshopManglendeReturScanninger accepteret: ' + UrlPakkeshopManglendeReturScanninger;
2893              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3195  begin Line 2912  begin
2912            end;            end;
2913          end;          end;
2914    
2915           // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
2916            if PanelValg7.Enabled = true then
2917            begin
2918              if TUtils.CheckUrl(UrlIndleveringsPakke) then
2919              begin
2920                logTekst := 'UrlIndleveringsPakke accepteret: ' + UrlIndleveringsPakke;
2921                SkrivScanningLogFil(logTekst);
2922              end
2923              else
2924              begin
2925                inc(urlFejl);   // Optæller antal fejl
2926                logTekst := 'UrlIndleveringsPakke svarer ikke: ' + UrlIndleveringsPakke;
2927                ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2928                if TjekUrls = '1' then
2929                begin
2930                  logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2931                end;
2932                SkrivScanningLogFil(logTekst);
2933                if TjekUrls = '1' then
2934                begin
2935                  ShowMessage(logTekst);
2936                  UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2937                  Application.Terminate;
2938                  exit;
2939                end;
2940              end;
2941    
2942              if TUtils.CheckUrl(UrlIndleveringsPakkeManglendeScanninger) then
2943              begin
2944                logTekst := 'UrlIndleveringsPakkeManglendeScanninger accepteret: ' + UrlIndleveringsPakkeManglendeScanninger;
2945                SkrivScanningLogFil(logTekst);
2946              end
2947              else
2948              begin
2949                inc(urlFejl);   // Optæller antal fejl
2950                logTekst := 'UrlIndleveringsPakkeManglendeScanninger svarer ikke: ' + UrlIndleveringsPakkeManglendeScanninger;
2951                ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2952                if TjekUrls = '1' then
2953                begin
2954                  logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2955                end;
2956                SkrivScanningLogFil(logTekst);
2957                if TjekUrls = '1' then
2958                begin
2959                  ShowMessage(logTekst);
2960                  UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2961                  Application.Terminate;
2962                  exit;
2963                end;
2964              end;
2965            end;
2966    
2967          // Tjekker UrlEKLoverforsel          // Tjekker UrlEKLoverforsel
2968          if PanelValg1.Enabled = true then          if PanelValg1.Enabled = true then
2969          begin          begin
2970            if CheckUrl(UrlEKLoverforsel) then            if TUtils.CheckUrl(UrlEKLoverforsel) then
2971            begin            begin
2972              logTekst := 'UrlEKLoverforsel accepteret: ' + UrlEKLoverforsel;              logTekst := 'UrlEKLoverforsel accepteret: ' + UrlEKLoverforsel;
2973              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3223  begin Line 2992  begin
2992            end;            end;
2993          end;          end;
2994    
2995  // 20150330: start  
2996          // Tjekker UrlEKLoverforselPakkeshop          // Tjekker UrlEKLoverforselPakkeshop
2997          if PanelValg5.Enabled = true then          if PanelValg5.Enabled = true then
2998          begin          begin
2999            if CheckUrl(UrlEKLoverforselPakkeshop) then            if TUtils.CheckUrl(UrlEKLoverforselPakkeshop) then
3000            begin            begin
3001              logTekst := 'UrlEKLoverforselPakkeshop accepteret: ' + UrlEKLoverforselPakkeshop;              logTekst := 'UrlEKLoverforselPakkeshop accepteret: ' + UrlEKLoverforselPakkeshop;
3002              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3251  begin Line 3020  begin
3020              end;              end;
3021            end;            end;
3022          end;          end;
3023  // 20150330: slut  
3024    
3025          // Tjekker UrlFindPakketype          // Tjekker UrlFindPakketype
3026          if CheckUrl(UrlFindPakketype) then          if TUtils.CheckUrl(UrlFindPakketype) then
3027          begin          begin
3028            logTekst := 'UrlFindPakketype accepteret: ' + UrlFindPakketype;            logTekst := 'UrlFindPakketype accepteret: ' + UrlFindPakketype;
3029            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
# Line 3279  begin Line 3048  begin
3048          end;          end;
3049    
3050          // Tjekker UrlSendPrograminfo          // Tjekker UrlSendPrograminfo
3051          if CheckUrl(UrlSendPrograminfo) then          if TUtils.CheckUrl(UrlSendPrograminfo) then
3052          begin          begin
3053            logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;            logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;
3054            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
# Line 3316  begin Line 3085  begin
3085    
3086  end;  end;
3087    
 function TMainForm.FileTime2DateTime(FileTime: TFileTime): TDateTime;  
 var  
    LocalFileTime: TFileTime;  
    SystemTime: TSystemTime;  
 begin  
    FileTimeToLocalFileTime(FileTime, LocalFileTime) ;  
    FileTimeToSystemTime(LocalFileTime, SystemTime) ;  
    Result := SystemTimeToDateTime(SystemTime) ;  
 end;  
   
3088  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);
3089  var  var
3090    SR: TSearchRec;    SR: TSearchRec;
# Line 3342  begin Line 3101  begin
3101      repeat      repeat
3102        if (SR.Attr <> faDirectory) then        if (SR.Attr <> faDirectory) then
3103        begin        begin
3104    
3105          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring
3106          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse
3107          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse          dtCreation := TUtils.FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse
3108          // Selvom creation date godt kan være forskellig fra modified date,          // Selvom creation date godt kan være forskellig fra modified date,
3109          // skal vi alligevel altid tjekke filens alder ud fra modified date          // skal vi alligevel altid tjekke filens alder ud fra modified date
3110          // (æ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 3141  begin
3141    end;    end;
3142  end;  end;
3143    
3144  procedure TMainForm.PakkeshopNulstilClick(Sender: TObject);  procedure TMainForm.btnNulstilClick(Sender: TObject);
3145  begin  begin
3146    PakkeshopStregkode := '';    PakkeshopStregkode := '';
3147    PakkeshopTjekkode := '';    PakkeshopTjekkode := '';
3148    PakkeshopNulstil.Visible := false;    btnNulstil.Visible := false;
3149    PakkeshopText1.Caption := 'Stregkode';    PakkeshopText1.Caption := 'Stregkode';
3150    BoghandlerStregkode := '';    BoghandlerStregkode := '';
3151    BoghandlerTjekkode := '';    BoghandlerTjekkode := '';
# Line 3403  begin Line 3163  begin
3163  //  MainForm.Color := HexToTColor(Farve);  //  MainForm.Color := HexToTColor(Farve);
3164    if Farve <> '' then    if Farve <> '' then
3165    begin    begin
3166       MainForm.Color := HexToTColor(Farve);       MainForm.Color := TUtils.HexToTColor(Farve);
3167  // 20150312: start  // 20150312: start
3168  (*  (*
3169    end    end
# Line 3477  end; Line 3237  end;
3237    
3238  procedure TMainForm.PanelValgAClick(Sender: TObject);  procedure TMainForm.PanelValgAClick(Sender: TObject);
3239  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;  
 *)  
3240  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
3241  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
3242       AutomatiskValg1.Checked := true;    AutomatiskValg1.Checked := true;
3243       PanelValgA.Color := clGreen;    PanelValgA.Color := clGreen;
3244       PanelValgA.Font.Color := clWhite;    PanelValgA.Font.Color := clWhite;
3245  // 20150311: slut  
3246    
3247    
3248  end;  end;
3249    
3250  procedure TMainForm.Pakkernormal1Click(Sender: TObject);  procedure TMainForm.Pakkernormal1Click(Sender: TObject);
# Line 3514  var Line 3261  var
3261    BoghandlerNavn : String;    BoghandlerNavn : String;
3262    Koreliste : String;    Koreliste : String;
3263    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
3264    SmsKode : String;    SmsKode : String;
3265    DBKbane : String;    DBKbane : String;
3266    Leveringssted : String;    Leveringssted : String;
# Line 3536  begin Line 3282  begin
3282      // Her kommer en alarm og rød skærm      // Her kommer en alarm og rød skærm
3283      PlaySound(PWideChar(AlarmLyd));      PlaySound(PWideChar(AlarmLyd));
3284      MainForm.Color := clRed;      MainForm.Color := clRed;
3285      PakkeshopNulstil.Visible := true;      btnNulstil.Visible := true;
3286    end    end
3287    else    else
3288    begin    begin
3289      Falsk := False;      Falsk := False;
3290      Sand := True;  
3291      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');
3292      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
3293      SmsKode := '999999';      SmsKode := '999999';
# Line 3561  var Line 3307  var
3307    BoghandlerNavn : String;    BoghandlerNavn : String;
3308    Koreliste : String;    Koreliste : String;
3309    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
3310    SmsKode : String;    SmsKode : String;
3311    DBKbane : String;    DBKbane : String;
3312    Leveringssted : String;    Leveringssted : String;
# Line 3570  begin Line 3315  begin
3315    Kommentar := '***** Kommentar *****';    Kommentar := '***** Kommentar *****';
3316    BoghandlerNavn := 'Modtagernavn';    BoghandlerNavn := 'Modtagernavn';
3317    Falsk := False;    Falsk := False;
3318    Sand := True;  
3319    
3320    if (Printer.Printers.Count = 0) then    if (Printer.Printers.Count = 0) then
3321    begin    begin
# Line 3605  begin Line 3350  begin
3350    end;    end;
3351  end;  end;
3352    
3353  {  
  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;  
3354    
3355  procedure TMainForm.Om1Click(Sender: TObject);  procedure TMainForm.Om1Click(Sender: TObject);
3356  const  const
# Line 3643  var Line 3359  var
3359   tekst, filversion : String;   tekst, filversion : String;
3360  begin  begin
3361    
3362    filversion := Sto_GetFmtFileVersion('','');    filversion := TUtils.Sto_GetFmtFileVersion('');
3363    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';
3364    
3365    tekst := tekst+crlf+crlf;    tekst := tekst+crlf+crlf;
# Line 3665  begin Line 3381  begin
3381          end          end
3382          else          else
3383          begin          begin
3384            tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
3385          end;          end;
3386      end      end
3387      else      else
3388      begin      begin
3389        tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';        tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
3390      end;      end;
3391    end;    end;
3392    
# Line 3738  begin Line 3454  begin
3454    
3455    if FileExists(fileName) then    if FileExists(fileName) then
3456    begin    begin
3457      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3458      begin      begin
3459        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3460        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
# Line 3762  begin Line 3478  begin
3478    
3479    if FileExists(fileName) then    if FileExists(fileName) then
3480    begin    begin
3481      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3482      begin      begin
3483        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3484        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
3485      end      end
3486      else      else
3487      begin      begin
3488        ShowMessage('Acrobat Reader er ikke installeret!');        ShowMessage('Adobe Reader er ikke installeret!');
3489      end;      end;
3490    end    end
3491    else    else
# Line 3778  begin Line 3494  begin
3494    end;    end;
3495  end;  end;
3496    
3497    procedure TMainForm.menuIndleveringClick(Sender: TObject);
3498    begin
3499      Scanningtype := '7';
3500      NulstilAutomatiskValg();
3501      InitIndleveringskode();
3502    end;
3503    
3504  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);
3505  begin  begin
3506    
3507    if Sprgefterboghandlernummer1.Checked then    if Sprgefterboghandlernummer1.Checked then
3508    begin    begin
3509       CheckBox1.Checked := true;       chkSporgEfterKunde.Checked := true;
3510    end    end
3511    else    else
3512    begin    begin
3513       CheckBox1.Checked := false;       chkSporgEfterKunde.Checked := false;
3514    end;    end;
3515    
3516    
# Line 3810  end; Line 3533  end;
3533  procedure TMainForm.InitNatxpresslevering();  procedure TMainForm.InitNatxpresslevering();
3534  begin  begin
3535        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3536        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3537        Pakkernormal1.Checked := true;        Pakkernormal1.Checked := true;
3538        InitForm(FarveNormal,TitelNormal,UrlNormal);        InitForm(FarveNormal,TitelNormal,UrlNormal);
3539        PanelValg1.Color := clGreen;        PanelValg1.Color := clGreen;
3540        PanelValg1.Font.Color := clWhite;        PanelValg1.Font.Color := clWhite;
3541        CheckBox1.Enabled := true;  
3542        CheckBox2.Enabled := true;        chkAltidPrintLabel.Enabled := true;
3543        Altidprintepakkelabel1.Enabled := true;        Altidprintepakkelabel1.Enabled := true;
3544        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3545        CheckBox2.Checked := false;        chkAltidPrintLabel.Checked := false;
3546        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3547        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3548        Sprgefterboghandlernummer1.Enabled := true;        Sprgefterboghandlernummer1.Enabled := true;
3549        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3550        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3551        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3552        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3553        ListBox1.Visible := true;        ListBox1.Visible := true;
3554        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3555        EKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3556        InitLillePakke();        InitLillePakke();
3557        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3558        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3843  procedure TMainForm.InitReturFraDao(); Line 3566  procedure TMainForm.InitReturFraDao();
3566  begin  begin
3567        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3568        ReturpakkerfraDAO1.Checked := true;        ReturpakkerfraDAO1.Checked := true;
3569        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3570        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);
3571        PanelValg2.Color := clGreen;        PanelValg2.Color := clGreen;
3572        PanelValg2.Font.Color := clWhite;        PanelValg2.Font.Color := clWhite;
3573        CheckBox1.Enabled := false;  
3574        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3575        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3576        CheckBox2.Checked := false;  
3577        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3578        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3579        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3580        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3581        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3582        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3583        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3584        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3585        ListBox1.Visible := true;        ListBox1.Visible := true;
3586        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3587        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3588        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3589        InitLillePakke();        InitLillePakke();
3590  end;  end;
3591    
# Line 3870  procedure TMainForm.InitReturFraKunde(); Line 3593  procedure TMainForm.InitReturFraKunde();
3593  begin  begin
3594        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3595        Returpakkerfraboghandler1.Checked := true;        Returpakkerfraboghandler1.Checked := true;
3596        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3597        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);
3598        PanelValg3.Color := clGreen;        PanelValg3.Color := clGreen;
3599        PanelValg3.Font.Color := clWhite;        PanelValg3.Font.Color := clWhite;
3600        CheckBox1.Enabled := false;  
3601        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3602        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
       CheckBox2.Checked := false;  
3603        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3604        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3605        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3606        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3607        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3608        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3609        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3610        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3611        ListBox1.Visible := true;        ListBox1.Visible := true;
3612        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3613        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3614        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3615        InitLillePakke();        InitLillePakke();
3616  end;  end;
3617    
# Line 3897  procedure TMainForm.InitDirektelevering( Line 3619  procedure TMainForm.InitDirektelevering(
3619  begin  begin
3620        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3621        Budlevering1.Checked := true;        Budlevering1.Checked := true;
3622        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3623        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);
3624        PanelValg4.Color := clGreen;        PanelValg4.Color := clGreen;
3625        PanelValg4.Font.Color := clWhite;        PanelValg4.Font.Color := clWhite;
3626        CheckBox1.Enabled := false;  
3627        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3628        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3629        CheckBox2.Checked := false;  
3630        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3631        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3632        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3633        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3634        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3635        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3636        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3637        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3638        ListBox1.Visible := true;        ListBox1.Visible := true;
3639        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3640        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3641        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3642        DownloadButton03.Visible := false;        BtnDownloadRuteskiftFil.Visible := false;
3643        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3644        IdFTP1.Passive := true;        IdFTP1.Passive := true;
3645        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3646        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 3655  procedure TMainForm.InitPakkeshopleverin
3655  begin  begin
3656        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3657        Pakkeshoplevering1.Checked := true;        Pakkeshoplevering1.Checked := true;
3658        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3659        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);
3660        PanelValg5.Color := clGreen;        PanelValg5.Color := clGreen;
3661        PanelValg5.Font.Color := clWhite;        PanelValg5.Font.Color := clWhite;
3662        CheckBox1.Enabled := false;  
3663        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3664        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3665        CheckBox2.Checked := false;  
3666        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3667        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3668        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3669        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3670        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3671        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3672        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3673        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3674        ListBox1.Visible := true;        ListBox1.Visible := true;
3675        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3676        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3677        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3678  // 20150330: start  
3679  //      EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := true;
3680        EKLoverforsel.Enabled := true;  
 // 20150330: slut  
3681        InitLillePakke();        InitLillePakke();
3682        IndlesScanningLogFil();        IndlesScanningLogFil();
3683        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3971  procedure TMainForm.InitReturFraPakkesho Line 3692  procedure TMainForm.InitReturFraPakkesho
3692  begin  begin
3693        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3694        Returpakkerfrapakkeshop1.Checked := true;        Returpakkerfrapakkeshop1.Checked := true;
3695        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3696        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);
3697        PanelValg6.Color := clGreen;        PanelValg6.Color := clGreen;
3698        PanelValg6.Font.Color := clWhite;        PanelValg6.Font.Color := clWhite;
3699        CheckBox1.Enabled := false;  
3700        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3701        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3702        CheckBox2.Checked := false;  
3703        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3704        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3705        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3706        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3707        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3708        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3709        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3710        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3711        ListBox1.Visible := true;        ListBox1.Visible := true;
3712        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3713        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3714        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3715        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3716        InitLillePakke();        InitLillePakke();
3717        IndlesScanningLogFil();        IndlesScanningLogFil();
3718        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4011  end; Line 3732  end;
3732    
3733  procedure TMainForm.InitIndleveringskode();  procedure TMainForm.InitIndleveringskode();
3734  begin  begin
3735          menuIndlevering.Checked := true;
3736        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3737        Returpakkerfrapakkeshop1.Checked := true;  
3738        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3739        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);
3740        PanelValg7.Color := clGreen;        PanelValg7.Color := clGreen;
3741        PanelValg7.Font.Color := clWhite;        PanelValg7.Font.Color := clWhite;
3742        CheckBox1.Enabled := false;  
3743        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3744        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3745        CheckBox2.Checked := false;  
3746        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3747        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
       CheckBox1.Checked := false;  
3748        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3749          chkSporgEfterKunde.Checked := false;
3750    
3751    
3752    
3753        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3754        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3755        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3756        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3757        ListBox1.Visible := true;        ListBox1.Visible := true;
3758        ListBox1.Items.Clear;        ListBox1.Items.Clear();
3759        DownloadButton01.Enabled := false;  
3760        OpdaterListenButton01.Enabled := true;        BtnDownloadKontrolfil.Enabled := false;
3761        EKLoverforsel.Enabled := false;        BtnOpdaterListen.Enabled := true;
3762          BtnEKLoverforsel.Enabled := false;
3763        InitLillePakke();        InitLillePakke();
3764        IndlesScanningLogFil();        IndlesScanningLogFil();
3765        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4057  end; Line 3783  end;
3783    
3784  procedure TMainForm.InitLillePakke();  procedure TMainForm.InitLillePakke();
3785  begin  begin
3786    RadioButton2.Checked := true;    radioLillePakke.Checked := true;
3787    Smpakker1.Checked := true;    Smpakker1.Checked := true;
 // 20150310: start  
3788  //  Stregkode := '';  //  Stregkode := '';
 // 20150310: slut  
3789  end;  end;
3790    
3791  procedure TMainForm.InitStorPakke();  procedure TMainForm.InitStorPakke();
3792  begin  begin
3793    RadioButton1.Checked := true;    radioStorPakke.Checked := true;
3794    Storepakker1.Checked := true;    Storepakker1.Checked := true;
3795  // 20150310: start  // 20150310: start
3796  //  Stregkode := '';  //  Stregkode := '';
3797  // 20150310: slut  // 20150310: slut
3798  end;  end;
3799    
 /// <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]]);  
3800    
     // 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;  
3801    
3802  procedure TMainForm.PlaySound(filename : PWideChar);  procedure TMainForm.PlaySound(filename : PWideChar);
3803  begin  begin
# Line 4163  end; Line 3822  end;
3822    
3823  procedure TMainForm.Testlyd2Click(Sender: TObject);  procedure TMainForm.Testlyd2Click(Sender: TObject);
3824  begin  begin
 // 20150317: start  
3825    if (PakkeshopText1.Caption = 'Tjekkode') then    if (PakkeshopText1.Caption = 'Tjekkode') then
3826    begin    begin
3827       if ScannetOkTilTjekkodeLyd  <> '' then       if ScannetOkTilTjekkodeLyd  <> '' then
# Line 4176  begin Line 3834  begin
3834       end;       end;
3835       exit;       exit;
3836    end;    end;
 // 20150317: slut  
3837    
3838    if Smpakker1.Checked then    if Smpakker1.Checked then
3839       if ScannetOkLyd  <> '' then       if ScannetOkLyd  <> '' then
# Line 4185  begin Line 3842  begin
3842       end       end
3843       else       else
3844       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet)'), 'Information', MB_OK);  
3845         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3846       end;       end;
3847    if Storepakker1.Checked then    if Storepakker1.Checked then
3848       if ScannetOkStorLyd  <> '' then       if ScannetOkStorLyd  <> '' then
# Line 4197  begin Line 3851  begin
3851       end       end
3852       else       else
3853       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet stor)'), 'Information', MB_OK);  
3854         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3855       end;       end;
3856  end;  end;
3857    
# Line 4217  begin; Line 3868  begin;
3868    CheckCode();    CheckCode();
3869  end;  end;
3870    
3871  procedure TMainForm.EKLoverforselClick(Sender: TObject);  procedure TMainForm.BtnEKLoverforselClick(Sender: TObject);
3872  var  var
3873    WebSvar : String;    WebSvar : String;
3874    URLStr : String;    URLStr : String;
# Line 4227  var Line 3878  var
3878    status, kommentar : String;    status, kommentar : String;
3879    
3880  begin  begin
3881      EKLoverforsel.Enabled := false;      BtnEKLoverforsel.Enabled := false;
3882    
3883      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');
3884      logTekst := 'Overfører de scannede pakker til EKL';      logTekst := 'Overfører de scannede pakker til EKL';
# Line 4290  begin Line 3941  begin
3941        end;        end;
3942      end;      end;
3943    
3944      EKLoverforsel.Enabled := true;      BtnEKLoverforsel.Enabled := true;
3945    
3946      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
3947    
# Line 4307  begin Line 3958  begin
3958           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';
3959         end;         end;
3960         KommentarST.Caption := Kommentar;         KommentarST.Caption := Kommentar;
3961         PakkeshopNulstil.Visible := true;         btnNulstil.Visible := true;
3962      end;      end;
3963    
3964  end;  end;
# Line 4331  begin Line 3982  begin
3982    else    else
3983      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);
3984  }  }
3985    Svar := 'Beregnet: '+CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;    Svar := 'Beregnet: ' + TUtils.CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;
3986    
3987    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);
3988    CheckCode();    CheckCode();
# Line 4339  end; Line 3990  end;
3990    
3991  end;  end;
3992    
 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;  
3993    
3994  //  //
3995  // Bladhus ***  // Bladhus ***
# Line 4855  begin Line 4467  begin
4467    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
4468  end;  end;
4469    
4470  procedure TMainForm.DownloadButton01Click(Sender: TObject);  procedure TMainForm.BtnDownloadKontrolfilClick(Sender: TObject);
4471  begin  begin
4472      DownloadBladhusKontrolfil();      DownloadBladhusKontrolfil();
4473      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
4474  end;  end;
4475    
4476  procedure TMainForm.OpdaterListenButton01Click(Sender: TObject);  procedure TMainForm.BtnOpdaterListenClick(Sender: TObject);
4477  const  const
4478    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
4479    
# Line 4870  begin Line 4482  begin
4482      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
4483  end;  end;
4484    
4485  procedure TMainForm.DownloadButton03Click(Sender: TObject);  procedure TMainForm.BtnDownloadRuteskiftFilClick(Sender: TObject);
4486  begin  begin
4487      if (getProddag() = 'lørdag') then      if (getProddag() = 'lørdag') then
4488      begin      begin
# Line 4879  begin Line 4491  begin
4491      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
4492  end;  end;
4493    
4494  function TMainForm.Explode(var a: TStrArray; Border, S: string): Integer;  
4495    // ToDo: PrintPakkeshopLabel()
4496    procedure TMainForm.PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);
4497  var  var
4498    S2: string;    XForm, XFormOld: TXForm; //Bruges til rotate X-formation
4499      Angle: integer;
4500      gMode: integer;
4501      Dirigering: string;
4502    
4503    begin
4504        with Printer do
4505        begin
4506          BeginDoc();
4507    
4508    
4509          Canvas.Font.Size := 16;
4510          Canvas.TextOut(15,10, 'Code: ' + PakkeshopLabel.Tjekkode + '     '  + PakkeshopLabel.Overskrift);
4511    
4512    
4513    
4514          Canvas.TextOut(25, 90, PakkeshopLabel.Navn );
4515          Canvas.TextOut(25, 135, PakkeshopLabel.Vejnavn );
4516          Canvas.TextOut(25, 180, PakkeshopLabel.Postnr );
4517    
4518    
4519          Canvas.Font.Size := 9;
4520          Canvas.TextOut(110, 240, 'Pakkeshop:');
4521          Canvas.TextOut(110, 270, PakkeshopLabel.PakkeshopNavn);
4522          Canvas.TextOut(110, 300, PakkeshopLabel.PakkeshopAddr);
4523          Canvas.TextOut(110, 330, PakkeshopLabel.PakkeshopPostnr);
4524    
4525          Canvas.TextOut(350, 240, 'Afsender:');
4526          Canvas.TextOut(350, 270, PakkeshopLabel.AfsenderNavn);
4527          Canvas.TextOut(350, 300, PakkeshopLabel.AfsenderAdresse);
4528          Canvas.TextOut(350, 330, PakkeshopLabel.AfsenderPostnr);
4529    
4530          Dirigering := PakkeshopLabel.PakkeshopSted + ' | ' + PakkeshopLabel.PakkeshopTurid + ' | ' + PakkeshopLabel.PakkeshopNr;
4531          if ( PakkeshopLabel.Koreliste <> '') then
4532          begin
4533            Dirigering := Dirigering + ' > ' + PakkeshopLabel.Koreliste;
4534          end;
4535    
4536    
4537          Canvas.Font.Size := 12;
4538          Canvas.TextOut(15, 370, Dirigering);
4539    
4540    
4541    
4542    
4543    
4544          //Tegn adskillelses linier
4545          Canvas.Pen.Width := 2;
4546          //Øverste linie
4547          Canvas.MoveTo(20,80);
4548          Canvas.LineTo(600,80);
4549    
4550          // Midterste linie
4551          Canvas.MoveTo( 20, 240);
4552          Canvas.LineTo(600, 240);
4553    
4554          //Nederste linie
4555          Canvas.MoveTo( 20, 370);
4556          Canvas.LineTo(600, 370);
4557    
4558    
4559          //Tegn skrå streger over afsender
4560          Canvas.Pen.Width := 1;
4561          Canvas.MoveTo(600, 250);
4562          Canvas.LineTo(350, 360);
4563          Canvas.MoveTo(600, 360);
4564          Canvas.LineTo(350, 250);
4565    
4566    
4567    
4568    
4569          // Resten af rutinen vedr genering og placering af Barcode
4570    
4571          BarCode.BarCodeType := bcCode128;
4572          BarCode.Code128Subset := csCodeC;
4573          BarCode.Code := PakkeshopLabel.Stregkode;
4574          BarCode.Validate(True);
4575    
4576          //Start X-formation
4577          //ShowMessage( Format('%d %d', [PageWidth, PageHeight]) );
4578          GetWorldTransform(Canvas.Handle, XFormOld);
4579    
4580          Angle := 270;
4581          XForm.eM11 := Cos(DegToRad(Angle));
4582          XForm.eM12 := Sin(DegToRad(Angle));
4583          XForm.eM21 := -Sin(DegToRad(Angle));
4584          XForm.eM22 := Cos(DegToRad(Angle));
4585          XForm.eDx := 0;
4586          XForm.eDy := 0;
4587    
4588          gMode := SetGraphicsMode(Canvas.Handle, GM_ADVANCED);
4589          SetWorldTransform(Canvas.Handle, XForm);
4590    
4591          // PaintToCanvasSize arbejder i Inches
4592          // Første pos argument bliver nu Y og skal være negativ for at rykke den ned
4593          //Anden pos er X og skal være positiv for at justere ind fra venstre mod højre
4594    
4595          BarCode.PaintToCanvasSize(Printer.Canvas, -1.8, 3.3, 0.4);
4596    
4597    
4598          SetWorldTransform(Canvas.Handle, XFormOld);
4599          SetGraphicsMode(Canvas.Handle, gMode);
4600    
4601          EndDoc();
4602        end;
4603    
4604    
4605    end;
4606    
4607    function GetPixelsPerInchX(): Integer;
4608    begin
4609      Result := GetDeviceCaps(Printer.Handle, LOGPIXELSX)
4610    end;
4611    
4612    function GetPixelsPerInchY(): Integer;
4613  begin  begin
4614    Result  := 0;    Result := GetDeviceCaps(Printer.Handle, LOGPIXELSY)
   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 = '';  
4615  end;  end;
4616    
4617    
4618  procedure TMainForm.IndlesManglendeScanninger();  procedure TMainForm.IndlesManglendeScanninger();
4619  var  var
4620    WebSvar : String;    WebSvar : String;
# Line 4905  var Line 4627  var
4627    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;
4628    pakketyper : TStrings;    pakketyper : TStrings;
4629    antlin : Integer;    antlin : Integer;
4630  // 20150306: start  
4631    antlinIdag, antlinSenere : Integer;    antlinIdag, antlinSenere : Integer;
4632  // 20150306: slut  
4633    XmlFelter : TStrings;    XmlFelter : TStrings;
4634    
4635   begin   begin
# Line 4927  var Line 4649  var
4649          StedKode := Sted;          StedKode := Sted;
4650        end;        end;
4651    
4652  // 20150310: start  
4653  (*  
4654      if Returpakkerfrapakkeshop1.Checked then      if (Scanningtype = '7') then
      begin  
       URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);  
      end  
     else if Pakkeshoplevering1.Checked then  
4655       begin       begin
4656        URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);        URLStr := Format(UrlIndleveringsPakkeManglendeScanninger, [StedKode]);
4657       end       end
4658      else if Pakkernormal1.Checked then      else if (Scanningtype = '6') then
      begin  
       URLStr := Format(UrlManglendeScanninger,[StedKode,'B2']);  
      end  
     else  
      begin  
       URLStr := Format(UrlManglendeScanninger,[StedKode,'A2']);    // Budleveringer  
      end;  
 *)  
     if (Scanningtype = '6') then  
4659       begin       begin
4660        URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeReturScanninger, [StedKode]);
4661       end       end
4662      else if (Scanningtype = '5') then      else if (Scanningtype = '5') then
4663       begin       begin
4664        URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeScanninger, [StedKode]);
4665       end       end
4666      else if (Scanningtype = '1') then      else if (Scanningtype = '1') then
4667       begin       begin
# Line 4989  var Line 4698  var
4698      try      try
4699        XMLDocument1.LoadFromXML(WebSvar);        XMLDocument1.LoadFromXML(WebSvar);
4700    
4701  // 20150206: start  
4702        antlin := 0;        antlin := 0;
4703        antlinIdag := 0;        antlinIdag := 0;
4704        antlinSenere := 0;        antlinSenere := 0;
4705  // 20150306: slut  
       antalFelterFundet := 0;  
4706        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4707            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4708            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
# Line 5026  var Line 4734  var
4734        antalFelterFundet := 0;        antalFelterFundet := 0;
4735        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug
4736        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array
4737  // 20150206: start  
 //      logTekst := 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.';  
4738        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4739        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4740        begin        begin
4741          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';
4742        end;        end;
4743        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4744  // 20150306: slut  
4745        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4746        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4747            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
# Line 5078  var Line 4785  var
4785  //                    stregkoderMedTjekkodeArray[linienr] := stregkode;  //                    stregkoderMedTjekkodeArray[linienr] := stregkode;
4786                    if (pos(' ', stregkode) > 0) then                    if (pos(' ', stregkode) > 0) then
4787                    begin                    begin
4788                      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
4789                    end                    end
4790                    else                    else
4791                    begin                    begin
4792                      stregkoderMedTjekkodeArray[linienr] := stregkode;                      stregkoderMedTjekkodeArray[linienr] := stregkode;
4793                    end;                    end;
4794  // 20150306: slut                    linienr := linienr + 1;
                     linienr := linienr + 1;  
4795                  end;                  end;
4796              end;              end;
4797              if antalFelterFundet = antalLiniefelter then              if antalFelterFundet = antalLiniefelter then
# Line 5110  var Line 4816  var
4816    
4817          // Free up the list object          // Free up the list object
4818        pakketyper.Free;        pakketyper.Free;
 // 20150306: start  
4819  //      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.');
4820        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4821        if (antlinSenere > 0) then        if (antlinSenere > 0) then
# Line 5119  var Line 4824  var
4824        end;        end;
4825        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4826        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
 // 20150306: slut  
 // 20150309: start  
4827        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4828        begin        begin
4829          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);
# Line 5129  var Line 4832  var
4832        begin        begin
4833          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);
4834        end;        end;
 // 20150309: slut  
4835    
 // 20150310: start  
4836        if (Scanningtype = '1') then        if (Scanningtype = '1') then
4837        begin        begin
4838          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal
# Line 5210  var Line 4911  var
4911            PanelManglendePakker6.Visible := false;            PanelManglendePakker6.Visible := false;
4912          end;          end;
4913        end;        end;
 // 20150310: slut  
4914    
4915      except on e:exception do      except on e:exception do
4916        begin        begin
# Line 5272  end; Line 4972  end;
4972  procedure TMainForm.SkrivScanningLogFil(var tekst : string);  procedure TMainForm.SkrivScanningLogFil(var tekst : string);
4973  var  var
4974     SomeTxtFile : TextFile;     SomeTxtFile : TextFile;
    buffer : string;  
    S: string;  
4975     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
4976     imorgenYmd : string;     imorgenYmd : string;
4977     logFilnavn : string;     logFilnavn : string;
4978      error : Integer;     //error : Integer;
4979    
4980  begin  begin
4981    if (SkrivLog = '1') then    if (SkrivLog = '1') then
# Line 5369  begin Line 5067  begin
5067          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
5068          S := buffer;          S := buffer;
5069          SetLength(A,0);          SetLength(A,0);
5070          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
5071          if (length(A) < 2) then          if (length(A) < 2) then
5072          begin          begin
5073            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
5074          end;          end;
5075            if (length(A) > 1) then            if (length(A) > 1) then
5076            begin            begin
# Line 5446  begin Line 5144  begin
5144          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
5145          S := buffer;          S := buffer;
5146          SetLength(A,0);          SetLength(A,0);
5147          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
5148          if (length(A) < 3) then          if (length(A) < 3) then
5149          begin          begin
5150            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
5151          end;          end;
5152          if (A[0]=imorgenYmd) then          if (A[0]=imorgenYmd) then
5153          begin          begin
# Line 5541  begin Line 5239  begin
5239    result := svar;    result := svar;
5240  end;  end;
5241    
5242    procedure TMainForm.VisAlarmSkaerm(strMessage: string);
5243    begin
5244      //ShowMessage('Ændring ikke tilladt');
5245      // Her skal komme en 'rød skærm' alarm
5246      PlaySound(PWideChar(AlarmLyd));
5247      MainForm.Color := clRed;
5248    
5249    
5250      RuteNummerST.Caption := '';
5251      BoghandlerNavnST.Caption := '';
5252      btnNulstil.Visible := true;
5253    
5254      if (strMessage <> '') then
5255      begin
5256        ListBox1.Items.Insert(0, strMessage);
5257        KommentarST.Caption := strMessage;
5258      end;
5259    
5260    end;
5261    
5262  function TMainForm.getProddato() : TDate;  function TMainForm.getProddato() : TDate;
5263  var  var
5264     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
# Line 5622  procedure TMainForm.Scanogstjekkoden1Cli Line 5340  procedure TMainForm.Scanogstjekkoden1Cli
5340  begin  begin
5341    if Scanogstjekkoden1.Checked then    if Scanogstjekkoden1.Checked then
5342    begin    begin
5343       CheckBox3.Checked := true;       chkScanTjekkode.Checked := true;
5344    end    end
5345    else    else
5346    begin    begin
5347       CheckBox3.Checked := false;       chkScanTjekkode.Checked := false;
5348    end;    end;
5349  end;  end;
5350    
5351  function TMainForm.AdobeReaderExists: Boolean;  
5352  var  
5353    AReg: TRegistry;  
5354  begin  
5355    result:= false;  
   AReg := TRegistry.Create;  
   AReg.RootKey := HKEY_LOCAL_MACHINE;  
   if AReg.KeyExists('\SOFTWARE\Adobe\Acrobat Reader') then  
     result:= True;  
   AReg.Free;  
 end;  
5356    
5357  procedure TMainForm.CheckPrintQue(tjektype : string);  procedure TMainForm.CheckPrintQue(tjektype : string);
5358  type  type
# Line 5745  begin Line 5457  begin
5457    end;    end;
5458  end;  end;
5459    
 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);  
   end;  
   
 end;  
   
 // 20150310: start  
 procedure TMainForm.RoundCornerOf(Control: TWinControl);  
 var  
    R: TRect;  
    Rgn: HRGN;  
 begin  
    with Control do  
    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;  
 end;  
 // 20150310: slut  
5460    
5461  end.  end.
5462    

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

  ViewVC Help
Powered by ViewVC 1.1.20