/[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 2682 by torben, Wed Aug 26 19:52:38 2015 UTC revision 3125 by torben, Wed Oct 19 08:39:31 2016 UTC
# Line 1  Line 1 
1  unit Main;  unit Main;
2    
3    // ToDo: flyt PrinterNavn til hhv Configuration lg lad TLabelPrint om al håndtering heraf
4    // ToDo: flyt flere parametre til TConfiguration
5    
6    // ToDo: FormKeyPress() trænger til en seriøs oprydning / refactoring
7    // ToDo: flyt mere funktionalitet fra interface layer til application layer klasser
8    // ToDo: vil det give mening at bruge State Pattern ? Så der er en class per scanningstype ?
9    // ToDo: alternativt kan man bruge en Enum til de forskellige typer
10    // ToDo: en enklere måde at håndtere capabilities på de forskellige scannings steder
11    
12    
13  interface  interface
14    
15  uses  uses
16    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
17    Dialogs, StdCtrls, Printers, IdBaseComponent, IdComponent, IdTCPConnection,    Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
18    IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,    IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,
19    Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,    Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,
20    IdExplicitTLSClientServerBase, IdFTP, pngimage, GIFImg, IdException,    IdExplicitTLSClientServerBase, IdFTP, IdException,
21    Winspool, Registry, ShellApi, ClipBrd, Buttons, wininet,    ShellApi, ClipBrd, Buttons, wininet,
22    UITypes,    UITypes,
23    PakkeshopLabels,    LabelData,
24    StBarC,    Utils,
25    Math, // DegToRad() bruges i PrintPakkeshopLabel    ParentForm,
26    Utils    LabelPrint,
27      Configuration,
28      Vcl.Imaging.pngimage,
29      Generics.Collections,
30      TimingHelper
31    
32    ;    ;
33    
34  type  type
35    TMainForm = class(TForm)    TMainForm = class(TForm, IParentForm)
36      StregkodeST: TStaticText;      StregkodeST: TStaticText;
37      RuteNummerST: TStaticText;      RuteNummerST: TStaticText;
38      BoghandlerNavnST: TStaticText;      BoghandlerNavnST: TStaticText;
# Line 26  type Line 40  type
40      XMLDocument1: TXMLDocument;      XMLDocument1: TXMLDocument;
41      ApplicationEvents1: TApplicationEvents;      ApplicationEvents1: TApplicationEvents;
42      chkSporgEfterKunde: TCheckBox;      chkSporgEfterKunde: TCheckBox;
     KommentarST: TStaticText;  
43      MainMenu1: TMainMenu;      MainMenu1: TMainMenu;
44      N1: TMenuItem;      N1: TMenuItem;
45      Pakkernormal1: TMenuItem;      menuNatXpress1: TMenuItem;
46      ReturpakkerfraDAO1: TMenuItem;      menuNatxpressReturDAO1: TMenuItem;
47      Returpakkerfraboghandler1: TMenuItem;      menuNatxpressReturfraKunde1: TMenuItem;
48      Hjlp1: TMenuItem;      Hjlp1: TMenuItem;
49      Om1: TMenuItem;      Om1: TMenuItem;
50      Testforbindelsen1: TMenuItem;      Testforbindelsen1: TMenuItem;
# Line 44  type Line 57  type
57      radioStorPakke: TRadioButton;      radioStorPakke: TRadioButton;
58      radioLillePakke: TRadioButton;      radioLillePakke: TRadioButton;
59      N4: TMenuItem;      N4: TMenuItem;
60      Storepakker1: TMenuItem;      menuStorePakker: TMenuItem;
61      Smpakker1: TMenuItem;      menuSmaaPakker: TMenuItem;
62      Panel1: TPanel;      Panel1: TPanel;
63      Testlyd2: TMenuItem;      Testlyd2: TMenuItem;
64      Button1: TButton;      Button1: TButton;
65      Testlyd1: TMenuItem;      Testlyd1: TMenuItem;
66      ListBox1: TListBox;      ListBox1: TListBox;
67      Budlevering1: TMenuItem;      menuDaoDirekte1: TMenuItem;
68      DownloadButton01: TButton;      BtnDownloadKontrolfil: TButton;
69      IdFTP1: TIdFTP;      IdFTP1: TIdFTP;
70      Image1: TImage;      Image1: TImage;
71      ListBox2: TListBox;      ListBox2: TListBox;
72      OpdaterListenButton01: TButton;      BtnOpdaterListen: TButton;
73      UploadButton01: TButton;      BtnUploadLogfil: TButton;
74      DownloadButton03: TButton;      BtnDownloadRuteskiftFil: TButton;
75      Pakkeshoplevering1: TMenuItem;      menuPakkeshop1: TMenuItem;
76      PakkeshopText1: TStaticText;      PakkeshopText1: TStaticText;
77      btnNulstil: TButton;      btnNulstil: TButton;
78      Returpakkerfrapakkeshop1: TMenuItem;      menuPakkeshopRetur1: TMenuItem;
79      Altidprintepakkelabel1: TMenuItem;      Altidprintepakkelabel1: TMenuItem;
80      chkAltidPrintLabel: TCheckBox;      chkAltidPrintLabel: TCheckBox;
81      EKLoverforsel: TButton;      BtnEKLoverforsel: TButton;
82      N5: TMenuItem;      N5: TMenuItem;
83      Uploadlogfil1: TMenuItem;      Uploadlogfil1: TMenuItem;
84      Manual1: TMenuItem;      Manual1: TMenuItem;
# Line 73  type Line 86  type
86      Timer1: TTimer;      Timer1: TTimer;
87      chkScanTjekkode: TCheckBox;      chkScanTjekkode: TCheckBox;
88      Scanogstjekkoden1: TMenuItem;      Scanogstjekkoden1: TMenuItem;
89      Automatisktjekkodestyring1: TMenuItem;      menuAutomatiskTjekkodeStyring: TMenuItem;
90      Automatiskvalg1: TMenuItem;      menuAutomatiskvalg1: TMenuItem;
91      PanelValgA: TPanel;      PanelValgA: TPanel;
92      PanelValg1: TPanel;      PanelValg1: TPanel;
93      PanelValg2: TPanel;      PanelValg2: TPanel;
# Line 92  type Line 105  type
105      PanelManglendePakker5: TPanel;      PanelManglendePakker5: TPanel;
106      PanelManglendePakker6: TPanel;      PanelManglendePakker6: TPanel;
107      menuIndlevering: TMenuItem;      menuIndlevering: TMenuItem;
108        chkForstorTilDirekte: TCheckBox;
109        chkEmballageRepareret: TCheckBox;
110        KommentarST: TLabel;
111        chkUdenforSpecifikation: TCheckBox;
112    
113    
   function Sto_GetFmtFileVersion(const FileName: String = ''): String;  
114    
115    function getProddato() : TDate;    function getProddato() : TDate;
116    function getProddag() : String;    function getProddag() : String;
117    function retRutenummer(rutenummer : String) : String;    function retRutenummer(rutenummer : String) : String;
   function GetCurrentPrinterHandle() : THandle;  
   function SavePChar(p: PChar): PChar;  
   function AdobeReaderExists(): Boolean;  
   function FileTime2DateTime(FileTime: TFileTime): TDateTime;  
   function CheckUrl(url:string):boolean;  
118    
119    procedure PlaySound(filename : PWideChar);    procedure PlaySound(filename : PWideChar);
120    procedure StartScreen();    procedure StartScreen();
# Line 119  type Line 130  type
130    procedure radioStorPakkeClick(Sender: TObject);    procedure radioStorPakkeClick(Sender: TObject);
131    procedure radioLillePakkeClick(Sender: TObject);    procedure radioLillePakkeClick(Sender: TObject);
132    procedure chkSporgEfterKundeClick(Sender: TObject);    procedure chkSporgEfterKundeClick(Sender: TObject);
133    procedure Pakkernormal1Click(Sender: TObject);    procedure menuNatXpress1Click(Sender: TObject);
134    procedure Testforbindelsen1Click(Sender: TObject);    procedure Testforbindelsen1Click(Sender: TObject);
135    procedure Testprinter1Click(Sender: TObject);    procedure Testprinter1Click(Sender: TObject);
136    procedure Om1Click(Sender: TObject);    procedure Om1Click(Sender: TObject);
137    procedure Lukprogrammet1Click(Sender: TObject);    procedure Lukprogrammet1Click(Sender: TObject);
138    procedure Sprgefterboghandlernummer1Click(Sender: TObject);    procedure Sprgefterboghandlernummer1Click(Sender: TObject);
139    procedure ReturpakkerfraDAO1Click(Sender: TObject);    procedure menuNatxpressReturDAO1Click(Sender: TObject);
140    procedure Returpakkerfraboghandler1Click(Sender: TObject);    procedure menuNatxpressReturfraKunde1Click(Sender: TObject);
141    procedure Storepakker1Click(Sender: TObject);    procedure menuStorePakkerClick(Sender: TObject);
142    procedure Smpakker1Click(Sender: TObject);    procedure menuSmaaPakkerClick(Sender: TObject);
143    procedure Testlyd1Click(Sender: TObject);    procedure Testlyd1Click(Sender: TObject);
144    procedure Testlyd2Click(Sender: TObject);    procedure Testlyd2Click(Sender: TObject);
145    procedure Button1Click(Sender: TObject);    procedure Button1Click(Sender: TObject);
146    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
147    procedure Budlevering1Click(Sender: TObject);    procedure menuDaoDirekte1Click(Sender: TObject);
148    procedure DownloadButton01Click(Sender: TObject);    procedure BtnDownloadKontrolfilClick(Sender: TObject);
149    procedure OpdaterListenButton01Click(Sender: TObject);    procedure BtnOpdaterListenClick(Sender: TObject);
150    procedure DownloadBladhusRuteskiftfil();    procedure DownloadBladhusRuteskiftfil();
151    procedure DownloadBladhusKontrolfil();    procedure DownloadBladhusKontrolfil();
152    procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);    procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);
# Line 143  type Line 154  type
154    procedure UploadInifilTilDAO();    procedure UploadInifilTilDAO();
155    procedure SletStregkodelinieFraListboks2(StregKode : String);    procedure SletStregkodelinieFraListboks2(StregKode : String);
156    procedure FormDestroy(Sender: TObject);    procedure FormDestroy(Sender: TObject);
157    procedure UploadButton01Click(Sender: TObject);    procedure BtnUploadLogfilClick(Sender: TObject);
158    procedure DownloadButton03Click(Sender: TObject);    procedure BtnDownloadRuteskiftFilClick(Sender: TObject);
159    procedure Pakkeshoplevering1Click(Sender: TObject);    procedure menuPakkeshop1Click(Sender: TObject);
160    procedure btnNulstilClick(Sender: TObject);    procedure btnNulstilClick(Sender: TObject);
161    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);    procedure menuPakkeshopRetur1Click(Sender: TObject);
162    procedure InitNatxpresslevering();    procedure InitNatxpresslevering();
163    procedure InitReturFraDao();    procedure InitReturFraDao();
164    procedure InitReturFraKunde();    procedure InitReturFraKunde();
# Line 158  type Line 169  type
169    
170    procedure Altidprintepakkelabel1Click(Sender: TObject);    procedure Altidprintepakkelabel1Click(Sender: TObject);
171    procedure chkAltidPrintLabelClick(Sender: TObject);    procedure chkAltidPrintLabelClick(Sender: TObject);
172    procedure EKLoverforselClick(Sender: TObject);    procedure BtnEKLoverforselClick(Sender: TObject);
173    procedure Uploadlogfil1Click(Sender: TObject);    procedure Uploadlogfil1Click(Sender: TObject);
174    procedure Manual1Click(Sender: TObject);    procedure Manual1Click(Sender: TObject);
175    procedure Timer1Timer(Sender: TObject);    procedure Timer1Timer(Sender: TObject);
176    procedure Scanogstjekkoden1Click(Sender: TObject);    procedure Scanogstjekkoden1Click(Sender: TObject);
177    procedure chkScanTjekkodeClick(Sender: TObject);    procedure chkScanTjekkodeClick(Sender: TObject);
178    procedure Automatisktjekkodestyring1Click(Sender: TObject);    procedure menuAutomatiskTjekkodeStyringClick(Sender: TObject);
179    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
180    procedure Automatiskvalg1Click(Sender: TObject);    procedure menuAutomatiskvalg1Click(Sender: TObject);
181    procedure PanelValgAClick(Sender: TObject);    procedure PanelValgAClick(Sender: TObject);
182    procedure PanelValg1Click(Sender: TObject);    procedure PanelValg1Click(Sender: TObject);
183    procedure PanelValg2Click(Sender: TObject);    procedure PanelValg2Click(Sender: TObject);
# Line 180  type Line 191  type
191    procedure SletLogfiler(Path: string; FileList: TStrings);    procedure SletLogfiler(Path: string; FileList: TStrings);
192    procedure Manualgenerel1Click(Sender: TObject);    procedure Manualgenerel1Click(Sender: TObject);
193    procedure TjekkerUrls();    procedure TjekkerUrls();
194      procedure TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
195    
196    procedure menuIndleveringClick(Sender: TObject);    procedure menuIndleveringClick(Sender: TObject);
197    
198    procedure PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);  
199    procedure CheckPrintQue(tjektype : string);  
200      //Nedarvet fra IParentForm
201      procedure Msg( msg : string);
202      procedure LogMessage( msg : string);
203      procedure SetPrinterstatusText( txt: string; alert: boolean);
204      function GetFormObject() : TForm;
205      function GetXMLDocument() : TXMLDocument;
206        procedure chkEmballageRepareretClick(Sender: TObject);
207        procedure chkUdenforSpecifikationClick(Sender: TObject);
208    
209    
210    
211    private    private
# Line 193  type Line 214  type
214      SkrivLog : String;      SkrivLog : String;
215      Sted : String;      Sted : String;
216      StedNavn : String;      StedNavn : String;
217      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,UrlEKLoverforsel : String;  
218  // 29150330: start      Scanningtype,  Pakketype : String;
219      UrlEKLoverforselPakkeshop : String;  
220  // 20150330: slut  
221      UrlFindPakketype, UrlSendPrograminfo: String;      Url : String;
222      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;  
223      ScanTjekkode : String;      Farve : String;
224      ScanTjekkodeAutomatik : string;  
225      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop, FarveIndlevering : String;      Titel : String;
226      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop, TitelIndlevering : String;  
227      LabelType : integer;  
228      AlarmLyd : String;  
     ScannetOkLyd : String;  
     ScannetOkStorLyd : String;  
 // 20150317: start  
     ScannetOkTilTjekkodeLyd : String;  
 // 20150317: slut  
     PrinterNavn : String;  
     TjekPrinter : String;  
     XPosRute : integer;  
     YPosRute : integer;  
     FontSizeRute : integer;  
     FontSizeRuteLille : integer;  
     XPosKommentar : integer;  
     YPosKommentar : integer;  
     FontSizeKommentar : integer;  
     XPosBoghandler : integer;  
     YPosBoghandler : integer;  
     FontSizeBoghandler : integer;  
     XPosKoreliste : integer;  
     YPosKoreliste : integer;  
     FontSizeKoreliste : integer;  
     FontSizeKorelisteLille : integer;  
     XPosSorteringsfelt1 : integer;  
     YPosSorteringsfelt1 : integer;  
     FontSizeSorteringsfelt1 : integer;  
     XPosSorteringsfelt2 : integer;  
     YPosSorteringsfelt2 : integer;  
     FontSizeSorteringsfelt2 : integer;  
     XPosSmskode : integer;  
     YPosSmskode : integer;  
     FontSizeSmskode : integer;  
229      Org_RuteNummerST, Org_BoghandlerNavnST, Org_KommentarST : String;      Org_RuteNummerST, Org_BoghandlerNavnST, Org_KommentarST : String;
230      BladhusSted : Integer;      BladhusSted : Integer;
231      BladhusStedKode : Array of string;      BladhusStedKode : Array of string;
# Line 246  type Line 237  type
237      logTekst : string;      logTekst : string;
238      PakkeshopStregkode, PakkeshopTjekkode : String;      PakkeshopStregkode, PakkeshopTjekkode : String;
239      BoghandlerStregkode, BoghandlerTjekkode : String;      BoghandlerStregkode, BoghandlerTjekkode : String;
     TjekUrls : String;  
240    
241      Barcode : TStBarcode;      Config : TConfiguration;
242    
243    
244        LabelPrint: TLabelPrint;
245    
246      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 = '');
247      procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');  
248      procedure HentPakkeInfoFraServer(const Sted, PakkeNr : String; var RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel: Boolean; BoghandlerNummer : String = '');      procedure HentPakkeInfoFraServer(const Sted, PakkeNr : String; var RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel: Boolean; BoghandlerNummer : String = '');
249      procedure CheckCode();      procedure CheckCode();
250      procedure IndlesManglendeScanninger();      procedure IndlesManglendeScanningerAntal();
251        procedure IndlesManglendeScanningerListe();
252      procedure IndlesRuteskiftFil(var filnavn : string);      procedure IndlesRuteskiftFil(var filnavn : string);
253      procedure IndlesKontrolFil(var filnavn : string);      procedure IndlesKontrolFil(var filnavn : string);
254      procedure IndlesScanningLogFil();      procedure IndlesScanningLogFil();
# Line 263  type Line 256  type
256      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;
257      procedure VisAlarmSkaerm(strMessage: string);      procedure VisAlarmSkaerm(strMessage: string);
258    
259    
260    public    public
261      { Public declarations }      { Public declarations }
262    end;    end;
263    
       function GetPixelsPerInchX(): Integer;  
     function GetPixelsPerInchY(): Integer;  
264    
265  var  var
266    MainForm: TMainForm;    MainForm: TMainForm;
# Line 284  implementation Line 276  implementation
276  {$R *.dfm}  {$R *.dfm}
277    
278    
279    //FormCreate kaldes før InitForm
280    
281  procedure TMainForm.InitForm(Farve,Titel,Url : String);  procedure TMainForm.InitForm(Farve,Titel,Url : String);
282  begin  begin
283    
284  // 20150309: startr      IdHTTP1.ConnectTimeout := 5000; // Vent max 5 sek på connect
285        IdHTTP1.ReadTimeout := 10000; // Vent max 10 sek på read
286    
287    
288    
289    
290      StaticTextManglendePakker.Caption := '';      StaticTextManglendePakker.Caption := '';
 // 20150309: slut  
291    
     Barcode := TStBarcode.Create(MainForm);//Dynamisk oprettelse af Barcode component  
292    
293      PanelValg1.Color := clBtnFace;      PanelValg1.Color := clBtnFace;
294      if PanelValg1.Enabled = true then      if PanelValg1.Enabled = true then
# Line 335  begin Line 332  begin
332        PanelValg7.Font.Color := clWindowText;        PanelValg7.Font.Color := clWindowText;
333      end;      end;
334    
335      OpdaterListenButton01.Enabled := false;      BtnOpdaterListen.Enabled := false;
336    
337      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
338      begin      begin
# Line 363  begin Line 360  begin
360        else if (Sted = 'BR') then        else if (Sted = 'BR') then
361          begin StedNavn := 'Brøndby: '; end          begin StedNavn := 'Brøndby: '; end
362        else if (Sted = 'BK') then        else if (Sted = 'BK') then
363          begin StedNavn := 'Bladkompagniet: '; end          begin StedNavn := 'Bladkompagniet/ISV: '; end
364          else if (Sted = 'TK') then
365            begin StedNavn := 'BK/Trykkompagniet: '; end
366        else if (Sted = 'DBK') then        else if (Sted = 'DBK') then
367          begin StedNavn := 'DBK Køge: '; end          begin StedNavn := 'DBK/Køge: '; end
368        else if (Sted = '1') then        else if (Sted = '1') then
369          begin StedNavn := 'Ålborg: '; end          begin StedNavn := 'Ålborg: '; end
370        else if (Sted = '2') then        else if (Sted = '2') then
# Line 399  begin Line 398  begin
398        PrinterstatusStaticText1.Color := MainForm.Color;        PrinterstatusStaticText1.Color := MainForm.Color;
399      end;      end;
400    
401      if PakkeshopLevering1.Checked or Pakkernormal1.Checked then      if menuPakkeshop1.Checked or menuNatXpress1.Checked then
402        PakkeshopText1.Visible := true        PakkeshopText1.Visible := true
403      else      else
404        PakkeshopText1.Visible := false;        PakkeshopText1.Visible := false;
# Line 410  begin Line 409  begin
409    
410      if (Scanningtype = '1') or (Scanningtype = '5') then      if (Scanningtype = '1') or (Scanningtype = '5') then
411      begin      begin
412        if (ScanTjekkode = '1') then        if (Config.ScanTjekkode = '1') then
413        begin        begin
414          chkScanTjekkode.Checked := true;          chkScanTjekkode.Checked := true;
415          chkScanTjekkode.Enabled := true;          chkScanTjekkode.Enabled := true;
# Line 424  begin Line 423  begin
423        end;        end;
424      end;      end;
425    
426      if Automatisktjekkodestyring1.Checked then      if menuAutomatiskTjekkodeStyring.Checked then
427      begin      begin
428        chkScanTjekkode.Enabled := false;        chkScanTjekkode.Enabled := false;
429        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
# Line 460  begin Line 459  begin
459        end;        end;
460      end;      end;
461    
462    
463  end;  end;
464    
465  procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);  procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);
# Line 481  begin Line 481  begin
481    StregkodeST.Caption := Stregkode;    StregkodeST.Caption := Stregkode;
482  end;  end;
483    
484  procedure TMainForm.Automatisktjekkodestyring1Click(Sender: TObject);  procedure TMainForm.menuAutomatiskTjekkodeStyringClick(Sender: TObject);
485  begin  begin
486    if Automatisktjekkodestyring1.Checked then    if menuAutomatiskTjekkodeStyring.Checked then
487    begin    begin
488       chkScanTjekkode.Enabled := false;       chkScanTjekkode.Enabled := false;
489       Scanogstjekkoden1.Enabled := false;       Scanogstjekkoden1.Enabled := false;
# Line 496  begin Line 496  begin
496    
497  end;  end;
498    
499  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);  procedure TMainForm.menuAutomatiskvalg1Click(Sender: TObject);
500  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;  
 *)  
