/[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 3056 by torben, Mon Jun 27 12:21:43 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,    PakkeshopLabels,
24    StBarC,    Utils,
25    Math, // DegToRad() bruges i PrintPakkeshopLabel    ParentForm,
26    Utils    LabelPrint,
27      Configuration,
28      Vcl.Imaging.pngimage,
29      Generics.Collections
30    
31    ;    ;
32    
33  type  type
34    TMainForm = class(TForm)    TMainForm = class(TForm, IParentForm)
35      StregkodeST: TStaticText;      StregkodeST: TStaticText;
36      RuteNummerST: TStaticText;      RuteNummerST: TStaticText;
37      BoghandlerNavnST: TStaticText;      BoghandlerNavnST: TStaticText;
# Line 26  type Line 39  type
39      XMLDocument1: TXMLDocument;      XMLDocument1: TXMLDocument;
40      ApplicationEvents1: TApplicationEvents;      ApplicationEvents1: TApplicationEvents;
41      chkSporgEfterKunde: TCheckBox;      chkSporgEfterKunde: TCheckBox;
     KommentarST: TStaticText;  
42      MainMenu1: TMainMenu;      MainMenu1: TMainMenu;
43      N1: TMenuItem;      N1: TMenuItem;
44      Pakkernormal1: TMenuItem;      menuNatXpress1: TMenuItem;
45      ReturpakkerfraDAO1: TMenuItem;      menuNatxpressReturDAO1: TMenuItem;
46      Returpakkerfraboghandler1: TMenuItem;      menuNatxpressReturfraKunde1: TMenuItem;
47      Hjlp1: TMenuItem;      Hjlp1: TMenuItem;
48      Om1: TMenuItem;      Om1: TMenuItem;
49      Testforbindelsen1: TMenuItem;      Testforbindelsen1: TMenuItem;
# Line 44  type Line 56  type
56      radioStorPakke: TRadioButton;      radioStorPakke: TRadioButton;
57      radioLillePakke: TRadioButton;      radioLillePakke: TRadioButton;
58      N4: TMenuItem;      N4: TMenuItem;
59      Storepakker1: TMenuItem;      menuStorePakker: TMenuItem;
60      Smpakker1: TMenuItem;      menuSmaaPakker: TMenuItem;
61      Panel1: TPanel;      Panel1: TPanel;
62      Testlyd2: TMenuItem;      Testlyd2: TMenuItem;
63      Button1: TButton;      Button1: TButton;
64      Testlyd1: TMenuItem;      Testlyd1: TMenuItem;
65      ListBox1: TListBox;      ListBox1: TListBox;
66      Budlevering1: TMenuItem;      menuDaoDirekte1: TMenuItem;
67      DownloadButton01: TButton;      BtnDownloadKontrolfil: TButton;
68      IdFTP1: TIdFTP;      IdFTP1: TIdFTP;
69      Image1: TImage;      Image1: TImage;
70      ListBox2: TListBox;      ListBox2: TListBox;
71      OpdaterListenButton01: TButton;      BtnOpdaterListen: TButton;
72      UploadButton01: TButton;      BtnUploadLogfil: TButton;
73      DownloadButton03: TButton;      BtnDownloadRuteskiftFil: TButton;
74      Pakkeshoplevering1: TMenuItem;      menuPakkeshop1: TMenuItem;
75      PakkeshopText1: TStaticText;      PakkeshopText1: TStaticText;
76      btnNulstil: TButton;      btnNulstil: TButton;
77      Returpakkerfrapakkeshop1: TMenuItem;      menuPakkeshopRetur1: TMenuItem;
78      Altidprintepakkelabel1: TMenuItem;      Altidprintepakkelabel1: TMenuItem;
79      chkAltidPrintLabel: TCheckBox;      chkAltidPrintLabel: TCheckBox;
80      EKLoverforsel: TButton;      BtnEKLoverforsel: TButton;
81      N5: TMenuItem;      N5: TMenuItem;
82      Uploadlogfil1: TMenuItem;      Uploadlogfil1: TMenuItem;
83      Manual1: TMenuItem;      Manual1: TMenuItem;
# Line 73  type Line 85  type
85      Timer1: TTimer;      Timer1: TTimer;
86      chkScanTjekkode: TCheckBox;      chkScanTjekkode: TCheckBox;
87      Scanogstjekkoden1: TMenuItem;      Scanogstjekkoden1: TMenuItem;
88      Automatisktjekkodestyring1: TMenuItem;      menuAutomatiskTjekkodeStyring: TMenuItem;
89      Automatiskvalg1: TMenuItem;      menuAutomatiskvalg1: TMenuItem;
90      PanelValgA: TPanel;      PanelValgA: TPanel;
91      PanelValg1: TPanel;      PanelValg1: TPanel;
92      PanelValg2: TPanel;      PanelValg2: TPanel;
# Line 92  type Line 104  type
104      PanelManglendePakker5: TPanel;      PanelManglendePakker5: TPanel;
105      PanelManglendePakker6: TPanel;      PanelManglendePakker6: TPanel;
106      menuIndlevering: TMenuItem;      menuIndlevering: TMenuItem;
107        chkForstorTilDirekte: TCheckBox;
108        chkEmballageRepareret: TCheckBox;
109        KommentarST: TLabel;
110    
111    
   function Sto_GetFmtFileVersion(const FileName: String = ''): String;  
112    
113    function getProddato() : TDate;    function getProddato() : TDate;
114    function getProddag() : String;    function getProddag() : String;
115    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;  
116    
117    procedure PlaySound(filename : PWideChar);    procedure PlaySound(filename : PWideChar);
118    procedure StartScreen();    procedure StartScreen();
# Line 119  type Line 128  type
128    procedure radioStorPakkeClick(Sender: TObject);    procedure radioStorPakkeClick(Sender: TObject);
129    procedure radioLillePakkeClick(Sender: TObject);    procedure radioLillePakkeClick(Sender: TObject);
130    procedure chkSporgEfterKundeClick(Sender: TObject);    procedure chkSporgEfterKundeClick(Sender: TObject);
131    procedure Pakkernormal1Click(Sender: TObject);    procedure menuNatXpress1Click(Sender: TObject);
132    procedure Testforbindelsen1Click(Sender: TObject);    procedure Testforbindelsen1Click(Sender: TObject);
133    procedure Testprinter1Click(Sender: TObject);    procedure Testprinter1Click(Sender: TObject);
134    procedure Om1Click(Sender: TObject);    procedure Om1Click(Sender: TObject);
135    procedure Lukprogrammet1Click(Sender: TObject);    procedure Lukprogrammet1Click(Sender: TObject);
136    procedure Sprgefterboghandlernummer1Click(Sender: TObject);    procedure Sprgefterboghandlernummer1Click(Sender: TObject);
137    procedure ReturpakkerfraDAO1Click(Sender: TObject);    procedure menuNatxpressReturDAO1Click(Sender: TObject);
138    procedure Returpakkerfraboghandler1Click(Sender: TObject);    procedure menuNatxpressReturfraKunde1Click(Sender: TObject);
139    procedure Storepakker1Click(Sender: TObject);    procedure menuStorePakkerClick(Sender: TObject);
140    procedure Smpakker1Click(Sender: TObject);    procedure menuSmaaPakkerClick(Sender: TObject);
141    procedure Testlyd1Click(Sender: TObject);    procedure Testlyd1Click(Sender: TObject);
142    procedure Testlyd2Click(Sender: TObject);    procedure Testlyd2Click(Sender: TObject);
143    procedure Button1Click(Sender: TObject);    procedure Button1Click(Sender: TObject);
144    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
145    procedure Budlevering1Click(Sender: TObject);    procedure menuDaoDirekte1Click(Sender: TObject);
146    procedure DownloadButton01Click(Sender: TObject);    procedure BtnDownloadKontrolfilClick(Sender: TObject);
147    procedure OpdaterListenButton01Click(Sender: TObject);    procedure BtnOpdaterListenClick(Sender: TObject);
148    procedure DownloadBladhusRuteskiftfil();    procedure DownloadBladhusRuteskiftfil();
149    procedure DownloadBladhusKontrolfil();    procedure DownloadBladhusKontrolfil();
150    procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);    procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);
# Line 143  type Line 152  type
152    procedure UploadInifilTilDAO();    procedure UploadInifilTilDAO();
153    procedure SletStregkodelinieFraListboks2(StregKode : String);    procedure SletStregkodelinieFraListboks2(StregKode : String);
154    procedure FormDestroy(Sender: TObject);    procedure FormDestroy(Sender: TObject);
155    procedure UploadButton01Click(Sender: TObject);    procedure BtnUploadLogfilClick(Sender: TObject);
156    procedure DownloadButton03Click(Sender: TObject);    procedure BtnDownloadRuteskiftFilClick(Sender: TObject);
157    procedure Pakkeshoplevering1Click(Sender: TObject);    procedure menuPakkeshop1Click(Sender: TObject);
158    procedure btnNulstilClick(Sender: TObject);    procedure btnNulstilClick(Sender: TObject);
159    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);    procedure menuPakkeshopRetur1Click(Sender: TObject);
160    procedure InitNatxpresslevering();    procedure InitNatxpresslevering();
161    procedure InitReturFraDao();    procedure InitReturFraDao();
162    procedure InitReturFraKunde();    procedure InitReturFraKunde();
# Line 158  type Line 167  type
167    
168    procedure Altidprintepakkelabel1Click(Sender: TObject);    procedure Altidprintepakkelabel1Click(Sender: TObject);
169    procedure chkAltidPrintLabelClick(Sender: TObject);    procedure chkAltidPrintLabelClick(Sender: TObject);
170    procedure EKLoverforselClick(Sender: TObject);    procedure BtnEKLoverforselClick(Sender: TObject);
171    procedure Uploadlogfil1Click(Sender: TObject);    procedure Uploadlogfil1Click(Sender: TObject);
172    procedure Manual1Click(Sender: TObject);    procedure Manual1Click(Sender: TObject);
173    procedure Timer1Timer(Sender: TObject);    procedure Timer1Timer(Sender: TObject);
174    procedure Scanogstjekkoden1Click(Sender: TObject);    procedure Scanogstjekkoden1Click(Sender: TObject);
175    procedure chkScanTjekkodeClick(Sender: TObject);    procedure chkScanTjekkodeClick(Sender: TObject);
176    procedure Automatisktjekkodestyring1Click(Sender: TObject);    procedure menuAutomatiskTjekkodeStyringClick(Sender: TObject);
177    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
178    procedure Automatiskvalg1Click(Sender: TObject);    procedure menuAutomatiskvalg1Click(Sender: TObject);
179    procedure PanelValgAClick(Sender: TObject);    procedure PanelValgAClick(Sender: TObject);
180    procedure PanelValg1Click(Sender: TObject);    procedure PanelValg1Click(Sender: TObject);
181    procedure PanelValg2Click(Sender: TObject);    procedure PanelValg2Click(Sender: TObject);
# Line 180  type Line 189  type
189    procedure SletLogfiler(Path: string; FileList: TStrings);    procedure SletLogfiler(Path: string; FileList: TStrings);
190    procedure Manualgenerel1Click(Sender: TObject);    procedure Manualgenerel1Click(Sender: TObject);
191    procedure TjekkerUrls();    procedure TjekkerUrls();
192      procedure TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
193    
194    procedure menuIndleveringClick(Sender: TObject);    procedure menuIndleveringClick(Sender: TObject);
195    
196    procedure PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);  
197    procedure CheckPrintQue(tjektype : string);  
198      //Nedarvet fra IParentForm
199      procedure Msg( msg : string);
200      procedure LogMessage( msg : string);
201      procedure SetPrinterstatusText( txt: string; alert: boolean);
202      function GetFormObject() : TForm;
203    
204    
205    
206    private    private
# Line 193  type Line 209  type
209      SkrivLog : String;      SkrivLog : String;
210      Sted : String;      Sted : String;
211      StedNavn : String;      StedNavn : String;
212      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,UrlEKLoverforsel : String;      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering,
213  // 29150330: start              UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,
214                UrlIndleveringsPakkeManglendeScanninger,UrlEKLoverforsel, URLOmdirigerTilPakkeshop : String;
215    
216      UrlEKLoverforselPakkeshop : String;      UrlEKLoverforselPakkeshop : String;
217  // 20150330: slut  
218      UrlFindPakketype, UrlSendPrograminfo: String;      UrlFindPakketype, UrlSendPrograminfo: String;
219      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;
220      ScanTjekkode : String;      ScanTjekkode : String;
221      ScanTjekkodeAutomatik : string;      ScanTjekkodeAutomatik : string;
222      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop, FarveIndlevering : String;  
223      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop, TitelIndlevering : String;      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop,
224      LabelType : integer;            FarveIndlevering : String;
225    
226        Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop,
227              TitelIndlevering : String;
228    
229      AlarmLyd : String;      AlarmLyd : String;
230      ScannetOkLyd : String;      ScannetOkLyd : String;
231      ScannetOkStorLyd : String;      ScannetOkStorLyd : String;
232  // 20150317: start  
233      ScannetOkTilTjekkodeLyd : String;      ScannetOkTilTjekkodeLyd : String;
234  // 20150317: slut  
235      PrinterNavn : String;      PrinterNavn : String;
236      TjekPrinter : String;      TjekPrinter : String;
237      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;  
238      Org_RuteNummerST, Org_BoghandlerNavnST, Org_KommentarST : String;      Org_RuteNummerST, Org_BoghandlerNavnST, Org_KommentarST : String;
239      BladhusSted : Integer;      BladhusSted : Integer;
240      BladhusStedKode : Array of string;      BladhusStedKode : Array of string;
# Line 247  type Line 247  type
247      PakkeshopStregkode, PakkeshopTjekkode : String;      PakkeshopStregkode, PakkeshopTjekkode : String;
248      BoghandlerStregkode, BoghandlerTjekkode : String;      BoghandlerStregkode, BoghandlerTjekkode : String;
249      TjekUrls : String;      TjekUrls : String;
250        Config : TConfiguration;
251    
     Barcode : TStBarcode;  
252    
253        LabelPrint: TLabelPrint;
254    
255      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 = '');
256      procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');  
257      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 = '');
258      procedure CheckCode();      procedure CheckCode();
259      procedure IndlesManglendeScanninger();      procedure IndlesManglendeScanninger();
# Line 262  type Line 263  type
263      procedure SkrivScanningLogFil(var tekst : string);      procedure SkrivScanningLogFil(var tekst : string);
264      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;
265      procedure VisAlarmSkaerm(strMessage: string);      procedure VisAlarmSkaerm(strMessage: string);
266        function InjectURL(Url : String) : String;
267    
268    public    public
269      { Public declarations }      { Public declarations }
270    end;    end;
271    
       function GetPixelsPerInchX(): Integer;  
     function GetPixelsPerInchY(): Integer;  
