/[projects]/dao/DelphiScanner/Main.pas
ViewVC logotype

Diff of /dao/DelphiScanner/Main.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2705 by torben, Fri Sep 4 12:39:33 2015 UTC revision 3049 by torben, Tue Jun 14 09:50:04 2016 UTC
# Line 25  uses Line 25  uses
25    ParentForm,    ParentForm,
26    LabelPrint,    LabelPrint,
27    Configuration,    Configuration,
28    Vcl.Imaging.pngimage    Vcl.Imaging.pngimage,
29      Generics.Collections
30    
31    ;    ;
32    
# Line 38  type Line 39  type
39      XMLDocument1: TXMLDocument;      XMLDocument1: TXMLDocument;
40      ApplicationEvents1: TApplicationEvents;      ApplicationEvents1: TApplicationEvents;
41      chkSporgEfterKunde: TCheckBox;      chkSporgEfterKunde: TCheckBox;
     KommentarST: TStaticText;  
42      MainMenu1: TMainMenu;      MainMenu1: TMainMenu;
43      N1: TMenuItem;      N1: TMenuItem;
44      Pakkernormal1: TMenuItem;      Pakkernormal1: TMenuItem;
# Line 104  type Line 104  type
104      PanelManglendePakker5: TPanel;      PanelManglendePakker5: TPanel;
105      PanelManglendePakker6: TPanel;      PanelManglendePakker6: TPanel;
106      menuIndlevering: TMenuItem;      menuIndlevering: TMenuItem;
107        chkForstorTilDirekte: TCheckBox;
108        chkEmballageRepareret: TCheckBox;
109        KommentarST: TLabel;
110    
111    
112    
# Line 192  type Line 195  type
195    
196    
197    
   