501  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
502  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
503       AutomatiskValg1.Checked := true;       menuAutomatiskvalg1.Checked := true;
504       PanelValgA.Color := clGreen;       PanelValgA.Color := clGreen;
505       PanelValgA.Font.Color := clWhite;       PanelValgA.Font.Color := clWhite;
 // 20150317: slut  
506  end;  end;
507    
508    
509    
510    //InitForm kaldes før FormCreate
511  procedure TMainForm.FormCreate(Sender: TObject);  procedure TMainForm.FormCreate(Sender: TObject);
512  const  const
513    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
514  var  var
   printerInd : integer;  
515    gemScanningtype : String;    gemScanningtype : String;
516    
517  begin  begin
518    
519    
520    // Initierer nogle variabler    // Initierer nogle variabler
521    BladhusSted := 00;    BladhusSted := 00;
522    Application.ShowHint := True;    Application.ShowHint := True;
# Line 554  begin Line 542  begin
542    
543  // Sætter lige en default panel størrelse  // Sætter lige en default panel størrelse
544    MainForm.ClientWidth := 1000;    MainForm.ClientWidth := 1000;
545    MainForm.ClientHeight := 750;    MainForm.ClientHeight := 920;
546    
547      Config := TConfiguration.Create();
548      Config.ReadFromInifile( TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) );    //ToDo: clean up duplicate ini ref
549      Config.Sted := Sted;
550    
551    // Læser parametre fra ini filen    // Læser parametre fra ini filen
552    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do
553    try    try
554    
555    
556      SkrivLog := ReadString('Settings','SkrivLog','0');      SkrivLog := ReadString('Settings','SkrivLog','0');
557      Sted := ReadString('Settings','Sted','');      Sted := ReadString('Settings','Sted','');
558      StedNavn := ReadString('Settings','Stednavn','');      StedNavn := ReadString('Settings','Stednavn','');
559      UrlFindPakketype := ReadString('Settings','UrlFindPakketype','http://omdeling.info/webservices/bogpakkekontrol/FindPakketype.php?stregkode=%s');  
560      UrlSendPrograminfo := ReadString('Settings','UrlSendPrograminfo','http://omdeling.info/webservices/bogpakkekontrol/SendPrograminfo.php?programnavn=%s&sted=%s&scanningtype=%s&infotype=%s&info=%s');      Scanningtype := 'A'; //hardcoded
561      UrlNormal := ReadString('Settings','UrlNormal','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&tjekkode=%s');      Pakketype := '0';
562      UrlReturDAO := ReadString('Settings','UrlReturDAO','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&returpakketype=%s&pakkestorrelse=%s');  
563      UrlReturBoghandler := ReadString('Settings','UrlReturBoghandler','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&returpakketype=%s&pakkestorrelse=%s');  
564      UrlBudlevering := ReadString('Settings','UrlBudlevering','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&leveringstype=%s&pakkestorrelse=%s');  
565      UrlManglendeScanninger := ReadString('Settings','UrlManglendeScanninger','http://omdeling.info/webservices/bogpakkekontrol/bogpakkemanglendescanninger.php?sted=%s&type=%s');  
     UrlEKLoverforsel := ReadString('Settings','UrlEKLoverforsel','http://omdeling.info/webservices/bogpakkekontrol/bogpakkertilekl.php?sted=%s');  
   
     UrlEKLoverforselPakkeshop := ReadString('Settings','UrlEKLoverforselPakkeshop','http://omdeling.info/webservices/pakkeshop/pakkertilekl.php?sted=%s');  
   
     UrlPakkeshoplevering := ReadString('Settings','UrlPakkeshoplevering','http://omdeling.info/webservices/pakkeshop/pakkekontrol.php?sted=%s&stregkode=%s&tjekkode=%s');  
     UrlReturPakkeshop := ReadString('Settings','UrlReturPakkeshop','http://omdeling.info/webservices/pakkeshop/returpakkekontrol.php?sted=%s&stregkode=%s');  
     UrlPakkeshopManglendeScanninger := ReadString('Settings','UrlPakkeshopManglendeScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendescanninger.php?sted=%s');  
     UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s');  
   
     UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');  
   
   
     LabelType := ReadInteger('Settings','LabelType',1);  
     FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');  
     TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');  
     FarveReturDAO := ReadString('Settings','FarveReturDAO','A9F5A9');  
     TitelReturDAO := ReadString('Settings','TitelReturDAO','Returforsendelse fra DAO');  
     FarveReturBoghandler := ReadString('Settings','FarveReturBoghandler','F2F5A9');  
     TitelReturBoghandler := ReadString('Settings','TitelReturBoghandler','Returforsendelse fra boghandler');  
     FarveBudlevering := ReadString('Settings','FarveBudlevering','2E9AFE');  
     TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');  
     FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');  
     TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');  
   
     FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');  
     TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');  
   
     FarveIndlevering := ReadString('Settings', 'FarveIndlevering', 'E5B2CB');  
     TitelIndlevering := ReadString('Settings', 'TitelIndlevering', 'Indleveringskode');  
   
   
     SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');  
     ScanTjekkode := ReadString('Settings','ScanTjekkode','0');  
     ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');  
     Scanningtype := ReadString('Settings','Scanningtype','A');  
     Pakketype := ReadString('Settings','Pakketype','0');  
     TestFunktionen := ReadString('Settings','TestFunktion','0');  
     AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');  
     ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');  
     ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');  
   
     ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');  
   
     PrinterNavn := ReadString('Settings','PrinterNavn','');  
     TjekPrinter := ReadString('Settings','TjekPrinter','1');  
     TjekUrls := ReadString('Settings','TjekUrls','2');  
566    
567      if (SkrivLog = '1') then      if (SkrivLog = '1') then
568      begin      begin
569        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);
570        try        try
571          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
572          Uploadlogfil1.Enabled := true;          Uploadlogfil1.Enabled := true;
573          UploadButton01.Enabled := true;          BtnUploadLogfil.Enabled := true;
574          logTekst := 'Programmet er installeret som: '+ParamStr(0);          logTekst := 'Programmet er installeret som: '+ParamStr(0);
575          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
576          // Oprydning i gamle logfiler          // Oprydning i gamle logfiler
# Line 634  begin Line 582  begin
582    
583      if Scanningtype = 'A' then      if Scanningtype = 'A' then
584      begin      begin
585        Automatiskvalg1.Checked := true;        menuAutomatiskvalg1.Checked := true;
586        Scanningtype := '1';        Scanningtype := '1';
587        PanelValgA.Color := clGreen;        PanelValgA.Color := clGreen;
588        PanelValgA.Font.Color := clWhite;        PanelValgA.Font.Color := clWhite;
589      end;      end;
590    
     if LabelType = 0 then  
     begin  
        XPosRute := ReadInteger('RuteBred','XPos',1);  
        YPosRute := ReadInteger('RuteBred','YPos',1);  
        FontSizeRute := ReadInteger('RuteBred','FontSize',72);  
        FontSizeRuteLille := ReadInteger('RuteBred','FontSizeLille',20);  
        XPosKommentar := ReadInteger('KommentarBred','XPos',1);  
        YPosKommentar := ReadInteger('KommentarBred','YPos',250);  
        FontSizeKommentar := ReadInteger('KommentarBred','FontSize',16);  
        XPosBoghandler := ReadInteger('BoghandlerBred','XPos',1);  
        YPosBoghandler := ReadInteger('BoghandlerBred','YPos',400);  
        FontSizeBoghandler := ReadInteger('BoghandlerBred','FontSize',16);  
        XPosKoreliste := ReadInteger('KorelisteSmal','XPos',1);  
        YPosKoreliste := ReadInteger('KorelisteSmal','YPos',100);  
        FontSizeKoreliste := ReadInteger('KorelisteSmal','FontSize',72);  
        FontSizeKorelisteLille := ReadInteger('KorelisteSmal','FontSizeLille',20);  
        XPosSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','XPos',700);  
        YPosSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','YPos',100);  
        FontSizeSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','FontSize',16);  
        XPosSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','XPos',700);  
        YPosSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','YPos',150);  
        FontSizeSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','FontSize',16);  
        XPosSmskode := ReadInteger('SmskodeSmal','XPos',1);  
        YPosSmskode := ReadInteger('SmskodeSmal','YPos',300);  
        FontSizeSmskode := ReadInteger('SmskodeSmal','FontSize',32);  
     end  
     else  
     begin  
        XPosRute := ReadInteger('RuteSmal','XPos',1);  
        YPosRute := ReadInteger('RuteSmal','YPos',1);  
        FontSizeRute := ReadInteger('RuteSmal','FontSize',72);  
        FontSizeRuteLille := ReadInteger('RuteSmal','FontSizeLille',20);  
        XPosKommentar := ReadInteger('KommentarSmal','XPos',1);  
        YPosKommentar := ReadInteger('KommentarSmal','YPos',250);  
        FontSizeKommentar := ReadInteger('KommentarSmal','FontSize',16);  
        XPosBoghandler := ReadInteger('BoghandlerSmal','XPos',1);  
        YPosBoghandler := ReadInteger('BoghandlerSmal','YPos',400);  
        FontSizeBoghandler := ReadInteger('BoghandlerSmal','FontSize',16);  
        XPosKoreliste := ReadInteger('KorelisteSmal','XPos',1);  
        YPosKoreliste := ReadInteger('KorelisteSmal','YPos',100);  
        FontSizeKoreliste := ReadInteger('KorelisteSmal','FontSize',72);  
        FontSizeKorelisteLille := ReadInteger('KorelisteSmal','FontSizeLille',20);  
        XPosSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','XPos',700);  
        YPosSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','YPos',100);  
        FontSizeSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','FontSize',16);  
        XPosSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','XPos',700);  
        YPosSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','YPos',150);  
        FontSizeSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','FontSize',16);  
        XPosSmskode := ReadInteger('SmskodeSmal','XPos',1);  
        YPosSmskode := ReadInteger('SmskodeSmal','YPos',300);  
        FontSizeSmskode := ReadInteger('SmskodeSmal','FontSize',32);  
        if LabelType = 2 then // test på alm. printer kræver at XY-positionerne ganges med 3  
        begin  
           XPosRute := XPosRute * 3;  
           YPosRute := YPosRute * 3;  
           XPosKommentar := XPosKommentar * 3;  
           YPosKommentar := YPosKommentar * 3;  
           XPosBoghandler := XPosBoghandler * 3;  
           YPosBoghandler := YPosBoghandler * 3;  
           XPosKoreliste := XPosKoreliste * 3;  
           YPosKoreliste := YPosKoreliste * 3;  
           XPosSorteringsfelt1 := XPosSorteringsfelt1 * 3;  
           YPosSorteringsfelt1 := YPosSorteringsfelt1 * 3;  
           XPosSorteringsfelt2 := XPosSorteringsfelt2 * 3;  
           YPosSorteringsfelt2 := YPosSorteringsfelt2 * 3;  
           XPosSmskode := XPosSmskode * 3;  
           YPosSmskode := YPosSmskode * 3;  
        end;  
     end;  
591    
592      if SporgEfterBoghandler = '1' then  
593        if Config.SporgEfterBoghandler = '1' then
594      begin      begin
595        chkSporgEfterKunde.Checked := true;        chkSporgEfterKunde.Checked := true;
596        Sprgefterboghandlernummer1.Checked := true;        Sprgefterboghandlernummer1.Checked := true;
# Line 721  begin Line 601  begin
601        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
602      end;      end;
603    
604      if ScanTjekkode = '1' then      if Config.ScanTjekkode = '1' then
605      begin      begin
606        chkScanTjekkode.Checked := true;        chkScanTjekkode.Checked := true;
607        Scanogstjekkoden1.Checked := true;        Scanogstjekkoden1.Checked := true;
# Line 732  begin Line 612  begin
612        Scanogstjekkoden1.Checked := false;        Scanogstjekkoden1.Checked := false;
613      end;      end;
614    
615      if ScanTjekkodeAutomatik = '1' then      if Config.ScanTjekkodeAutomatik = '1' then
616      begin      begin
617        Automatisktjekkodestyring1.Checked := true;        menuAutomatiskTjekkodeStyring.Checked := true;
618        chkScanTjekkode.Enabled := false;        chkScanTjekkode.Enabled := false;
619        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
620      end;      end;
# Line 764  begin Line 644  begin
644  {$IfDef STED_BK}  {$IfDef STED_BK}
645      SpecialVersionSted := 'BK';      SpecialVersionSted := 'BK';
646  {$EndIf}  {$EndIf}
647    {$IfDef STED_TK}
648        SpecialVersionSted := 'TK';// BK-Trykkompagniet
649    {$EndIf}
650  {$IfDef STED_DBK}  {$IfDef STED_DBK}
651      SpecialVersionSted := 'DBK';      SpecialVersionSted := 'DBK';
652  {$EndIf}  {$EndIf}
# Line 774  begin Line 657  begin
657      SpecialVersionSted := 'NS';      SpecialVersionSted := 'NS';
658  {$EndIf}  {$EndIf}
659    
   
660      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
661      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)
662      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
# Line 790  begin Line 672  begin
672      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)
673      // ændrer vi Sted og Scanningtype her:      // ændrer vi Sted og Scanningtype her:
674    
 // 20150313: start  
675      if SpecialVersionSted = 'NS' then      if SpecialVersionSted = 'NS' then
676      begin      begin
677         SpecialVersionSted := '01';         //SpecialVersionSted := '01'; // Fra før NS overtog scanning løssalg
678         SpecialVersionScanningtype := '4';         //SpecialVersionScanningtype := '4';
679    
680          //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
681          Sted := SpecialVersionSted;
682         // her skal vi også disable de knapper BK ikke kan bruge
683          PanelValg2.Enabled := false;
684          PanelValg2.Font.Color := clInactiveCaption;
685          PanelValg3.Enabled := false;
686          PanelValg3.Font.Color := clInactiveCaption;
687          //PanelValg6.Enabled := false;
688          //PanelValg6.Font.Color := clInactiveCaption;
689    
690         // her skal vi også disable de menupunkter FD ikke kan bruge
691          menuNatxpressReturDAO1.Enabled := false;
692          menuNatxpressReturfraKunde1.Enabled := false;
693    
694          //Returpakkerfrapakkeshop1.Enabled := false;
695      end;      end;
696    
697      if SpecialVersionSted = 'FD' then      if SpecialVersionSted = 'FD' then
698      begin      begin
699         SpecialVersionSted := '03';         //SpecialVersionSted := '03'; //fra før at FD overtog scanning
700         SpecialVersionScanningtype := '4';         //SpecialVersionScanningtype := '4';
701      end;  
 // 20150313: slut  
702    
     if SpecialVersionSted = 'BK' then  
     begin  
703        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
704        Sted := SpecialVersionSted;        Sted := SpecialVersionSted;
705       // her skal vi også disable de knapper BK ikke kan bruge       // her skal vi også disable de knapper BK ikke kan bruge
# Line 812  begin Line 707  begin
707        PanelValg2.Font.Color := clInactiveCaption;        PanelValg2.Font.Color := clInactiveCaption;
708        PanelValg3.Enabled := false;        PanelValg3.Enabled := false;
709        PanelValg3.Font.Color := clInactiveCaption;        PanelValg3.Font.Color := clInactiveCaption;
710        PanelValg6.Enabled := false;        //PanelValg6.Enabled := false;
711        PanelValg6.Font.Color := clInactiveCaption;        //PanelValg6.Font.Color := clInactiveCaption;
712       // her skal vi også disable de menupunkter BK ikke kan bruge  
713        ReturpakkerfraDAO1.Enabled := false;       // her skal vi også disable de menupunkter FD ikke kan bruge
714        Returpakkerfraboghandler1.Enabled := false;        menuNatxpressReturDAO1.Enabled := false;
715        Returpakkerfrapakkeshop1.Enabled := false;        menuNatxpressReturfraKunde1.Enabled := false;
716        if SpecialVersionScanningtype = 'A' then  
717        begin        //Returpakkerfrapakkeshop1.Enabled := false;
718           Scanningtype := '1';  
       end  
       else  
       begin  
         Scanningtype := SpecialVersionScanningtype;  
       end;  
719      end;      end;
720    
721      if SpecialVersionSted = 'DBK' then      if (SpecialVersionSted = 'BK') OR (SpecialVersionSted = 'TK') then
722      begin      begin
723        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
724        Sted := SpecialVersionSted;        Sted := SpecialVersionSted;
725        // her skal vi også disable de knapper DBK ikke kan bruge       // her skal vi også disable de knapper BK ikke kan bruge
726        PanelValg2.Enabled := false;        PanelValg2.Enabled := false;
727        PanelValg2.Font.Color := clInactiveCaption;        PanelValg2.Font.Color := clInactiveCaption;
728        PanelValg3.Enabled := false;        PanelValg3.Enabled := false;
729        PanelValg3.Font.Color := clInactiveCaption;        PanelValg3.Font.Color := clInactiveCaption;
730        PanelValg5.Enabled := false;        //PanelValg6.Enabled := false;
731        PanelValg5.Font.Color := clInactiveCaption;        //PanelValg6.Font.Color := clInactiveCaption;
       PanelValg6.Enabled := false;  
       PanelValg6.Font.Color := clInactiveCaption;  
       PanelValg7.Enabled := false;  
       PanelValg7.Font.Color := clInactiveCaption;  
732    
733       // her skal vi også disable de menupunkter DBK ikke kan bruge       // her skal vi også disable de menupunkter BK ikke kan bruge
734        ReturpakkerfraDAO1.Enabled := false;        menuNatxpressReturDAO1.Enabled := false;
735        Returpakkerfraboghandler1.Enabled := false;        menuNatxpressReturfraKunde1.Enabled := false;
736    
737        Pakkeshoplevering1.Enabled := false;        //Returpakkerfrapakkeshop1.Enabled := false;
       Returpakkerfrapakkeshop1.Enabled := false;  