272    
273  var  var
274    MainForm: TMainForm;    MainForm: TMainForm;
# Line 284  implementation Line 284  implementation
284  {$R *.dfm}  {$R *.dfm}
285    
286    
287    //FormCreate kaldes før InitForm
288    
289  procedure TMainForm.InitForm(Farve,Titel,Url : String);  procedure TMainForm.InitForm(Farve,Titel,Url : String);
290  begin  begin
291    
292  // 20150309: startr      IdHTTP1.ConnectTimeout := 5000; // Vent max 5 sek på connect
293        IdHTTP1.ReadTimeout := 10000; // Vent max 10 sek på read
294    
295    
296    
297    
298      StaticTextManglendePakker.Caption := '';      StaticTextManglendePakker.Caption := '';
 // 20150309: slut  
299    
     Barcode := TStBarcode.Create(MainForm);//Dynamisk oprettelse af Barcode component  
300    
301      PanelValg1.Color := clBtnFace;      PanelValg1.Color := clBtnFace;
302      if PanelValg1.Enabled = true then      if PanelValg1.Enabled = true then
# Line 335  begin Line 340  begin
340        PanelValg7.Font.Color := clWindowText;        PanelValg7.Font.Color := clWindowText;
341      end;      end;
342    
343      OpdaterListenButton01.Enabled := false;      BtnOpdaterListen.Enabled := false;
344    
345      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
346      begin      begin
# Line 363  begin Line 368  begin
368        else if (Sted = 'BR') then        else if (Sted = 'BR') then
369          begin StedNavn := 'Brøndby: '; end          begin StedNavn := 'Brøndby: '; end
370        else if (Sted = 'BK') then        else if (Sted = 'BK') then
371          begin StedNavn := 'Bladkompagniet: '; end          begin StedNavn := 'Bladkompagniet/ISV: '; end
372          else if (Sted = 'TK') then
373            begin StedNavn := 'BK/Trykkompagniet: '; end
374        else if (Sted = 'DBK') then        else if (Sted = 'DBK') then
375          begin StedNavn := 'DBK Køge: '; end          begin StedNavn := 'DBK/Køge: '; end
376        else if (Sted = '1') then        else if (Sted = '1') then
377          begin StedNavn := 'Ålborg: '; end          begin StedNavn := 'Ålborg: '; end
378        else if (Sted = '2') then        else if (Sted = '2') then
# Line 399  begin Line 406  begin
406        PrinterstatusStaticText1.Color := MainForm.Color;        PrinterstatusStaticText1.Color := MainForm.Color;
407      end;      end;
408    
409      if PakkeshopLevering1.Checked or Pakkernormal1.Checked then      if menuPakkeshop1.Checked or menuNatXpress1.Checked then
410        PakkeshopText1.Visible := true        PakkeshopText1.Visible := true
411      else      else
412        PakkeshopText1.Visible := false;        PakkeshopText1.Visible := false;
# Line 424  begin Line 431  begin
431        end;        end;
432      end;      end;
433    
434      if Automatisktjekkodestyring1.Checked then      if menuAutomatiskTjekkodeStyring.Checked then
435      begin      begin
436        chkScanTjekkode.Enabled := false;        chkScanTjekkode.Enabled := false;
437        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
# Line 460  begin Line 467  begin
467        end;        end;
468      end;      end;
469    
470    
471  end;  end;
472    
473  procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);  procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);
# Line 481  begin Line 489  begin
489    StregkodeST.Caption := Stregkode;    StregkodeST.Caption := Stregkode;
490  end;  end;
491    
492  procedure TMainForm.Automatisktjekkodestyring1Click(Sender: TObject);  procedure TMainForm.menuAutomatiskTjekkodeStyringClick(Sender: TObject);
493  begin  begin
494    if Automatisktjekkodestyring1.Checked then    if menuAutomatiskTjekkodeStyring.Checked then
495    begin    begin
496       chkScanTjekkode.Enabled := false;       chkScanTjekkode.Enabled := false;
497       Scanogstjekkoden1.Enabled := false;       Scanogstjekkoden1.Enabled := false;
# Line 496  begin Line 504  begin
504    
505  end;  end;
506    
507  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);  procedure TMainForm.menuAutomatiskvalg1Click(Sender: TObject);
508  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;  
 *)  
509  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
510  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
511       AutomatiskValg1.Checked := true;       menuAutomatiskvalg1.Checked := true;
512       PanelValgA.Color := clGreen;       PanelValgA.Color := clGreen;
513       PanelValgA.Font.Color := clWhite;       PanelValgA.Font.Color := clWhite;
 // 20150317: slut  
514  end;  end;
515    
516    function TMainForm.InjectURL(Url : String) : String;
517    begin
518    
519      Url := Url + '&ver=' + TUtils.URLEncode( TUtils.Sto_GetFmtFileVersion(''));
520      Url := Url + '&host=' + TUtils.URLEncode( TUtils.GetComputerNameHelper());
521      Url := Url + '&user=' + TUtils.URLEncode( TUtils.GetCurrentUserName());
522    
523      Result := Url;
524    end;
525    
526    //InitForm kaldes før FormCreate
527  procedure TMainForm.FormCreate(Sender: TObject);  procedure TMainForm.FormCreate(Sender: TObject);
528  const  const
529    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
530  var  var
   printerInd : integer;  
531    gemScanningtype : String;    gemScanningtype : String;
532    
533  begin  begin
534    
535    
536    // Initierer nogle variabler    // Initierer nogle variabler
537    BladhusSted := 00;    BladhusSted := 00;
538    Application.ShowHint := True;    Application.ShowHint := True;
# Line 556  begin Line 560  begin
560    MainForm.ClientWidth := 1000;    MainForm.ClientWidth := 1000;
561    MainForm.ClientHeight := 750;    MainForm.ClientHeight := 750;
562    
563      Config := TConfiguration.Create();
564      Config.ReadFromInifile( TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) );    //ToDo: clean up duplicate ini ref
565      Config.Sted := Sted;
566    
567    // Læser parametre fra ini filen    // Læser parametre fra ini filen
568    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do
569    try    try
570    
571    
572      SkrivLog := ReadString('Settings','SkrivLog','0');      SkrivLog := ReadString('Settings','SkrivLog','0');
573      Sted := ReadString('Settings','Sted','');      Sted := ReadString('Settings','Sted','');
574      StedNavn := ReadString('Settings','Stednavn','');      StedNavn := ReadString('Settings','Stednavn','');
575    
576      UrlFindPakketype := ReadString('Settings','UrlFindPakketype','http://omdeling.info/webservices/bogpakkekontrol/FindPakketype.php?stregkode=%s');      UrlFindPakketype := ReadString('Settings','UrlFindPakketype','http://omdeling.info/webservices/bogpakkekontrol/FindPakketype.php?stregkode=%s');
577        UrlFindPakketype := InjectURL(UrlFindPakketype);
578    
579      UrlSendPrograminfo := ReadString('Settings','UrlSendPrograminfo','http://omdeling.info/webservices/bogpakkekontrol/SendPrograminfo.php?programnavn=%s&sted=%s&scanningtype=%s&infotype=%s&info=%s');      UrlSendPrograminfo := ReadString('Settings','UrlSendPrograminfo','http://omdeling.info/webservices/bogpakkekontrol/SendPrograminfo.php?programnavn=%s&sted=%s&scanningtype=%s&infotype=%s&info=%s');
580        UrlSendPrograminfo := InjectURL(UrlSendPrograminfo);
581    
582      UrlNormal := ReadString('Settings','UrlNormal','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&tjekkode=%s');      UrlNormal := ReadString('Settings','UrlNormal','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&tjekkode=%s');
583        UrlNormal := InjectURL(UrlNormal);
584    
585      UrlReturDAO := ReadString('Settings','UrlReturDAO','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&returpakketype=%s&pakkestorrelse=%s');      UrlReturDAO := ReadString('Settings','UrlReturDAO','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&returpakketype=%s&pakkestorrelse=%s');
586        UrlReturDAO := InjectURL(UrlReturDAO);
587    
588      UrlReturBoghandler := ReadString('Settings','UrlReturBoghandler','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&returpakketype=%s&pakkestorrelse=%s');      UrlReturBoghandler := ReadString('Settings','UrlReturBoghandler','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&returpakketype=%s&pakkestorrelse=%s');
589        UrlReturBoghandler := InjectURL(UrlReturBoghandler);
590    
591      UrlBudlevering := ReadString('Settings','UrlBudlevering','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&leveringstype=%s&pakkestorrelse=%s');      UrlBudlevering := ReadString('Settings','UrlBudlevering','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&leveringstype=%s&pakkestorrelse=%s');
592        UrlBudlevering := InjectURL(UrlBudlevering);
593    
594      UrlManglendeScanninger := ReadString('Settings','UrlManglendeScanninger','http://omdeling.info/webservices/bogpakkekontrol/bogpakkemanglendescanninger.php?sted=%s&type=%s');      UrlManglendeScanninger := ReadString('Settings','UrlManglendeScanninger','http://omdeling.info/webservices/bogpakkekontrol/bogpakkemanglendescanninger.php?sted=%s&type=%s');
595        UrlManglendeScanninger := InjectURL(UrlManglendeScanninger);
596    
597      UrlEKLoverforsel := ReadString('Settings','UrlEKLoverforsel','http://omdeling.info/webservices/bogpakkekontrol/bogpakkertilekl.php?sted=%s');      UrlEKLoverforsel := ReadString('Settings','UrlEKLoverforsel','http://omdeling.info/webservices/bogpakkekontrol/bogpakkertilekl.php?sted=%s');
598        UrlEKLoverforsel := InjectURL(UrlEKLoverforsel);
599    
600      UrlEKLoverforselPakkeshop := ReadString('Settings','UrlEKLoverforselPakkeshop','http://omdeling.info/webservices/pakkeshop/pakkertilekl.php?sted=%s');      UrlEKLoverforselPakkeshop := ReadString('Settings','UrlEKLoverforselPakkeshop','http://omdeling.info/webservices/pakkeshop/pakkertilekl.php?sted=%s');
601        UrlEKLoverforselPakkeshop := InjectURL(UrlEKLoverforselPakkeshop);
602    
603      UrlPakkeshoplevering := ReadString('Settings','UrlPakkeshoplevering','http://omdeling.info/webservices/pakkeshop/pakkekontrol.php?sted=%s&stregkode=%s&tjekkode=%s');      UrlPakkeshoplevering := ReadString('Settings','UrlPakkeshoplevering','http://omdeling.info/webservices/pakkeshop/pakkekontrol.php?sted=%s&stregkode=%s&tjekkode=%s');
604        UrlPakkeshoplevering := InjectURL(UrlPakkeshoplevering);
605    
606      UrlReturPakkeshop := ReadString('Settings','UrlReturPakkeshop','http://omdeling.info/webservices/pakkeshop/returpakkekontrol.php?sted=%s&stregkode=%s');      UrlReturPakkeshop := ReadString('Settings','UrlReturPakkeshop','http://omdeling.info/webservices/pakkeshop/returpakkekontrol.php?sted=%s&stregkode=%s');
607        UrlReturPakkeshop := InjectURL(UrlReturPakkeshop);
608    
609      UrlPakkeshopManglendeScanninger := ReadString('Settings','UrlPakkeshopManglendeScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendescanninger.php?sted=%s');      UrlPakkeshopManglendeScanninger := ReadString('Settings','UrlPakkeshopManglendeScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendescanninger.php?sted=%s');
610        UrlPakkeshopManglendeScanninger := InjectURL(UrlPakkeshopManglendeScanninger);
611    
612      UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s');      UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s');
613        UrlPakkeshopManglendeReturScanninger := InjectURL(UrlPakkeshopManglendeReturScanninger);
614    
615      UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');      UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');
616        UrlIndleveringsPakke := InjectURL(UrlIndleveringsPakke);
617    
618        UrlIndleveringsPakkeManglendeScanninger := ReadString('Settings', 'UrlIndleveringsPakkeManglendeScanninger','http://omdeling.info/webservices/pakkeshop/IndleveringsPakkeManglendeScanninger.php?sted=%s');
619        UrlIndleveringsPakkeManglendeScanninger := InjectURL(UrlIndleveringsPakkeManglendeScanninger);
620    
621        URLOmdirigerTilPakkeshop := ReadString('Settings', 'URLOmdirigerTilPakkeshop','http://omdeling.info/webservices/pakkeshop/PakkeKontrolOmdirigerTilPakkeshop.php?sted=%s&stregkode=%s');
622        URLOmdirigerTilPakkeshop := InjectURL(URLOmdirigerTilPakkeshop);
623    
624    
625    
     LabelType := ReadInteger('Settings','LabelType',1);  
626      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');
627      TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');      TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');
628      FarveReturDAO := ReadString('Settings','FarveReturDAO','A9F5A9');      FarveReturDAO := ReadString('Settings','FarveReturDAO','A9F5A9');
# Line 618  begin Line 659  begin
659    
660      if (SkrivLog = '1') then      if (SkrivLog = '1') then
661      begin      begin
662        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);
663        try        try
664          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
665          Uploadlogfil1.Enabled := true;          Uploadlogfil1.Enabled := true;
666          UploadButton01.Enabled := true;          BtnUploadLogfil.Enabled := true;
667          logTekst := 'Programmet er installeret som: '+ParamStr(0);          logTekst := 'Programmet er installeret som: '+ParamStr(0);
668          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
669          // Oprydning i gamle logfiler          // Oprydning i gamle logfiler
# Line 634  begin Line 675  begin
675    
676      if Scanningtype = 'A' then      if Scanningtype = 'A' then
677      begin      begin
678        Automatiskvalg1.Checked := true;        menuAutomatiskvalg1.Checked := true;
679        Scanningtype := '1';        Scanningtype := '1';
680        PanelValgA.Color := clGreen;        PanelValgA.Color := clGreen;
681        PanelValgA.Font.Color := clWhite;        PanelValgA.Font.Color := clWhite;
682      end;      end;
683    
684      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;  
685    
686      if SporgEfterBoghandler = '1' then      if SporgEfterBoghandler = '1' then
687      begin      begin
# Line 734  begin Line 707  begin
707    
708      if ScanTjekkodeAutomatik = '1' then      if ScanTjekkodeAutomatik = '1' then
709      begin      begin
710        Automatisktjekkodestyring1.Checked := true;        menuAutomatiskTjekkodeStyring.Checked := true;
711        chkScanTjekkode.Enabled := false;        chkScanTjekkode.Enabled := false;
712        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
713      end;      end;
# Line 764  begin Line 737  begin
737  {$IfDef STED_BK}  {$IfDef STED_BK}
738      SpecialVersionSted := 'BK';      SpecialVersionSted := 'BK';
739  {$EndIf}  {$EndIf}
740    {$IfDef STED_TK}
741        SpecialVersionSted := 'TK';// BK-Trykkompagniet
742    {$EndIf}
743  {$IfDef STED_DBK}  {$IfDef STED_DBK}
744      SpecialVersionSted := 'DBK';      SpecialVersionSted := 'DBK';
745  {$EndIf}  {$EndIf}
# Line 774  begin Line 750  begin
750      SpecialVersionSted := 'NS';      SpecialVersionSted := 'NS';
751  {$EndIf}  {$EndIf}
752    
   