198    //Nedarvet fra IParentForm    //Nedarvet fra IParentForm
199      procedure Msg( msg : string);
200    procedure LogMessage( msg : string);    procedure LogMessage( msg : string);
201    procedure SetPrinterstatusText( txt: string; alert: boolean);    procedure SetPrinterstatusText( txt: string; alert: boolean);
202    function GetFormObject() : TForm;    function GetFormObject() : TForm;
203    
204    
205    
206    private    private
207      SpecialVersionSted, SpecialVersionScanningtype: String;    // Bruges når programmet skal bruges udenfor DAO scanningssteder      SpecialVersionSted, SpecialVersionScanningtype: String;    // Bruges når programmet skal bruges udenfor DAO scanningssteder
208      Stregkode : String;      Stregkode : String;
209      SkrivLog : String;      SkrivLog : String;
210      Sted : String;      Sted : String;
211      StedNavn : String;      StedNavn : String;
212      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,UrlIndleveringsPakkeManglendeScanninger,UrlEKLoverforsel : String;      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering,
213                UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,
214                UrlIndleveringsPakkeManglendeScanninger,UrlEKLoverforsel, URLOmdirigerTilPakkeshop : String;
215    
216      UrlEKLoverforselPakkeshop : String;      UrlEKLoverforselPakkeshop : String;
217    
# Line 213  type Line 219  type
219      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;
220      ScanTjekkode : String;      ScanTjekkode : String;
221      ScanTjekkodeAutomatik : string;      ScanTjekkodeAutomatik : string;
222      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop, FarveIndlevering : String;  
223      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop, TitelIndlevering : String;      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop,
224              FarveIndlevering : String;
225    
226        Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop,
227              TitelIndlevering : String;
228    
229      AlarmLyd : String;      AlarmLyd : String;
230      ScannetOkLyd : String;      ScannetOkLyd : String;
# Line 253  type Line 263  type
263      procedure SkrivScanningLogFil(var tekst : string);      procedure SkrivScanningLogFil(var tekst : string);
264      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;
265      procedure VisAlarmSkaerm(strMessage: string);      procedure VisAlarmSkaerm(strMessage: string);
266        function InjectURL(Url : String) : String;
267    
268    public    public
269      { Public declarations }      { Public declarations }
# Line 278  implementation Line 289  implementation
289  procedure TMainForm.InitForm(Farve,Titel,Url : String);  procedure TMainForm.InitForm(Farve,Titel,Url : String);
290  begin  begin
291    
292        IdHTTP1.ConnectTimeout := 5000; // Vent max 5 sek på connect
293        IdHTTP1.ReadTimeout := 10000; // Vent max 10 sek på read
294    
295    
296    
297    
298      StaticTextManglendePakker.Caption := '';      StaticTextManglendePakker.Caption := '';
299    
300    
# Line 351  begin Line 368  begin
368        else if (Sted = 'BR') then        else if (Sted = 'BR') then
369          begin StedNavn := 'Brøndby: '; end          begin StedNavn := 'Brøndby: '; end
370        else if (Sted = 'BK') then        else if (Sted = 'BK') then
371          begin StedNavn := 'Bladkompagniet: '; end          begin StedNavn := 'Bladkompagniet/ISV: '; end
372          else if (Sted = 'TK') then
373            begin StedNavn := 'BK/Trykkompagniet: '; end
374        else if (Sted = 'DBK') then        else if (Sted = 'DBK') then
375          begin StedNavn := 'DBK Køge: '; end          begin StedNavn := 'DBK/Køge: '; end
376        else if (Sted = '1') then        else if (Sted = '1') then
377          begin StedNavn := 'Ålborg: '; end          begin StedNavn := 'Ålborg: '; end
378        else if (Sted = '2') then        else if (Sted = '2') then
# Line 494  begin Line 513  begin
513       PanelValgA.Font.Color := clWhite;       PanelValgA.Font.Color := clWhite;
514  end;  end;
515    
516    function TMainForm.InjectURL(Url : String) : String;
517    begin
518    
519      Url := Url + '&ver=' + TUtils.URLEncode( TUtils.Sto_GetFmtFileVersion(''));
520      Url := Url + '&host=' + TUtils.URLEncode( TUtils.GetComputerNameHelper());
521      Url := Url + '&user=' + TUtils.URLEncode( TUtils.GetCurrentUserName());
522    
523      Result := Url;
524    end;
525    
526  //InitForm kaldes før FormCreate  //InitForm kaldes før FormCreate
527  procedure TMainForm.FormCreate(Sender: TObject);  procedure TMainForm.FormCreate(Sender: TObject);
# Line 544  begin Line 572  begin
572      SkrivLog := ReadString('Settings','SkrivLog','0');      SkrivLog := ReadString('Settings','SkrivLog','0');
573      Sted := ReadString('Settings','Sted','');      Sted := ReadString('Settings','Sted','');
574      StedNavn := ReadString('Settings','Stednavn','');      StedNavn := ReadString('Settings','Stednavn','');
575    
576      UrlFindPakketype := ReadString('Settings','UrlFindPakketype','http://omdeling.info/webservices/bogpakkekontrol/FindPakketype.php?stregkode=%s');      UrlFindPakketype := ReadString('Settings','UrlFindPakketype','http://omdeling.info/webservices/bogpakkekontrol/FindPakketype.php?stregkode=%s');
577        UrlFindPakketype := InjectURL(UrlFindPakketype);
578    
579      UrlSendPrograminfo := ReadString('Settings','UrlSendPrograminfo','http://omdeling.info/webservices/bogpakkekontrol/SendPrograminfo.php?programnavn=%s&sted=%s&scanningtype=%s&infotype=%s&info=%s');      UrlSendPrograminfo := ReadString('Settings','UrlSendPrograminfo','http://omdeling.info/webservices/bogpakkekontrol/SendPrograminfo.php?programnavn=%s&sted=%s&scanningtype=%s&infotype=%s&info=%s');
580        UrlSendPrograminfo := InjectURL(UrlSendPrograminfo);
581    
582      UrlNormal := ReadString('Settings','UrlNormal','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&tjekkode=%s');      UrlNormal := ReadString('Settings','UrlNormal','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&tjekkode=%s');
583        UrlNormal := InjectURL(UrlNormal);
584    
585      UrlReturDAO := ReadString('Settings','UrlReturDAO','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&returpakketype=%s&pakkestorrelse=%s');      UrlReturDAO := ReadString('Settings','UrlReturDAO','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&returpakketype=%s&pakkestorrelse=%s');
586        UrlReturDAO := InjectURL(UrlReturDAO);
587    
588      UrlReturBoghandler := ReadString('Settings','UrlReturBoghandler','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&returpakketype=%s&pakkestorrelse=%s');      UrlReturBoghandler := ReadString('Settings','UrlReturBoghandler','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&boghandlernummer=%s&returpakketype=%s&pakkestorrelse=%s');
589        UrlReturBoghandler := InjectURL(UrlReturBoghandler);
590    
591      UrlBudlevering := ReadString('Settings','UrlBudlevering','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&leveringstype=%s&pakkestorrelse=%s');      UrlBudlevering := ReadString('Settings','UrlBudlevering','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&leveringstype=%s&pakkestorrelse=%s');
592        UrlBudlevering := InjectURL(UrlBudlevering);
593    
594      UrlManglendeScanninger := ReadString('Settings','UrlManglendeScanninger','http://omdeling.info/webservices/bogpakkekontrol/bogpakkemanglendescanninger.php?sted=%s&type=%s');      UrlManglendeScanninger := ReadString('Settings','UrlManglendeScanninger','http://omdeling.info/webservices/bogpakkekontrol/bogpakkemanglendescanninger.php?sted=%s&type=%s');
595        UrlManglendeScanninger := InjectURL(UrlManglendeScanninger);
596    
597      UrlEKLoverforsel := ReadString('Settings','UrlEKLoverforsel','http://omdeling.info/webservices/bogpakkekontrol/bogpakkertilekl.php?sted=%s');      UrlEKLoverforsel := ReadString('Settings','UrlEKLoverforsel','http://omdeling.info/webservices/bogpakkekontrol/bogpakkertilekl.php?sted=%s');
598        UrlEKLoverforsel := InjectURL(UrlEKLoverforsel);
599    
600      UrlEKLoverforselPakkeshop := ReadString('Settings','UrlEKLoverforselPakkeshop','http://omdeling.info/webservices/pakkeshop/pakkertilekl.php?sted=%s');      UrlEKLoverforselPakkeshop := ReadString('Settings','UrlEKLoverforselPakkeshop','http://omdeling.info/webservices/pakkeshop/pakkertilekl.php?sted=%s');
601        UrlEKLoverforselPakkeshop := InjectURL(UrlEKLoverforselPakkeshop);
602    
603      UrlPakkeshoplevering := ReadString('Settings','UrlPakkeshoplevering','http://omdeling.info/webservices/pakkeshop/pakkekontrol.php?sted=%s&stregkode=%s&tjekkode=%s');      UrlPakkeshoplevering := ReadString('Settings','UrlPakkeshoplevering','http://omdeling.info/webservices/pakkeshop/pakkekontrol.php?sted=%s&stregkode=%s&tjekkode=%s');
604        UrlPakkeshoplevering := InjectURL(UrlPakkeshoplevering);
605    
606      UrlReturPakkeshop := ReadString('Settings','UrlReturPakkeshop','http://omdeling.info/webservices/pakkeshop/returpakkekontrol.php?sted=%s&stregkode=%s');      UrlReturPakkeshop := ReadString('Settings','UrlReturPakkeshop','http://omdeling.info/webservices/pakkeshop/returpakkekontrol.php?sted=%s&stregkode=%s');
607        UrlReturPakkeshop := InjectURL(UrlReturPakkeshop);
608    
609      UrlPakkeshopManglendeScanninger := ReadString('Settings','UrlPakkeshopManglendeScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendescanninger.php?sted=%s');      UrlPakkeshopManglendeScanninger := ReadString('Settings','UrlPakkeshopManglendeScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendescanninger.php?sted=%s');
610      UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s');      UrlPakkeshopManglendeScanninger := InjectURL(UrlPakkeshopManglendeScanninger);
611    
612        UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s');
613        UrlPakkeshopManglendeReturScanninger := InjectURL(UrlPakkeshopManglendeReturScanninger);
614    
615      UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');      UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');
616        UrlIndleveringsPakke := InjectURL(UrlIndleveringsPakke);
617    
618      UrlIndleveringsPakkeManglendeScanninger := ReadString('Settings', 'UrlIndleveringsPakkeManglendeScanninger','http://omdeling.info/webservices/pakkeshop/IndleveringsPakkeManglendeScanninger.php?sted=%s');      UrlIndleveringsPakkeManglendeScanninger := ReadString('Settings', 'UrlIndleveringsPakkeManglendeScanninger','http://omdeling.info/webservices/pakkeshop/IndleveringsPakkeManglendeScanninger.php?sted=%s');
619        UrlIndleveringsPakkeManglendeScanninger := InjectURL(UrlIndleveringsPakkeManglendeScanninger);
620    
621        URLOmdirigerTilPakkeshop := ReadString('Settings', 'URLOmdirigerTilPakkeshop','http://omdeling.info/webservices/pakkeshop/PakkeKontrolOmdirigerTilPakkeshop.php?sted=%s&stregkode=%s');
622        URLOmdirigerTilPakkeshop := InjectURL(URLOmdirigerTilPakkeshop);
623    
624    
625    
# Line 680  begin Line 737  begin
737  {$IfDef STED_BK}  {$IfDef STED_BK}
738      SpecialVersionSted := 'BK';      SpecialVersionSted := 'BK';
739  {$EndIf}  {$EndIf}
740    {$IfDef STED_TK}
741        SpecialVersionSted := 'TK';// BK-Trykkompagniet
742    {$EndIf}
743  {$IfDef STED_DBK}  {$IfDef STED_DBK}
744      SpecialVersionSted := 'DBK';      SpecialVersionSted := 'DBK';
745  {$EndIf}  {$EndIf}
# Line 690  begin Line 750  begin
750      SpecialVersionSted := 'NS';      SpecialVersionSted := 'NS';
751  {$EndIf}  {$EndIf}
752    
   