738    
739        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
740        begin        begin
# Line 861  begin Line 746  begin
746        end;        end;
747      end;      end;
748    
749        if SpecialVersionSted = 'DBK' then
750        begin
751          Sted := SpecialVersionSted;
752        end;
753    
754      if (SpecialVersionSted = '01')      if (SpecialVersionSted = '01')
755      or (SpecialVersionSted = '02')      or (SpecialVersionSted = '02')
756      or (SpecialVersionSted = '03')      or (SpecialVersionSted = '03')
# Line 884  begin Line 774  begin
774        PanelValg7.Font.Color := clInactiveCaption;        PanelValg7.Font.Color := clInactiveCaption;
775       // 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
776    
777        Automatiskvalg1.Enabled := false;        menuAutomatiskvalg1.Enabled := false;
778    
779        Pakkernormal1.Enabled := false;        menuNatXpress1.Enabled := false;
780        ReturpakkerfraDAO1.Enabled := false;        menuNatxpressReturDAO1.Enabled := false;
781        Returpakkerfraboghandler1.Enabled := false;        menuNatxpressReturfraKunde1.Enabled := false;
782        Budlevering1.Enabled := false;        menuDaoDirekte1.Enabled := false;
783        Pakkeshoplevering1.Enabled := false;        menuPakkeshop1.Enabled := false;
784        Returpakkerfrapakkeshop1.Enabled := false;        menuPakkeshopRetur1.Enabled := false;
785        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
786        begin        begin
787          Scanningtype := '4';          Scanningtype := '4';
788          Budlevering1.Enabled := true;          menuDaoDirekte1.Enabled := true;
789          PanelValg4.Font.Color := clWindowText;          PanelValg4.Font.Color := clWindowText;
790          PanelValg4.Enabled := true;          PanelValg4.Enabled := true;
791        end        end
# Line 904  begin Line 794  begin
794          Scanningtype := SpecialVersionScanningtype;          Scanningtype := SpecialVersionScanningtype;
795          PanelValgA.Enabled := false;          PanelValgA.Enabled := false;
796          PanelValgA.Font.Color := clInactiveCaption;          PanelValgA.Font.Color := clInactiveCaption;
797          AutomatiskValg1.Checked := false;          menuAutomatiskvalg1.Checked := false;
798          PanelValgA.Color := clBtnFace;          PanelValgA.Color := clBtnFace;
799          if Scanningtype = '1' then          if Scanningtype = '1' then
800          begin          begin
801            Pakkernormal1.Enabled := true;            menuNatXpress1.Enabled := true;
802            PanelValg1.Enabled := true;            PanelValg1.Enabled := true;
803            PanelValg1.Font.Color := clWindowText;            PanelValg1.Font.Color := clWindowText;
804          end;          end;
805          if Scanningtype = '2' then          if Scanningtype = '2' then
806          begin          begin
807            ReturpakkerfraDAO1.Enabled := true;            menuNatxpressReturDAO1.Enabled := true;
808            PanelValg2.Enabled := true;            PanelValg2.Enabled := true;
809            PanelValg2.Font.Color := clWindowText;            PanelValg2.Font.Color := clWindowText;
810          end;          end;
811          if Scanningtype = '3' then          if Scanningtype = '3' then
812          begin          begin
813            Returpakkerfraboghandler1.Enabled := true;            menuNatxpressReturfraKunde1.Enabled := true;
814            PanelValg3.Enabled := true;            PanelValg3.Enabled := true;
815            PanelValg3.Font.Color := clWindowText;            PanelValg3.Font.Color := clWindowText;
816          end;          end;
817          if Scanningtype = '4' then          if Scanningtype = '4' then
818          begin          begin
819            Budlevering1.Enabled := true;            menuDaoDirekte1.Enabled := true;
820            PanelValg4.Enabled := true;            PanelValg4.Enabled := true;
821            PanelValg4.Font.Color := clWindowText;            PanelValg4.Font.Color := clWindowText;
822          end;          end;
823          if Scanningtype = '5' then          if Scanningtype = '5' then
824          begin          begin
825            Pakkeshoplevering1.Enabled := true;            menuPakkeshop1.Enabled := true;
826            PanelValg5.Enabled := true;            PanelValg5.Enabled := true;
827            PanelValg5.Font.Color := clWindowText;            PanelValg5.Font.Color := clWindowText;
828          end;          end;
829          if Scanningtype = '6' then          if Scanningtype = '6' then
830          begin          begin
831            Returpakkerfrapakkeshop1.Enabled := true;            menuPakkeshopRetur1.Enabled := true;
832            PanelValg6.Enabled := true;            PanelValg6.Enabled := true;
833            PanelValg6.Font.Color := clWindowText;            PanelValg6.Font.Color := clWindowText;
834          end;          end;
# Line 967  begin Line 857  begin
857          Application.Terminate;          Application.Terminate;
858      end;      end;
859    
860      if TjekUrls = '1' then    // Tjekker urls      if Config.TjekUrls = '1' then    // Tjekker urls
861      begin      begin
862          TjekkerUrls();          TjekkerUrls();
863          if TjekUrls = '-' then  // så var der fejl i url - så vi stopper her          if Config.TjekUrls = '-' then  // så var der fejl i url - så vi stopper her
864          begin          begin
865             PlaySound(PWideChar(AlarmLyd));             PlaySound(PWideChar(Config.AlarmLyd));
866             MainForm.Color := clRed;             MainForm.Color := clRed;
867             RutenummerST.Caption := '';             RutenummerST.Caption := '';
868             BoghandlerNavnST.Caption := 'Fejl i urls';             BoghandlerNavnST.Caption := 'Fejl i urls';
# Line 1019  begin Line 909  begin
909    
910      if Pakketype = '1' then      if Pakketype = '1' then
911      begin      begin
912        Storepakker1.Checked := true;        menuStorePakker.Checked := true;
913        radioStorPakke.Checked := true;        radioStorPakke.Checked := true;
914      end      end
915      else      else
916      begin      begin
917        Smpakker1.Checked := true;        menuSmaaPakker.Checked := true;
918        radioLillePakke.Checked := true;        radioLillePakke.Checked := true;
919      end;      end;
920    
921      if TestFunktionen = '1' then      if Config.TestFunktionen = '1' then
922      begin      begin
923        Testforbindelsen1.Visible := true;        Testforbindelsen1.Visible := true;
924        Testprinter1.Visible := true;        Testprinter1.Visible := true;
925        Testlyd1.Visible := true;        Testlyd1.Visible := true;
926        Testlyd2.Visible := true;        Testlyd2.Visible := true;
927      end      end
928      else if TestFunktionen = '2' then      else if Config.TestFunktionen = '2' then
929      begin      begin
930        Testforbindelsen1.Enabled := false;        Testforbindelsen1.Enabled := false;
931        Testprinter1.Enabled := false;        Testprinter1.Enabled := false;
# Line 1050  begin Line 940  begin
940        Testlyd2.Visible := false;        Testlyd2.Visible := false;
941      end;      end;
942    
     if not FileExists(AlarmLyd) then  
     begin  
       AlarmLyd := '';  
     end;  
   
     if not FileExists(ScannetOkLyd) then  
     begin  
       ScannetOkLyd := '';  
     end;  
   
     if not FileExists(ScannetOkStorLyd) then  
     begin  
       ScannetOkStorLyd := '';  
     end;  
   
943    
     if not FileExists(ScannetOkTilTjekkodeLyd) then  
     begin  
       ScannetOkTilTjekkodeLyd := '';  
     end;  
944    
945    
     if (PrinterNavn <> '') then  
     begin  
        printerInd := Printer.Printers.IndexOf(printerNavn);  
        if printerInd >= 0 then  
           Printer.PrinterIndex := printerInd;  
     end;  
946    
947      CheckPrintQue('Opstart');      LabelPrint := TLabelPrint.Create( self, Config, Config.PrinterNavn );
948        LabelPrint.CheckPrintQue('Opstart', Config.PrinterNavn);
949    
950    finally    finally
951      Free;      Free;
# Line 1088  begin Line 954  begin
954      // UBD skal p.t. ikke have adgang til flg. funktioner      // UBD skal p.t. ikke have adgang til flg. funktioner
955      if ( (Sted = '1') or (Sted = '2') or (Sted = '3') or (Sted = '4') ) then      if ( (Sted = '1') or (Sted = '2') or (Sted = '3') or (Sted = '4') ) then
956      begin      begin
957        ReturpakkerfraDAO1.Visible := false;        menuNatxpressReturDAO1.Visible := false;
958        Returpakkerfraboghandler1.Visible := false;        menuNatxpressReturfraKunde1.Visible := false;
959        Budlevering1.Visible := false;        menuDaoDirekte1.Visible := false;
960        Storepakker1.Visible := false;        menuStorePakker.Visible := false;
961        Smpakker1.Visible := false;        menuSmaaPakker.Visible := false;
962        Testprinter1.Visible := false;        Testprinter1.Visible := false;
963        Pakkeshoplevering1.Visible := false;        menuPakkeshop1.Visible := false;
964        Returpakkerfrapakkeshop1.Visible := false;        menuPakkeshopRetur1.Visible := false;
965      end;      end;
966    
967      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
# Line 1107  begin Line 973  begin
973      // Opbygger PanelManglendePakker information      // Opbygger PanelManglendePakker information
974      gemScanningtype := Scanningtype;      gemScanningtype := Scanningtype;
975    
976      if PanelValg6.Enabled then      IndlesManglendeScanningerAntal();
     begin  
        Scanningtype := '6';  
        IndlesManglendeScanninger();  
     end;  
   
     if PanelValg5.Enabled then  
     begin  
        Scanningtype := '5';  
        IndlesManglendeScanninger();  
     end;  
   
     if PanelValg4.Enabled then  
     begin  
        Scanningtype := '4';  
        IndlesManglendeScanninger();  
     end;  
   
     if PanelValg3.Enabled then  
     begin  
        Scanningtype := '3';  
        IndlesManglendeScanninger();  
     end;  
   
     if PanelValg2.Enabled then  
     begin  
        Scanningtype := '2';  
        IndlesManglendeScanninger();  
     end;  
977    
978      if PanelValg1.Enabled then  //    if PanelValg6.Enabled then
979      begin  //    begin
980         Scanningtype := '1';  //       Scanningtype := '6';
981         IndlesManglendeScanninger();  //       IndlesManglendeScanningerAntal();
982      end;  //    end;
983    //
984    //    if PanelValg5.Enabled then
985    //    begin
986    //       Scanningtype := '5';
987    //       IndlesManglendeScanningerAntal();
988    //    end;
989    //
990    //    if PanelValg4.Enabled then
991    //    begin
992    //       Scanningtype := '4';
993    //       IndlesManglendeScanningerAntal();
994    //    end;
995    //
996    //    if PanelValg3.Enabled then
997    //    begin
998    //       Scanningtype := '3';
999    //       IndlesManglendeScanningerAntal();
1000    //    end;
1001    //
1002    //    if PanelValg2.Enabled then
1003    //    begin
1004    //       Scanningtype := '2';
1005    //       IndlesManglendeScanningerAntal();
1006    //    end;
1007    //
1008    //    if PanelValg1.Enabled then
1009    //    begin
1010    //       Scanningtype := '1';
1011    //       IndlesManglendeScanningerAntal();
1012    //    end;
1013    
1014      Scanningtype := gemScanningtype;      Scanningtype := gemScanningtype;
1015    
1016      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');
1017      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion(''));      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', TUtils.Sto_GetFmtFileVersion(''));
1018    
1019  end;  end;
1020    
# Line 1203  begin Line 1071  begin
1071      or (NumberString = 'Retur fra kunde')      or (NumberString = 'Retur fra kunde')
1072      or (NumberString = 'DAO DIREKTE')      or (NumberString = 'DAO DIREKTE')
1073      or (NumberString = 'DAO PAKKESHOP')      or (NumberString = 'DAO PAKKESHOP')
1074        or (NumberString = 'DAO PAKKESHOP')
1075        or (LowerCase(NumberString) = 'for stor hjemmelevering' )
1076            or (LowerCase(NumberString) = 'for stor daodirekte' )
1077      or (NumberString = 'Retur fra pakkeshop') then      or (NumberString = 'Retur fra pakkeshop') then
1078    
1079      begin      begin
# Line 1213  begin Line 1084  begin
1084      begin      begin
1085        ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift');        ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift');
1086      end;      end;
1087    end;    end;  // Slut ctrl-v
1088    
1089    if Key = #13 then     // Enter    if Key = #13 then     // Enter
1090    begin    begin
1091      if (Length(Trim(Stregkode)) = 0) then  
1092        // Sikre at den er trimmet inden vi går videre - DBK kan finde på at encode et space i enden af deres barcodes
1093        Stregkode := Trim(Stregkode);
1094    
1095        if (Length(Stregkode) = 0) then
1096      begin      begin
1097        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );
1098    
# Line 1267  begin Line 1142  begin
1142         exit;         exit;
1143      end;      end;
1144    
1145        if (LowerCase(StregKode) = 'for stor hjemmelevering') OR (LowerCase(StregKode) = 'for stor daodirekte') then
1146        begin
1147          if chkForstorTilDirekte.Enabled then
1148          begin
1149            chkForstorTilDirekte.Checked := true;
1150          end
1151          else
1152          begin
1153             VisAlarmSkaerm( Stregkode + ' kan ikke vælges på denne scannings tilstand' );
1154          end;
1155          Stregkode := '';
1156          StregkodeST.Caption := StregKode;
1157          exit;
1158        end;
1159    
1160    
1161      if StregKode = 'Indtast kundenummer' then      if StregKode = 'Indtast kundenummer' then
1162      begin      begin
1163         if chkSporgEfterKunde.Enabled = true then         if chkSporgEfterKunde.Enabled = true then
# Line 1421  begin Line 1312  begin
1312      if (Length(Stregkode) > 8) then      if (Length(Stregkode) > 8) then
1313      begin      begin
1314        // Her skal vi så forespørge pakketype på serveren udfra stregkode feltet        // Her skal vi så forespørge pakketype på serveren udfra stregkode feltet
1315        URLStr := Format(UrlFindPakketype,[Stregkode]);        URLStr := Format(Config.UrlFindPakketype,[Stregkode]);
1316        try        try
1317          //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST          //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
1318          WebSvar := IdHTTP1.Get(URLStr);          WebSvar := IdHTTP1.Get(URLStr);
# Line 1464  begin Line 1355  begin
1355        Pakkescanningtype := Scanningtype;        Pakkescanningtype := Scanningtype;
1356      end;      end;
1357    
1358      if (   (Pakkescanningtype = '1') and (PanelValg1.Enabled = false)      if (   ( (Pakkescanningtype = '1') and (PanelValg1.Enabled = false) )
1359          or (Pakkescanningtype = '2') and (PanelValg2.Enabled = false)          or ( (Pakkescanningtype = '2') and (PanelValg2.Enabled = false) )
1360          or (Pakkescanningtype = '3') and (PanelValg3.Enabled = false)          or ( (Pakkescanningtype = '3') and (PanelValg3.Enabled = false) )
1361          or (Pakkescanningtype = '4') and (PanelValg4.Enabled = false)          or ( (Pakkescanningtype = '4') and (PanelValg4.Enabled = false) )
1362          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)          or ( (Pakkescanningtype = '5') and (PanelValg5.Enabled = false) )
1363          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then          or ( (Pakkescanningtype = '6') and (PanelValg6.Enabled = false) ) ) then
1364      begin   // Her skal komme en alarm og rød skærm      begin   // Her skal komme en alarm og rød skærm
1365          VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );          VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1366    
1367         exit;         exit;
1368      end;      end;
1369    
1370      if Automatiskvalg1.Checked and (Length(Stregkode) > 8) then      if (menuAutomatiskvalg1.Checked and (Length(Stregkode) > 8) ) then
1371      begin      begin
1372        GemStregkode := Stregkode;        GemStregkode := Stregkode;
1373        if Pakketype = 'NatXpress' then        if Pakketype = 'NatXpress' then
# Line 1505  begin Line 1396  begin
1396                InitPakkeshoplevering();                InitPakkeshoplevering();
1397              end;              end;
1398            end            end
1399        // Retur kan ikke scannes med 'Automatisk valg'       else if Pakketype = 'PakkeshopRetur' then
1400              begin
1401                if Scanningtype <> '6' then
1402                begin
1403                 VisAlarmSkaerm( Stregkode + ' Pakkeshop retur,'#13#10' kan ikke bruges med automatisk valg' );
1404    
1405                 exit;
1406                end;
1407              end
1408    
1409    
1410        else        else
1411            begin            begin
1412            // Her skal komme en alarm og rød skærm            // Her skal komme en alarm og rød skærm
1413              VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );              //VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1414                 VisAlarmSkaerm( Stregkode + ' kan ikke bruges med automatisk valg' );
1415    
1416               exit;               exit;
1417            end;            end;
1418        Stregkode := GemStregkode;        Stregkode := GemStregkode;
1419      end      end
1420      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then      else if menuAutomatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then
1421      begin      begin
1422        VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );        VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );
1423    
1424        exit;        exit;
1425      end;      end;
1426    
1427      if not Automatiskvalg1.Checked then      if not menuAutomatiskvalg1.Checked then
1428      begin      begin
1429        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then
1430        begin        begin
# Line 1534  begin Line 1435  begin
1435        end;        end;
1436      end;      end;
1437    
1438        // EmballageRepareret skal bare sætte reklamationkoden,
1439        // og så ellers fortsætte med scanning som normalt
1440        if (chkEmballageRepareret.Checked = True) then
1441        begin
1442          URLStr := Format(Config.UrlEmballageRepareret,[Sted,Stregkode]);
1443          WebSvar := IdHTTP1.Get(URLStr);
1444    
1445          chkEmballageRepareret.Checked := False;
1446        end;
1447    
1448      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then      if (chkUdenforSpecifikation.Checked = True) then
1449        begin
1450          URLStr := Format(Config.URLUdenforSpecifikation,[Sted,Stregkode]);
1451          //InputBox( '1', '1', URLStr);
1452    
1453          WebSvar := IdHTTP1.Get(URLStr);
1454          //InputBox( '2', '2', WebSvar );
1455    
1456          chkUdenforSpecifikation.Checked := False;
1457          LabelPrint.PrintLabel(Stregkode);
1458    
1459          StregkodeST.Caption := '';
1460          Stregkode := '';
1461    
1462          RuteNummerST.Caption := '';
1463          BoghandlerNavnST.Caption := '';
1464          KommentarST.Caption := 'Retur til leverandør';
1465    
1466    
1467    
1468    
1469          exit;   //leave procedure
1470        end;
1471    
1472    
1473    
1474    
1475        if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and menuAutomatiskTjekkodeStyring.Checked then
1476      begin      begin
1477        chkScanTjekkode.Checked := false;        chkScanTjekkode.Checked := false;
1478        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do
# Line 1549  begin Line 1485  begin
1485        end;        end;
1486      end;      end;
1487    
1488      if Pakkernormal1.Checked and not Scanogstjekkoden1.Checked then      if menuNatXpress1.Checked and not Scanogstjekkoden1.Checked then
1489        begin        begin
1490          // Når vi ikke kræver tjekkode er alt ok her          // Når vi ikke kræver tjekkode er alt ok her
1491             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
# Line 1559  begin Line 1495  begin
1495             Stregkode := '';             Stregkode := '';
1496             InitScreen();             InitScreen();
1497        end        end
1498      else if (PakkeshopLevering1.Checked or Pakkernormal1.Checked) and not Scanogstjekkoden1.Checked then      else if (menuPakkeshop1.Checked or menuNatXpress1.Checked) and not Scanogstjekkoden1.Checked then
1499        begin        begin
1500          // Når vi ikke kræver tjekkode er alt ok her          // Når vi ikke kræver tjekkode er alt ok her
1501             PakkeshopStregkode := Stregkode;             PakkeshopStregkode := Stregkode;
# Line 1571  begin Line 1507  begin
1507             Stregkode := '';             Stregkode := '';
1508             InitScreen();             InitScreen();
1509        end        end
1510      else if PakkeshopLevering1.Checked or Pakkernormal1.Checked then      else if menuPakkeshop1.Checked or menuNatXpress1.Checked then
1511        if PakkeshopText1.Caption = 'Stregkode' then        if PakkeshopText1.Caption = 'Stregkode' then
1512         begin         begin
1513            if length(Stregkode) > 5 then            if length(Stregkode) > 5 then
# Line 1580  begin Line 1516  begin
1516              BoghandlerStregkode := Stregkode;              BoghandlerStregkode := Stregkode;
1517              PakkeshopText1.Caption := 'Tjekkode';              PakkeshopText1.Caption := 'Tjekkode';
1518    
1519              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));              PlaySound(PWideChar(Config.ScannetOkTilTjekkodeLyd));
1520    
1521             end             end
1522            else            else
# Line 1597  begin Line 1533  begin
1533             PakkeshopTjekkode := Stregkode;             PakkeshopTjekkode := Stregkode;
1534             BoghandlerTjekkode := Stregkode;             BoghandlerTjekkode := Stregkode;
1535             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1536             if (PakkeshopLevering1.Checked) then             if (menuPakkeshop1.Checked) then
1537                MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering);                MainForm.Color := TUtils.HexToTColor(Config.FarvePakkeshoplevering);
1538             if (Pakkernormal1.Checked) then             if (menuNatXpress1.Checked) then
1539                MainForm.Color := TUtils.HexToTColor(FarveNormal);                MainForm.Color := TUtils.HexToTColor(Config.FarveNormal);
1540             btnNulstil.Visible := false;             btnNulstil.Visible := false;
1541           end           end
1542          else          else
1543           begin           begin
1544                if (PakkeshopLevering1.Checked) then                if (menuPakkeshop1.Checked) then
1545                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);
1546                if (Pakkernormal1.Checked) then                if (menuNatXpress1.Checked) then
1547                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);
1548                                    
1549                StregKode := '';                StregKode := '';
# Line 1619  begin Line 1555  begin
1555          InitScreen();          InitScreen();
1556       end;       end;
1557    
1558      if not PakkeshopLevering1.Checked and not Pakkernormal1.Checked or (PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '')) or (Pakkernormal1.Checked and (Scanogstjekkoden1.Checked and (BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked)) then      if not menuPakkeshop1.Checked and not menuNatXpress1.Checked or (menuPakkeshop1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '')) or (menuNatXpress1.Checked and (Scanogstjekkoden1.Checked and (BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked)) then
1559      begin      begin
1560         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then  
1561           if menuPakkeshop1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then
1562            StregKode := PakkeshopStregkode;            StregKode := PakkeshopStregkode;
1563         if Pakkernormal1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then         if menuNatXpress1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then
1564            StregKode := BoghandlerStregkode;            StregKode := BoghandlerStregkode;
1565         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1566         try         try
# Line 1637  begin Line 1574  begin
1574    
1575              exit;              exit;
1576            end;            end;
1577            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then            if (menuNatXpress1.Checked or menuDaoDirekte1.Checked or menuPakkeshop1.Checked) then
1578            begin            begin
1579              PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel);              PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel);
1580              pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);              pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
# Line 1653  begin Line 1590  begin
1590              tjekkodemangler := pos('Tjekkode mangler', Kommentar);              tjekkodemangler := pos('Tjekkode mangler', Kommentar);
1591              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then
1592              begin              begin
1593                PlaySound(PWideChar(AlarmLyd));                PlaySound(PWideChar(Config.AlarmLyd));
1594                btnNulstil.Visible := true;                btnNulstil.Visible := true;
1595                MainForm.Color := clRed;                MainForm.Color := clRed;
1596              end;              end;
1597           end;           end;
1598            if ( Pakkernormal1.Checked and (pakkeErScannet = 0) and (pakkeForkertSted = 0) and (tjekkodemangler = 0) and (RuteNummerST.Caption <> 'Ukendt') ) or (Copy(Kommentar,1,2) = 'Ok') then            if ( menuNatXpress1.Checked and (pakkeErScannet = 0) and (pakkeForkertSted = 0) and (tjekkodemangler = 0) and (RuteNummerST.Caption <> 'Ukendt') ) or (Copy(Kommentar,1,2) = 'Ok') then
1599            begin            begin
1600              MainForm.Color := TUtils.HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1601              if Storepakker1.Checked then              if menuStorePakker.Checked then
1602              begin              begin
1603                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(Config.ScannetOkStorLyd));
1604              end              end
1605              else              else
1606              begin              begin
1607                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(Config.ScannetOkLyd));
1608              end;              end;
1609              btnNulstil.Visible := false;              btnNulstil.Visible := false;
1610            end            end
1611            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then            else if (menuNatxpressReturDAO1.Checked or menuNatxpressReturfraKunde1.Checked) then
1612            begin            begin
1613              MainForm.Color := TUtils.HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1614              if Storepakker1.Checked then              if menuStorePakker.Checked then
1615              begin              begin
1616                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(Config.ScannetOkStorLyd));
1617              end              end
1618              else              else
1619              begin              begin
1620                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(Config.ScannetOkLyd));
1621              end;              end;
1622              btnNulstil.Visible := false;              btnNulstil.Visible := false;
1623            end            end
# Line 1695  begin Line 1632  begin
1632            begin            begin
1633              VisAlarmSkaerm('');              VisAlarmSkaerm('');
1634            end;            end;
1635    
1636           if not btnNulstil.Visible then           if not btnNulstil.Visible then
1637            begin            begin
1638    
1639              If (Budlevering1.Checked) then              If (menuDaoDirekte1.Checked) then
1640              begin              begin
1641                if Storepakker1.Checked then                if menuStorePakker.Checked then
1642                begin                begin
1643                  PlaySound(PWideChar(ScannetOkStorLyd));                  PlaySound(PWideChar(Config.ScannetOkStorLyd));
1644                end                end
1645                else                else
1646                begin                begin
1647                  PlaySound(PWideChar(ScannetOkLyd));                  PlaySound(PWideChar(Config.ScannetOkLyd));
1648                end;                end;
1649                InitLillePakke();                InitLillePakke();
1650              end;              end;
# Line 1744  begin Line 1682  begin
1682    
1683    Key := #0;    Key := #0;
1684    
1685    
1686    
1687    
1688    
1689    
1690  end; //End of OnKeyPress  end; //End of OnKeyPress
1691    
1692    
1693    
1694  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
1695  const  const
1696    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
# Line 1753  var Line 1698  var
1698    WebSvar : String;    WebSvar : String;
1699    URLStr : String;    URLStr : String;
1700  begin  begin
1701    if UrlSendPrograminfo <> '' then    if Config.UrlSendPrograminfo <> '' then
1702    begin    begin
1703      URLStr := Format(UrlSendPrograminfo,[ExtractFileName(ParamStr(0)), Sted, Scanningtype, Infotype, Info]);      URLStr := Format(Config.UrlSendPrograminfo,[ExtractFileName(ParamStr(0)), Sted, Scanningtype, Infotype, Info]);
1704      try      try
1705        //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST        //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
1706        WebSvar := IdHTTP1.Get(URLStr);        WebSvar := IdHTTP1.Get(URLStr);
# Line 1768  begin Line 1713  begin
1713        ShowMessage(logTekst);        ShowMessage(logTekst);
1714        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
1715        // Vi nulstiller lige url feltet så rutinen ikke kaldes igen i forbindelse med lukning af programmet        // Vi nulstiller lige url feltet så rutinen ikke kaldes igen i forbindelse med lukning af programmet
1716        UrlSendPrograminfo := '';        Config.UrlSendPrograminfo := '';
1717        Application.Terminate;        Application.Terminate;
1718      end;      end;
1719      end;      end;
# Line 1787  var Line 1732  var
1732    
1733    
1734  begin  begin
1735      if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked then      if menuDaoDirekte1.Checked or menuPakkeshop1.Checked or menuPakkeshopRetur1.Checked or menuNatXpress1.Checked or menuIndlevering.Checked then
1736      begin      begin
1737        for i := ListBox2.items.count-1 downto 0 do        for i := ListBox2.items.count-1 downto 0 do
1738          if pos(StregKode,ListBox2.items[i]) <> 0 then          if pos(StregKode,ListBox2.items[i]) <> 0 then
1739          begin          begin
1740              wrkAntalSenere := 0;//initial Value
1741    
1742            // Ajourføring af tæller for manglende pakker (scanninger)            // Ajourføring af tæller for manglende pakker (scanninger)
1743            wrkAntal := StaticTextManglendePakker.Caption;            wrkAntal := StaticTextManglendePakker.Caption;
# Line 1906  begin Line 1852  begin
1852                PanelManglendePakker6.Visible := false;                PanelManglendePakker6.Visible := false;
1853              end;              end;
1854            end;            end;
1855  // 20150310: slut  
1856            ListBox2.items.delete(i);            ListBox2.items.delete(i);
1857          end;          end;
1858      end;      end;
# Line 1936  procedure TMainForm.InitBladhus(); Line 1882  procedure TMainForm.InitBladhus();
1882    
1883  begin  begin
1884    Altidprintepakkelabel1.Enabled := false;    Altidprintepakkelabel1.Enabled := false;
1885    Pakkernormal1.Visible := false;    menuNatXpress1.Visible := false;
1886    ReturpakkerfraDAO1.Visible := false;    menuNatxpressReturDAO1.Visible := false;
1887    Returpakkerfraboghandler1.Visible := false;    menuNatxpressReturfraKunde1.Visible := false;
1888    Sprgefterboghandlernummer1.Enabled := false;    Sprgefterboghandlernummer1.Enabled := false;
1889    ListBox1.Visible := true;    ListBox1.Visible := true;
1890  //  TestFunktionen := '1';  //  TestFunktionen := '1';
1891  // 20150317: start  
1892  (*    if menuDaoDirekte1.Checked then
   if TestFunktionen = '1' then  
     begin  
       Testforbindelsen1.Visible := true;  
       Testprinter1.Visible := true;  
       Testlyd1.Visible := true;  
       Testlyd2.Visible := true;  
     end  
   else if TestFunktionen = '2' then  
     begin  
       Testforbindelsen1.Enabled := false;  
       Testprinter1.Enabled := false;  
       Testlyd1.Enabled := false;  
       Testlyd2.Enabled := false;  
     end  
   else  
     begin  
       Testforbindelsen1.Visible := false;  
       Testprinter1.Visible := false;  
       Testlyd1.Visible := false;  
       Testlyd2.Visible := false;  
     end;  
   Testprinter1.Visible := false;  
   AlarmLyd := 'Sounds\Alarm.wav';  
   if not FileExists(AlarmLyd) then  
     begin  
       AlarmLyd := '';  
     end;  
   ScannetOkLyd := 'Sounds\Ok.wav';  
   if not FileExists(ScannetOkLyd) then  
     begin  
       ScannetOkLyd := '';  
     end;  
   ScannetOkStorLyd := 'Sounds\Ok_stor.wav';  
   if not FileExists(ScannetOkStorLyd) then  
     begin  
       ScannetOkStorLyd := '';  
     end;  
 *)  
 // 20150317: slut  
   if Budlevering1.Checked then  