753      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
754      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)
755      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
# Line 790  begin Line 765  begin
765      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)
766      // ændrer vi Sted og Scanningtype her:      // ændrer vi Sted og Scanningtype her:
767    
 // 20150313: start  
768      if SpecialVersionSted = 'NS' then      if SpecialVersionSted = 'NS' then
769      begin      begin
770         SpecialVersionSted := '01';         //SpecialVersionSted := '01'; // Fra før NS overtog scanning løssalg
771         SpecialVersionScanningtype := '4';         //SpecialVersionScanningtype := '4';
772    
773          //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
774          Sted := SpecialVersionSted;
775         // her skal vi også disable de knapper BK ikke kan bruge
776          PanelValg2.Enabled := false;
777          PanelValg2.Font.Color := clInactiveCaption;
778          PanelValg3.Enabled := false;
779          PanelValg3.Font.Color := clInactiveCaption;
780          //PanelValg6.Enabled := false;
781          //PanelValg6.Font.Color := clInactiveCaption;
782    
783         // her skal vi også disable de menupunkter FD ikke kan bruge
784          menuNatxpressReturDAO1.Enabled := false;
785          menuNatxpressReturfraKunde1.Enabled := false;
786    
787          //Returpakkerfrapakkeshop1.Enabled := false;
788      end;      end;
789    
790      if SpecialVersionSted = 'FD' then      if SpecialVersionSted = 'FD' then
791      begin      begin
792         SpecialVersionSted := '03';         //SpecialVersionSted := '03'; //fra før at FD overtog scanning
793         SpecialVersionScanningtype := '4';         //SpecialVersionScanningtype := '4';
794    
795    
796          //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
797          Sted := SpecialVersionSted;
798         // her skal vi også disable de knapper BK ikke kan bruge
799          PanelValg2.Enabled := false;
800          PanelValg2.Font.Color := clInactiveCaption;
801          PanelValg3.Enabled := false;
802          PanelValg3.Font.Color := clInactiveCaption;
803          //PanelValg6.Enabled := false;
804          //PanelValg6.Font.Color := clInactiveCaption;
805    
806         // her skal vi også disable de menupunkter FD ikke kan bruge
807          menuNatxpressReturDAO1.Enabled := false;
808          menuNatxpressReturfraKunde1.Enabled := false;
809    
810          //Returpakkerfrapakkeshop1.Enabled := false;
811    
812      end;      end;
 // 20150313: slut  
813    
814      if SpecialVersionSted = 'BK' then      if (SpecialVersionSted = 'BK') OR (SpecialVersionSted = 'TK') then
815      begin      begin
816        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
817        Sted := SpecialVersionSted;        Sted := SpecialVersionSted;
# Line 812  begin Line 820  begin
820        PanelValg2.Font.Color := clInactiveCaption;        PanelValg2.Font.Color := clInactiveCaption;
821        PanelValg3.Enabled := false;        PanelValg3.Enabled := false;
822        PanelValg3.Font.Color := clInactiveCaption;        PanelValg3.Font.Color := clInactiveCaption;
823        PanelValg6.Enabled := false;        //PanelValg6.Enabled := false;
824        PanelValg6.Font.Color := clInactiveCaption;        //PanelValg6.Font.Color := clInactiveCaption;
825    
826       // her skal vi også disable de menupunkter BK ikke kan bruge       // her skal vi også disable de menupunkter BK ikke kan bruge
827        ReturpakkerfraDAO1.Enabled := false;        menuNatxpressReturDAO1.Enabled := false;
828        Returpakkerfraboghandler1.Enabled := false;        menuNatxpressReturfraKunde1.Enabled := false;
829        Returpakkerfrapakkeshop1.Enabled := false;  
830          //Returpakkerfrapakkeshop1.Enabled := false;
831    
832        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
833        begin        begin
834           Scanningtype := '1';           Scanningtype := '1';
# Line 841  begin Line 852  begin
852        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
853        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
854        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
855        PanelValg7.Enabled := false;  
       PanelValg7.Font.Color := clInactiveCaption;  
856    
857       // her skal vi også disable de menupunkter DBK ikke kan bruge       // her skal vi også disable de menupunkter DBK ikke kan bruge
858        ReturpakkerfraDAO1.Enabled := false;        menuNatxpressReturDAO1.Enabled := false;
859        Returpakkerfraboghandler1.Enabled := false;        menuNatxpressReturfraKunde1.Enabled := false;
860    
861        Pakkeshoplevering1.Enabled := false;        menuPakkeshop1.Enabled := false;
862        Returpakkerfrapakkeshop1.Enabled := false;        menuPakkeshopRetur1.Enabled := false;
863    
864        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
865        begin        begin
# Line 884  begin Line 894  begin
894        PanelValg7.Font.Color := clInactiveCaption;        PanelValg7.Font.Color := clInactiveCaption;
895       // 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
896    
897        Automatiskvalg1.Enabled := false;        menuAutomatiskvalg1.Enabled := false;
898    
899        Pakkernormal1.Enabled := false;        menuNatXpress1.Enabled := false;
900        ReturpakkerfraDAO1.Enabled := false;        menuNatxpressReturDAO1.Enabled := false;
901        Returpakkerfraboghandler1.Enabled := false;        menuNatxpressReturfraKunde1.Enabled := false;
902        Budlevering1.Enabled := false;        menuDaoDirekte1.Enabled := false;
903        Pakkeshoplevering1.Enabled := false;        menuPakkeshop1.Enabled := false;
904        Returpakkerfrapakkeshop1.Enabled := false;        menuPakkeshopRetur1.Enabled := false;
905        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
906        begin        begin
907          Scanningtype := '4';          Scanningtype := '4';
908          Budlevering1.Enabled := true;          menuDaoDirekte1.Enabled := true;
909          PanelValg4.Font.Color := clWindowText;          PanelValg4.Font.Color := clWindowText;
910          PanelValg4.Enabled := true;          PanelValg4.Enabled := true;
911        end        end
# Line 904  begin Line 914  begin
914          Scanningtype := SpecialVersionScanningtype;          Scanningtype := SpecialVersionScanningtype;
915          PanelValgA.Enabled := false;          PanelValgA.Enabled := false;
916          PanelValgA.Font.Color := clInactiveCaption;          PanelValgA.Font.Color := clInactiveCaption;
917          AutomatiskValg1.Checked := false;          menuAutomatiskvalg1.Checked := false;
918          PanelValgA.Color := clBtnFace;          PanelValgA.Color := clBtnFace;
919          if Scanningtype = '1' then          if Scanningtype = '1' then
920          begin          begin
921            Pakkernormal1.Enabled := true;            menuNatXpress1.Enabled := true;
922            PanelValg1.Enabled := true;            PanelValg1.Enabled := true;
923            PanelValg1.Font.Color := clWindowText;            PanelValg1.Font.Color := clWindowText;
924          end;          end;
925          if Scanningtype = '2' then          if Scanningtype = '2' then
926          begin          begin
927            ReturpakkerfraDAO1.Enabled := true;            menuNatxpressReturDAO1.Enabled := true;
928            PanelValg2.Enabled := true;            PanelValg2.Enabled := true;
929            PanelValg2.Font.Color := clWindowText;            PanelValg2.Font.Color := clWindowText;
930          end;          end;
931          if Scanningtype = '3' then          if Scanningtype = '3' then
932          begin          begin
933            Returpakkerfraboghandler1.Enabled := true;            menuNatxpressReturfraKunde1.Enabled := true;
934            PanelValg3.Enabled := true;            PanelValg3.Enabled := true;
935            PanelValg3.Font.Color := clWindowText;            PanelValg3.Font.Color := clWindowText;
936          end;          end;
937          if Scanningtype = '4' then          if Scanningtype = '4' then
938          begin          begin
939            Budlevering1.Enabled := true;            menuDaoDirekte1.Enabled := true;
940            PanelValg4.Enabled := true;            PanelValg4.Enabled := true;
941            PanelValg4.Font.Color := clWindowText;            PanelValg4.Font.Color := clWindowText;
942          end;          end;
943          if Scanningtype = '5' then          if Scanningtype = '5' then
944          begin          begin
945            Pakkeshoplevering1.Enabled := true;            menuPakkeshop1.Enabled := true;
946            PanelValg5.Enabled := true;            PanelValg5.Enabled := true;
947            PanelValg5.Font.Color := clWindowText;            PanelValg5.Font.Color := clWindowText;
948          end;          end;
949          if Scanningtype = '6' then          if Scanningtype = '6' then
950          begin          begin
951            Returpakkerfrapakkeshop1.Enabled := true;            menuPakkeshopRetur1.Enabled := true;
952            PanelValg6.Enabled := true;            PanelValg6.Enabled := true;
953            PanelValg6.Font.Color := clWindowText;            PanelValg6.Font.Color := clWindowText;
954          end;          end;
# Line 1019  begin Line 1029  begin
1029    
1030      if Pakketype = '1' then      if Pakketype = '1' then
1031      begin      begin
1032        Storepakker1.Checked := true;        menuStorePakker.Checked := true;
1033        radioStorPakke.Checked := true;        radioStorPakke.Checked := true;
1034      end      end
1035      else      else
1036      begin      begin
1037        Smpakker1.Checked := true;        menuSmaaPakker.Checked := true;
1038        radioLillePakke.Checked := true;        radioLillePakke.Checked := true;
1039      end;      end;
1040    
# Line 1072  begin Line 1082  begin
1082      end;      end;
1083    
1084    
     if (PrinterNavn <> '') then  
     begin  
        printerInd := Printer.Printers.IndexOf(printerNavn);  
        if printerInd >= 0 then  
           Printer.PrinterIndex := printerInd;  
     end;  