753      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
754      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)
755      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
# Line 708  begin Line 767  begin
767    
768      if SpecialVersionSted = 'NS' then      if SpecialVersionSted = 'NS' then
769      begin      begin
770         SpecialVersionSted := '01';         //SpecialVersionSted := '01'; // Fra før NS overtog scanning løssalg
771         SpecialVersionScanningtype := '4';         //SpecialVersionScanningtype := '4';
772    
773          //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
774          Sted := SpecialVersionSted;
775         // her skal vi også disable de knapper BK ikke kan bruge
776          PanelValg2.Enabled := false;
777          PanelValg2.Font.Color := clInactiveCaption;
778          PanelValg3.Enabled := false;
779          PanelValg3.Font.Color := clInactiveCaption;
780          //PanelValg6.Enabled := false;
781          //PanelValg6.Font.Color := clInactiveCaption;
782    
783         // her skal vi også disable de menupunkter FD ikke kan bruge
784          ReturpakkerfraDAO1.Enabled := false;
785          Returpakkerfraboghandler1.Enabled := false;
786    
787          //Returpakkerfrapakkeshop1.Enabled := false;
788      end;      end;
789    
790      if SpecialVersionSted = 'FD' then      if SpecialVersionSted = 'FD' then
791      begin      begin
792         SpecialVersionSted := '03';         //SpecialVersionSted := '03'; //fra før at FD overtog scanning
793         SpecialVersionScanningtype := '4';         //SpecialVersionScanningtype := '4';
794    
795    
796          //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
797          Sted := SpecialVersionSted;
798         // her skal vi også disable de knapper BK ikke kan bruge
799          PanelValg2.Enabled := false;
800          PanelValg2.Font.Color := clInactiveCaption;
801          PanelValg3.Enabled := false;
802          PanelValg3.Font.Color := clInactiveCaption;
803          //PanelValg6.Enabled := false;
804          //PanelValg6.Font.Color := clInactiveCaption;
805    
806         // her skal vi også disable de menupunkter FD ikke kan bruge
807          ReturpakkerfraDAO1.Enabled := false;
808          Returpakkerfraboghandler1.Enabled := false;
809    
810          //Returpakkerfrapakkeshop1.Enabled := false;
811    
812      end;      end;
813    
814      if SpecialVersionSted = 'BK' then      if (SpecialVersionSted = 'BK') OR (SpecialVersionSted = 'TK') then
815      begin      begin
816        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil        //FarveNormal := 'A9F5A9';  // her kan vi evt. overrule ini fil
817        Sted := SpecialVersionSted;        Sted := SpecialVersionSted;
# Line 726  begin Line 820  begin
820        PanelValg2.Font.Color := clInactiveCaption;        PanelValg2.Font.Color := clInactiveCaption;
821        PanelValg3.Enabled := false;        PanelValg3.Enabled := false;
822        PanelValg3.Font.Color := clInactiveCaption;        PanelValg3.Font.Color := clInactiveCaption;
823        PanelValg6.Enabled := false;        //PanelValg6.Enabled := false;
824        PanelValg6.Font.Color := clInactiveCaption;        //PanelValg6.Font.Color := clInactiveCaption;
825    
826       // her skal vi også disable de menupunkter BK ikke kan bruge       // her skal vi også disable de menupunkter BK ikke kan bruge
827        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
828        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
829        Returpakkerfrapakkeshop1.Enabled := false;  
830          //Returpakkerfrapakkeshop1.Enabled := false;
831    
832        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
833        begin        begin
834           Scanningtype := '1';           Scanningtype := '1';
# Line 755  begin Line 852  begin
852        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
853        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
854        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
855        PanelValg7.Enabled := false;  
       PanelValg7.Font.Color := clInactiveCaption;  