1893    begin    begin
1894      IndlesScanningLogFil();      IndlesScanningLogFil();
1895    end;    end;
# Line 1995  begin Line 1901  begin
1901      01 :      01 :
1902            begin;      // NS            begin;      // NS
1903              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1904              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1905              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1906              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1907              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1908              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';
1909              BladhusKontrolfil_lokal := 'RuteKontrol.txt';              BladhusKontrolfil_lokal := 'RuteKontrol.txt';
1910              DownloadBladhusKontrolfil();              DownloadBladhusKontrolfil();
1911              IndlesManglendeScanninger();              IndlesManglendeScanningerAntal();
1912            end;            end;
1913      02 :      02 :
1914            begin;    // BK            begin;    // BK
1915              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1916              Smpakker1.Enabled := true;              menuSmaaPakker.Enabled := true;
1917              Storepakker1.Enabled := true;              menuStorePakker.Enabled := true;
1918              radioStorPakke.Enabled := true;              radioStorPakke.Enabled := true;
1919              radioLillePakke.Enabled := true;              radioLillePakke.Enabled := true;
1920              DownloadButton01.Enabled := false;     // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;     // kontrolfil bruges ikke her
1921              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1922              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1923              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1924              IndlesManglendeScanninger();              IndlesManglendeScanningerAntal();
1925            end;            end;
1926      03 :      03 :
1927            begin;          // FD            begin;          // FD
1928              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1929             if (getProddag() = 'lørdag') then             if (getProddag() = 'lørdag') then
1930              begin              begin
1931                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
1932              end              end
1933              else              else
1934              begin              begin
1935                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
1936              end;              end;
1937              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1938              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1939              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1940              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1941              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';
# Line 2041  begin Line 1947  begin
1947              BladhusKontrolfil_server := 'frafd/RuteKontrol.txt';              BladhusKontrolfil_server := 'frafd/RuteKontrol.txt';
1948              BladhusKontrolfil_lokal := 'RuteKontrol.txt';              BladhusKontrolfil_lokal := 'RuteKontrol.txt';
1949              DownloadBladhusKontrolfil();              DownloadBladhusKontrolfil();
1950              IndlesManglendeScanninger();              IndlesManglendeScanningerAntal();
1951            end;            end;
1952      04 :  begin;           // DBK      04 :  begin;           // DBK
1953              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1954              Smpakker1.Enabled := true;              menuSmaaPakker.Enabled := true;
1955              Storepakker1.Enabled := true;              menuStorePakker.Enabled := true;
1956              radioStorPakke.Enabled := true;              radioStorPakke.Enabled := true;
1957              radioLillePakke.Enabled := true;              radioLillePakke.Enabled := true;
1958              DownloadButton01.Enabled := false;    // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;    // kontrolfil bruges ikke her
1959              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1960              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1961              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1962            end;            end;
# Line 2067  var Line 1973  var
1973    pakkestorrelse : String;    pakkestorrelse : String;
1974    PrintNyLabelInteger : Integer;    PrintNyLabelInteger : Integer;
1975    
1976    PakkeshopLabel: TPakkeshopLabel;    PakkeshopLabel: TLabelData;
1977  begin  begin
1978    if radioStorPakke.Checked then    if radioStorPakke.Checked then
1979    begin    begin
# Line 2079  begin Line 1985  begin
1985    end;    end;
1986    
1987    
1988    if Pakkernormal1.Checked then    if menuNatXpress1.Checked then
1989    begin    begin
1990       if (BoghandlerTjekkode = '') then       if (BoghandlerTjekkode = '') then
1991       begin       begin
1992         BoghandlerTjekkode := '-1';         BoghandlerTjekkode := '-1';
1993       end;       end;
1994       URLStr := Format(UrlNormal,[Sted, PakkeNr, BoghandlerNummer, BoghandlerTjekkode]);       URLStr := Format(Config.UrlNormal,[Sted, PakkeNr, BoghandlerNummer, BoghandlerTjekkode]);
1995    end    end
1996    else if ReturpakkerfraDAO1.Checked then    else if menuNatxpressReturDAO1.Checked then
1997    begin    begin
1998       URLStr := Format(UrlReturDAO,[Sted, PakkeNr, BoghandlerNummer, 'DAO', pakkestorrelse]);       URLStr := Format(Config.UrlReturDAO,[Sted, PakkeNr, BoghandlerNummer, 'DAO', pakkestorrelse]);
1999    end    end
2000    else if Returpakkerfraboghandler1.Checked then    else if menuNatxpressReturfraKunde1.Checked then
2001    begin    begin
2002       URLStr := Format(UrlReturBoghandler,[Sted, PakkeNr, BoghandlerNummer, 'Boghandler', pakkestorrelse]);       URLStr := Format(Config.UrlReturBoghandler,[Sted, PakkeNr, BoghandlerNummer, 'Boghandler', pakkestorrelse]);
2003    end    end
2004    else if Budlevering1.Checked then    else if menuDaoDirekte1.Checked then
2005    begin    begin
2006       URLStr := Format(UrlBudlevering,[Sted, PakkeNr, 'bud', pakkestorrelse]);       URLStr := Format(Config.UrlBudlevering,[Sted, PakkeNr, 'bud', pakkestorrelse]);
2007    end    end
2008    else if Pakkeshoplevering1.Checked then    else if menuPakkeshop1.Checked then
2009    begin    begin
2010       URLStr := Format(UrlPakkeshoplevering,[Sted, PakkeNr, PakkeshopTjekkode]);       URLStr := Format(Config.UrlPakkeshoplevering,[Sted, PakkeNr, PakkeshopTjekkode]);
2011    end    end
2012    else if Returpakkerfrapakkeshop1.Checked then    else if menuPakkeshopRetur1.Checked then
2013    begin    begin
2014       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);       URLStr := Format(Config.UrlReturPakkeshop,[Sted, PakkeNr]);
2015    end    end
2016    else if menuIndlevering.Checked then    else if menuIndlevering.Checked then
2017    begin    begin
2018      URLStr := Format(UrlIndleveringsPakke,[Sted, PakkeNr]);      URLStr := Format(Config.UrlIndleveringsPakke,[Sted, PakkeNr]);
2019    end    end
2020    else    else
2021    begin    begin
2022      exit;      exit;
2023    end;    end;
2024    
2025      if chkForstorTilDirekte.Checked then  // Denne skal være efter if/else kæden da den overrider de øvrige URL'er
2026      begin
2027        URLStr := Format(Config.URLOmdirigerTilPakkeshop,[Sted, PakkeNr]);
2028      end;
2029    
2030    try    try
2031      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
2032      WebSvar := IdHTTP1.Get(URLStr);      WebSvar := IdHTTP1.Get(URLStr);
# Line 2136  begin Line 2048  begin
2048          end;          end;
2049      end;      end;
2050    end;    end;
2051    
2052    XMLDocument1.LoadFromXML(WebSvar);    XMLDocument1.LoadFromXML(WebSvar);
2053    try    try
2054      if Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked then      if menuPakkeshop1.Checked or menuPakkeshopRetur1.Checked then
2055       begin       begin
2056        RuteNummer := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopTurid').Text;        RuteNummer := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopTurid').Text;
2057        Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;        Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
# Line 2146  begin Line 2059  begin
2059        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;
2060        PrintNyLabel := False;        PrintNyLabel := False;
2061    
2062        if Pakkeshoplevering1.Checked then        if menuPakkeshop1.Checked then
2063        begin        begin
2064          try          try
2065            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);
# Line 2159  begin Line 2072  begin
2072          end;          end;
2073        end;        end;
2074       end       end
2075      else if menuIndlevering.Checked then      else if menuIndlevering.Checked or chkForstorTilDirekte.Checked then
2076      begin      begin
2077    
2078    
# Line 2169  begin Line 2082  begin
2082       if (Kommentar = 'Ok') then       if (Kommentar = 'Ok') then
2083       begin       begin
2084         PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label         PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2085         PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc         PakkeshopLabel := TLabelData.Create( XMLDocument1 ); //Opret struct og parse xml doc
2086         RuteNummer := PakkeshopLabel.Koreliste;         RuteNummer := PakkeshopLabel.Koreliste + '  ->  ' +  PakkeshopLabel.PakkeshopTurid;
2087           Stregkode := PakkeshopLabel.Stregkode;
2088    
2089           LabelPrint.PrintLabel(PakkeshopLabel.Stregkode);
2090    
2091         PrintPakkeshopLabel( PakkeshopLabel );  //       LabelPrint.PrintFuldPakkeLabel( PakkeshopLabel );
2092    //       chkForstorTilDirekte.Checked := false;
2093    
2094       end;       end;
2095    
# Line 2185  begin Line 2102  begin
2102        Kommentar := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Kommentar').Text;        Kommentar := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Kommentar').Text;
2103        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('BoghandlerNavn').Text;        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('BoghandlerNavn').Text;
2104        Leveringssted := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Leveringssted').Text;        Leveringssted := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Leveringssted').Text;
2105        if Budlevering1.Checked then        if menuDaoDirekte1.Checked then
2106          begin          begin
2107          try          try
2108            SmsKode := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('SmsKode').Text;            SmsKode := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('SmsKode').Text;
# Line 2216  begin Line 2133  begin
2133      begin      begin
2134        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then
2135        begin        begin
2136            Kommentar := Kommentar + ' Pakke burde være hos DAO Distribution';            Kommentar := Kommentar + ' Pakke burde være hos ' + Leveringssted;
2137            PrintNyLabel := False;            //PrintNyLabel := False; //ved fuld-daekning / X-ruter skal vi altid skrive label alligevel
2138        end;        end;
2139      end      end
2140      else if (Budlevering1.Checked) and (Leveringssted <> Sted) then      else if (menuDaoDirekte1.Checked) and (Leveringssted <> Sted) And (Leveringssted <> '') then
2141      begin      begin
2142         if (Leveringssted = 'E') and (Sted = 'DBK') then        Kommentar := Kommentar + ' Pakke burde være hos ' + Leveringssted;
2143         begin        //PrintNyLabel := False;  //ved fuld-daekning / X-ruter skal vi altid skrive label alligevel
           // Det er ok at DBK scanner pakker til E     (Schenker)  
        end  
        else  
        begin  
           Kommentar := Kommentar + ' Pakke burde være hos DAO Distribution';  
           PrintNyLabel := False;  
        end;  