1085    
1086      CheckPrintQue('Opstart');  
1087        LabelPrint := TLabelPrint.Create( self, Config, PrinterNavn );
1088        LabelPrint.CheckPrintQue('Opstart', PrinterNavn);
1089    
1090    finally    finally
1091      Free;      Free;
# Line 1088  begin Line 1094  begin
1094      // UBD skal p.t. ikke have adgang til flg. funktioner      // UBD skal p.t. ikke have adgang til flg. funktioner
1095      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
1096      begin      begin
1097        ReturpakkerfraDAO1.Visible := false;        menuNatxpressReturDAO1.Visible := false;
1098        Returpakkerfraboghandler1.Visible := false;        menuNatxpressReturfraKunde1.Visible := false;
1099        Budlevering1.Visible := false;        menuDaoDirekte1.Visible := false;
1100        Storepakker1.Visible := false;        menuStorePakker.Visible := false;
1101        Smpakker1.Visible := false;        menuSmaaPakker.Visible := false;
1102        Testprinter1.Visible := false;        Testprinter1.Visible := false;
1103        Pakkeshoplevering1.Visible := false;        menuPakkeshop1.Visible := false;
1104        Returpakkerfrapakkeshop1.Visible := false;        menuPakkeshopRetur1.Visible := false;
1105      end;      end;
1106    
1107      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
# Line 1146  begin Line 1152  begin
1152      Scanningtype := gemScanningtype;      Scanningtype := gemScanningtype;
1153    
1154      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');
1155      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion(''));      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', TUtils.Sto_GetFmtFileVersion(''));
1156    
1157  end;  end;
1158    
# Line 1203  begin Line 1209  begin
1209      or (NumberString = 'Retur fra kunde')      or (NumberString = 'Retur fra kunde')
1210      or (NumberString = 'DAO DIREKTE')      or (NumberString = 'DAO DIREKTE')
1211      or (NumberString = 'DAO PAKKESHOP')      or (NumberString = 'DAO PAKKESHOP')
1212        or (NumberString = 'DAO PAKKESHOP')
1213        or (LowerCase(NumberString) = 'for stor hjemmelevering' )
1214            or (LowerCase(NumberString) = 'for stor daodirekte' )
1215      or (NumberString = 'Retur fra pakkeshop') then      or (NumberString = 'Retur fra pakkeshop') then
1216    
1217      begin      begin
# Line 1213  begin Line 1222  begin
1222      begin      begin
1223        ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift');        ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift');
1224      end;      end;
1225    end;    end;  // Slut ctrl-v
1226    
1227    if Key = #13 then     // Enter    if Key = #13 then     // Enter
1228    begin    begin
1229      if (Length(Trim(Stregkode)) = 0) then  
1230        // Sikre at den er trimmet inden vi går videre - DBK kan finde på at encode et space i enden af deres barcodes
1231        Stregkode := Trim(Stregkode);
1232    
1233        if (Length(Stregkode) = 0) then
1234      begin      begin
1235        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );
1236    
# Line 1267  begin Line 1280  begin
1280         exit;         exit;
1281      end;      end;
1282    
1283        if (LowerCase(StregKode) = 'for stor hjemmelevering') OR (LowerCase(StregKode) = 'for stor daodirekte') then
1284        begin
1285          if chkForstorTilDirekte.Enabled then
1286          begin
1287            chkForstorTilDirekte.Checked := true;
1288          end
1289          else
1290          begin
1291             VisAlarmSkaerm( Stregkode + ' kan ikke vælges på denne scannings tilstand' );
1292          end;
1293          Stregkode := '';
1294          StregkodeST.Caption := StregKode;
1295          exit;
1296        end;
1297    
1298    
1299      if StregKode = 'Indtast kundenummer' then      if StregKode = 'Indtast kundenummer' then
1300      begin      begin
1301         if chkSporgEfterKunde.Enabled = true then         if chkSporgEfterKunde.Enabled = true then
# Line 1464  begin Line 1493  begin
1493        Pakkescanningtype := Scanningtype;        Pakkescanningtype := Scanningtype;
1494      end;      end;
1495    
1496      if (   (Pakkescanningtype = '1') and (PanelValg1.Enabled = false)      if (   ( (Pakkescanningtype = '1') and (PanelValg1.Enabled = false) )
1497          or (Pakkescanningtype = '2') and (PanelValg2.Enabled = false)          or ( (Pakkescanningtype = '2') and (PanelValg2.Enabled = false) )
1498          or (Pakkescanningtype = '3') and (PanelValg3.Enabled = false)          or ( (Pakkescanningtype = '3') and (PanelValg3.Enabled = false) )
1499          or (Pakkescanningtype = '4') and (PanelValg4.Enabled = false)          or ( (Pakkescanningtype = '4') and (PanelValg4.Enabled = false) )
1500          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)          or ( (Pakkescanningtype = '5') and (PanelValg5.Enabled = false) )
1501          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then          or ( (Pakkescanningtype = '6') and (PanelValg6.Enabled = false) ) ) then
1502      begin   // Her skal komme en alarm og rød skærm      begin   // Her skal komme en alarm og rød skærm
1503          VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );          VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1504    
1505         exit;         exit;
1506      end;      end;
1507    
1508      if Automatiskvalg1.Checked and (Length(Stregkode) > 8) then      if (menuAutomatiskvalg1.Checked and (Length(Stregkode) > 8) ) then
1509      begin      begin
1510        GemStregkode := Stregkode;        GemStregkode := Stregkode;
1511        if Pakketype = 'NatXpress' then        if Pakketype = 'NatXpress' then
# Line 1505  begin Line 1534  begin
1534                InitPakkeshoplevering();                InitPakkeshoplevering();
1535              end;              end;
1536            end            end
1537        // Retur kan ikke scannes med 'Automatisk valg'       else if Pakketype = 'PakkeshopRetur' then
1538              begin
1539                if Scanningtype <> '6' then
1540                begin
1541                 VisAlarmSkaerm( Stregkode + ' Pakkeshop retur,'#13#10' kan ikke bruges med automatisk valg' );
1542    
1543                 exit;
1544                end;
1545              end
1546    
1547    
1548        else        else
1549            begin            begin
1550            // Her skal komme en alarm og rød skærm            // Her skal komme en alarm og rød skærm
1551              VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );              //VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1552                 VisAlarmSkaerm( Stregkode + ' kan ikke bruges med automatisk valg' );
1553    
1554               exit;               exit;
1555            end;            end;
1556        Stregkode := GemStregkode;        Stregkode := GemStregkode;
1557      end      end
1558      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then      else if menuAutomatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then
1559      begin      begin
1560        VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );        VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );
1561    
1562        exit;        exit;
1563      end;      end;
1564    
1565      if not Automatiskvalg1.Checked then      if not menuAutomatiskvalg1.Checked then
1566      begin      begin
1567        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then
1568        begin        begin
# Line 1536  begin Line 1575  begin
1575    
1576    
1577    
1578      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and menuAutomatiskTjekkodeStyring.Checked then
1579      begin      begin
1580        chkScanTjekkode.Checked := false;        chkScanTjekkode.Checked := false;
1581        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do
# Line 1549  begin Line 1588  begin
1588        end;        end;
1589      end;      end;
1590    
1591      if Pakkernormal1.Checked and not Scanogstjekkoden1.Checked then      if menuNatXpress1.Checked and not Scanogstjekkoden1.Checked then
1592        begin        begin
1593          // Når vi ikke kræver tjekkode er alt ok her          // Når vi ikke kræver tjekkode er alt ok her
1594             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
# Line 1559  begin Line 1598  begin
1598             Stregkode := '';             Stregkode := '';
1599             InitScreen();             InitScreen();
1600        end        end
1601      else if (PakkeshopLevering1.Checked or Pakkernormal1.Checked) and not Scanogstjekkoden1.Checked then      else if (menuPakkeshop1.Checked or menuNatXpress1.Checked) and not Scanogstjekkoden1.Checked then
1602        begin        begin
1603          // Når vi ikke kræver tjekkode er alt ok her          // Når vi ikke kræver tjekkode er alt ok her
1604             PakkeshopStregkode := Stregkode;             PakkeshopStregkode := Stregkode;
# Line 1571  begin Line 1610  begin
1610             Stregkode := '';             Stregkode := '';
1611             InitScreen();             InitScreen();
1612        end        end
1613      else if PakkeshopLevering1.Checked or Pakkernormal1.Checked then      else if menuPakkeshop1.Checked or menuNatXpress1.Checked then
1614        if PakkeshopText1.Caption = 'Stregkode' then        if PakkeshopText1.Caption = 'Stregkode' then
1615         begin         begin
1616            if length(Stregkode) > 5 then            if length(Stregkode) > 5 then
# Line 1597  begin Line 1636  begin
1636             PakkeshopTjekkode := Stregkode;             PakkeshopTjekkode := Stregkode;
1637             BoghandlerTjekkode := Stregkode;             BoghandlerTjekkode := Stregkode;
1638             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1639             if (PakkeshopLevering1.Checked) then             if (menuPakkeshop1.Checked) then
1640                MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering);                MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering);
1641             if (Pakkernormal1.Checked) then             if (menuNatXpress1.Checked) then
1642                MainForm.Color := TUtils.HexToTColor(FarveNormal);                MainForm.Color := TUtils.HexToTColor(FarveNormal);
1643             btnNulstil.Visible := false;             btnNulstil.Visible := false;
1644           end           end
1645          else          else
1646           begin           begin
1647                if (PakkeshopLevering1.Checked) then                if (menuPakkeshop1.Checked) then
1648                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);
1649                if (Pakkernormal1.Checked) then                if (menuNatXpress1.Checked) then
1650                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);
1651                                    
1652                StregKode := '';                StregKode := '';
# Line 1619  begin Line 1658  begin
1658          InitScreen();          InitScreen();
1659       end;       end;
1660    
1661      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
1662      begin      begin
1663         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then  
1664           if menuPakkeshop1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then
1665            StregKode := PakkeshopStregkode;            StregKode := PakkeshopStregkode;
1666         if Pakkernormal1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then         if menuNatXpress1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then
1667            StregKode := BoghandlerStregkode;            StregKode := BoghandlerStregkode;
1668         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1669         try         try
# Line 1637  begin Line 1677  begin
1677    
1678              exit;              exit;
1679            end;            end;
1680            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then            if (menuNatXpress1.Checked or menuDaoDirekte1.Checked or menuPakkeshop1.Checked) then
1681            begin            begin
1682              PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel);              PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel);
1683              pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);              pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
# Line 1658  begin Line 1698  begin
1698                MainForm.Color := clRed;                MainForm.Color := clRed;
1699              end;              end;
1700           end;           end;
1701            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
1702            begin            begin
1703              MainForm.Color := TUtils.HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1704              if Storepakker1.Checked then              if menuStorePakker.Checked then
1705              begin              begin
1706                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
1707              end              end
# Line 1671  begin Line 1711  begin
1711              end;              end;
1712              btnNulstil.Visible := false;              btnNulstil.Visible := false;
1713            end            end
1714            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then            else if (menuNatxpressReturDAO1.Checked or menuNatxpressReturfraKunde1.Checked) then
1715            begin            begin
1716              MainForm.Color := TUtils.HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1717              if Storepakker1.Checked then              if menuStorePakker.Checked then
1718              begin              begin
1719                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
1720              end              end
# Line 1695  begin Line 1735  begin
1735            begin            begin
1736              VisAlarmSkaerm('');              VisAlarmSkaerm('');
1737            end;            end;
1738    
1739           if not btnNulstil.Visible then           if not btnNulstil.Visible then
1740            begin            begin
1741    
1742              If (Budlevering1.Checked) then              If (menuDaoDirekte1.Checked) then
1743              begin              begin
1744                if Storepakker1.Checked then                if menuStorePakker.Checked then
1745                begin                begin
1746                  PlaySound(PWideChar(ScannetOkStorLyd));                  PlaySound(PWideChar(ScannetOkStorLyd));
1747                end                end
# Line 1744  begin Line 1785  begin
1785    
1786    Key := #0;    Key := #0;
1787    
1788    
1789    
1790    
1791    
1792    
1793  end; //End of OnKeyPress  end; //End of OnKeyPress
1794    
1795    
1796    
1797  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
1798  const  const
1799    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
# Line 1787  var Line 1835  var
1835    
1836    
1837  begin  begin
1838      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
1839      begin      begin
1840        for i := ListBox2.items.count-1 downto 0 do        for i := ListBox2.items.count-1 downto 0 do
1841          if pos(StregKode,ListBox2.items[i]) <> 0 then          if pos(StregKode,ListBox2.items[i]) <> 0 then
1842          begin          begin
1843              wrkAntalSenere := 0;//initial Value
1844    
1845            // Ajourføring af tæller for manglende pakker (scanninger)            // Ajourføring af tæller for manglende pakker (scanninger)
1846            wrkAntal := StaticTextManglendePakker.Caption;            wrkAntal := StaticTextManglendePakker.Caption;
# Line 1906  begin Line 1955  begin
1955                PanelManglendePakker6.Visible := false;                PanelManglendePakker6.Visible := false;
1956              end;              end;
1957            end;            end;
1958  // 20150310: slut  
1959            ListBox2.items.delete(i);            ListBox2.items.delete(i);
1960          end;          end;
1961      end;      end;
# Line 1936  procedure TMainForm.InitBladhus(); Line 1985  procedure TMainForm.InitBladhus();
1985    
1986  begin  begin
1987    Altidprintepakkelabel1.Enabled := false;    Altidprintepakkelabel1.Enabled := false;
1988    Pakkernormal1.Visible := false;    menuNatXpress1.Visible := false;
1989    ReturpakkerfraDAO1.Visible := false;    menuNatxpressReturDAO1.Visible := false;
1990    Returpakkerfraboghandler1.Visible := false;    menuNatxpressReturfraKunde1.Visible := false;
1991    Sprgefterboghandlernummer1.Enabled := false;    Sprgefterboghandlernummer1.Enabled := false;
1992    ListBox1.Visible := true;    ListBox1.Visible := true;
1993  //  TestFunktionen := '1';  //  TestFunktionen := '1';
1994  // 20150317: start  
1995  (*    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  
1996    begin    begin
1997      IndlesScanningLogFil();      IndlesScanningLogFil();
1998    end;    end;
# Line 1995  begin Line 2004  begin
2004      01 :      01 :
2005            begin;      // NS            begin;      // NS
2006              Testprinter1.Visible := true;              Testprinter1.Visible := true;
2007              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
2008              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
2009              IdFTP1.Passive := true;              IdFTP1.Passive := true;
2010              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
2011              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';
# Line 2007  begin Line 2016  begin
2016      02 :      02 :
2017            begin;    // BK            begin;    // BK
2018              Testprinter1.Visible := true;              Testprinter1.Visible := true;
2019              Smpakker1.Enabled := true;              menuSmaaPakker.Enabled := true;
2020              Storepakker1.Enabled := true;              menuStorePakker.Enabled := true;
2021              radioStorPakke.Enabled := true;              radioStorPakke.Enabled := true;
2022              radioLillePakke.Enabled := true;              radioLillePakke.Enabled := true;
2023              DownloadButton01.Enabled := false;     // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;     // kontrolfil bruges ikke her
2024              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
2025              IdFTP1.Passive := true;              IdFTP1.Passive := true;
2026              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
2027              IndlesManglendeScanninger();              IndlesManglendeScanninger();
# Line 2022  begin Line 2031  begin
2031              Testprinter1.Visible := true;              Testprinter1.Visible := true;
2032             if (getProddag() = 'lørdag') then             if (getProddag() = 'lørdag') then
2033              begin              begin
2034                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
2035              end              end
2036              else              else
2037              begin              begin
2038                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
2039              end;              end;
2040              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
2041              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
2042              IdFTP1.Passive := true;              IdFTP1.Passive := true;
2043              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
2044              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';
# Line 2045  begin Line 2054  begin
2054            end;            end;
2055      04 :  begin;           // DBK      04 :  begin;           // DBK
2056              Testprinter1.Visible := true;              Testprinter1.Visible := true;
2057              Smpakker1.Enabled := true;              menuSmaaPakker.Enabled := true;
2058              Storepakker1.Enabled := true;              menuStorePakker.Enabled := true;
2059              radioStorPakke.Enabled := true;              radioStorPakke.Enabled := true;
2060              radioLillePakke.Enabled := true;              radioLillePakke.Enabled := true;
2061              DownloadButton01.Enabled := false;    // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;    // kontrolfil bruges ikke her
2062              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
2063              IdFTP1.Passive := true;              IdFTP1.Passive := true;
2064              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
2065            end;            end;
# Line 2079  begin Line 2088  begin
2088    end;    end;
2089    
2090    
2091    if Pakkernormal1.Checked then    if menuNatXpress1.Checked then
2092    begin    begin
2093       if (BoghandlerTjekkode = '') then       if (BoghandlerTjekkode = '') then
2094       begin       begin
# Line 2087  begin Line 2096  begin
2096       end;       end;
2097       URLStr := Format(UrlNormal,[Sted, PakkeNr, BoghandlerNummer, BoghandlerTjekkode]);       URLStr := Format(UrlNormal,[Sted, PakkeNr, BoghandlerNummer, BoghandlerTjekkode]);
2098    end    end
2099    else if ReturpakkerfraDAO1.Checked then    else if menuNatxpressReturDAO1.Checked then
2100    begin    begin
2101       URLStr := Format(UrlReturDAO,[Sted, PakkeNr, BoghandlerNummer, 'DAO', pakkestorrelse]);       URLStr := Format(UrlReturDAO,[Sted, PakkeNr, BoghandlerNummer, 'DAO', pakkestorrelse]);
2102    end    end
2103    else if Returpakkerfraboghandler1.Checked then    else if menuNatxpressReturfraKunde1.Checked then
2104    begin    begin
2105       URLStr := Format(UrlReturBoghandler,[Sted, PakkeNr, BoghandlerNummer, 'Boghandler', pakkestorrelse]);       URLStr := Format(UrlReturBoghandler,[Sted, PakkeNr, BoghandlerNummer, 'Boghandler', pakkestorrelse]);
2106    end    end
2107    else if Budlevering1.Checked then    else if menuDaoDirekte1.Checked then
2108    begin    begin
2109       URLStr := Format(UrlBudlevering,[Sted, PakkeNr, 'bud', pakkestorrelse]);       URLStr := Format(UrlBudlevering,[Sted, PakkeNr, 'bud', pakkestorrelse]);
2110    end    end
2111    else if Pakkeshoplevering1.Checked then    else if menuPakkeshop1.Checked then
2112    begin    begin
2113       URLStr := Format(UrlPakkeshoplevering,[Sted, PakkeNr, PakkeshopTjekkode]);       URLStr := Format(UrlPakkeshoplevering,[Sted, PakkeNr, PakkeshopTjekkode]);
2114    end    end
2115    else if Returpakkerfrapakkeshop1.Checked then    else if menuPakkeshopRetur1.Checked then
2116    begin    begin
2117       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);
2118    end    end
# Line 2115  begin Line 2124  begin
2124    begin    begin
2125      exit;      exit;
2126    end;    end;
2127    
2128      if chkForstorTilDirekte.Checked then  // Denne skal være efter if/else kæden da den overrider de øvrige URL'er
2129      begin
2130        URLStr := Format(URLOmdirigerTilPakkeshop,[Sted, PakkeNr]);
2131      end;
2132    
2133    try    try
2134      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
2135      WebSvar := IdHTTP1.Get(URLStr);      WebSvar := IdHTTP1.Get(URLStr);
# Line 2136  begin Line 2151  begin
2151          end;          end;
2152      end;      end;
2153    end;    end;
2154    
2155    XMLDocument1.LoadFromXML(WebSvar);    XMLDocument1.LoadFromXML(WebSvar);
2156    try    try
2157      if Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked then      if menuPakkeshop1.Checked or menuPakkeshopRetur1.Checked then
2158       begin       begin
2159        RuteNummer := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopTurid').Text;        RuteNummer := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopTurid').Text;
2160        Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;        Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
# Line 2146  begin Line 2162  begin
2162        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;
2163        PrintNyLabel := False;        PrintNyLabel := False;
2164    
2165        if Pakkeshoplevering1.Checked then        if menuPakkeshop1.Checked then
2166        begin        begin
2167          try          try
2168            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);
# Line 2159  begin Line 2175  begin
2175          end;          end;
2176        end;        end;
2177       end       end
2178      else if menuIndlevering.Checked then      else if menuIndlevering.Checked or chkForstorTilDirekte.Checked then
2179      begin      begin
2180    
2181    
# Line 2170  begin Line 2186  begin
2186       begin       begin
2187         PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label         PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2188         PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc         PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc
2189         RuteNummer := PakkeshopLabel.Koreliste;         RuteNummer := PakkeshopLabel.Koreliste + '  ->  ' +  PakkeshopLabel.PakkeshopTurid;
2190           Stregkode := PakkeshopLabel.Stregkode;
2191    
2192         PrintPakkeshopLabel( PakkeshopLabel );         LabelPrint.PrintPakkeshopLabel( PakkeshopLabel );
2193           chkForstorTilDirekte.Checked := false;
2194    
2195       end;       end;
2196    
# Line 2185  begin Line 2203  begin
2203        Kommentar := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Kommentar').Text;        Kommentar := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Kommentar').Text;
2204        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('BoghandlerNavn').Text;        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('BoghandlerNavn').Text;
2205        Leveringssted := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Leveringssted').Text;        Leveringssted := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('Leveringssted').Text;
2206        if Budlevering1.Checked then        if menuDaoDirekte1.Checked then
2207          begin          begin
2208          try          try
2209            SmsKode := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('SmsKode').Text;            SmsKode := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('SmsKode').Text;
# Line 2220  begin Line 2238  begin
2238            PrintNyLabel := False;            PrintNyLabel := False;
2239        end;        end;
2240      end      end
2241      else if (Budlevering1.Checked) and (Leveringssted <> Sted) then      else if (menuDaoDirekte1.Checked) and (Leveringssted <> Sted) then
2242      begin      begin
2243         if (Leveringssted = 'E') and (Sted = 'DBK') then         if (Leveringssted = 'E') and (Sted = 'DBK') then
2244         begin         begin
# Line 2249  begin Line 2267  begin
2267    //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
2268    BoghandlerNavnST.Caption := StringReplace(BoghandlerNavn, ' & ', ' && ', [rfReplaceAll, rfIgnoreCase]);    BoghandlerNavnST.Caption := StringReplace(BoghandlerNavn, ' & ', ' && ', [rfReplaceAll, rfIgnoreCase]);
2269    List1msg := TimeToStr(now) + '; ';    List1msg := TimeToStr(now) + '; ';
2270    if Pakkeshoplevering1.Checked then    if menuPakkeshop1.Checked then
2271      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';
2272    List1Pakkestorrelse := '';    List1Pakkestorrelse := '';
2273    if radioStorPakke.Checked then    if radioStorPakke.Checked then
# Line 2261  begin Line 2279  begin
2279      List1Pakkestorrelse := 'Lille pakke';      List1Pakkestorrelse := 'Lille pakke';
2280    end;    end;
2281    List1msg := List1msg + BoghandlerNavn + '; ';    List1msg := List1msg + BoghandlerNavn + '; ';
2282    if ReturpakkerfraDAO1.Checked then    if menuNatxpressReturDAO1.Checked then
2283    begin    begin
2284      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-8);      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-8);
2285    end;    end;
2286    if Returpakkerfraboghandler1.Checked then    if menuNatxpressReturfraKunde1.Checked then
2287    begin    begin
2288      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-16);      List1msg := List1msg + RightStr(Kommentar, Length(Kommentar)-16);
2289    end;    end;
2290    if ReturpakkerfraDAO1.Checked or Returpakkerfraboghandler1.Checked then    if menuNatxpressReturDAO1.Checked or menuNatxpressReturfraKunde1.Checked then
2291       List1msg := List1msg + '; ' + List1Pakkestorrelse;       List1msg := List1msg + '; ' + List1Pakkestorrelse;
2292    if length(BoghNr) > 0 then    if length(BoghNr) > 0 then
2293    begin    begin
2294      List1Msg := List1Msg + '; Indtastet ' + BoghNr;      List1Msg := List1Msg + '; Indtastet ' + BoghNr;
2295    end;    end;
2296    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2297    begin    begin
2298       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;
2299        if (radioStorPakke.Checked) then        if (radioStorPakke.Checked) then
# Line 2287  begin Line 2305  begin
2305          List1msg := List1msg + '; Lille pakke';          List1msg := List1msg + '; Lille pakke';
2306        end;        end;
2307    end;    end;
2308    if Returpakkerfrapakkeshop1.Checked then    if menuPakkeshopRetur1.Checked then
2309    begin    begin
2310      List1msg := List1msg + Stregkode + ' ' + RightStr(Kommentar, Length(Kommentar)-6);      List1msg := List1msg + Stregkode + ' ' + RightStr(Kommentar, Length(Kommentar)-6);
2311    end;    end;
2312    if Pakkernormal1.Checked then    if menuNatXpress1.Checked then
2313    begin    begin
2314      if (Kommentar = '***** Kommentar *****')                       // fra test printer funktionen      if (Kommentar = '***** Kommentar *****')                       // fra test printer funktionen
2315      or (BoghandlerNavn = 'Forbindelse ok')                         // fra test forbindelse funktionen      or (BoghandlerNavn = 'Forbindelse ok')                         // fra test forbindelse funktionen
# Line 2304  begin Line 2322  begin
2322        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;
2323      end;      end;
2324    end;    end;
2325      if menuIndlevering.Checked then
2326      begin
2327        List1Msg := Stregkode;
2328      end;
2329    
2330    
2331    ListBox1.Items.Insert(0,List1Msg);    ListBox1.Items.Insert(0,List1Msg);
2332    logTekst := RightStr(List1Msg, Length(List1Msg)-10);    logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2333    SkrivScanningLogFil(logTekst);    SkrivScanningLogFil(logTekst);
2334  end;  end;
2335    
2336  procedure TMainForm.UploadButton01Click(Sender: TObject);  procedure TMainForm.BtnUploadLogfilClick(Sender: TObject);
2337  begin  begin
2338    UploadLogfilTilDAO();    UploadLogfilTilDAO();
2339    UploadInifilTilDAO();    UploadInifilTilDAO();
# Line 2325  pakkeForkertSted : Integer; Line 2349  pakkeForkertSted : Integer;
2349    kontrolKoreliste : string;    kontrolKoreliste : string;
2350    nytRuteNummer, nyFarve : String;    nytRuteNummer, nyFarve : String;
2351  begin  begin
2352    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2353       RuteNummerST.Color := TUtils.HexToTColor(Farve);       RuteNummerST.Color := TUtils.HexToTColor(Farve);
2354    
2355    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
# Line 2363  begin Line 2387  begin
2387        end;        end;
2388    end    end
2389    else    else
2390    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2391    begin    begin
2392       if (BoghandlerNavn = 'Ukendt pakke') then       if (BoghandlerNavn = 'Ukendt pakke') then
2393       begin       begin
# Line 2432  begin Line 2456  begin
2456    
2457    end;    end;
2458    
2459    if Budlevering1.Checked then    if menuDaoDirekte1.Checked then
2460    begin    begin
2461      case BladhusSted of      case BladhusSted of
2462        00 :  begin;        00 :  begin;
# Line 2444  begin Line 2468  begin
2468               if PrintNyLabel or (RuteNummer = 'Rutenr') then               if PrintNyLabel or (RuteNummer = 'Rutenr') then
2469  // 20150304: slut  // 20150304: slut
2470                begin                begin
2471                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2472                end;                end;
2473              end;              end;
2474        01 :  begin;        01 :  begin;
# Line 2452  begin Line 2476  begin
2476                    // 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
2477                    // 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')
2478                begin                begin
2479                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2480                end;                end;
2481              end;              end;
2482        02 :  begin;        02 :  begin;
2483                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
2484                begin                begin
2485                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2486                end;                end;
2487              end;              end;
2488        03 :  begin;        03 :  begin;
# Line 2466  begin Line 2490  begin
2490                    // 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
2491                    // 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')
2492               begin               begin
2493                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2494               end;               end;
2495              end;              end;
2496        04 :  begin;        04 :  begin;
2497                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
2498                begin                begin
2499                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2500                end;                end;
2501              end;              end;
2502        else        else
# Line 2481  begin Line 2505  begin
2505    end;    end;
2506    
2507  // 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
2508    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
2509    begin    begin
2510      exit;      exit;
2511    end;    end;
2512    
2513    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
2514    begin    begin
2515    end    end
2516    else    else
# Line 2508  begin Line 2532  begin
2532        end;        end;
2533        logTekst := logTekst + ' for '+BoghandlerNavn;        logTekst := logTekst + ' for '+BoghandlerNavn;
2534        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
2535        with Printer do  
2536        begin        LabelPrint.PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn) ;
2537          BeginDoc;        
         Canvas.Font.Size := FontSizeRute;  
         if (Length(RuteNummer) > 7) then  
         begin  
           Canvas.Font.Size := FontSizeRuteLille;  
         end;  
         Canvas.TextOut(XPosRute,YPosRute, RuteNummer);  
         Canvas.Font.Size := FontSizeKommentar;  
         Kommentar := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);  
         if (Kommentar = 'Ok') or (Kommentar = 'ALLEREDE SCANNET') then  
         begin  
           Kommentar := '';  
         end;  
         if (BoghandlerNavn = 'PAKKE ER SCANNET') then  
         begin  
           BoghandlerNavn := '';  
         end;  
         Canvas.TextOut(XPosKommentar,YPosKommentar, Kommentar);  // Kan ikke lave linieskift (se tidligere kommentar om samme)  
         Canvas.Font.Size := FontSizeBoghandler;  
         Canvas.TextOut(XPosBoghandler,YPosBoghandler, BoghandlerNavn);  
         EndDoc;  
       end;  
