--- dao/DelphiScanner/Main.pas 2015/08/23 13:09:14 2656 +++ dao/DelphiScanner/Main.pas 2015/08/26 13:20:47 2678 @@ -8,7 +8,13 @@ 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, Registry, ShellApi, ClipBrd, Buttons, wininet, + UITypes, + PakkeshopLabels, + StBarC, + Math // DegToRad() bruges i PrintPakkeshopLabel + + ; type @@ -56,7 +62,7 @@ DownloadButton03: TButton; Pakkeshoplevering1: TMenuItem; PakkeshopText1: TStaticText; - PakkeshopNulstil: TButton; + btnNulstil: TButton; Returpakkerfrapakkeshop1: TMenuItem; Altidprintepakkelabel1: TMenuItem; chkAltidPrintLabel: TCheckBox; @@ -86,11 +92,12 @@ 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 Sto_GetFmtFileVersion(const FileName: String = ''): String; function TColorToHex(Color : TColor) : string; function HexToTColor(sColor : string) : TColor; function getProddato() : TDate; @@ -144,7 +151,7 @@ procedure UploadButton01Click(Sender: TObject); procedure DownloadButton03Click(Sender: TObject); procedure Pakkeshoplevering1Click(Sender: TObject); - procedure PakkeshopNulstilClick(Sender: TObject); + procedure btnNulstilClick(Sender: TObject); procedure Returpakkerfrapakkeshop1Click(Sender: TObject); procedure InitNatxpresslevering(); procedure InitReturFraDao(); @@ -159,7 +166,6 @@ procedure EKLoverforselClick(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 +185,13 @@ procedure SletLogfiler(Path: string; FileList: TStrings); procedure Manualgenerel1Click(Sender: TObject); procedure TjekkerUrls(); -// 20150310: start + procedure RoundCornerOf(Control: TWinControl); + 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 +199,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,UrlEKLoverforsel : String; // 29150330: start UrlEKLoverforselPakkeshop : String; // 20150330: slut @@ -246,6 +254,8 @@ BoghandlerStregkode, BoghandlerTjekkode : String; TjekUrls : String; + Barcode : TStBarcode; + function CheckSumModulo10(const data:string):string; { used for EAN 8/13 } procedure PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : String = ''); @@ -258,11 +268,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; @@ -301,6 +315,8 @@ StaticTextManglendePakker.Caption := ''; // 20150309: slut + Barcode := TStBarcode.Create(MainForm);//Dynamisk oprettelse af Barcode component + PanelValg1.Color := clBtnFace; if PanelValg1.Enabled = true then begin @@ -534,10 +550,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,7 +559,7 @@ PrinterstatusStaticText1.Caption := ''; PrinterstatusStaticText1.Color := MainForm.Color; - PakkeshopNulstil.BringToFront; + btnNulstil.BringToFront; RoundCornerOf(PanelManglendePakker1); RoundCornerOf(PanelManglendePakker2); @@ -588,6 +601,10 @@ UrlReturPakkeshop := ReadString('Settings','UrlReturPakkeshop','http://omdeling.info/webservices/pakkeshop/returpakkekontrol.php?sted=%s&stregkode=%s'); UrlPakkeshopManglendeScanninger := ReadString('Settings','UrlPakkeshopManglendeScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendescanninger.php?sted=%s'); UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s'); + + UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s'); + + LabelType := ReadInteger('Settings','LabelType',1); FarveNormal := ReadString('Settings','FarveNormal','D8D8D8'); TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker'); @@ -625,7 +642,7 @@ if (SkrivLog = '1') then begin - logTekst := 'Program start (Version: ' + Sto_GetFmtFileVersion('','') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now); + logTekst := 'Program start (Version: ' + Sto_GetFmtFileVersion('') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now); try SkrivScanningLogFil(logTekst); Uploadlogfil1.Enabled := true; @@ -834,6 +851,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 +890,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 +987,7 @@ RutenummerST.Caption := ''; BoghandlerNavnST.Caption := 'Fejl i urls'; KommentarST.Caption := 'Se log vinduet'; - PakkeshopNulstil.Visible := true; + btnNulstil.Visible := true; exit; end; end @@ -1134,7 +1156,7 @@ Scanningtype := gemScanningtype; SendInfoTilServer(Sted, Scanningtype, 'Begin', ''); - SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion('','')); + SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion('')); end; @@ -1152,7 +1174,6 @@ BoghandlerNavn : String; Koreliste : String; PrintNyLabel : Boolean; - List1msg : String; pakkeErScannet : Integer; pakkeForkertSted : Integer; tjekkodeMangler : Integer; @@ -1208,33 +1229,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 +1255,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 +1270,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 +1292,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 +1314,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 +1329,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 +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; @@ -1408,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; @@ -1434,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; @@ -1460,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; @@ -1486,18 +1405,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 +1420,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 +1481,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 +1518,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 +1528,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 +1537,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 +1565,7 @@ BoghandlerStregkode := Stregkode; BoghandlerTjekkode := ''; PakkeshopText1.Caption := 'Stregkode'; - PakkeshopNulstil.Visible := false; + btnNulstil.Visible := false; Stregkode := ''; InitScreen(); end @@ -1724,7 +1577,7 @@ BoghandlerStregkode := Stregkode; BoghandlerTjekkode := '-1'; PakkeshopText1.Caption := 'Stregkode'; - PakkeshopNulstil.Visible := false; + btnNulstil.Visible := false; Stregkode := ''; InitScreen(); end @@ -1736,19 +1589,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(); @@ -1764,25 +1611,18 @@ MainForm.Color := HexToTColor(FarvePakkeshoplevering); if (Pakkernormal1.Checked) then MainForm.Color := HexToTColor(FarveNormal); - PakkeshopNulstil.Visible := false; + 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 := ''; @@ -1803,12 +1643,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,7 +1664,7 @@ 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; @@ -1843,7 +1679,7 @@ begin PlaySound(PWideChar(ScannetOkLyd)); end; - PakkeshopNulstil.Visible := false; + btnNulstil.Visible := false; end else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then begin @@ -1856,30 +1692,22 @@ 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 +1721,9 @@ InitLillePakke(); end; end; -// 20150310: start + SletStregkodelinieFraListboks2(StregKode); -// 20150310: slut + PakkeshopStregkode := ''; PakkeshopTjekkode := ''; BoghandlerStregkode := ''; @@ -2115,8 +1943,6 @@ end; procedure TMainForm.InitBladhus(); -var - LogFilnavn : string; begin Altidprintepakkelabel1.Enabled := false; @@ -2250,6 +2076,8 @@ URLStr : String; pakkestorrelse : String; PrintNyLabelInteger : Integer; + + PakkeshopLabel: TPakkeshopLabel; begin if radioStorPakke.Checked then begin @@ -2259,6 +2087,8 @@ begin pakkestorrelse := 'Lille'; end; + + if Pakkernormal1.Checked then begin if (BoghandlerTjekkode = '') then @@ -2287,6 +2117,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 +2167,26 @@ 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 + + PrintPakkeshopLabel( PakkeshopLabel ); + + end; + + + end else begin RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text; @@ -2369,6 +2219,8 @@ PrintNyLabel := True; end; end; + + if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then begin if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then @@ -2528,7 +2380,7 @@ PlaySound(PWideChar(AlarmLyd)); MainForm.Color := clRed; - PakkeshopNulstil.Visible := true; + btnNulstil.Visible := true; end else @@ -2555,7 +2407,7 @@ begin PlaySound(PWideChar(AlarmLyd)); MainForm.Color := clRed; - PakkeshopNulstil.Visible := true; + btnNulstil.Visible := true; end; end; @@ -2581,7 +2433,7 @@ begin PlaySound(PWideChar(AlarmLyd)); MainForm.Color := clRed; - PakkeshopNulstil.Visible := true; + btnNulstil.Visible := true; end; end; @@ -2605,7 +2457,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 +2471,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 @@ -3228,6 +3080,7 @@ 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 @@ -3267,11 +3120,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 := ''; @@ -3400,7 +3253,6 @@ BoghandlerNavn : String; Koreliste : String; Falsk : Boolean; - Sand : Boolean; SmsKode : String; DBKbane : String; Leveringssted : String; @@ -3422,12 +3274,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 +3299,6 @@ BoghandlerNavn : String; Koreliste : String; Falsk : Boolean; - Sand : Boolean; SmsKode : String; DBKbane : String; Leveringssted : String; @@ -3456,7 +3307,7 @@ Kommentar := '***** Kommentar *****'; BoghandlerNavn := 'Modtagernavn'; Falsk := False; - Sand := True; + if (Printer.Printers.Count = 0) then begin @@ -3529,7 +3380,7 @@ tekst, filversion : String; begin - filversion := Sto_GetFmtFileVersion('',''); + filversion := Sto_GetFmtFileVersion(''); tekst := 'Program til indscanning af pakker'+crlf+'Version '+filversion+crlf+crlf+'Udviklet af it afdelingen, DAO'; tekst := tekst+crlf+crlf; @@ -3664,6 +3515,13 @@ end; end; +procedure TMainForm.menuIndleveringClick(Sender: TObject); +begin + Scanningtype := '7'; + NulstilAutomatiskValg(); + InitIndleveringskode(); +end; + procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject); begin @@ -3696,7 +3554,7 @@ procedure TMainForm.InitNatxpresslevering(); begin AutomatiskTjekkodeStyring1.Enabled := true; - PakkeshopNulstil.Visible := false; + btnNulstil.Visible := false; Pakkernormal1.Checked := true; InitForm(FarveNormal,TitelNormal,UrlNormal); PanelValg1.Color := clGreen; @@ -3729,7 +3587,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; @@ -3756,7 +3614,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; @@ -3782,7 +3640,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; @@ -3818,7 +3676,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; @@ -3855,7 +3713,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; @@ -3895,9 +3753,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; @@ -3975,16 +3834,14 @@ /// 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; +function TMainForm.Sto_GetFmtFileVersion(const FileName: String = ''): String; var sFileName: String; iBufferSize: DWORD; iDummy: DWORD; pBuffer: Pointer; pFileInfo: Pointer; - iVer: array[1..4] of Word; - S : String; + iVer: array[1..4] of Integer; begin // set default value Result := ''; @@ -4009,20 +3866,10 @@ finally FreeMem(pBuffer); end; + // format result string - Result := Format(Fmt, [iVer[1], iVer[2], iVer[3], iVer[4]]); + Result := Format('%d.%d.%d.%d', [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; @@ -4185,7 +4032,7 @@ BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...'; end; KommentarST.Caption := Kommentar; - PakkeshopNulstil.Visible := true; + btnNulstil.Visible := true; end; end; @@ -4771,6 +4618,130 @@ until S2 = ''; end; +// 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; + + procedure TMainForm.IndlesManglendeScanninger(); var WebSvar : String; @@ -4854,7 +4825,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 @@ -5124,12 +5094,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 @@ -5393,6 +5361,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; @@ -5494,6 +5482,66 @@ AReg.Free; end; + +function TMainForm.CheckUrl(url:string):boolean; +var + hSession, hfile: 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; + + +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; + procedure TMainForm.CheckPrintQue(tjektype : string); type TJobs = array [0..1000] of JOB_INFO_1; @@ -5597,65 +5645,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.