2144      end;      end;
2145    except on e:exception do    except on e:exception do
2146      raise exception.CreateFmt('Fejl i XML-format: %s',[e.Message]);      raise exception.CreateFmt('Fejl i XML-format: %s',[e.Message]);
# Line 2249  begin Line 2159  begin
2159    //Label1.Caption := Kommentar;   // bruges hvis der skal vises linieskift - det kan man ikke i en staticText    //Label1.Caption := Kommentar;   // bruges hvis der skal vises linieskift - det kan man ikke i en staticText
2160    BoghandlerNavnST.Caption := StringReplace(BoghandlerNavn, ' & ', ' && ', [rfReplaceAll, rfIgnoreCase]);    BoghandlerNavnST.Caption := StringReplace(BoghandlerNavn, ' & ', ' && ', [rfReplaceAll, rfIgnoreCase]);
2161    List1msg := TimeToStr(now) + '; ';    List1msg := TimeToStr(now) + '; ';
2162    if Pakkeshoplevering1.Checked then    if menuPakkeshop1.Checked then
2163      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';
2164    List1Pakkestorrelse := '';    List1Pakkestorrelse := '';
2165    if radioStorPakke.Checked then    if radioStorPakke.Checked then
# Line 2261  begin Line 2171  begin
2171      List1Pakkestorrelse := 'Lille pakke';      List1Pakkestorrelse := 'Lille pakke';
2172    end;    end;
2173    List1msg := List1msg + BoghandlerNavn + '; ';    List1msg := List1msg + BoghandlerNavn + '; ';
2174    if ReturpakkerfraDAO1.Checked then    if menuNatxpressReturDAO1.Checked then
2175    begin    begin
2176      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-8);      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-8);
2177    end;    end;
2178    if Returpakkerfraboghandler1.Checked then    if menuNatxpressReturfraKunde1.Checked then
2179    begin    begin
2180      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-16);      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-16);
2181    end;    end;
2182    if ReturpakkerfraDAO1.Checked or Returpakkerfraboghandler1.Checked then    if menuNatxpressReturDAO1.Checked or menuNatxpressReturfraKunde1.Checked then
2183       List1msg := List1msg + '; ' + List1Pakkestorrelse;       List1msg := List1msg + '; ' + List1Pakkestorrelse;
2184    if length(BoghNr) > 0 then    if length(BoghNr) > 0 then
2185    begin    begin
2186      List1Msg := List1Msg + '; Indtastet ' + BoghNr;      List1Msg := List1Msg + '; Indtastet ' + BoghNr;
2187    end;    end;
2188    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2189    begin    begin
2190       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;
2191        if (radioStorPakke.Checked) then        if (radioStorPakke.Checked) then
# Line 2287  begin Line 2197  begin
2197          List1msg := List1msg + '; Lille pakke';          List1msg := List1msg + '; Lille pakke';
2198        end;        end;
2199    end;    end;
2200    if Returpakkerfrapakkeshop1.Checked then    if menuPakkeshopRetur1.Checked then
2201    begin    begin
2202      List1msg := List1msg + Stregkode + ' ' + RightStr(Kommentar, Length(Kommentar)-6);      List1msg := List1msg + Stregkode + ' ' + RightStr(Kommentar, Length(Kommentar)-6);
2203    end;    end;
2204    if Pakkernormal1.Checked then    if menuNatXpress1.Checked then
2205    begin    begin
2206      if (Kommentar = '***** Kommentar *****')                       // fra test printer funktionen      if (Kommentar = '***** Kommentar *****')                       // fra test printer funktionen
2207      or (BoghandlerNavn = 'Forbindelse ok')                         // fra test forbindelse funktionen      or (BoghandlerNavn = 'Forbindelse ok')                         // fra test forbindelse funktionen
# Line 2304  begin Line 2214  begin
2214        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;
2215      end;      end;
2216    end;    end;
2217      if menuIndlevering.Checked then
2218      begin
2219        List1Msg := Stregkode;
2220      end;
2221    
2222    
2223    ListBox1.Items.Insert(0,List1Msg);    ListBox1.Items.Insert(0,List1Msg);
2224    logTekst := RightStr(List1Msg, Length(List1Msg)-10);    logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2225    SkrivScanningLogFil(logTekst);    SkrivScanningLogFil(logTekst);
2226  end;  end;
2227    
2228  procedure TMainForm.UploadButton01Click(Sender: TObject);  procedure TMainForm.BtnUploadLogfilClick(Sender: TObject);
2229  begin  begin
2230    UploadLogfilTilDAO();    UploadLogfilTilDAO();
2231    UploadInifilTilDAO();    UploadInifilTilDAO();
# Line 2325  pakkeForkertSted : Integer; Line 2241  pakkeForkertSted : Integer;
2241    kontrolKoreliste : string;    kontrolKoreliste : string;
2242    nytRuteNummer, nyFarve : String;    nytRuteNummer, nyFarve : String;
2243  begin  begin
2244    if Budlevering1.Checked then  //  if (PrintNyLabel = True OR chkAltidPrintLabel.Checked = True) then
2245    //  begin
2246    //    LabelPrint.PrintLabel( Stregkode );
2247    //  end;
2248    //
2249    //  exit;
2250    
2251      if menuDaoDirekte1.Checked then
2252       RuteNummerST.Color := TUtils.HexToTColor(Farve);       RuteNummerST.Color := TUtils.HexToTColor(Farve);
2253    
2254    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
# Line 2363  begin Line 2286  begin
2286        end;        end;
2287    end    end
2288    else    else
2289    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2290    begin    begin
2291       if (BoghandlerNavn = 'Ukendt pakke') then       if (BoghandlerNavn = 'Ukendt pakke') then
2292       begin       begin
2293          PrintNyLabel := false;          PrintNyLabel := false;
2294    
2295          PlaySound(PWideChar(AlarmLyd));          PlaySound(PWideChar(Config.AlarmLyd));
2296          MainForm.Color := clRed;          MainForm.Color := clRed;
2297          btnNulstil.Visible := true;          btnNulstil.Visible := true;
2298    
# Line 2389  begin Line 2312  begin
2312            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2313            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2314    
2315            if (PrinterNavn = 'Ingen') then  //          if (Config.PrinterNavn = 'Ingen') then
2316            begin  //          begin
2317               PrintNyLabel := false;  //             PrintNyLabel := false;
2318            end;  //          end;
2319    
2320            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
2321            begin            begin
2322              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(Config.AlarmLyd));
2323              MainForm.Color := clRed;              MainForm.Color := clRed;
2324              btnNulstil.Visible := true;              btnNulstil.Visible := true;
2325            end;            end;
# Line 2422  begin Line 2345  begin
2345    
2346            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
2347            begin            begin
2348              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(Config.AlarmLyd));
2349              MainForm.Color := clRed;              MainForm.Color := clRed;
2350              btnNulstil.Visible := true;              btnNulstil.Visible := true;
2351            end;            end;
# Line 2432  begin Line 2355  begin
2355    
2356    end;    end;
2357    
2358    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2359    begin    begin
2360      case BladhusSted of      case BladhusSted of
2361        00 :  begin;        00 :  begin;
# Line 2444  begin Line 2367  begin
2367               if PrintNyLabel or (RuteNummer = 'Rutenr') then               if PrintNyLabel or (RuteNummer = 'Rutenr') then
2368  // 20150304: slut  // 20150304: slut
2369                begin                begin
2370                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  //LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2371                    LabelPrint.PrintLabel( Stregkode );
2372                end;                end;
2373              end;              end;
2374        01 :  begin;        01 :  begin;
# Line 2452  begin Line 2376  begin
2376                    // 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
2377                    // 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')
2378                begin                begin
2379                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  //LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2380                    LabelPrint.PrintLabel( Stregkode );
2381                end;                end;
2382              end;              end;
2383        02 :  begin;        02 :  begin;
2384                if PrintNyLabel or (RuteNummer = 'Rutenr') then   // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test                if PrintNyLabel or (RuteNummer = 'Rutenr') then   // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test
2385                begin                begin
2386                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  //LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2387                    LabelPrint.PrintLabel( Stregkode );
2388                end;                end;
2389              end;              end;
2390        03 :  begin;        03 :  begin;
# Line 2466  begin Line 2392  begin
2392                    // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste                    // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste
2393                    // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')                    // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')
2394               begin               begin
2395                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  //LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2396                    LabelPrint.PrintLabel( Stregkode );
2397               end;               end;
2398              end;              end;
2399        04 :  begin;        04 :  begin;
2400                if PrintNyLabel or (RuteNummer = 'Rutenr') then   // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test                if PrintNyLabel or (RuteNummer = 'Rutenr') then   // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test
2401                begin                begin
2402                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  //LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2403                    LabelPrint.PrintLabel( Stregkode );
2404                end;                end;
2405              end;              end;
2406        else        else
# Line 2481  begin Line 2409  begin
2409    end;    end;
2410    
2411  // Hvis det er normal bogpakke modtagelse til UBD skal vi p.t. ikke printe - men stopper her  // Hvis det er normal bogpakke modtagelse til UBD skal vi p.t. ikke printe - men stopper her
2412    if Pakkernormal1.Checked and ( (Sted = '1') or (Sted = '2') or (Sted = '3') or (Sted = '4') ) then    if menuNatXpress1.Checked and ( (Sted = '1') or (Sted = '2') or (Sted = '3') or (Sted = '4') ) then
2413    begin    begin
2414      exit;      exit;
2415    end;    end;
2416    
2417    if Budlevering1.Checked or ( Sprgefterboghandlernummer1.Enabled and chkSporgEfterKunde.Checked and ( (RuteNummer = 'Ukendt') or (RuteNummer = 'Ukendt tur') or (RuteNummer = 'Retur ukendt') or (pakkeErScannet > 0) ) and (printNyLabel = false) ) then    if menuDaoDirekte1.Checked or ( Sprgefterboghandlernummer1.Enabled and chkSporgEfterKunde.Checked and ( (RuteNummer = 'Ukendt') or (RuteNummer = 'Ukendt tur') or (RuteNummer = 'Retur ukendt') or (pakkeErScannet > 0) ) and (printNyLabel = false) ) then
2418    begin    begin
2419    end    end
2420    else    else
2421    begin    begin
2422      if ( (PrinterNavn <> 'Ingen') and (PrintNyLabel or chkAltidPrintLabel.Checked) and (RuteNummer <> 'Ukendt') or (RuteNummer = 'Rutenr')) then      if ( (Config.PrinterNavn <> 'Ingen') and (PrintNyLabel or chkAltidPrintLabel.Checked) and (RuteNummer <> 'Ukendt') or (RuteNummer = 'Rutenr')) then
2423      begin      begin
2424        logTekst := 'Printer label type ';        logTekst := 'Printer label type ';
2425        if (chkAltidPrintLabel.Checked) then        if (chkAltidPrintLabel.Checked) then
# Line 2508  begin Line 2436  begin
2436        end;        end;
2437        logTekst := logTekst + ' for '+BoghandlerNavn;        logTekst := logTekst + ' for '+BoghandlerNavn;
2438        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
2439        with Printer do  
2440        begin        //LabelPrint.PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn) ;
2441          BeginDoc;        LabelPrint.PrintLabel( Stregkode );
2442          Canvas.Font.Size := FontSizeRute;  
         if (Length(RuteNummer) > 7) then  
         begin  
           Canvas.Font.Size := FontSizeRuteLille;  
         end;  
         Canvas.TextOut(XPosRute,YPosRute, RuteNummer);  
         Canvas.Font.Size := FontSizeKommentar;  
         Kommentar := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);  
         if (Kommentar = 'Ok') or (Kommentar = 'ALLEREDE SCANNET') then  
         begin  
           Kommentar := '';  
         end;  
         if (BoghandlerNavn = 'PAKKE ER SCANNET') then  
         begin  
           BoghandlerNavn := '';  
         end;  
         Canvas.TextOut(XPosKommentar,YPosKommentar, Kommentar);  // Kan ikke lave linieskift (se tidligere kommentar om samme)  
         Canvas.Font.Size := FontSizeBoghandler;  
         Canvas.TextOut(XPosBoghandler,YPosBoghandler, BoghandlerNavn);  
         EndDoc;  
       end;  
2443      end;      end;
2444    end;    end;
2445    
2446  end;  end;
2447    
 procedure TMainForm.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');  
 begin  
     with Printer do  
     begin  
       BeginDoc;  
       Canvas.Font.Size := FontSizeRuteLille;  
       if (kontrolKoreliste <> '') then  
       begin  
         Canvas.TextOut(XPosRute,YPosRute, kontrolKoreliste);  
       end  
       else  
       begin  
         Canvas.TextOut(XPosRute,YPosRute, RuteNummer);  
       end;  
       Canvas.Font.Size := FontSizeKorelisteLille;  
       Canvas.TextOut(XPosKoreliste,YPosKoreliste, Koreliste);  
       if (Sted = 'DBK') or (Sted = '04') then  
       begin  
         Canvas.Font.Size := FontSizeSorteringsfelt1;  
         Canvas.TextOut(XPosSorteringsfelt1,YPosSorteringsfelt1, DBKbane);   // sorteringsoplysning 1  
         Canvas.Font.Size := FontSizeSorteringsfelt1;  
         Canvas.TextOut(XPosSorteringsfelt2,YPosSorteringsfelt2, Leveringssted);   // sorteringsoplysning 2  
       end;  
       Canvas.Font.Size := FontSizeKommentar;  
   
       Kommentar := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);  
       Kommentar := StringReplace(Kommentar, 'PAKKE ER SCANNET', '', [rfReplaceAll, rfIgnoreCase]);  
   
       Canvas.TextOut(XPosKommentar,YPosKommentar, Kommentar);  // Kan ikke lave linieskift (se tidligere kommentar om samme)  
       if SmsKode <> '' then  
       begin  
         Canvas.Font.Size := FontSizeSmskode;  
         Canvas.TextOut(XPosKommentar,YPosSmskode, concat('CODE: ', SmsKode));  
       end;  
       Canvas.Font.Size := FontSizeBoghandler;  
       Canvas.TextOut(XPosBoghandler,YPosBoghandler, BoghandlerNavn);  
       EndDoc;  
     end;  
 end;  
2448    
2449    
2450  procedure TMainForm.radioStorPakkeClick(Sender: TObject);  procedure TMainForm.radioStorPakkeClick(Sender: TObject);
2451  begin  begin
2452      Storepakker1.Checked := true;      menuStorePakker.Checked := true;
2453      radioStorPakke.Checked := true;      radioStorPakke.Checked := true;
2454  end;  end;
2455    
2456  procedure TMainForm.radioLillePakkeClick(Sender: TObject);  procedure TMainForm.radioLillePakkeClick(Sender: TObject);
2457  begin  begin
2458      Smpakker1.Checked := true;      menuSmaaPakker.Checked := true;
2459      radioLillePakke.Checked := true;      radioLillePakke.Checked := true;
2460  end;  end;
2461    
# Line 2604  begin Line 2473  begin
2473  end;  end;
2474    
2475    
2476    procedure TMainForm.chkUdenforSpecifikationClick(Sender: TObject);
2477    begin
2478      if (chkUdenforSpecifikation.Checked = true) then
2479      begin
2480        chkEmballageRepareret.Checked := false;
2481      end;
2482    end;
2483    
2484    procedure TMainForm.chkEmballageRepareretClick(Sender: TObject);
2485    begin
2486      if (chkEmballageRepareret.Checked = true) then
2487      begin
2488        chkUdenforSpecifikation.Checked := false;
2489      end;
2490    end;
2491    
2492  procedure TMainForm.chkAltidPrintLabelClick(Sender: TObject);  procedure TMainForm.chkAltidPrintLabelClick(Sender: TObject);
2493  begin  begin
2494    if chkAltidPrintLabel.Checked then    if chkAltidPrintLabel.Checked then
# Line 2617  begin Line 2502  begin
2502    
2503  end;  end;
2504    
2505    
2506    
2507  procedure TMainForm.chkScanTjekkodeClick(Sender: TObject);  procedure TMainForm.chkScanTjekkodeClick(Sender: TObject);
2508  begin  begin
2509    if chkScanTjekkode.Checked then    if chkScanTjekkode.Checked then
# Line 2629  begin Line 2516  begin
2516    end;    end;
2517  end;  end;
2518    
2519  procedure TMainForm.Pakkeshoplevering1Click(Sender: TObject);  procedure TMainForm.menuPakkeshop1Click(Sender: TObject);
2520  begin  begin
2521        Scanningtype := '5';        Scanningtype := '5';
2522        InitPakkeshoplevering();        InitPakkeshoplevering();
# Line 2638  end; Line 2525  end;
2525    
2526  procedure TMainForm.NulstilAutomatiskValg();  procedure TMainForm.NulstilAutomatiskValg();
2527  begin  begin
2528      Automatiskvalg1.Checked := false;      menuAutomatiskvalg1.Checked := false;
2529      PanelValgA.Color := clBtnFace;      PanelValgA.Color := clBtnFace;
2530      PanelValgA.Font.Color := clWindowText;      PanelValgA.Font.Color := clWindowText;
2531    
# Line 2650  begin Line 2537  begin
2537        // 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)
2538        PanelValgA.Enabled := false;        PanelValgA.Enabled := false;
2539        PanelValgA.Font.Color := clInactiveCaption;        PanelValgA.Font.Color := clInactiveCaption;
2540        Automatiskvalg1.Enabled := false;        menuAutomatiskvalg1.Enabled := false;
2541      end;      end;
2542  // 20150317: slut  // 20150317: slut
2543  end;  end;
# Line 2665  begin Line 2552  begin
2552    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke
2553    ShowMessage('Tjekker data forbindelse til serveren.' + crlf + 'Det kan godt tage nogle minutter.' + crlf + 'Resultatet af testen vises i skærmbilledet...');    ShowMessage('Tjekker data forbindelse til serveren.' + crlf + 'Det kan godt tage nogle minutter.' + crlf + 'Resultatet af testen vises i skærmbilledet...');
2554    
2555          // Tjekker urls    try
2556          logTekst := 'Tjekker urls.';      // Tjekker urls
2557          ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);      logTekst := 'Tjekker urls.';
2558          SkrivScanningLogFil(logTekst);      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2559        SkrivScanningLogFil(logTekst);
2560    
         // Tjekker UrlNormal  
         if PanelValg1.Enabled = true then  
         begin  
           if CheckUrl(UrlNormal) then  
           begin  
             logTekst := 'UrlNormal accepteret: ' + UrlNormal;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlNormal svarer ikke: ' + UrlNormal;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               TjekUrls := '-';   // markerer at der var fejl  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2561    
         // Tjekker UrlReturDAO  
         if PanelValg2.Enabled = true then  
         begin  
           if CheckUrl(UrlReturDAO) then  
           begin  
             logTekst := 'UrlReturDAO accepteret: ' + UrlReturDAO;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlReturDAO svarer ikke: ' + UrlReturDAO;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2562    
2563          // Tjekker UrlReturBoghandler      // Tjekker UrlNormal
2564          if PanelValg3.Enabled = true then      if PanelValg1.Enabled = true then
2565          begin      begin
2566            if CheckUrl(UrlReturBoghandler) then        TjekkerEnkeltUrl('UrlNormal', Config.UrlNormal, urlFejl);
2567            begin      end;
             logTekst := 'UrlReturBoghandler accepteret: ' + UrlReturBoghandler;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlReturDAO svarer ikke: ' + UrlReturDAO;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2568    
2569          // Tjekker UrlBudlevering      // Tjekker UrlReturDAO
2570          if PanelValg4.Enabled = true then      if PanelValg2.Enabled = true then
2571          begin      begin
2572            if CheckUrl(UrlBudlevering) then        TjekkerEnkeltUrl('UrlReturDAO', Config.UrlReturDAO, urlFejl);
2573            begin      end;
             logTekst := 'UrlBudlevering accepteret: ' + UrlBudlevering;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlBudlevering svarer ikke: ' + UrlBudlevering;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2574    
2575          // Tjekker UrlPakkeshoplevering      // Tjekker UrlReturBoghandler
2576          if PanelValg5.Enabled = true then      if PanelValg3.Enabled = true then
2577          begin      begin
2578            if CheckUrl(UrlPakkeshoplevering) then        TjekkerEnkeltUrl('UrlReturBoghandler', Config.UrlReturBoghandler, urlFejl);
2579            begin      end;
             logTekst := 'UrlPakkeshoplevering accepteret: ' + UrlPakkeshoplevering;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlPakkeshoplevering svarer ikke: ' + UrlPakkeshoplevering;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2580    
2581          // Tjekker UrlReturPakkeshop      // Tjekker UrlBudlevering
2582          if PanelValg6.Enabled = true then      if PanelValg4.Enabled = true then
2583          begin      begin
2584            if CheckUrl(UrlReturPakkeshop) then        TjekkerEnkeltUrl('UrlBudlevering', Config.UrlBudlevering, urlFejl);
2585            begin      end;
             logTekst := 'UrlReturPakkeshop accepteret: ' + UrlReturPakkeshop;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlReturPakkeshop svarer ikke: ' + UrlReturPakkeshop;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2586    
2587          // Tjekker UrlManglendeScanninger      // Tjekker UrlPakkeshoplevering
2588          if (PanelValg1.Enabled = true)      if PanelValg5.Enabled = true then
2589          or (PanelValg4.Enabled = true) then      begin
2590          begin        TjekkerEnkeltUrl('UrlPakkeshoplevering', Config.UrlPakkeshoplevering, urlFejl);
2591            if CheckUrl(UrlManglendeScanninger) then      end;
           begin  
             logTekst := 'UrlManglendeScanninger accepteret: ' + UrlManglendeScanninger;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlManglendeScanninger svarer ikke: ' + UrlManglendeScanninger;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2592    
2593          // Tjekker UrlPakkeshopManglendeScanninger      // Tjekker UrlReturPakkeshop
2594          if PanelValg5.Enabled = true then      if PanelValg6.Enabled = true then
2595          begin      begin
2596            if CheckUrl(UrlPakkeshopManglendeScanninger) then        TjekkerEnkeltUrl('UrlReturPakkeshop', Config.UrlReturPakkeshop, urlFejl);
2597            begin      end;
             logTekst := 'UrlPakkeshopManglendeScanninger accepteret: ' + UrlPakkeshopManglendeScanninger;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlPakkeshopManglendeScanninger svarer ikke: ' + UrlPakkeshopManglendeScanninger;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2598    
2599          // Tjekker UrlPakkeshopManglendeReturScanninger      // Tjekker UrlManglendeScanninger
2600          if PanelValg6.Enabled = true then      if (PanelValg1.Enabled = true) or (PanelValg4.Enabled = true) then
2601          begin      begin
2602            if CheckUrl(UrlPakkeshopManglendeReturScanninger) then        TjekkerEnkeltUrl('UrlManglendeScanninger', Config.UrlManglendeScanninger, urlFejl);
2603            begin      end;
             logTekst := 'UrlPakkeshopManglendeReturScanninger accepteret: ' + UrlPakkeshopManglendeReturScanninger;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlPakkeshopManglendeReturScanninger svarer ikke: ' + UrlPakkeshopManglendeReturScanninger;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2604    