2538      end;      end;
2539    end;    end;
2540    
2541  end;  end;
2542    
 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;  
2543    
2544    
2545  procedure TMainForm.radioStorPakkeClick(Sender: TObject);  procedure TMainForm.radioStorPakkeClick(Sender: TObject);
2546  begin  begin
2547      Storepakker1.Checked := true;      menuStorePakker.Checked := true;
2548      radioStorPakke.Checked := true;      radioStorPakke.Checked := true;
2549  end;  end;
2550    
2551  procedure TMainForm.radioLillePakkeClick(Sender: TObject);  procedure TMainForm.radioLillePakkeClick(Sender: TObject);
2552  begin  begin
2553      Smpakker1.Checked := true;      menuSmaaPakker.Checked := true;
2554      radioLillePakke.Checked := true;      radioLillePakke.Checked := true;
2555  end;  end;
2556    
# Line 2629  begin Line 2593  begin
2593    end;    end;
2594  end;  end;
2595    
2596  procedure TMainForm.Pakkeshoplevering1Click(Sender: TObject);  procedure TMainForm.menuPakkeshop1Click(Sender: TObject);
2597  begin  begin
2598        Scanningtype := '5';        Scanningtype := '5';
2599        InitPakkeshoplevering();        InitPakkeshoplevering();
# Line 2638  end; Line 2602  end;
2602    
2603  procedure TMainForm.NulstilAutomatiskValg();  procedure TMainForm.NulstilAutomatiskValg();
2604  begin  begin
2605      Automatiskvalg1.Checked := false;      menuAutomatiskvalg1.Checked := false;
2606      PanelValgA.Color := clBtnFace;      PanelValgA.Color := clBtnFace;
2607      PanelValgA.Font.Color := clWindowText;      PanelValgA.Font.Color := clWindowText;
2608    
# Line 2650  begin Line 2614  begin
2614        // 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)
2615        PanelValgA.Enabled := false;        PanelValgA.Enabled := false;
2616        PanelValgA.Font.Color := clInactiveCaption;        PanelValgA.Font.Color := clInactiveCaption;
2617        Automatiskvalg1.Enabled := false;        menuAutomatiskvalg1.Enabled := false;
2618      end;      end;
2619  // 20150317: slut  // 20150317: slut
2620  end;  end;
# Line 2665  begin Line 2629  begin
2629    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke
2630    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...');
2631    
2632          // Tjekker urls    try
2633          logTekst := 'Tjekker urls.';      // Tjekker urls
2634          ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);      logTekst := 'Tjekker urls.';
2635          SkrivScanningLogFil(logTekst);      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2636        SkrivScanningLogFil(logTekst);
2637    
         // 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;  
2638    
         // 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;  