856    
857       // her skal vi også disable de menupunkter DBK ikke kan bruge       // her skal vi også disable de menupunkter DBK ikke kan bruge
858        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
# Line 1113  begin Line 1209  begin
1209      or (NumberString = 'Retur fra kunde')      or (NumberString = 'Retur fra kunde')
1210      or (NumberString = 'DAO DIREKTE')      or (NumberString = 'DAO DIREKTE')
1211      or (NumberString = 'DAO PAKKESHOP')      or (NumberString = 'DAO PAKKESHOP')
1212        or (NumberString = 'DAO PAKKESHOP')
1213        or (LowerCase(NumberString) = 'for stor hjemmelevering' )
1214            or (LowerCase(NumberString) = 'for stor daodirekte' )
1215      or (NumberString = 'Retur fra pakkeshop') then      or (NumberString = 'Retur fra pakkeshop') then
1216    
1217      begin      begin
# Line 1123  begin Line 1222  begin
1222      begin      begin
1223        ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift');        ShowMessage('Indsæt et gyldigt pakkenummer - uden linieskift');
1224      end;      end;
1225    end;    end;  // Slut ctrl-v
1226    
1227    if Key = #13 then     // Enter    if Key = #13 then     // Enter
1228    begin    begin
1229      if (Length(Trim(Stregkode)) = 0) then  
1230        // Sikre at den er trimmet inden vi går videre - DBK kan finde på at encode et space i enden af deres barcodes
1231        Stregkode := Trim(Stregkode);
1232    
1233        if (Length(Stregkode) = 0) then
1234      begin      begin
1235        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );
1236    
# Line 1177  begin Line 1280  begin
1280         exit;         exit;
1281      end;      end;
1282    
1283        if (LowerCase(StregKode) = 'for stor hjemmelevering') OR (LowerCase(StregKode) = 'for stor daodirekte') then
1284        begin
1285          if chkForstorTilDirekte.Enabled then
1286          begin
1287            chkForstorTilDirekte.Checked := true;
1288          end
1289          else
1290          begin
1291             VisAlarmSkaerm( Stregkode + ' kan ikke vælges på denne scannings tilstand' );
1292          end;
1293          Stregkode := '';
1294          StregkodeST.Caption := StregKode;
1295          exit;
1296        end;
1297    
1298    
1299      if StregKode = 'Indtast kundenummer' then      if StregKode = 'Indtast kundenummer' then
1300      begin      begin
1301         if chkSporgEfterKunde.Enabled = true then         if chkSporgEfterKunde.Enabled = true then
# Line 1374  begin Line 1493  begin
1493        Pakkescanningtype := Scanningtype;        Pakkescanningtype := Scanningtype;
1494      end;      end;
1495    
1496      if (   (Pakkescanningtype = '1') and (PanelValg1.Enabled = false)      if (   ( (Pakkescanningtype = '1') and (PanelValg1.Enabled = false) )
1497          or (Pakkescanningtype = '2') and (PanelValg2.Enabled = false)          or ( (Pakkescanningtype = '2') and (PanelValg2.Enabled = false) )
1498          or (Pakkescanningtype = '3') and (PanelValg3.Enabled = false)          or ( (Pakkescanningtype = '3') and (PanelValg3.Enabled = false) )
1499          or (Pakkescanningtype = '4') and (PanelValg4.Enabled = false)          or ( (Pakkescanningtype = '4') and (PanelValg4.Enabled = false) )
1500          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)          or ( (Pakkescanningtype = '5') and (PanelValg5.Enabled = false) )
1501          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then          or ( (Pakkescanningtype = '6') and (PanelValg6.Enabled = false) ) ) then
1502      begin   // Her skal komme en alarm og rød skærm      begin   // Her skal komme en alarm og rød skærm
1503          VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );          VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1504    
1505         exit;         exit;
1506      end;      end;
1507    
1508      if Automatiskvalg1.Checked and (Length(Stregkode) > 8) then      if (Automatiskvalg1.Checked and (Length(Stregkode) > 8) ) then
1509      begin      begin
1510        GemStregkode := Stregkode;        GemStregkode := Stregkode;
1511        if Pakketype = 'NatXpress' then        if Pakketype = 'NatXpress' then
# Line 1415  begin Line 1534  begin
1534                InitPakkeshoplevering();                InitPakkeshoplevering();
1535              end;              end;
1536            end            end
1537        // Retur kan ikke scannes med 'Automatisk valg'       else if Pakketype = 'PakkeshopRetur' then
1538              begin
1539                if Scanningtype <> '6' then
1540                begin
1541                 VisAlarmSkaerm( Stregkode + ' Pakkeshop retur,'#13#10' kan ikke bruges med automatisk valg' );
1542    
1543                 exit;
1544                end;
1545              end
1546    
1547    
1548        else        else
1549            begin            begin
1550            // Her skal komme en alarm og rød skærm            // Her skal komme en alarm og rød skærm
1551              VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );              //VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1552                 VisAlarmSkaerm( Stregkode + ' kan ikke bruges med automatisk valg' );
1553    
1554               exit;               exit;
1555            end;            end;
# Line 1656  begin Line 1785  begin
1785    
1786    Key := #0;    Key := #0;
1787    
1788    
1789    
1790    
1791    
1792    
1793  end; //End of OnKeyPress  end; //End of OnKeyPress
1794    
1795    
1796    
1797  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
1798  const  const
1799    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
# Line 1987  begin Line 2123  begin
2123    begin    begin
2124      exit;      exit;
2125    end;    end;
2126    
2127      if chkForstorTilDirekte.Checked then  // Denne skal være efter if/else kæden da den overrider de øvrige URL'er
2128      begin
2129        URLStr := Format(URLOmdirigerTilPakkeshop,[Sted, PakkeNr]);
2130      end;
2131    
2132    try    try
2133      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
2134      WebSvar := IdHTTP1.Get(URLStr);      WebSvar := IdHTTP1.Get(URLStr);
# Line 2008  begin Line 2150  begin
2150          end;          end;
2151      end;      end;
2152    end;    end;
2153    
2154    XMLDocument1.LoadFromXML(WebSvar);    XMLDocument1.LoadFromXML(WebSvar);
2155    try    try
2156      if Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked then      if Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked then
# Line 2031  begin Line 2174  begin
2174          end;          end;
2175        end;        end;
2176       end       end
2177      else if menuIndlevering.Checked then      else if menuIndlevering.Checked or chkForstorTilDirekte.Checked then
2178      begin      begin
2179    
2180    
# Line 2046  begin Line 2189  begin
2189         Stregkode := PakkeshopLabel.Stregkode;         Stregkode := PakkeshopLabel.Stregkode;
2190    
2191         LabelPrint.PrintPakkeshopLabel( PakkeshopLabel );         LabelPrint.PrintPakkeshopLabel( PakkeshopLabel );
2192           chkForstorTilDirekte.Checked := false;
2193    
2194       end;       end;
2195    
# Line 2929  begin Line 3073  begin
3073    
3074  end;  end;
3075    
3076    
3077  procedure TMainForm.ListBox1DrawItem(Control: TWinControl; Index: Integer;  procedure TMainForm.ListBox1DrawItem(Control: TWinControl; Index: Integer;
3078    Rect: TRect; State: TOwnerDrawState);    Rect: TRect; State: TOwnerDrawState);
3079  var  var
# Line 3082  begin Line 3227  begin
3227        BtnEKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3228        InitLillePakke();        InitLillePakke();
3229        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3230    
3231          chkForstorTilDirekte.Checked := false;
3232          chkForstorTilDirekte.Enabled := false;
3233    
3234        if BladhusSted = 0 then        if BladhusSted = 0 then
3235        begin        begin
3236          IndlesScanningLogFil();          IndlesScanningLogFil();
# Line 3113  begin Line 3262  begin
3262        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3263        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3264        BtnEKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3265    
3266          chkForstorTilDirekte.Checked := false;
3267          chkForstorTilDirekte.Enabled := false;
3268    
3269        InitLillePakke();        InitLillePakke();
3270  end;  end;
3271    
# Line 3139  begin Line 3292  begin
3292        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3293        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3294        BtnEKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3295    
3296          chkForstorTilDirekte.Checked := false;
3297          chkForstorTilDirekte.Enabled := false;
3298    
3299        InitLillePakke();        InitLillePakke();
3300  end;  end;
3301    
# Line 3170  begin Line 3327  begin
3327        BtnEKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3328        IdFTP1.Passive := true;        IdFTP1.Passive := true;
3329        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3330    
3331          chkForstorTilDirekte.Checked := false;
3332          chkForstorTilDirekte.Enabled := true;
3333    
3334        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then
3335        begin        begin
3336            IndlesScanningLogFil();            IndlesScanningLogFil();
# Line 3205  begin Line 3366  begin
3366    
3367        BtnEKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3368    
3369          chkForstorTilDirekte.Checked := false;
3370          chkForstorTilDirekte.Enabled := true;
3371    
3372        InitLillePakke();        InitLillePakke();
3373        IndlesScanningLogFil();        IndlesScanningLogFil();
3374        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3240  begin Line 3404  begin
3404        BtnDownloadKontrolfil.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3405        BtnOpdaterListen.Enabled := true;        BtnOpdaterListen.Enabled := true;
3406        BtnEKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3407    
3408          chkForstorTilDirekte.Checked := false;
3409          chkForstorTilDirekte.Enabled := false;
3410    
3411    
3412        InitLillePakke();        InitLillePakke();
3413        IndlesScanningLogFil();        IndlesScanningLogFil();
3414        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3287  begin Line 3456  begin
3456        BtnDownloadKontrolfil.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3457        BtnOpdaterListen.Enabled := true;        BtnOpdaterListen.Enabled := true;
3458        BtnEKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3459    
3460          chkForstorTilDirekte.Checked := false;
3461          chkForstorTilDirekte.Enabled := false;
3462    
3463    
3464        InitLillePakke();        InitLillePakke();
3465        IndlesScanningLogFil();        IndlesScanningLogFil();
3466        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4030  var Line 4204  var
4204    stregkode, modtagernavn, modtageradresse, kommentar : string;    stregkode, modtagernavn, modtageradresse, kommentar : string;
4205    pakketype, tjekkodestatus : String;    pakketype, tjekkodestatus : String;
4206    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;
4207    pakketyper : TStrings;    //pakketyper : TStrings;
4208      pakketyper : TDictionary<String, Integer>;
4209      tmpAntal : Integer;
4210    
4211    
4212    
4213    antlin : Integer;    antlin : Integer;
4214    
4215    antlinIdag, antlinSenere : Integer;    antlinIdag, antlinSenere : Integer;
4216    
4217    XmlFelter : TStrings;    //XmlFelter : TStrings;
4218      XmlFelter : TDictionary<String, Integer>;
4219    
4220   begin   begin
4221      XmlFelter := TStringList.Create;  
4222      pakketyper := TStringList.Create;  
4223        XmlFelter := TDictionary<String, Integer>.Create;
4224        pakketyper := TDictionary<String, Integer>.Create;
4225    
4226      linienr := 0;      linienr := 0;
4227      ListBox2.Clear;      ListBox2.Clear;
4228      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Henter oversigt over pakker der endnu ikke er modtaget');      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Henter oversigt over pakker der endnu ikke er modtaget');
# Line 4054  var Line 4237  var
4237          StedKode := Sted;          StedKode := Sted;
4238        end;        end;
4239    
4240          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4241    
4242    
4243    
4244      if (Scanningtype = '7') then      if (Scanningtype = '7') then
# Line 4091  var Line 4276  var
4276        begin        begin
4277          // Her skal vi ikke gøre noget - men vi skal forespørge igen          // Her skal vi ikke gøre noget - men vi skal forespørge igen
4278          WebSvar := IdHTTP1.Get(URLStr);          WebSvar := IdHTTP1.Get(URLStr);
4279    
4280    
4281    
4282        end;        end;
4283        on e:exception do        on e:exception do
4284        begin        begin
# Line 4113  var Line 4301  var
4301            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
4302              if Node.NodeName = 'Stregkode' then              if Node.NodeName = 'Stregkode' then
4303              begin              begin
4304                 antlin := antlin + 1;                 Inc(antlin);
4305                 // 20150306: start                 // 20150306: start
4306                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4307                begin                begin
4308                   if (pos('(', Node.NodeValue) = 0) then                   if (pos('(', Node.NodeValue) = 0) then
4309                   begin                   begin
4310                     antlinIdag := antlinIdag + 1;                     Inc(antlinIdag);
4311                   end                   end
4312                   else                   else
4313                   begin                   begin
4314                     antlinSenere := antlinSenere + 1;                     Inc(antlinSenere);
4315                   end;                   end;
4316                end;                end;
4317                 // 20150306: slut                 // 20150306: slut
4318              end;              end;
4319            end;            end;
4320            if (XmlFelter.values[Node.NodeName] <> '') then            if ( XmlFelter.ContainsKey(Node.NodeName) ) then
4321                  XmlFelter.values[Node.NodeName] := IntToStr(StrToInt(XmlFelter.values[Node.NodeName]) + 1)                begin
4322                    XmlFelter.TryGetValue(Node.NodeName, tmpAntal);
4323                    XmlFelter.AddOrSetValue(Node.NodeName, tmpAntal + 1);
4324                  end
4325                else                else
4326                  XmlFelter.values[Node.NodeName] := '1';                begin
4327                    XmlFelter.Add(Node.NodeName, 1);
4328                  end;
4329    
4330        end;        end;
4331        antalLiniefelter := XmlFelter.Count;        antalLiniefelter := XmlFelter.Count;
# Line 4140  var Line 4333  var
4333        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug
4334        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array
4335    
4336    
4337          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4338    
4339        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4340        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4341        begin        begin
# Line 4148  var Line 4344  var
4344        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4345    
4346        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4347    
4348    
4349        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4350            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4351            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
# Line 4155  var Line 4353  var
4353                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4354                  stregkode := Node.NodeValue;                  stregkode := Node.NodeValue;
4355                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4356              end;              end
4357              if Node.NodeName = 'ModtagerNavn' then begin              else if Node.NodeName = 'ModtagerNavn' then begin
4358                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4359                  modtagernavn := Node.NodeValue;                  modtagernavn := Node.NodeValue;
4360                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4361              end;              end
4362              if Node.NodeName = 'ModtagerAdresse' then begin              else if Node.NodeName = 'ModtagerAdresse' then begin
4363                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4364                  modtageradresse := Node.NodeValue;                  modtageradresse := Node.NodeValue;
4365                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4366              end;              end
4367              if Node.NodeName = 'Kommentar' then begin              else if Node.NodeName = 'Kommentar' then begin
4368                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4369                  kommentar := Node.NodeValue;                  kommentar := Node.NodeValue;
4370                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4371              end;              end
4372              if Node.NodeName = 'PakkeType' then begin              else if Node.NodeName = 'PakkeType' then begin
4373                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4374                  pakketype := Node.NodeValue;                  pakketype := Node.NodeValue;
4375                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4376                if (pakketyper.values[pakketype] <> '') then                if ( pakketyper.ContainsKey(pakketype) ) then
4377                  pakketyper.values[pakketype] := IntToStr(StrToInt(pakketyper.values[pakketype]) + 1)                begin
4378                    pakketyper.TryGetValue(pakketype, tmpAntal);
4379                    pakketyper.AddOrSetValue(pakketype, tmpAntal + 1);
4380                  end
4381                else                else
4382                  pakketyper.values[pakketype] := '1';                  pakketyper.Add(pakketype, 1);
4383              end;              end
4384              if Node.NodeName = 'TjekkodeStatus' then begin              else if Node.NodeName = 'TjekkodeStatus' then begin
4385                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4386                  tjekkodestatus := Node.NodeValue;                  tjekkodestatus := Node.NodeValue;
4387                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
# Line 4198  var Line 4399  var
4399                    linienr := linienr + 1;                    linienr := linienr + 1;
4400                  end;                  end;
4401              end;              end;
4402    
4403    
4404              if antalFelterFundet = antalLiniefelter then              if antalFelterFundet = antalLiniefelter then
4405              begin              begin
4406                if (ScanningType = '1') then                if (ScanningType = '1') then
# Line 4213  var Line 4416  var
4416              end;              end;
4417            end;            end;
4418        end;        end;
       for pakketypeix := 0 to pakketyper.Count-1 do  
         begin  
           ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + ' '+pakketyper[pakketypeix]+' pakke(r) ikke modtaget');  
         end;  
