--- dao/DelphiScanner/Main.pas 2015/08/23 13:09:14 2656 +++ dao/DelphiScanner/Main.pas 2015/09/04 09:56:58 2704 @@ -8,11 +8,16 @@ IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts, Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils, IdExplicitTLSClientServerBase, IdFTP, pngimage, GIFImg, IdException, - Winspool, Registry, ShellApi, ClipBrd, Buttons, wininet + Winspool, ShellApi, ClipBrd, Buttons, wininet, + UITypes, + PakkeshopLabels, + StBarC, + Math, // DegToRad() bruges i PrintPakkeshopLabel + Utils + ; type - TStrArray = array of string; TMainForm = class(TForm) StregkodeST: TStaticText; RuteNummerST: TStaticText; @@ -47,20 +52,20 @@ Testlyd1: TMenuItem; ListBox1: TListBox; Budlevering1: TMenuItem; - DownloadButton01: TButton; + BtnDownloadKontrolfil: TButton; IdFTP1: TIdFTP; Image1: TImage; ListBox2: TListBox; - OpdaterListenButton01: TButton; - UploadButton01: TButton; - DownloadButton03: TButton; + BtnOpdaterListen: TButton; + BtnUploadLogfil: TButton; + BtnDownloadRuteskiftFil: TButton; Pakkeshoplevering1: TMenuItem; PakkeshopText1: TStaticText; - PakkeshopNulstil: TButton; + btnNulstil: TButton; Returpakkerfrapakkeshop1: TMenuItem; Altidprintepakkelabel1: TMenuItem; chkAltidPrintLabel: TCheckBox; - EKLoverforsel: TButton; + BtnEKLoverforsel: TButton; N5: TMenuItem; Uploadlogfil1: TMenuItem; Manual1: TMenuItem; @@ -86,22 +91,13 @@ PanelManglendePakker4: TPanel; PanelManglendePakker5: TPanel; PanelManglendePakker6: TPanel; + menuIndlevering: TMenuItem; - - function Explode(var a: TStrArray; Border, S: string): Integer; - function BarCodeValid (ACode: string): boolean; - function Sto_GetFmtFileVersion(const FileName: String = ''; const Fmt: String = '%d.%d.%d.%d'): String; - function TColorToHex(Color : TColor) : string; - function HexToTColor(sColor : string) : TColor; function getProddato() : TDate; function getProddag() : String; function retRutenummer(rutenummer : String) : String; function GetCurrentPrinterHandle() : THandle; function SavePChar(p: PChar): PChar; - function AdobeReaderExists(): Boolean; - function FileTime2DateTime(FileTime: TFileTime): TDateTime; - function split(input: string; schar: Char; s: Integer): string; - function CheckUrl(url:string):boolean; procedure PlaySound(filename : PWideChar); procedure StartScreen(); @@ -132,8 +128,8 @@ procedure Button1Click(Sender: TObject); procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); procedure Budlevering1Click(Sender: TObject); - procedure DownloadButton01Click(Sender: TObject); - procedure OpdaterListenButton01Click(Sender: TObject); + procedure BtnDownloadKontrolfilClick(Sender: TObject); + procedure BtnOpdaterListenClick(Sender: TObject); procedure DownloadBladhusRuteskiftfil(); procedure DownloadBladhusKontrolfil(); procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String); @@ -141,10 +137,10 @@ procedure UploadInifilTilDAO(); procedure SletStregkodelinieFraListboks2(StregKode : String); procedure FormDestroy(Sender: TObject); - procedure UploadButton01Click(Sender: TObject); - procedure DownloadButton03Click(Sender: TObject); + procedure BtnUploadLogfilClick(Sender: TObject); + procedure BtnDownloadRuteskiftFilClick(Sender: TObject); procedure Pakkeshoplevering1Click(Sender: TObject); - procedure PakkeshopNulstilClick(Sender: TObject); + procedure btnNulstilClick(Sender: TObject); procedure Returpakkerfrapakkeshop1Click(Sender: TObject); procedure InitNatxpresslevering(); procedure InitReturFraDao(); @@ -156,10 +152,9 @@ procedure Altidprintepakkelabel1Click(Sender: TObject); procedure chkAltidPrintLabelClick(Sender: TObject); - procedure EKLoverforselClick(Sender: TObject); + procedure BtnEKLoverforselClick(Sender: TObject); procedure Uploadlogfil1Click(Sender: TObject); procedure Manual1Click(Sender: TObject); - procedure CheckPrintQue(tjektype : string); procedure Timer1Timer(Sender: TObject); procedure Scanogstjekkoden1Click(Sender: TObject); procedure chkScanTjekkodeClick(Sender: TObject); @@ -179,11 +174,13 @@ procedure SletLogfiler(Path: string; FileList: TStrings); procedure Manualgenerel1Click(Sender: TObject); procedure TjekkerUrls(); -// 20150310: start - procedure RoundCornerOf(Control: TWinControl); + procedure TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer); + procedure menuIndleveringClick(Sender: TObject); + + procedure PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel); + procedure CheckPrintQue(tjektype : string); -// 20150310: slut private SpecialVersionSted, SpecialVersionScanningtype: String; // Bruges når programmet skal bruges udenfor DAO scanningssteder @@ -191,7 +188,7 @@ SkrivLog : String; Sted : String; StedNavn : String; - Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlEKLoverforsel : String; + Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,UrlIndleveringsPakkeManglendeScanninger,UrlEKLoverforsel : String; // 29150330: start UrlEKLoverforselPakkeshop : String; // 20150330: slut @@ -205,9 +202,9 @@ AlarmLyd : String; ScannetOkLyd : String; ScannetOkStorLyd : String; -// 20150317: start + ScannetOkTilTjekkodeLyd : String; -// 20150317: slut + PrinterNavn : String; TjekPrinter : String; XPosRute : integer; @@ -246,7 +243,8 @@ BoghandlerStregkode, BoghandlerTjekkode : String; TjekUrls : String; - function CheckSumModulo10(const data:string):string; { used for EAN 8/13 } + Barcode : TStBarcode; + procedure PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : String = ''); procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = ''); @@ -258,11 +256,15 @@ procedure IndlesScanningLogFil(); procedure SkrivScanningLogFil(var tekst : string); function TjekKoreliste(var RuteNummer, Koreliste : string) : string; + procedure VisAlarmSkaerm(strMessage: string); public { Public declarations } end; + function GetPixelsPerInchX(): Integer; + function GetPixelsPerInchY(): Integer; + var MainForm: TMainForm; @@ -276,30 +278,15 @@ implementation {$R *.dfm} -function TMainForm.TColorToHex(Color : TColor) : string; -begin - Result := - IntToHex(GetRValue(Color), 2) + - IntToHex(GetGValue(Color), 2) + - IntToHex(GetBValue(Color), 2) ; -end; - -function TMainForm.HexToTColor(sColor : string) : TColor; -begin - Result := - RGB( - StrToInt('$'+Copy(sColor, 1, 2)), - StrToInt('$'+Copy(sColor, 3, 2)), - StrToInt('$'+Copy(sColor, 5, 2)) - ) ; -end; procedure TMainForm.InitForm(Farve,Titel,Url : String); begin -// 20150309: startr + StaticTextManglendePakker.Caption := ''; -// 20150309: slut + + + Barcode := TStBarcode.Create(MainForm);//Dynamisk oprettelse af Barcode component PanelValg1.Color := clBtnFace; if PanelValg1.Enabled = true then @@ -343,7 +330,7 @@ PanelValg7.Font.Color := clWindowText; end; - OpdaterListenButton01.Enabled := false; + BtnOpdaterListen.Enabled := false; if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then begin @@ -397,7 +384,7 @@ StartScreen(); MainForm.Caption := Titel; - MainForm.Color := HexToTColor(Farve); + MainForm.Color := TUtils.HexToTColor(Farve); MainForm.Farve := Farve; MainForm.Titel := Titel; MainForm.Url := Url; @@ -457,13 +444,13 @@ end else begin - logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')'; + logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')'; end; SkrivScanningLogFil(logTekst); end else begin - logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')'; + logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')'; SkrivScanningLogFil(logTekst); end; end; @@ -506,27 +493,11 @@ procedure TMainForm.Automatiskvalg1Click(Sender: TObject); 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; -*) // Skal ikke toggle men bare sætte funktionen on // Fravælges ved at vælge en scanningstype AutomatiskValg1.Checked := true; PanelValgA.Color := clGreen; PanelValgA.Font.Color := clWhite; -// 20150317: slut end; procedure TMainForm.FormCreate(Sender: TObject); @@ -534,10 +505,7 @@ crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed var printerInd : integer; - i : Integer; -// 20150310: start gemScanningtype : String; -// 20150310: slut begin // Initierer nogle variabler @@ -546,14 +514,14 @@ PrinterstatusStaticText1.Caption := ''; PrinterstatusStaticText1.Color := MainForm.Color; - PakkeshopNulstil.BringToFront; + btnNulstil.BringToFront; - RoundCornerOf(PanelManglendePakker1); - RoundCornerOf(PanelManglendePakker2); - RoundCornerOf(PanelManglendePakker3); - RoundCornerOf(PanelManglendePakker4); - RoundCornerOf(PanelManglendePakker5); - RoundCornerOf(PanelManglendePakker6); + TUtils.RoundCornerOf(PanelManglendePakker1); + TUtils.RoundCornerOf(PanelManglendePakker2); + TUtils.RoundCornerOf(PanelManglendePakker3); + TUtils.RoundCornerOf(PanelManglendePakker4); + TUtils.RoundCornerOf(PanelManglendePakker5); + TUtils.RoundCornerOf(PanelManglendePakker6); // Hvis mappen Docs eksisterer kan vi vælge Manual i menuen Hjælp @@ -588,6 +556,13 @@ UrlReturPakkeshop := ReadString('Settings','UrlReturPakkeshop','http://omdeling.info/webservices/pakkeshop/returpakkekontrol.php?sted=%s&stregkode=%s'); UrlPakkeshopManglendeScanninger := ReadString('Settings','UrlPakkeshopManglendeScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendescanninger.php?sted=%s'); UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s'); + + + UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s'); + UrlIndleveringsPakkeManglendeScanninger := ReadString('Settings', 'UrlIndleveringsPakkeManglendeScanninger','http://omdeling.info/webservices/pakkeshop/IndleveringsPakkeManglendeScanninger.php?sted=%s'); + + + LabelType := ReadInteger('Settings','LabelType',1); FarveNormal := ReadString('Settings','FarveNormal','D8D8D8'); TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker'); @@ -625,11 +600,11 @@ if (SkrivLog = '1') then begin - 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); try SkrivScanningLogFil(logTekst); Uploadlogfil1.Enabled := true; - UploadButton01.Enabled := true; + BtnUploadLogfil.Enabled := true; logTekst := 'Programmet er installeret som: '+ParamStr(0); SkrivScanningLogFil(logTekst); // Oprydning i gamle logfiler @@ -768,6 +743,20 @@ //SpecialVersionSted := 'FD'; // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE) // *************************** // +{$IfDef STED_BK} + SpecialVersionSted := 'BK'; +{$EndIf} +{$IfDef STED_DBK} + SpecialVersionSted := 'DBK'; +{$EndIf} +{$IfDef STED_FD} + SpecialVersionSted := 'FD'; +{$EndIf} +{$IfDef STED_NS} + SpecialVersionSted := 'NS'; +{$EndIf} + + //SpecialVersionSted := '01'; // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE) //SpecialVersionSted := '02'; // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK) //SpecialVersionSted := '03'; // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE) @@ -783,7 +772,6 @@ // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor) // ændrer vi Sted og Scanningtype her: -// 20150313: start if SpecialVersionSted = 'NS' then begin SpecialVersionSted := '01'; @@ -794,7 +782,6 @@ SpecialVersionSted := '03'; SpecialVersionScanningtype := '4'; end; -// 20150313: slut if SpecialVersionSted = 'BK' then begin @@ -834,6 +821,9 @@ PanelValg5.Font.Color := clInactiveCaption; PanelValg6.Enabled := false; PanelValg6.Font.Color := clInactiveCaption; + PanelValg7.Enabled := false; + PanelValg7.Font.Color := clInactiveCaption; + // her skal vi også disable de menupunkter DBK ikke kan bruge ReturpakkerfraDAO1.Enabled := false; Returpakkerfraboghandler1.Enabled := false; @@ -870,6 +860,8 @@ PanelValg5.Font.Color := clInactiveCaption; PanelValg6.Enabled := false; PanelValg6.Font.Color := clInactiveCaption; + PanelValg7.Enabled := false; + PanelValg7.Font.Color := clInactiveCaption; // her skal vi også disable de menupunkter Bladhusene (01, 02, 03 og 04) ikke kan bruge Automatiskvalg1.Enabled := false; @@ -965,7 +957,7 @@ RutenummerST.Caption := ''; BoghandlerNavnST.Caption := 'Fejl i urls'; KommentarST.Caption := 'Se log vinduet'; - PakkeshopNulstil.Visible := true; + btnNulstil.Visible := true; exit; end; end @@ -1134,7 +1126,7 @@ Scanningtype := gemScanningtype; SendInfoTilServer(Sted, Scanningtype, 'Begin', ''); - SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion('','')); + SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', TUtils.Sto_GetFmtFileVersion('')); end; @@ -1152,7 +1144,6 @@ BoghandlerNavn : String; Koreliste : String; PrintNyLabel : Boolean; - List1msg : String; pakkeErScannet : Integer; pakkeForkertSted : Integer; tjekkodeMangler : Integer; @@ -1208,33 +1199,21 @@ begin if (Length(Trim(Stregkode)) = 0) then begin - PlaySound(PWideChar(AlarmLyd)); - List1msg := 'Der skal scannes en stregkode...'; - ListBox1.Items.Insert(0,List1Msg); - MainForm.Color := clRed; - RuteNummerST.Caption := ''; - BoghandlerNavnST.Caption := ''; - KommentarST.Caption := List1msg; - PakkeshopNulstil.Visible := true; + VisAlarmSkaerm( 'Der skal scannes en stregkode...' ); + exit; end; if StregKode = 'Nulstil' then begin - PakkeshopNulstil.Click(); + btnNulstil.Click(); exit; end; - if PakkeshopNulstil.Visible then + if btnNulstil.Visible then begin - PlaySound(PWideChar(AlarmLyd)); - List1msg := 'HUSK at klikke Nulstil før ny scanning...'; + VisAlarmSkaerm( 'HUSK at klikke Nulstil før ny scanning...' ); - ListBox1.Items.Insert(0,List1Msg); - MainForm.Color := clRed; - KommentarST.Caption := List1msg; - Stregkode := ''; - StregkodeST.Caption := StregKode; exit; end; @@ -1246,16 +1225,7 @@ end else begin - //ShowMessage('Ændring ikke tilladt'); - // Her skal komme en 'rød skærm' alarm - PlaySound(PWideChar(AlarmLyd)); - List1msg := Stregkode + ' kan ikke vælges på dette scanningsted'; - ListBox1.Items.Insert(0,List1Msg); - MainForm.Color := clRed; - RuteNummerST.Caption := ''; - BoghandlerNavnST.Caption := ''; - KommentarST.Caption := List1msg; - PakkeshopNulstil.Visible := true; + VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' ); end; Stregkode := ''; StregkodeST.Caption := StregKode; @@ -1270,17 +1240,7 @@ end else begin - //ShowMessage('Ændring ikke tilladt'); - // Her skal komme en 'rød skærm' alarm - PlaySound(PWideChar(AlarmLyd)); - List1msg := Stregkode + ' kan ikke vælges på dette scanningsted'; - ListBox1.Items.Insert(0,List1Msg); - MainForm.Color := clRed; - RuteNummerST.Caption := ''; - BoghandlerNavnST.Caption := ''; - - KommentarST.Caption := List1msg; - PakkeshopNulstil.Visible := true; + VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' ); end; Stregkode := ''; StregkodeST.Caption := StregKode; @@ -1302,16 +1262,7 @@ end else begin - //ShowMessage('Ændring ikke tilladt'); - // Her skal komme en 'rød skærm' alarm - PlaySound(PWideChar(AlarmLyd)); - List1msg := Stregkode + ' kan ikke vælges på dette scanningsted'; - ListBox1.Items.Insert(0,List1Msg); - MainForm.Color := clRed; - RuteNummerST.Caption := ''; - BoghandlerNavnST.Caption := ''; - KommentarST.Caption := List1msg; - PakkeshopNulstil.Visible := true; + VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' ); end; Stregkode := ''; StregkodeST.Caption := StregKode; @@ -1333,16 +1284,7 @@ end else begin - //ShowMessage('Ændring ikke tilladt'); - // Her skal komme en 'rød skærm' alarm - PlaySound(PWideChar(AlarmLyd)); - List1msg := Stregkode + ' kan ikke vælges på dette scanningsted'; - ListBox1.Items.Insert(0,List1Msg); - MainForm.Color := clRed; - RuteNummerST.Caption := ''; - BoghandlerNavnST.Caption := ''; - KommentarST.Caption := List1msg; - PakkeshopNulstil.Visible := true; + VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' ); end; Stregkode := ''; StregkodeST.Caption := StregKode; @@ -1357,16 +1299,7 @@ end else begin - //ShowMessage('Ændring ikke tilladt'); - // Her skal komme en 'rød skærm' alarm - PlaySound(PWideChar(AlarmLyd)); - List1msg := Stregkode + ' kan ikke vælges på dette scanningsted'; - ListBox1.Items.Insert(0,List1Msg); - MainForm.Color := clRed; - RuteNummerST.Caption := ''; - BoghandlerNavnST.Caption := ''; - KommentarST.Caption := List1msg; - PakkeshopNulstil.Visible := true; + VisAlarmSkaerm(Stregkode + ' kan ikke vælges på dette scanningsted'); end; Stregkode := ''; StregkodeST.Caption := StregKode; @@ -1382,18 +1315,7 @@ end else begin - //ShowMessage('Ændring ikke tilladt'); - // Her skal komme en 'rød skærm' alarm - PlaySound(PWideChar(AlarmLyd)); - List1msg := Stregkode + ' kan ikke vælges på dette scanningsted'; - ListBox1.Items.Insert(0,List1Msg); - MainForm.Color := clRed; - - RuteNummerST.Caption := ''; - BoghandlerNavnST.Caption := ''; - - KommentarST.Caption := List1msg; - PakkeshopNulstil.Visible := true; + VisAlarmSkaerm(Stregkode + ' kan ikke vælges på dette scanningsted'); end; Stregkode := ''; StregkodeST.Caption := StregKode; @@ -1408,18 +1330,7 @@ end else begin - //ShowMessage('Ændring ikke tilladt'); - // Her skal komme en 'rød skærm' alarm - PlaySound(PWideChar(AlarmLyd)); - List1msg := Stregkode + ' kan ikke vælges på dette scanningsted'; - ListBox1.Items.Insert(0,List1Msg); - MainForm.Color := clRed; - - RuteNummerST.Caption := ''; - BoghandlerNavnST.Caption := ''; - - KommentarST.Caption := List1msg; - PakkeshopNulstil.Visible := true; + VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' ); end; Stregkode := ''; StregkodeST.Caption := StregKode; @@ -1434,18 +1345,7 @@ end else begin - //ShowMessage('Ændring ikke tilladt'); - // Her skal komme en 'rød skærm' alarm - PlaySound(PWideChar(AlarmLyd)); - List1msg := Stregkode + ' kan ikke vælges på dette scanningsted'; - ListBox1.Items.Insert(0,List1Msg); - MainForm.Color := clRed; - - RuteNummerST.Caption := ''; - BoghandlerNavnST.Caption := ''; - - KommentarST.Caption := List1msg; - PakkeshopNulstil.Visible := true; + VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' ); end; Stregkode := ''; StregkodeST.Caption := StregKode; @@ -1460,18 +1360,7 @@ end else begin - //ShowMessage('Ændring ikke tilladt'); - // Her skal komme en 'rød skærm' alarm - PlaySound(PWideChar(AlarmLyd)); - List1msg := Stregkode + ' kan ikke vælges på dette scanningsted'; - ListBox1.Items.Insert(0,List1Msg); - MainForm.Color := clRed; - - RuteNummerST.Caption := ''; - BoghandlerNavnST.Caption := ''; - - KommentarST.Caption := List1msg; - PakkeshopNulstil.Visible := true; + VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' ); end; Stregkode := ''; StregkodeST.Caption := StregKode; @@ -1486,18 +1375,7 @@ end else begin - //ShowMessage('Ændring ikke tilladt'); - // Her skal komme en 'rød skærm' alarm - PlaySound(PWideChar(AlarmLyd)); - List1msg := Stregkode + ' kan ikke vælges på dette scanningsted'; - ListBox1.Items.Insert(0,List1Msg); - MainForm.Color := clRed; - - RuteNummerST.Caption := ''; - BoghandlerNavnST.Caption := ''; - - KommentarST.Caption := List1msg; - PakkeshopNulstil.Visible := true; + VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' ); end; Stregkode := ''; StregkodeST.Caption := StregKode; @@ -1512,18 +1390,7 @@ end else begin - //ShowMessage('Ændring ikke tilladt'); - // Her skal komme en 'rød skærm' alarm - PlaySound(PWideChar(AlarmLyd)); - List1msg := Stregkode + ' kan ikke vælges på dette scanningsted'; - ListBox1.Items.Insert(0,List1Msg); - MainForm.Color := clRed; - - RuteNummerST.Caption := ''; - BoghandlerNavnST.Caption := ''; - - KommentarST.Caption := List1msg; - PakkeshopNulstil.Visible := true; + VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' ); end; Stregkode := ''; StregkodeST.Caption := StregKode; @@ -1584,19 +1451,7 @@ or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false) or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false) ) then begin // Her skal komme en alarm og rød skærm - PlaySound(PWideChar(AlarmLyd)); - List1msg := 'Pakketype ' + Pakketype + ' kan ikke scannes på dette scanningsted'; - ListBox1.Items.Insert(0,List1Msg); - MainForm.Color := clRed; - - RuteNummerST.Caption := ''; - BoghandlerNavnST.Caption := ''; - - KommentarST.Caption := List1msg; - PakkeshopNulstil.Visible := true; - - StregKode := ''; - StregkodeST.Caption := StregKode; + VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' ); exit; end; @@ -1633,20 +1488,9 @@ // Retur kan ikke scannes med 'Automatisk valg' else - begin // Her skal komme en alarm og rød skærm - PlaySound(PWideChar(AlarmLyd)); - List1msg := 'Pakken kan ikke scannes med automatisk valg'; - ListBox1.Items.Insert(0,List1Msg); - MainForm.Color := clRed; - - RuteNummerST.Caption := ''; - BoghandlerNavnST.Caption := ''; - - KommentarST.Caption := List1msg; - PakkeshopNulstil.Visible := true; - - StregKode := ''; - StregkodeST.Caption := StregKode; + begin + // Her skal komme en alarm og rød skærm + VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' ); exit; end; @@ -1654,19 +1498,7 @@ end else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then begin - PlaySound(PWideChar(AlarmLyd)); - List1msg := 'Pakkenummer ikke gyldigt (for kort)'; - ListBox1.Items.Insert(0,List1Msg); - MainForm.Color := clRed; - - RuteNummerST.Caption := ''; - BoghandlerNavnST.Caption := ''; - - KommentarST.Caption := List1msg; - PakkeshopNulstil.Visible := true; - - StregKode := ''; - StregkodeST.Caption := StregKode; + VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' ); exit; end; @@ -1675,18 +1507,9 @@ begin if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then begin - PlaySound(PWideChar(AlarmLyd)); - List1msg := 'Pakke findes som pakketype: ' + Pakketype; - ListBox1.Items.Insert(0,List1Msg); - MainForm.Color := clRed; - RuteNummerST.Caption := ''; - BoghandlerNavnST.Caption := ''; + VisAlarmSkaerm( 'Pakke findes som pakketype: ' + Pakketype ); - KommentarST.Caption := List1msg; - PakkeshopNulstil.Visible := true; - StregKode := ''; - StregkodeST.Caption := StregKode; exit; end; end; @@ -1712,7 +1535,7 @@ BoghandlerStregkode := Stregkode; BoghandlerTjekkode := ''; PakkeshopText1.Caption := 'Stregkode'; - PakkeshopNulstil.Visible := false; + btnNulstil.Visible := false; Stregkode := ''; InitScreen(); end @@ -1724,7 +1547,7 @@ BoghandlerStregkode := Stregkode; BoghandlerTjekkode := '-1'; PakkeshopText1.Caption := 'Stregkode'; - PakkeshopNulstil.Visible := false; + btnNulstil.Visible := false; Stregkode := ''; InitScreen(); end @@ -1736,19 +1559,13 @@ PakkeshopStregkode := Stregkode; BoghandlerStregkode := Stregkode; PakkeshopText1.Caption := 'Tjekkode'; -// 20150317: start + PlaySound(PWideChar(ScannetOkTilTjekkodeLyd)); -// 20150317: slut + end else begin - List1msg := 'Du skal scanne en stregkode'; - ListBox1.Items.Insert(0,List1Msg); - //logTekst := RightStr(List1Msg, Length(List1Msg)-10); - //SkrivScanningLogFil(logTekst); - PlaySound(PWideChar(AlarmLyd)); - PakkeshopNulstil.Visible := true; - MainForm.Color := clRed; + VisAlarmSkaerm( 'Du skal scanne en stregkode' ); end; Stregkode := ''; InitScreen(); @@ -1761,28 +1578,21 @@ BoghandlerTjekkode := Stregkode; PakkeshopText1.Caption := 'Stregkode'; if (PakkeshopLevering1.Checked) then - MainForm.Color := HexToTColor(FarvePakkeshoplevering); + MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering); if (Pakkernormal1.Checked) then - MainForm.Color := HexToTColor(FarveNormal); - PakkeshopNulstil.Visible := false; + MainForm.Color := TUtils.HexToTColor(FarveNormal); + btnNulstil.Visible := false; end else begin if (PakkeshopLevering1.Checked) then - List1msg := 'Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode; + VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode); if (Pakkernormal1.Checked) then - List1msg := 'Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode; - KommentarST.Caption := List1msg; - ListBox1.Items.Insert(0,List1Msg); - //logTekst := RightStr(List1Msg, Length(List1Msg)-10); - //SkrivScanningLogFil(logTekst); - PlaySound(PWideChar(AlarmLyd)); - PakkeshopNulstil.Visible := true; - MainForm.Color := clRed; -// 20150323: start + VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode); + StregKode := ''; StregkodeST.Caption := StregKode; -// 20150323: slut + exit; end; Stregkode := ''; @@ -1791,6 +1601,7 @@ 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 begin + if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then StregKode := PakkeshopStregkode; if Pakkernormal1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then @@ -1803,12 +1614,8 @@ // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her if Rutenummer = 'sql fejl' then begin // Her skal komme en alarm og rød skærm - PlaySound(PWideChar(AlarmLyd)); - //List1msg := 'SQL fejl: ' + Kommentar; - //ListBox1.Items.Insert(0,List1Msg); - MainForm.Color := clRed; - //KommentarST.Caption := List1msg; - PakkeshopNulstil.Visible := true; + VisAlarmSkaerm( 'SQL fejl: ' + Kommentar ); + exit; end; if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then @@ -1828,13 +1635,13 @@ if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then begin PlaySound(PWideChar(AlarmLyd)); - PakkeshopNulstil.Visible := true; + btnNulstil.Visible := true; MainForm.Color := clRed; end; end; if ( Pakkernormal1.Checked and (pakkeErScannet = 0) and (pakkeForkertSted = 0) and (tjekkodemangler = 0) and (RuteNummerST.Caption <> 'Ukendt') ) or (Copy(Kommentar,1,2) = 'Ok') then begin - MainForm.Color := HexToTColor(Farve); + MainForm.Color := TUtils.HexToTColor(Farve); if Storepakker1.Checked then begin PlaySound(PWideChar(ScannetOkStorLyd)); @@ -1843,11 +1650,11 @@ begin PlaySound(PWideChar(ScannetOkLyd)); end; - PakkeshopNulstil.Visible := false; + btnNulstil.Visible := false; end else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then begin - MainForm.Color := HexToTColor(Farve); + MainForm.Color := TUtils.HexToTColor(Farve); if Storepakker1.Checked then begin PlaySound(PWideChar(ScannetOkStorLyd)); @@ -1856,30 +1663,23 @@ begin PlaySound(PWideChar(ScannetOkLyd)); end; - PakkeshopNulstil.Visible := false; + btnNulstil.Visible := false; end else if Copy(Kommentar,1,8) = 'OPRETTET' then begin - List1msg := 'Pakke ' + PakkeshopStregkode + ' skal gemmes på lager indtil data modtages'; - ListBox1.Items.Insert(0,List1Msg); - MainForm.Color := clRed; - PlaySound(PWideChar(AlarmLyd)); - PakkeshopNulstil.Visible := true; + VisAlarmSkaerm( 'Pakke ' + PakkeshopStregkode + ' skal gemmes på lager indtil data modtages' ); end else if Kommentar = StregKode then // budlevering til 'Ukendt tur' begin end else begin - MainForm.Color := clRed; - PlaySound(PWideChar(AlarmLyd)); - PakkeshopNulstil.Visible := true; + VisAlarmSkaerm(''); end; - if not PakkeshopNulstil.Visible then + + if not btnNulstil.Visible then begin -// 20150310: start -// SletStregkodelinieFraListboks2(StregKode); -// 20150310: slut + If (Budlevering1.Checked) then begin if Storepakker1.Checked then @@ -1893,9 +1693,9 @@ InitLillePakke(); end; end; -// 20150310: start + SletStregkodelinieFraListboks2(StregKode); -// 20150310: slut + PakkeshopStregkode := ''; PakkeshopTjekkode := ''; BoghandlerStregkode := ''; @@ -1969,7 +1769,7 @@ begin - if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked then + if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked or menuIndlevering.Checked then begin for i := ListBox2.items.count-1 downto 0 do if pos(StregKode,ListBox2.items[i]) <> 0 then @@ -1980,11 +1780,11 @@ if (pos('/', wrkAntal) > 0) then // både pakker idag og senere begin wrkAntal := wrkAntal + '/'; // tilføjer '/' sidst i feltet af hensyn til split funktionen - wrkAntalIdag := StrToInt(split(wrkAntal, '/', 2)); + wrkAntalIdag := StrToInt( TUtils.split(wrkAntal, '/', 2)); // ShowMessage(SPLIT('data/another/yet/again/more/','/',3)); // ShowMessage(SPLIT('data/another/','/',3)); // ShowMessage(SPLIT('data/another','/',3)); - wrkAntalSenere := StrToInt(split(wrkAntal, '/', 3)); + wrkAntalSenere := StrToInt( TUtils.split(wrkAntal, '/', 3)); end else // kun idag begin @@ -2088,7 +1888,7 @@ PanelManglendePakker6.Visible := false; end; end; -// 20150310: slut + ListBox2.items.delete(i); end; end; @@ -2115,8 +1915,6 @@ end; procedure TMainForm.InitBladhus(); -var - LogFilnavn : string; begin Altidprintepakkelabel1.Enabled := false; @@ -2126,47 +1924,7 @@ Sprgefterboghandlernummer1.Enabled := false; ListBox1.Visible := true; // TestFunktionen := '1'; -// 20150317: start -(* - if TestFunktionen = '1' then - begin - Testforbindelsen1.Visible := true; - Testprinter1.Visible := true; - Testlyd1.Visible := true; - Testlyd2.Visible := true; - end - else if TestFunktionen = '2' then - begin - Testforbindelsen1.Enabled := false; - Testprinter1.Enabled := false; - Testlyd1.Enabled := false; - Testlyd2.Enabled := false; - end - else - begin - Testforbindelsen1.Visible := false; - Testprinter1.Visible := false; - Testlyd1.Visible := false; - Testlyd2.Visible := false; - end; - Testprinter1.Visible := false; - AlarmLyd := 'Sounds\Alarm.wav'; - if not FileExists(AlarmLyd) then - begin - AlarmLyd := ''; - end; - ScannetOkLyd := 'Sounds\Ok.wav'; - if not FileExists(ScannetOkLyd) then - begin - ScannetOkLyd := ''; - end; - ScannetOkStorLyd := 'Sounds\Ok_stor.wav'; - if not FileExists(ScannetOkStorLyd) then - begin - ScannetOkStorLyd := ''; - end; -*) -// 20150317: slut + if Budlevering1.Checked then begin IndlesScanningLogFil(); @@ -2179,8 +1937,8 @@ 01 : begin; // NS Testprinter1.Visible := true; - DownloadButton01.Enabled := true; - OpdaterListenButton01.Enabled := true; + BtnDownloadKontrolfil.Enabled := true; + BtnOpdaterListen.Enabled := true; IdFTP1.Passive := true; IdFTP1.PassiveUseControlHost := true; BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt'; @@ -2195,8 +1953,8 @@ Storepakker1.Enabled := true; radioStorPakke.Enabled := true; radioLillePakke.Enabled := true; - DownloadButton01.Enabled := false; // kontrolfil bruges ikke her - OpdaterListenButton01.Enabled := true; + BtnDownloadKontrolfil.Enabled := false; // kontrolfil bruges ikke her + BtnOpdaterListen.Enabled := true; IdFTP1.Passive := true; IdFTP1.PassiveUseControlHost := true; IndlesManglendeScanninger(); @@ -2206,14 +1964,14 @@ Testprinter1.Visible := true; if (getProddag() = 'lørdag') then begin - DownloadButton03.Visible := false; + BtnDownloadRuteskiftFil.Visible := false; end else begin - DownloadButton03.Visible := false; + BtnDownloadRuteskiftFil.Visible := false; end; - DownloadButton01.Enabled := true; - OpdaterListenButton01.Enabled := true; + BtnDownloadKontrolfil.Enabled := true; + BtnOpdaterListen.Enabled := true; IdFTP1.Passive := true; IdFTP1.PassiveUseControlHost := true; BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt'; @@ -2233,8 +1991,8 @@ Storepakker1.Enabled := true; radioStorPakke.Enabled := true; radioLillePakke.Enabled := true; - DownloadButton01.Enabled := false; // kontrolfil bruges ikke her - OpdaterListenButton01.Enabled := true; + BtnDownloadKontrolfil.Enabled := false; // kontrolfil bruges ikke her + BtnOpdaterListen.Enabled := true; IdFTP1.Passive := true; IdFTP1.PassiveUseControlHost := true; end; @@ -2250,6 +2008,8 @@ URLStr : String; pakkestorrelse : String; PrintNyLabelInteger : Integer; + + PakkeshopLabel: TPakkeshopLabel; begin if radioStorPakke.Checked then begin @@ -2259,6 +2019,8 @@ begin pakkestorrelse := 'Lille'; end; + + if Pakkernormal1.Checked then begin if (BoghandlerTjekkode = '') then @@ -2287,6 +2049,10 @@ begin URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]); end + else if menuIndlevering.Checked then + begin + URLStr := Format(UrlIndleveringsPakke,[Sted, PakkeNr]); + end else begin exit; @@ -2333,10 +2099,28 @@ begin PrintNyLabel := True; end; -// 20150310: start end; -// 20150310: slut end + else if menuIndlevering.Checked then + begin + + + + + Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text; + if (Kommentar = 'Ok') then + begin + PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label + PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc + RuteNummer := PakkeshopLabel.Koreliste + ' -> ' + PakkeshopLabel.PakkeshopTurid; + Stregkode := PakkeshopLabel.Stregkode; + + PrintPakkeshopLabel( PakkeshopLabel ); + + end; + + + end else begin RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text; @@ -2369,6 +2153,8 @@ PrintNyLabel := True; end; end; + + if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then begin if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then @@ -2461,12 +2247,18 @@ List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar; end; end; + if menuIndlevering.Checked then + begin + List1Msg := Stregkode; + end; + + ListBox1.Items.Insert(0,List1Msg); logTekst := RightStr(List1Msg, Length(List1Msg)-10); SkrivScanningLogFil(logTekst); end; -procedure TMainForm.UploadButton01Click(Sender: TObject); +procedure TMainForm.BtnUploadLogfilClick(Sender: TObject); begin UploadLogfilTilDAO(); UploadInifilTilDAO(); @@ -2483,7 +2275,7 @@ nytRuteNummer, nyFarve : String; begin if Budlevering1.Checked then - RuteNummerST.Color := HexToTColor(Farve); + RuteNummerST.Color := TUtils.HexToTColor(Farve); pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn); if pakkeErScannet = 0 then @@ -2528,7 +2320,7 @@ PlaySound(PWideChar(AlarmLyd)); MainForm.Color := clRed; - PakkeshopNulstil.Visible := true; + btnNulstil.Visible := true; end else @@ -2539,7 +2331,7 @@ PrintNyLabel := true; RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer; nyFarve := Farve; - RuteNummerST.Color := HexToTColor(nyFarve); + RuteNummerST.Color := TUtils.HexToTColor(nyFarve); List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer; RuteNummer := nytRuteNummer; ListBox1.Items.Insert(0,List1Msg); @@ -2555,7 +2347,7 @@ begin PlaySound(PWideChar(AlarmLyd)); MainForm.Color := clRed; - PakkeshopNulstil.Visible := true; + btnNulstil.Visible := true; end; end; @@ -2581,7 +2373,7 @@ begin PlaySound(PWideChar(AlarmLyd)); MainForm.Color := clRed; - PakkeshopNulstil.Visible := true; + btnNulstil.Visible := true; end; end; @@ -2605,7 +2397,7 @@ end; end; 01 : begin; - if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then + if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr') begin @@ -2619,7 +2411,7 @@ end; end; 03 : begin; - if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then + if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr') begin @@ -2822,396 +2614,144 @@ //UpdateScreen('', '', 'Tjekker forbindelsen...', '', ''); // virker ikke ShowMessage('Tjekker data forbindelse til serveren.' + crlf + 'Det kan godt tage nogle minutter.' + crlf + 'Resultatet af testen vises i skærmbilledet...'); - // Tjekker urls - logTekst := 'Tjekker urls.'; - ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst); - SkrivScanningLogFil(logTekst); + try + // Tjekker urls + logTekst := 'Tjekker urls.'; + ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst); + SkrivScanningLogFil(logTekst); - // 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; - // 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; - // Tjekker UrlReturBoghandler - if PanelValg3.Enabled = true then - begin - if CheckUrl(UrlReturBoghandler) then - begin - 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; + // Tjekker UrlNormal + if PanelValg1.Enabled = true then + begin + TjekkerEnkeltUrl('UrlNormal', UrlNormal, urlFejl); + end; - // Tjekker UrlBudlevering - if PanelValg4.Enabled = true then - begin - if CheckUrl(UrlBudlevering) then - begin - 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; + // Tjekker UrlReturDAO + if PanelValg2.Enabled = true then + begin + TjekkerEnkeltUrl('UrlReturDAO', UrlReturDAO, urlFejl); + end; - // Tjekker UrlPakkeshoplevering - if PanelValg5.Enabled = true then - begin - if CheckUrl(UrlPakkeshoplevering) then - begin - 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; + // Tjekker UrlReturBoghandler + if PanelValg3.Enabled = true then + begin + TjekkerEnkeltUrl('UrlReturBoghandler', UrlReturBoghandler, urlFejl); + end; - // Tjekker UrlReturPakkeshop - if PanelValg6.Enabled = true then - begin - if CheckUrl(UrlReturPakkeshop) then - begin - 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; + // Tjekker UrlBudlevering + if PanelValg4.Enabled = true then + begin + TjekkerEnkeltUrl('UrlBudlevering', UrlBudlevering, urlFejl); + end; - // Tjekker UrlManglendeScanninger - if (PanelValg1.Enabled = true) - or (PanelValg4.Enabled = true) then - begin - if CheckUrl(UrlManglendeScanninger) then - 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; + // Tjekker UrlPakkeshoplevering + if PanelValg5.Enabled = true then + begin + TjekkerEnkeltUrl('UrlPakkeshoplevering', UrlPakkeshoplevering, urlFejl); + end; - // Tjekker UrlPakkeshopManglendeScanninger - if PanelValg5.Enabled = true then - begin - if CheckUrl(UrlPakkeshopManglendeScanninger) then - begin - 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; + // Tjekker UrlReturPakkeshop + if PanelValg6.Enabled = true then + begin + TjekkerEnkeltUrl('UrlReturPakkeshop', UrlReturPakkeshop, urlFejl); + end; - // Tjekker UrlPakkeshopManglendeReturScanninger - if PanelValg6.Enabled = true then - begin - if CheckUrl(UrlPakkeshopManglendeReturScanninger) then - begin - 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; + // Tjekker UrlManglendeScanninger + if (PanelValg1.Enabled = true) or (PanelValg4.Enabled = true) then + begin + TjekkerEnkeltUrl('UrlManglendeScanninger', UrlManglendeScanninger, urlFejl); + end; - // Tjekker UrlEKLoverforsel - if PanelValg1.Enabled = true then - begin - if CheckUrl(UrlEKLoverforsel) then - begin - 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; + // Tjekker UrlPakkeshopManglendeScanninger + if PanelValg5.Enabled = true then + begin + TjekkerEnkeltUrl('UrlPakkeshopManglendeScanninger', UrlPakkeshopManglendeScanninger, urlFejl); + end; + // Tjekker UrlPakkeshopManglendeReturScanninger + if PanelValg6.Enabled = true then + begin + TjekkerEnkeltUrl('UrlPakkeshopManglendeReturScanninger', UrlPakkeshopManglendeReturScanninger, urlFejl); + end; - // Tjekker UrlEKLoverforselPakkeshop - if PanelValg5.Enabled = true then - begin - if CheckUrl(UrlEKLoverforselPakkeshop) then - begin - logTekst := 'UrlEKLoverforselPakkeshop accepteret: ' + UrlEKLoverforselPakkeshop; - SkrivScanningLogFil(logTekst); - end - else - begin - inc(urlFejl); // Optæller antal fejl - logTekst := 'UrlEKLoverforselPakkeshop svarer ikke: ' + UrlEKLoverforselPakkeshop; - ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst); - if TjekUrls = '1' then - begin - logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... '; - end; - SkrivScanningLogFil(logTekst); - if TjekUrls = '1' then - begin - ShowMessage(logTekst); - UrlSendPrograminfo := ''; // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut - Application.Terminate; - exit; - end; - end; - end; + // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger + if PanelValg7.Enabled = true then + begin + TjekkerEnkeltUrl('UrlIndleveringsPakke', UrlIndleveringsPakke, urlFejl); + TjekkerEnkeltUrl('UrlIndleveringsPakkeManglendeScanninger', UrlIndleveringsPakkeManglendeScanninger, urlFejl); + end; + + // Tjekker UrlEKLoverforsel + if PanelValg1.Enabled = true then + begin + TjekkerEnkeltUrl('UrlEKLoverforsel', UrlEKLoverforsel, urlFejl); + end; - // 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; + // Tjekker UrlEKLoverforselPakkeshop + if PanelValg5.Enabled = true then + begin + TjekkerEnkeltUrl('UrlEKLoverforselPakkeshop', UrlEKLoverforselPakkeshop, urlFejl); + end; - // Tjekker UrlSendPrograminfo - if CheckUrl(UrlSendPrograminfo) then - begin - logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo; - SkrivScanningLogFil(logTekst); - 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; - 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; + // Tjekker UrlFindPakketype + TjekkerEnkeltUrl('UrlFindPakketype', UrlFindPakketype, urlFejl); + + // Tjekker UrlSendPrograminfo + TjekkerEnkeltUrl('UrlSendPrograminfo', UrlSendPrograminfo, urlFejl); + + + logTekst := 'urls er ok'; + ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst); + SkrivScanningLogFil(logTekst); + + Except + TjekUrls := '-'; // markerer at der var fejl + + end; end; -function TMainForm.FileTime2DateTime(FileTime: TFileTime): TDateTime; -var - LocalFileTime: TFileTime; - SystemTime: TSystemTime; +procedure TMainForm.TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer); +const + crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed begin - FileTimeToLocalFileTime(FileTime, LocalFileTime) ; - FileTimeToSystemTime(LocalFileTime, SystemTime) ; - Result := SystemTimeToDateTime(SystemTime) ; + if TUtils.CheckUrl(Url) then + + begin + logTekst := UrlNavn + ' accepteret: ' + Url; + SkrivScanningLogFil(logTekst); + end + else + begin + inc(urlFejl); // Optæller antal fejl + logTekst := UrlNavn + ' svarer ikke: ' + Url; + 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; + + raise Exception.Create('UrlFejl'); + + end; + end; + end; + + procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings); var SR: TSearchRec; @@ -3228,9 +2768,10 @@ repeat if (SR.Attr <> faDirectory) then begin + dt := fileDateToDateTime(SR.Time); // finder filens timestamp for seneste ændring CreationTime := SR.FindData.ftCreationTime; // finder filens timestamp for oprettelse - dtCreation := FileTime2DateTime(CreationTime); // finder filens timestamp for oprettelse + dtCreation := TUtils.FileTime2DateTime(CreationTime); // finder filens timestamp for oprettelse // Selvom creation date godt kan være forskellig fra modified date, // skal vi alligevel altid tjekke filens alder ud fra modified date // (ændring den kan ligge både før og efter oprettelse, hvis filerne er flyttet eller ændret manuelt) @@ -3267,11 +2808,11 @@ end; end; -procedure TMainForm.PakkeshopNulstilClick(Sender: TObject); +procedure TMainForm.btnNulstilClick(Sender: TObject); begin PakkeshopStregkode := ''; PakkeshopTjekkode := ''; - PakkeshopNulstil.Visible := false; + btnNulstil.Visible := false; PakkeshopText1.Caption := 'Stregkode'; BoghandlerStregkode := ''; BoghandlerTjekkode := ''; @@ -3289,17 +2830,7 @@ // MainForm.Color := HexToTColor(Farve); if Farve <> '' then begin - MainForm.Color := 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 + MainForm.Color := TUtils.HexToTColor(Farve); end; if (Budlevering1.Checked) then begin @@ -3363,27 +2894,14 @@ procedure TMainForm.PanelValgAClick(Sender: TObject); 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; -*) // Skal ikke toggle men bare sætte funktionen on // Fravælges ved at vælge en scanningstype - AutomatiskValg1.Checked := true; - PanelValgA.Color := clGreen; - PanelValgA.Font.Color := clWhite; -// 20150311: slut + AutomatiskValg1.Checked := true; + PanelValgA.Color := clGreen; + PanelValgA.Font.Color := clWhite; + + + end; procedure TMainForm.Pakkernormal1Click(Sender: TObject); @@ -3400,7 +2918,6 @@ BoghandlerNavn : String; Koreliste : String; Falsk : Boolean; - Sand : Boolean; SmsKode : String; DBKbane : String; Leveringssted : String; @@ -3422,12 +2939,12 @@ // Her kommer en alarm og rød skærm PlaySound(PWideChar(AlarmLyd)); MainForm.Color := clRed; - PakkeshopNulstil.Visible := true; + btnNulstil.Visible := true; end else begin Falsk := False; - Sand := True; + HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, ''); UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, ''); SmsKode := '999999'; @@ -3447,7 +2964,6 @@ BoghandlerNavn : String; Koreliste : String; Falsk : Boolean; - Sand : Boolean; SmsKode : String; DBKbane : String; Leveringssted : String; @@ -3456,7 +2972,7 @@ Kommentar := '***** Kommentar *****'; BoghandlerNavn := 'Modtagernavn'; Falsk := False; - Sand := True; + if (Printer.Printers.Count = 0) then begin @@ -3491,36 +3007,7 @@ end; end; -{ - VERY fast split function - this function returns part of a string based on - constant defineable delimiters, such as ";". So - SPLIT('this is a test ',' ',3) = 'is' or - SPLIT('data;another;yet;again;more;',';',4) = 'yet' - - Split function shifts index integer by two to - be compatible with commonly used PD split function - gpl 2004 / Juhani Suhonen -} -function TMainForm.split(input: string; schar: Char; s: Integer): string; -var - c: array of Integer; - b, t: Integer; -begin - Dec(s, 2); // for compatibility with very old & slow split function - t := 0; // variable T needs to be initialized... - setlength(c, Length(input)); - for b := 0 to pred(High(c)) do - begin - c[b + 1] := posex(schar, input, succ(c[b])); - // BREAK LOOP if posex looped (position before previous) - // or wanted position reached.. - if (c[b + 1] < c[b]) or (s < t) then break - else - Inc(t); - end; - Result := Copy(input, succ(c[s]), pred(c[s + 1] - c[s])); -end; + procedure TMainForm.Om1Click(Sender: TObject); const @@ -3529,7 +3016,7 @@ tekst, filversion : String; begin - filversion := Sto_GetFmtFileVersion('',''); + filversion := TUtils.Sto_GetFmtFileVersion(''); tekst := 'Program til indscanning af pakker'+crlf+'Version '+filversion+crlf+crlf+'Udviklet af it afdelingen, DAO'; tekst := tekst+crlf+crlf; @@ -3551,12 +3038,12 @@ end else begin - tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')'; + tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')'; end; end else begin - tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')'; + tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')'; end; end; @@ -3624,7 +3111,7 @@ if FileExists(fileName) then begin - if AdobeReaderExists then + if TUtils.AdobeReaderExists then begin //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL); ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL); @@ -3648,14 +3135,14 @@ if FileExists(fileName) then begin - if AdobeReaderExists then + if TUtils.AdobeReaderExists then begin //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL); ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL); end else begin - ShowMessage('Acrobat Reader er ikke installeret!'); + ShowMessage('Adobe Reader er ikke installeret!'); end; end else @@ -3664,6 +3151,13 @@ end; end; +procedure TMainForm.menuIndleveringClick(Sender: TObject); +begin + Scanningtype := '7'; + NulstilAutomatiskValg(); + InitIndleveringskode(); +end; + procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject); begin @@ -3696,7 +3190,7 @@ procedure TMainForm.InitNatxpresslevering(); begin AutomatiskTjekkodeStyring1.Enabled := true; - PakkeshopNulstil.Visible := false; + btnNulstil.Visible := false; Pakkernormal1.Checked := true; InitForm(FarveNormal,TitelNormal,UrlNormal); PanelValg1.Color := clGreen; @@ -3714,8 +3208,8 @@ radioStorPakke.Enabled := false; radioLillePakke.Enabled := false; ListBox1.Visible := true; - OpdaterListenButton01.Enabled := true; - EKLoverforsel.Enabled := true; + BtnOpdaterListen.Enabled := true; + BtnEKLoverforsel.Enabled := true; InitLillePakke(); ListBox1.Items.Clear; if BladhusSted = 0 then @@ -3729,7 +3223,7 @@ begin AutomatiskTjekkodeStyring1.Enabled := false; ReturpakkerfraDAO1.Checked := true; - PakkeshopNulstil.Visible := false; + btnNulstil.Visible := false; InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO); PanelValg2.Color := clGreen; PanelValg2.Font.Color := clWhite; @@ -3748,7 +3242,7 @@ ListBox1.Visible := true; ListBox1.Items.Clear; ListBox2.Items.Clear; - EKLoverforsel.Enabled := false; + BtnEKLoverforsel.Enabled := false; InitLillePakke(); end; @@ -3756,7 +3250,7 @@ begin AutomatiskTjekkodeStyring1.Enabled := false; Returpakkerfraboghandler1.Checked := true; - PakkeshopNulstil.Visible := false; + btnNulstil.Visible := false; InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler); PanelValg3.Color := clGreen; PanelValg3.Font.Color := clWhite; @@ -3774,7 +3268,7 @@ ListBox1.Visible := true; ListBox1.Items.Clear; ListBox2.Items.Clear; - EKLoverforsel.Enabled := false; + BtnEKLoverforsel.Enabled := false; InitLillePakke(); end; @@ -3782,7 +3276,7 @@ begin AutomatiskTjekkodeStyring1.Enabled := false; Budlevering1.Checked := true; - PakkeshopNulstil.Visible := false; + btnNulstil.Visible := false; InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering); PanelValg4.Color := clGreen; PanelValg4.Font.Color := clWhite; @@ -3800,10 +3294,10 @@ radioLillePakke.Enabled := true; ListBox1.Visible := true; ListBox1.Items.Clear; - DownloadButton01.Enabled := false; - OpdaterListenButton01.Enabled := true; - DownloadButton03.Visible := false; - EKLoverforsel.Enabled := false; + BtnDownloadKontrolfil.Enabled := false; + BtnOpdaterListen.Enabled := true; + BtnDownloadRuteskiftFil.Visible := false; + BtnEKLoverforsel.Enabled := false; IdFTP1.Passive := true; IdFTP1.PassiveUseControlHost := true; if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then @@ -3818,7 +3312,7 @@ begin AutomatiskTjekkodeStyring1.Enabled := true; Pakkeshoplevering1.Checked := true; - PakkeshopNulstil.Visible := false; + btnNulstil.Visible := false; InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering); PanelValg5.Color := clGreen; PanelValg5.Font.Color := clWhite; @@ -3836,10 +3330,10 @@ radioLillePakke.Enabled := false; ListBox1.Visible := true; ListBox1.Items.Clear; - DownloadButton01.Enabled := false; - OpdaterListenButton01.Enabled := true; + BtnDownloadKontrolfil.Enabled := false; + BtnOpdaterListen.Enabled := true; - EKLoverforsel.Enabled := true; + BtnEKLoverforsel.Enabled := true; InitLillePakke(); IndlesScanningLogFil(); @@ -3855,7 +3349,7 @@ begin AutomatiskTjekkodeStyring1.Enabled := false; Returpakkerfrapakkeshop1.Checked := true; - PakkeshopNulstil.Visible := false; + btnNulstil.Visible := false; InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop); PanelValg6.Color := clGreen; PanelValg6.Font.Color := clWhite; @@ -3873,9 +3367,9 @@ radioLillePakke.Enabled := false; ListBox1.Visible := true; ListBox1.Items.Clear; - DownloadButton01.Enabled := false; - OpdaterListenButton01.Enabled := true; - EKLoverforsel.Enabled := false; + BtnDownloadKontrolfil.Enabled := false; + BtnOpdaterListen.Enabled := true; + BtnEKLoverforsel.Enabled := false; InitLillePakke(); IndlesScanningLogFil(); if BladhusSted = 0 then @@ -3895,9 +3389,10 @@ procedure TMainForm.InitIndleveringskode(); begin + menuIndlevering.Checked := true; AutomatiskTjekkodeStyring1.Enabled := false; - Returpakkerfrapakkeshop1.Checked := true; - PakkeshopNulstil.Visible := false; + + btnNulstil.Visible := false; InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop); PanelValg7.Color := clGreen; PanelValg7.Font.Color := clWhite; @@ -3919,9 +3414,9 @@ ListBox1.Visible := true; ListBox1.Items.Clear(); - DownloadButton01.Enabled := false; - OpdaterListenButton01.Enabled := true; - EKLoverforsel.Enabled := false; + BtnDownloadKontrolfil.Enabled := false; + BtnOpdaterListen.Enabled := true; + BtnEKLoverforsel.Enabled := false; InitLillePakke(); IndlesScanningLogFil(); if BladhusSted = 0 then @@ -3959,72 +3454,7 @@ // 20150310: slut end; -/// -/// This function reads the file resource of "FileName" and returns -/// the version number as formatted text. -/// -/// Sto_GetFmtFileVersion() = '4.13.128.0' -/// Sto_GetFmtFileVersion('', '%.2d-%.2d-%.2d') = '04-13-128' -/// -/// If "Fmt" is invalid, the function may raise an -/// EConvertError exception. -/// Full path to exe or dll. If an empty -/// string is passed, the function uses the filename of the -/// running exe or dll. -/// Format string, you can use at most four integer -/// values. -/// Formatted version number of file, '' if no version -/// resource found. -function TMainForm.Sto_GetFmtFileVersion(const FileName: String = ''; - const Fmt: String = '%d.%d.%d.%d'): String; -var - sFileName: String; - iBufferSize: DWORD; - iDummy: DWORD; - pBuffer: Pointer; - pFileInfo: Pointer; - iVer: array[1..4] of Word; - S : String; -begin - // set default value - Result := ''; - // get filename of exe/dll if no filename is specified - sFileName := Trim(FileName); - if (sFileName = '') then - sFileName := GetModuleName(HInstance); - // get size of version info (0 if no version info exists) - iBufferSize := GetFileVersionInfoSize(PChar(sFileName), iDummy); - if (iBufferSize > 0) then - begin - GetMem(pBuffer, iBufferSize); - try - // get fixed file info (language independent) - GetFileVersionInfo(PChar(sFileName), 0, iBufferSize, pBuffer); - VerQueryValue(pBuffer, '\', pFileInfo, iDummy); - // read version blocks - iVer[1] := HiWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionMS); - iVer[2] := LoWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionMS); - iVer[3] := HiWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionLS); - iVer[4] := LoWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionLS); - finally - FreeMem(pBuffer); - end; - // format result string - Result := Format(Fmt, [iVer[1], iVer[2], iVer[3], iVer[4]]); - // Hvorfor virker ovenstående ikke ??? - S := ''; - Str(iVer[1],Result); - S := S+Result+'.'; - Str(iVer[2],Result); - S := S+Result+'.'; - Str(iVer[3],Result); - S := S+Result+'.'; - Str(iVer[4],Result); - S := S+Result+''; - Result := S; - end; -end; procedure TMainForm.PlaySound(filename : PWideChar); begin @@ -4095,7 +3525,7 @@ CheckCode(); end; -procedure TMainForm.EKLoverforselClick(Sender: TObject); +procedure TMainForm.BtnEKLoverforselClick(Sender: TObject); var WebSvar : String; URLStr : String; @@ -4105,19 +3535,19 @@ status, kommentar : String; begin - EKLoverforsel.Enabled := false; + BtnEKLoverforsel.Enabled := false; ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Overfører de scannede pakker til EKL'); logTekst := 'Overfører de scannede pakker til EKL'; SkrivScanningLogFil(logTekst); StedKode := Sted; URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]); -// 20150330: start + if PanelValg5.Color = clGreen then begin URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]); end; -// 20150330: slut + try //raise EIdConnClosedGracefully.Create('test'); // KUN TIL TEST @@ -4168,7 +3598,7 @@ end; end; - EKLoverforsel.Enabled := true; + BtnEKLoverforsel.Enabled := true; ListBox1.SetFocus; // for at flytte fokus væk fra knappen så denne ikke aktiveres ved scanning / indtastning af stregkode @@ -4185,7 +3615,7 @@ BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...'; end; KommentarST.Caption := Kommentar; - PakkeshopNulstil.Visible := true; + btnNulstil.Visible := true; end; end; @@ -4209,7 +3639,7 @@ else MessageBox(Handle, 'fejl', 'Stregkode', MB_OK); } - Svar := 'Beregnet: '+CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode; + Svar := 'Beregnet: ' + TUtils.CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode; MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK); CheckCode(); @@ -4217,45 +3647,6 @@ end; -function TMainForm.BarCodeValid (ACode: string): boolean; -var - I: integer; - SumOdd, SumEven: integer; - ADigit, AChecksumDigit: integer; -begin - SumOdd := 0; - SumEven := 0; - for I := 1 to (Length (ACode) - 1) do begin - ADigit := StrToIntDef (ACode [I], 0); - if (I MOD 2 = 0) then begin - SumEven := SumEven + ADigit; - end else begin - SumOdd := SumOdd + ADigit; - end; {if} - end; {for} - AChecksumDigit := StrToIntDef (ACode [Length (ACode)], 0); - Result := ((SumOdd*3 + SumEven + AChecksumDigit) MOD 10 = 0); -end; {--BarCodeValid--} - -{ used for EAN 8/13 } -function TMainForm.CheckSumModulo10(const data:string):string; - var i,fak,sum : Integer; -begin - sum := 0; - fak := Length(data); - for i:=1 to Length(data) do - begin - if (fak mod 2) = 0 then - sum := sum + (StrToInt(data[i])*1) - else - sum := sum + (StrToInt(data[i])*3); - dec(fak); - end; - if (sum mod 10) = 0 then - result := data+'0' - else - result := data+IntToStr(10-(sum mod 10)); -end; // // Bladhus *** @@ -4733,13 +4124,13 @@ ListBox1.SetFocus; // for at flytte fokus væk fra upload knappen så denne ikke aktiveres ved scanning / indtastning af stregkode end; -procedure TMainForm.DownloadButton01Click(Sender: TObject); +procedure TMainForm.BtnDownloadKontrolfilClick(Sender: TObject); begin DownloadBladhusKontrolfil(); ListBox1.SetFocus; // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode end; -procedure TMainForm.OpdaterListenButton01Click(Sender: TObject); +procedure TMainForm.BtnOpdaterListenClick(Sender: TObject); const crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed @@ -4748,7 +4139,7 @@ ListBox1.SetFocus; // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode end; -procedure TMainForm.DownloadButton03Click(Sender: TObject); +procedure TMainForm.BtnDownloadRuteskiftFilClick(Sender: TObject); begin if (getProddag() = 'lørdag') then begin @@ -4757,20 +4148,130 @@ ListBox1.SetFocus; // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode end; -function TMainForm.Explode(var a: TStrArray; Border, S: string): Integer; + +// ToDo: PrintPakkeshopLabel() +procedure TMainForm.PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel); var - S2: string; + XForm, XFormOld: TXForm; //Bruges til rotate X-formation + Angle: integer; + gMode: integer; + Dirigering: string; + begin - Result := 0; - S2 := S + Border; - repeat - SetLength(A, Length(A) + 1); - a[Result] := Copy(S2, 0,Pos(Border, S2) - 1); - Delete(S2, 1,Length(a[Result] + Border)); - Inc(Result); - until S2 = ''; + 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; + + procedure TMainForm.IndlesManglendeScanninger(); var WebSvar : String; @@ -4806,13 +4307,18 @@ end; - if (Scanningtype = '6') then + + if (Scanningtype = '7') then + begin + URLStr := Format(UrlIndleveringsPakkeManglendeScanninger, [StedKode]); + end + else if (Scanningtype = '6') then begin - URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]); + URLStr := Format(UrlPakkeshopManglendeReturScanninger, [StedKode]); end else if (Scanningtype = '5') then begin - URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]); + URLStr := Format(UrlPakkeshopManglendeScanninger, [StedKode]); end else if (Scanningtype = '1') then begin @@ -4854,7 +4360,6 @@ antlinIdag := 0; antlinSenere := 0; - antalFelterFundet := 0; for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin Node:= XMLDocument1.DocumentElement.ChildNodes[I]; if Node.NodeType = ntElement then begin @@ -4933,11 +4438,10 @@ antalFelterFundet := antalFelterFundet + 1; if (tjekkodestatus = '-1') then begin -// 20150306: start -// stregkoderMedTjekkodeArray[linienr] := stregkode; + if (pos(' ', stregkode) > 0) then begin - stregkoderMedTjekkodeArray[linienr] := split(stregkode, ' ', 2); // Fjerner lige en evt. fremtidig dato fra feltet + stregkoderMedTjekkodeArray[linienr] := TUtils.split(stregkode, ' ', 2); // Fjerner lige en evt. fremtidig dato fra feltet end else begin @@ -5124,12 +4628,10 @@ procedure TMainForm.SkrivScanningLogFil(var tekst : string); var SomeTxtFile : TextFile; - buffer : string; - S: string; idag, imorgen : TDateTime; imorgenYmd : string; logFilnavn : string; - error : Integer; + //error : Integer; begin if (SkrivLog = '1') then @@ -5221,10 +4723,10 @@ ReadLn(SomeTxtFile, buffer) ; S := buffer; SetLength(A,0); - Explode(A, ';', S); + TUtils.Explode(A, ';', S); if (length(A) < 2) then begin - Explode(A, ',', S); + TUtils.Explode(A, ',', S); end; if (length(A) > 1) then begin @@ -5298,10 +4800,10 @@ ReadLn(SomeTxtFile, buffer) ; S := buffer; SetLength(A,0); - Explode(A, ';', S); + TUtils.Explode(A, ';', S); if (length(A) < 3) then begin - Explode(A, ',', S); + TUtils.Explode(A, ',', S); end; if (A[0]=imorgenYmd) then begin @@ -5393,6 +4895,26 @@ result := svar; end; +procedure TMainForm.VisAlarmSkaerm(strMessage: string); +begin + //ShowMessage('Ændring ikke tilladt'); + // Her skal komme en 'rød skærm' alarm + PlaySound(PWideChar(AlarmLyd)); + MainForm.Color := clRed; + + + RuteNummerST.Caption := ''; + BoghandlerNavnST.Caption := ''; + btnNulstil.Visible := true; + + if (strMessage <> '') then + begin + ListBox1.Items.Insert(0, strMessage); + KommentarST.Caption := strMessage; + end; + +end; + function TMainForm.getProddato() : TDate; var idag, imorgen : TDateTime; @@ -5482,17 +5004,11 @@ end; end; -function TMainForm.AdobeReaderExists: Boolean; -var - AReg: TRegistry; -begin - result:= false; - AReg := TRegistry.Create; - AReg.RootKey := HKEY_LOCAL_MACHINE; - if AReg.KeyExists('\SOFTWARE\Adobe\Acrobat Reader') then - result:= True; - AReg.Free; -end; + + + + + procedure TMainForm.CheckPrintQue(tjektype : string); type @@ -5597,65 +5113,6 @@ end; end; -function TMainForm.CheckUrl(url:string):boolean; -var - hSession, hfile, hRequest: hInternet; - dwindex,dwcodelen :dword; - dwcode:array[1..20] of char; - res : pchar; -begin - if pos('http://',lowercase(url))=0 then - url := 'http://'+url; - Result := false; - hSession := InternetOpen('InetURL:/1.0', - INTERNET_OPEN_TYPE_PRECONFIG, - nil, - nil, - 0); - if assigned(hsession) then - begin - hfile := InternetOpenUrl(hsession, - pchar(url), - nil, - 0, - INTERNET_FLAG_RELOAD, - 0); - dwIndex := 0; - dwCodeLen := 10; - HttpQueryInfo(hfile, - HTTP_QUERY_STATUS_CODE, - @dwcode, - dwcodeLen, - dwIndex); - res := pchar(@dwcode); - result:= (res ='200') or (res ='302'); - if assigned(hfile) then - InternetCloseHandle(hfile); - InternetCloseHandle(hsession); - end; - -end; - -// 20150310: start -procedure TMainForm.RoundCornerOf(Control: TWinControl); -var - R: TRect; - Rgn: HRGN; -begin - with Control do - begin - R := ClientRect; -// rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 20, 20) ; - rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 25, 25) ; -// rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 30, 30) ; - Perform(EM_GETRECT, 0, lParam(@r)) ; - InflateRect(r, - 4, - 4) ; - Perform(EM_SETRECTNP, 0, lParam(@r)) ; - SetWindowRgn(Handle, rgn, True) ; - Invalidate; - end; -end; -// 20150310: slut end.