2639    
2640          // Tjekker UrlReturBoghandler      // Tjekker UrlNormal
2641          if PanelValg3.Enabled = true then      if PanelValg1.Enabled = true then
2642          begin      begin
2643            if CheckUrl(UrlReturBoghandler) then        TjekkerEnkeltUrl('UrlNormal', UrlNormal, urlFejl);
2644            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;  
2645    
2646          // Tjekker UrlBudlevering      // Tjekker UrlReturDAO
2647          if PanelValg4.Enabled = true then      if PanelValg2.Enabled = true then
2648          begin      begin
2649            if CheckUrl(UrlBudlevering) then        TjekkerEnkeltUrl('UrlReturDAO', UrlReturDAO, urlFejl);
2650            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;  
2651    
2652          // Tjekker UrlPakkeshoplevering      // Tjekker UrlReturBoghandler
2653          if PanelValg5.Enabled = true then      if PanelValg3.Enabled = true then
2654          begin      begin
2655            if CheckUrl(UrlPakkeshoplevering) then        TjekkerEnkeltUrl('UrlReturBoghandler', UrlReturBoghandler, urlFejl);
2656            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;  
2657    
2658          // Tjekker UrlReturPakkeshop      // Tjekker UrlBudlevering
2659          if PanelValg6.Enabled = true then      if PanelValg4.Enabled = true then
2660          begin      begin
2661            if CheckUrl(UrlReturPakkeshop) then        TjekkerEnkeltUrl('UrlBudlevering', UrlBudlevering, urlFejl);
2662            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;  
2663    
2664          // Tjekker UrlManglendeScanninger      // Tjekker UrlPakkeshoplevering
2665          if (PanelValg1.Enabled = true)      if PanelValg5.Enabled = true then
2666          or (PanelValg4.Enabled = true) then      begin
2667          begin        TjekkerEnkeltUrl('UrlPakkeshoplevering', UrlPakkeshoplevering, urlFejl);
2668            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;  
2669    
2670          // Tjekker UrlPakkeshopManglendeScanninger      // Tjekker UrlReturPakkeshop
2671          if PanelValg5.Enabled = true then      if PanelValg6.Enabled = true then
2672          begin      begin
2673            if CheckUrl(UrlPakkeshopManglendeScanninger) then        TjekkerEnkeltUrl('UrlReturPakkeshop', UrlReturPakkeshop, urlFejl);
2674            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;  
2675    
2676          // Tjekker UrlPakkeshopManglendeReturScanninger      // Tjekker UrlManglendeScanninger
2677          if PanelValg6.Enabled = true then      if (PanelValg1.Enabled = true) or (PanelValg4.Enabled = true) then
2678          begin      begin
2679            if CheckUrl(UrlPakkeshopManglendeReturScanninger) then        TjekkerEnkeltUrl('UrlManglendeScanninger', UrlManglendeScanninger, urlFejl);
2680            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;  
2681    
2682          // Tjekker UrlEKLoverforsel      // Tjekker UrlPakkeshopManglendeScanninger
2683          if PanelValg1.Enabled = true then      if PanelValg5.Enabled = true then
2684          begin      begin
2685            if CheckUrl(UrlEKLoverforsel) then        TjekkerEnkeltUrl('UrlPakkeshopManglendeScanninger', UrlPakkeshopManglendeScanninger, urlFejl);
2686            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;  
2687    
2688        // Tjekker UrlPakkeshopManglendeReturScanninger
2689        if PanelValg6.Enabled = true then
2690        begin
2691          TjekkerEnkeltUrl('UrlPakkeshopManglendeReturScanninger', UrlPakkeshopManglendeReturScanninger, urlFejl);
2692        end;
2693    
2694          // Tjekker UrlEKLoverforselPakkeshop     // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
2695          if PanelValg5.Enabled = true then      if PanelValg7.Enabled = true then
2696          begin      begin
2697            if CheckUrl(UrlEKLoverforselPakkeshop) then        TjekkerEnkeltUrl('UrlIndleveringsPakke', UrlIndleveringsPakke, urlFejl);
2698            begin        TjekkerEnkeltUrl('UrlIndleveringsPakkeManglendeScanninger', UrlIndleveringsPakkeManglendeScanninger, urlFejl);
2699              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;  
2700    
2701        // Tjekker UrlEKLoverforsel
2702        if PanelValg1.Enabled = true then
2703        begin
2704          TjekkerEnkeltUrl('UrlEKLoverforsel', UrlEKLoverforsel, urlFejl);
2705        end;
2706    
         // 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;  
2707    
2708          // Tjekker UrlSendPrograminfo      // Tjekker UrlEKLoverforselPakkeshop
2709          if CheckUrl(UrlSendPrograminfo) then      if PanelValg5.Enabled = true then
2710          begin      begin
2711            logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;        TjekkerEnkeltUrl('UrlEKLoverforselPakkeshop', UrlEKLoverforselPakkeshop, urlFejl);
2712            SkrivScanningLogFil(logTekst);      end;
         end  
         else  
         begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlSendPrograminfo svarer ikke: ' + UrlSendPrograminfo;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
         end;  
2713    
         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;  
2714    
2715        // Tjekker UrlFindPakketype
2716        TjekkerEnkeltUrl('UrlFindPakketype', UrlFindPakketype, urlFejl);
2717    
2718        // Tjekker UrlSendPrograminfo
2719        TjekkerEnkeltUrl('UrlSendPrograminfo', UrlSendPrograminfo, urlFejl);
2720    
2721    
2722    
2723        logTekst := 'urls er ok';
2724        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2725        SkrivScanningLogFil(logTekst);
2726    
2727      Except
2728        TjekUrls := '-';   // markerer at der var fejl
2729    
2730      end;
2731  end;  end;
2732    
2733  function TMainForm.FileTime2DateTime(FileTime: TFileTime): TDateTime;  procedure TMainForm.TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
2734  var  const
2735     LocalFileTime: TFileTime;    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
    SystemTime: TSystemTime;  
2736  begin  begin
2737     FileTimeToLocalFileTime(FileTime, LocalFileTime) ;    if TUtils.CheckUrl(Url) then
2738     FileTimeToSystemTime(LocalFileTime, SystemTime) ;  
2739     Result := SystemTimeToDateTime(SystemTime) ;    begin
2740        logTekst := UrlNavn + ' accepteret: ' + Url;
2741        SkrivScanningLogFil(logTekst);
2742      end
2743      else
2744      begin
2745        inc(urlFejl);   // Optæller antal fejl
2746        logTekst := UrlNavn + ' svarer ikke: ' + Url;
2747        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2748        if TjekUrls = '1' then
2749        begin
2750          logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2751        end;
2752    
2753        SkrivScanningLogFil(logTekst);
2754    
2755        if TjekUrls = '1' then
2756        begin
2757          ShowMessage(logTekst);
2758          UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2759          Application.Terminate;
2760    
2761          raise Exception.Create('UrlFejl');
2762    
2763        end;
2764      end;
2765    
2766  end;  end;
2767    
2768    
2769    
2770  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);
2771  var  var
2772    SR: TSearchRec;    SR: TSearchRec;
# Line 3074  begin Line 2786  begin
2786    
2787          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring
2788          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse
2789          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse          dtCreation := TUtils.FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse
2790          // Selvom creation date godt kan være forskellig fra modified date,          // Selvom creation date godt kan være forskellig fra modified date,
2791          // skal vi alligevel altid tjekke filens alder ud fra modified date          // skal vi alligevel altid tjekke filens alder ud fra modified date
2792          // (æ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 3134  begin Line 2846  begin
2846    if Farve <> '' then    if Farve <> '' then
2847    begin    begin
2848       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  
2849    end;    end;
2850    if (Budlevering1.Checked) then    if (menuDaoDirekte1.Checked) then
2851    begin    begin
2852       InitLillePakke();       InitLillePakke();
2853    end;    end;
# Line 3207  end; Line 2909  end;
2909    
2910  procedure TMainForm.PanelValgAClick(Sender: TObject);  procedure TMainForm.PanelValgAClick(Sender: TObject);
2911  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;  
 *)  
2912  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
2913  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
2914       AutomatiskValg1.Checked := true;    menuAutomatiskvalg1.Checked := true;
2915       PanelValgA.Color := clGreen;    PanelValgA.Color := clGreen;
2916       PanelValgA.Font.Color := clWhite;    PanelValgA.Font.Color := clWhite;
2917  // 20150311: slut  
2918    
2919    
2920  end;  end;
2921    
2922  procedure TMainForm.Pakkernormal1Click(Sender: TObject);  procedure TMainForm.menuNatXpress1Click(Sender: TObject);
2923  begin  begin
2924        Scanningtype := '1';        Scanningtype := '1';
2925        NulstilAutomatiskValg();        NulstilAutomatiskValg();
# Line 3300  begin Line 2989  begin
2989    Falsk := False;    Falsk := False;
2990    
2991    
2992    if (Printer.Printers.Count = 0) then    if (LabelPrint.GetPrinterCount() = 0) then
2993    begin    begin
2994      ShowMessage('Der er ikke installeret en printer på denne PC.');      ShowMessage('Der er ikke installeret en printer på denne PC.');
2995    end    end
# Line 3315  begin Line 3004  begin
3004      DBKbane := '999';      DBKbane := '999';
3005      Leveringssted := 'XXX';      Leveringssted := 'XXX';
3006      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);
3007      CheckPrintQue('Test');      LabelPrint.CheckPrintQue('Test', PrinterNavn);
3008    end;    end;
3009    FocusControl(StregkodeST);    FocusControl(StregkodeST);
3010  end;  end;
# Line 3324  procedure TMainForm.Timer1Timer(Sender: Line 3013  procedure TMainForm.Timer1Timer(Sender:
3013  begin  begin
3014    if (TjekPrinter = '1') then    if (TjekPrinter = '1') then
3015    begin    begin
3016      CheckPrintQue('Timer');      LabelPrint.CheckPrintQue('Timer', PrinterNavn);
3017    end    end
3018    else    else
3019    begin    begin
# Line 3342  var Line 3031  var
3031   tekst, filversion : String;   tekst, filversion : String;
3032  begin  begin
3033    
3034    filversion := Sto_GetFmtFileVersion('');    filversion := TUtils.Sto_GetFmtFileVersion('');
3035    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';
3036    
3037    tekst := tekst+crlf+crlf;    tekst := tekst+crlf+crlf;
# Line 3385  begin Line 3074  begin
3074    
3075  end;  end;
3076    
3077    
3078  procedure TMainForm.ListBox1DrawItem(Control: TWinControl; Index: Integer;  procedure TMainForm.ListBox1DrawItem(Control: TWinControl; Index: Integer;
3079    Rect: TRect; State: TOwnerDrawState);    Rect: TRect; State: TOwnerDrawState);
3080  var  var
# Line 3437  begin Line 3127  begin
3127    
3128    if FileExists(fileName) then    if FileExists(fileName) then
3129    begin    begin
3130      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3131      begin      begin
3132        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3133        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
# Line 3461  begin Line 3151  begin
3151    
3152    if FileExists(fileName) then    if FileExists(fileName) then
3153    begin    begin
3154      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3155      begin      begin
3156        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3157        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
3158      end      end
3159      else      else
3160      begin      begin
3161        ShowMessage('Acrobat Reader er ikke installeret!');        ShowMessage('Adobe Reader er ikke installeret!');
3162      end;      end;
3163    end    end
3164    else    else
# Line 3499  begin Line 3189  begin
3189    
3190  end;  end;
3191    
3192  procedure TMainForm.ReturpakkerfraDAO1Click(Sender: TObject);  procedure TMainForm.menuNatxpressReturDAO1Click(Sender: TObject);
3193  begin  begin
3194        Scanningtype := '2';        Scanningtype := '2';
3195        NulstilAutomatiskValg();        NulstilAutomatiskValg();
3196        InitReturFraDao();        InitReturFraDao();
3197  end;  end;
3198    
3199  procedure TMainForm.Returpakkerfrapakkeshop1Click(Sender: TObject);  procedure TMainForm.menuPakkeshopRetur1Click(Sender: TObject);
3200  begin  begin
3201        Scanningtype := '6';        Scanningtype := '6';
3202        InitReturFraPakkeshop();        InitReturFraPakkeshop();
# Line 3515  end; Line 3205  end;
3205    
3206  procedure TMainForm.InitNatxpresslevering();  procedure TMainForm.InitNatxpresslevering();
3207  begin  begin
3208        AutomatiskTjekkodeStyring1.Enabled := true;        menuAutomatiskTjekkodeStyring.Enabled := true;
3209        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3210        Pakkernormal1.Checked := true;        menuNatXpress1.Checked := true;
3211        InitForm(FarveNormal,TitelNormal,UrlNormal);        InitForm(FarveNormal,TitelNormal,UrlNormal);
3212        PanelValg1.Color := clGreen;        PanelValg1.Color := clGreen;
3213        PanelValg1.Font.Color := clWhite;        PanelValg1.Font.Color := clWhite;
# Line 3529  begin Line 3219  begin
3219        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3220        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3221        Sprgefterboghandlernummer1.Enabled := true;        Sprgefterboghandlernummer1.Enabled := true;
3222        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3223        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3224        radioStorPakke.Enabled := false;        radioStorPakke.Enabled := false;
3225        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3226        ListBox1.Visible := true;        ListBox1.Visible := true;
3227        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3228        EKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3229        InitLillePakke();        InitLillePakke();
3230        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3231    
3232          chkForstorTilDirekte.Checked := false;
3233          chkForstorTilDirekte.Enabled := false;
3234    
3235        if BladhusSted = 0 then        if BladhusSted = 0 then
3236        begin        begin
3237          IndlesScanningLogFil();          IndlesScanningLogFil();
# Line 3547  end; Line 3241  end;
3241    
3242  procedure TMainForm.InitReturFraDao();  procedure TMainForm.InitReturFraDao();
3243  begin  begin
3244        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3245        ReturpakkerfraDAO1.Checked := true;        menuNatxpressReturDAO1.Checked := true;
3246        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3247        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);
3248        PanelValg2.Color := clGreen;        PanelValg2.Color := clGreen;
# Line 3561  begin Line 3255  begin
3255        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3256        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3257        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3258        Smpakker1.Enabled := true;        menuSmaaPakker.Enabled := true;
3259        Storepakker1.Enabled := true;        menuStorePakker.Enabled := true;
3260        radioStorPakke.Enabled := true;        radioStorPakke.Enabled := true;
3261        radioLillePakke.Enabled := true;        radioLillePakke.Enabled := true;
3262        ListBox1.Visible := true;        ListBox1.Visible := true;
3263        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3264        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3265        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3266    
3267          chkForstorTilDirekte.Checked := false;
3268          chkForstorTilDirekte.Enabled := false;
3269    
3270        InitLillePakke();        InitLillePakke();
3271  end;  end;
3272    
3273  procedure TMainForm.InitReturFraKunde();  procedure TMainForm.InitReturFraKunde();
3274  begin  begin
3275        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3276        Returpakkerfraboghandler1.Checked := true;        menuNatxpressReturfraKunde1.Checked := true;
3277        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3278        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);
3279        PanelValg3.Color := clGreen;        PanelValg3.Color := clGreen;
# Line 3587  begin Line 3285  begin
3285        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3286        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3287        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3288        Smpakker1.Enabled := true;        menuSmaaPakker.Enabled := true;
3289        Storepakker1.Enabled := true;        menuStorePakker.Enabled := true;
3290        radioStorPakke.Enabled := true;        radioStorPakke.Enabled := true;
3291        radioLillePakke.Enabled := true;        radioLillePakke.Enabled := true;
3292        ListBox1.Visible := true;        ListBox1.Visible := true;
3293        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3294        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3295        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3296    
3297          chkForstorTilDirekte.Checked := false;
3298          chkForstorTilDirekte.Enabled := false;
3299    
3300        InitLillePakke();        InitLillePakke();
3301  end;  end;
3302    
3303  procedure TMainForm.InitDirektelevering();  procedure TMainForm.InitDirektelevering();
3304  begin  begin
3305        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3306        Budlevering1.Checked := true;        menuDaoDirekte1.Checked := true;
3307        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3308        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);
3309        PanelValg4.Color := clGreen;        PanelValg4.Color := clGreen;
# Line 3614  begin Line 3316  begin
3316        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3317        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3318        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3319        Smpakker1.Enabled := true;        menuSmaaPakker.Enabled := true;
3320        Storepakker1.Enabled := true;        menuStorePakker.Enabled := true;
3321        radioStorPakke.Enabled := true;        radioStorPakke.Enabled := true;
3322        radioLillePakke.Enabled := true;        radioLillePakke.Enabled := true;
3323        ListBox1.Visible := true;        ListBox1.Visible := true;
3324        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3325        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3326        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3327        DownloadButton03.Visible := false;        BtnDownloadRuteskiftFil.Visible := false;
3328        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3329        IdFTP1.Passive := true;        IdFTP1.Passive := true;
3330        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3331    
3332          chkForstorTilDirekte.Checked := false;
3333          chkForstorTilDirekte.Enabled := true;
3334    
3335        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then
3336        begin        begin
3337            IndlesScanningLogFil();            IndlesScanningLogFil();
# Line 3636  end; Line 3342  end;
3342    
3343  procedure TMainForm.InitPakkeshoplevering();  procedure TMainForm.InitPakkeshoplevering();
3344  begin  begin
3345        AutomatiskTjekkodeStyring1.Enabled := true;        menuAutomatiskTjekkodeStyring.Enabled := true;
3346        Pakkeshoplevering1.Checked := true;        menuPakkeshop1.Checked := true;
3347        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3348        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);
3349        PanelValg5.Color := clGreen;        PanelValg5.Color := clGreen;
# Line 3650  begin Line 3356  begin
3356        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3357        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3358        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3359        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3360        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3361        radioStorPakke.Enabled := false;        radioStorPakke.Enabled := false;
3362        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3363        ListBox1.Visible := true;        ListBox1.Visible := true;
3364        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3365        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3366        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3367    
3368        EKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3369    
3370          chkForstorTilDirekte.Checked := false;
3371          chkForstorTilDirekte.Enabled := true;
3372    
3373        InitLillePakke();        InitLillePakke();
3374        IndlesScanningLogFil();        IndlesScanningLogFil();
# Line 3673  end; Line 3382  end;
3382    
3383  procedure TMainForm.InitReturFraPakkeshop();  procedure TMainForm.InitReturFraPakkeshop();
3384  begin  begin
3385        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3386        Returpakkerfrapakkeshop1.Checked := true;        menuPakkeshopRetur1.Checked := true;
3387        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3388        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);
3389        PanelValg6.Color := clGreen;        PanelValg6.Color := clGreen;
# Line 3687  begin Line 3396  begin
3396        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3397        chkSporgEfterKunde.Checked := false;        chkSporgEfterKunde.Checked := false;
3398        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3399        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3400        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3401        radioStorPakke.Enabled := false;        radioStorPakke.Enabled := false;
3402        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3403        ListBox1.Visible := true;        ListBox1.Visible := true;
3404        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3405        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3406        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3407        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3408    
3409          chkForstorTilDirekte.Checked := false;
3410          chkForstorTilDirekte.Enabled := false;
3411    
3412    
3413        InitLillePakke();        InitLillePakke();
3414        IndlesScanningLogFil();        IndlesScanningLogFil();
3415        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3706  begin Line 3420  begin
3420        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3421  end;  end;
3422    
3423  procedure TMainForm.Returpakkerfraboghandler1Click(Sender: TObject);  procedure TMainForm.menuNatxpressReturfraKunde1Click(Sender: TObject);
3424  begin  begin
3425        Scanningtype := '3';        Scanningtype := '3';
3426        NulstilAutomatiskValg();        NulstilAutomatiskValg();
# Line 3716  end; Line 3430  end;
3430  procedure TMainForm.InitIndleveringskode();  procedure TMainForm.InitIndleveringskode();
3431  begin  begin
3432        menuIndlevering.Checked := true;        menuIndlevering.Checked := true;
3433        AutomatiskTjekkodeStyring1.Enabled := false;        menuAutomatiskTjekkodeStyring.Enabled := false;
3434    
3435        btnNulstil.Visible := false;        btnNulstil.Visible := false;
3436        InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);        InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);
# Line 3733  begin Line 3447  begin
3447    
3448    
3449    
3450        Smpakker1.Enabled := false;        menuSmaaPakker.Enabled := false;
3451        Storepakker1.Enabled := false;        menuStorePakker.Enabled := false;
3452        radioStorPakke.Enabled := false;        radioStorPakke.Enabled := false;
3453        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3454        ListBox1.Visible := true;        ListBox1.Visible := true;
3455        ListBox1.Items.Clear();        ListBox1.Items.Clear();
3456    
3457        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3458        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3459        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3460    
3461          chkForstorTilDirekte.Checked := false;
3462          chkForstorTilDirekte.Enabled := false;
3463    
3464    
3465        InitLillePakke();        InitLillePakke();
3466        IndlesScanningLogFil();        IndlesScanningLogFil();
3467        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3754  begin Line 3473  begin
3473  end;  end;
3474    
3475    
3476  procedure TMainForm.Storepakker1Click(Sender: TObject);  procedure TMainForm.menuStorePakkerClick(Sender: TObject);
3477  begin  begin
3478    InitStorPakke();    InitStorPakke();
3479  end;  end;
3480    
3481  procedure TMainForm.Smpakker1Click(Sender: TObject);  procedure TMainForm.menuSmaaPakkerClick(Sender: TObject);
3482  begin  begin
3483    InitLillePakke();    InitLillePakke();
3484  end;  end;
# Line 3767  end; Line 3486  end;
3486  procedure TMainForm.InitLillePakke();  procedure TMainForm.InitLillePakke();
3487  begin  begin
3488    radioLillePakke.Checked := true;    radioLillePakke.Checked := true;
3489    Smpakker1.Checked := true;    menuSmaaPakker.Checked := true;
3490  //  Stregkode := '';  //  Stregkode := '';
3491  end;  end;
3492    
3493  procedure TMainForm.InitStorPakke();  procedure TMainForm.InitStorPakke();
3494  begin  begin
3495    radioStorPakke.Checked := true;    radioStorPakke.Checked := true;
3496    Storepakker1.Checked := true;    menuStorePakker.Checked := true;
3497  // 20150310: start  // 20150310: start
3498  //  Stregkode := '';  //  Stregkode := '';
3499  // 20150310: slut  // 20150310: slut
3500  end;  end;
3501    
 /// <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;  