2605          // Tjekker UrlEKLoverforsel      // Tjekker UrlPakkeshopManglendeScanninger
2606          if PanelValg1.Enabled = true then      if PanelValg5.Enabled = true then
2607          begin      begin
2608            if CheckUrl(UrlEKLoverforsel) then        TjekkerEnkeltUrl('UrlPakkeshopManglendeScanninger', Config.UrlPakkeshopManglendeScanninger, urlFejl);
2609            begin      end;
             logTekst := 'UrlEKLoverforsel accepteret: ' + UrlEKLoverforsel;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlEKLoverforsel svarer ikke: ' + UrlEKLoverforsel;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2610    
2611        // Tjekker UrlPakkeshopManglendeReturScanninger
2612        if PanelValg6.Enabled = true then
2613        begin
2614          TjekkerEnkeltUrl('UrlPakkeshopManglendeReturScanninger', Config.UrlPakkeshopManglendeReturScanninger, urlFejl);
2615        end;
2616    
2617          // Tjekker UrlEKLoverforselPakkeshop     // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
2618          if PanelValg5.Enabled = true then      if PanelValg7.Enabled = true then
2619          begin      begin
2620            if CheckUrl(UrlEKLoverforselPakkeshop) then        TjekkerEnkeltUrl('UrlIndleveringsPakke', Config.UrlIndleveringsPakke, urlFejl);
2621            begin        TjekkerEnkeltUrl('UrlIndleveringsPakkeManglendeScanninger', Config.UrlIndleveringsPakkeManglendeScanninger, urlFejl);
2622              logTekst := 'UrlEKLoverforselPakkeshop accepteret: ' + UrlEKLoverforselPakkeshop;      end;
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlEKLoverforselPakkeshop svarer ikke: ' + UrlEKLoverforselPakkeshop;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2623    
2624        // Tjekker UrlEKLoverforsel
2625        if PanelValg1.Enabled = true then
2626        begin
2627          TjekkerEnkeltUrl('UrlEKLoverforsel', Config.UrlEKLoverforsel, urlFejl);
2628        end;
2629    
         // Tjekker UrlFindPakketype  
         if CheckUrl(UrlFindPakketype) then  
         begin  
           logTekst := 'UrlFindPakketype accepteret: ' + UrlFindPakketype;  
           SkrivScanningLogFil(logTekst);  
         end  
         else  
         begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlFindPakketype svarer ikke: ' + UrlFindPakketype;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
         end;  
2630    
2631          // Tjekker UrlSendPrograminfo      // Tjekker UrlEKLoverforselPakkeshop
2632          if CheckUrl(UrlSendPrograminfo) then      if PanelValg5.Enabled = true then
2633          begin      begin
2634            logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;        TjekkerEnkeltUrl('UrlEKLoverforselPakkeshop', Config.UrlEKLoverforselPakkeshop, urlFejl);
2635            SkrivScanningLogFil(logTekst);      end;
2636          end  
2637          else  
2638          begin      // Tjekker UrlFindPakketype
2639              inc(urlFejl);   // Optæller antal fejl      TjekkerEnkeltUrl('UrlFindPakketype', Config.UrlFindPakketype, urlFejl);
2640              logTekst := 'UrlSendPrograminfo svarer ikke: ' + UrlSendPrograminfo;  
2641              ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);      // Tjekker UrlSendPrograminfo
2642              if TjekUrls = '1' then      TjekkerEnkeltUrl('UrlSendPrograminfo', Config.UrlSendPrograminfo, urlFejl);
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
         end;  
2643    
         if urlFejl > 0 then  
         begin  
           TjekUrls := '-';   // markerer at der var fejl  
         end  
         else  
         begin  
           logTekst := 'urls er ok';  
           ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
           SkrivScanningLogFil(logTekst);  
         end;  
2644    
2645    
2646        logTekst := 'urls er ok';
2647        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2648        SkrivScanningLogFil(logTekst);
2649    
2650      Except
2651        Config.TjekUrls := '-';   // markerer at der var fejl
2652    
2653      end;
2654  end;  end;
2655    
2656  function TMainForm.FileTime2DateTime(FileTime: TFileTime): TDateTime;  procedure TMainForm.TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
2657  var  const
2658     LocalFileTime: TFileTime;    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
    SystemTime: TSystemTime;  
2659  begin  begin
2660     FileTimeToLocalFileTime(FileTime, LocalFileTime) ;    if TUtils.CheckUrl(Url) then
2661     FileTimeToSystemTime(LocalFileTime, SystemTime) ;  
2662     Result := SystemTimeToDateTime(SystemTime) ;    begin
2663        logTekst := UrlNavn + ' accepteret: ' + Url;
2664        SkrivScanningLogFil(logTekst);
2665      end
2666      else
2667      begin
2668        inc(urlFejl);   // Optæller antal fejl
2669        logTekst := UrlNavn + ' svarer ikke: ' + Url;
2670        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2671        if Config.TjekUrls = '1' then
2672        begin
2673          logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2674        end;
2675    
2676        SkrivScanningLogFil(logTekst);
2677    
2678        if Config.TjekUrls = '1' then
2679        begin
2680          ShowMessage(logTekst);
2681          Config.UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2682          Application.Terminate;
2683    
2684          raise Exception.Create('UrlFejl');
2685    
2686        end;
2687      end;
2688    
2689  end;  end;
2690    
2691    
2692    
2693  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);
2694  var  var
2695    SR: TSearchRec;    SR: TSearchRec;
# Line 3074  begin Line 2709  begin
2709    
2710          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring
2711          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse
2712          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse          dtCreation := TUtils.FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse
2713          // Selvom creation date godt kan være forskellig fra modified date,          // Selvom creation date godt kan være forskellig fra modified date,
2714          // skal vi alligevel altid tjekke filens alder ud fra modified date          // skal vi alligevel altid tjekke filens alder ud fra modified date
2715          // (æ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 3124  begin Line 2759  begin
2759    if BoghandlerNavnST.Caption = 'Fejl i forbindelse til server' then    if BoghandlerNavnST.Caption = 'Fejl i forbindelse til server' then
2760    begin    begin
2761       ShowMessage('Programmet afbrydes...');       ShowMessage('Programmet afbrydes...');
2762       UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut       Config.UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2763       Application.Terminate;       Application.Terminate;
2764       exit;       exit;
2765    end;    end;
# Line 3134  begin Line 2769  begin
2769    if Farve <> '' then    if Farve <> '' then
2770    begin    begin
2771       MainForm.Color := TUtils.HexToTColor(Farve);       MainForm.Color := TUtils.HexToTColor(Farve);
 // 20150312: start  
 (*  
   end  
   else  
   begin  
      ShowMessage('Programmet afbrydes...');  
      UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
      Application.Terminate;  
 *)  
 // 20150312: slut  
2772    end;    end;
2773    if (Budlevering1.Checked) then    if (menuDaoDirekte1.Checked) then
2774    begin    begin
2775       InitLillePakke();       InitLillePakke();
2776    end;    end;
# Line 3207  end; Line 2832  end;
2832    
2833  procedure TMainForm.PanelValgAClick(Sender: TObject);  procedure TMainForm.PanelValgAClick(Sender: TObject);
2834  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;  
 *)  
2835  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
2836  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
2837       AutomatiskValg1.Checked := true;    menuAutomatiskvalg1.Checked := true;
2838       PanelValgA.Color := clGreen;    PanelValgA.Color := clGreen;
2839       PanelValgA.Font.Color := clWhite;    PanelValgA.Font.Color := clWhite;
2840  // 20150311: slut  
2841    
2842    
2843  end;  end;
2844    
2845  procedure TMainForm.Pakkernormal1Click(Sender: TObject);  procedure TMainForm.menuNatXpress1Click(Sender: TObject);
2846  begin  begin
2847        Scanningtype := '1';        Scanningtype := '1';
2848        NulstilAutomatiskValg();        NulstilAutomatiskValg();
# Line 3249  var Line 2861  var
2861    Leveringssted : String;    Leveringssted : String;
2862    orgTjekUrls : String;    orgTjekUrls : String;
2863  begin  begin
2864    orgTjekUrls := TjekUrls;    orgTjekUrls := Config.TjekUrls;
2865    if (TjekUrls = '1') or (TjekUrls = '2') then    if (Config.TjekUrls = '1') or (Config.TjekUrls = '2') then
2866    begin    begin
2867      TjekkerUrls();      TjekkerUrls();
2868    end;    end;
2869    if TjekUrls = '-' then    if Config.TjekUrls = '-' then
2870    begin    begin
2871      //ShowMessage('Der var fejl i een eller flere urls - se logvinduet');      //ShowMessage('Der var fejl i een eller flere urls - se logvinduet');
2872      RuteNummer := '';      RuteNummer := '';
# Line 3263  begin Line 2875  begin
2875      Koreliste := '';      Koreliste := '';
2876      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
2877      // Her kommer en alarm og rød skærm      // Her kommer en alarm og rød skærm
2878      PlaySound(PWideChar(AlarmLyd));      PlaySound(PWideChar(Config.AlarmLyd));
2879      MainForm.Color := clRed;      MainForm.Color := clRed;
2880      btnNulstil.Visible := true;      btnNulstil.Visible := true;
2881    end    end
# Line 3276  begin Line 2888  begin
2888      SmsKode := '999999';      SmsKode := '999999';
2889      DBKbane := '999';      DBKbane := '999';
2890      Leveringssted := 'XXX';      Leveringssted := 'XXX';
2891    
2892    
2893      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);
2894      FocusControl(StregkodeST);      FocusControl(StregkodeST);
2895    end;    end;
2896    TjekUrls := orgTjekUrls;    Config.TjekUrls := orgTjekUrls;
2897    
2898  end;  end;
2899    
# Line 3289  var Line 2903  var
2903    Kommentar : String;    Kommentar : String;
2904    BoghandlerNavn : String;    BoghandlerNavn : String;
2905    Koreliste : String;    Koreliste : String;
2906    Falsk : Boolean;  //  Falsk : Boolean;
2907    SmsKode : String;  //  SmsKode : String;
2908    DBKbane : String;  //  DBKbane : String;
2909    Leveringssted : String;  //  Leveringssted : String;
2910  begin  begin
2911    RuteNummer := 'Rutenr';    RuteNummer := 'Rutenr';
2912    Kommentar := '***** Kommentar *****';    Kommentar := '***** Kommentar *****';
2913    BoghandlerNavn := 'Modtagernavn';    BoghandlerNavn := 'Modtagernavn';
2914    Falsk := False;  //  Falsk := False;
2915    
2916    
2917    if (Printer.Printers.Count = 0) then    if (LabelPrint.GetPrinterCount() = 0) then
2918    begin    begin
2919      ShowMessage('Der er ikke installeret en printer på denne PC.');      ShowMessage('Der er ikke installeret en printer på denne PC.');
2920    end    end
2921    else if PrinterNavn = 'Ingen' then  //  else if Config.PrinterNavn = 'Ingen' then //Det giver ikke længere mening at kunne fravælge printer
2922    begin  //  begin
2923      ShowMessage('Der er fravalgt printer i dette program.');  //    ShowMessage('Der er fravalgt printer i dette program.');
2924    end  //  end
2925    else    else
2926    begin    begin
2927      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
2928      SmsKode := '999999';  //    SmsKode := '999999';
2929      DBKbane := '999';  //    DBKbane := '999';
2930      Leveringssted := 'XXX';  //    Leveringssted := 'XXX';
2931      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);  //    PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);
2932      CheckPrintQue('Test');  
2933    
2934    
2935        LabelPrint.PrintTestLabel('999999', '999', 'xxx');
2936    
2937        LabelPrint.CheckPrintQue('Test', Config.PrinterNavn);
2938    
2939    end;    end;
2940    FocusControl(StregkodeST);    FocusControl(StregkodeST);
2941  end;  end;
2942    
2943  procedure TMainForm.Timer1Timer(Sender: TObject);  procedure TMainForm.Timer1Timer(Sender: TObject);
2944  begin  begin
2945    if (TjekPrinter = '1') then    if (Config.TjekPrinter = '1') then
2946    begin    begin
2947      CheckPrintQue('Timer');      LabelPrint.CheckPrintQue('Timer', Config.PrinterNavn);
2948    end    end
2949    else    else
2950    begin    begin
# Line 3342  var Line 2962  var
2962   tekst, filversion : String;   tekst, filversion : String;
2963  begin  begin
2964    
2965    filversion := Sto_GetFmtFileVersion('');    filversion := TUtils.Sto_GetFmtFileVersion('');
2966    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';
2967    
2968    tekst := tekst+crlf+crlf;    tekst := tekst+crlf+crlf;
# Line 3378  begin Line 2998  begin
2998      tekst := tekst+crlf+crlf;      tekst := tekst+crlf+crlf;
2999      tekst := tekst+crlf+crlf+'          **********  DETTE ER KUN EN TEST VERSION  **********';      tekst := tekst+crlf+crlf+'          **********  DETTE ER KUN EN TEST VERSION  **********';
3000      tekst := tekst+crlf+crlf;      tekst := tekst+crlf+crlf;
3001      tekst := tekst+crlf+crlf+'Url: '+url;      tekst := tekst+crlf+crlf+'Url: ' + Url;
3002    end;    end;
3003    
3004    MessageBox(Handle, PWideChar(tekst), 'Information', MB_OK);    MessageBox(Handle, PWideChar(tekst), 'Information', MB_OK);
3005    
3006  end;  end;
3007    
3008    
3009  procedure TMainForm.ListBox1DrawItem(Control: TWinControl; Index: Integer;  procedure TMainForm.ListBox1DrawItem(Control: TWinControl; Index: Integer;
3010    Rect: TRect; State: TOwnerDrawState);    Rect: TRect; State: TOwnerDrawState);
3011  var  var
# Line 3437  begin Line 3058  begin
3058    
3059    if FileExists(fileName) then    if FileExists(fileName) then
3060    begin    begin
3061      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3062      begin      begin
3063        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3064        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
# Line 3461  begin Line 3082  begin
3082    
3083    if FileExists(fileName) then    if FileExists(fileName) then
3084    begin    begin
3085      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3086      begin      begin
3087        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3088        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
3089      end      end
3090      else      else
3091      begin      begin
3092        ShowMessage('Acrobat Reader er ikke installeret!');        ShowMessage('Adobe Reader er ikke installeret!');
3093      end;      end;
3094    end    end
3095    else    else
# Line 3499  begin Line 3120  begin
3120    
3121  end;  end;
3122    
3123  procedure TMainForm.ReturpakkerfraDAO1Click(Sender: TObject);  procedure TMainForm.menuNatxpressReturDAO1Click(Sender: TObject);
3124  begin  begin
3125        Scanningtype := '2';        Scanningtype := '2';
3126        NulstilAutomatiskValg();        NulstilAutomatiskValg();
3127        InitReturFraDao();        InitReturFraDao();
3128  end;  end;
3129    
3130  procedure TMainForm.Returpakkerfrapakkeshop1Click(Sender: TObject);  procedure TMainForm.menuPakkeshopRetur1Click(Sender: TObject);
3131  begin  begin
3132        Scanningtype := '6';        Scanningtype := '6';
3133        InitReturFraPakkeshop();        InitReturFraPakkeshop();
# Line 3515  end; Line 3136  end;
3136    
3137  procedure TMainForm.InitNatxpresslevering();  procedure TMainForm.InitNatxpresslevering();
3138  begin  begin
3139        AutomatiskTjekkodeStyring1.Enabled := true;        menuAutomatiskTjekkodeStyring.Enabled := true;
3140        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3141        Pakkernormal1.Checked := true;        menuNatXpress1.Checked := true;
3142        InitForm(FarveNormal,TitelNormal,UrlNormal);        InitForm(Config.FarveNormal,Config.TitelNormal,Config.UrlNormal);
3143        PanelValg1.Color := clGreen;        PanelValg1.Color := clGreen;
3144        PanelValg1.Font.Color := clWhite;        PanelValg1.Font.Color := clWhite;
3145    
# Line 3529  begin Line 3150  begin
3150        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3151        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3152        Sprgefterboghandlernummer1.Enabled := true;        Sprgefterboghandlernummer1.Enabled := true;
3153        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3154        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3155        radioStorPakke.Enabled := false;        radioStorPakke.Enabled := false;
3156        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3157        ListBox1.Visible := true;        ListBox1.Visible := true;
3158        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3159        EKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3160        InitLillePakke();        InitLillePakke();
3161        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3162    
3163          chkForstorTilDirekte.Checked := false;
3164          chkForstorTilDirekte.Enabled := false;
3165    
3166        if BladhusSted = 0 then        if BladhusSted = 0 then
3167        begin        begin
3168          IndlesScanningLogFil();          IndlesScanningLogFil();
3169          IndlesManglendeScanninger();          IndlesManglendeScanningerAntal();
3170        end;        end;
3171  end;  end;
3172    
3173  procedure TMainForm.InitReturFraDao();  procedure TMainForm.InitReturFraDao();
3174  begin  begin
3175        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3176        ReturpakkerfraDAO1.Checked := true;        menuNatxpressReturDAO1.Checked := true;
3177        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3178        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);        InitForm(Config.FarveReturDAO, Config.TitelReturDAO, Config.UrlReturDAO);
3179        PanelValg2.Color := clGreen;        PanelValg2.Color := clGreen;
3180        PanelValg2.Font.Color := clWhite;        PanelValg2.Font.Color := clWhite;
3181    
# Line 3561  begin Line 3186  begin
3186        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3187        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3188        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3189        Smpakker1.Enabled := true;        menuSmaaPakker.Enabled := true;
3190        Storepakker1.Enabled := true;        menuStorePakker.Enabled := true;
3191        radioStorPakke.Enabled := true;        radioStorPakke.Enabled := true;
3192        radioLillePakke.Enabled := true;        radioLillePakke.Enabled := true;
3193        ListBox1.Visible := true;        ListBox1.Visible := true;
3194        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3195        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3196        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3197    
3198          chkForstorTilDirekte.Checked := false;
3199          chkForstorTilDirekte.Enabled := false;
3200    
3201        InitLillePakke();        InitLillePakke();
3202  end;  end;
3203    
3204  procedure TMainForm.InitReturFraKunde();  procedure TMainForm.InitReturFraKunde();
3205  begin  begin
3206        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3207        Returpakkerfraboghandler1.Checked := true;        menuNatxpressReturfraKunde1.Checked := true;
3208        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3209        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);        InitForm(Config.FarveReturBoghandler, Config.TitelReturBoghandler, Config.UrlReturBoghandler);
3210        PanelValg3.Color := clGreen;        PanelValg3.Color := clGreen;
3211        PanelValg3.Font.Color := clWhite;        PanelValg3.Font.Color := clWhite;
3212    
# Line 3587  begin Line 3216  begin
3216        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3217        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3218        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3219        Smpakker1.Enabled := true;        menuSmaaPakker.Enabled := true;
3220        Storepakker1.Enabled := true;        menuStorePakker.Enabled := true;
3221        radioStorPakke.Enabled := true;        radioStorPakke.Enabled := true;
3222        radioLillePakke.Enabled := true;        radioLillePakke.Enabled := true;
3223        ListBox1.Visible := true;        ListBox1.Visible := true;
3224        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3225        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3226        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3227    
3228          chkForstorTilDirekte.Checked := false;
3229          chkForstorTilDirekte.Enabled := false;
3230    
3231        InitLillePakke();        InitLillePakke();
3232  end;  end;
3233    
3234  procedure TMainForm.InitDirektelevering();  procedure TMainForm.InitDirektelevering();
3235  begin  begin
3236        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3237        Budlevering1.Checked := true;        menuDaoDirekte1.Checked := true;
3238        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3239        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);        InitForm(Config.FarveBudlevering, Config.TitelBudlevering, Config.UrlBudlevering);
3240        PanelValg4.Color := clGreen;        PanelValg4.Color := clGreen;
3241        PanelValg4.Font.Color := clWhite;        PanelValg4.Font.Color := clWhite;
3242    
# Line 3614  begin Line 3247  begin
3247        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3248        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3249        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3250        Smpakker1.Enabled := true;        menuSmaaPakker.Enabled := true;
3251        Storepakker1.Enabled := true;        menuStorePakker.Enabled := true;
3252        radioStorPakke.Enabled := true;        radioStorPakke.Enabled := true;
3253        radioLillePakke.Enabled := true;        radioLillePakke.Enabled := true;
3254        ListBox1.Visible := true;        ListBox1.Visible := true;
3255        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3256        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3257        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3258        DownloadButton03.Visible := false;        BtnDownloadRuteskiftFil.Visible := false;
3259        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3260        IdFTP1.Passive := true;        IdFTP1.Passive := true;
3261        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3262    
3263          chkForstorTilDirekte.Checked := false;
3264          chkForstorTilDirekte.Enabled := true;
3265    
3266        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then
3267        begin        begin
3268            IndlesScanningLogFil();            IndlesScanningLogFil();
3269            IndlesManglendeScanninger();            IndlesManglendeScanningerAntal();
3270        end;        end;
3271    
3272  end;  end;
3273    
3274  procedure TMainForm.InitPakkeshoplevering();  procedure TMainForm.InitPakkeshoplevering();
3275  begin  begin
3276        AutomatiskTjekkodeStyring1.Enabled := true;        menuAutomatiskTjekkodeStyring.Enabled := true;
3277        Pakkeshoplevering1.Checked := true;        menuPakkeshop1.Checked := true;
3278        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3279        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);        InitForm(Config.FarvePakkeshoplevering, Config.TitelPakkeshoplevering, Config.UrlPakkeshoplevering);
3280        PanelValg5.Color := clGreen;        PanelValg5.Color := clGreen;
3281        PanelValg5.Font.Color := clWhite;        PanelValg5.Font.Color := clWhite;
3282    
# Line 3650  begin Line 3287  begin
3287        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3288        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3289        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3290        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3291        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3292        radioStorPakke.Enabled := false;        radioStorPakke.Enabled := false;
3293        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3294        ListBox1.Visible := true;        ListBox1.Visible := true;
3295        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3296        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3297        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3298    
3299        EKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3300    
3301          chkForstorTilDirekte.Checked := false;
3302          chkForstorTilDirekte.Enabled := true;
3303    
3304        InitLillePakke();        InitLillePakke();
3305        IndlesScanningLogFil();        IndlesScanningLogFil();
3306        if BladhusSted = 0 then        if BladhusSted = 0 then
3307        begin        begin
3308          IndlesManglendeScanninger();          IndlesManglendeScanningerAntal();
3309        end;        end;
3310        IdFTP1.Passive := true;        IdFTP1.Passive := true;
3311        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
# Line 3673  end; Line 3313  end;
3313    
3314  procedure TMainForm.InitReturFraPakkeshop();  procedure TMainForm.InitReturFraPakkeshop();
3315  begin  begin
3316        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3317        Returpakkerfrapakkeshop1.Checked := true;        menuPakkeshopRetur1.Checked := true;
3318        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3319        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(Config.FarveReturPakkeshop, Config.TitelReturPakkeshop, Config.UrlReturPakkeshop);
3320        PanelValg6.Color := clGreen;        PanelValg6.Color := clGreen;
3321        PanelValg6.Font.Color := clWhite;        PanelValg6.Font.Color := clWhite;
3322    
# Line 3687  begin Line 3327  begin
3327        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3328        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3329        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3330        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3331        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3332        radioStorPakke.Enabled := false;        radioStorPakke.Enabled := false;
3333        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3334        ListBox1.Visible := true;        ListBox1.Visible := true;
3335        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3336        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3337        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3338        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3339    
3340          chkForstorTilDirekte.Checked := false;
3341          chkForstorTilDirekte.Enabled := false;
3342    
3343    
3344        InitLillePakke();        InitLillePakke();
3345        IndlesScanningLogFil();        IndlesScanningLogFil();
3346        if BladhusSted = 0 then        if BladhusSted = 0 then
3347        begin        begin
3348          IndlesManglendeScanninger();          IndlesManglendeScanningerAntal();
3349        end;        end;
3350        IdFTP1.Passive := true;        IdFTP1.Passive := true;
3351        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3352  end;  end;
3353    
3354  procedure TMainForm.Returpakkerfraboghandler1Click(Sender: TObject);  procedure TMainForm.menuNatxpressReturfraKunde1Click(Sender: TObject);
3355  begin  begin
3356        Scanningtype := '3';        Scanningtype := '3';
3357        NulstilAutomatiskValg();        NulstilAutomatiskValg();
# Line 3716  end; Line 3361  end;
3361  procedure TMainForm.InitIndleveringskode();  procedure TMainForm.InitIndleveringskode();
3362  begin  begin
3363        menuIndlevering.Checked := true;        menuIndlevering.Checked := true;
3364        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3365    
3366        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3367        InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);        InitForm(Config.FarveIndlevering, Config.TitelIndlevering, Config.UrlReturPakkeshop);
3368        PanelValg7.Color := clGreen;        PanelValg7.Color := clGreen;
3369        PanelValg7.Font.Color := clWhite;        PanelValg7.Font.Color := clWhite;
3370    
# Line 3733  begin Line 3378  begin
3378    
3379    
3380    
3381        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3382        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3383        radioStorPakke.Enabled := false;        radioStorPakke.Enabled := false;
3384        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3385        ListBox1.Visible := true;        ListBox1.Visible := true;
3386        ListBox1.Items.Clear();        ListBox1.Items.Clear();
3387    
3388        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3389        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3390        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3391    
3392          chkForstorTilDirekte.Checked := false;
3393          chkForstorTilDirekte.Enabled := false;
3394    
3395    
3396        InitLillePakke();        InitLillePakke();
3397        IndlesScanningLogFil();        IndlesScanningLogFil();
3398        if BladhusSted = 0 then        if BladhusSted = 0 then
3399        begin        begin
3400          IndlesManglendeScanninger();          IndlesManglendeScanningerAntal();
3401        end;        end;
3402        IdFTP1.Passive := true;        IdFTP1.Passive := true;
3403        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3404  end;  end;
3405    
3406    
3407  procedure TMainForm.Storepakker1Click(Sender: TObject);  procedure TMainForm.menuStorePakkerClick(Sender: TObject);
3408  begin  begin
3409    InitStorPakke();    InitStorPakke();
3410  end;  end;
3411    
3412  procedure TMainForm.Smpakker1Click(Sender: TObject);  procedure TMainForm.menuSmaaPakkerClick(Sender: TObject);
3413  begin  begin
3414    InitLillePakke();    InitLillePakke();
3415  end;  end;
# Line 3767  end; Line 3417  end;
3417  procedure TMainForm.InitLillePakke();  procedure TMainForm.InitLillePakke();
3418  begin  begin
3419    radioLillePakke.Checked := true;    radioLillePakke.Checked := true;
3420    Smpakker1.Checked := true;    menuSmaaPakker.Checked := true;
3421  //  Stregkode := '';  //  Stregkode := '';
3422  end;  end;
3423    
3424  procedure TMainForm.InitStorPakke();  procedure TMainForm.InitStorPakke();
3425  begin  begin
3426    radioStorPakke.Checked := true;    radioStorPakke.Checked := true;
3427    Storepakker1.Checked := true;    menuStorePakker.Checked := true;
3428  // 20150310: start  // 20150310: start
3429  //  Stregkode := '';  //  Stregkode := '';
3430  // 20150310: slut  // 20150310: slut
3431  end;  end;
3432    
 /// <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 = ''): String;  
 var  
   sFileName: String;  
   iBufferSize: DWORD;  
   iDummy: DWORD;  
   pBuffer: Pointer;  
   pFileInfo: Pointer;  
   iVer: array[1..4] of Integer;  
 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('%d.%d.%d.%d', [iVer[1], iVer[2], iVer[3], iVer[4]]);  