4419    
4420          // Free up the list object  
4421          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4422    
4423    
4424          for pakketype in pakketyper.Keys do
4425          begin
4426            pakketyper.TryGetValue(pakketype, tmpAntal);
4427            ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + pakketype + ' ' + IntToStr(tmpAntal) + ' pakke(r) ikke modtaget');
4428          end;
4429    
4430            // Free up the dictionary object
4431        pakketyper.Free;        pakketyper.Free;
4432    
4433    
4434    
4435  //      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.');  //      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.');
4436        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4437        if (antlinSenere > 0) then        if (antlinSenere > 0) then
# Line 4661  begin Line 4873  begin
4873      KommentarST.Caption := strMessage;      KommentarST.Caption := strMessage;
4874    end;    end;
4875    
4876      Stregkode := ''; //Nulstil stregkode feltet efter at fejl er vist
4877    
4878  end;  end;
4879    
4880  function TMainForm.getProddato() : TDate;  function TMainForm.getProddato() : TDate;
# Line 4734  begin Line 4948  begin
4948  end;  end;
4949    
4950    
4951    //Nedarvet fra IParentForm
4952    procedure TMainForm.Msg( msg : string);
4953    begin
4954      ShowMessage(msg);
4955    end;
4956    
4957  //Nedarvet fra IParentForm  //Nedarvet fra IParentForm
4958  procedure TMainForm.LogMessage( msg : string);  procedure TMainForm.LogMessage( msg : string);

Legend:
Removed from v.2705  
changed lines
  Added in v.3049

  ViewVC Help
Powered by ViewVC 1.1.20