3502    
     // format result string  
     Result := Format('%d.%d.%d.%d', [iVer[1], iVer[2], iVer[3], iVer[4]]);  
   
   end;  
 end;  
3503    
3504  procedure TMainForm.PlaySound(filename : PWideChar);  procedure TMainForm.PlaySound(filename : PWideChar);
3505  begin  begin
# Line 3871  begin Line 3537  begin
3537       exit;       exit;
3538    end;    end;
3539    
3540    if Smpakker1.Checked then    if menuSmaaPakker.Checked then
3541       if ScannetOkLyd  <> '' then       if ScannetOkLyd  <> '' then
3542       begin       begin
3543         PlaySound(PWideChar(ScannetOkLyd));         PlaySound(PWideChar(ScannetOkLyd));
# Line 3880  begin Line 3546  begin
3546       begin       begin
3547         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);
3548       end;       end;
3549    if Storepakker1.Checked then    if menuStorePakker.Checked then
3550       if ScannetOkStorLyd  <> '' then       if ScannetOkStorLyd  <> '' then
3551       begin       begin
3552         PlaySound(PWideChar(ScannetOkStorLyd));         PlaySound(PWideChar(ScannetOkStorLyd));
# Line 3892  begin Line 3558  begin
3558  end;  end;
3559    
3560    
3561  procedure TMainForm.Budlevering1Click(Sender: TObject);  procedure TMainForm.menuDaoDirekte1Click(Sender: TObject);
3562  begin  begin
3563        Scanningtype := '4';        Scanningtype := '4';
3564        NulstilAutomatiskValg();        NulstilAutomatiskValg();
# Line 3904  begin; Line 3570  begin;
3570    CheckCode();    CheckCode();
3571  end;  end;
3572    
3573  procedure TMainForm.EKLoverforselClick(Sender: TObject);  procedure TMainForm.BtnEKLoverforselClick(Sender: TObject);
3574  var  var
3575    WebSvar : String;    WebSvar : String;
3576    URLStr : String;    URLStr : String;
# Line 3914  var Line 3580  var
3580    status, kommentar : String;    status, kommentar : String;
3581    
3582  begin  begin
3583      EKLoverforsel.Enabled := false;      BtnEKLoverforsel.Enabled := false;
3584    
3585      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');
3586      logTekst := 'Overfører de scannede pakker til EKL';      logTekst := 'Overfører de scannede pakker til EKL';
3587      SkrivScanningLogFil(logTekst);      SkrivScanningLogFil(logTekst);
3588      StedKode := Sted;      StedKode := Sted;
3589      URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);      URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);
3590  // 20150330: start  
3591      if PanelValg5.Color = clGreen then      if PanelValg5.Color = clGreen then
3592      begin      begin
3593        URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);        URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);
3594      end;      end;
3595  // 20150330: slut  
3596    
3597      try      try
3598      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
# Line 3977  begin Line 3643  begin
3643        end;        end;
3644      end;      end;
3645    
3646      EKLoverforsel.Enabled := true;      BtnEKLoverforsel.Enabled := true;
3647    
3648      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
3649    
# Line 4503  begin Line 4169  begin
4169    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
4170  end;  end;
4171    
4172  procedure TMainForm.DownloadButton01Click(Sender: TObject);  procedure TMainForm.BtnDownloadKontrolfilClick(Sender: TObject);
4173  begin  begin
4174      DownloadBladhusKontrolfil();      DownloadBladhusKontrolfil();
4175      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
4176  end;  end;
4177    
4178  procedure TMainForm.OpdaterListenButton01Click(Sender: TObject);  procedure TMainForm.BtnOpdaterListenClick(Sender: TObject);
4179  const  const
4180    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
4181    
# Line 4518  begin Line 4184  begin
4184      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
4185  end;  end;
4186    
4187  procedure TMainForm.DownloadButton03Click(Sender: TObject);  procedure TMainForm.BtnDownloadRuteskiftFilClick(Sender: TObject);
4188  begin  begin
4189      if (getProddag() = 'lørdag') then      if (getProddag() = 'lørdag') then
4190      begin      begin
# Line 4528  begin Line 4194  begin
4194  end;  end;
4195    
4196    
 // ToDo: PrintPakkeshopLabel()  
 procedure TMainForm.PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);  
 var  
   XForm, XFormOld: TXForm; //Bruges til rotate X-formation  
   Angle: integer;  
   gMode: integer;  
   BarcodeArea: TRect;  
   Dirigering: string;  
   
 begin  
     with Printer do  
     begin  
       BeginDoc();  
   
   
       Canvas.Font.Size := 16;  
       Canvas.TextOut(15,10, 'Code: ' + PakkeshopLabel.Tjekkode + '     '  + PakkeshopLabel.Overskrift);  
   
   
   
       Canvas.TextOut(25, 90, PakkeshopLabel.Navn );  
       Canvas.TextOut(25, 135, PakkeshopLabel.Vejnavn );  
       Canvas.TextOut(25, 180, PakkeshopLabel.Postnr );  
   
   
       Canvas.Font.Size := 9;  
       Canvas.TextOut(110, 240, 'Pakkeshop:');  
       Canvas.TextOut(110, 270, PakkeshopLabel.PakkeshopNavn);  
       Canvas.TextOut(110, 300, PakkeshopLabel.PakkeshopAddr);  
       Canvas.TextOut(110, 330, PakkeshopLabel.PakkeshopPostnr);  
   
       Canvas.TextOut(350, 240, 'Afsender:');  
       Canvas.TextOut(350, 270, PakkeshopLabel.AfsenderNavn);  
       Canvas.TextOut(350, 300, PakkeshopLabel.AfsenderAdresse);  
       Canvas.TextOut(350, 330, PakkeshopLabel.AfsenderPostnr);  
   
       Dirigering := PakkeshopLabel.PakkeshopSted + ' | ' + PakkeshopLabel.PakkeshopTurid + ' | ' + PakkeshopLabel.PakkeshopNr;  
       if ( PakkeshopLabel.Koreliste <> '') then  
       begin  
         Dirigering := Dirigering + ' > ' + PakkeshopLabel.Koreliste;  
       end;  
   
   
       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);  
   
   
       //Tegn skrå streger over afsender  
       Canvas.Pen.Width := 1;  
       Canvas.MoveTo(600, 250);  
       Canvas.LineTo(350, 360);  
       Canvas.MoveTo(600, 360);  
       Canvas.LineTo(350, 250);  
   
   
   
   
       // Resten af rutinen vedr genering og placering af Barcode  
   
       BarCode.BarCodeType := bcCode128;  
       BarCode.Code128Subset := csCodeC;  
       BarCode.Code := PakkeshopLabel.Stregkode;  
       BarCode.Validate(True);  
   
       //Start X-formation  
       //ShowMessage( Format('%d %d', [PageWidth, PageHeight]) );  
       GetWorldTransform(Canvas.Handle, XFormOld);  
   
       Angle := 270;  
       XForm.eM11 := Cos(DegToRad(Angle));  
       XForm.eM12 := Sin(DegToRad(Angle));  
       XForm.eM21 := -Sin(DegToRad(Angle));  
       XForm.eM22 := Cos(DegToRad(Angle));  
       XForm.eDx := 0;  
       XForm.eDy := 0;  
   
       gMode := SetGraphicsMode(Canvas.Handle, GM_ADVANCED);  
       SetWorldTransform(Canvas.Handle, XForm);  
   
       // PaintToCanvasSize arbejder i Inches  
       // Første pos argument bliver nu Y og skal være negativ for at rykke den ned  
       //Anden pos er X og skal være positiv for at justere ind fra venstre mod højre  
   
       BarCode.PaintToCanvasSize(Printer.Canvas, -1.8, 3.3, 0.4);  
   
   
       SetWorldTransform(Canvas.Handle, XFormOld);  
       SetGraphicsMode(Canvas.Handle, gMode);  
   
       EndDoc();  
     end;  
   
   
 end;  
   
 function GetPixelsPerInchX(): Integer;  
 begin  
   Result := GetDeviceCaps(Printer.Handle, LOGPIXELSX)  
 end;  
   
 function GetPixelsPerInchY(): Integer;  
 begin  
   Result := GetDeviceCaps(Printer.Handle, LOGPIXELSY)  
 end;  
   
