--- dao/DelphiScanner/Main.pas 2016/09/22 13:12:23 3117 +++ dao/DelphiScanner/Main.pas 2016/10/20 06:56:45 3130 @@ -247,7 +247,8 @@ procedure HentPakkeInfoFraServer(const Sted, PakkeNr : String; var RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel: Boolean; BoghandlerNummer : String = ''); procedure CheckCode(); - procedure IndlesManglendeScanninger(); + procedure IndlesManglendeScanningerAntal(); + procedure IndlesManglendeScanningerListe(); procedure IndlesRuteskiftFil(var filnavn : string); procedure IndlesKontrolFil(var filnavn : string); procedure IndlesScanningLogFil(); @@ -972,41 +973,43 @@ // Opbygger PanelManglendePakker information gemScanningtype := Scanningtype; - if PanelValg6.Enabled then - begin - Scanningtype := '6'; - IndlesManglendeScanninger(); - end; - - if PanelValg5.Enabled then - begin - Scanningtype := '5'; - IndlesManglendeScanninger(); - end; + IndlesManglendeScanningerAntal(); - if PanelValg4.Enabled then - begin - Scanningtype := '4'; - IndlesManglendeScanninger(); - end; - - if PanelValg3.Enabled then - begin - Scanningtype := '3'; - IndlesManglendeScanninger(); - end; - - if PanelValg2.Enabled then - begin - Scanningtype := '2'; - IndlesManglendeScanninger(); - end; - - if PanelValg1.Enabled then - begin - Scanningtype := '1'; - IndlesManglendeScanninger(); - end; +// if PanelValg6.Enabled then +// begin +// Scanningtype := '6'; +// IndlesManglendeScanningerAntal(); +// end; +// +// if PanelValg5.Enabled then +// begin +// Scanningtype := '5'; +// IndlesManglendeScanningerAntal(); +// end; +// +// if PanelValg4.Enabled then +// begin +// Scanningtype := '4'; +// IndlesManglendeScanningerAntal(); +// end; +// +// if PanelValg3.Enabled then +// begin +// Scanningtype := '3'; +// IndlesManglendeScanningerAntal(); +// end; +// +// if PanelValg2.Enabled then +// begin +// Scanningtype := '2'; +// IndlesManglendeScanningerAntal(); +// end; +// +// if PanelValg1.Enabled then +// begin +// Scanningtype := '1'; +// IndlesManglendeScanningerAntal(); +// end; Scanningtype := gemScanningtype; @@ -1571,7 +1574,7 @@ exit; end; - if (menuNatXpress1.Checked or menuDaoDirekte1.Checked or menuPakkeshop1.Checked) then + if (menuNatXpress1.Checked or menuDaoDirekte1.Checked or menuPakkeshop1.Checked or menuPakkeshopRetur1.Checked) then begin PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel); pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn); @@ -1905,7 +1908,7 @@ BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt'; BladhusKontrolfil_lokal := 'RuteKontrol.txt'; DownloadBladhusKontrolfil(); - IndlesManglendeScanninger(); + IndlesManglendeScanningerAntal(); end; 02 : begin; // BK @@ -1918,7 +1921,7 @@ BtnOpdaterListen.Enabled := true; IdFTP1.Passive := true; IdFTP1.PassiveUseControlHost := true; - IndlesManglendeScanninger(); + IndlesManglendeScanningerAntal(); end; 03 : begin; // FD @@ -1944,7 +1947,7 @@ BladhusKontrolfil_server := 'frafd/RuteKontrol.txt'; BladhusKontrolfil_lokal := 'RuteKontrol.txt'; DownloadBladhusKontrolfil(); - IndlesManglendeScanninger(); + IndlesManglendeScanningerAntal(); end; 04 : begin; // DBK Testprinter1.Visible := true; @@ -2056,18 +2059,16 @@ BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text; PrintNyLabel := False; - if menuPakkeshop1.Checked then + try + PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text); + except on e:exception do + PrintNyLabelInteger := 0; + end; + if (PrintNyLabelInteger = 1) then begin - try - PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text); - except on e:exception do - PrintNyLabelInteger := 0; - end; - if (PrintNyLabelInteger = 1) then - begin - PrintNyLabel := True; - end; + PrintNyLabel := True; end; + end else if menuIndlevering.Checked or chkForstorTilDirekte.Checked then begin @@ -2083,8 +2084,10 @@ RuteNummer := PakkeshopLabel.Koreliste + ' -> ' + PakkeshopLabel.PakkeshopTurid; Stregkode := PakkeshopLabel.Stregkode; - LabelPrint.PrintFuldPakkeLabel( PakkeshopLabel ); - chkForstorTilDirekte.Checked := false; + LabelPrint.PrintLabel(PakkeshopLabel.Stregkode); + +// LabelPrint.PrintFuldPakkeLabel( PakkeshopLabel ); +// chkForstorTilDirekte.Checked := false; end; @@ -2236,13 +2239,12 @@ kontrolKoreliste : string; nytRuteNummer, nyFarve : String; begin - if (PrintNyLabel = True OR chkAltidPrintLabel.Checked = True) then - begin - LabelPrint.PrintLabel( Stregkode ); - end; - - - exit; +// if (PrintNyLabel = True OR chkAltidPrintLabel.Checked = True) then +// begin +// LabelPrint.PrintLabel( Stregkode ); +// end; +// +// exit; if menuDaoDirekte1.Checked then RuteNummerST.Color := TUtils.HexToTColor(Farve); @@ -2363,7 +2365,8 @@ if PrintNyLabel or (RuteNummer = 'Rutenr') then // 20150304: slut begin - LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer); + //LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer); + LabelPrint.PrintLabel( Stregkode ); end; end; 01 : begin; @@ -2371,13 +2374,15 @@ // 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 - LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer); + //LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer); + LabelPrint.PrintLabel( Stregkode ); end; end; 02 : begin; if PrintNyLabel or (RuteNummer = 'Rutenr') then // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test begin - LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer); + //LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer); + LabelPrint.PrintLabel( Stregkode ); end; end; 03 : begin; @@ -2385,17 +2390,17 @@ // 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 - LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer); + //LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer); + LabelPrint.PrintLabel( Stregkode ); end; end; 04 : begin; if PrintNyLabel or (RuteNummer = 'Rutenr') then // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test begin - LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer); + //LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer); + LabelPrint.PrintLabel( Stregkode ); end; end; - else - ShowMessage('Ukendt Bladhus sted: ' + IntToStr(BladhusSted)); end; end; @@ -2428,11 +2433,21 @@ logTekst := logTekst + ' for '+BoghandlerNavn; SkrivScanningLogFil(logTekst); - LabelPrint.PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn) ; + //LabelPrint.PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn) ; + LabelPrint.PrintLabel( Stregkode ); end; end; + // tilføjet 20161020 + if (menuPakkeshop1.Checked OR menuPakkeshopRetur1.Checked) then + begin + if (PrintNyLabel = True OR chkAltidPrintLabel.Checked = True) then + begin + LabelPrint.PrintLabel( Stregkode ); + end; + end; + end; @@ -2893,16 +2908,15 @@ Kommentar : String; BoghandlerNavn : String; Koreliste : String; - Falsk : Boolean; - SmsKode : String; - DBKbane : String; - Leveringssted : String; - LabelData : TLabelData; +// Falsk : Boolean; +// SmsKode : String; +// DBKbane : String; +// Leveringssted : String; begin RuteNummer := 'Rutenr'; Kommentar := '***** Kommentar *****'; BoghandlerNavn := 'Modtagernavn'; - Falsk := False; +// Falsk := False; if (LabelPrint.GetPrinterCount() = 0) then @@ -2921,18 +2935,10 @@ // Leveringssted := 'XXX'; // PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk); - - LabelData := TLabelData.Create(nil); - LabelData.LabelType := 'simpel'; - LabelData.SimpelLinie1 := '999999'; - LabelData.SimpelLinie2 := '999'; - LabelData.SimpelLinie3 := 'xxx'; - LabelPrint.PrintLabelData(Labeldata); + LabelPrint.PrintTestLabel(); LabelPrint.CheckPrintQue('Test', Config.PrinterNavn); - LabelData.Free(); - end; FocusControl(StregkodeST); end; @@ -3163,7 +3169,7 @@ if BladhusSted = 0 then begin IndlesScanningLogFil(); - IndlesManglendeScanninger(); + IndlesManglendeScanningerAntal(); end; end; @@ -3263,7 +3269,7 @@ if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then begin IndlesScanningLogFil(); - IndlesManglendeScanninger(); + IndlesManglendeScanningerAntal(); end; end; @@ -3302,7 +3308,7 @@ IndlesScanningLogFil(); if BladhusSted = 0 then begin - IndlesManglendeScanninger(); + IndlesManglendeScanningerAntal(); end; IdFTP1.Passive := true; IdFTP1.PassiveUseControlHost := true; @@ -3342,7 +3348,7 @@ IndlesScanningLogFil(); if BladhusSted = 0 then begin - IndlesManglendeScanninger(); + IndlesManglendeScanningerAntal(); end; IdFTP1.Passive := true; IdFTP1.PassiveUseControlHost := true; @@ -3394,7 +3400,7 @@ IndlesScanningLogFil(); if BladhusSted = 0 then begin - IndlesManglendeScanninger(); + IndlesManglendeScanningerAntal(); end; IdFTP1.Passive := true; IdFTP1.PassiveUseControlHost := true; @@ -4108,7 +4114,7 @@ crlf = Chr(13) + Chr(10) ; // Carriage return & Linefeed begin - IndlesManglendeScanninger(); + IndlesManglendeScanningerListe(); ListBox1.SetFocus; // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode end; @@ -4122,8 +4128,118 @@ end; +procedure TMainForm.IndlesManglendeScanningerAntal(); +var + Node: IXMLNode; + + URLStr : String; + StedKode : String; + WebSvar : String; + + i : Integer; + + PakkeType : String; + TotalAntal : String; + AntalProdDato : String; + + CurrentPanel : TPanel; + +begin + ListBox2.Clear(); + + if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then + begin + StedKode := BladhusStedKode[BladhusSted]; + end + else + begin + StedKode := Sted; + end; + + URLStr := Format(Config.UrlHentPakkeAntal, [StedKode]); + + + try + WebSvar := IdHTTP1.Get(URLStr); + except + on e:EIdConnClosedGracefully do + begin + // Her skal vi ikke gøre noget - men vi skal forespørge igen + WebSvar := IdHTTP1.Get(URLStr); + end; + on e:exception do + begin + ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Fejl i web forespørgsel: '+e.Message); + logTekst := 'Fejl i web forespørgsel: '+e.Message; + SkrivScanningLogFil(logTekst); + raise exception.CreateFmt('Fejl i web forespørgsel: %s',[e.Message]); + end; + end; + + + + try + + XMLDocument1.LoadFromXML(WebSvar); + + for i:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin + Node:= XMLDocument1.DocumentElement.ChildNodes[I]; + + PakkeType := Node.ChildValues['PakkeType']; + TotalAntal := Node.ChildValues['TotalAntal']; + AntalProdDato := Node.ChildValues['AntalProdDato']; + + + CurrentPanel := nil; + + if (PakkeType = 'natxpress') then + begin + CurrentPanel := PanelManglendePakker1; + end; + + if (PakkeType = 'daodirekte') then + begin + CurrentPanel := PanelManglendePakker4; + end; + + if (PakkeType = 'pakkeshop') then + begin + CurrentPanel := PanelManglendePakker5; + end; + + if (CurrentPanel <> nil) then + begin + CurrentPanel.Caption := TotalAntal; + if ( StrToInt(TotalAntal) > 0) then + begin + CurrentPanel.Visible := true; + end + else + begin + CurrentPanel.Visible := false; + end; + end; + + + end; + + + except on e:exception do + begin + ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Fejl i XML-format: '+e.Message); + logTekst := 'Fejl i XML-format: '+e.Message; + SkrivScanningLogFil(logTekst); + raise exception.CreateFmt('Fejl i XML-format: %s',[e.Message]); + end; + end; + + + + ListBox1.Items.Insert(0,'Pakkeantal indlæst - klar til scanning'); + +end; -procedure TMainForm.IndlesManglendeScanninger(); +procedure TMainForm.IndlesManglendeScanningerListe(); var WebSvar : String; URLStr : String; @@ -4286,6 +4402,7 @@ logTekst := logTekst + '.'; SkrivScanningLogFil(logTekst); + time.stop('Antal Linier2');//DEBUG for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin @@ -4346,7 +4463,7 @@ if antalFelterFundet = antalLiniefelter then begin if (ScanningType = '1') then - ListBox2.Items.Add(pakketype+'; '+stregkode+'; '+modtagernavn+'; '+modtageradresse+'; '+kommentar+'; '+tjekkodestatus) + ListBox2.Items.Add(pakketype+'; '+stregkode+'; '+modtagernavn+'; '+modtageradresse+'; '+kommentar+'; '+tjekkodestatus) else if (ScanningType = '4') then ListBox2.Items.Add(pakketype+'; '+stregkode+'; '+modtagernavn+'; '+modtageradresse+'; '+kommentar) else if (ScanningType = '5') then