3433    
   end;  
 end;  
3434    
3435  procedure TMainForm.PlaySound(filename : PWideChar);  procedure TMainForm.PlaySound(filename : PWideChar);
3436  begin  begin
# Line 3846  end; Line 3443  end;
3443    
3444  procedure TMainForm.Testlyd1Click(Sender: TObject);  procedure TMainForm.Testlyd1Click(Sender: TObject);
3445  begin  begin
3446     if AlarmLyd  <> '' then     if Config.AlarmLyd  <> '' then
3447     begin     begin
3448       PlaySound(PWideChar(AlarmLyd));       PlaySound(PWideChar(Config.AlarmLyd));
3449     end     end
3450     else     else
3451     begin     begin
# Line 3860  procedure TMainForm.Testlyd2Click(Sender Line 3457  procedure TMainForm.Testlyd2Click(Sender
3457  begin  begin
3458    if (PakkeshopText1.Caption = 'Tjekkode') then    if (PakkeshopText1.Caption = 'Tjekkode') then
3459    begin    begin
3460       if ScannetOkTilTjekkodeLyd  <> '' then       if Config.ScannetOkTilTjekkodeLyd  <> '' then
3461       begin       begin
3462         PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));         PlaySound(PWideChar(Config.ScannetOkTilTjekkodeLyd));
3463       end       end
3464       else       else
3465       begin       begin
# Line 3871  begin Line 3468  begin
3468       exit;       exit;
3469    end;    end;
3470    
3471    if Smpakker1.Checked then    if menuSmaaPakker.Checked then
3472       if ScannetOkLyd  <> '' then       if Config.ScannetOkLyd  <> '' then
3473       begin       begin
3474         PlaySound(PWideChar(ScannetOkLyd));         PlaySound(PWideChar(Config.ScannetOkLyd));
3475       end       end
3476       else       else
3477       begin       begin
3478         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);
3479       end;       end;
3480    if Storepakker1.Checked then    if menuStorePakker.Checked then
3481       if ScannetOkStorLyd  <> '' then       if Config.ScannetOkStorLyd  <> '' then
3482       begin       begin
3483         PlaySound(PWideChar(ScannetOkStorLyd));         PlaySound(PWideChar(Config.ScannetOkStorLyd));
3484       end       end
3485       else       else
3486       begin       begin
# Line 3892  begin Line 3489  begin
3489  end;  end;
3490    
3491    
3492  procedure TMainForm.Budlevering1Click(Sender: TObject);  procedure TMainForm.menuDaoDirekte1Click(Sender: TObject);
3493  begin  begin
3494        Scanningtype := '4';        Scanningtype := '4';
3495        NulstilAutomatiskValg();        NulstilAutomatiskValg();
# Line 3904  begin; Line 3501  begin;
3501    CheckCode();    CheckCode();
3502  end;  end;
3503    
3504  procedure TMainForm.EKLoverforselClick(Sender: TObject);  procedure TMainForm.BtnEKLoverforselClick(Sender: TObject);
3505  var  var
3506    WebSvar : String;    WebSvar : String;
3507    URLStr : String;    URLStr : String;
# Line 3914  var Line 3511  var
3511    status, kommentar : String;    status, kommentar : String;
3512    
3513  begin  begin
3514      EKLoverforsel.Enabled := false;      BtnEKLoverforsel.Enabled := false;
3515    
3516      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');
3517      logTekst := 'Overfører de scannede pakker til EKL';      logTekst := 'Overfører de scannede pakker til EKL';
3518      SkrivScanningLogFil(logTekst);      SkrivScanningLogFil(logTekst);
3519      StedKode := Sted;      StedKode := Sted;
3520      URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);      URLStr := Format(Config.UrlEKLoverforsel,[StedKode,Sted]);
3521  // 20150330: start  
3522      if PanelValg5.Color = clGreen then      if PanelValg5.Color = clGreen then
3523      begin      begin
3524        URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);        URLStr := Format(Config.UrlEKLoverforselPakkeshop,[StedKode,Sted]);
3525      end;      end;
3526  // 20150330: slut  
3527    
3528      try      try
3529      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
# Line 3977  begin Line 3574  begin
3574        end;        end;
3575      end;      end;
3576    
3577      EKLoverforsel.Enabled := true;      BtnEKLoverforsel.Enabled := true;
3578    
3579      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
3580    
3581      // Hvis der var fejl i overførslen skal dette fejlmeldes her      // Hvis der var fejl i overførslen skal dette fejlmeldes her
3582      if status = 'Fejl' then      if status = 'Fejl' then
3583      begin   // Her skal komme en alarm og rød skærm      begin   // Her skal komme en alarm og rød skærm
3584         PlaySound(PWideChar(AlarmLyd));         PlaySound(PWideChar(Config.AlarmLyd));
3585         MainForm.Color := clRed;         MainForm.Color := clRed;
3586         RutenummerST.Caption := 'EKL overførsel';         RutenummerST.Caption := 'EKL overførsel';
3587         BoghandlerNavnST.Caption := 'Fejl:';         BoghandlerNavnST.Caption := 'Fejl:';
# Line 4503  begin Line 4100  begin
4100    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
4101  end;  end;
4102    
4103  procedure TMainForm.DownloadButton01Click(Sender: TObject);  procedure TMainForm.BtnDownloadKontrolfilClick(Sender: TObject);
4104  begin  begin
4105      DownloadBladhusKontrolfil();      DownloadBladhusKontrolfil();
4106      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
4107  end;  end;
4108    
4109  procedure TMainForm.OpdaterListenButton01Click(Sender: TObject);  procedure TMainForm.BtnOpdaterListenClick(Sender: TObject);
4110  const  const
4111    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
4112    
4113  begin  begin
4114      IndlesManglendeScanninger();      IndlesManglendeScanningerListe();
4115      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
4116  end;  end;
4117    
4118  procedure TMainForm.DownloadButton03Click(Sender: TObject);  procedure TMainForm.BtnDownloadRuteskiftFilClick(Sender: TObject);
4119  begin  begin
4120      if (getProddag() = 'lørdag') then      if (getProddag() = 'lørdag') then
4121      begin      begin
# Line 4528  begin Line 4125  begin
4125  end;  end;
4126    
4127    
4128  // ToDo: PrintPakkeshopLabel()  procedure TMainForm.IndlesManglendeScanningerAntal();
 procedure TMainForm.PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);  
4129  var  var
4130    XForm, XFormOld: TXForm; //Bruges til rotate X-formation    Node: IXMLNode;
   Angle: integer;  
   gMode: integer;  
   BarcodeArea: TRect;  
   Dirigering: string;  
   
 begin  
     with Printer do  
     begin  
       BeginDoc();  
4131    
4132      URLStr : String;
4133      StedKode : String;
4134      WebSvar : String;
4135    
4136        Canvas.Font.Size := 16;    i : Integer;
       Canvas.TextOut(15,10, 'Code: ' + PakkeshopLabel.Tjekkode + '     '  + PakkeshopLabel.Overskrift);  
4137    
4138      PakkeType : String;
4139      TotalAntal : String;
4140      AntalProdDato : String;
4141    
4142      CurrentPanel : TPanel;
4143    
4144        Canvas.TextOut(25, 90, PakkeshopLabel.Navn );  begin
4145        Canvas.TextOut(25, 135, PakkeshopLabel.Vejnavn );    ListBox2.Clear();
       Canvas.TextOut(25, 180, PakkeshopLabel.Postnr );  
4146    
4147      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
4148        begin
4149          StedKode := BladhusStedKode[BladhusSted];
4150        end
4151      else
4152        begin
4153          StedKode := Sted;
4154        end;
4155    
4156        Canvas.Font.Size := 9;    URLStr := Format(Config.UrlHentPakkeAntal, [StedKode]);
       Canvas.TextOut(110, 240, 'Pakkeshop:');  
       Canvas.TextOut(110, 270, PakkeshopLabel.PakkeshopNavn);  
       Canvas.TextOut(110, 300, PakkeshopLabel.PakkeshopAddr);  
       Canvas.TextOut(110, 330, PakkeshopLabel.PakkeshopPostnr);  
4157    
       Canvas.TextOut(350, 240, 'Afsender:');  
       Canvas.TextOut(350, 270, PakkeshopLabel.AfsenderNavn);  
       Canvas.TextOut(350, 300, PakkeshopLabel.AfsenderAdresse);  
       Canvas.TextOut(350, 330, PakkeshopLabel.AfsenderPostnr);  
4158    
4159        Dirigering := PakkeshopLabel.PakkeshopSted + ' | ' + PakkeshopLabel.PakkeshopTurid + ' | ' + PakkeshopLabel.PakkeshopNr;    try
4160        if ( PakkeshopLabel.Koreliste <> '') then      WebSvar := IdHTTP1.Get(URLStr);
4161        except
4162          on e:EIdConnClosedGracefully do
4163        begin        begin
4164          Dirigering := Dirigering + ' > ' + PakkeshopLabel.Koreliste;          // Her skal vi ikke gøre noget - men vi skal forespørge igen
4165            WebSvar := IdHTTP1.Get(URLStr);
4166        end;        end;
4167          on e:exception do
4168          begin
4169            ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Fejl i web forespørgsel: '+e.Message);
4170            logTekst := 'Fejl i web forespørgsel: '+e.Message;
4171            SkrivScanningLogFil(logTekst);
4172            raise exception.CreateFmt('Fejl i web forespørgsel: %s',[e.Message]);
4173          end;
4174        end;
4175    
4176    
       Canvas.Font.Size := 12;  
       Canvas.TextOut(15, 370, Dirigering);  
   
   
   
   
   
       //Tegn adskillelses linier  
       Canvas.Pen.Width := 2;  
       //Øverste linie  
       Canvas.MoveTo(20,80);  
       Canvas.LineTo(600,80);  
   
       // Midterste linie  
       Canvas.MoveTo( 20, 240);  
       Canvas.LineTo(600, 240);  
   
       //Nederste linie  
       Canvas.MoveTo( 20, 370);  
       Canvas.LineTo(600, 370);  
   
4177    
4178        //Tegn skrå streger over afsender       try
       Canvas.Pen.Width := 1;  
       Canvas.MoveTo(600, 250);  
       Canvas.LineTo(350, 360);  
       Canvas.MoveTo(600, 360);  
       Canvas.LineTo(350, 250);  
4179    
4180          XMLDocument1.LoadFromXML(WebSvar);
4181    
4182          for i:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4183              Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4184    
4185              PakkeType := Node.ChildValues['PakkeType'];
4186              TotalAntal := Node.ChildValues['TotalAntal'];
4187              AntalProdDato := Node.ChildValues['AntalProdDato'];
4188    
       // Resten af rutinen vedr genering og placering af Barcode  
4189    
4190        BarCode.BarCodeType := bcCode128;            CurrentPanel := nil;
       BarCode.Code128Subset := csCodeC;  
       BarCode.Code := PakkeshopLabel.Stregkode;  
       BarCode.Validate(True);  
4191    
4192        //Start X-formation            if (PakkeType = 'natxpress') then
4193        //ShowMessage( Format('%d %d', [PageWidth, PageHeight]) );            begin
4194        GetWorldTransform(Canvas.Handle, XFormOld);               CurrentPanel := PanelManglendePakker1;
4195              end;
4196    
4197        Angle := 270;            if (PakkeType = 'daodirekte') then
4198        XForm.eM11 := Cos(DegToRad(Angle));            begin
4199        XForm.eM12 := Sin(DegToRad(Angle));               CurrentPanel := PanelManglendePakker4;
4200        XForm.eM21 := -Sin(DegToRad(Angle));            end;
       XForm.eM22 := Cos(DegToRad(Angle));  
       XForm.eDx := 0;  
       XForm.eDy := 0;  
4201    
4202        gMode := SetGraphicsMode(Canvas.Handle, GM_ADVANCED);            if (PakkeType = 'pakkeshop') then
4203        SetWorldTransform(Canvas.Handle, XForm);            begin
4204                 CurrentPanel := PanelManglendePakker5;
4205              end;
4206    
4207        // PaintToCanvasSize arbejder i Inches            if (CurrentPanel <> nil) then
4208        // Første pos argument bliver nu Y og skal være negativ for at rykke den ned            begin
4209        //Anden pos er X og skal være positiv for at justere ind fra venstre mod højre              CurrentPanel.Caption := TotalAntal;
4210                if ( StrToInt(TotalAntal) > 0) then
4211                begin
4212                  CurrentPanel.Visible := true;
4213                end
4214                else
4215                begin
4216                  CurrentPanel.Visible := false;
4217                end;
4218              end;
4219    
       BarCode.PaintToCanvasSize(Printer.Canvas, -1.8, 3.3, 0.4);  
4220    
4221          end;
4222    
       SetWorldTransform(Canvas.Handle, XFormOld);  
       SetGraphicsMode(Canvas.Handle, gMode);  
4223    
4224        EndDoc();   except on e:exception do
4225          begin
4226            ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Fejl i XML-format: '+e.Message);
4227            logTekst := 'Fejl i XML-format: '+e.Message;
4228            SkrivScanningLogFil(logTekst);
4229            raise exception.CreateFmt('Fejl i XML-format: %s',[e.Message]);
4230          end;
4231      end;      end;
4232    
4233    
 end;  
4234    
4235  function GetPixelsPerInchX(): Integer;    ListBox1.Items.Insert(0,'Pakkeantal indlæst - klar til scanning');
 begin  
   Result := GetDeviceCaps(Printer.Handle, LOGPIXELSX)  
 end;  
4236    
 function GetPixelsPerInchY(): Integer;  
 begin  
   Result := GetDeviceCaps(Printer.Handle, LOGPIXELSY)  
4237  end;  end;
4238    
4239    procedure TMainForm.IndlesManglendeScanningerListe();
 procedure TMainForm.IndlesManglendeScanninger();  