4197    
4198  procedure TMainForm.IndlesManglendeScanninger();  procedure TMainForm.IndlesManglendeScanninger();
4199  var  var
# Line 4661  var Line 4204  var
4204    I: Integer;    I: Integer;
4205    stregkode, modtagernavn, modtageradresse, kommentar : string;    stregkode, modtagernavn, modtageradresse, kommentar : string;
4206    pakketype, tjekkodestatus : String;    pakketype, tjekkodestatus : String;
4207    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;    antalLiniefelter, antalFelterFundet, linienr : Integer;
4208    pakketyper : TStrings;    //pakketyper : TStrings;
4209      pakketyper : TDictionary<String, Integer>;
4210      tmpAntal : Integer;
4211    
4212    
4213    
4214    antlin : Integer;    antlin : Integer;
4215    
4216    antlinIdag, antlinSenere : Integer;    antlinIdag, antlinSenere : Integer;
4217    
4218    XmlFelter : TStrings;    //XmlFelter : TStrings;
4219      XmlFelter : TDictionary<String, Integer>;
4220    
4221   begin   begin
4222      XmlFelter := TStringList.Create;  
4223      pakketyper := TStringList.Create;  
4224        XmlFelter := TDictionary<String, Integer>.Create;
4225        pakketyper := TDictionary<String, Integer>.Create;
4226    
4227      linienr := 0;      linienr := 0;
4228      ListBox2.Clear;      ListBox2.Clear;
4229      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 4238  var
4238          StedKode := Sted;          StedKode := Sted;
4239        end;        end;
4240    
4241          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4242    
4243      if (Scanningtype = '6') then  
4244    
4245        if (Scanningtype = '7') then
4246       begin       begin
4247        URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);        URLStr := Format(UrlIndleveringsPakkeManglendeScanninger, [StedKode]);
4248         end
4249        else if (Scanningtype = '6') then
4250         begin
4251          URLStr := Format(UrlPakkeshopManglendeReturScanninger, [StedKode]);
4252       end       end
4253      else if (Scanningtype = '5') then      else if (Scanningtype = '5') then
4254       begin       begin
4255        URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeScanninger, [StedKode]);
4256       end       end
4257      else if (Scanningtype = '1') then      else if (Scanningtype = '1') then
4258       begin       begin
# Line 4718  var Line 4277  var
4277        begin        begin
4278          // 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
4279          WebSvar := IdHTTP1.Get(URLStr);          WebSvar := IdHTTP1.Get(URLStr);
4280    
4281    
4282    
4283        end;        end;
4284        on e:exception do        on e:exception do
4285        begin        begin
# Line 4740  var Line 4302  var
4302            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
4303              if Node.NodeName = 'Stregkode' then              if Node.NodeName = 'Stregkode' then
4304              begin              begin
4305                 antlin := antlin + 1;                 Inc(antlin);
4306                 // 20150306: start                 // 20150306: start
4307                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4308                begin                begin
4309                   if (pos('(', Node.NodeValue) = 0) then                   if (pos('(', Node.NodeValue) = 0) then
4310                   begin                   begin
4311                     antlinIdag := antlinIdag + 1;                     Inc(antlinIdag);
4312                   end                   end
4313                   else                   else
4314                   begin                   begin
4315                     antlinSenere := antlinSenere + 1;                     Inc(antlinSenere);
4316                   end;                   end;
4317                end;                end;
4318                 // 20150306: slut                 // 20150306: slut
4319              end;              end;
4320            end;            end;
4321            if (XmlFelter.values[Node.NodeName] <> '') then            if ( XmlFelter.ContainsKey(Node.NodeName) ) then
4322                  XmlFelter.values[Node.NodeName] := IntToStr(StrToInt(XmlFelter.values[Node.NodeName]) + 1)                begin
4323                    XmlFelter.TryGetValue(Node.NodeName, tmpAntal);
4324                    XmlFelter.AddOrSetValue(Node.NodeName, tmpAntal + 1);
4325                  end
4326                else                else
4327                  XmlFelter.values[Node.NodeName] := '1';                begin
4328                    XmlFelter.Add(Node.NodeName, 1);
4329                  end;
4330    
4331        end;        end;
4332        antalLiniefelter := XmlFelter.Count;        antalLiniefelter := XmlFelter.Count;
# Line 4767  var Line 4334  var
4334        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug
4335        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array
4336    
4337    
4338          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4339    
4340        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4341        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4342        begin        begin
# Line 4775  var Line 4345  var
4345        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4346    
4347        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4348    
4349    
4350        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4351            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4352            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
# Line 4782  var Line 4354  var
4354                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4355                  stregkode := Node.NodeValue;                  stregkode := Node.NodeValue;
4356                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4357              end;              end
4358              if Node.NodeName = 'ModtagerNavn' then begin              else if Node.NodeName = 'ModtagerNavn' then begin
4359                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4360                  modtagernavn := Node.NodeValue;                  modtagernavn := Node.NodeValue;
4361                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4362              end;              end
4363              if Node.NodeName = 'ModtagerAdresse' then begin              else if Node.NodeName = 'ModtagerAdresse' then begin
4364                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4365                  modtageradresse := Node.NodeValue;                  modtageradresse := Node.NodeValue;
4366                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4367              end;              end
4368              if Node.NodeName = 'Kommentar' then begin              else if Node.NodeName = 'Kommentar' then begin
4369                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4370                  kommentar := Node.NodeValue;                  kommentar := Node.NodeValue;
4371                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4372              end;              end
4373              if Node.NodeName = 'PakkeType' then begin              else if Node.NodeName = 'PakkeType' then begin
4374                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4375                  pakketype := Node.NodeValue;                  pakketype := Node.NodeValue;
4376                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4377                if (pakketyper.values[pakketype] <> '') then                if ( pakketyper.ContainsKey(pakketype) ) then
4378                  pakketyper.values[pakketype] := IntToStr(StrToInt(pakketyper.values[pakketype]) + 1)                begin
4379                    pakketyper.TryGetValue(pakketype, tmpAntal);
4380                    pakketyper.AddOrSetValue(pakketype, tmpAntal + 1);
4381                  end
4382                else                else
4383                  pakketyper.values[pakketype] := '1';                  pakketyper.Add(pakketype, 1);
4384              end;              end
4385              if Node.NodeName = 'TjekkodeStatus' then begin              else if Node.NodeName = 'TjekkodeStatus' then begin
4386                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4387                  tjekkodestatus := Node.NodeValue;                  tjekkodestatus := Node.NodeValue;
4388                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4389                  if (tjekkodestatus = '-1') then                  if (tjekkodestatus = '-1') then
4390                  begin                  begin
4391  // 20150306: start  
 //                    stregkoderMedTjekkodeArray[linienr] := stregkode;  
4392                    if (pos(' ', stregkode) > 0) then                    if (pos(' ', stregkode) > 0) then
4393                    begin                    begin
4394                      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 4400  var
4400                    linienr := linienr + 1;                    linienr := linienr + 1;
4401                  end;                  end;
4402              end;              end;
4403    
4404    
4405              if antalFelterFundet = antalLiniefelter then              if antalFelterFundet = antalLiniefelter then
4406              begin              begin
4407                if (ScanningType = '1') then                if (ScanningType = '1') then
# Line 4841  var Line 4417  var
4417              end;              end;
4418            end;            end;
4419        end;        end;
       for pakketypeix := 0 to pakketyper.Count-1 do  
         begin  
           ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + ' '+pakketyper[pakketypeix]+' pakke(r) ikke modtaget');  
         end;  
4420    
4421          // Free up the list object  
4422          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4423    
4424    
4425          for pakketype in pakketyper.Keys do
4426          begin
4427            pakketyper.TryGetValue(pakketype, tmpAntal);
4428            ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + pakketype + ' ' + IntToStr(tmpAntal) + ' pakke(r) ikke modtaget');
4429          end;
4430    
4431            // Free up the dictionary object
4432        pakketyper.Free;        pakketyper.Free;
4433    
4434    
4435    
4436  //      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.');
4437        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4438        if (antlinSenere > 0) then        if (antlinSenere > 0) then
# Line 5289  begin Line 4874  begin
4874      KommentarST.Caption := strMessage;      KommentarST.Caption := strMessage;
4875    end;    end;
4876    
4877      Stregkode := ''; //Nulstil stregkode feltet efter at fejl er vist
4878    
4879  end;  end;
4880    
4881  function TMainForm.getProddato() : TDate;  function TMainForm.getProddato() : TDate;
# Line 5348  begin Line 4935  begin
4935    result := svar;    result := svar;
4936  end;  end;
4937    
 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;  
4938    
4939  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);
4940  begin  begin
# Line 5380  begin Line 4948  begin
4948    end;    end;
4949  end;  end;
4950    
4951  function TMainForm.AdobeReaderExists: Boolean;  
4952  var  //Nedarvet fra IParentForm
4953    AReg: TRegistry;  procedure TMainForm.Msg( msg : string);
4954  begin  begin
4955    result:= false;    ShowMessage(msg);
   AReg := TRegistry.Create;  
   AReg.RootKey := HKEY_LOCAL_MACHINE;  
   if AReg.KeyExists('\SOFTWARE\Adobe\Acrobat Reader') then  
     result:= True;  
   AReg.Free;  
4956  end;  end;
4957    
4958    //Nedarvet fra IParentForm
4959  function TMainForm.CheckUrl(url:string):boolean;  procedure TMainForm.LogMessage( msg : string);
4960  var  begin
4961    hSession, hfile: hInternet;    ListBox1.Items.Insert(0, msg);
4962    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;  
   
4963  end;  end;
4964    
4965    
4966  procedure TMainForm.CheckPrintQue(tjektype : string);  //Nedarvet fra IParentForm
4967  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;  
4968  begin  begin
4969    
4970  // tjektype = 'Opstart' skal vise alarmlinie, samt opdatere listbox1    PrinterstatusStaticText1.Caption := txt;
4971  //            '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  
4972    begin    begin
4973      printerTxt := 'Der er fravalgt printer i dette program';      PrinterstatusStaticText1.Font.Color := clBlack;
4974      ListBox1.Items.Insert(0,printerTxt);      PrinterstatusStaticText1.Color := MainForm.Color;
4975      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);  
4976    end    end
4977    else    else
4978    begin    begin
4979      hPrinter := GetCurrentPrinterHandle;      PrinterstatusStaticText1.Font.Color := clRed;
4980      try      PrinterstatusStaticText1.Color := clWhite;
4981        EnumJobs(hPrinter, 0, 1000, 1, nil, 0, bytesNeeded, numJobs);      PrinterstatusStaticText1.Transparent := true;
       pJ := AllocMem(bytesNeeded);  
       if not EnumJobs(hPrinter, 0, 1000, 1, pJ, bytesNeeded, bytesNeeded, numJobs) then  
         RaiseLastWin32Error;  
   
       if numJobs = 0 then  
       begin  
         if (tjektype = 'Test') then  
         begin  
           logTekst := printerTxt + ': Ingen dokumenter i kø';  
           ListBox1.Items.Insert(0,logTekst);  
           SkrivScanningLogFil(logTekst);  
         end;  
         PrinterstatusStaticText1.Caption := '';  
         PrinterstatusStaticText1.Color := MainForm.Color;  
       end  
       else   // så er der kø til printeren  
       begin  
         printerTxt := SavePChar(pJ^[0].pPrinterName);  
         if (tjektype = 'Opstart') or (tjektype = 'Test') then  
         begin  
           logTekst := IntToStr(numJobs) + ' dokument(er) i kø til printer: ' + printerTxt;  
           ListBox1.Items.Insert(0,logTekst);  
           SkrivScanningLogFil(logTekst);  
         end;  
         for i := 0 to Pred(numJobs) do  
         begin  
           printerTxt := SavePChar(pJ^[i].pPrinterName);  
           statusTxt := 'Ukendt';  
           if (IntToStr(pJ^[i].Status) = '0') then  
             statusTxt := 'Venter...';  
           if (IntToStr(pJ^[i].Status) = '4096') then  
             statusTxt := 'Printer...';  
           if (IntToStr(pJ^[i].Status) = '8210') then  
             statusTxt := 'Printerfejl';  
           if (IntToStr(pJ^[i].Status) = '8214') then  
             statusTxt := 'Sletter print...';  
   
           dokumentTxt := SavePChar(pJ^[i].pDocument);  
           if (dokumentTxt = '') then  
             dokumentTxt := 'Uden navn';  
   
           if (tjektype = 'Opstart') or (tjektype = 'Test') then  
           begin  
             logTekst := Format('Printer %s, Dokument %d: %s, Status (%d): %s',  
                                     [printerTxt, i+1, dokumentTxt, pJ^[i].Status, statusTxt]);  
             ListBox1.Items.Insert(0,logTekst);  
             SkrivScanningLogFil(logTekst);  
           end;  
   
           if (i = 0) then  
           begin  
             PrinterstatusStaticText1.Caption := printerTxt + ': ' + IntToStr(numJobs) + ' dokument(er) in kø. Dokument status: ' + statusTxt;  
             PrinterstatusStaticText1.Font.Color := clBlack;  
             PrinterstatusStaticText1.Color := MainForm.Color;  
             PrinterstatusStaticText1.Transparent := True;  
             if (numJobs > 3) then  
             begin  
               PrinterstatusStaticText1.Font.Color := clRed;  
               PrinterstatusStaticText1.Color := clWhite;  
               PrinterstatusStaticText1.Transparent := true;  
             end;  
           end;  
   
         end;  
       end  
       finally  
         ClosePrinter(hPrinter);  
     end;  
4982    end;    end;
4983  end;  end;
4984    
4985    //Nedarvet fra IParentForm
4986    function TMainForm.GetFormObject() : TForm;
4987    begin
4988      Result := self;
4989    end;
4990    
4991  end.  end.
4992    

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

  ViewVC Help
Powered by ViewVC 1.1.20