diff --git a/_custom/Rootvin/sql/ep_HDCDZApi_ZpracujPrijataData.sql b/_custom/Rootvin/sql/ep_HDCDZApi_ZpracujPrijataData.sql
index f09b731..6896f24 100644
--- a/_custom/Rootvin/sql/ep_HDCDZApi_ZpracujPrijataData.sql
+++ b/_custom/Rootvin/sql/ep_HDCDZApi_ZpracujPrijataData.sql
@@ -83,7 +83,7 @@ WHILE (1=1)
-- smaz pomocnou tabulku
DELETE FROM #TabJSONData
INSERT #TabJSONData (doc) SELECT @jsonString
- SELECT TOP(1) @akce = JSON_VALUE(doc, '$.action'), @akceSource = JSON_VALUE(doc, '$.source'), @datumText = JSON_VALUE(doc, '$.actionAt') FROM #TabJSONData
+ SELECT TOP(1) @akce = JSON_VALUE(doc, '$.akce'), @akceSource = JSON_VALUE(doc, '$.source'), @datumText = JSON_VALUE(doc, '$.data.created') FROM #TabJSONData
SET @akce = ISNULL(@akce, N'')
SET @akceSource = ISNULL(@akceSource, N'')
diff --git a/_custom/Rootvin/sql/ep_Vyroba_DoplnSkladProVydejDleDokladu.sql b/_custom/Rootvin/sql/ep_Vyroba_DoplnSkladProVydejDleDokladu.sql
index 2702324..697e2e2 100644
--- a/_custom/Rootvin/sql/ep_Vyroba_DoplnSkladProVydejDleDokladu.sql
+++ b/_custom/Rootvin/sql/ep_Vyroba_DoplnSkladProVydejDleDokladu.sql
@@ -65,11 +65,9 @@ SET @uziv = 0
IF (@sklMatHlavni IS NULL)
SELECT @sklMatHlavni=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavní sklad - Materiál' AND CisloStr LIKE N'3%'
IF (@sklTechnolog IS NULL)
- SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NEÚČ%' AND Nazev NOT LIKE N'%polotov%' AND CisloStr LIKE N'2%'
-IF (@sklTechnolog IS NULL)
- SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%sklad%výdej%' AND CisloStr LIKE N'2%'
+ SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NEÚČ%' AND Nazev NOT LIKE N'%polotov%' AND Nazev NOT LIKE N'%HV%' AND CisloStr LIKE N'2%'
IF (@sklTechnologPolo IS NULL)
- SELECT @sklTechnologPolo=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NEÚČ%pol%' AND CisloStr LIKE N'2%'
+ SELECT @sklTechnologPolo=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NEÚČ%' AND (Nazev LIKE N'%polotov%' OR Nazev LIKE N'%HV%') AND CisloStr LIKE N'2%'
IF (@sklPekarna IS NULL)
SELECT @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Výroba - Pekárna' AND CisloStr LIKE N'2%'
diff --git a/_custom/Rootvin/sql/ep_Vyroba_GenObjednavkuMatDoVyrobyNew.sql b/_custom/Rootvin/sql/ep_Vyroba_GenObjednavkuMatDoVyrobyNew.sql
index f742f92..e58d759 100644
--- a/_custom/Rootvin/sql/ep_Vyroba_GenObjednavkuMatDoVyrobyNew.sql
+++ b/_custom/Rootvin/sql/ep_Vyroba_GenObjednavkuMatDoVyrobyNew.sql
@@ -1,5 +1,6 @@
-- dbo.ep_Vyroba_GenObjednavkuMatDoVyrobyNew
CREATE PROCEDURE dbo.ep_Vyroba_GenObjednavkuMatDoVyrobyNew
+ @zaPocetDnu SMALLINT=5,
@errMsg NVARCHAR(500)=N'' OUT
AS
@@ -52,6 +53,7 @@ DECLARE
@sklMatHlavni NVARCHAR(30), -- 311
@sklPekarna NVARCHAR(30), -- 211
@sklTechnolog NVARCHAR(30), -- 261
+ @sklTechnologHV NVARCHAR(30), -- 262
@skladFin NVARCHAR(30), -- 312
@mnoz NUMERIC(19,6),
@mnozVydano NUMERIC(19,6),
@@ -69,7 +71,9 @@ IF OBJECT_ID(N'tempdb..#VyrobaGenObjednavkuMatDoVyrobyNew', N'U') IS NOT NULL
IF (@sklMatHlavni IS NULL)
SELECT TOP(1) @sklMatHlavni=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavní sklad - Materiál' AND CisloStr LIKE N'3%'
IF (@sklTechnolog IS NULL)
- SELECT TOP(1) @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NEÚČ%' AND Nazev NOT LIKE N'%polotov%' AND CisloStr LIKE N'2%'
+ SELECT TOP(1) @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NEÚČ%' AND Nazev NOT LIKE N'%polotov%' AND Nazev NOT LIKE N'%HV%' AND CisloStr LIKE N'2%'
+IF (@sklTechnologHV IS NULL)
+ SELECT TOP(1) @sklTechnologHV=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NEÚČ%' AND (Nazev LIKE N'%polotov%' OR Nazev LIKE N'%HV%') AND CisloStr LIKE N'2%'
IF (@sklPekarna IS NULL)
SELECT TOP(1) @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Výroba - Pekárna' AND CisloStr LIKE N'2%'
@@ -98,13 +102,13 @@ DELETE FROM dbo._TabVyroba_Objednavky_Pol WHERE IDPohybOZ NOT IN (SELECT ID FROM
SET @genDokladMat=0
IF EXISTS (SELECT 1 FROM dbo._TabVyroba_Objednavky o WHERE o.Splneno=0 AND o.OdmitnutoSkladem=0 AND o.NocniObjednavka=0 AND o.Storno=0 AND o.Vratka=0
AND o.JeMaterial=1 AND o.Blokovano=0 AND (o.Mnozstvi-ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=o.ID), 0))>0
- AND DATEDIFF(day, o.DatPorizeni, GETDATE())<6
+ AND DATEDIFF(day, o.DatPorizeni, GETDATE())<=@zaPocetDnu
)
BEGIN
SET @genDokladMat=1
SET @datumDokladuMat = (SELECT MIN(o.DatPorizeni) FROM dbo._TabVyroba_Objednavky o WHERE o.Splneno=0 AND o.OdmitnutoSkladem=0 AND o.NocniObjednavka=0 AND o.Storno=0 AND o.Vratka=0
AND o.JeMaterial=1 AND o.Blokovano=0 AND (o.Mnozstvi-ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=o.ID), 0))>0
- AND DATEDIFF(day, o.DatPorizeni, GETDATE())<6
+ AND DATEDIFF(day, o.DatPorizeni, GETDATE())<=@zaPocetDnu
)
END
SET @datumDokladuMat = ISNULL(@datumDokladuMat, GETDATE())
@@ -114,13 +118,13 @@ SET @datumDokladuMat = ISNULL(@datumDokladuMat, GETDATE())
SET @genDokladFin=0
IF EXISTS (SELECT 1 FROM dbo._TabVyroba_Objednavky o WHERE o.Splneno=0 AND o.OdmitnutoSkladem=0 AND o.NocniObjednavka=0 AND o.Storno=0 AND o.Vratka=0
AND o.JeMaterial=0 AND o.Blokovano=0 AND (o.Mnozstvi-ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=o.ID), 0))>0
- AND DATEDIFF(day, o.DatPorizeni, GETDATE())<6
+ AND DATEDIFF(day, o.DatPorizeni, GETDATE())<=@zaPocetDnu
)
BEGIN
SET @genDokladFin=1
SET @datumDokladuFin = (SELECT MIN(o.DatPorizeni) FROM dbo._TabVyroba_Objednavky o WHERE o.Splneno=0 AND o.OdmitnutoSkladem=0 AND o.NocniObjednavka=0 AND o.Storno=0 AND o.Vratka=0
AND o.JeMaterial=0 AND o.Blokovano=0 AND (o.Mnozstvi-ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=o.ID), 0))>0
- AND DATEDIFF(day, o.DatPorizeni, GETDATE())<6
+ AND DATEDIFF(day, o.DatPorizeni, GETDATE())<=@zaPocetDnu
)
END
SET @datumDokladuFin = ISNULL(@datumDokladuFin, GETDATE())
@@ -142,7 +146,7 @@ IF (@genDokladMat=1) OR (@genDokladFin=1)
AND Vratka=0
AND Blokovano=0
AND IDPhIdent2 IS NOT NULL
- AND DATEDIFF(day, DatPorizeni, GETDATE())<6
+ AND DATEDIFF(day, DatPorizeni, GETDATE())<=@zaPocetDnu
GROUP BY JeMaterial
OPEN m
WHILE (1=1)
@@ -216,7 +220,7 @@ IF (@genDokladMat=1) OR (@genDokladFin=1)
AND Blokovano=0
AND IDPhIdent2 IS NOT NULL
AND JeMaterial=@material
- AND DATEDIFF(day, DatPorizeni, GETDATE())<6
+ AND DATEDIFF(day, DatPorizeni, GETDATE())<=@zaPocetDnu
ORDER BY DatPorizeni
OPEN c
WHILE (1=1)
@@ -300,6 +304,10 @@ IF (@genDokladMat=1) OR (@genDokladFin=1)
END -- @idZboSklad IS NOT NULL
END -- @mnoz>0
+ UPDATE dbo._TabVyroba_Objednavky SET DatZpracovani=GETDATE() WHERE ID=@idObj
+ UPDATE dbo._TabVyroba_Objednavky SET PocetPohybuOZ=ISNULL( (SELECT COUNT(ID) FROM dbo.TabPohybyZbozi_EXT WHERE _Vyroba_IDObjednavkaMat=@idObj), 0)
+ WHERE ID=@idObj
+
END
CLOSE c
DEALLOCATE c
@@ -339,7 +347,7 @@ WHILE (1=1)
SET @mnozVydano = ISNULL( (SELECT SUM(op.Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol op WITH(NOLOCK) JOIN dbo.TabPohybyZbozi p WITH(NOLOCK) ON (p.ID=op.IDPohybOZ)
WHERE op.IDHlava=@idObj AND p.SkutecneDatReal IS NOT NULL), 0)
IF (@mnoz=@mnozVydano)
- UPDATE dbo._TabVyroba_Objednavky SET Splneno=1 WHERE ID=@idObj
+ UPDATE dbo._TabVyroba_Objednavky SET Splneno=1, DatZpracovani=GETDATE() WHERE ID=@idObj
END
CLOSE c
diff --git a/_custom/Rootvin/winSvc/impl.inc b/_custom/Rootvin/winSvc/impl.inc
index 5ec5649..4c2fca5 100644
--- a/_custom/Rootvin/winSvc/impl.inc
+++ b/_custom/Rootvin/winSvc/impl.inc
@@ -19,23 +19,24 @@
destructor THeoRTNZapisObjMatThread.Destroy;
begin
{$IFDEF DEBUG}
- Write('Ukoncuji thread RTN Zapis objednavka materialu do ExpPr...');
+ Write ('Ukoncuji thread RTN Zapis objednavka materialu do ExpPr...');
{$ENDIF}
try
- if (FTimer<>0) then
- CloseHandle (FTimer);
- FTermEvent.Free;
+ if (FTimer<>0) then
+ if WaitForSingleObject(FTimer, 0) <> WAIT_FAILED then
+ CloseHandle (FTimer);
+ FTermEvent.Free;
finally
- end;
- FRunning := false;
- FMainService := nil;
- FDataMod := nil;
- Terminate;
- FLock.Free;
- inherited;
+ FRunning := false;
+ FMainService := nil;
+ FDataMod := nil;
+ Terminate;
+ FLock.Free;
+ inherited;
{$IFDEF DEBUG}
- WriteLn('OK');
+ WriteLn ('OK');
{$ENDIF}
+ end;
end;
@@ -182,8 +183,8 @@
begin
inProg:= true;
- lSQL:= 'DECLARE @errMsg NVARCHAR(500)=N''''' + CRLF +'IF OBJECT_ID(N''dbo.ep_Vyroba_GenObjednavkuMatDoVyrobyNew'', N''P'') IS NOT NULL' + CRLF
- + ' EXEC dbo.ep_Vyroba_GenObjednavkuMatDoVyrobyNew @errMsg OUT' + CRLF + 'SELECT @errMsg AS ErrMsg';
+ lSQL:= 'DECLARE @eMsg NVARCHAR(500)=N''''' + CRLF +'IF OBJECT_ID(N''dbo.ep_Vyroba_GenObjednavkuMatDoVyrobyNew'', N''P'') IS NOT NULL' + CRLF
+ + ' EXEC dbo.ep_Vyroba_GenObjednavkuMatDoVyrobyNew @zaPocetDnu=5, @errMsg=@eMsg OUT' + CRLF + 'SELECT @eMsg AS ErrMsg';
lQry.Open(lSQL);
if (lQry.RecordCount>0) then
diff --git a/_custom/Rootvin/winSvc_zdroje.inc b/_custom/Rootvin/winSvc_zdroje.inc
index b13c85f..cbee9e4 100644
--- a/_custom/Rootvin/winSvc_zdroje.inc
+++ b/_custom/Rootvin/winSvc_zdroje.inc
@@ -44,6 +44,7 @@
arrDefs.Add('ep_V03');
// arrDefs.Add('');
+// arrDefs.Add('ep_HDCDZApi_ZpracujPrijataData');
// objednavky pres Gatema SDServer
// arrDefs.Add('bp_Gatema_SDGenDokZbo1');
diff --git a/_custom/Rootvin/zdroje.RES b/_custom/Rootvin/zdroje.RES
index 3c3da89..6370edf 100644
Binary files a/_custom/Rootvin/zdroje.RES and b/_custom/Rootvin/zdroje.RES differ
diff --git a/hdcDZApi.dproj b/hdcDZApi.dproj
index 7edb552..6d80e50 100644
--- a/hdcDZApi.dproj
+++ b/hdcDZApi.dproj
@@ -132,8 +132,8 @@
true
3
2026
- 412
- CompanyName=HD Consulting s.r.o. Strakonice;FileDescription=HDC x Pro Holding DataZone komunikator (API);FileVersion=3.0.2026.412;InternalName=;LegalCopyright=(c) 2022-25 HD Consulting s.r.o. / Tomas Buzin;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=XE12.3.1;LastCompiledTime=2026.04.12 16:03:18
+ 507
+ CompanyName=HD Consulting s.r.o. Strakonice;FileDescription=HDC x Pro Holding DataZone komunikator (API);FileVersion=3.0.2026.507;InternalName=;LegalCopyright=(c) 2022-25 HD Consulting s.r.o. / Tomas Buzin;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=XE12.3.1;LastCompiledTime=2026.05.07 09:48:18
api2-5.ico
3
2
diff --git a/uCtrlBase.pas b/uCtrlBase.pas
index f0b9f8b..72d0b43 100644
--- a/uCtrlBase.pas
+++ b/uCtrlBase.pas
@@ -41,9 +41,8 @@ const
type
TBaseController = class abstract(TMVCController)
- private
- FConn: TFDConnection;
strict private
+ FConn: TFDConnection;
FObecnyService: TObecnyService;
FAktivitaService: TAktivitaService;
@@ -198,14 +197,6 @@ type
end;
-
-
-
- [MVCPatch]
-
-
-
-
[MVCSwagIgnorePath]
[MVCPath]
TRedirectController = class(TMVCController)
diff --git a/uSvc_Base.pas b/uSvc_Base.pas
index 6e6a3f9..103f5d8 100644
--- a/uSvc_Base.pas
+++ b/uSvc_Base.pas
@@ -3,6 +3,12 @@
interface
uses
+ FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param,
+ FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def,
+ FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys, FireDAC.VCLUI.Wait,
+ Data.DB, FireDAC.Comp.Client, FireDAC.Comp.UI, FireDAC.Phys.MSSQLDef,
+ FireDAC.Phys.ODBCBase, FireDAC.Phys.MSSQL, FireDAC.DatS,
+ FireDAC.DApt.Intf, FireDAC.DApt, FireDAC.Comp.DataSet, FireDAC.Stan.Consts,
System.Generics.Collections,
System.SysUtils,
WinApi.ActiveX,
@@ -23,6 +29,7 @@ type
TServiceBase = class abstract
strict protected
+ FConn: TFDConnection;
FDM: TdatMod;
public
constructor Create (AdmMain: TdatMod); virtual;
@@ -65,13 +72,9 @@ uses
System.StrUtils,
System.Classes,
System.RegularExpressions,
- FireDAC.Stan.Option,
- FireDAC.Comp.Client,
- FireDAC.Stan.Param,
MVCFramework.FireDAC.Utils,
MVCFramework.DataSet.Utils,
MVCFramework.Serializer.Commons,
- FireDAC.Stan.Consts,
System.JSON.Builders,
System.JSON.Writers,
System.JSON.Types,
@@ -117,8 +120,16 @@ uses
destructor TServiceBase.Destroy;
begin
+ try
+ if Assigned(FConn) then
+ FConn.Close;
+ finally
+ FConn.Free;
+ end;
+
if (FDM<>nil) then
FreeAndNil (FDM);
+
inherited;
end;
@@ -128,6 +139,13 @@ uses
// var s: string;
begin
inherited Create;
+
+ if not Assigned(FConn) then
+ begin
+ FConn := TFDConnection.Create (nil);
+ FConn.ConnectionDefName := sqlPoolName;
+ end;
+
FDM:= AdmMain;
{
@@ -157,8 +175,8 @@ uses
function TServiceBase.NewUUID32: string;
var GUID: TGUID;
begin
- CoCreateGuid(GUID);
- SetLength(Result, 32);
+ CoCreateGuid (GUID);
+ SetLength (Result, 32);
StrLFmt(PChar(Result), 32,'%.8x%.4x%.4x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x',
[Guid.D1, Guid.D2, Guid.D3, Guid.D4[0], Guid.D4[1], Guid.D4[2], Guid.D4[3],
Guid.D4[4], Guid.D4[5], Guid.D4[6], Guid.D4[7]]);
@@ -167,13 +185,13 @@ uses
- procedure TServiceBase.DeepCopyList(SourceList, DestList: TObjectList; CopyFunc: TCopyFunction);
+ procedure TServiceBase.DeepCopyList (SourceList, DestList: TObjectList; CopyFunc: TCopyFunction);
var i: Integer;
begin
for i := 0 to SourceList.Count - 1 do
begin
// Pro každý objekt v seznamu zavoláme funkci, která vrátà jeho kopii
- DestList.Add(CopyFunc(SourceList[i]));
+ DestList.Add (CopyFunc(SourceList[i]));
end;
end;
@@ -181,7 +199,7 @@ uses
function TServiceBase.sanitizeSQLString (s: string): string;
begin
- result:= s.Replace(' ', '').Replace(';', '').Replace('--', '').Replace(' OR', '').Trim;
+ result := s.Replace(' ', '').Replace(';', '').Replace('--', '').Replace(' OR', '').Trim;
end;
@@ -192,7 +210,7 @@ uses
lQry: TFDQuery;
sqlConnX: TFDConnection;
begin
- result:= false;
+ result := false;
sqlConnX:= TFDConnection.Create(nil);
sqlConnX.ConnectionDefName:= sqlPoolName;
diff --git a/uWebMod.pas b/uWebMod.pas
index 05de7e3..841d76d 100644
--- a/uWebMod.pas
+++ b/uWebMod.pas
@@ -288,7 +288,7 @@ procedure TWebModule1.WebModuleCreate (Sender: TObject);
// pokud mam povoleno SD Gatema, nesmim mit povoleno Rootvin !!!
{$IFDEF CUSTOM_CTRL_Rootvin}
- FEngine.AddController(TRTNController);
+ FEngine.AddController (TRTNController);
// {$I '_custom/Rootvin/uWebModCustom.inc'}
{$UNDEF CUSTOM_CTRL_GatemaSD}
{$ENDIF}
diff --git a/uWinService.pas b/uWinService.pas
index 4a84696..8096074 100644
--- a/uWinService.pas
+++ b/uWinService.pas
@@ -9,7 +9,7 @@ uses
System.IOUtils, System.SyncObjs, IdBaseComponent, IdComponent, IdServerIOHandler, IdSSL, IdHTTP, IdURI,
IdSSLOpenSSL, IdSSLOpenSSLHeaders, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdException, IdStack,
FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param,
- FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf,
+ FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf, FireDAC.Stan.Consts,
FireDAC.Stan.Async, FireDAC.DApt, Data.DB, FireDAC.Comp.DataSet, FireDAC.Comp.Client,
Neslib.Xml, Neslib.Xml.IO, Neslib.Xml.Types,
{$IFDEF OMNIThreadLib}
@@ -1707,10 +1707,12 @@ Logger.WriteLog(logItem);
end;
finally
oPars.Free;
+ end;
+
+ if (FDManager.State = dmsInactive) then
+ FDManager.Open;
end;
- if (FDManager.State = dmsInactive) then
- FDManager.Open;
end;
diff --git a/ukazBlokovanePorty.cmd b/ukazBlokovanePorty.cmd
index 0610fc3..5bc3d51 100644
--- a/ukazBlokovanePorty.cmd
+++ b/ukazBlokovanePorty.cmd
@@ -1,2 +1,4 @@
@echo off
netsh interface ipv4 show excludedportrange protocol=tcp
+pause >nul
+