4240  var  var
4241    WebSvar : String;    WebSvar : String;
4242    URLStr : String;    URLStr : String;
# Line 4661  var Line 4245  var
4245    I: Integer;    I: Integer;
4246    stregkode, modtagernavn, modtageradresse, kommentar : string;    stregkode, modtagernavn, modtageradresse, kommentar : string;
4247    pakketype, tjekkodestatus : String;    pakketype, tjekkodestatus : String;
4248    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;    antalLiniefelter, antalFelterFundet, linienr : Integer;
4249    pakketyper : TStrings;    //pakketyper : TStrings;
4250      pakketyper : TDictionary<String, Integer>;
4251      tmpAntal : Integer;
4252    
4253     time, timeSamlet : TTimingHelper;
4254    
4255    
4256    antlin : Integer;    antlin : Integer;
4257    
4258    antlinIdag, antlinSenere : Integer;    antlinIdag, antlinSenere : Integer;
4259    
4260    XmlFelter : TStrings;    //XmlFelter : TStrings;
4261      XmlFelter : TDictionary<String, Integer>;
4262    
4263   begin   begin
4264      XmlFelter := TStringList.Create;  
4265      pakketyper := TStringList.Create;  
4266        XmlFelter := TDictionary<String, Integer>.Create;
4267        pakketyper := TDictionary<String, Integer>.Create;
4268    
4269      linienr := 0;      linienr := 0;
4270      ListBox2.Clear;      ListBox2.Clear;
4271      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Henter oversigt over pakker der endnu ikke er modtaget');      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Henter oversigt over pakker der endnu ikke er modtaget');
# Line 4686  var Line 4280  var
4280          StedKode := Sted;          StedKode := Sted;
4281        end;        end;
4282    
4283          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4284    
4285    
4286      if (Scanningtype = '6') then  
4287        if (Scanningtype = '7') then
4288         begin
4289          URLStr := Format(Config.UrlIndleveringsPakkeManglendeScanninger, [StedKode]);
4290         end
4291        else if (Scanningtype = '6') then
4292       begin       begin
4293        URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);        URLStr := Format(Config.UrlPakkeshopManglendeReturScanninger, [StedKode]);
4294       end       end
4295      else if (Scanningtype = '5') then      else if (Scanningtype = '5') then
4296       begin       begin
4297        URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);        URLStr := Format(Config.UrlPakkeshopManglendeScanninger, [StedKode]);
4298       end       end
4299      else if (Scanningtype = '1') then      else if (Scanningtype = '1') then
4300       begin       begin
4301        URLStr := Format(UrlManglendeScanninger,[StedKode,'B2']);        URLStr := Format(Config.UrlManglendeScanninger,[StedKode,'B2']);
4302       end       end
4303      else if (Scanningtype = '4') then      else if (Scanningtype = '4') then
4304       begin       begin
4305        URLStr := Format(UrlManglendeScanninger,[StedKode,'A2']);    // Budleveringer        URLStr := Format(Config.UrlManglendeScanninger,[StedKode,'A2']);    // Budleveringer
4306       end       end
4307      else      else
4308       begin       begin
# Line 4709  var Line 4310  var
4310       end;       end;
4311  // 20150310: slut  // 20150310: slut
4312    
4313        time := TTimingHelper.create();        //DEBUG
4314        timeSamlet := TTimingHelper.create();        //DEBUG
4315    
4316      try      try
4317      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
4318  //    URLStr := string(Utf8Encode(URLStr));  //    URLStr := string(Utf8Encode(URLStr));
# Line 4718  var Line 4322  var
4322        begin        begin
4323          // Her skal vi ikke gøre noget - men vi skal forespørge igen          // Her skal vi ikke gøre noget - men vi skal forespørge igen
4324          WebSvar := IdHTTP1.Get(URLStr);          WebSvar := IdHTTP1.Get(URLStr);
4325    
4326    
4327    
4328        end;        end;
4329        on e:exception do        on e:exception do
4330        begin        begin
# Line 4728  var Line 4335  var
4335        end;        end;
4336      end;      end;
4337      try      try
4338          time.stop('HTTP Load');     //DEBUG
4339    
4340        XMLDocument1.LoadFromXML(WebSvar);        XMLDocument1.LoadFromXML(WebSvar);
4341    
4342          time.stop('XML Load');     //DEBUG
4343    
4344    
4345    
4346    
4347    
4348    
4349        antlin := 0;        antlin := 0;
4350        antlinIdag := 0;        antlinIdag := 0;
# Line 4740  var Line 4355  var
4355            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
4356              if Node.NodeName = 'Stregkode' then              if Node.NodeName = 'Stregkode' then
4357              begin              begin
4358                 antlin := antlin + 1;                 Inc(antlin);
4359                 // 20150306: start                 // 20150306: start
4360                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4361                begin                begin
4362                   if (pos('(', Node.NodeValue) = 0) then                   if (pos('(', Node.NodeValue) = 0) then
4363                   begin                   begin
4364                     antlinIdag := antlinIdag + 1;                     Inc(antlinIdag);
4365                   end                   end
4366                   else                   else
4367                   begin                   begin
4368                     antlinSenere := antlinSenere + 1;                     Inc(antlinSenere);
4369                   end;                   end;
4370                end;                end;
4371                 // 20150306: slut                 // 20150306: slut
4372              end;              end;
4373            end;            end;
4374            if (XmlFelter.values[Node.NodeName] <> '') then            if ( XmlFelter.ContainsKey(Node.NodeName) ) then
4375                  XmlFelter.values[Node.NodeName] := IntToStr(StrToInt(XmlFelter.values[Node.NodeName]) + 1)                begin
4376                    XmlFelter.TryGetValue(Node.NodeName, tmpAntal);
4377                    XmlFelter.AddOrSetValue(Node.NodeName, tmpAntal + 1);
4378                  end
4379                else                else
4380                  XmlFelter.values[Node.NodeName] := '1';                begin
4381                    XmlFelter.Add(Node.NodeName, 1);
4382                  end;
4383    
4384        end;        end;
4385        antalLiniefelter := XmlFelter.Count;        antalLiniefelter := XmlFelter.Count;
# Line 4767  var Line 4387  var
4387        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug
4388        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array
4389    
4390          time.stop('Antal Linier');//DEBUG
4391    
4392          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4393    
4394        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4395        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4396        begin        begin
# Line 4775  var Line 4399  var
4399        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4400    
4401        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4402          time.stop('Antal Linier2');//DEBUG
4403    
4404    
4405        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4406            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4407            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
# Line 4782  var Line 4409  var
4409                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4410                  stregkode := Node.NodeValue;                  stregkode := Node.NodeValue;
4411                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4412              end;              end
4413              if Node.NodeName = 'ModtagerNavn' then begin              else if Node.NodeName = 'ModtagerNavn' then begin
4414                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4415                  modtagernavn := Node.NodeValue;                  modtagernavn := Node.NodeValue;
4416                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4417              end;              end
4418              if Node.NodeName = 'ModtagerAdresse' then begin              else if Node.NodeName = 'ModtagerAdresse' then begin
4419                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4420                  modtageradresse := Node.NodeValue;                  modtageradresse := Node.NodeValue;
4421                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4422              end;              end
4423              if Node.NodeName = 'Kommentar' then begin              else if Node.NodeName = 'Kommentar' then begin
4424                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4425                  kommentar := Node.NodeValue;                  kommentar := Node.NodeValue;
4426                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4427              end;              end
4428              if Node.NodeName = 'PakkeType' then begin              else if Node.NodeName = 'PakkeType' then begin
4429                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4430                  pakketype := Node.NodeValue;                  pakketype := Node.NodeValue;
4431                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4432                if (pakketyper.values[pakketype] <> '') then                if ( pakketyper.ContainsKey(pakketype) ) then
4433                  pakketyper.values[pakketype] := IntToStr(StrToInt(pakketyper.values[pakketype]) + 1)                begin
4434                    pakketyper.TryGetValue(pakketype, tmpAntal);
4435                    pakketyper.AddOrSetValue(pakketype, tmpAntal + 1);
4436                  end
4437                else                else
4438                  pakketyper.values[pakketype] := '1';                  pakketyper.Add(pakketype, 1);
4439              end;              end
4440              if Node.NodeName = 'TjekkodeStatus' then begin              else if Node.NodeName = 'TjekkodeStatus' then begin
4441                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4442                  tjekkodestatus := Node.NodeValue;                  tjekkodestatus := Node.NodeValue;
4443                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4444                  if (tjekkodestatus = '-1') then                  if (tjekkodestatus = '-1') then
4445                  begin                  begin
4446  // 20150306: start  
 //                    stregkoderMedTjekkodeArray[linienr] := stregkode;  
4447                    if (pos(' ', stregkode) > 0) then                    if (pos(' ', stregkode) > 0) then
4448                    begin                    begin
4449                      stregkoderMedTjekkodeArray[linienr] := TUtils.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
# Line 4826  var Line 4455  var
4455                    linienr := linienr + 1;                    linienr := linienr + 1;
4456                  end;                  end;
4457              end;              end;
4458    
4459    
4460              if antalFelterFundet = antalLiniefelter then              if antalFelterFundet = antalLiniefelter then
4461              begin              begin
4462                if (ScanningType = '1') then                if (ScanningType = '1') then
4463                  ListBox2.Items.Add(pakketype+'; '+stregkode+'; '+modtagernavn+'; '+modtageradresse+'; '+kommentar+'; '+tjekkodestatus)                   ListBox2.Items.Add(pakketype+'; '+stregkode+'; '+modtagernavn+'; '+modtageradresse+'; '+kommentar+'; '+tjekkodestatus)
4464                else if (ScanningType = '4') then                else if (ScanningType = '4') then
4465                  ListBox2.Items.Add(pakketype+'; '+stregkode+'; '+modtagernavn+'; '+modtageradresse+'; '+kommentar)                  ListBox2.Items.Add(pakketype+'; '+stregkode+'; '+modtagernavn+'; '+modtageradresse+'; '+kommentar)
4466                else if (ScanningType = '5') then                else if (ScanningType = '5') then
# Line 4841  var Line 4472  var
4472              end;              end;
4473            end;            end;
4474        end;        end;
       for pakketypeix := 0 to pakketyper.Count-1 do  
         begin  
           ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + ' '+pakketyper[pakketypeix]+' pakke(r) ikke modtaget');  
         end;  
4475    
4476          // Free up the list object  
4477          time.stop('Fyld Listbox2');//DEBUG
4478    
4479    
4480          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4481    
4482    
4483          for pakketype in pakketyper.Keys do
4484          begin
4485            pakketyper.TryGetValue(pakketype, tmpAntal);
4486            ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + pakketype + ' ' + IntToStr(tmpAntal) + ' pakke(r) ikke modtaget');
4487          end;
4488    
4489            // Free up the dictionary object
4490        pakketyper.Free;        pakketyper.Free;
4491    
4492    
4493    
4494  //      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.');
4495        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4496        if (antlinSenere > 0) then        if (antlinSenere > 0) then
# Line 4953  var Line 4596  var
4596        end;        end;
4597      end;      end;
4598    
4599        time.stop('Done');//DEBUG
4600        timeSamlet.stop('SamletTid');//DEBUG
4601    
4602    
4603  end;  end;
4604    
4605  procedure TMainForm.IndlesScanningLogFil();  procedure TMainForm.IndlesScanningLogFil();
# Line 5128  begin Line 4775  begin
4775          ListBox1.Items.Insert(0,TimeToStr(now) + ': ' +'Fandt ingen linier til '+imorgenYmd+'.');          ListBox1.Items.Insert(0,TimeToStr(now) + ': ' +'Fandt ingen linier til '+imorgenYmd+'.');
4776          logTekst := 'Fandt ingen linier til '+imorgenYmd+'.';          logTekst := 'Fandt ingen linier til '+imorgenYmd+'.';
4777          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
4778          PlaySound(PWideChar(AlarmLyd));          PlaySound(PWideChar(Config.AlarmLyd));
4779        end;        end;
4780      end;      end;
4781    end    end
# Line 5137  begin Line 4784  begin
4784        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Ruteskift fil '+filnavn+' findes ikke.');        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Ruteskift fil '+filnavn+' findes ikke.');
4785        logTekst := 'Ruteskift fil '+filnavn+' findes ikke.';        logTekst := 'Ruteskift fil '+filnavn+' findes ikke.';
4786        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4787        PlaySound(PWideChar(AlarmLyd));        PlaySound(PWideChar(Config.AlarmLyd));
4788    end;    end;
4789  end;  end;
4790    
# Line 5208  begin Line 4855  begin
4855          ListBox1.Items.Insert(0,TimeToStr(now) + ': ' +'Fandt ingen linier til '+imorgenYmd+'.');          ListBox1.Items.Insert(0,TimeToStr(now) + ': ' +'Fandt ingen linier til '+imorgenYmd+'.');
4856          logTekst := 'Fandt ingen linier til '+imorgenYmd+'.';          logTekst := 'Fandt ingen linier til '+imorgenYmd+'.';
4857          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
4858          PlaySound(PWideChar(AlarmLyd));          PlaySound(PWideChar(Config.AlarmLyd));
4859        end;        end;
4860      end;      end;
4861    end    end
# Line 5217  begin Line 4864  begin
4864        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Kontrol fil '+filnavn+' findes ikke.');        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Kontrol fil '+filnavn+' findes ikke.');
4865        logTekst := 'Kontrol fil '+filnavn+' findes ikke.';        logTekst := 'Kontrol fil '+filnavn+' findes ikke.';
4866        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4867        PlaySound(PWideChar(AlarmLyd));        PlaySound(PWideChar(Config.AlarmLyd));
4868    end;    end;
4869  end;  end;
4870    
# Line 5275  procedure TMainForm.VisAlarmSkaerm(strMe Line 4922  procedure TMainForm.VisAlarmSkaerm(strMe
4922  begin  begin
4923    //ShowMessage('Ændring ikke tilladt');    //ShowMessage('Ændring ikke tilladt');
4924    // Her skal komme en 'rød skærm' alarm    // Her skal komme en 'rød skærm' alarm
4925    PlaySound(PWideChar(AlarmLyd));    PlaySound(PWideChar(Config.AlarmLyd));
4926    MainForm.Color := clRed;    MainForm.Color := clRed;
4927    
4928    
# Line 5289  begin Line 4936  begin
4936      KommentarST.Caption := strMessage;      KommentarST.Caption := strMessage;
4937    end;    end;
4938    
4939      Stregkode := ''; //Nulstil stregkode feltet efter at fejl er vist
4940    
4941  end;  end;
4942    
4943  function TMainForm.getProddato() : TDate;  function TMainForm.getProddato() : TDate;
# Line 5348  begin Line 4997  begin
4997    result := svar;    result := svar;
4998  end;  end;
4999    
 function TMainForm.GetCurrentPrinterHandle: THandle;  
 var  
   Device, Driver, Port: array[0..255] of Char;  
   hDeviceMode: THandle;  
 begin  
   Printer.GetPrinter(Device, Driver, Port, hDeviceMode);  
   if not OpenPrinter(@Device, Result, nil) then  
     RaiseLastWin32Error;  
 end;  
   
 function TMainForm.SavePChar(p: PChar): PChar;  
 const  
   error: PChar = 'Nil';  
 begin  
   if not Assigned(p) then  
     Result := error  
   else  
     Result := p;  
 end;  
5000    
5001  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);
5002  begin  begin
# Line 5380  begin Line 5010  begin
5010    end;    end;
5011  end;  end;
5012    
5013  function TMainForm.AdobeReaderExists: Boolean;  
5014  var  //Nedarvet fra IParentForm
5015    AReg: TRegistry;  procedure TMainForm.Msg( msg : string);
5016  begin  begin
5017    result:= false;    ShowMessage(msg);
   AReg := TRegistry.Create;  
   AReg.RootKey := HKEY_LOCAL_MACHINE;  
   if AReg.KeyExists('\SOFTWARE\Adobe\Acrobat Reader') then  
     result:= True;  
   AReg.Free;  
5018  end;  end;
5019    
5020    //Nedarvet fra IParentForm
5021  function TMainForm.CheckUrl(url:string):boolean;  procedure TMainForm.LogMessage( msg : string);
5022  var  begin
5023    hSession, hfile: hInternet;    ListBox1.Items.Insert(0, msg);
5024    dwindex,dwcodelen :dword;    SkrivScanningLogFil(msg);
   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;  
   
5025  end;  end;
5026    
5027    
5028  procedure TMainForm.CheckPrintQue(tjektype : string);  //Nedarvet fra IParentForm
5029  type  procedure TMainForm.SetPrinterstatusText( txt: string; alert: boolean);
   TJobs  = array [0..1000] of JOB_INFO_1;  
   PJobs = ^TJobs;  
 var  
   hPrinter: THandle;  
   bytesNeeded, numJobs, i: Cardinal;  
   pJ: PJobs;  
   printerTxt, statusTxt, dokumentTxt: String;  
5030  begin  begin
5031    
5032  // tjektype = 'Opstart' skal vise alarmlinie, samt opdatere listbox1    PrinterstatusStaticText1.Caption := txt;
5033  //            'Test'  skal vise alarmlinie, samt opdatere listbox1    if (alert) then
 //            'Timer' skal kun vise alarmlinie  
   
   if (PrinterNavn = 'Ingen') and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then  
5034    begin    begin
5035      printerTxt := 'Der er fravalgt printer i dette program';      PrinterstatusStaticText1.Font.Color := clBlack;
5036      ListBox1.Items.Insert(0,printerTxt);      PrinterstatusStaticText1.Color := MainForm.Color;
5037      SkrivScanningLogFil(printerTxt);      PrinterstatusStaticText1.Transparent := True;
   end  
   else if (Printer.Printers.Count = 0) and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then  
   begin  
     printerTxt := 'Der er ikke installeret en printer på denne PC';  
     ListBox1.Items.Insert(0,printerTxt);  
     SkrivScanningLogFil(printerTxt);  
5038    end    end
5039    else    else
5040    begin    begin
5041      hPrinter := GetCurrentPrinterHandle;      PrinterstatusStaticText1.Font.Color := clRed;
5042      try      PrinterstatusStaticText1.Color := clWhite;
5043        EnumJobs(hPrinter, 0, 1000, 1, nil, 0, bytesNeeded, numJobs);      PrinterstatusStaticText1.Transparent := true;
5044        pJ := AllocMem(bytesNeeded);    end;
5045        if not EnumJobs(hPrinter, 0, 1000, 1, pJ, bytesNeeded, bytesNeeded, numJobs) then  end;
         RaiseLastWin32Error;  
   
       if numJobs = 0 then  
       begin  
         if (tjektype = 'Test') then  
         begin  
           logTekst := printerTxt + ': Ingen dokumenter i kø';  
           ListBox1.Items.Insert(0,logTekst);  
           SkrivScanningLogFil(logTekst);  
         end;  
         PrinterstatusStaticText1.Caption := '';  
         PrinterstatusStaticText1.Color := MainForm.Color;  
       end  
       else   // så er der kø til printeren  
       begin  
         printerTxt := SavePChar(pJ^[0].pPrinterName);  
         if (tjektype = 'Opstart') or (tjektype = 'Test') then  
         begin  
           logTekst := IntToStr(numJobs) + ' dokument(er) i kø til printer: ' + printerTxt;  
           ListBox1.Items.Insert(0,logTekst);  
           SkrivScanningLogFil(logTekst);  
         end;  
         for i := 0 to Pred(numJobs) do  
         begin  
           printerTxt := SavePChar(pJ^[i].pPrinterName);  
           statusTxt := 'Ukendt';  
           if (IntToStr(pJ^[i].Status) = '0') then  
             statusTxt := 'Venter...';  
           if (IntToStr(pJ^[i].Status) = '4096') then  
             statusTxt := 'Printer...';  
           if (IntToStr(pJ^[i].Status) = '8210') then  
             statusTxt := 'Printerfejl';  
           if (IntToStr(pJ^[i].Status) = '8214') then  
             statusTxt := 'Sletter print...';  
   
           dokumentTxt := SavePChar(pJ^[i].pDocument);  
           if (dokumentTxt = '') then  
             dokumentTxt := 'Uden navn';  
   
           if (tjektype = 'Opstart') or (tjektype = 'Test') then  
           begin  
             logTekst := Format('Printer %s, Dokument %d: %s, Status (%d): %s',  
                                     [printerTxt, i+1, dokumentTxt, pJ^[i].Status, statusTxt]);  
             ListBox1.Items.Insert(0,logTekst);  
             SkrivScanningLogFil(logTekst);  
           end;  
5046    
5047            if (i = 0) then  //Nedarvet fra IParentForm
5048            begin  function TMainForm.GetFormObject() : TForm;
5049              PrinterstatusStaticText1.Caption := printerTxt + ': ' + IntToStr(numJobs) + ' dokument(er) in kø. Dokument status: ' + statusTxt;  begin
5050              PrinterstatusStaticText1.Font.Color := clBlack;    Result := self;
5051              PrinterstatusStaticText1.Color := MainForm.Color;  end;
             PrinterstatusStaticText1.Transparent := True;  
             if (numJobs > 3) then  
             begin  
               PrinterstatusStaticText1.Font.Color := clRed;  
               PrinterstatusStaticText1.Color := clWhite;  
               PrinterstatusStaticText1.Transparent := true;  
             end;  
           end;  
5052    
5053          end;  //Nedarvet fra IParentForm
5054        end  function TMainForm.GetXMLDocument() : TXMLDocument;
5055        finally  begin
5056          ClosePrinter(hPrinter);    Result := XMLDocument1
     end;  
   end;  
5057  end;  end;
5058    
5059    

Legend:
Removed from v.2682  
changed lines
  Added in v.3125

  ViewVC Help
Powered by ViewVC 1.1.20