Prvni verze

This commit is contained in:
2025-05-21 21:06:33 +02:00
parent a976e7392e
commit fedc940ac4
189 changed files with 72374 additions and 17 deletions

33
.gitignore vendored
View File

@ -4,7 +4,7 @@
#
# Resource files are binaries containing manifest, project icon and version info.
# They can not be viewed as text or compared by diff-tools. Consider replacing them with .rc files.
#*.res
*.res
#
# Type library file (binary). In old Delphi versions it should be stored.
# Since Delphi 2009 it is produced from .ridl file and can safely be ignored.
@ -16,29 +16,17 @@
#
# Visual LiveBindings file. Added in Delphi XE2.
# Uncomment this if you are not using LiveBindings Designer.
#*.vlb
*.vlb
#
# Deployment Manager configuration file for your project. Added in Delphi XE2.
# Uncomment this if it is not mobile development and you do not use remote debug feature.
#*.deployproj
*.deployproj
#
# C++ object files produced when C/C++ Output file generation is configured.
# Uncomment this if you are not using external objects (zlib library for example).
#*.obj
#
# Default Delphi compiler directories
# Content of this directories are generated with each Compile/Construct of a project.
# Most of the time, files here have not there place in a code repository.
#Win32/
#Win64/
#OSX64/
#OSXARM64/
#Android/
#Android64/
#iOSDevice64/
#Linux64/
# Delphi compiler-generated binaries (safe to delete)
*.exe
*.dll
@ -77,7 +65,18 @@ __recovery/
# Castalia statistics file (since XE7 Castalia is distributed with Delphi)
*.stat
.gitignore
*.log
# Boss dependency manager vendor folder https://github.com/HashLoad/boss
modules/
*.7z
*.skincfg
*.json
_old/
bak/
core/
defsX/
_plgPlan/bak/
_plgPlan/pictDS/

884
ComObjekt.pas Normal file
View File

@ -0,0 +1,884 @@
unit ComObjekt;
INTERFACE
uses System.Types, System.SysUtils, Win.ComObj, System.Classes,
ddPlugin_TLB, plgKonfig;
//{$DEFINE IHePlugin3}
const
plgHDCRTNParams_class: TGUID = '{FEDE87D4-E557-48DD-9A35-B13DEF5FE1BB}';
CRLF = #13#10;
type
TPlgHDCRootvinParams = class (TComObject, IHePlugin)
private
procedure Run (const Helios: IHelios); safecall;
end;
// !!! pri zmene IHePluginXX upravit take v plgAbout - info o jadru !!!
TPlgHDCRootvin = class(TComObject, {$IFDEF IHePlugin3} IHePlugin3 {$ELSE} IHePlugin {$ENDIF})
private
FHelios : IHelios;
function PartnerIdentification: WideString; safecall;
function DelphiCompilerVersion: Single; safecall;
procedure OnException(Sender: TObject; E: Exception);
procedure Run (const Helios: IHelios); safecall;
// procedure Work (const Helios: IHelios); safecall;
// procedure About (const Helios: IHelios); safecall;
procedure Install (const Helios: IHelios); safecall;
procedure ZkotrolujDefiniceSQL (const Helios: IHelios);
function NactiKonfig (const Helios: IHelios): boolean;
end;
IMPLEMENTATION
uses Vcl.Controls, System.Win.ComServ, Winapi.Windows, Vcl.Graphics, Vcl.Forms, Vcl.Dialogs, System.Variants,
System.StrUtils, System.Hash, System.AnsiStrings,
plgType, plgMain, plgSpravce,
// [RK 13.04.2012] nove komponenty DevExpress toto vyzaduji, jinak zatuhne Helios
dxGDIPlusAPI{!initialization!},
NativeXml, datMod, helUtils, helTabsBIDs, frmPekarna, frmPlan, frmRamcovyPlan;
var oVar1, oVar2: OleVariant;
LocalFormatSettings: TFormatSettings;
apiMod, jeTest: boolean;
apiServer, plgHDCRTN_Name: string;
tBid, fId: integer;
delkaRC, idKZrodic, idDZrodic, cOrgRodic, cOrgMU, cOrgPrijem, dpzOZ: integer;
radaDZ: string;
function TPlgHDCRootvin.DelphiCompilerVersion: Single;
begin
Result:= System.CompilerVersion;
end;
function TPlgHDCRootvin.PartnerIdentification: WideString;
begin
Result:= 'HEOR0400-00044';
end;
procedure TPlgHDCRootvin.OnException (Sender: TObject; E: Exception);
begin
try
LockWindowUpdate (0);
FHelios.Error (plgPrelozException(E.Message));
except
Vcl.Forms.Application.ShowException(E); //pro jistotu
end;
end;
{
procedure TPlgHDCRootvin.Work (const Helios: IHelios);
var s: WideString;
begin
s := Concat('Nacházíte se v tabulce ', Helios.MainBrowseTable(), '.');
Helios.Info(s);
end;
procedure TPlgHDCRootvin.About (const Helios: IHelios);
var s: WideString;
begin
s := 'Tento plugin je určen pro testování základních funkcí HELIOS iNuvio Interface.';
Helios.Info(s);
end;
}
procedure TPlgHDCRootvin.Install (const Helios: IHelios);
var s: WideString;
begin
ZkotrolujDefiniceSQL (Helios);
s := 'Instalace proběhla úspěšně.';
Helios.Info(s);
end;
function TPlgHDCRootvin.NactiKonfig (const Helios: IHelios): Boolean;
var xml: TNativeXml;
r, n1, n2: TXmlNode;
fn: string;
begin
result:= true;
datMod.phServer:= 'http://rootvin.datazone.cloud/helios/api';
fn:= GetModuleName(HInstance);
fn:= ChangeFileExt(fn, '.xml');
if (FileExists(fn)) then
begin
xml:= TNativeXml.Create(nil);
try
xml.LoadFromFile(fn);
if not(xml.IsEmpty) then
begin
r:= xml.Root;
if (r<>nil) then
begin
n1:= r.NodeByName('cfgPluginHDCRTN');
if (n1<>nil) then
datMod.phServer:= n1.ReadAttributeString('phServer', '');
end;
end;
finally
xml.Free;
end;
end;
end;
procedure TPlgHDCRootvin.ZkotrolujDefiniceSQL (const Helios: IHelios);
var lSQL, lSQL2, lSQLX, errMsg, srcNazev, objectNazev, trgName, sqlDefDB, sqlDefPlg: string;
rs: TResourceStream;
ms: TMemoryStream;
arrDefs: TStringList;
i, pCRLF: integer;
canCont, canCont2: boolean;
hash1, hash2: string;
function LoadStringFromStream (const AStream: TStream): String;
var lenX: Integer;
begin
AStream.Seek(0,0);
lenX:= AStream.Size - AStream.Position;
SetLength(Result, lenX);
if (lenX>0) then
AStream.ReadBuffer(Result[1], lenX);
end;
function MemoryStreamToAnsiString (const M: TMemoryStream): AnsiString;
begin
SetString(Result, PAnsiChar(M.Memory), M.Size);
end;
begin
lSQL:= helUtils.getHeliosStrVal(Helios, '', 'SELECT DATEPART(week, CONVERT(datetime, N''11.12.2023'', 104))');
lSQL2:= helUtils.getHeliosStrVal(Helios, '', 'SELECT DATEPART(iso_week, CONVERT(datetime, N''11.12.2023'', 104))');
if (lSQL='51') and (lSQL2='50') then
datMod.sqlLang:= 'czech'
else
datMod.sqlLang:= 'english';
arrDefs:= TStringList.Create;
arrDefs.Add('tbl_hdc_ph_Log');
arrDefs.Add('tbl_hdc_ph_PrijataJsonData');
arrDefs.Add('trg__hdc_ph_PrijataJsonData_D');
arrDefs.Add('ef_GetDatumASmenu');
arrDefs.Add('ef_Bit2Int');
arrDefs.Add('col_TabEvidRozpracOperR_EXT');
arrDefs.Add('col_TabStavSkladu_EXT');
arrDefs.Add('col_TabVazbyPrikazu_EXT');
arrDefs.Add('col_TabKmenZbozi_EXT');
arrDefs.Add('col_TabPohybyZbozi_EXT');
arrDefs.Add('col_TabDokladyyZbozi_EXT');
arrDefs.Add('tbl__TabVyrobaVydejMatSarze');
arrDefs.Add('tbl__TabVyrobaPalety');
arrDefs.Add('tbl__TabVyrobaPaletyUkonceni');
arrDefs.Add('tbl__TabVyrobaPaletyPohybOZ');
arrDefs.Add('tbl__TabVyrobaStrojCinnost');
arrDefs.Add('tbl__TabVyrobaTestoVyroba');
arrDefs.Add('tbl__TabVyrobaTestoSpotreba');
arrDefs.Add('ef_Vyroba_VratNovyPaletovyList');
arrDefs.Add('ef_Vyroba_VratCisloSarze');
arrDefs.Add('ef_Kmen_VratPocetKsVKartonu');
arrDefs.Add('tbl__TabVyrobaObjednavky');
// arrDefs.Add('tbl__TabVyrobaOperaceStartStop');
arrDefs.Add('ep_P01_HDC1');
arrDefs.Add('ep_P01');
arrDefs.Add('ep_P03_HDC1');
arrDefs.Add('ep_P03');
arrDefs.Add('ep_V03_HDC1');
arrDefs.Add('ep_V03');
arrDefs.Add('ep_Vyroba_VyrobaMimoPlan');
arrDefs.Add('ep_Vyroba_Doklady_Micharna');
arrDefs.Add('ep_Vyroba_GenVydejZeMzdy');
arrDefs.Add('ep_Vyroba_GenOdvodZeMzdy');
arrDefs.Add('ep_Vyroba_DoplnSkladProVydejDleDokl');
arrDefs.Add('ep_Vyroba_InsertEvidRozpracOperPol');
arrDefs.Add('ep_Vyroba_InsertEvidRozpracOper');
arrDefs.Add('ep_Vyroba_PrijemNestandard');
arrDefs.Add('ep_Vyroba_VyrobaMimoPlan');
arrDefs.Add('ep_HDC_PZ_ZapisPolozek');
arrDefs.Add('ep_Vyroba_GenerujPalety');
arrDefs.Add('ep_Vyroba_GenSouhrnnyVydej');
arrDefs.Add('tbl__TabVyrobaVzorky');
arrDefs.Add('tbl__TabKontrolyCCP1');
arrDefs.Add('tbl__TabVyrobaOdpadPek');
// planovani
arrDefs.Add('col_Prikaz_EXT');
arrDefs.Add('col_AdvKPDavky_EXT');
arrDefs.Add('tbl__TabVyrobaPlanRozpad');
arrDefs.Add('ef_Vyroba_GenerujRozpadCasu');
arrDefs.Add('ep_Vyroba_ZapisDoPlanu');
arrDefs.Add('ep_Vyroba_ZrusZakazkuPlanuDleFinPrikazu');
arrDefs.Add('ep_Vyroba_AdvPlan_ZapisDavkyPrikazu');
arrDefs.Add('trg__TabPlan_HDC_D');
arrDefs.Add('trg__TabAdvKPDavky_HDC_D');
// arrDefs.Add('spec_Clear');
arrDefs.Add('trg__TabVyrobaObjednavky_IU');
arrDefs.Add('trg__TabVyrobaObjednavky_Pol_D');
arrDefs.Add('trg__TabVyrobaPalety_IU');
arrDefs.Add('trg__TabVyrobaPalety_D');
arrDefs.Add('trg__TabPohybyZbozi_HDC_IU');
arrDefs.Add('trg__TabPohybyZbozi_HDC_D');
arrDefs.Add('trg__TabVyrCP_HDC_IU');
arrDefs.Add('trg__TabVyrCP_HDC_D');
arrDefs.Add('trg__TabVyrobaPaletyUkonceni_D');
arrDefs.Add('trg__TabVyrobaVydejMatSarze_IU');
arrDefs.Add('trg__TabVyrCisPrikaz_HDC_D');
for i:=0 to arrDefs.Count-1 do
begin
ms:= TMemoryStream.Create;
try
srcNazev:= arrDefs.Strings[i];
canCont:= true;
if (canCont) then
begin
rs:= TResourceStream.Create(HInstance, srcNazev.ToUpper, RT_RCDATA);
ms.CopyFrom(rs, rs.Size);
lSQL:= MemoryStreamToAnsiString(ms);
objectNazev:= LeftStr(lSQL, lSQL.IndexOf(Chr(13))).Replace('-- ', '');
if (srcNazev.StartsWith('ep_', true)) or (srcNazev.StartsWith('ef_', true)) or (srcNazev.StartsWith('trg_')) then
begin
canCont:= false;
hash1:= '';
hash2:= '';
if (srcNazev.StartsWith('trg_')) then
lSQLX:= 'SELECT m.definition FROM ' + Helios.CurrentDB + '.sys.triggers t INNER JOIN ' + Helios.CurrentDB + '.sys.objects o on t.object_id = o.object_id'
+ ' INNER JOIN ' + Helios.CurrentDB + '.sys.sql_modules m on m.object_id = o.object_id WHERE t.name=N' + objectNazev.Replace('dbo.','').QuotedString
else
lSQLX:= 'SELECT OBJECT_DEFINITION(OBJECT_ID(N' + (Helios.CurrentDB + '.' + objectNazev).QuotedString + '))';
sqlDefDB:= helUtils.getHeliosStrVal(Helios, '', lSQLX);
if (sqlDefDB<>'') then
begin
sqlDefDB:= sqlDefDB.Replace('/*' + plgHDCRTN_Name + '*/', '');
hash1:= THashMD5.GetHashString(sqlDefDB);
if (srcNazev.StartsWith('trg_')) then
sqlDefPlg:= MidStr(lSQL, lSQL.IndexOf(Chr(13))+3, lSQL.Length)
else
sqlDefPlg:= lSQL;
if (sqlDefPlg.StartsWith(CRLF)) then
sqlDefPlg:= MidStr(sqlDefPlg, 3, sqlDefPlg.Length);
if (sqlDefPlg.EndsWith(CRLF)) then
sqlDefPlg:= LeftStr(sqlDefPlg, sqlDefPlg.Length-2);
hash2:= THashMD5.GetHashString(sqlDefPlg);
if (hash1<>hash2) then
canCont:= true;
end
else
canCont:= true;
end;
if not(canCont) then
Continue;
if (srcNazev.StartsWith('ep_', true)) then
Helios.ExecSQL ('DROP PROCEDURE IF EXISTS dbo.' + srcNazev);
if (srcNazev.StartsWith('ef_', true)) then
Helios.ExecSQL ('DROP FUNCTION IF EXISTS dbo.' + srcNazev);
if (srcNazev.StartsWith('trg_')) then
begin
if (lSQL.StartsWith('-- ')) then
lSQL:= MidStr(lSQL, lSQL.IndexOf(Chr(13))+3, lSQL.Length);
trgName:= LeftStr(lSQL, lSQL.IndexOf(' ON dbo.'));
trgName:= trgName.Replace ('CREATE TRIGGER ', '');
Helios.ExecSQL ('DROP TRIGGER IF EXISTS ' + trgName);
end;
if (srcNazev.StartsWith('tbl_', true)) then
lSQL:= lSQL.Trim;
if (lSQL<>'') then
try
Helios.ExecSQL (lSQL);
except on E:Exception do
if not(E.Message.Contains('already')) then
Helios.Error(#1'Chyba definice ' + srcNazev + #1 + CRLF + E.Message);
end;
end;
finally
ms.Free;
rs.Free;
end;
end;
arrDefs.Free;
end;
procedure TPlgHDCRootvin.Run (const Helios: IHelios);
const HeliosMinVersion = $030020240620;
BrowseID_PluginInfo = 871;
var extId: Integer;
errMsg: String;
typAkce: integer;
browID, cRec, cntID, l_loop, idDZ, dpz, cOrg, newBid: integer;
lSQL, lSQLx, autor, radDokl, IDcka, params, paramsBak, vlastPar, vlastPar2, contInfo, sz, rc, podm, sTemp: string;
iTemp, iTemp2: integer;
arrId: TArray<integer>;
term: boolean;
i: Integer;
Browse: TplgBrowse;
GUIDAkce: String;
Q: IHeQuery;
Porovnani: TplgPorovnaniVerzi;
VerzeDB: String;
ZmenyOK: Boolean;
MinVerze: Int64;
PomHandle: THandle;
SlepaProcName: string;
SlepaProcGUID: string;
SlepaProcBrowse: string;
fPekarna: TformPekarna;
fPlan: TformPlan;
fRamcovyPlan: TformRamcovyPlan;
begin
UseLatestCommonDialogs:= true;
LocalFormatSettings:= TFormatSettings.Create;
try
FHelios:= Helios;
SpravceHeliosu.PridejHelios (FHelios);
try
Application.OnException:= Self.OnException;
// [RK 10.04.2006] zavedeni PomHandle, problemy s realokaci ikonky
// [RK 02.04.2009] doplneno pretypovani na THandle
PomHandle := THandle(FHelios.MainApplicationHandle);
if PomHandle <> Application.Handle then
Application.Handle := PomHandle;
PomHandle := THandle(FHelios.MainApplicationIconHandle);
if PomHandle <> Application.Icon.Handle then
Application.Icon.Handle := PomHandle;
with Application.DefaultFont do
begin
CharSet := FHelios.Charset;
Name := FHelios.Font;
Height := FHelios.FontHeight;
Screen.MenuFont.CharSet := CharSet;
Screen.MenuFont.Name := Name;
Screen.MenuFont.Height := Height;
end;
// ### INICIALIZACE ###
InicializaceJadraPluginu (FHelios);
PluginKonfig.VlastniInicializacePluginu (FHelios);
VerzeDB:= plgNactiVerziPluginuZDB (FHelios, ZmenyOK);
Porovnani:= plgPorovnejVerziPluginuSVerziDB (VerzeDB);
// ### INSTALACE PLUGINU ###
if (FHelios.BrowseID = BrowseID_PluginInfo) and plgExtKomIDInstalace(FHelios) then
begin
InstalacePluginu (FHelios, (FHelios.ExtKomID = Cplg_ExtKomID_TichaInstalace));
Exit;
end;
NactiKonfig (Helios);
if (Helios.HeVersion<HeliosMinVersion) then
begin
errMsg := 'Plugin vyžaduje min verzi Heliosu ' + IntToHex(HeliosMinVersion, 12) + '; Aktuální verze je ' + IntToHex(Helios.HeVersion, 12);
Helios.Error(errMsg);
raise Exception.Create(errMsg);
Exit;
end;
extId:= Helios.ExtKomID;
lSQLx:= 'SELECT UP FROM ' + tblExtKom + ' WHERE ID=' + extId.ToString;
plgHDCRTN_Name:= helUtils.getHeliosStrVal(Helios, '', lSQLx);
ZkotrolujDefiniceSQL (Helios);
helUtils.ReseedTable (Helios, tblDZ);
helUtils.ReseedTable (Helios, tblPZ);
helUtils.ReseedTable (Helios, tblPrikazVC);
with Helios.OpenSQL('SELECT CONVERT(nvarchar(128),CONTEXT_INFO(),2)') do
if VarIsNull(FieldValues(0)) then
contInfo:= 'NULL'
else
contInfo:= VarToStr(FieldValues(0));
Helios.ExecSQL('SET CONTEXT_INFO 0x48444334526F6F7476696E'); // nastav context v sys.sysprocesses (hexadecimalne HDC4Rootvin)
lSQL:= 'IF OBJECT_ID(''tempdb..#TabExtKom'', N''U'') IS NULL CREATE TABLE #TabExtKom (Typ TINYINT DEFAULT NULL, Poznamka NVARCHAR(255))' + CRLF;
lSQL:= lSQL + 'IF OBJECT_ID(N''tempdb..#TabTempUziv'') IS NULL CREATE TABLE #TabTempUziv (Tabulka';
lSQL:= lSQL + ' NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)';
Helios.ExecSQL(lSQL);
delkaRC:= helUtils.getHeliosIntVal(Helios, 30, 'SELECT TOP(1) DelkaRegCislaZbozi FROM ' + tblHGlob);
term:= false;
params:= '';
vlastPar:= '';
vlastPar2:= '';
typAkce:= -1;
browID:= 0;
jeTest:= false;
lSQL:= lSQLx.Replace('T UP F', 'T Parametry F');
with Helios.OpenSQL(lSQL) do
if (RecordCount=1) then
begin
params:= VarToStr(FieldValues(0));
if (params.ToLower.Contains(';test')) then
jeTest:= true;
paramsBak:= VarToStr(FieldValues(0));
if (params.Contains(';')) then
begin
typAkce:= StrToInt(LeftStr(params,Pos(';',params)-1));
params:= MidStr(params,Pos(';',params)+1,255);
if (params.Contains(';')) then
begin
if not(TryStrToInt(LeftStr(params,Pos(';',params)-1), browID)) then
browID:= 0;
params:= MidStr(params,Pos(';',params)+1,255);
end
else
if not(TryStrToInt(params, browID)) then
browID:= 0;
if (params.Contains(';')) then // zadany 3 parametry (akce, browID, vlastnikID)
begin
params:= MidStr(params,Pos(';',params)+1,255);
if (params.Contains(';')) then
begin
vlastPar:= LeftStr(params,Pos(';',params)-1);
vlastPar2:= MidStr(params,Pos(';',params)+1,255);
end
else
vlastPar:= params;
end;
end
else
if (params<>'') then
if not(TryStrToInt(params, typAkce)) then
typAkce:= -1;
end;
if (browID>0) then
if (Helios.BrowseID<>browID) then
begin
typAkce:= 0;
Helios.Error('Tento plugin lze volat pouze z přehledu: '#1 + IntToStr(browID) + #1'.');
Exit;
end;
IDcka:= '';
cRec:= 0;
if (Helios.SelectedRecordIDs<>'') then
IDcka:= Helios.SelectedRecordIDs
else
if not VarIsNull(Helios.CurrentRecordID) then
begin
cRec:= StrToInt(VarToStr(Helios.CurrentRecordID));
IDcka:= IntToStr(cRec);
end;
if (IDcka<>'') then
begin
cntID:= 1 + Length(IDcka)-Length(StringReplace(IDcka,',','',[rfReplaceAll]));
SetLength(arrID,cntID);
for l_loop:=0 to cntID-1 do
begin
if Pos(',',IDcka)>0 then
begin
arrID[l_loop]:= StrToInt(LeftStr(IDcka,Pos(',',IDcka)-1));
IDcka:= MidStr(IDcka,Pos(',',IDcka)+1,262140) // 65535 * 4 (max. delka pole)
end
else
arrID[l_loop]:= StrToInt(IDcka);
end;
cRec:= arrID[0];
end;
idDZrodic:= -1;
idDZ:= -1;
cOrgRodic:= -1;
cOrg:= -1;
cOrgMU:= -1;
cOrgPrijem:= -1;
dpzOZ:= -1;
if (Helios.HeliosVlastnik<>nil) then
begin
if (Helios.HeliosVlastnik.QueryEdit<>nil) then
begin
try
if (Helios.HeliosVlastnik.QueryEdit.FieldByName('ID')<>nil) then
if not(TryStrToInt(VarToStr(Helios.HeliosVlastnik.QueryEdit.FieldByNameValues('ID')), idDZrodic)) then
idDZrodic:= -1;
finally
end;
try
dpzOZ:= VarToStr(Helios.HeliosVlastnik.QueryEdit.FieldByNameValues('DruhPohybuZbo')).ToInteger;
finally
end;
try
radaDZ:= VarToStr(Helios.HeliosVlastnik.QueryEdit.FieldByNameValues('RadaDokladu'));
finally
end;
try
if not(TryStrToInt(VarToStr(Helios.HeliosVlastnik.QueryEdit.FieldByNameValues('CisloOrg')), cOrgRodic)) then
cOrgRodic:= -1;
finally
end;
try
if not(TryStrToInt(VarToStr(Helios.HeliosVlastnik.QueryEdit.FieldByNameValues('MistoUrceni')), cOrgMU)) then
cOrgMU:= -1;
finally
end;
try
if not(TryStrToInt(VarToStr(Helios.HeliosVlastnik.QueryEdit.FieldByNameValues('Prijemce')), cOrgPrijem)) then
cOrgPrijem:= -1;
finally
end;
end;
if (Helios.QueryEdit<>nil) then
begin
try
if (Helios.QueryEdit.FieldByName('ID')<>nil) then
if not(TryStrToInt(VarToStr(Helios.QueryEdit.FieldByName('ID').Value), idDZ)) then
idDZ:= -1;
finally
end;
if (browID<>959) and (browID<>962) then // ne pro DObj
begin
try
dpzOZ:= VarToStr(Helios.QueryEdit.FieldByName('DruhPohybuZbo').Value).ToInteger;
finally
end;
try
radaDZ:= VarToStr(Helios.QueryEdit.FieldByName('RadaDokladu').Value);
finally
end;
end;
try
if (Helios.QueryEdit.FieldByName('CisloOrg')<>nil) then
if not(TryStrToInt(VarToStr(Helios.QueryEdit.FieldByName('CisloOrg').Value), cOrg)) then
cOrg:= -1;
finally
end;
try
if not(TryStrToInt(VarToStr(Helios.QueryEdit.FieldByName('MistoUrceni').Value), cOrgMU)) then
cOrgMU:= -1;
finally
end;
try
if not(TryStrToInt(VarToStr(Helios.QueryEdit.FieldByName('Prijemce').Value), cOrgPrijem)) then
cOrgPrijem:= -1;
finally
end;
end;
end;
if FHelios.ExtKomID = Cplg_ExtKomID_EditorController then
SpustControllerEditoru (FHelios)
else
if FHelios.ExtKomID = Cplg_ExtKomID_Zpravy then
PluginKonfig.ExtKomIDJeRovnoNule (FHelios)
else
if FHelios.ExtKomID = Cplg_ExtKomID_Konfigurace then
PluginKonfig.PluginConfiguration (FHelios)
else
begin
apiMod:= false;
datMod.apiMod:= apiMod;
apiServer:= '';
datMod.apiServer:= apiServer;
with Helios.OpenSQL('SELECT CONVERT(nvarchar(255), Poznamka) AS Poznamka FROM ' + tblExtKomPar + ' WHERE IdExtKom=' + extId.ToString + ' AND Popis=N''APIServer''') do
if (RecordCount=1) then
if (VarToStr(FieldByNameValues('Poznamka'))<>'') then
begin
datMod.apiMod:= true;
datMod.apiServer:= VarToStr(FieldByNameValues('Poznamka'));
// fPekarna.apiMod:= datMod.apiMod;
// fPekarna.apiServer:= datMod.apiServer;
end;
case typAkce of
-1: begin
Install (Helios)
{
else if extId = -2 then
About (Helios)
else
Work (Helios);
}
end;
1: begin
fPekarna:= TformPekarna.Create(nil);
try
try
fPekarna.Helios:= Helios;
fPekarna.apiMod:= apiMod;
fPekarna.apiServer:= apiServer;
fPekarna.ShowModal;
except on E:Exception do
if not(term) then
begin
errMsg:= 'Chyba fPekarna: ' + E.Message;
Helios.Error(errMsg);
raise Exception.Create(errMsg);
end;
end;
finally
fPekarna.Free;
end;
end;
2: begin
if not((dpzOZ=4) and (radaDZ='231')) then
Helios.Error(#1'Akci můžete spustit jen nad dokladem Výdejky/převodky řady 231'#1)
else
begin
tBid:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT DPBID FROM ' + tblObecPrehled + ' WHERE NazevSys=N''hvw_Vyroba_Micharna_PozadavkyObj''');
if (tBid>0) then
begin
lSQL:= 'DROP TABLE IF EXISTS #TabZapisPolozekOZ' + CRLF + 'CREATE TABLE #TabZapisPolozekOZ (ID INT IDENTITY(1,1) NOT NULL, IDPolozky INT NOT NULL, PRIMARY KEY (ID))' + CRLF;
podm:= '(hvw_Vyroba_Micharna_PozadavkyObj.Blokovano=0 OR hvw_Vyroba_Micharna_PozadavkyObj.MnozKVydeji>0) AND hvw_Vyroba_Micharna_PozadavkyObj.Splneno=0';
if Helios.Prenos2 (tBid, 'ID', 'ID', oVar1, oVar2, podm, 'Vyberte položky', false, true, false, 1) then
begin
arrId:= helUtils.StrToArrayInt (VarToStr(oVar1), ',');
for i:=Low(arrId) to High(arrId) do
lSQL:= lSQL + 'INSERT #TabZapisPolozekOZ (IDPolozky) SELECT ' + arrId[i].ToString + CRLF;
end;
if (helUtils.SQLObjectExists(Helios, 'dbo.ep_HDC_PZ_ZapisPolozek')) and (Length(arrId)>0) then
begin
lSQL:= lSQL + 'EXEC dbo.ep_HDC_PZ_ZapisPolozek @typ=1, @idDokladOZDst=' + idDZ.ToString; // 1=zapis z dbo._TabVyroba_Objednavky do dokladu OZ
try
Helios.ExecSQL(lSQL);
except on E:Exception do
Helios.Error(#1'Chyba zápisu položek:'#1 + CRLF + E.Message);
end;
end;
end;
end;
end;
3: begin
fRamcovyPlan:= TformRamcovyPlan.Create (nil);
try
fRamcovyPlan.Helios:= Helios;
fRamcovyPlan.ShowModal;
finally
fRamcovyPlan.Free;
end;
end;
101: begin
fPlan:= TformPlan.Create (nil);
try
try
fPlan.Helios:= Helios;
fPlan.ShowModal;
except on E:Exception do
if not(term) then
begin
errMsg:= 'Chyba fPlan: ' + E.Message;
Helios.Error(errMsg);
raise Exception.Create(errMsg);
end;
end;
finally
FreeAndNil(fPlan);
end;
end;
end;
Helios.Refresh(true);
if (contInfo='NULL') then
Helios.ExecSQL('SET CONTEXT_INFO 0x')
else
Helios.ExecSQL('SET CONTEXT_INFO 0x' + contInfo);
// ukoncit Helios, lze pouzit v Automatech
if (term) then
Application.Terminate;
end;
finally
SpravceHeliosu.OdeberHelios (FHelios);
end;
except
// neni to pres Application.HandleException() kvuli probublani vyjimky
// do Heliosu (konkretni pouziti napr. v Automatu)
on E: EExternal do
begin
LockWindowUpdate(0); // jistota, kdyby nekde zustalo viset
raise EExternal.Create(E.Message);
end;
on E: Exception do
begin
LockWindowUpdate(0); // jistota, kdyby nekde zustalo viset
E.Message:= plgPrelozException(E.Message);
raise;
end;
end;
end;
// param plugin ????
procedure TPlgHDCRootvinParams.Run (const Helios: IHelios);
var lSQL: string;
begin
lSQL:= 'DECLARE @p1 NVARCHAR(10)=N''''' + CRLF
+ 'IF OBJECT_ID(N''tempdb..#TabExtKomParPlugin'',''U'') IS NOT NULL' + CRLF
+ ' SELECT TOP(1) @p1=HIQPar1 FROM #TabExtKomParPlugin' + CRLF
+ 'SELECT @p1 AS Par1';
with Helios.OpenSQL(lSQL) do
Helios.Info('Par1: ' + VarToStr(FieldByName('Par1').Value));
end;
{ =========================================================================== }
function PluginGetSysAndClassName(Vysl: PAnsiChar): DWORD; stdcall;
begin
with PluginKonfig do
begin
Result := Length(PluginSystemoveJmeno + '.' + PluginClassName);
if Assigned(Vysl) then
System.AnsiStrings.StrPCopy(Vysl, AnsiString(PluginSystemoveJmeno + '.' + PluginClassName));
end;
end;
{ --------------------------------------------------------------------------- }
(*
procedure PluginGetDelphiVersion(Vysl: PAnsiChar); stdcall;
var
LVer: AnsiString;
begin
if Assigned(Vysl) then
begin
{$IFDEF VER220} { Embarcadero Delphi 15 XE}
LVer := 'XE';
{$ELSE}
{$IFDEF VER240} { Embarcadero Delphi 17 XE3}
LVer := 'XE3';
{$ELSE}
LVer := '??';
{$ENDIF}
{$ENDIF}
StrPCopy(Vysl, LVer);
end;
end;
*)
{ --------------------------------------------------------------------------- }
procedure PluginReadyForSilentInstall; stdcall;
begin
// nic, pouze flag pro pouziti tiche instalace
end;
{ --------------------------------------------------------------------------- }
// AJ, 8.12.2015 - Administrátorská podpora v HeO
procedure PluginReadyForSuperSilentInstall; stdcall;
begin
// nic, pouze flag pro použití super tiché instalace (tj. instalace, která požírá SQL raiserrory, hlášky a chyby a vše zaloguje do logu)
end;
{ --------------------------------------------------------------------------- }
exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer,
PluginGetSysAndClassName,
// PluginGetDelphiVersion,
PluginReadyForSilentInstall,
PluginReadyForSuperSilentInstall // AJ, 8.12.2015 - Administrátorská podpora v HeO
;
initialization
TComObjectFactory.Create(ComServer, TPlgHDCRootvin, PluginKonfig.PluginClass_ID, PluginKonfig.PluginClassName, '', ciMultiInstance, tmSingle);
// TComObjectFactory.Create(ComServer, TPlgHDCRootvin, plgHDCRTN_class, 'run', '', ciMultiInstance, tmSingle);
// TComObjectFactory.Create(ComServer, TPlgHDCRootvinParams, plgHDCRTNParams_class, 'params', '', ciMultiInstance, tmSingle);
END.

74
PluginHDCRTN.dpr Normal file
View File

@ -0,0 +1,74 @@
library PluginHDCRTN;
uses
madExcept,
madLinkDisAsm,
madListHardware,
madListProcesses,
madListModules,
ComServ,
System.Types,
AnsiStrings,
ComObjekt in 'ComObjekt.pas',
frmPekarna in 'frmPekarna.pas' {formPekarna},
datMod in 'datMod.pas' {dm: TDataModule},
frmPrijemNestandard in 'frmPrijemNestandard.pas' {formPrijemNestandard},
uUtils in 'uUtils.pas' {frmAbout},
frmKontrolaCCP1 in 'frmKontrolaCCP1.pas' {formKontrolaCCP1},
frmKontrolaCCP1edt in 'frmKontrolaCCP1edt.pas' {formKontrolaCCP1edt},
frmTiskKAStitku in 'frmTiskKAStitku.pas' {formTiskKAStitku},
frmAktSarze in 'frmAktSarze.pas' {formAktSarze},
frmTiskyNahledy in 'frmTiskyNahledy.pas' {formTiskyNahledy},
frmPLZakazky in 'frmPLZakazky.pas' {formPLZakazky},
frmZahajeniPalety in 'frmZahajeniPalety.pas' {formZahajeniPalety},
frmUkonceniPalety in 'frmUkonceniPalety.pas' {formUkonceniPalety},
frmVyrobniDenik in 'frmVyrobniDenik.pas' {formVyrobniDenik},
frmPredvyroba in 'frmPredvyroba.pas' {formPredvyroba},
frmPredvyrobaDetail in 'frmPredvyrobaDetail.pas' {formPredvyrobaDetail},
frmVyrobaMimoPlan in 'frmVyrobaMimoPlan.pas' {formVyrobaMimoPlan},
frmVyberPL in 'frmVyberPL.pas' {formVyberPL},
frmVyberCinnostiStroje in 'frmVyberCinnostiStroje.pas' {formVyberCinnostiStroje},
frmZasobaObjednavky in 'frmZasobaObjednavky.pas' {formZasobaObjednavky},
frmObjednavkaMat in 'frmObjednavkaMat.pas' {formObjednavkaMat},
frmOdpady in 'frmOdpady.pas' {formOdpady},
frmSeznamPalet in 'frmSeznamPalet.pas' {formSeznamPalet},
frmPrehledMicharna in 'frmPrehledMicharna.pas' {formPrehledMicharna},
frmSpravaVzorku in 'frmSpravaVzorku.pas' {formSpravaVzorku},
frmVyberSarze in 'frmVyberSarze.pas' {formVyberSarze},
frmSarzeVydej in 'frmSarzeVydej.pas' {formSarzeVydej},
frmPlan in '_plgPlan\frmPlan.pas' {formPlan},
frmKmen in '_plgPlan\frmKmen.pas' {formKmen},
datMod2 in '_plgPlan\datMod2.pas' {dm2: TDataModule},
frmZavady in '_plgPlan\frmZavady.pas' {formZavady},
frmVyrobniTyden in '_plgPlan\frmVyrobniTyden.pas' {formVyberTydne},
frmRamcovyPlan in '_plgPlan\frmRamcovyPlan.pas' {formRamcovyPlan},
plgMain in 'libSys\plgMain.pas',
frmPlanPaletListy in '_plgPlan\frmPlanPaletListy.pas' {formPlanPaletListy};
// Dokumentace se odkazuje na PChar, ale zda se neaktualni. Je mozne, ze byla napsana pred zmenou definice na UTF-16?
function PluginGetSysAndClassName (Vysl: PAnsiChar): DWORD; stdcall;
const C_ProgID: AnsiString = 'PluginHDCRTN.run';
begin
Result:= Length(C_ProgID);
if Assigned(Vysl) then
StrPCopy(Vysl, C_ProgID);
end;
exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer,
PluginGetSysAndClassName;
{$R *.RES}
{$R PluginHDCRTNResource.RES}
BEGIN
END.

1164
PluginHDCRTN.dproj Normal file

File diff suppressed because it is too large Load Diff

163
PluginHDCRTN.mes Normal file
View File

@ -0,0 +1,163 @@
[GeneralSettings]
MesVersion=4
HandleExceptions=1
LinkInCode=1
AppendMapFileToBinary=1
NoOwnMadExceptSettings=0
CheckFileCrc=1
CheckForFrozenMainThread=1
FreezeTimeout=60000
ReportLeaks=0
WindowsLogo=0
CrashOnBuffer=0
CrashOnUnderrun=0
AutomaticallySaveBugReport=0
AutoSaveBugReportIfNotSent=1
AutomaticallyMailBugReport=0
AutoMailProgressBox=0
CopyBugReportToClipboard=0
SuspendAllRunningThreads=0
ShowPleaseWaitBox=1
PleaseWaitIcon=plwait1
AutomaticallyContinueApplication=1
AutomaticallyRestartApplication=0
AutomaticallyCloseApplication=0
SendInBackground=0
SendHelper=196864
Send32Icon=send321
UploadViaHttp=0
HttpServer=
HttpSsl=0
HttpPort=0
HttpAccount=
HttpPassword=
UploadToFogBugz=0
UploadToBugZilla=0
UploadToMantis=0
BugTrackerAccount=
BugTrackerPassword=
BugTrackerProject=
BugTrackerArea=
BugTrackerAssignTo=
MailAsSmtpServer=0
MailAsSmtpClient=1
SmtpServer=smtp.forpsi.com
SmtpSsl=0
SmtpTls=1
SmtpPort=0
SmtpAccount=helios_info@hdconsulting.cz
SmtpPassword=SVKrFWa9/396BZ3oRdkq9/KgphAaE0+i
MailViaMapi=0
MailViaMailto=0
MailAddress=tomas.buzin@hdconsulting.cz
BugReportFile=bugreport.txt
AttachBugReport=1
AttachBugReportFile=1
DeleteBugReportFile=1
BugReportSendAs=bugreport.txt
BugReportZip=
ScreenShotDepth=8
ScreenShotAppOnly=0
ScreenShotSendAs=screenshot.png
ScreenShotZip=
AdditionalAttachments=
AppendBugReports=1
BugReportFileSize=200000
DontSaveDuplicateExceptions=1
DontSaveDuplicateFreezings=1
DuplicateExceptionDefinition=1
DuplicateFreezeDefinition=2
ShowExceptionBox=1
OkBtnText=&OK
DetailsBtnText=&Details
PleaseWaitTitle=Information
PleaseWaitText=Please wait a moment...
BugTrackerTitle=%25appname%25, %25exceptMsg%25
BugTrackerDescr=error details: %0d%0a%25errorDetails%25
MailSubject=bug report
MailBody=please find the bug report attached
SendBoxTitle=Sending bug report...
PrepareAttachMsg=Preparing attachments...
MxLookupMsg=Searching for mail server...
ConnectMsg=Connecting to server...
SendMailMsg=Sending mail...
FieldsMsg=Setting fields...
SendAttachMsg=Sending attachments...
SendFinalizeMsg=Finalizing...
MailFailureMsg=Sorry, sending the bug report didn't work.
VersionVariable=
[ExceptionBox]
ShowButtonMailBugReport=0
ShowButtonSaveBugReport=0
ShowButtonPrintBugReport=0
ShowButtonShowBugReport=1
ShowButtonContinueApplication=1
ShowButtonRestartApplication=1
ShowButtonCloseApplication=1
IconButtonSendBugReport=send1
IconButtonSaveBugReport=save1
IconButtonPrintBugReport=print1
IconButtonShowBugReport=show1
IconButtonContinueApplication=continue1
IconButtonCantContinueApplication=cantContinue1
IconButtonRestartApplication=restart1
IconButtonCloseApplication=close1
FocusedButton=4
SendAssistant=SendAssistant
SaveAssistant=SaveAssistant
PrintAssistant=PrintAssistant
AutomaticallyShowBugReport=0
NoOwnerDrawButtons=0
BigExceptionIcon=big1
TitleBar=%25appname%25
ExceptionMessage=An error occurred in the application.
FrozenMessage=The application seems to be frozen.
BitFaultMsg=The file "%25modname%25" seems to be corrupt!
MailBugReportText=send bug report
SaveBugReportText=save bug report
PrintBugReportText=print bug report
ShowBugReportText=show bug report
ContinueApplicationText=continue application
RestartApplicationText=restart application
CloseApplicationText=close application
[BugReport]
ListThreads=1
ListModules=1
ListHardware=1
ShowCpuRegisters=1
ShowStackDump=1
Disassembly=1
HideUglyItems=0
ShowRelativeAddrs=1
ShowRelativeLines=1
FormatDisassembly=0
LimitDisassembly=5
EnabledPlugins=modules|processes|hardware
[Filters]
Filter1ExceptionClasses=EDBEditError
Filter1DontCreateBugReport=0
Filter1DontCreateScreenshot=0
Filter1DontSuspendThreads=1
Filter1DontCallHandlers=0
Filter1ShowBox=4
Filter1Assis=
Filter2ExceptionClasses=
Filter2DontCreateBugReport=0
Filter2DontCreateScreenshot=0
Filter2DontSuspendThreads=0
Filter2DontCallHandlers=0
Filter2ShowBox=0
Filter2Assis=
GeneralDontCreateBugReport=0
GeneralDontCreateScreenshot=0
GeneralDontSuspendThreads=0
GeneralDontCallHandlers=0
GeneralShowBox=0
GeneralAssis=
[Assistants]
Assistant1=SendAssistant|Send Assistant|ContactForm|DetailsForm|ScrShotForm
Assistant2=SaveAssistant|Save Assistant|ContactForm|DetailsForm
Assistant3=PrintAssistant|Print Assistant|ContactForm|DetailsForm
Forms1=TPF0%0eTMEContactForm%0bContactForm%07Message%0c%13%00%00%00Contact Information%08MinWidth%04%00%00%00%00%08OnAction%0c%1b%00%00%00madExcept.HandleContactForm%05Timer%04%00%00%00%00%00%09INVButton%0bContinueBtn%07Caption%0c%08%00%00%00Continue%07Enabled%09%0bNoOwnerDraw%08%07Visible%09%00%00%09INVButton%07SkipBtn%07Caption%0c%04%00%00%00Skip%07Enabled%08%0bNoOwnerDraw%08%07Visible%09%00%00%09INVButton%09CancelBtn%07Caption%0c%06%00%00%00Cancel%07Enabled%09%0bNoOwnerDraw%08%07Visible%09%00%00%08INVLabel%06Label1%07Caption%0c%0a%00%00%00your name:%07Enabled%09%07Spacing%04%00%00%00%00%00%00%07INVEdit%08NameEdit%07Colored%09%07Enabled%09%05Lines%04%01%00%00%00%08Optional%09%0aOutputName%0c%0c%00%00%00contact name%0aOutputType%07%09nvoHeader%07Spacing%04%00%00%00%00%04Text%0c%00%00%00%00%05Valid%09%00%00%08INVLabel%06Label2%07Caption%0c%0b%00%00%00your email:%07Enabled%09%07Spacing%04%00%00%00%00%00%00%07INVEdit%09EmailEdit%07Colored%09%07Enabled%09%05Lines%04%01%00%00%00%08Optional%08%0aOutputName%0c%0d%00%00%00contact email%0aOutputType%07%09nvoHeader%07Spacing%04%00%00%00%00%04Text%0c%00%00%00%00%05Valid%09%00%00%0bINVCheckBox%08MemCheck%07Caption%0c%0b%00%00%00remember me%07Checked%08%07Enabled%09%0aOutputName%0c%00%00%00%00%07Spacing%04%00%00%00%00%00%00%00
Forms2=TPF0%0eTMEDetailsForm%0bDetailsForm%07Message%0c%0d%00%00%00Error Details%08MinWidth%04%00%00%00%00%08OnAction%0c%00%00%00%00%05Timer%04%00%00%00%00%00%09INVButton%0bContinueBtn%07Caption%0c%08%00%00%00Continue%07Enabled%09%0bNoOwnerDraw%08%07Visible%09%00%00%09INVButton%07SkipBtn%07Caption%0c%04%00%00%00Skip%07Enabled%09%0bNoOwnerDraw%08%07Visible%09%00%00%09INVButton%09CancelBtn%07Caption%0c%06%00%00%00Cancel%07Enabled%09%0bNoOwnerDraw%08%07Visible%09%00%00%08INVLabel%06Label1%07Caption%0c,%00%00%00what were you doing when the error occurred?%07Enabled%09%07Spacing%04%00%00%00%00%00%00%07INVEdit%0bDetailsMemo%07Colored%09%07Enabled%09%05Lines%04%09%00%00%00%08Optional%08%0aOutputName%0c%0d%00%00%00error details%0aOutputType%07%0dnvoOwnSection%07Spacing%04%00%00%00%00%04Text%0c%00%00%00%00%05Valid%09%00%00%00
Forms3=TPF0%0eTMEScrShotForm%0bScrShotForm%0dActiveControl%07%0bContinueBtn%07Message%0c%18%00%00%00Screenshot Configuration%08MinWidth%04%00%00%00%00%08OnAction%0c%1e%00%00%00madExcept.HandleScreenshotForm%05Timer%04%fa%00%00%00%00%09INVButton%0bContinueBtn%07Caption%0c%08%00%00%00Continue%07Enabled%09%0bNoOwnerDraw%08%07Visible%09%00%00%09INVButton%07SkipBtn%07Caption%0c%04%00%00%00Skip%07Enabled%08%0bNoOwnerDraw%08%07Visible%09%00%00%09INVButton%09CancelBtn%07Caption%0c%06%00%00%00Cancel%07Enabled%09%0bNoOwnerDraw%08%07Visible%09%00%00%0bINVCheckBox%0bAttachCheck%07Caption%0c%25%00%00%00attach a screenshot to the bug report%07Checked%09%07Enabled%09%0aOutputName%0c%00%00%00%00%07Spacing%04%00%00%00%00%00%00%08INVImage%0aScrShotImg%06Border%09%09Clickable%09%07Enabled%09%04File%0c%00%00%00%00%06Height%04%00%00%00%00%07Spacing%04%00%00%00%00%05Width%04%00%00%00%00%00%00%08INVLabel%06Label1%07Caption%0c%15%00%00%00(click to edit image)%07Enabled%09%07Spacing%04%00%00%00%00%00%00%00

BIN
PluginHDCRTN.otares Normal file

Binary file not shown.

4
PluginHDCRTN.xml Normal file
View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<cfg>
<cfgPluginHDCRTN phServer="http://rootvin.datazone.cloud/helios/api"/>
</cfg>

View File

@ -0,0 +1,12 @@
DECLARE @currDat DATETIME=GETDATE()
IF (COL_LENGTH(N'dbo.TabAdvKPDavky_EXT', N'_MnozstviKs') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabAdvKPDavky', @NazevAtrSys=N'_MnozstviKs', @Skupina=N'Plugin Pl<50>nov<6F>n<EFBFBD>', @NazevAtrVer=N'Mno<EFBFBD>stv<EFBFBD> pl<70>nu (ks)',
@NazevAtrVerZkr=N'', @TypAtr=N'NUMERIC', @MaskaAtr=NULL, @VerejnyAtr=N'V', @SirkaSloupceAtr=16, @SumovatAtr=N'A', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'NUMERIC(19,6)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=N'Mno<EFBFBD>stv<EFBFBD> ks zobrazen<65> v pluginu Pl<50>nov<6F>n<EFBFBD>', @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1
IF (COL_LENGTH(N'dbo.TabAdvKPDavky_EXT', N'_VazbaPlgPlan') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabAdvKPDavky', @NazevAtrSys=N'_VazbaPlgPlan', @Skupina=N'Plugin Pl<50>nov<6F>n<EFBFBD>', @NazevAtrVer=N'ID pl<70>nu pluginu',
@NazevAtrVerZkr=N'', @TypAtr=N'INT', @MaskaAtr=NULL, @VerejnyAtr=N'N', @SirkaSloupceAtr=16, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'INT', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=N'ID sady d<>vek zalo<6C>en<65>ch v pluginu Pl<50>nov<6F>n<EFBFBD>', @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=0

View File

@ -0,0 +1,14 @@
DECLARE @currDat DATETIME=GETDATE()
IF (COL_LENGTH(N'dbo.TabPrikaz_EXT', N'_PlanZahajeni') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPrikaz', @NazevAtrSys=N'_PlanZahajeni', @Skupina=N'Plugin Pl<50>nov<6F>n<EFBFBD>', @NazevAtrVer=N'Pl<EFBFBD>novan<EFBFBD> zah<61>jen<65>',
@NazevAtrVerZkr=N'', @TypAtr=N'DATETIME', @MaskaAtr=NULL, @VerejnyAtr=N'A', @SirkaSloupceAtr=16, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'DATETIME', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=N'Pl<EFBFBD>novan<EFBFBD> zah<61>jen<65> z pluginu Pl<50>nov<6F>n<EFBFBD>', @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1
IF (COL_LENGTH(N'dbo.TabPrikaz_EXT', N'_PlanUkonceni') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPrikaz', @NazevAtrSys=N'_PlanUkonceni', @Skupina=N'Plugin Pl<50>nov<6F>n<EFBFBD>', @NazevAtrVer=N'Pl<EFBFBD>novan<EFBFBD> ukon<6F>en<65>',
@NazevAtrVerZkr=N'', @TypAtr=N'DATETIME', @MaskaAtr=NULL, @VerejnyAtr=N'A', @SirkaSloupceAtr=16, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'DATETIME', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=N'Pl<EFBFBD>novan<EFBFBD> ukon<6F>en<65> z pluginu Pl<50>nov<6F>n<EFBFBD>', @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1

View File

@ -0,0 +1,4 @@
@echo off
"C:\Program files (x86)\Embarcadero\Studio\23.0\bin\brcc32.exe" PluginHDCRTNPlanResource.rc

4766
_plgPlan/datMod2.dfm Normal file

File diff suppressed because it is too large Load Diff

821
_plgPlan/datMod2.pas Normal file
View File

@ -0,0 +1,821 @@
unit datMod2;
interface
uses
System.SysUtils, System.Classes,
ddPlugin_TLB, FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error,
FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf, Data.DB, FireDAC.Comp.DataSet,
FireDAC.Comp.Client,
frmPlan, frmRamcovyPlan, Vcl.BaseImageCollection, Vcl.ImageCollection, System.ImageList, Vcl.ImgList,
Vcl.VirtualImageList, Vcl.Controls;
{$I iConsts.inc}
type
TGridColWidthKoefs = record
fieldName: string;
widthKoef: Extended;
end;
TDavkaPrikazOdv = record
cislo: integer;
idPrikaz: integer;
idDavka: integer;
mnozOdvPrikaz: extended;
mnozZapsane: Extended;
mnozOdvPredchozi: extended;
end;
Tdm2 = class(TDataModule)
vtRozpis: TFDMemTable;
dsRozpis: TDataSource;
dsKalendar: TDataSource;
vtKalendar: TFDMemTable;
vtRozpiscolDatum: TDateField;
vtRozpiscolID: TIntegerField;
vtRozpiscolHodOd: TSmallintField;
vtRozpiscolHodDo: TSmallintField;
vtRozpiscolSkupZbo: TStringField;
vtRozpiscolRegCis: TStringField;
vtRozpiscolNazev: TStringField;
vtRozpiscolPrikaz: TStringField;
vtRozpiscolMnoz: TSmallintField;
vtRozpiscolMnozHotovo: TSmallintField;
vtKalendarcolIDStroj: TIntegerField;
vtKalendarcolStroj: TStringField;
vtKalendarcolNe: TSmallintField;
vtKalendarcolPo: TSmallintField;
vtKalendarcolUt: TSmallintField;
vtKalendarcolSt: TSmallintField;
vtKalendarcolCt: TSmallintField;
vtKalendarcolPa: TSmallintField;
vtKalendarcolSo: TSmallintField;
vtKalendarcolKodStroj: TStringField;
dsKmen: TDataSource;
vtKmen: TFDMemTable;
vtKmencolID: TIntegerField;
vtKmencolSZ: TStringField;
vtKmencolRegCis: TStringField;
vtKmencolNazev1: TStringField;
vtKmencolMJEvid: TStringField;
vtKmencolDilec: TBooleanField;
vtKmencolMaterial: TBooleanField;
vtKmencolSluzba: TBooleanField;
vtKmencolSKP: TStringField;
imgCol: TImageCollection;
imgList: TVirtualImageList;
ImageList1: TImageList;
vtKmenIDZaklad: TIntegerField;
vtKmencolZaklad: TStringField;
vtKmencolIDStroj: TIntegerField;
vtKmencolStroj: TStringField;
vtKmencolKSvKA: TIntegerField;
vtKmencolKAnaPAL: TIntegerField;
vtKmencolKSnaPAL: TIntegerField;
vtKmencolIDZakModif: TIntegerField;
dsZavady: TDataSource;
vtZavady: TFDMemTable;
vtZavadycolID: TIntegerField;
vtZavadycolKod: TStringField;
vtZavadycolTyp: TIntegerField;
vtZavadycolNazev: TStringField;
vtRozpiscolIDDavkaAdvPlan: TIntegerField;
vtRozpiscolIdKmen: TIntegerField;
vtRozpiscolIdPrikaz: TIntegerField;
vtVyrobniTyden: TFDMemTable;
dsVyrobniTyden: TDataSource;
vtVyrobniTydencolTyden: TIntegerField;
vtVyrobniTydencolDatumOd: TDateField;
vtVyrobniTydencolDatumDo: TDateField;
vtVyrobniTydencolRok: TIntegerField;
dsRamcovyPlan: TDataSource;
vtRamcovyPlan: TFDMemTable;
vtRamcovyPlanID: TIntegerField;
vtRamcovyPlanIDKmen: TIntegerField;
vtRamcovyPlanSZ: TStringField;
vtRamcovyPlanRegCis: TStringField;
vtRamcovyPlanNazev1: TStringField;
vtRamcovyPlanMJ: TStringField;
vtRamcovyPlanKs: TIntegerField;
vtRamcovyPlanKA: TIntegerField;
vtRamcovyPlanCisloOrg: TIntegerField;
vtRamcovyPlanM01: TIntegerField;
vtRamcovyPlanM02: TIntegerField;
vtRamcovyPlanM03: TIntegerField;
vtRamcovyPlanM04: TIntegerField;
vtRamcovyPlanM05: TIntegerField;
vtRamcovyPlanM06: TIntegerField;
vtRamcovyPlanM07: TIntegerField;
vtRamcovyPlanM08: TIntegerField;
vtRamcovyPlanM09: TIntegerField;
vtRamcovyPlanM10: TIntegerField;
vtRamcovyPlanM11: TIntegerField;
vtRamcovyPlanM12: TIntegerField;
vtRamcovyPlanSumace: TIntegerField;
vtRamcovyPlanVyroba: TIntegerField;
vtRamcovyPlanZbyva: TIntegerField;
vtRamcovyPlanSklRoo: TIntegerField;
vtRamcovyPlanSklTvin: TIntegerField;
vtRamcovyPlanSklAlter: TIntegerField;
vtRamcovyPlanSklMimoPlan: TBooleanField;
dsRPlanAlter: TDataSource;
vtRPlanAlter: TFDMemTable;
vtRPlanAlterID: TIntegerField;
vtRPlanAlterKalibr: TStringField;
vtRPlanAlterDelkaJm: TFloatField;
vtRPlanAlterStroj: TStringField;
vtRPlanAlterIDStroj: TIntegerField;
dsPlanPL: TDataSource;
vtPlanPL: TFDMemTable;
vtPlanPLIDVCPrikaz: TIntegerField;
vtPlanPLCisloPL: TStringField;
vtPlanPLDatVyrobaZadano: TDateTimeField;
vtPlanPLDatVyrobaStart: TDateTimeField;
vtPlanPLDatExpedice: TDateTimeField;
vtPlanPLKAnaPal: TFloatField;
vtPlanPLKusu: TIntegerField;
vtPlanPLIDPrikaz: TIntegerField;
vtPlanPLDatExpirace: TDateTimeField;
vtRozpiscolIDPlan: TIntegerField;
vtPlanPLCisloExtZak: TStringField;
vtRozpiscolJeUdrzba: TSmallintField;
vtZavadycolIDPrikaz: TIntegerField;
procedure DataModuleCreate (Sender: TObject);
procedure vtKmenCalcFields(DataSet: TDataSet);
private
public
Helios: IHelios;
function VratPrepocetMJ (idKmen: integer; hlavniMJ, odvozenaMJ: string; sloupec: string='PocetOdvozene'): Extended;
procedure VymazRozpis (f: TformPlan); safecall;
procedure NactiRozpis (f: TformPlan; prazdny: boolean=false); safecall;
procedure NactiDavkyPlanu (f: TformPlan; idStroj: Integer=0); safecall;
procedure GenerujRozpis (odData: TDateTime; pocetDnu: integer=14); safecall;
procedure NactiKalendar (f: TformPlan; idStroj: integer=0); safecall;
procedure NactiKmenZbozi (podm: string=''); safecall;
procedure NactiUdrzbu (kodModif: string=''; podm: string=''); safecall;
procedure NactiVyrobniTydny (rok: integer);
procedure PlanPalListyNactiSarzePrikazu (idPrikaz, ksVKA: integer; var externiZak: string);
end;
var
dm2: Tdm2;
dmCreated, apiMod: boolean;
apiServer, phServer, url, sqlLang: string;
idAdvKPl, bidPalety: integer;
implementation
{%CLASSGROUP 'Vcl.Controls.TControl'}
uses System.Variants, System.StrUtils, Winapi.Windows, System.DateUtils,
helTabsBIDs, helUtils;
{$R *.dfm}
procedure Tdm2.DataModuleCreate (Sender: TObject);
begin
dmCreated:= true;
end;
function Tdm2.VratPrepocetMJ (idKmen: integer; hlavniMJ, odvozenaMJ: string; sloupec: string='PocetOdvozene'): Extended;
var lSQL: string;
begin
result:= 0;
sloupec:= sqlSanitize (sloupec);
lSQL:= 'SELECT ' + sloupec + ' FROM ' + tblMJZbo + ' WHERE IDKmenZbozi=' + idKmen.ToString + ' AND LOWER(KodMJ1)=N' + hlavniMJ.ToLower.QuotedString
+ ' AND LOWER(KodMJ2)=N' + odvozenaMJ.ToLower.QuotedString;
try
result:= helUtils.getHeliosFloatVal (Helios, 0, lSQL);
finally
end;
end;
procedure Tdm2.NactiUdrzbu (kodModif: string=''; podm: string='');
var lSQL, kod: string;
idPrPost: Integer;
begin
if not(vtZavady.Active) then
vtZavady.Open;
// lehka sanitizace SQL
podm:= podm.Replace(';', '').Replace('--','');
lSQL:= 'SELECT TOP(1) pp.ID, pp.Nazev, pp.IDPrikaz, pp.operace FROM ' + tblPrPost + ' pp INNER JOIN ' + tblVPr + ' vp ON (vp.ID=pp.IDPrikaz AND pp.IDOdchylkyDo IS NULL AND pp.priorita=0)'
+ ' INNER JOIN ' + tblZakazModif + ' m ON (m.ID=vp.IDZakazModif) INNER JOIN ' + tblPrikazRada + ' vpr ON (vpr.Rada=vp.Rada) WHERE pp.Typ=0 AND vp.StavPrikazu=30 AND m.Kod=N'
+ kodModif.QuotedString + ' AND vpr.nazev LIKE N''%<25>dr<64>b%''';
{ lSQL:= 'SELECT ID, Kod, Nazev, Typ FROM ' + tblCZavad;
if (podm<>'') then
lSQL:= lSQL + ' WHERE ' + podm;
}
lSQL:= lSQL + ' ORDER BY pp.Nazev';
try
with Helios.OpenSQL (lSQL) do
begin
First;
while not(EOF) do
begin
vtZavady.Append;
idPrPost:= VarToStr(FieldByNameValues('ID')).ToInteger;
vtZavady.FieldByName('colID').AsInteger:= idPrPost;
vtZavady.FieldByName('colNazev').AsString:= VarToStr(FieldByNameValues('Nazev'));
vtZavady.FieldByName('colIDPrikaz').AsInteger:= VarToStr(FieldByNameValues('IDPrikaz')).ToInteger;
vtZavady.FieldByName('colKod').AsString:= VarToStr(FieldByNameValues('operace')).Trim;
// vtZavady.FieldByName('colTyp').AsInteger:= VarToStr(FieldByNameValues('Typ')).ToInteger;
vtZavady.Post;
Next;
end;
end;
finally
end;
end;
procedure Tdm2.NactiKmenZbozi (podm: string='');
var lSQL, mjEvid: string;
idKZ, idZakazModif, idZakazModifDilce: Integer;
begin
if not(vtKmen.Active) then
vtKmen.Open;
// lehka sanitizace SQL
podm:= podm.Replace(';', '').Replace('--','');
lSQL:= 'SELECT k.ID, k.SkupZbo, k.RegCis, k.Nazev1, k.SKP, k.MJEvidence, k.Material, k.Dilec, k.Sluzba, zm.Nazev AS NazevModif, zmd.ID AS IdZMD, zm.ID AS IdZM'
+ ', ISNULL( (SELECT TOP(1) kN.Nazev1 FROM ' + tblKVaz + ' v INNER JOIN ' + tblKZ + ' kN ON (kN.ID=v.nizsi) WHERE v.vyssi=k.ID'
+ ' AND v.ZmenaDo IS NULL AND v.IDZakazModif=zm.ID AND kN.SkupZbo=N''702''), N'''') AS Zaklad'
+ ' FROM ' + tblZakazModifDilce + ' zmd INNER JOIN ' + tblZakazModif + ' zm ON (zm.ID=zmd.IDZakazModif) INNER JOIN ' + tblKZ
+ ' k ON (k.ID=zmd.IDKmenZbozi)';
if (podm<>'') then
lSQL:= lSQL + ' WHERE ' + podm;
lSQL:= lSQL + ' ORDER BY k.SkupZbo, k.RegCis, zm.Nazev';
try
with Helios.OpenSQL (lSQL) do
begin
First;
while not(EOF) do
begin
vtKmen.Append;
idKZ:= VarToStr(FieldByNameValues('ID')).ToInteger;
vtKmen.FieldByName('colID').AsInteger:= idKZ;
vtKmen.FieldByName('colSZ').AsString:= VarToStr(FieldByNameValues('SkupZbo'));
vtKmen.FieldByName('colRegCis').AsString:= VarToStr(FieldByNameValues('RegCis'));
vtKmen.FieldByName('colNazev1').AsString:= VarToStr(FieldByNameValues('Nazev1'));
vtKmen.FieldByName('colSKP').AsString:= VarToStr(FieldByNameValues('SKP'));
mjEvid:= VarToStr(FieldByNameValues('MJEvidence'));
vtKmen.FieldByName('colMJEvid').AsString:= mjEvid;
vtKmen.FieldByName('colMaterial').AsBoolean:= FieldByNameValues('Material');
vtKmen.FieldByName('colDilec').AsString:= FieldByNameValues('Dilec'); // TrueBoolStrs
vtKmen.FieldByName('colSluzba').AsBoolean:= FieldByNameValues('Sluzba');
vtKmen.FieldByName('colZaklad').AsString:= VarToStr(FieldByNameValues('Zaklad'));
if (mjEvid='KA') then
begin
lSQL:= 'SELECT PocetOdvozene FROM ' + tblMJZbo + ' WHERE IDKmenZbozi=' + idKZ.ToString + ' AND KodMJ1=N''KA'' AND KodMJ2=N''ks''';
vtKmen.FieldByName('colKSvKA').AsInteger:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
lSQL:= 'SELECT PocetHlavni FROM ' + tblMJZbo + ' WHERE IDKmenZbozi=' + idKZ.ToString + ' AND KodMJ1=N''KA'' AND KodMJ2=N''Pal''';
vtKmen.FieldByName('colKAnaPAL').AsInteger:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
end;
vtKmen.FieldByName('colIDZakModifDilce').AsInteger:= VarToStr(FieldByNameValues('IdZMD')).ToInteger;
vtKmen.FieldByName('colIDZakModif').AsInteger:= VarToStr(FieldByNameValues('IdZM')).ToInteger;
vtKmen.FieldByName('colZakModif').AsString:= VarToStr(FieldByNameValues('NazevModif'));
vtKmen.Post;
Next;
end;
end;
finally
end;
end;
procedure Tdm2.NactiKalendar (f: TformPlan; idStroj: Integer=0);
var lSQL: string;
dStart, dAkt, dNedele, dTesty, dNow, d1: TDateTime;
datumNe, datumTesty: string;
dAktD, dAktM, dAktR, dTestD, dTestM, dTestR: integer;
i, cnt, cntNe, cntPo, cntUt, cntSt, cntCt, cntPa, cntSo: integer;
begin
if not(vtKalendar.Active) then
vtKalendar.Open;
vtKalendar.EmptyDataSet;
idAdvKPl:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT TOP(1) ID FROM ' + tblAdvKPlan + ' WHERE Kod=N''99''');
dNedele:= 0;
dNow:= Now;
d1:= dNow;
if (f.sgCas.Cells[2,1]<>'') then // datumOd
begin
d1:= StrToDateTime(f.sgCas.Cells[2,1]);
dNedele:= d1;
end;
dStart:= StartOfTheWeek (d1);
if (dNow=d1) and (dNedele=0) then
dNedele:= IncDay (dStart, -1);
dAkt:= d1;
dAktD:= DayOf (dAkt);
dAktM:= MonthOf (dAkt);
dAktR:= YearOf (dAkt);
lSQL:= 'SELECT cs.ID, cs.Kod, cs.Nazev FROM ' + tblCStroju + ' cs LEFT JOIN ' + tblCStrojuE + ' cse ON (cse.ID=cs.ID) WHERE cs.Blokovano=0';
lSQL:= lSQL + IfThen(idStroj>0, ' AND cs.ID=' + idStroj.ToString, '') + ' AND ISNULL(cse._Planovani,0)=1 ORDER BY cs.Nazev';
try
with Helios.OpenSQL (lSQL) do
begin
First;
while not(EOF) do
begin
dTesty:= dNedele;
vtKalendar.Append;
idStroj:= VarToStr(FieldByNameValues('ID')).ToInteger;
vtKalendar.FieldByName('colIDStroj').AsInteger:= idStroj;
vtKalendar.FieldByName('colKodStroj').AsString:= VarToStr(FieldByNameValues('Kod'));
vtKalendar.FieldByName('colStroj').AsString:= VarToStr(FieldByNameValues('Nazev'));
for i:=0 to 6 do
begin
// datumTesty:= FormatDateTime ('dd.MM.yyyy', dTesty);
dTestD:= DayOf (dTesty);
dTestM:= MonthOf (dTesty);
dTestR:= YearOf (dTesty);
lSQL:= 'SELECT COUNT(d.ID) FROM ' + tblAdvKPlanDavky + ' d INNER JOIN ' + tblVPr + ' p ON (p.ID=d.IDPrikaz) WHERE d.IdAdvKapacPlan=' + idAdvKPl.ToString
+ IfThen(idStroj=0, '', ' AND d.IDStroje=' + idStroj.ToString) + ' AND p.StavPrikazu IN (30,40) AND d.CasOd_D=' + dTestD.ToString
+ ' AND d.CasOd_M=' + dTestM.ToString + ' AND d.CasOd_Y=' + dTestR.ToString;
cnt:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
case i of
0: begin vtKalendar.FieldByName('colNe').AsInteger:= cnt; cntNe:= cnt; end;
1: begin vtKalendar.FieldByName('colPo').AsInteger:= cnt; cntPo:= cnt; end;
2: begin vtKalendar.FieldByName('colUt').AsInteger:= cnt; cntUt:= cnt; end;
3: begin vtKalendar.FieldByName('colSt').AsInteger:= cnt; cntSt:= cnt; end;
4: begin vtKalendar.FieldByName('colCt').AsInteger:= cnt; cntCt:= cnt; end;
5: begin vtKalendar.FieldByName('colPa').AsInteger:= cnt; cntPa:= cnt; end;
6: begin vtKalendar.FieldByName('colSo').AsInteger:= cnt; cntSo:= cnt; end;
end;
dTesty:= IncDay (dTesty, 1);
end;
vtKalendar.Post;
Next;
end;
end;
finally
end;
end;
procedure Tdm2.VymazRozpis (f: TformPlan);
var i: integer;
d: string;
h: integer;
begin
if not(vtRozpis.Active) then
vtRozpis.Open;
d:= FormatDateTime ('dd.MM.yyyy', Now);
h:= HourOf(Now);
vtRozpis.DisableControls;
vtRozpis.First;
while not(vtRozpis.Eof) do
begin
vtRozpis.Edit;
vtRozpis.FieldByName('colID').AsInteger:= 0;
vtRozpis.FieldByName('colIDDavkaAdvPlan').AsInteger:= 0;
vtRozpis.FieldByName('colPrikaz').AsString:= '';
vtRozpis.FieldByName('colSkupZbo').AsString:= '';
vtRozpis.FieldByName('colRegCis').AsString:= '';
vtRozpis.FieldByName('colNazev').AsString:= '';
vtRozpis.FieldByName('colMnoz').AsInteger:= 0;
vtRozpis.Post;
vtRozpis.Next;
end;
vtRozpis.EnableControls;
vtRozpis.Locate ('colDatum;colHodOd', VarArrayOf ([d, h]), []);
end;
procedure Tdm2.NactiDavkyPlanu (f: TformPlan; idStroj: Integer = 0);
var lSQL: string;
datum, hodiny, radaPrikaz, prikaz, mj, sz, regCis, nazev1, altPrP, nazevOper: string;
prvniDatum, prvniHod: string;
colID, idVPr, idKmen, idVPrOld, casOd, doklPrP, doklPrPOld, jeUdrzba: integer;
cislo, iTemp: integer;
mnoz, kusyCisteVPr, mnozOdv, mnozProZapis, mnozZapsane, ksVKA: extended;
fnd: boolean;
d, d2: TDateTime;
aDavkaVPrOdv: TArray<TDavkaPrikazOdv>;
function SumaZapsanehoMnozstviPred (a: TArray<TDavkaPrikazOdv>; idPrikaz: integer; predCislem: integer=0): extended;
var i, c: integer;
begin
result:= 0;
for i:=0 to Length(a)-1 do
begin
if (a[i].idPrikaz=idPrikaz) then
if (a[i].cislo<predCislem) then
result:= result + a[i].mnozZapsane;
end;
end;
begin
idVPrOld:= 0;
doklPrPOld:= 0;
mnozZapsane:= 0;
iTemp:= 0;
d:= 0;
if (f.sgCas.Cells[2,1]<>'') then
d:= StrToDate(f.sgCas.Cells[2,1]);
GenerujRozpis (d, 7);
vtRozpis.EmptyDataSet;
prvniDatum:= '';
prvniHod:= '';
lSQL:= 'SELECT MIN(da.CasOd) FROM ' + tblAdvKPlanDavky + ' da INNER JOIN ' + tblAdvKPlan + ' kp ON (kp.ID=da.IDAdvKapacPlan) INNER JOIN '
+ tblVPr + ' vp ON (vp.ID=da.IDPrikaz) WHERE kp.Kod=N''99'' AND da.IDStroje=' + idStroj.ToString + ' AND vp.StavPrikazu IN (30,40)';
if (f.sgCas.Cells[2,1]<>'') then
lSQL:= lSQL + ' AND dbo.hf_TruncDate(da.CasOd)>=dbo.hf_TruncDate(CONVERT(datetime, N' + f.sgCas.Cells[2,1].QuotedString + ',104))';
if (f.sgCas.Cells[3,1]<>'') then
lSQL:= lSQL + ' AND dbo.hf_TruncDate(da.CasOd)<=dbo.hf_TruncDate(CONVERT(datetime, N' + f.sgCas.Cells[3,1].QuotedString + ',104))';
datum:= helUtils.getHeliosDateTimeVal (Helios, 0, lSQL).ToString;
if (datum<>'30.12.1899') then
begin
if (datum.IndexOf(' ')>-1) then
begin
prvniDatum:= LeftStr(datum, datum.IndexOf(' '));
prvniHod:= MidStr(datum, datum.IndexOf(' ')+1, 255);
if (prvniHod.IndexOf(':')>-1) then
prvniHod:= LeftStr(prvniHod, prvniHod.IndexOf(':')).Trim;
end
else
begin
prvniDatum:= datum;
prvniHod:= '0';
end;
if (datum.IndexOf(' ')>-1) then
datum:= LeftStr(datum, datum.IndexOf(' '));
GenerujRozpis (StrToDateTime(datum), 7);
vtRozpis.IndexFieldNames:= 'colDatum;colHodOd';
vtRozpis.Refresh;
NactiRozpis (f);
vtRozpis.Refresh;
end;
lSQL:= 'SELECT da.ID, da.CasOd, da.CasDo, ISNULL(dae._MnozstviKs,0) AS MnozstviKs, vp.RadaPrikaz, vp.Prikaz, vp.ID AS IDPrikaz, k.ID AS IDKmen'
+ ', k.SkupZbo, k.RegCis, k.Nazev1, ISNULL(vp.IDPlan,0) AS IDPlan, da.DokladPrPostup, da.AltPrPostup'
+ ', CONVERT(int, CASE WHEN vpr.nazev LIKE N''%<25>dr<64>b%'' THEN 1 ELSE 0 END) AS JeUdrzba'
+ ' FROM ' + tblAdvKPlanDavky + ' da LEFT JOIN ' + tblAdvKPlanDavky_E
+ ' dae ON (dae.ID=da.ID) INNER JOIN ' + tblAdvKPlan + ' kp ON (kp.ID=da.IDAdvKapacPlan) INNER JOIN ' + tblVPr + ' vp ON (vp.ID=da.IDPrikaz) INNER JOIN '
+ tblPrikazRada + ' vpr ON (vpr.Rada=vp.Rada) INNER JOIN '
+ tblKZ + ' k ON (k.ID=vp.IDTabKmen) WHERE kp.Kod=N''99'' AND da.IDStroje=' + idStroj.ToString + ' AND vp.StavPrikazu IN (30,40)';
if (f.sgCas.Cells[2,1]<>'') then
lSQL:= lSQL + ' AND dbo.hf_TruncDate(da.CasOd)>=dbo.hf_TruncDate(CONVERT(datetime, N' + f.sgCas.Cells[2,1].QuotedString + ',104))';
if (f.sgCas.Cells[3,1]<>'') then
lSQL:= lSQL + ' AND dbo.hf_TruncDate(da.CasOd)<=dbo.hf_TruncDate(CONVERT(datetime, N' + f.sgCas.Cells[3,1].QuotedString + ',104))';
lSQL:= lSQL + ' ORDER BY da.CasOd';
with Helios.OpenSQL (lSQL) do
begin
First;
while not(EOF) do
begin
colID:= FieldByNameValues('ID');
datum:= VarToStr(FieldByNameValues('CasOd'));
idVPr:= VarToStr(FieldByNameValues('IDPrikaz')).ToInteger;
doklPrP:= VarToStr(FieldByNameValues('DokladPrPostup')).ToInteger;
altPrP:= VarToStr(FieldByNameValues('AltPrPostup'));
lSQL:= 'SELECT TOP(1) nazev FROM ' + tblPrPost + ' WHERE IDPrikaz=' + idVpr.ToString + ' AND Doklad=' + doklPrP.ToString + ' AND Alt=N' + altPrP.QuotedString
+ ' AND IDOdchylkyDo IS NULL AND Priorita=0';
nazevOper:= helUtils.getHeliosStrVal(Helios, '', lSQL);
Inc(cislo);
if (idVPr<>idVPrOld) then
begin
cislo:= 1;
idKmen:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT IDTabKmen FROM ' + tblVPr + ' WHERE ID=' + idVPr.ToString);
mj:= helUtils.getHeliosStrVal (Helios, '', 'SELECT MJEvidence FROM ' + tblKZ + ' WHERE ID=' + idKmen.ToString);
ksVKA:= helUtils.getHeliosFloatVal (Helios, 0, 'SELECT dbo.ef_Kmen_VratPocetKsVKartonu (' + idKmen.ToString + ')');
kusyCisteVPr:= helUtils.getHeliosFloatVal (Helios, 0, 'SELECT kusy_ciste FROM ' + tblVPr + ' WHERE ID=' + idVPr.ToString);
lSQL:= 'SELECT SUM(kusy_odv+kusy_zmet_opr+kusy_zmet_neopr) FROM ' + tblPMZ + ' WHERE IDPrikaz=' + idVPr.ToString + ' AND DokladPrPostup=' + doklPrP.ToString;
mnozOdv:= helUtils.getHeliosFloatVal (Helios, 0, lSQL);
if (mj.ToUpper='KA') then
begin
kusyCisteVPr:= kusyCisteVPr * ksVKA;
mnozOdv:= mnozOdv * ksVKA;
end;
idVPrOld:= idVPr;
end;
// idVPrOld:= idVPr;
{
mnoz:= FieldByNameValues('MnzstviKs');
radaPrikaz:= FieldByNameValues('RadaPrikaz');
prikaz:= FieldByNameValues('Prikaz');
regCis:= FieldByNameValues('RegCis');
nazev1:= FieldByNameValues('Nazev1');
}
if (datum<>'') then
begin
if (datum.IndexOf(' ')=-1) then
datum:= datum + ' 00:00:00';
if (datum.IndexOf(' ')>-1) then
begin
hodiny:= MidStr(datum, datum.IndexOf(' ')+1, 255).Trim;
casOd:= LeftStr(hodiny, hodiny.IndexOf(':')).ToInteger;
datum:= LeftStr(datum, datum.IndexOf(' '));
mnozProZapis:= VarToStr(FieldByNameValues('MnozstviKs')).ToExtended;
SetLength (aDavkaVPrOdv, iTemp+1);
aDavkaVPrOdv[iTemp].idPrikaz:= idVPr;
aDavkaVPrOdv[iTemp].cislo:= cislo;
aDavkaVPrOdv[iTemp].idDavka:= colID;
fnd:= vtRozpis.Locate ('colIDDavkaAdvPlan', VarArrayOf ([colID]), []); // colID / colDatum / colHodOd
if not(fnd) then
begin
fnd:= vtRozpis.Locate ('colDatum;colHodOd', VarArrayOf ([datum, casOd]), []);
if (fnd) then
begin
vtRozpis.Edit;
vtRozpis.FieldByName('colID').AsInteger:= colID;
vtRozpis.FieldByName('colIDDavkaAdvPlan').AsInteger:= colID;
vtRozpis.FieldByName('colIdKmen').AsString:= VarToStr (FieldByNameValues('IDKmen'));
vtRozpis.FieldByName('colPrikaz').AsString:= VarToStr (FieldByNameValues('RadaPrikaz'));
vtRozpis.FieldByName('colIdPrikaz').AsString:= VarToStr (FieldByNameValues('IDPrikaz'));
vtRozpis.FieldByName('colSkupZbo').AsString:= VarToStr (FieldByNameValues('SkupZbo'));
vtRozpis.FieldByName('colRegCis').AsString:= VarToStr (FieldByNameValues('RegCis'));
vtRozpis.FieldByName('colNazev').AsString:= VarToStr (FieldByNameValues('Nazev1'));
vtRozpis.FieldByName('colMnoz').AsExtended:= mnozProZapis;
vtRozpis.FieldByName('colIDPlan').AsInteger:= VarToStr (FieldByNameValues('IDPlan')).ToInteger;
jeUdrzba:= VarToStr(FieldByNameValues('JeUdrzba')).ToInteger;
vtRozpis.FieldByName('colJeUdrzba').AsInteger:= jeUdrzba;
if (jeUdrzba=1) then
vtRozpis.FieldByName('colNazev').AsString:= nazevOper;
if (mnozOdv>0) then
begin
mnozZapsane:= SumaZapsanehoMnozstviPred (aDavkaVPrOdv, idVPr, cislo);
mnozOdv:= mnozOdv - mnozZapsane;
if (mnozOdv>mnozProZapis) then
begin
vtRozpis.FieldByName('colMnozHotovo').AsExtended:= mnozProZapis;
aDavkaVPrOdv[iTemp].cislo:= cislo;
aDavkaVPrOdv[iTemp].idPrikaz:= idVPr;
aDavkaVPrOdv[iTemp].mnozZapsane:= mnozProZapis;
end
else
begin
vtRozpis.FieldByName('colMnozHotovo').AsExtended:= mnozOdv;
aDavkaVPrOdv[iTemp].cislo:= cislo;
aDavkaVPrOdv[iTemp].idPrikaz:= idVPr;
aDavkaVPrOdv[iTemp].mnozZapsane:= mnozOdv;
mnozOdv:= 0;
end;
Inc (iTemp);
end;
vtRozpis.Post;
end;
end;
end;
end;
Next;
end;
end;
if (vtRozpis.RecordCount=0) then
NactiRozpis (f, true);
vtRozpis.Locate ('colDatum;colHodOd', VarArrayOf ([FormatDateTime ('dd.MM.yyyy', d), HourOf(d)]), []);
if (prvniDatum<>'') and (prvniHod<>'') then
vtRozpis.Locate('colDatum;colHodOd', VarArrayOf ([prvniDatum, prvniHod]), []);
end;
procedure Tdm2.NactiVyrobniTydny (rok: integer);
var i: integer;
d: TDateTime;
den1ledna: byte;
begin
den1ledna:= DayOfWeek(EncodeDate(rok, 1, 1));
if not(vtVyrobniTyden.Active) then
vtVyrobniTyden.Open;
for i:=1 to WeeksInAYear(rok) do
begin
vtVyrobniTyden.Append;
vtVyrobniTyden.FieldByName('colRok').AsInteger:= rok;
vtVyrobniTyden.FieldByName('colTyden').AsInteger:= i;
d:= IncDay(StartOfAWeek (rok, i, 1), -1);
vtVyrobniTyden.FieldByName('colDatumOd').AsDateTime:= d;
vtVyrobniTyden.FieldByName('colDatumDo').AsDateTime:= IncDay(d, 6);
vtVyrobniTyden.Post;
end;
end;
procedure Tdm2.NactiRozpis (f: TformPlan; prazdny: boolean=false);
var lSQL, where, datum: string;
hDo, casOd: integer;
fnd: boolean;
begin
if not(vtRozpis.Active) then
vtRozpis.Open;
// lSQL:= 'SELECT Datum FROM ' + tblPlanRozpad + ' WHERE Datum>=DATEADD(day, -2, dbo.hf_TruncDate(GETDATE())) ORDER BY Datum';
where:= '';
lSQL:= 'SELECT Datum, CasOd FROM ' + tblPlanRozpad;
if not(prazdny) then
begin
where:= 'Datum>=dbo.hf_TruncDate( ISNULL( (SELECT MIN(d.CasOd) FROM ' + tblAdvKPlanDavky + ' d INNER JOIN ' + tblVPr;
where:= where + ' p ON (p.ID=d.IDPrikaz) WHERE p.StavPrikazu IN (30,40) AND d.IdAdvKapacPlan=' + idAdvKPl.ToString + '), DATEADD(day, -2, dbo.hf_TruncDate(GETDATE()))) )';
end;
if (f.sgCas.Cells[2,1]<>'') then
where:= where + IfThen(where<>'', ' AND ', '') + 'dbo.hf_TruncDate(Datum)>=dbo.hf_TruncDate(CONVERT(datetime, N' + f.sgCas.Cells[2,1].QuotedString + ',104))';
if (f.sgCas.Cells[3,1]<>'') then
where:= where + IfThen(where<>'', ' AND ', '') + 'dbo.hf_TruncDate(Datum)<=dbo.hf_TruncDate(CONVERT(datetime, N' + f.sgCas.Cells[3,1].QuotedString + ',104))';
if (where<>'') then
lSQL:= lSQL + ' WHERE ' + where;
lSQL:= lSQL + ' ORDER BY Datum, CasOd';
try
with Helios.OpenSQL (lSQL) do
begin
First;
while not(EOF) do
begin
datum:= VarToStr(FieldByNameValues('Datum'));
if (datum.IndexOf(' ')>-1) then
datum:= LeftStr(datum, datum.IndexOf(' '));
casOd:= VarToStr(FieldByNameValues('CasOd')).ToInteger;
fnd:= vtRozpis.Locate ('colDatum;colHodOd', VarArrayOf ([datum, casOd]), []);
if not(fnd) then
begin
vtRozpis.Append;
vtRozpis.FieldByName('colDatum').AsString:= datum; // FormatDateTime('dd.mm.yyyy', FieldByNameValues('Datum'));
vtRozpis.FieldByName('colHodOd').AsInteger:= casOd; // FormatDateTime('h', FieldByNameValues('Datum'));
// hDo:= vtRozpis.FieldByName('colHodOd').AsInteger + 1;
hDo:= casOd + 1;
// if (hDo>=24) then hDo:= 0;
vtRozpis.FieldByName('colHodDo').AsInteger:= hDo;
vtRozpis.Post;
end;
Next;
end;
end;
finally
end;
end;
procedure Tdm2.vtKmenCalcFields (DataSet: TDataSet);
var ksVKar, karNaPal: integer;
begin
ksVKar:= 0;
if not (DataSet.FieldByName('colKSvKA').IsNull) then
ksVKar:= DataSet.FieldByName('colKSvKA').AsInteger;
karNaPal:= 0;
if not (DataSet.FieldByName('colKAnaPAL').IsNull) then
karNaPal:= DataSet.FieldByName('colKAnaPAL').AsInteger;
DataSet.FieldByName('colKSnaPAL').AsInteger:= ksVKar * karNaPal;
end;
procedure Tdm2.GenerujRozpis (odData: TDateTime; pocetDnu: integer=14);
var lSQL, d: string;
c: integer;
begin
if (pocetDnu<0) or (pocetDnu>14) then
pocetDnu:= 14;
if (helUtils.SQLObjectExists (Helios, 'dbo.ef_Vyroba_GenerujRozpadCasu'))
and (helUtils.SQLObjectExists (Helios, tblPlanRozpad)) then
begin
// rozpad na 14 dnu dopredu, po 60 minutach
lSQL:= 'DECLARE @d DATETIME=NULL' + CRLF + 'DROP TABLE IF EXISTS #Tab' + CRLF + 'CREATE TABLE #Tab (Datum DATETIME)' + CRLF
+ IfThen(odData>0, 'SET @d = CONVERT(datetime, N' + FormatDateTime ('dd.mm.yyyy', odData).QuotedString + ', 104)', '') + CRLF
+ 'INSERT #Tab (Datum) SELECT * FROM dbo.ef_Vyroba_GenerujRozpadCasu (@d, ' + pocetDnu.ToString + ', 60)' + CRLF
+ 'SELECT CAST(Datum AS DATETIME) AS Datum FROM #Tab ORDER BY Datum';
try
with Helios.OpenSQL (lSQL) do
if (RecordCount>0) then
begin
First;
while not(EOF) do
begin
d:= VarToStr(FieldByNameValues('Datum'));
if not(d.Contains('00:00')) then
d:= d + ' 00:00:00';
c:= MidStr(d, d.IndexOf(' ')+1, 20).Length;
if (c=8) then
d:= d.Replace(' ', ' 0');
lSQL:= 'IF NOT EXISTS (SELECT 1 FROM ' + tblPlanRozpad + ' WHERE Datum=CONVERT(datetime, N' + d.QuotedString + ', 104) )' + CRLF
+ 'INSERT ' + tblPlanRozpad + ' (Datum) SELECT CONVERT(datetime, N' + d.QuotedString + ', 104)';
Helios.ExecSQL (lSQL);
Next;
end;
end;
finally
end;
end;
end;
procedure Tdm2.PlanPalListyNactiSarzePrikazu (idPrikaz, ksVKA: Integer; var externiZak: string);
var lSQL: string;
idVC: integer;
begin
if not(vtPlanPL.Active) then
vtPlanPL.Open;
vtPlanPL.EmptyDataSet;
lSQL:= 'SELECT ID, VyrCislo, Popis, DatExpirace, Mnozstvi FROM ' + tblPrikazVC + ' WHERE IDPrikaz=' + idPrikaz.ToString + ' ORDER BY VyrCislo';
try
with Helios.OpenSQL (lSQL) do
if (RecordCount>0) then
begin
First;
while not(EOF) do
begin
vtPlanPL.Append;
vtPlanPL.FieldByName('idPrikaz').AsInteger:= idPrikaz;
idVC:= VarToStr(FieldByNameValues('ID')).ToInteger;
vtPlanPL.FieldByName('IDVCPrikaz').AsInteger:= idVC;
vtPlanPL.FieldByName('CisloPL').AsString:= VarToStr(FieldByNameValues('VyrCislo'));
vtPlanPL.FieldByName('KAnaPal').AsInteger:= VarToStr(FieldByNameValues('Mnozstvi')).ToInteger;
vtPlanPL.FieldByName('kusu').AsInteger:= vtPlanPL.FieldByName('KAnaPal').AsInteger * ksVKA;
vtPlanPL.FieldByName('DatExpirace').AsString:= VarToStr(FieldByNameValues('DatExpirace'));
externiZak:= VarToStr(FieldByNameValues('Popis'));
with Helios.OpenSQL('SELECT DatZahajeni FROM ' + tblPalety + ' WHERE IDVyrCisPrikaz=' + idVC.ToString) do
if (RecordCount=1) then
begin
vtPlanPL.FieldByName('DatVyrobaZadano').AsString:= VarToStr(FieldByNameValues('DatZahajeni'));
end;
vtPlanPL.Post;
Next;
end;
end;
finally
end;
end;
end.

View File

@ -0,0 +1,10 @@
-- dbo.ep_Vyroba_AdvPlan_ArchivujDavky
CREATE PROCEDURE dbo.ep_Vyroba_AdvPlan_ArchivujDavky
@IDAdvKapacPlan INT=NULL
AS
SET NOCOUNT ON
-- HD Consulting Strakonice, T. Buzin
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu pluginu pro planovani

View File

@ -0,0 +1,556 @@
-- dbo.ep_Vyroba_AdvPlan_ZapisDavkyPrikazu
CREATE PROCEDURE dbo.ep_Vyroba_AdvPlan_ZapisDavkyPrikazu
@datumStart DATETIME=NULL,
@casOd TINYINT=NULL
AS
SET NOCOUNT ON
-- HD Consulting Strakonice, T. Buzin
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu pluginu pro planovani
IF OBJECT_ID('tempdb..#TabPrikazyProKapacPlan', 'U') IS NULL
RETURN
DECLARE
@errMsg NVARCHAR(500),
@tranPred INT,
@majorSqlVer TINYINT,
@jeSql2022 BIT=0,
@cnt INT,
@canCont BIT=0,
@sql NVARCHAR(max),
@debugXml XML
DECLARE
@idSadaDavek INT,
@idVPr INT,
@pocetVlastOper INT,
@dokl INT,
@alt NCHAR(1),
@dilec INT,
@mjEvid NVARCHAR(10),
@kodZakazModif NVARCHAR(20),
@idZakazModif INT,
@idStroj INT=NULL,
@idKalendarStroje INT,
@cntOpProZapis INT,
@doklProZapis INT,
@altProZapis NCHAR(1),
@ksZaHod NUMERIC(19,6),
@kaZaHod NUMERIC(19,6),
@kusyZad NUMERIC(19,6),
@mnozKs NUMERIC(19,6),
@mnozKa NUMERIC(19,6),
@mnozKsVKA NUMERIC(19,6),
@mnozKAnaPal NUMERIC(19,6),
@mnoz NUMERIC(19,6),
@pocetDavek INT,
@cisloDavky INT,
@locId INT,
@planStartPrikaz DATETIME,
@planKonecPrikaz DATETIME,
@secCnt INT,
@planStart DATETIME,
@prepoctiPlanStart BIT,
@planStartEnd DATETIME,
@planKonec DATETIME,
@ksZbytek NUMERIC(19,6),
@cas DATETIME,
@jeTesto BIT=0
DECLARE
@idAdvKPl INT,
@idDavky INT,
@idVypoctu INT,
@idPrac INT,
@podm NVARCHAR(80),
@idDavkyOld INT,
@startOdOld DATETIME,
@poradCislo INT
DECLARE
@jeUdrzba BIT,
@pocetHodUdrzba NUMERIC(19,6),
@idPrPUdrzba INT -- TabPrPostup.ID z prikazu udrzby
DECLARE @davky TABLE (ID INT NOT NULL, CasOd DATETIME, CasDo DATETIME, Zamek BIT DEFAULT 0, PoradoveCislo INT)
BEGIN TRY
SET @tranPred = @@TRANCOUNT
IF (@tranPred=0)
BEGIN TRAN
-- cisteni SQL seedu
SET @cnt = ISNULL( (SELECT MAX(ID) FROM dbo.TabAdvKPVypocty), 1)
DBCC CHECKIDENT(TabAdvKPVypocty, RESEED, @cnt)
SET @cnt = ISNULL( (SELECT MAX(ID) FROM dbo.TabAdvKPDavky), 1)
DBCC CHECKIDENT(TabAdvKPDavky, RESEED, @cnt)
SET @majorSqlVer = CONVERT(tinyint, SERVERPROPERTY('ProductMajorVersion'))
SET @jeSql2022 = CONVERT(bit, IIF(@majorSqlVer>=16, 1, 0))
SELECT @idAdvKPl=ID FROM dbo.TabAdvKapacPlan WHERE Kod=N'99'
SET @idVypoctu=(SELECT TOP(1) ID FROM dbo.TabAdvKPVypocty WHERE IDAdvKapacPlan=@idAdvKPl ORDER BY CisloVypoctu DESC)
IF (@idVypoctu IS NULL)
BEGIN
INSERT dbo.TabAdvKPVypocty (IDAdvKapacPlan, CisloVypoctu, Akce, IDLastMzdy) VALUES (@idAdvKPl, 1, 3, 0)
SET @idVypoctu = SCOPE_IDENTITY()
END
SET @casOd = ISNULL(@casOd, 0)
SET @idSadaDavek = 1 + ISNULL( (SELECT MAX(_VazbaPlgPlan) FROM dbo.TabAdvKPDavky_EXT WHERE _VazbaPlgPlan IS NOT NULL), 0)
DECLARE c CURSOR LOCAL FOR
SELECT ID, JeUdrzba, PocetHodin, IDPrPostup FROM #TabPrikazyProKapacPlan
OPEN c
WHILE (1=1)
BEGIN
FETCH NEXT FROM c INTO @idVPr, @jeUdrzba, @pocetHodUdrzba, @idPrPUdrzba
IF (@@FETCH_STATUS<>0) BREAK
IF (@jeUdrzba=1)
BEGIN
SET @idPrPUdrzba = ISNULL(@idPrPUdrzba, 0)
SET @pocetHodUdrzba = ISNULL(@pocetHodUdrzba, 0)
IF (@idPrPUdrzba>0) AND (@pocetHodUdrzba>0)
BEGIN
IF (@datumStart IS NOT NULL)
SET @planStart = DATEADD(hour, @casOd, dbo.hf_TruncDate(@datumStart))
ELSE
SET @planStart = DATEADD(hour, @casOd, dbo.hf_TruncDate(GETDATE()))
SELECT @idVPr=IDPrikaz, @doklProZapis=Doklad, @altProZapis=Alt, @idPrac=pracoviste, @idStroj=IDStroje
FROM dbo.TabPrPostup WHERE ID=@idPrPUdrzba AND IDOdchylkyDo IS NULL
SELECT @dilec=IdTabKmen, @idZakazModif=IdZakazModif, @kusyZad=Kusy_zad
FROM dbo.TabPrikaz WHERE ID=@idVPr
SET @idKalendarStroje = (SELECT IDPlanKalend FROM dbo.TabCisStroju WHERE ID=@idStroj)
SET @pocetDavek = @pocetHodUdrzba
SET @cisloDavky = 1
-- pokud neni nektera davka daneho prikazu uzamcena, smaz je vsechny
-- jinak nastav aby se planovani toho prikazu pri privnim pruchodu WHILE ukoncilo
/*
IF NOT EXISTS(SELECT 1 FROM dbo.TabAdvKPDavky WHERE IDPrikaz=@idVPr AND IDAdvKapacPlan=@idAdvKPl AND IDStroje=@idStroj AND Zamek=1)
DELETE FROM dbo.TabAdvKPDavky WHERE IDPrikaz=@idVPr AND IDAdvKapacPlan=@idAdvKPl AND IDStroje=@idStroj
ELSE
SET @cisloDavky=@pocetDavek
*/
WHILE (1=1)
BEGIN
IF (@cisloDavky>@pocetDavek) BREAK
DELETE FROM @davky
IF EXISTS (SELECT 1 FROM dbo.TabAdvKPDavky WHERE IDAdvKapacPlan=@idAdvKPl AND IDStroje=@idStroj AND CasOd>=@planStart AND Zamek=0)
BEGIN
;WITH d AS (
SELECT ROW_NUMBER() OVER (ORDER BY CasOd) AS AutoInc,
ID, CasOd, CasDo, Zamek
FROM dbo.TabAdvKPDavky WHERE IDAdvKapacPlan=@idAdvKPl AND IDStroje=@idStroj AND CasOd>=@planStart AND Zamek=0
)
INSERT @davky (ID, CasOd, CasDo, Zamek, PoradoveCislo)
SELECT ID, CasOd, CasDo, Zamek, AutoInc FROM d;
END
SET @debugXml = (SELECT * FROM @davky FOR XML AUTO)
-- begin: test data/casu zahajeni na kalendar stroje
IF (@idKalendarStroje IS NULL) -- pokud kalendar nemam, per to tam
BEGIN
SET @cnt = 0
WHILE EXISTS(SELECT 1 FROM dbo.TabAdvKPDavky WHERE IDAdvKapacPlan=@idAdvKPl AND IDStroje=@idStroj AND Zamek=1 AND @planStart BETWEEN CasOd AND CasDo)
AND (@cnt<=3000) -- kvuli zamrznuti
BEGIN
SET @planStart = DATEADD(hour, 1, @planStart)
SET @cnt = @cnt + 1
END
SET @planStartEnd = DATEADD(second, -1, DATEADD(hour, 1, @planStart))
END
ELSE
BEGIN -- pokud kalendar mam, zkontroluj jestli neni na dany datum/cas vyjimka
SET @cnt = 0
WHILE (EXISTS(SELECT 1 FROM dbo.TabAdvKPDavky WHERE IDAdvKapacPlan=@idAdvKPl AND IDStroje=@idStroj AND Zamek=1 AND @planStart BETWEEN CasOd AND CasDo)
OR EXISTS(SELECT 1 FROM dbo.TabPlanKalendPol WHERE IDStroje=@idStroj AND @planStart BETWEEN CasOd AND CasDo)
)
AND (@cnt<=3000) -- kvuli zamrznuti
BEGIN
SET @planStart = DATEADD(hour, 1, @planStart)
SET @cnt = @cnt + 1
END
SET @planStartEnd = DATEADD(second, -1, DATEADD(hour, 1, @planStart))
END
-- end: test data/casu zahajeni na kalendar stroje
IF OBJECT_ID('dbo.ep_Vyroba_AdvPlan_ArchivujDavky', 'P') IS NOT NULL
EXEC dbo.ep_Vyroba_AdvPlan_ArchivujDavky @IDAdvKapacPlan=@idAdvKPl
SET @podm = N'IdAdvKapacPlan=' + CONVERT(nvarchar, @idAdvKPl)
EXEC @locId=dbo.hp_NajdiPrvniVolny @Tabulka=N'TabAdvKPDavky', @Atribut=N'LocalID', @Where=@podm, @Odkud=1, @Kam=999999999, @Returnem=1
SET @mnoz = 0
INSERT dbo.TabAdvKPDavky (IDAdvKapacPlan, LocalID, IDVypoctu, ZpusobVznikuDavkyKP, DatumPripadu, IDPrikaz, Dilec, DokladPrPostup, AltPrPostup,
IDPrac, IDStroje, CasOd, CasDo, Mnozstvi, PrepravniCas, MeziOperCas, DeadTime, BlokaceZdroje, ProcSplneni, Mnozstvi_Zive)
SELECT @idAdvKPl, @locId, @idVypoctu, 0, @planStart, @idVPr, @dilec, @doklProZapis, @altProZapis, @idPrac, @idStroj, @planStart, @planStartEnd,
@mnoz, 0, 0, 0, 1, 0, @mnoz
SET @idDavky = SCOPE_IDENTITY()
IF (@idDavky IS NOT NULL)
BEGIN
IF NOT EXISTS (SELECT 1 FROM dbo.TabAdvKPDavky_EXT WHERE ID=@idDavky)
INSERT dbo.TabAdvKPDavky_EXT (ID) VALUES (@idDavky)
UPDATE dbo.TabAdvKPDavky_EXT SET _VazbaPlgPlan=@idSadaDavek WHERE ID=@idDavky
END
-- begin: posun nasledujicich davek
DECLARE dav CURSOR LOCAL FOR
SELECT ID, CasOd, PoradoveCislo
FROM @davky
OPEN dav
WHILE (1=1)
BEGIN
FETCH NEXT FROM dav INTO @idDavkyOld, @startOdOld, @poradCislo
IF (@@FETCH_STATUS<>0) BREAK
IF (@poradCislo=1)
SET @startOdOld = DATEADD(hour, 1, @planStart)
ELSE
SET @startOdOld = DATEADD(hour, 1, (SELECT CasOd FROM @davky WHERE PoradoveCislo=@poradCislo-1))
IF (@idKalendarStroje IS NULL)
BEGIN
SET @cnt = 0
WHILE EXISTS(SELECT 1 FROM dbo.TabAdvKPDavky WHERE IDAdvKapacPlan=@idAdvKPl AND IDStroje=@idStroj AND Zamek=1 AND @startOdOld BETWEEN CasOd AND CasDo)
AND (@cnt<=3000) -- kvuli zamrznuti
BEGIN
SET @startOdOld = DATEADD(hour, 1, @startOdOld)
SET @cnt = @cnt + 1
END
END
ELSE
BEGIN
SET @cnt = 0
WHILE (EXISTS(SELECT 1 FROM dbo.TabAdvKPDavky WHERE IDAdvKapacPlan=@idAdvKPl AND IDStroje=@idStroj AND Zamek=1 AND @startOdOld BETWEEN CasOd AND CasDo)
OR EXISTS(SELECT 1 FROM dbo.TabPlanKalendPol WHERE IDStroje=@idStroj AND @planStart BETWEEN CasOd AND CasDo)
)
AND (@cnt<=3000) -- kvuli zamrznuti
BEGIN
SET @startOdOld = DATEADD(hour, 1, @startOdOld)
SET @cnt = @cnt + 1
END
END
UPDATE @davky SET CasOd=@startOdOld, CasDo=DATEADD(second, -1, DATEADD(hour, 1, @startOdOld)) WHERE PoradoveCislo=@poradCislo
UPDATE dbo.TabAdvKPDavky SET CasOd=@startOdOld, CasDo=DATEADD(second, -1, DATEADD(hour, 1, @startOdOld)) WHERE ID=@idDavkyOld
END
CLOSE dav
DEALLOCATE dav
-- end: posun nasledujicich davek
SET @cisloDavky = @cisloDavky + 1
END
END -- @idPrPUdrzba>0
END
ELSE
BEGIN -- @jeUdrzba=0
SET @pocetVlastOper = ISNULL( (SELECT COUNT(ID) FROM dbo.TabPrPostup WHERE IDPrikaz=@idVPr AND IDOdchylkyDo IS NULL AND priorita=0 AND typ<2), 0)
SELECT @dilec=IdTabKmen, @idZakazModif=IdZakazModif, @kusyZad=Kusy_zad, @planStart=Plan_zadani, @planKonec=Plan_Ukonceni
FROM dbo.TabPrikaz WHERE ID=@idVPr
SET @planStartPrikaz = @planStart
SET @planKonecPrikaz = @planKonec
IF (@planStartPrikaz<GETDATE())
BEGIN
SET @secCnt = DATEDIFF(second, @planStart, @planKonec)
IF (@jeSql2022=1)
BEGIN
SET @sql = 'SET @planStartPrikaz = DATEADD(hour, 0, DATETRUNC(hour, GETDATE()))'
EXEC sp_executesql @sql, N'@planStartPrikaz DATETIME OUT', @planStartPrikaz=@planStartPrikaz OUT
END
ELSE
SET @planStartPrikaz = DATEADD(hour, DATEDIFF(hour, 0, DATEADD(minute, 30, GETDATE())), 0)
SET @planKonecPrikaz = DATEADD(second, @secCnt, @planStartPrikaz)
END
SET @jeTesto=0
IF EXISTS (SELECT 1 FROM dbo.TabKmenZbozi WHERE ID=@dilec AND SkupZbo=N'701')
SET @jeTesto=1
IF (@jeTesto=1)
CONTINUE
SELECT @dokl=Doklad, @alt=Alt, @idPrac=pracoviste, @idStroj=IDStroje FROM dbo.TabPrPostup WHERE IDPrikaz=@idVPr AND Odvadeci=1 AND IDOdchylkyDo IS NULL
SET @idKalendarStroje = (SELECT IDPlanKalend FROM dbo.TabCisStroju WHERE ID=@idStroj)
SELECT @mjEvid=MJEvidence FROM dbo.TabKmenZbozi WHERE ID=@dilec
SET @mnoz = 0
SET @mnozKs = 0
SET @mnozKa = 0
SET @mnozKsVKA = 0
SET @mnozKAnaPal = 0
SET @mjEvid=LOWER(@mjEvid)
IF (@mjEvid=N'ka')
BEGIN
SET @mnozKsVKA = ISNULL( (SELECT PocetOdvozene FROM dbo.TabMJZbozi WHERE IDKmenZbozi=@dilec AND LOWER(KodMJ1)=N'KA' AND LOWER(KodMJ2)=N'ks'), 1)
SET @mnozKAnaPal = ISNULL( (SELECT PocetHlavni FROM dbo.TabMJZbozi WHERE IDKmenZbozi=@dilec AND LOWER(KodMJ1)=N'ka' AND LOWER(KodMJ2)=N'pal'), 0)
SET @mnozKa = @kusyZad
SET @mnozKs = @kusyZad * @mnozKsVKA
END
IF (@mjEvid=N'ks')
BEGIN
SET @mnozKs = @kusyZad
END
SET @ksZaHod=0
IF (@idZakazModif IS NOT NULL)
BEGIN
SET @kodZakazModif = (SELECT Kod FROM dbo.TabZakazModif WHERE ID=@idZakazModif)
IF (@kodZakazModif IS NOT NULL)
BEGIN
SET @idStroj = (SELECT ID FROM dbo.TabCisStroju WHERE Kod=LEFT(@kodZakazModif,10) AND Blokovano=0)
IF (@idStroj IS NOT NULL)
SET @ksZaHod = ISNULL( (SELECT _KapacitaKsZaHod FROM dbo.TabCisStroju_EXT WHERE ID=@idStroj), 0)
END
END -- @idZakazModif IS NOT NULL
SET @doklProZapis=NULL
SET @altProZapis=NULL
SET @cntOpProZapis = (SELECT COUNT(ID) FROM dbo.TabPrPostup WHERE IDPrikaz=@idVPr AND IDOdchylkyDo IS NULL AND priorita=0)
IF (@cntOpProZapis=1)
BEGIN
SELECT TOP(1) @doklProZapis=pp.Doklad, @altProZapis=pp.Alt, @ksZaHod=ISNULL(ppe._RychlostOperKsHod,0)
FROM dbo.TabPrPostup pp LEFT JOIN dbo.TabPrPostup_EXT ppe ON (ppe.ID=pp.ID)
WHERE pp.IDPrikaz=@idVPr AND pp.IDOdchylkyDo IS NULL AND pp.priorita=0
END
ELSE
BEGIN
-- peceni - pozor, diakritika dela obcas problem, proto pres LIKE
IF EXISTS(SELECT 1 FROM dbo.TabPrPostup WHERE Nazev LIKE N'Pe_en<EFBFBD>' AND IDPrikaz=@idVPr AND IDOdchylkyDo IS NULL AND priorita=0)
SELECT TOP(1) @doklProZapis=pp.Doklad, @altProZapis=pp.Alt, @ksZaHod=ISNULL(ppe._RychlostOperKsHod,0)
FROM dbo.TabPrPostup pp LEFT JOIN dbo.TabPrPostup_EXT ppe ON (ppe.ID=pp.ID)
WHERE pp.Nazev LIKE N'Pe_en<EFBFBD>' AND pp.IDPrikaz=@idVPr AND pp.IDOdchylkyDo IS NULL AND pp.priorita=0
-- maceni, diakritika dela obcas problem, proto pres LIKE
IF EXISTS(SELECT 1 FROM dbo.TabPrPostup WHERE Nazev LIKE N'M<EFBFBD>_en<EFBFBD>' AND IDPrikaz=@idVPr AND IDOdchylkyDo IS NULL AND priorita=0)
SELECT TOP(1) @doklProZapis=pp.Doklad, @altProZapis=pp.Alt, @ksZaHod=ISNULL(ppe._RychlostOperKsHod,0)
FROM dbo.TabPrPostup pp LEFT JOIN dbo.TabPrPostup_EXT ppe ON (ppe.ID=pp.ID)
WHERE pp.Nazev LIKE N'M<EFBFBD>_en<EFBFBD>' AND pp.IDPrikaz=@idVPr AND pp.IDOdchylkyDo IS NULL AND pp.priorita=0
-- maceni, diakritika dela obcas problem, proto pres LIKE
IF EXISTS(SELECT 1 FROM dbo.TabPrPostup WHERE Nazev LIKE N'Pol<EFBFBD>v<EFBFBD>n<EFBFBD>' AND IDPrikaz=@idVPr AND IDOdchylkyDo IS NULL AND priorita=0)
SELECT TOP(1) @doklProZapis=pp.Doklad, @altProZapis=pp.Alt, @ksZaHod=ISNULL(ppe._RychlostOperKsHod,0)
FROM dbo.TabPrPostup pp LEFT JOIN dbo.TabPrPostup_EXT ppe ON (ppe.ID=pp.ID)
WHERE pp.Nazev LIKE N'Pol<EFBFBD>v<EFBFBD>n<EFBFBD>' AND pp.IDPrikaz=@idVPr AND pp.IDOdchylkyDo IS NULL AND pp.priorita=0
END
IF (@ksZaHod<>0) AND (@doklProZapis IS NOT NULL)
BEGIN
SET @kaZaHod=0
IF (@mjEvid=N'ka')
SET @kaZaHod = ROUND(@ksZaHod/@mnozKsVKA, 2)
-- SET @planStart=NULL
IF (COL_LENGTH('dbo.TabPrikaz_EXT', '_PlanZahajeni') IS NOT NULL)
SET @planStart=(SELECT _PlanZahajeni FROM dbo.TabPrikaz_EXT WHERE ID=@idVPr)
IF (@planStart IS NULL)
BEGIN
/*
IF (@jeSql2022=1)
SET @planStart=DATEADD(hour, 1, DATETRUNC(hour,GETDATE()))
ELSE
*/
SET @planStart=DATEADD(hour, 1, CONVERT(datetime, FORMAT(@planStartPrikaz, 'dd.MM.yyyy HH', 'de-de') + N':00:00', 104))
SET @prepoctiPlanStart=1
END
SET @prepoctiPlanStart=0
IF (@datumStart IS NOT NULL)
SET @planStart = DATEADD(hour, @casOd, dbo.hf_TruncDate(@datumStart))
-- SET @planKonec=NULL
IF (COL_LENGTH('dbo.TabPrikaz_EXT', '_PlanUkonceni') IS NOT NULL)
SET @planKonec=(SELECT _PlanUkonceni FROM dbo.TabPrikaz_EXT WHERE ID=@idVPr)
IF (@planKonec IS NULL)
SET @planKonec=DATEADD(minute, 60.0 * ROUND(@mnozKs/@ksZaHod,2), @planStart)
IF (@prepoctiPlanStart=1)
/*
BEGIN
IF (@jeSql2022=1)
SET @planKonec=DATEADD(second, -1, DATEADD(hour, 1, DATETRUNC(hour,@planKonec)))
ELSE
*/
-- SET @planStart=DATEADD(hour, 1, CEILING(DATEDIFF(hour, 0, @planKonec)/60.0)*60)
SET @planStart=DATEADD(hour, 1, CONVERT(datetime, FORMAT(@planKonec, 'dd.MM.yyyy HH', 'de-de') + N':00:00', 104))
-- END
SET @pocetDavek = CEILING(@mnozKs/@ksZaHod)
IF (@pocetDavek>0)
BEGIN
SET @cisloDavky = 1
-- pokud neni nektera davka daneho prikazu uzamcena, smaz je vsechny
-- jinak nastav aby se planovani toho prikazu pri privnim pruchodu WHILE ukoncilo
IF NOT EXISTS(SELECT 1 FROM dbo.TabAdvKPDavky WHERE IDPrikaz=@idVPr AND IDAdvKapacPlan=@idAdvKPl AND IDStroje=@idStroj AND Zamek=1)
DELETE FROM dbo.TabAdvKPDavky WHERE IDPrikaz=@idVPr AND IDAdvKapacPlan=@idAdvKPl AND IDStroje=@idStroj
ELSE
SET @cisloDavky=@pocetDavek
WHILE (1=1)
BEGIN
IF (@cisloDavky>@pocetDavek) BREAK
DELETE FROM @davky
IF EXISTS (SELECT 1 FROM dbo.TabAdvKPDavky WHERE IDAdvKapacPlan=@idAdvKPl AND IDStroje=@idStroj AND CasOd>=@planStart AND Zamek=0)
BEGIN
;WITH d AS (
SELECT ROW_NUMBER() OVER (ORDER BY CasOd) AS AutoInc,
ID, CasOd, CasDo, Zamek
FROM dbo.TabAdvKPDavky WHERE IDAdvKapacPlan=@idAdvKPl AND IDStroje=@idStroj AND CasOd>=@planStart AND Zamek=0
)
INSERT @davky (ID, CasOd, CasDo, Zamek, PoradoveCislo)
SELECT ID, CasOd, CasDo, Zamek, AutoInc FROM d;
END
SET @debugXml = (SELECT * FROM @davky FOR XML AUTO)
-- begin: test data/casu zahajeni na kalendar stroje
IF (@idKalendarStroje IS NULL) -- pokud kalendar nemam, per to tam
BEGIN
SET @cnt = 0
WHILE EXISTS(SELECT 1 FROM dbo.TabAdvKPDavky WHERE IDAdvKapacPlan=@idAdvKPl AND IDStroje=@idStroj AND Zamek=1 AND @planStart BETWEEN CasOd AND CasDo)
AND (@cnt<=3000) -- kvuli zamrznuti
BEGIN
SET @planStart = DATEADD(hour, 1, @planStart)
SET @cnt = @cnt + 1
END
SET @planStartEnd = DATEADD(second, -1, DATEADD(hour, 1, @planStart))
END
ELSE
BEGIN -- pokud kalendar mam, zkontroluj jestli neni na dany datum/cas vyjimka
SET @cnt = 0
WHILE (EXISTS(SELECT 1 FROM dbo.TabAdvKPDavky WHERE IDAdvKapacPlan=@idAdvKPl AND IDStroje=@idStroj AND Zamek=1 AND @planStart BETWEEN CasOd AND CasDo)
OR EXISTS(SELECT 1 FROM dbo.TabPlanKalendPol WHERE IDStroje=@idStroj AND @planStart BETWEEN CasOd AND CasDo)
)
AND (@cnt<=3000) -- kvuli zamrznuti
BEGIN
SET @planStart = DATEADD(hour, 1, @planStart)
SET @cnt = @cnt + 1
END
SET @planStartEnd = DATEADD(second, -1, DATEADD(hour, 1, @planStart))
END
-- end: test data/casu zahajeni na kalendar stroje
IF (@cisloDavky=@pocetDavek)
BEGIN
SET @ksZaHod = @mnozKs - ( @ksZaHod * (@cisloDavky-1))
SET @kaZaHod = ROUND(@ksZaHod/@mnozKsVKA, 2)
END
SET @mnoz = CASE @mjEvid WHEN N'ka' THEN @kaZaHod WHEN N'ks' THEN @ksZaHod END
IF OBJECT_ID('dbo.ep_Vyroba_AdvPlan_ArchivujDavky', 'P') IS NOT NULL
EXEC dbo.ep_Vyroba_AdvPlan_ArchivujDavky @IDAdvKapacPlan=@idAdvKPl
SET @podm = N'IdAdvKapacPlan=' + CONVERT(nvarchar, @idAdvKPl)
EXEC @locId=dbo.hp_NajdiPrvniVolny @Tabulka=N'TabAdvKPDavky', @Atribut=N'LocalID', @Where=@podm, @Odkud=1, @Kam=999999999, @Returnem=1
INSERT dbo.TabAdvKPDavky (IDAdvKapacPlan, LocalID, IDVypoctu, ZpusobVznikuDavkyKP, DatumPripadu, IDPrikaz, Dilec, DokladPrPostup, AltPrPostup,
IDPrac, IDStroje, CasOd, CasDo, Mnozstvi, PrepravniCas, MeziOperCas, DeadTime, BlokaceZdroje, ProcSplneni, Mnozstvi_Zive)
SELECT @idAdvKPl, @locId, @idVypoctu, 0, @planStart, @idVPr, @dilec, @doklProZapis, @altProZapis, @idPrac, @idStroj, @planStart, @planStartEnd,
@mnoz, 0, 0, 0, 1, 0, @mnoz
SET @idDavky = SCOPE_IDENTITY()
IF (@idDavky IS NOT NULL)
BEGIN
IF NOT EXISTS(SELECT 1 FROM dbo.TabAdvKPDavky_EXT WHERE ID=@idDavky)
INSERT dbo.TabAdvKPDavky_EXT (ID) VALUES (@idDavky)
UPDATE dbo.TabAdvKPDavky_EXT SET _VazbaPlgPlan=@idSadaDavek WHERE ID=@idDavky
END
IF NOT EXISTS(SELECT 1 FROM dbo.TabAdvKPDavky_EXT WHERE ID=@idDavky)
INSERT dbo.TabAdvKPDavky_EXT (ID) VALUES (@idDavky)
UPDATE dbo.TabAdvKPDavky_EXT SET _MnozstviKs=CASE @mjEvid WHEN N'ka' THEN @ksZaHod WHEN N'ks' THEN @ksZaHod ELSE NULL END WHERE ID=@idDavky
-- begin: posun nasledujicich davek
DECLARE dav CURSOR LOCAL FOR
SELECT ID, CasOd, PoradoveCislo
FROM @davky
OPEN dav
WHILE (1=1)
BEGIN
FETCH NEXT FROM dav INTO @idDavkyOld, @startOdOld, @poradCislo
IF (@@FETCH_STATUS<>0) BREAK
IF (@poradCislo=1)
SET @startOdOld = DATEADD(hour, 1, @planStart)
ELSE
SET @startOdOld = DATEADD(hour, 1, (SELECT CasOd FROM @davky WHERE PoradoveCislo=@poradCislo-1))
IF (@idKalendarStroje IS NULL)
BEGIN
SET @cnt = 0
WHILE EXISTS(SELECT 1 FROM dbo.TabAdvKPDavky WHERE IDAdvKapacPlan=@idAdvKPl AND IDStroje=@idStroj AND Zamek=1 AND @startOdOld BETWEEN CasOd AND CasDo)
AND (@cnt<=3000) -- kvuli zamrznuti
BEGIN
SET @startOdOld = DATEADD(hour, 1, @startOdOld)
SET @cnt = @cnt + 1
END
END
ELSE
BEGIN
SET @cnt = 0
WHILE (EXISTS(SELECT 1 FROM dbo.TabAdvKPDavky WHERE IDAdvKapacPlan=@idAdvKPl AND IDStroje=@idStroj AND Zamek=1 AND @startOdOld BETWEEN CasOd AND CasDo)
OR EXISTS(SELECT 1 FROM dbo.TabPlanKalendPol WHERE IDStroje=@idStroj AND @planStart BETWEEN CasOd AND CasDo)
)
AND (@cnt<=3000) -- kvuli zamrznuti
BEGIN
SET @startOdOld = DATEADD(hour, 1, @startOdOld)
SET @cnt = @cnt + 1
END
END
UPDATE @davky SET CasOd=@startOdOld, CasDo=DATEADD(second, -1, DATEADD(hour, 1, @startOdOld)) WHERE PoradoveCislo=@poradCislo
UPDATE dbo.TabAdvKPDavky SET CasOd=@startOdOld, CasDo=DATEADD(second, -1, DATEADD(hour, 1, @startOdOld)) WHERE ID=@idDavkyOld
END
CLOSE dav
DEALLOCATE dav
-- end: posun nasledujicich davek
SET @planStart = DATEADD(hour, 1, @planStart)
SET @cisloDavky = @cisloDavky + 1
END
END
END -- @ksZaHod<>0
END -- @jeUdrzba=0
END
CLOSE c
DEALLOCATE c
IF (@tranPred=0) AND (@@TRANCOUNT>0)
COMMIT TRAN
END TRY
BEGIN CATCH
IF (@tranPred=0) AND (@@TRANCOUNT>0)
ROLLBACK TRAN
SET @errMsg = ERROR_MESSAGE()
END CATCH

View File

@ -0,0 +1,133 @@
-- dbo.ep_Vyroba_ZapisDoPlanu
CREATE PROCEDURE dbo.ep_Vyroba_ZapisDoPlanu
@dilec INT=NULL,
@idZakazModif INT=NULL,
@datum NVARCHAR(15)=N'',
@hodinaOd TINYINT=0,
@pocetKs NUMERIC(19,6)=0.0,
@pocetKA NUMERIC(19,6)=0.0,
@pocetPal NUMERIC(19,6)=0.0,
@datumPlanKonec DATETIME=NULL OUT,
@errMsg NVARCHAR(500)=N'' OUT
AS
-- HD Consulting Strakonice, T. Buzin
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu pluginu pro planovani
SET NOCOUNT ON
DECLARE
@idPlan INT,
@datumPlanStart DATETIME,
@planHodin NUMERIC(19,6),
@radaPlanu NVARCHAR(10),
@mjEvid NVARCHAR(10),
@mnoz NUMERIC(19,6),
@mnozKs NUMERIC(19,6)
DECLARE
@kodZakazModif NVARCHAR(20),
@idStroj INT,
@ksZaHod NUMERIC(19,6),
@ksVKA NUMERIC(19,6)
IF (@dilec IS NULL)
RETURN
SET @pocetKs = ISNULL(@pocetKs, 0)
SET @pocetKA = ISNULL(@pocetKA, 0)
SET @pocetPal = ISNULL(@pocetPal, 0)
IF (@pocetKs=0) AND (@pocetKA=0) AND (@pocetPal=0)
RETURN
BEGIN TRY
SET @datum = TRIM(ISNULL(@datum, N''))
SET @hodinaOd = ISNULL(@hodinaOd, 0)
IF (@datum=N'')
SET @datumPlanStart = GETDATE()
ELSE
SET @datumPlanStart = ISNULL( TRY_CONVERT(DATETIME, @datum), GETDATE())
SET @datumPlanStart = DATEADD(hour, @hodinaOd, dbo.hf_TruncDate(@datumPlanStart) )
END TRY
BEGIN CATCH
SET @datumPlanStart = DATEADD(hour, @hodinaOd, dbo.hf_TruncDate(GETDATE()) )
END CATCH
SET @idStroj = NULL
SET @ksZaHod = 0
SET @kodZakazModif = (SELECT Kod FROM dbo.TabZakazModif WHERE ID=@idZakazModif)
IF (@kodZakazModif IS NOT NULL)
BEGIN
SET @idStroj = (SELECT ID FROM dbo.TabCisStroju WHERE Kod=LEFT(@kodZakazModif,10) AND Blokovano=0)
IF (@idStroj IS NOT NULL)
SET @ksZaHod = ISNULL( (SELECT _KapacitaKsZaHod FROM dbo.TabCisStroju_EXT WHERE ID=@idStroj), 0)
END
SET @mnoz = 0
SET @mnozKs = 0
SET @ksVKA = 0
IF (@pocetKs>0)
SET @mnozKs = @pocetKs
SELECT @mjEvid=MJEvidence FROM dbo.TabKmenZbozi WHERE ID=@dilec
IF (@mjEvid=N'KA')
BEGIN
SET @ksVKA = ISNULL( (SELECT PocetOdvozene FROM dbo.TabMJZbozi WHERE IDKmenZbozi=@dilec AND LOWER(KodMJ1)=N'KA' AND LOWER(KodMJ2)=N'ks'), 1)
IF (@pocetKA>0)
BEGIN
SET @mnoz = @pocetKA
SET @mnozKs = @mnoz * @ksVKA
END
END
IF (@mnoz=0)
BEGIN
IF (@pocetKs>0) AND (@mjEvid=N'KA')
SET @mnoz = CEILING(@pocetKs / @ksVKA)
IF (@pocetPal>0) AND (@mjEvid=N'KA')
BEGIN
SET @mnoz = CEILING(@pocetPal * ISNULL( (SELECT PocetHlavni FROM dbo.TabMJZbozi WHERE IDKmenZbozi=@dilec AND LOWER(KodMJ1)=N'ka' AND LOWER(KodMJ2)=N'pal'), 0))
SET @mnozKs = @mnoz * @ksVKA
END
END -- mnoz=0, najdi prepocet ks a pal
IF (@datumPlanKonec IS NULL)
BEGIN
SET @planHodin = 0
IF (@ksZaHod<>0)
SET @planHodin = ROUND(@mnozKs/@ksZaHod, 2)
IF (@planHodin=0)
EXEC dbo.hp_GetPlanovanyTerminDokonceniVyroby @IDFinal=@dilec, @IDZakazModif=@idZakazModif, @Mnozstvi=@mnoz,
@DatumZahajeni=@datumPlanStart, @DatumUkonceni=@datumPlanKonec OUT
ELSE
SET @datumPlanKonec=DATEADD(minute, @planHodin*60.0, @datumPlanStart)
END
SET @radaPlanu=(SELECT ISNULL(pkz.RadaVyrPlanu,sz.ParD_RadaVyrPlanu) FROM dbo.TabKmenZbozi k
INNER JOIN dbo.TabParKmZ pkz ON (pkz.IDKmenZbozi=k.ID)
INNER JOIN dbo.TabSkupinyZbozi sz ON (sz.SkupZbo=k.SkupZbo)
WHERE k.ID=@dilec)
SET @idPlan=0
IF (@radaPlanu IS NOT NULL) AND (@mnoz>0)
BEGIN
BEGIN TRY
EXEC @idPlan=dbo.hp_NewVyrobniPlan @Rada=@radaPlanu, @IDDilce=@dilec, @IDZakazModif=@idZakazModif, @mnozstvi=@mnoz, @PlanUkonceni=@datumPlanKonec
END TRY
BEGIN CATCH
SET @errMsg=ERROR_MESSAGE()
SET @idPlan=0
END CATCH
END
RETURN @idPlan

View File

@ -0,0 +1,198 @@
-- dbo.ep_Vyroba_ZrusZakazkuPlanuDleFinPrikazu
CREATE PROCEDURE dbo.ep_Vyroba_ZrusZakazkuPlanuDleFinPrikazu
@idAdvKP INT=NULL,
@idVPrFin INT=NULL,
@idStroj INT=NULL,
@jeUdrzba BIT=0,
@idSadaDavek INT=NULL,
@errorMsg NVARCHAR(500)=N'' OUT
AS
-- HD Consulting Strakonice, T. Buzin
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu pluginu pro planovani
SET NOCOUNT ON
IF (@idAdvKP IS NULL)
BEGIN
SET @errorMsg = N'Neni speficikovan kapacitni plan'
RETURN
END
IF (@idStroj IS NULL)
BEGIN
SET @errorMsg = N'Neni specifikovan stroj'
RETURN
END
DECLARE
@tranPred INT,
@cnt INT,
@iTemp INT,
@xml XML,
@retVal INT,
@idVPr INT,
@idPlan INT,
@minCasDo DATETIME=NULL,
@maxCasDo DATETIME=NULL,
@idDavka INT,
@casOd DATETIME,
@casOdNew DATETIME,
@casDo DATETIME,
@idKalendarStroje INT
DECLARE @davkyZa TABLE (ID INT, IDPrikaz INT, Mnozstvi NUMERIC(19,6), CasOd DATETIME, CasDo DATETIME)
DECLARE @sadaDavek TABLE (ID INT NOT NULL)
SET @idKalendarStroje = (SELECT IDPlanKalend FROM dbo.TabCisStroju WHERE ID=@idStroj)
SET @maxCasDo = CONVERT(datetime, N'1.1.2020', 104)
SET @maxCasDo = @minCasDo -- CONVERT(datetime, N'1.1.2020', 104)
DELETE FROM @sadaDavek
IF (@idSadaDavek IS NOT NULL)
INSERT @sadaDavek (ID) SELECT ID FROM dbo.TabAdvKPDavky_EXT WHERE _VazbaPlgPlan=@idSadaDavek
BEGIN TRY
SET @tranPred=@@TRANCOUNT
IF( @tranPred=0)
BEGIN TRAN
DECLARE vp CURSOR LOCAL FOR
SELECT ID, IDPlan
FROM dbo.TabPrikaz
WHERE IDPrikazRidici=@idVPrFin
AND StavPrikazu<40
ORDER BY UrovenVnoreni DESC
OPEN vp
WHILE (1=1)
BEGIN
FETCH NEXT FROM vp INTO @idVPr, @idPlan
IF (@@FETCH_STATUS<>0) BREAK
IF EXISTS(SELECT 1 FROM dbo.TabAdvKPDavky WHERE Zamek=1 AND IDAdvKapacPlan=@idAdvKP AND IDPrikaz=@idVPr AND IDStroje=@idStroj)
CONTINUE
IF EXISTS(SELECT ID FROM dbo.TabAdvKPDavky WHERE IDAdvKapacPlan=@idAdvKP AND IDPrikaz=@idVPr AND IDStroje=@idStroj AND CasDo>@maxCasDo)
SET @maxCasDo = (SELECT MAX(CasDo) FROM dbo.TabAdvKPDavky WHERE Zamek=0 AND IDAdvKapacPlan=@idAdvKP AND IDPrikaz=@idVPr AND IDStroje=@idStroj AND CasDo>@maxCasDo)
-- zkontroluje zda je neco z prikazu uz odvedeno a pripadne smaze vsechny vazby (kusovnik, operace, VC, naradi, OPN, davky advKP, kalk/plan naklady...)
EXEC @retVal = dbo.hp_TabPrikaz_TriggerBeforeDelete @ID=@idVPr, @PouzeTestPredZrusenimStavuZadano=0
IF (@@ERROR=0) AND (@retVal=0)
DELETE FROM dbo.TabPrikaz WHERE ID=@idVPr
-- EXEC @retVal=dbo.hp_TabPlan_TriggerBeforeDelete @ID=@idPlan
-- IF (@@ERROR=0) AND (@retVal=0)
-- IF NOT EXISTS (SELECT 1 FROM dbo.TabPrikaz WHERE IDPlan=@idPlan)
-- DELETE FROM dbo.TabPlan WHERE ID=@idPlan
END
CLOSE vp
DEALLOCATE vp
SET @minCasDo = DATEADD(hour, 1, DATEADD(hour, DATEDIFF(hour, 0, @minCasDo), 0))
-- SET @maxCasDo = @minCasDo -- CONVERT(datetime, N'1.1.2020', 104)
IF EXISTS (SELECT 1 FROM dbo.TabAdvKPDavky WHERE IDAdvKapacPlan=@idAdvKP AND IDStroje=@idStroj AND CasDo<@maxCasDo)
BEGIN
SELECT @minCasDo=MAX(CasDo) FROM dbo.TabAdvKPDavky WHERE IDAdvKapacPlan=@idAdvKP AND IDStroje=@idStroj AND CasDo<@maxCasDo
SET @casOdNew = DATEADD(second, 1, @minCasDo)
END
IF EXISTS (SELECT 1 FROM dbo.TabAdvKPDavky WHERE IDAdvKapacPlan=@idAdvKP AND IDPrikaz=@idVPrFin AND IDStroje=@idStroj AND CasDo>@maxCasDo)
SET @maxCasDo = (SELECT MAX(CasDo) FROM dbo.TabAdvKPDavky WHERE IDAdvKapacPlan=@idAdvKP AND IDPrikaz=@idVPrFin AND IDStroje=@idStroj AND CasDo>@maxCasDo)
SELECT @idPlan=IDPlan FROM dbo.TabPrikaz WHERE ID=@idVPrFin
-- zkontroluje zda je neco z prikazu uz odvedeno a pripadne smaze vsechny vazby (kusovnik, operace, VC, naradi, OPN, davky advKP, kalk/plan naklady...)
EXEC @retVal = dbo.hp_TabPrikaz_TriggerBeforeDelete @ID=@idVPrFin, @PouzeTestPredZrusenimStavuZadano=0
DELETE FROM dbo.TabPrikaz WHERE ID=@idVPrFin
EXEC @retVal=dbo.hp_TabPlan_TriggerBeforeDelete @ID=@idPlan
IF (@@ERROR=0) AND (@retVal=0)
DELETE FROM dbo.TabPlan WHERE ID=@idPlan
-- nasledujici neblokovane davky
INSERT @davkyZa (ID, CasOd, CasDo)
SELECT ID, CasOd, CasDo FROM dbo.TabAdvKPDavky WHERE Zamek=0 AND IDAdvKapacPlan=@idAdvKP AND IDStroje=@idStroj AND CasOd>@maxCasDo
SET @xml=(SELECT * FROM @davkyZa FOR XML AUTO)
-- presun je dopredu, na konec predchozi prace na tom samem stroji, pokud ma stroj kalendar, koukej i na nej
DECLARE dav CURSOR LOCAL FOR
SELECT ID, CasOd, CasDo
FROM @davkyZa
ORDER BY CasOd
OPEN dav
WHILE (1=1)
BEGIN
FETCH NEXT FROM dav INTO @idDavka, @casOd, @casDo
IF (@@FETCH_STATUS<>0) BREAK
SET @casOd = @casOdNew
-- begin: test data/casu zahajeni na kalendar stroje
IF (@idKalendarStroje IS NULL) -- pokud kalendar nemam, per to tam
BEGIN
SET @cnt = 0
WHILE EXISTS(SELECT 1 FROM dbo.TabAdvKPDavky WHERE IDAdvKapacPlan=@idAdvKP AND IDStroje=@idStroj AND Zamek=1 AND @casOd BETWEEN CasOd AND CasDo)
AND (@cnt<=3000) -- kvuli zamrznuti
BEGIN
SET @casOd = DATEADD(hour, 1, @casOd)
SET @cnt = @cnt + 1
END
SET @casDo = DATEADD(second, -1, DATEADD(hour, 1, @casOd))
END
ELSE
BEGIN -- pokud kalendar mam, zkontroluj jestli neni na dany datum/cas vyjimka
SET @cnt = 0
WHILE (EXISTS(SELECT 1 FROM dbo.TabAdvKPDavky WHERE IDAdvKapacPlan=@idAdvKP AND IDStroje=@idStroj AND Zamek=1 AND @casOd BETWEEN CasOd AND CasDo)
OR EXISTS(SELECT 1 FROM dbo.TabPlanKalendPol WHERE IDStroje=@idStroj AND @casOd BETWEEN CasOd AND CasDo)
)
AND (@cnt<=3000) -- kvuli zamrznuti
BEGIN
SET @casOd = DATEADD(hour, 1, @casOd)
SET @cnt = @cnt + 1
END
SET @casDo = DATEADD(second, -1, DATEADD(hour, 1, @casOd))
END
-- end: test data/casu zahajeni na kalendar stroje
UPDATE dbo.TabAdvKPDavky SET CasOd=@casOd, CasDo=@casDo WHERE ID=@idDavka
END
CLOSE dav
DEALLOCATE dav
IF (@tranPred=0) AND (@@TRANCOUNT>0)
COMMIT TRAN
END TRY
BEGIN CATCH
IF (@tranPred=0) AND (@@TRANCOUNT>0)
ROLLBACK TRAN
SET @errorMsg = ERROR_MESSAGE()
IF (CURSOR_STATUS('local','dav')>=-1)
BEGIN
CLOSE dav
DEALLOCATE dav
END
IF (CURSOR_STATUS('local','vp')>=-1)
BEGIN
CLOSE vp
DEALLOCATE vp
END
END CATCH

294
_plgPlan/frmKmen.dfm Normal file
View File

@ -0,0 +1,294 @@
object formKmen: TformKmen
Left = 0
Top = 0
BorderIcons = [biSystemMenu]
Caption = ' Vyberte polo'#382'ku do pl'#225'nu'
ClientHeight = 800
ClientWidth = 1203
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'Segoe UI'
Font.Style = []
Position = poOwnerFormCenter
OnClose = FormClose
OnShow = FormShow
TextHeight = 21
object grd1: TGridPanel
Left = 0
Top = 0
Width = 1203
Height = 800
Align = alClient
Caption = 'grd1'
ColumnCollection = <
item
Value = 100.000000000000000000
end>
ControlCollection = <
item
Column = 0
Control = Panel1
Row = 1
end
item
Column = 0
Control = grd2
Row = 0
end>
RowCollection = <
item
Value = 5.000000000000000000
end
item
Value = 95.000000000000000000
end>
TabOrder = 0
object Panel1: TPanel
Left = 1
Top = 41
Width = 1201
Height = 758
Align = alClient
Anchors = []
TabOrder = 0
object grdKmen: TJvDBGrid
Left = 1
Top = 1
Width = 1199
Height = 756
Align = alClient
DataSource = dm2.dsKmen
DrawingStyle = gdsClassic
Options = [dgTitles, dgIndicator, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgConfirmDelete, dgCancelOnExit, dgTitleClick, dgTitleHotTrack]
ReadOnly = True
TabOrder = 0
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -16
TitleFont.Name = 'Segoe UI'
TitleFont.Style = []
OnDrawColumnCell = grdKmenDrawColumnCell
OnDblClick = grdKmenDblClick
ScrollBars = ssVertical
SelectColumnsDialogStrings.Caption = 'Vyberte sloupce'
SelectColumnsDialogStrings.OK = '&OK'
SelectColumnsDialogStrings.NoSelectionWarning = 'Mus'#237' b'#253't viditeln'#253' aspo'#328' jeden sloupec !'
CanDelete = False
EditControls = <>
RowsHeight = 25
TitleRowHeight = 25
Columns = <
item
Expanded = False
FieldName = 'colID'
Visible = False
end
item
Alignment = taCenter
Expanded = False
FieldName = 'colSZ'
Title.Alignment = taCenter
Title.Caption = 'SK'
Width = 35
Visible = True
end
item
Alignment = taCenter
Expanded = False
FieldName = 'colRegCis'
Title.Alignment = taCenter
Title.Caption = 'Reg. '#269#237'slo'
Width = 109
Visible = True
end
item
Expanded = False
FieldName = 'colNazev1'
Title.Alignment = taCenter
Title.Caption = 'N'#225'zev'
Width = 352
Visible = True
end
item
Expanded = False
FieldName = 'colZaklad'
Title.Alignment = taCenter
Title.Caption = 'Z'#225'klad'
Width = 232
Visible = True
end
item
Expanded = False
FieldName = 'colZakModif'
Title.Alignment = taCenter
Title.Caption = 'Stroj'
Width = 135
Visible = True
end
item
Expanded = False
FieldName = 'colKSvKA'
Title.Alignment = taCenter
Title.Caption = 'Ks v KA'
Width = 74
Visible = True
end
item
Expanded = False
FieldName = 'colKAnaPAL'
Title.Alignment = taCenter
Title.Caption = 'KA na Pal'
Width = 76
Visible = True
end
item
Expanded = False
FieldName = 'colKSnaPAL'
Title.Alignment = taCenter
Title.Caption = 'KS na Pal'
Width = 83
Visible = True
end
item
Alignment = taCenter
Expanded = False
FieldName = 'colMJEvid'
Title.Alignment = taCenter
Title.Caption = 'bal'
Width = 54
Visible = True
end>
end
end
object grd2: TGridPanel
AlignWithMargins = True
Left = 4
Top = 4
Width = 1195
Height = 34
Align = alClient
ColumnCollection = <
item
Value = 4.000000000000000000
end
item
Value = 9.199999999999999000
end
item
Value = 29.400000000000000000
end
item
Value = 19.700000000000000000
end
item
Value = 11.200000000000000000
end
item
Value = 26.500000000000000000
end>
ControlCollection = <
item
Column = 0
Control = btnClear
Row = 0
end
item
Column = 1
Control = edtRegCis
Row = 0
end
item
Column = 2
Control = edtNazev
Row = 0
end
item
Column = 3
Control = edtZaklad
Row = 0
end
item
Column = 4
Control = edtStroj
Row = 0
end>
RowCollection = <
item
Value = 100.000000000000000000
end>
TabOrder = 1
object btnClear: TBitBtn
AlignWithMargins = True
Left = 4
Top = 4
Width = 42
Height = 26
Align = alClient
ImageIndex = 3
ImageName = 'Item4'
Images = dm2.imgList
TabOrder = 0
OnClick = btnClearClick
end
object edtRegCis: TRzEdit
AlignWithMargins = True
Left = 52
Top = 4
Width = 103
Height = 26
Text = ''
Align = alClient
Color = clSkyBlue
MaxLength = 30
TabOrder = 1
OnChange = edtRegCisChange
OnKeyPress = edtRegCisKeyPress
ExplicitHeight = 29
end
object edtNazev: TRzEdit
AlignWithMargins = True
Left = 161
Top = 4
Width = 345
Height = 26
Text = ''
Align = alClient
Color = clSkyBlue
MaxLength = 100
TabOrder = 2
OnChange = edtNazevChange
ExplicitHeight = 29
end
object edtZaklad: TRzEdit
AlignWithMargins = True
Left = 512
Top = 4
Width = 229
Height = 26
Text = ''
Align = alClient
Color = clSkyBlue
MaxLength = 100
TabOrder = 3
OnChange = edtZakladChange
ExplicitHeight = 29
end
object edtStroj: TRzEdit
AlignWithMargins = True
Left = 747
Top = 4
Width = 128
Height = 26
Text = ''
Align = alClient
Color = clSkyBlue
MaxLength = 50
TabOrder = 4
OnChange = edtStrojChange
ExplicitHeight = 29
end
end
end
end

226
_plgPlan/frmKmen.pas Normal file
View File

@ -0,0 +1,226 @@
unit frmKmen;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Data.DB, Vcl.Grids, Vcl.DBGrids, JvExDBGrids,
JvDBGrid, ddPlugin_TLB, Vcl.ComCtrls, JvExComCtrls, JvHeaderControl, Vcl.StdCtrls, Vcl.Buttons,
Vcl.Mask, RzEdit;
type
TformKmen = class(TForm)
Panel1: TPanel;
grdKmen: TJvDBGrid;
grd1: TGridPanel;
grd2: TGridPanel;
btnClear: TBitBtn;
edtRegCis: TRzEdit;
edtNazev: TRzEdit;
edtZaklad: TRzEdit;
edtStroj: TRzEdit;
procedure FormShow (Sender: TObject);
procedure grdKmenDblClick (Sender: TObject);
procedure FormClose (Sender: TObject; var Action: TCloseAction);
procedure btnClearClick (Sender: TObject);
procedure edtStrojChange (Sender: TObject);
procedure edtRegCisKeyPress (Sender: TObject; var Key: Char);
procedure grdKmenDrawColumnCell (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure edtRegCisChange (Sender: TObject);
procedure edtNazevChange (Sender: TObject);
procedure edtZakladChange (Sender: TObject);
private
procedure Filtruj;
public
Helios: IHelios;
retVal: integer;
idKmen: integer;
idZakModif: integer;
filtrKodStroj: string;
end;
var
formKmen: TformKmen;
implementation
uses System.StrUtils,
helUtils, datMod2;
{$R *.dfm}
procedure TformKmen.edtNazevChange (Sender: TObject);
begin
Filtruj;
end;
procedure TformKmen.edtRegCisChange (Sender: TObject);
begin
Filtruj;
end;
procedure TformKmen.edtRegCisKeyPress (Sender: TObject; var Key: Char);
begin
Filtruj;
end;
procedure TformKmen.edtStrojChange (Sender: TObject);
begin
Filtruj;
end;
procedure TformKmen.edtZakladChange (Sender: TObject);
begin
Filtruj;
end;
procedure TformKmen.Filtruj;
var filtr: string;
begin
filtr:= '';
if (edtRegCis.Text<>'') then
filtr:= 'UPPER(colRegCis) LIKE ''%' + edtRegCis.Text.ToUpper + '%''';
if (edtNazev.Text<>'') then
filtr:= filtr + IfThen(filtr<>'', ' AND ', '') + 'UPPER(colNazev1) LIKE ''%' + edtNazev.Text.ToUpper + '%''';
if (edtZaklad.Text<>'') then
filtr:= filtr + IfThen(filtr<>'', ' AND ', '') + 'UPPER(colZaklad) LIKE ''%' + edtZaklad.Text.ToUpper + '%''';
if (edtStroj.Text<>'') then
filtr:= filtr + IfThen(filtr<>'', ' AND ', '') + 'UPPER(colZakModif) LIKE ''%' + edtStroj.Text.ToUpper + '%''';
grdKmen.LockDrawing;
dm2.vtKmen.Filtered:= false;
if (filtr<>'') then
begin
dm2.vtKmen.Filter:= filtr;
dm2.vtKmen.Filtered:= true;
end;
grdKmen.UnlockDrawing;
end;
procedure TformKmen.btnClearClick (Sender: TObject);
begin
edtRegCis.Text:= '';
edtNazev.Text:= '';
edtZaklad.Text:= '';
edtStroj.Text:= '';
Filtruj;
end;
procedure TformKmen.FormClose (Sender: TObject; var Action: TCloseAction);
begin
Action:= TCloseAction.caFree;
end;
procedure TformKmen.FormShow (Sender: TObject);
var pomHandle: THandle;
filtr: string;
begin
retVal:= 0;
pomHandle:= THandle(Helios.MainApplicationHandle);
if (pomHandle<>Application.Handle) then
Application.Handle:= pomHandle;
pomHandle:= THandle(Helios.MainApplicationIconHandle);
if (pomHandle<>Application.Icon.Handle) then
Application.Icon.Handle:= pomHandle;
with Application.DefaultFont do
begin
Name:= Helios.Font;
Height:= Helios.FontHeight;
Charset:= Helios.Charset;
Screen.MenuFont.Charset:= Charset;
Screen.MenuFont.Name:= Name;
Screen.MenuFont.Height:= Height;
end;
self.Font:= Application.DefaultFont;
if not(dm2.vtKmen.Active) then
dm2.vtKmen.Open;
dm2.vtKmen.EmptyDataSet;
dm2.vtKmen.Filtered:= false;
grdKmen.LockDrawing;
filtr:= 'k.Dilec=1 AND k.MJEvidence=N''KA''';
if (filtrKodStroj<>'') then
filtr:= filtr + ' AND k.ID IN (SELECT zmd.IDKmenZbozi FROM ' + tblZakazModifDilce + ' zmd INNER JOIN ' + tblZakazModif
+ ' zm ON (zm.ID=zmd.IDZakazModif) WHERE zm.Schvaleno=1 AND zm.Kod=N' + filtrKodStroj.QuotedString + ')';
dm2.NactiKmenZbozi (filtr);
dm2.vtKmen.First;
grdKmen.UnlockDrawing;
helUtils.waitEnd;
end;
procedure TformKmen.grdKmenDblClick (Sender: TObject);
var i, zm: integer;
sz,rc,naz: string;
begin
i:= dm2.vtKmen.FieldByName('colID').AsInteger;
sz:= dm2.vtKmen.FieldByName('colSZ').AsString;
rc:= dm2.vtKmen.FieldByName('colRegCis').AsString;
naz:= dm2.vtKmen.FieldByName('colNazev1').AsString;
zm:= dm2.vtKmen.FieldByName('colIDZakModif').AsInteger;
if (Helios.YesNo('Chcete vybrat ' + sz + ' ' + rc + ' ' + naz, true)) then
begin
idKmen:= i;
idZakModif:= zm;
retVal:= 10;
Close;
end;
end;
procedure TformKmen.grdKmenDrawColumnCell (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
TJvDBGrid(Sender).Canvas.Brush.Color:= $00B8C4C8; // RGB C8C4B8 - seda
if (Column.FieldName='colNazev1') then
TJvDBGrid(Sender).Canvas.Brush.Color:= $00C6FECF; // RGB CFFEC6 - svetle zelena
if (gdSelected in State) then
TJvDBGrid(Sender).Canvas.Font.Color:= clBlack;
TJvDBGrid(Sender).DefaultDrawColumnCell (Rect, DataCol, Column, State);
end;
end.

1500
_plgPlan/frmPlan.dfm Normal file

File diff suppressed because it is too large Load Diff

1436
_plgPlan/frmPlan.pas Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,312 @@
unit frmPlanPaletListy;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Data.DB, Vcl.Grids, Vcl.DBGrids, JvExDBGrids,
JvDBGrid, Vcl.StdCtrls, ddPlugin_TLB;
type
TformPlanPaletListy = class(TForm)
GridPanel1: TGridPanel;
GridPanel2: TGridPanel;
GridPanel3: TGridPanel;
grdPL: TJvDBGrid;
GridPanel4: TGridPanel;
GridPanel5: TGridPanel;
pnlKATiskSarzeAno: TPanel;
pnlKATiskSarzeNe: TPanel;
rbKATiskSarzeAno: TRadioButton;
rbKATiskSarzeNe: TRadioButton;
pnlKATiskExpiraceAno: TPanel;
rbKATiskExpiraceAno: TRadioButton;
rbKATiskExpiraceNe: TRadioButton;
pnlKATiskExpiraceNe: TPanel;
btnKATisk: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
lblPaPopis1: TLabel;
lblPaPopis2: TLabel;
btnTiskPA1: TButton;
btnTiskPA2: TButton;
GridPanel6: TGridPanel;
GridPanel7: TGridPanel;
GridPanel8: TGridPanel;
GridPanel9: TGridPanel;
Label5: TLabel;
Label6: TLabel;
edtZakazka: TEdit;
edtExtZakazka: TEdit;
Label7: TLabel;
edtNazev: TEdit;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
edtBarvaStitku: TEdit;
edtStitkuNaA4: TEdit;
edtRegCis: TEdit;
edtSZ: TEdit;
GridPanel10: TGridPanel;
Button3: TButton;
GridPanel11: TGridPanel;
Label12: TLabel;
Label13: TLabel;
btnKonec: TButton;
procedure btnKonecClick (Sender: TObject);
procedure FormShow (Sender: TObject);
procedure rbKATiskSarzeAnoClick (Sender: TObject);
procedure rbKATiskSarzeNeClick (Sender: TObject);
procedure rbKATiskExpiraceAnoClick (Sender: TObject);
procedure rbKATiskExpiraceNeClick (Sender: TObject);
procedure pnlKATiskSarzeAnoClick (Sender: TObject);
procedure pnlKATiskSarzeNeClick (Sender: TObject);
procedure pnlKATiskExpiraceAnoClick (Sender: TObject);
procedure pnlKATiskExpiraceNeClick (Sender: TObject);
procedure grdPLCellClick (Column: TColumn);
procedure btnKATiskClick (Sender: TObject);
private
procedure BarvyTlacitekDleRB;
public
Helios: IHelios;
cisloZbo, nazev, cisloPrikazu: string;
idRadekAdvPL, idPrikaz: integer;
ksVKA: integer;
KAnaPal: integer;
end;
var
formPlanPaletListy: TformPlanPaletListy;
idKZ, selIdVCPrikaz: integer;
idStitekKA, idStitekPL, idPLList: integer;
implementation
uses System.DateUtils, System.StrUtils, System.Math,
frmKmen, frmZavady, frmVyrobniTyden,
uUtils, datMod2, helUtils;
{$R *.dfm}
procedure TformPlanPaletListy.BarvyTlacitekDleRB;
begin
if (rbKATiskExpiraceAno.Checked) then
begin
pnlKATiskExpiraceAno.Color:= clMoneyGreen;
rbKATiskSarzeAno.Color:= clMoneyGreen;
end
else
begin
pnlKATiskExpiraceAno.Color:= clBtnFace;
rbKATiskSarzeAno.Color:= clBtnFace;
end;
if (rbKATiskExpiraceNe.Checked) then
begin
pnlKATiskExpiraceNe.Color:= $005B5BFF;
rbKATiskExpiraceNe.Color:= $005B5BFF;
end
else
begin
pnlKATiskExpiraceNe.Color:= clBtnFace;
rbKATiskExpiraceNe.Color:= clBtnFace;
end;
if (rbKATiskSarzeAno.Checked) then
begin
pnlKATiskSarzeAno.Color:= clMoneyGreen;
rbKATiskSarzeAno.Color:= clMoneyGreen;
end
else
begin
pnlKATiskSarzeAno.Color:= clBtnFace;
rbKATiskSarzeAno.Color:= clBtnFace;
end;
if (rbKATiskSarzeNe.Checked) then
begin
pnlKATiskSarzeNe.Color:= $005B5BFF;
rbKATiskSarzeNe.Color:= $005B5BFF;
end
else
begin
pnlKATiskSarzeNe.Color:= clBtnFace;
rbKATiskSarzeNe.Color:= clBtnFace;
end;
end;
procedure TformPlanPaletListy.btnKATiskClick (Sender: TObject);
var lSQL: string;
begin
if (selIdVCPrikaz>0) then
begin
lSQL:= 'IF OBJECT_ID(N''tempdb..#TabParamTiskStitkuKA'', N''U'') IS NOT NULL INSERT #TabParamTiskStitkuKA (TiskSarze, TiskExpirace) SELECT '
+ IfThen(rbKATiskSarzeAno.Checked, '1', '0') + ', ' + IfThen(rbKATiskExpiraceAno.Checked, '1', '0');
Helios.ExecSQL (lSQL);
if (idStitekKA>0) then
Helios.PrintForm3 (datMod2.bidPalety, idStitekKA, 'hvw_Vyroba_Palety.IDVyrCisPrikaz=' + selIdVCPrikaz.ToString);
end;
end;
procedure TformPlanPaletListy.btnKonecClick (Sender: TObject);
begin
Close;
end;
procedure TformPlanPaletListy.FormShow (Sender: TObject);
var lSQL, externiZak: string;
begin
selIdVCPrikaz:= 0;
idStitekKA:= 0;
idStitekPL:= 0;
idPLList:= 0;
lSQL:= 'DROP TABLE IF EXISTS #TabParamTiskStitkuKA' + CRLF + 'CREATE TABLE #TabParamTiskStitkuKA (ID INT IDENTITY(1,1) NOT NULL'
+ ', PocetKopii SMALLINT DEFAULT 1 NOT NULL, TiskSarze BIT DEFAULT 1 NOT NULL, TiskExpirace BIT DEFAULT 1 NOT NULL)';
Helios.ExecSQL (lSQL);
edtNazev.Text:= nazev;
if (cisloZbo<>'') then
begin
edtSZ.Text:= LeftStr(cisloZbo,3);
edtRegCis.Text:= MidStr(cisloZbo, 5, 30);
end;
edtZakazka.Text:= cisloPrikazu;
externiZak:= '';
if (idPrikaz>0) then
begin
dm2.PlanPalListyNactiSarzePrikazu (idPrikaz, ksVKA, externiZak);
idKZ:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT IDTabKmen FROM ' + tblPrikaz + ' WHERE ID=' + idPrikaz.ToString);
if (idKZ>0) then
begin
with Helios.OpenSQL('SELECT * FROM ' + tblKZ + ' WHERE ID=' + idKZ.ToString) do
begin
end;
with Helios.OpenSQL('SELECT * FROM ' + tblKZe + ' WHERE ID=' + idKZ.ToString) do
begin
edtBarvaStitku.Text:= VarToStr(FieldByNameValues('_ASOL_BarvaStitku'));
edtStitkuNaA4.Text:= VarToStr(FieldByNameValues('_ASOL_PocetA4'));
// KA stitek
if not(TryStrToInt (VarToStr(FieldByNameValues('_KL')), idStitekKA)) then
idStitekKA:= 0;
// PL stitek
if not(TryStrToInt (VarToStr(FieldByNameValues('_PalStitek')), idStitekPL)) then
idStitekPL:= 0;
// PL list
if not(TryStrToInt (VarToStr(FieldByNameValues('_PLKK')), idPLList)) then
idPLList:= 0;
end;
end;
end;
if (externiZak<>'') then
edtExtZakazka.Text:= externiZak;
// edtStitkuNaA4.Text:=
end;
procedure TformPlanPaletListy.grdPLCellClick (Column: TColumn);
begin
selIdVCPrikaz:= grdPL.DataSource.DataSet.FieldByName('IDVCPrikaz').AsInteger;
end;
procedure TformPlanPaletListy.pnlKATiskExpiraceAnoClick (Sender: TObject);
begin
rbKATiskExpiraceAno.Checked:= not rbKATiskExpiraceAno.Checked;
rbKATiskExpiraceNe.Checked:= not rbKATiskExpiraceNe.Checked;
end;
procedure TformPlanPaletListy.pnlKATiskExpiraceNeClick (Sender: TObject);
begin
rbKATiskExpiraceAno.Checked:= not rbKATiskExpiraceAno.Checked;
rbKATiskExpiraceNe.Checked:= not rbKATiskExpiraceNe.Checked;
end;
procedure TformPlanPaletListy.pnlKATiskSarzeAnoClick (Sender: TObject);
begin
rbKATiskSarzeAno.Checked:= not rbKATiskSarzeAno.Checked;
rbKATiskSarzeNe.Checked:= not rbKATiskSarzeNe.Checked;
end;
procedure TformPlanPaletListy.pnlKATiskSarzeNeClick (Sender: TObject);
begin
rbKATiskSarzeAno.Checked:= not rbKATiskSarzeAno.Checked;
rbKATiskSarzeNe.Checked:= not rbKATiskSarzeNe.Checked;
end;
procedure TformPlanPaletListy.rbKATiskExpiraceAnoClick (Sender: TObject);
begin
if (rbKATiskExpiraceAno.Checked) then
rbKATiskExpiraceNe.Checked:= false;
BarvyTlacitekDleRB;
end;
procedure TformPlanPaletListy.rbKATiskExpiraceNeClick (Sender: TObject);
begin
if (rbKATiskExpiraceNe.Checked) then
rbKATiskExpiraceAno.Checked:= false;
BarvyTlacitekDleRB;
end;
procedure TformPlanPaletListy.rbKATiskSarzeAnoClick (Sender: TObject);
begin
if (rbKATiskSarzeAno.Checked) then
rbKATiskSarzeNe.Checked:= false;
BarvyTlacitekDleRB;
end;
procedure TformPlanPaletListy.rbKATiskSarzeNeClick (Sender: TObject);
begin
if (rbKATiskSarzeNe.Checked) then
rbKATiskSarzeAno.Checked:= false;
BarvyTlacitekDleRB;
end;
end.

1245
_plgPlan/frmRamcovyPlan.dfm Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,63 @@
unit frmRamcovyPlan;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, RzCmboBx, Vcl.Buttons, Data.DB,
Vcl.Grids, Vcl.DBGrids, JvExDBGrids, JvDBGrid, ddPlugin_TLB;
type
TformRamcovyPlan = class(TForm)
GridPanel1: TGridPanel;
GridPanel2: TGridPanel;
GridPanel3: TGridPanel;
Label1: TLabel;
cbAkce: TRzComboBox;
GridPanel4: TGridPanel;
Label2: TLabel;
cbSezona: TRzComboBox;
GridPanel5: TGridPanel;
Label3: TLabel;
BitBtn1: TBitBtn;
grdAlternativy: TJvDBGrid;
JvDBGrid1: TJvDBGrid;
edtKalibr: TEdit;
edtDelkaJm: TEdit;
edtStroj: TEdit;
Label4: TLabel;
GridPanel6: TGridPanel;
edtSK: TEdit;
edtRegCis: TEdit;
edtNazev1: TEdit;
edtMJ: TEdit;
edtKs: TEdit;
edtKA: TEdit;
edtOdber: TEdit;
edtM01: TEdit;
edtM02: TEdit;
edtM03: TEdit;
edtM04: TEdit;
edtM05: TEdit;
edtM06: TEdit;
edtM07: TEdit;
edtM08: TEdit;
edtM09: TEdit;
edtM10: TEdit;
edtM11: TEdit;
edtM12: TEdit;
private
public
Helios: IHelios;
end;
var
formRamcovyPlan: TformRamcovyPlan;
implementation
uses System.StrUtils,
datMod2, helUtils;
{$R *.dfm}
end.

View File

@ -0,0 +1,93 @@
object formVyberTydne: TformVyberTydne
Left = 0
Top = 0
BorderIcons = [biSystemMenu]
BorderStyle = bsSingle
Caption = ' V'#253'robn'#237' t'#253'den'
ClientHeight = 473
ClientWidth = 311
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'Segoe UI'
Font.Style = []
Position = poOwnerFormCenter
OnClose = FormClose
OnShow = FormShow
TextHeight = 21
object grdTydny: TJvDBGrid
Left = 4
Top = 51
Width = 303
Height = 395
DataSource = dm2.dsVyrobniTyden
Options = [dgTitles, dgIndicator, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgConfirmDelete, dgCancelOnExit, dgTitleHotTrack]
TabOrder = 0
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -16
TitleFont.Name = 'Segoe UI'
TitleFont.Style = []
OnDblClick = grdTydnyDblClick
ScrollBars = ssVertical
SelectColumnsDialogStrings.Caption = 'Select columns'
SelectColumnsDialogStrings.OK = '&OK'
SelectColumnsDialogStrings.NoSelectionWarning = 'At least one column must be visible!'
EditControls = <>
RowsHeight = 25
TitleRowHeight = 25
Columns = <
item
Expanded = False
FieldName = 'colRok'
Visible = False
end
item
Alignment = taCenter
Color = 13041359
Expanded = False
FieldName = 'colTyden'
Title.Alignment = taCenter
Title.Caption = 'T'#253'den'
Width = 59
Visible = True
end
item
Alignment = taCenter
Expanded = False
FieldName = 'colDatumOd'
Title.Alignment = taCenter
Title.Caption = 'Datum od'
Width = 100
Visible = True
end
item
Alignment = taCenter
Expanded = False
FieldName = 'colDatumDo'
Title.Alignment = taCenter
Title.Caption = 'Datum do'
Width = 107
Visible = True
end>
end
object cbRok: TComboBox
Left = 8
Top = 12
Width = 99
Height = 29
Style = csDropDownList
TabOrder = 1
OnChange = cbRokChange
end
object btnDnes: TButton
Left = 196
Top = 8
Width = 105
Height = 36
Caption = 'Dnes'
TabOrder = 2
OnClick = btnDnesClick
end
end

View File

@ -0,0 +1,118 @@
unit frmVyrobniTyden;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Vcl.Grids, Vcl.DBGrids, JvExDBGrids, JvDBGrid,
Vcl.StdCtrls;
type
TformVyberTydne = class(TForm)
grdTydny: TJvDBGrid;
cbRok: TComboBox;
btnDnes: TButton;
procedure FormShow (Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure grdTydnyDblClick(Sender: TObject);
procedure cbRokChange(Sender: TObject);
procedure btnDnesClick(Sender: TObject);
private
procedure NactiKalendar (rok: integer; tyden: byte=0; autoIns: boolean=false);
public
rok, tyden: integer;
datOd, datDo: string;
retVal: integer;
end;
var
formVyberTydne: TformVyberTydne;
implementation
uses System.DateUtils,
helUtils, datMod2;
{$R *.dfm}
procedure TformVyberTydne.btnDnesClick (Sender: TObject);
var t: integer;
begin
t:= System.DateUtils.WeekOf(Now);
grdTydny.DataSource.DataSet.Locate('colRok;colTyden', VarArrayOf([cbRok.Text, t]), []);
end;
procedure TformVyberTydne.cbRokChange (Sender: TObject);
begin
NactiKalendar (cbRok.Text.ToInteger);
end;
procedure TformVyberTydne.FormClose (Sender: TObject; var Action: TCloseAction);
begin
Action:= TCloseAction.caFree;
end;
procedure TformVyberTydne.NactiKalendar (rok: Integer; tyden: byte=0; autoIns: boolean=false);
var rNow, m: integer;
begin
retVal:= 0;
datOd:= '';
datDo:= '';
rNow:= YearOf(Now);
if (autoIns) then
begin
cbRok.Items.Clear;
cbRok.Items.Add((rok-1).ToString);
cbRok.Items.Add(rok.ToString);
cbRok.Items.Add((rok+1).ToString);
cbRok.ItemIndex:= cbRok.Items.IndexOf(rok.ToString);
end;
if (Assigned(datMod2.dm2)) then
begin
if (dm2.vtVyrobniTyden<>nil) then
dm2.NactiVyrobniTydny (rok);
if (rok=rNow) then
m:= WeekOf(Now)
else
m:= System.DateUtils.WeeksInAYear (rok);
if (tyden>0) then
m:= tyden;
dm2.vtVyrobniTyden.Locate ('colRok;colTyden', VarArrayOf ([rok, m]), []);
end;
end;
procedure TformVyberTydne.FormShow (Sender: TObject);
begin
NactiKalendar (YearOf(Now), tyden, true);
end;
procedure TformVyberTydne.grdTydnyDblClick (Sender: TObject);
begin
retVal:= 10;
tyden:= dm2.vtVyrobniTyden.FieldByName('colTyden').AsInteger;
rok:= dm2.vtVyrobniTyden.FieldByName('colRok').AsInteger;
datOd:= dm2.vtVyrobniTyden.FieldByName('colDatumOd').AsString;
datDo:= dm2.vtVyrobniTyden.FieldByName('colDatumDo').AsString;
Close;
end;
end.

113
_plgPlan/frmZavady.dfm Normal file
View File

@ -0,0 +1,113 @@
object formZavady: TformZavady
Left = 0
Top = 0
BorderIcons = [biSystemMenu]
Caption = ' Vyberte '#250'dr'#382'bu'
ClientHeight = 470
ClientWidth = 482
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'Segoe UI'
Font.Style = []
Position = poOwnerFormCenter
OnClose = FormClose
OnShow = FormShow
TextHeight = 21
object grd1: TGridPanel
Left = 0
Top = 0
Width = 482
Height = 470
Align = alClient
Caption = 'grd1'
ColumnCollection = <
item
Value = 100.000000000000000000
end>
ControlCollection = <
item
Column = 0
Control = Panel1
Row = 1
end>
RowCollection = <
item
Value = 5.000000000000000000
end
item
Value = 95.000000000000000000
end>
TabOrder = 0
object Panel1: TPanel
Left = 1
Top = 24
Width = 480
Height = 445
Align = alClient
Anchors = []
TabOrder = 0
object grdZavady: TJvDBGrid
Left = 1
Top = 1
Width = 478
Height = 443
Align = alClient
DataSource = dm2.dsZavady
DrawingStyle = gdsClassic
Options = [dgTitles, dgIndicator, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgConfirmDelete, dgCancelOnExit, dgTitleClick, dgTitleHotTrack]
ReadOnly = True
TabOrder = 0
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -16
TitleFont.Name = 'Segoe UI'
TitleFont.Style = []
OnDrawColumnCell = grdZavadyDrawColumnCell
OnDblClick = grdZavadyDblClick
ScrollBars = ssVertical
SelectColumnsDialogStrings.Caption = 'Vyberte sloupce'
SelectColumnsDialogStrings.OK = '&OK'
SelectColumnsDialogStrings.NoSelectionWarning = 'Mus'#237' b'#253't viditeln'#253' aspo'#328' jeden sloupec !'
CanDelete = False
EditControls = <>
RowsHeight = 25
TitleRowHeight = 25
Columns = <
item
Expanded = False
FieldName = 'colID'
Visible = False
end
item
Expanded = False
FieldName = 'colTyp'
Visible = False
end
item
Alignment = taCenter
Expanded = False
FieldName = 'colKod'
Title.Alignment = taCenter
Title.Caption = 'Kod'
Width = 98
Visible = True
end
item
Expanded = False
FieldName = 'colNazev'
Title.Alignment = taCenter
Title.Caption = 'N'#225'zev'
Width = 352
Visible = True
end
item
Expanded = False
FieldName = 'colIDPrikaz'
Visible = False
end>
end
end
end
end

124
_plgPlan/frmZavady.pas Normal file
View File

@ -0,0 +1,124 @@
unit frmZavady;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Data.DB, Vcl.Grids, Vcl.DBGrids, JvExDBGrids,
JvDBGrid, ddPlugin_TLB, Vcl.ComCtrls, JvExComCtrls, JvHeaderControl, Vcl.StdCtrls, Vcl.Buttons,
Vcl.Mask, RzEdit;
type
TformZavady = class(TForm)
Panel1: TPanel;
grdZavady: TJvDBGrid;
grd1: TGridPanel;
procedure FormShow (Sender: TObject);
procedure grdZavadyDblClick (Sender: TObject);
procedure FormClose (Sender: TObject; var Action: TCloseAction);
procedure grdZavadyDrawColumnCell (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
private
public
Helios: IHelios;
retVal: integer;
idPrP: integer;
nazev: string;
kodModif: string;
end;
var
formZavady: TformZavady;
implementation
uses System.StrUtils,
helUtils, datMod2;
{$R *.dfm}
procedure TformZavady.FormClose (Sender: TObject; var Action: TCloseAction);
begin
Action:= TCloseAction.caFree;
end;
procedure TformZavady.FormShow (Sender: TObject);
var pomHandle: THandle;
begin
retVal:= 0;
pomHandle:= THandle(Helios.MainApplicationHandle);
if (pomHandle<>Application.Handle) then
Application.Handle:= pomHandle;
pomHandle:= THandle(Helios.MainApplicationIconHandle);
if (pomHandle<>Application.Icon.Handle) then
Application.Icon.Handle:= pomHandle;
with Application.DefaultFont do
begin
Name:= Helios.Font;
Height:= Helios.FontHeight;
Charset:= Helios.Charset;
Screen.MenuFont.Charset:= Charset;
Screen.MenuFont.Name:= Name;
Screen.MenuFont.Height:= Height;
end;
self.Font:= Application.DefaultFont;
if not(dm2.vtZavady.Active) then
dm2.vtZavady.Open;
dm2.vtZavady.EmptyDataSet;
dm2.vtZavady.Filtered:= false;
grdZavady.LockDrawing;
dm2.NactiUdrzbu (kodModif, 'Typ=3'); // prostoj stroje
dm2.vtZavady.First;
grdZavady.UnlockDrawing;
helUtils.waitEnd;
end;
procedure TformZavady.grdZavadyDblClick (Sender: TObject);
var i, zm: integer;
sz,rc,naz: string;
begin
i:= dm2.vtZavady.FieldByName('colID').AsInteger;
naz:= dm2.vtZavady.FieldByName('colNazev').AsString;
if (Helios.YesNo('Chcete vybrat ' + #1 + naz + #1 + ' ?', true)) then
begin
idPrP:= i;
nazev:= naz;
retVal:= 10;
Close;
end;
end;
procedure TformZavady.grdZavadyDrawColumnCell (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (gdSelected in State) then
grdZavady.Canvas.Font.Color:= clBlack;
grdZavady.Canvas.Brush.Color:= $00B8C4C8; // RGB C8C4B8 - seda
if (Assigned(Column.Field) and (SameText(Column.FieldName, 'colNazev'))) then
// if (Column.FieldName='colNazev') then
grdZavady.Canvas.Brush.Color:= $00C6FECF; // RGB CFFEC6 - svetle zelena
grdZavady.DefaultDrawColumnCell (Rect, DataCol, Column, State);
end;
end.

4
_plgPlan/iConsts.inc Normal file
View File

@ -0,0 +1,4 @@
const
CRLF = #13#10;
tblPalety = '[dbo].[_TabVyroba_Palety]';
tblPlanRozpad = '[dbo].[_TabVyroba_PlanRozpad]';

View File

@ -0,0 +1,21 @@
IF OBJECT_ID(N'dbo._TabVyroba_PlanRozpad', N'U') IS NULL
CREATE TABLE dbo._TabVyroba_PlanRozpad (
ID int IDENTITY(1, 1) NOT NULL,
Datum DATETIME NOT NULL,
CasOd AS DATEPART(hour, Datum),
Datum_D AS DATEPART(day, Datum),
Datum_M AS DATEPART(month ,Datum),
Datum_Y AS DATEPART(year, Datum),
Datum_W AS DATEPART(week, Datum),
Datum_V AS DATEPART(iso_week, Datum),
Datum_Y_ISO AS DATEPART(year, DATEADD(day, 26-DATEPART(iso_week, Datum), Datum)),
IDAdvKPDavka int NULL,
IDPrikaz int NULL,
DatPorizeni DATETIME NOT NULL DEFAULT GETDATE(),
Autor NVARCHAR(80) NOT NULL DEFAULT SUSER_SNAME(),
CONSTRAINT PK__TabVyroba_PlanRozpad PRIMARY KEY CLUSTERED (ID DESC) WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
DROP INDEX IF EXISTS EI__TabVyroba_PlanRozpad_Datum ON dbo._TabVyroba_PlanRozpad
CREATE NONCLUSTERED INDEX EI__TabVyroba_PlanRozpad_Datum ON dbo._TabVyroba_PlanRozpad (Datum)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)

View File

@ -0,0 +1,23 @@
-- dbo.ET_TabAdvKPDavky_HDC_D
CREATE TRIGGER dbo.ET_TabAdvKPDavky_HDC_D ON dbo.TabAdvKPDavky
WITH EXECUTE AS CALLER
FOR DELETE
AS
BEGIN
SET NOCOUNT ON
DECLARE
@id INT
-- cisteni
IF EXISTS (SELECT 1 FROM dbo.TabAdvKPDavky)
BEGIN
SELECT @id=MAX(ID) FROM dbo.TabAdvKPDavky
DBCC CHECKIDENT (TabAdvKPDavky, RESEED, @id)
END
END

View File

@ -0,0 +1,23 @@
-- dbo.ET_TabPlan_HDC_D
CREATE TRIGGER dbo.ET_TabPlan_HDC_D ON dbo.TabPlan
WITH EXECUTE AS CALLER
FOR DELETE
AS
BEGIN
SET NOCOUNT ON
DECLARE
@id INT
-- cisteni
IF EXISTS (SELECT 1 FROM dbo.TabPlan)
BEGIN
SELECT @id=MAX(ID) FROM dbo.TabPlan
DBCC CHECKIDENT (TabPlan, RESEED, @id)
END
END

549
_sql/2UT/2UT.sql Normal file
View File

@ -0,0 +1,549 @@
SET NOCOUNT ON
DECLARE
@iTemp INT,
@sql NVARCHAR(3000),
@idTab INT,
@sysTabName NVARCHAR(128),
@hvwName NVARCHAR(128),
@idCol INT,
@trigger NVARCHAR(max)
SET @sysTabName = '_TabVyroba_Palety'
SET @hvwName = 'hvw_Vyroba_Palety'
SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabDefTabUzivTabulka), 1)
DBCC CHECKIDENT (TabDefTabUzivTabulka, RESEED, @iTemp)
SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabDefTabUzivAtributy), 1)
DBCC CHECKIDENT (TabDefTabUzivAtributy, RESEED, @iTemp)
SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabDefTabUzivConstraint), 1)
DBCC CHECKIDENT (TabDefTabUzivConstraint, RESEED, @iTemp)
-- tabulka
SET @idTab = (SELECT ID FROM dbo.TabDefTabUzivTabulka WHERE NazevTabulky=@sysTabName)
IF (@idTab IS NULL)
BEGIN
INSERT dbo.TabDefTabUzivTabulka (Skupina, Popis, NazevTabulky, NazevPrehledu)
SELECT N'', 'Vyroben<EFBFBD> palety', @sysTabName, @hvwName
SET @idTab = SCOPE_IDENTITY()
END
-- sloupce
IF (@idTab IS NOT NULL)
BEGIN
/*
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUHeliosAttr, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrEditor, EdAtrPoradi, EdAtrHlidat, EdAtrSkrytyPrenos, EdAtrInfoAtr1, EdAtrInfoAtr2, EdAtrPrenosDPSN, EdAtrPrenosIDFiltr, EdAtrPodminka)
*/
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'Typ')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 1, N'Typ', N'Typ', 2, 0, 0, N'''0''', 0,
NULL, NULL, N'0=nedefinovano
1=vyrobek pekarna (vlastni)
2=vyrobek pekarna (externi)
3=material
4=zbozi
5=nestandard', 20, N'', 1, 1, 0, 1, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'Typ')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD Typ TINYINT NOT NULL DEFAULT 0'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'CisloPalety')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 2, N'CisloPalety', N'Ozna<EFBFBD>en<EFBFBD>/<2F><>slo palety', 6, 50, 0, N'', 0,
NULL, NULL, NULL, 20, N'', 1, 1, 0, 1, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'CisloPalety')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD CisloPalety NVARCHAR(50) NOT NULL'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'Sarze')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 3, N'Sarze', N'<EFBFBD>ar<EFBFBD>e', 6, 30, 1, N'', 0,
NULL, NULL, NULL, 30, N'', 1, 1, 0, 1, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'Sarze')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD Sarze NVARCHAR(30) NULL'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'CisloOrg')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 4, N'CisloOrg', N'Organizace', 0, 0, 1, N'', 0,
NULL, NULL, NULL, 20, N'', 1, 0, 0, 1, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'CisloOrg')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD CisloOrg INT NULL'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDPrikaz')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 5, N'IDPrikaz', N'V<EFBFBD>robn<EFBFBD> p<><70>kaz', 0, 0, 1, N'', 0,
NULL, NULL, NULL, 20, N'', 0, 0, 0, 1, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'IDPrikaz')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD IDPrikaz INT NULL'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDStroj')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 6, N'IDStroj', N'Stroj', 0, 0, 1, N'', 0,
NULL, NULL, NULL, 20, N'', 0, 0, 0, 1, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'IDStroj')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD IDStroj INT NULL'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'DatZahajeni')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 7, N'DatZahajeni', N'Datum zah<61>jen<65> v<>roby', 9, 0, 1, N'', 0,
NULL, NULL, NULL, 70, N'', 1, 0, 0, 1, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'DatZahajeni')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD DatZahajeni DATETIME NULL'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'DatUkonceni')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 8, N'DatUkonceni', N'Datum ukon<6F>en<65> v<>roby', 9, 0, 1, N'', 0,
NULL, NULL, NULL, 70, N'', 1, 0, 0, 1, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'DatUkonceni')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD DatUkonceni DATETIME NULL'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'Mnozstvi')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 9, N'Mnozstvi', N'Mno<EFBFBD>stv<EFBFBD> KA', 1, 0, 0, N'0', 0,
NULL, NULL, NULL, 60, N'', 1, 0, 1, 1, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'Mnozstvi')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD Mnozstvi SMALLINT NOT NULL DEFAULT 0'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'MnozstviKA')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 10, N'MnozstviKA', N'Mno<EFBFBD>stv<EFBFBD> KA', 1, 0, 0, N'0', 0,
NULL, NULL, NULL, 60, N'', 1, 0, 1, 1, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'MnozstviKA')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD MnozstviKA SMALLINT NOT NULL DEFAULT 0'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'MnozstviPlneKA')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 11, N'MnozstviPlneKA', N'Mno<EFBFBD>stv<EFBFBD> pln<6C>ch KA na ne<6E>pln<6C> palet<65>', 1, 0, 0, N'0', 0,
NULL, NULL, NULL, 60, N'', 1, 0, 1, 1, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'MnozstviPlneKA')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD MnozstviPlneKA SMALLINT NOT NULL DEFAULT 0'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'MnozstviPosledniKA')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 12, N'MnozstviPosledniKA', N'Mno<EFBFBD>stv<EFBFBD> ks v posledn<64>m KA', 1, 0, 0, N'0', 0,
NULL, NULL, NULL, 60, N'', 1, 0, 1, 1, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'MnozstviPosledniKA')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD MnozstviPosledniKA SMALLINT NOT NULL DEFAULT 0'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'DatPorizeni')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 13, N'DatPorizeni', N'Datum po<70><6F>zen<65>', 9, 0, 0, N'GETDATE()', 0,
NULL, NULL, NULL, 70, N'', 1, 1, 0, 1, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'DatPorizeni')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD DatPorizeni DATETIME NOT NULL DEFAULT GETDATE()'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'JeCislo')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 14, N'JeCislo', N'Ozna<EFBFBD>en<EFBFBD> palety je <20><>slo', 5, 0, 0, N'', 1,
N'CONVERT(bit, CASE WHEN ISNUMERIC(CisloPalety)=1 THEN 1 ELSE 0 END)', NULL, NULL, 20, N'', 1, 1, 0, 1, 0,
0, 0, N''
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDKmen')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 15, N'IDKmen', N'Kmenov<EFBFBD> karta', 0, 0, 1, N'', 0,
NULL, NULL, NULL, 40, N'', 0, 0, 0, 1, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'IDKmen')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD IDKmen INT NULL'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDVyrCisPrikaz')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 16, N'IDVyrCisPrikaz', N'V<EFBFBD> z p<><70>kazu', 0, 0, 1, N'', 0,
NULL, NULL, NULL, 40, N'', 0, 0, 0, 1, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'IDVyrCisPrikaz')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD IDVyrCisPrikaz INT NULL'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'KusuVKA')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 17, N'KusuVKA', N'Po<EFBFBD>et ks v KA', 1, 0, 0, N'0', 0,
NULL, NULL, NULL, 40, N'', 1, 1, 0, 1, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'KusuVKA')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD KusuVKA SMALLINT NOT NULL DEFAULT 0'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'DatExpirace')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 18, N'DatExpirace', N'Datum expirace', 9, 0, 1, N'', 0,
NULL, NULL, NULL, 70, N'', 1, 0, 0, 1, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'DatExpirace')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD DatExpirace DATETIME NULL'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDPlanRozpis')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 19, N'IDPlanRozpis', N'ID kapac.pl<70>nu', 0, 0, 1, N'', 0,
NULL, NULL, NULL, 40, N'', 0, 0, 0, 1, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'IDPlanRozpis')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD IDPlanRozpis INT NULL'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'DatPlan')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 20, N'DatPlan', N'Datum pl<70>novan<61> v<>roby', 9, 0, 1, N'', 0,
NULL, NULL, NULL, 70, N'', 1, 0, 0, 1, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'DatPlan')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD DatPlan DATETIME NULL'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'HodinaPlan')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 21, N'HodinaPlan', N'Hodina pl<70>novan<61> v<>roby', 2, 0, 1, N'', 0,
NULL, NULL, NULL, 40, N'', 0, 0, 0, 1, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'HodinaPlan')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD HodinaPlan TINYINT NULL'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'JSONDataStart')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 22, N'JSONDataStart', N'JSON odeslan<61> PH p<>i startu palety', 14, 0, 1, N'', 0,
NULL, NULL, NULL, 40, N'', 0, 0, 0, 0, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'JSONDataStart')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD JSONDataStart NVARCHAR(max) NULL'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'JSONDataKonec')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 23, N'JSONDataKonec', N'JSON odeslan<61> PH p<>i ukon<6F>en<65> palety', 14, 0, 1, N'', 0,
NULL, NULL, NULL, 40, N'', 0, 0, 0, 0, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'JSONDataKonec')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD JSONDataKonec NVARCHAR(max) NULL'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'JSONStartResp')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 24, N'JSONStartResp', N'JSON p<>ijat<61> od PH p<>i startu palety', 14, 0, 1, N'', 0,
NULL, NULL, NULL, 40, N'', 0, 0, 0, 0, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'JSONStartResp')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD JSONStartResp NVARCHAR(max) NULL'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'JSONKonecResp')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 25, N'JSONKonecResp', N'JSON p<>ijat<61> od PH p<>i ukon<6F>en<65> palety', 14, 0, 1, N'', 0,
NULL, NULL, NULL, 40, N'', 0, 0, 0, 0, 0,
0, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'JSONKonecResp')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD JSONKonecResp NVARCHAR(max) NULL'
EXEC sp_executesql @sql
END
END
-- indexy
IF (@idTab IS NOT NULL)
IF NOT EXISTS (SELECT 1 FROM dbo.TabDefTabUzivConstraint WHERE IDDefinice=@idTab AND Typ=1 AND JmenoSys=N'PK__' + @sysTabName + N'__ID')
INSERT dbo.TabDefTabUzivConstraint
(IDDefinice, JmenoSys, Typ, MojeAtributy, CiziTabulka, CiziAtributy, IncludedAttr, VazbaNazevMoje, VazbaNazevMojeSys, VazbaNazevCizi, VazbaNazevCiziSys)
SELECT @idTab, N'PK__' + @sysTabName + N'__ID', 1, N'ID', N'', N'', N'', N'', N'', N'', N''
IF (@idTab IS NOT NULL) AND EXISTS (SELECT 1 FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'Typ')
IF NOT EXISTS (SELECT 1 FROM dbo.TabDefTabUzivConstraint WHERE IDDefinice=@idTab AND Typ=0 AND JmenoSys=N'IX__' + @sysTabName + N'__Typ')
INSERT dbo.TabDefTabUzivConstraint
(IDDefinice, JmenoSys, Typ, MojeAtributy, CiziTabulka, CiziAtributy, IncludedAttr, VazbaNazevMoje, VazbaNazevMojeSys, VazbaNazevCizi, VazbaNazevCiziSys)
SELECT @idTab, N'IX__' + @sysTabName + N'__Typ', 0, N'Typ', N'', N'', N'', N'', N'', N'', N''
IF (@idTab IS NOT NULL) AND EXISTS (SELECT 1 FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDPrikaz')
IF NOT EXISTS (SELECT 1 FROM dbo.TabDefTabUzivConstraint WHERE IDDefinice=@idTab AND Typ=0 AND JmenoSys=N'IX__' + @sysTabName + N'__IDPrikaz')
INSERT dbo.TabDefTabUzivConstraint
(IDDefinice, JmenoSys, Typ, MojeAtributy, CiziTabulka, CiziAtributy, IncludedAttr, VazbaNazevMoje, VazbaNazevMojeSys, VazbaNazevCizi, VazbaNazevCiziSys)
SELECT @idTab, N'IX__' + @sysTabName + N'__IDPrikaz', 0, N'IDPrikaz', N'', N'', N'', N'', N'', N'', N''
IF (@idTab IS NOT NULL) AND EXISTS (SELECT 1 FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDStroj')
IF NOT EXISTS (SELECT 1 FROM dbo.TabDefTabUzivConstraint WHERE IDDefinice=@idTab AND Typ=0 AND JmenoSys=N'IX__' + @sysTabName + N'__IDStroj')
INSERT dbo.TabDefTabUzivConstraint
(IDDefinice, JmenoSys, Typ, MojeAtributy, CiziTabulka, CiziAtributy, IncludedAttr, VazbaNazevMoje, VazbaNazevMojeSys, VazbaNazevCizi, VazbaNazevCiziSys)
SELECT @idTab, N'IX__' + @sysTabName + N'__IDStroj', 0, N'IDStroj', N'', N'', N'', N'', N'', N'', N''
-- trigger I/U/D
IF (@idTab IS NOT NULL)
BEGIN
SET @trigger=N'CREATE TRIGGER ht_TabVyroba_Palety_DIU ON _TabVyroba_Palety
FOR DELETE,INSERT,UPDATE
AS
-- !! trigger neupravujte, bude stejne pregenerovan pri startu pluginu PluginHDCRTN !!
IF @@ROWCOUNT = 0 RETURN
SET NOCOUNT ON
-- 1..insert, -1..delete, 0..update
DECLARE @JakaAkce INT
SET @JakaAkce = 0
IF EXISTS(SELECT*FROM INSERTED) SET @JakaAkce = @JakaAkce + 1
IF EXISTS(SELECT*FROM DELETED) SET @JakaAkce = @JakaAkce - 1
DECLARE
@errMsg NVARCHAR(500),
@id INT
-- delete cast
IF (@JakaAkce=-1)
BEGIN
DECLARE c CURSOR LOCAL FOR
SELECT d.ID
FROM deleted d
OPEN c
WHILE (1=1)
BEGIN
FETCH NEXT FROM c INTO @id
IF (@@FETCH_STATUS<>0) BREAK
IF OBJECT_ID(N''dbo._TabVyroba_PaletyUkonceni'', N''U'') IS NOT NULL
DELETE FROM dbo._TabVyroba_PaletyUkonceni WHERE IDPalety=@id
IF OBJECT_ID(N''dbo._TabVyroba_PaletyPohybOZ'', N''U'') IS NOT NULL
DELETE FROM dbo._TabVyroba_PaletyPohybOZ WHERE IDPalety=@id
END
CLOSE c
DEALLOCATE c
END
-- cisteni
BEGIN TRY
IF EXISTS(SELECT 1 FROM dbo._TabVyroba_Palety)
BEGIN
SELECT @id=MAX(ID) FROM dbo._TabVyroba_Palety
DBCC CHECKIDENT(_TabVyroba_Palety, RESEED, @id)
END
ELSE
TRUNCATE TABLE dbo._TabVyroba_Palety
END TRY
BEGIN CATCH
SET @errMsg = ERROR_MESSAGE()
END CATCH
'
UPDATE dbo.TabDefTabUzivTabulka SET DefiniceTriggeru=@trigger WHERE ID=@idTab
END

42
_sql/_temp Normal file
View File

@ -0,0 +1,42 @@
-- dopln z dokladu posledni sarzi na stav skladu
SET NOCOUNT ON
DECLARE
@idPZ INT,
@idSS INT,
@idKZ INT,
@sarze NVARCHAR(100),
@paletList NVARCHAR(100)
MERGE dbo._hdc_PZ_PuvodniVC AS T
USING dbo.TabPohybyZbozi AS S ON (S.ID=T.IDPohybZbozi)
WHEN MATCHED THEN UPDATE SET T.IDZboSklad=S.IDZboSklad;
DECLARE c CURSOR LOCAL FAST_FORWARD FOR
SELECT IDPohybZbozi, IDZboSklad, Sarze, PaletovyList FROM dbo._hdc_PZ_PuvodniVC
WHERE IDPohybZbozi IN (SELECT ID FROM dbo.TabPohybyZbozi WHERE IDDoklad=29)
OPEN c
WHILE (1=1)
BEGIN
FETCH NEXT FROM c INTO @idPZ, @idSS, @sarze, @paletList
IF (@@FETCH_STATUS<>0) BREAK
IF (@idSS IS NULL)
SET @idSS = (SELECT IDZboSklad FROM dbo.TabPohybyZbozi WHERE ID=@idPZ)
IF (@idSS IS NOT NULL)
SET @idKZ = (SELECT IDKmenZbozi FROM dbo.TabStavSkladu WHERE ID=@idSS)
SET @idSS = (SELECT ID FROM dbo.TabStavSkladu WHERE IDKmenZbozi=@idKZ AND IDSklad=N'211')
IF NOT EXISTS (SELECT 1 FROM dbo.TabStavSkladu_EXT WHERE ID=@idSS)
INSERT dbo.TabStavSkladu_EXT (ID) VALUES (@idSS)
UPDATE dbo.TabStavSkladu_EXT SET _Prevod_PosledniSarze=@sarze WHERE ID=@idSS
END
CLOSE c
DEALLOCATE c

View File

@ -0,0 +1,30 @@
DECLARE @currDat DATETIME=GETDATE()
IF (COL_LENGTH(N'dbo.TabDokladyZbozi_EXT', N'_Vyroba_HmotTesta') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabDokladyZbozi', @NazevAtrSys=N'_Vyroba_HmotTesta', @Skupina=N'Plugin Pek<65>rna', @NazevAtrVer=N'Hmotnost vyroben<65>ho t<>sta (kg)',
@NazevAtrVerZkr=N'Hm. t<>sta', @TypAtr=N'NUMERIC', @MaskaAtr=NULL, @VerejnyAtr=N'V', @SirkaSloupceAtr=8, @SumovatAtr=N'A', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'NUMERIC', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL
IF (COL_LENGTH(N'dbo.TabDokladyZbozi_EXT', N'_Vyroba_ZadatSarze') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabDokladyZbozi', @NazevAtrSys=N'_Vyroba_ZadatSarze', @Skupina=N'Plugin Pek<65>rna', @NazevAtrVer=N'V<EFBFBD>dej z v<>roby - zadat <20>ar<61>e',
@NazevAtrVerZkr=N'', @TypAtr=N'SMALLINT', @MaskaAtr=NULL, @VerejnyAtr=N'V', @SirkaSloupceAtr=8, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'SMALLINT', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=N'Identifikace zda na v<>dejce z v<>roby byly zad<61>ny <20>ar<61>e (1=polo<6C>ka s pot<6F>ebou <20>ar<61>e, 2=v<>e zad<61>no)', @Definice=NULL, @Podminka=NULL
IF (COL_LENGTH(N'dbo.TabDokladyZbozi_EXT', N'_Vyroba_DenSmena') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabDokladyZbozi', @NazevAtrSys=N'_Vyroba_DenSmena', @Skupina=N'Plugin Pek<65>rna', @NazevAtrVer=N'V<EFBFBD>dej z v<>roby - den/sm<73>na',
@NazevAtrVerZkr=N'', @TypAtr=N'NVARCHAR', @MaskaAtr=NULL, @VerejnyAtr=N'V', @SirkaSloupceAtr=8, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'NVARCHAR(10)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=N'ddmmyyyy/s', @Definice=NULL, @Podminka=NULL
IF (COL_LENGTH(N'dbo.TabDokladyZbozi_EXT', N'_Vyroba_IDPuvodniDoklad') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabDokladyZbozi', @NazevAtrSys=N'_Vyroba_IDPuvodniDoklad', @Skupina=N'Plugin Pek<65>rna', @NazevAtrVer=N'ID p<>vodn<64>ho dokladu p<>evodu/v<>deje',
@NazevAtrVerZkr=N'', @TypAtr=N'INT', @MaskaAtr=NULL, @VerejnyAtr=N'N', @SirkaSloupceAtr=8, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'INT', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL
IF (COL_LENGTH(N'dbo.TabDokladyZbozi_EXT', N'_HDCAPI_PHident') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabDokladyZbozi', @NazevAtrSys=N'_HDCAPI_PHident', @Skupina=N'Plugin Pek<65>rna', @NazevAtrVer=N'HDC API PH identifik<69>tor pro sync',
@NazevAtrVerZkr=N'', @TypAtr=N'INT', @MaskaAtr=NULL, @VerejnyAtr=N'N', @SirkaSloupceAtr=10, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'INT', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL

View File

@ -0,0 +1,12 @@
DECLARE @currDat DATETIME=GETDATE()
IF (COL_LENGTH(N'dbo.TabEvidRozpracOperR_EXT', N'_Sarze') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabEvidRozpracOperR', @NazevAtrSys=N'_Sarze', @Skupina=NULL, @NazevAtrVer=N'<EFBFBD>ar<EFBFBD>e',
@NazevAtrVerZkr=N'', @TypAtr=N'NVARCHAR', @MaskaAtr=NULL, @VerejnyAtr=N'A', @SirkaSloupceAtr=12, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'NVARCHAR(30)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL
IF (COL_LENGTH(N'dbo.TabEvidRozpracOperR_EXT', N'_KoefMnoz') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabEvidRozpracOperR', @NazevAtrSys=N'_KoefMnoz', @Skupina=NULL, @NazevAtrVer=N'Koeficient mno<6E>stv<74>',
@NazevAtrVerZkr=N'', @TypAtr=N'NUMERIC', @MaskaAtr=N'0.####', @VerejnyAtr=N'A', @SirkaSloupceAtr=12, @SumovatAtr=N'A', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'NUMERIC(19,6)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL

View File

@ -0,0 +1,14 @@
DECLARE @currDat DATETIME=GETDATE()
IF (COL_LENGTH(N'dbo.TabKmenZbozi_EXT', N'_Vyroba_ZadavatSarzi') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabKmenZbozi', @NazevAtrSys=N'_Vyroba_ZadavatSarzi', @Skupina=N'Plugin Pek<65>rna', @NazevAtrVer=N'V<EFBFBD>roba - vy<76>adovat <20>ar<61>i',
@NazevAtrVerZkr=N'V<EFBFBD>dej <20>ar<61>e', @TypAtr=N'BIT', @MaskaAtr=NULL, @VerejnyAtr=N'A', @SirkaSloupceAtr=8, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'BIT', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=N'P<EFBFBD>i v<>deji ve v<>rob<6F> vy<76>adovat zad<61>n<EFBFBD> <20>ar<61>e', @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1
IF (COL_LENGTH(N'dbo.TabKmenZbozi_EXT', N'_Prevod_PosledniSarze') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabKmenZbozi', @NazevAtrSys=N'_Prevod_PosledniSarze', @Skupina=N'Plugin Pek<65>rna', @NazevAtrVer=N'V<EFBFBD>roba - posledn<64> p<>eveden<65> <20>ar<61>e',
@NazevAtrVerZkr=N'Posledn<EFBFBD> <20>ar<61>e', @TypAtr=N'NVARCHAR', @MaskaAtr=NULL, @VerejnyAtr=N'A', @SirkaSloupceAtr=14, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'NVARCHAR(100)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=N'<EFBFBD>ar<EFBFBD>e z posledn<64> p<>evodky-p<><70>jemky mezi sklady', @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1

View File

@ -0,0 +1,51 @@
DECLARE @errMsg NVARCHAR(255), @currDat DATETIME=GETDATE()
IF (COL_LENGTH(N'dbo.TabPohybyZbozi_EXT', N'_HDCAPI_PHident') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPohybyZbozi', @NazevAtrSys=N'_HDCAPI_PHident', @Skupina=N'Plugin Pek<65>rna', @NazevAtrVer=N'HDC API PH identifik<69>tor pro sync',
@NazevAtrVerZkr=N'HDCAPIPHid', @TypAtr=N'INT', @MaskaAtr=NULL, @VerejnyAtr=N'N', @SirkaSloupceAtr=8, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=1,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'INT', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL
IF (COL_LENGTH(N'dbo.TabPohybyZbozi_EXT', N'_Vyroba_PrikazMnoz') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPohybyZbozi', @NazevAtrSys=N'_Vyroba_PrikazMnoz', @Skupina=N'Plugin Pek<65>rna', @NazevAtrVer=N'Mno<EFBFBD>stv<EFBFBD> po<70>adavku z p<><70>kazu (norma)',
@NazevAtrVerZkr=N'P<EFBFBD><EFBFBD>kaz mno<6E>.', @TypAtr=N'NUMERIC', @MaskaAtr=NULL, @VerejnyAtr=N'N', @SirkaSloupceAtr=8, @SumovatAtr=N'A', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'NUMERIC(19,6)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL
IF (COL_LENGTH(N'dbo.TabPohybyZbozi_EXT', N'_Vyroba_Sarze') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPohybyZbozi', @NazevAtrSys=N'_Vyroba_Sarze', @Skupina=N'Plugin Pek<65>rna', @NazevAtrVer=N'<EFBFBD>ar<EFBFBD>e materi<72>lu',
@NazevAtrVerZkr=N'<EFBFBD>ar<EFBFBD>e', @TypAtr=N'NVARCHAR', @MaskaAtr=NULL, @VerejnyAtr=N'N', @SirkaSloupceAtr=12, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'NVARCHAR(100)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL
IF (COL_LENGTH(N'dbo.TabPohybyZbozi_EXT', N'_Vyroba_PaletList') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPohybyZbozi', @NazevAtrSys=N'_Vyroba_PaletList', @Skupina=N'Plugin Pek<65>rna', @NazevAtrVer=N'Paletov<EFBFBD> list',
@NazevAtrVerZkr=N'Palet. list', @TypAtr=N'NVARCHAR', @MaskaAtr=NULL, @VerejnyAtr=N'N', @SirkaSloupceAtr=16, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'NVARCHAR(30)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL
IF (COL_LENGTH(N'dbo.TabPohybyZbozi_EXT', N'_Mouka_Silo') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPohybyZbozi', @NazevAtrSys=N'_Mouka_Silo', @Skupina=N'Plugin Pek<65>rna', @NazevAtrVer=N'Silo um<75>st<73>n<EFBFBD> mouky',
@NazevAtrVerZkr=N'Silo', @TypAtr=N'SMALLINT', @MaskaAtr=NULL, @VerejnyAtr=N'A', @SirkaSloupceAtr=12, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'SMALLINT', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL
IF (COL_LENGTH(N'dbo.TabPohybyZbozi_EXT', N'_Vyroba_MnozSouhrVydej') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPohybyZbozi', @NazevAtrSys=N'_Vyroba_MnozSouhrVydej', @Skupina=N'Plugin Pek<65>rna', @NazevAtrVer=N'Mno<EFBFBD>stv<EFBFBD> zapsan<61> na souhrnnou v<>dejku',
@NazevAtrVerZkr=N'Mn.souhr.v<>dej', @TypAtr=N'NUMERIC', @MaskaAtr=NULL, @VerejnyAtr=N'A', @SirkaSloupceAtr=12, @SumovatAtr=N'A', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'NUMERIC(19,6)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL
/*
BEGIN TRY
IF (COL_LENGTH(N'dbo.TabPohybyZbozi_EXT', N'_Mouka_Silo') IS NOT NULL)
BEGIN
DELETE FROM dbo.TabUzivAtr WHERE NazevTabulkySys=N'TabPohybyZbozi' AND NazevAtrSys=N'_Mouka_Silo'
IF (COL_LENGTH(N'dbo.TabPohybyZbozi_EXT', N'_Mouka_Silo') IS NOT NULL)
ALTER TABLE dbo.TabPohybyZbozi_EXT DROP COLUMN _Mouka_Silo
END
END TRY
BEGIN CATCH
SET @errMsg = ERROR_MESSAGE()
END CATCH
*/

View File

@ -0,0 +1,21 @@
DECLARE @currDat DATETIME=GETDATE()
/*
IF (COL_LENGTH(N'dbo.TabStavSkladu_EXT', N'_HDCApi_PoslPrevedSarze') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabStavSkladu', @NazevAtrSys=N'_HDCApi_PoslPrevedSarze', @Skupina=N'HDCDZApi', @NazevAtrVer=N'Posledn<64> p<>eveden<65> <20>ar<61>e',
@NazevAtrVerZkr=N'Posl. <20>ar<61>e', @TypAtr=N'NVARCHAR', @MaskaAtr=NULL, @VerejnyAtr=N'V', @SirkaSloupceAtr=16, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'NVARCHAR(100)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=N'', @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1
*/
IF (COL_LENGTH(N'dbo.TabStavSkladu_EXT', N'_Prevod_PosledniSarze') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabStavSkladu', @NazevAtrSys=N'_Prevod_PosledniSarze', @Skupina=N'Plugin Pek<65>rna', @NazevAtrVer=N'V<EFBFBD>roba - posledn<64> p<>eveden<65> <20>ar<61>e',
@NazevAtrVerZkr=N'Posledn<EFBFBD> <20>ar<61>e', @TypAtr=N'NVARCHAR', @MaskaAtr=NULL, @VerejnyAtr=N'A', @SirkaSloupceAtr=14, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'NVARCHAR(100)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=N'<EFBFBD>ar<EFBFBD>e z posledn<64> p<>evodky-p<><70>jemky mezi sklady', @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1
IF (COL_LENGTH(N'dbo.TabStavSkladu_EXT', N'_Prevod_PosledniPaletList') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabStavSkladu', @NazevAtrSys=N'_Prevod_PosledniPaletList', @Skupina=N'Plugin Pek<65>rna', @NazevAtrVer=N'V<EFBFBD>roba - posledn<64> p<>eveden<65> paletov<6F> list',
@NazevAtrVerZkr=N'Posledn<EFBFBD> PalList', @TypAtr=N'NVARCHAR', @MaskaAtr=NULL, @VerejnyAtr=N'A', @SirkaSloupceAtr=14, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'NVARCHAR(100)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=N'Paletov<EFBFBD> list z posledn<64> p<>evodky-p<><70>jemky mezi sklady', @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1

View File

@ -0,0 +1,6 @@
DECLARE @currDat DATETIME=GETDATE()
IF (COL_LENGTH(N'dbo.TabVazbyPrikazu_EXT', N'_MnozstviOdv') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabVazbyPrikazu', @NazevAtrSys=N'_MnozstviOdv', @Skupina=NULL, @NazevAtrVer=N'Mno<EFBFBD>stv<EFBFBD> odveden<65> na vy<76><79><EFBFBD> p<><70>kaz',
@NazevAtrVerZkr=N'Mno<EFBFBD>stv<EFBFBD> odv.', @TypAtr=N'NUMERIC', @MaskaAtr=N'#,##0.###', @VerejnyAtr=N'V', @SirkaSloupceAtr=14, @SumovatAtr=N'A', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'NUMERIC(19,6)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL

9
_sql/ef_Bit2Int.sql Normal file
View File

@ -0,0 +1,9 @@
-- dbo.ef_Bit2Int
CREATE FUNCTION dbo.ef_Bit2Int (@inBool BIT) RETURNS TINYINT
AS
BEGIN
-- !! funkci neupravujte, bude stejne pregenerovana pri startu pluginu PluginHDCRTN !!
RETURN CONVERT(tinyint, CASE WHEN @inBool=1 THEN 1 ELSE 0 END)
END

30
_sql/ef_DilecGetStroj.sql Normal file
View File

@ -0,0 +1,30 @@
-- dbo.ef_DilecGetStroj
CREATE FUNCTION dbo.ef_DilecGetStroj (@IDKmen INT=NULL, @NazevOp NVARCHAR(100)=NULL)
RETURNS INT
AS
BEGIN
-- !! funkci neupravujte, bude stejne pregenerovana pri startu pluginu PluginHDCRTN !!
DECLARE
@retVal INT=NULL
IF (@IDKmen IS NULL)
RETURN @retVal
SET @NazevOp = ISNULL(@NazevOp, N'')
IF (@NazevOp<>N'')
BEGIN
IF 1=(SELECT COUNT(ID) FROM dbo.TabPostup WHERE Dilec=@IDKmen AND ZmenaDo IS NULL AND IDStroje IS NOT NULL AND Nazev LIKE @NazevOp + N'%')
SELECT @retVal=IDStroje FROM dbo.TabPostup WHERE Dilec=@IDKmen AND ZmenaDo IS NULL AND IDStroje IS NOT NULL AND Nazev LIKE @NazevOp + N'%'
END
ELSE
BEGIN
IF 1=(SELECT COUNT(ID) FROM dbo.TabPostup WHERE Dilec=@IDKmen AND ZmenaDo IS NULL AND IDStroje IS NOT NULL)
SELECT @retVal=IDStroje FROM dbo.TabPostup WHERE Dilec=@IDKmen AND ZmenaDo IS NULL AND IDStroje IS NOT NULL
END
RETURN @retVal
END

View File

@ -0,0 +1,25 @@
-- dbo.ef_GetDatumASmenu
CREATE FUNCTION dbo.ef_GetDatumASmenu (@Datum DATETIME)
RETURNS @retTab TABLE (Datum DATE, Smena TINYINT)
AS
BEGIN
-- !! funkci neupravujte, bude stejne pregenerovana pri startu pluginu PluginHDCRTN !!
DECLARE
@hod TINYINT,
@lDatum DATE,
@smena SMALLINT
SET @lDatum = @Datum
SET @hod = DATEPART(hour, @Datum)
SET @smena = IIF(@hod BETWEEN 0 AND 5, -1, IIF(@hod BETWEEN 6 AND 13, 1, IIF(@hod BETWEEN 14 AND 21, 2, 3)))
IF (@smena=-1)
BEGIN
SET @smena = 3
SET @lDatum = DATEADD(day, -1, @Datum)
END
INSERT @retTab SELECT @lDatum, @smena
RETURN
END

View File

@ -0,0 +1,9 @@
-- dbo.ef_Kmen_VratPocetKsVKartonu
CREATE FUNCTION dbo.ef_Kmen_VratPocetKsVKartonu (@IDKmenZbozi INT)
RETURNS NUMERIC(19,6)
AS
BEGIN
DECLARE @retVal NUMERIC(19,6)
SET @retVal = ISNULL( (SELECT PocetOdvozene FROM dbo.TabMJZbozi WHERE IDKmenZbozi=@IDKmenZbozi AND KodMJ1=N'KA' AND KodMJ2=N'ks'), 0)
RETURN @retVal
END

View File

@ -0,0 +1,40 @@
-- ef_Vyroba_GenerujRozpadCasu
CREATE FUNCTION dbo.ef_Vyroba_GenerujRozpadCasu (
@datStart DATETIME=NULL,
@numOfDays SMALLINT=3,
@stepMinutes SMALLINT=60
)
/*
RETURNS TABLE
AS
RETURN
(
WITH Recursive_CTE AS
(
SELECT dbo.hf_TruncDate(ISNULL(@datStart, GETDATE())) AS TimestampUtc
UNION ALL
SELECT DATEADD(MINUTE, @stepMinutes, TimestampUtc)
FROM Recursive_CTE
WHERE TimestampUtc < DATEADD(ms, -3, dbo.hf_TruncDate(DATEADD(DAY, @numOfDays, DATEADD(DAY, 1, ISNULL(@datStart, GETDATE())))))
)
SELECT *
FROM Recursive_CTE
)
*/
RETURNS @Result TABLE (TimestampUtc DATETIME)
AS
BEGIN
DECLARE @currentTimestamp DATETIME = dbo.hf_TruncDate(ISNULL(@datStart, GETDATE()));
DECLARE @endTimestamp DATETIME = DATEADD(ms, -3, dbo.hf_TruncDate(DATEADD(DAY, @numOfDays, DATEADD(DAY, 1, ISNULL(@datStart, GETDATE())))));
WHILE @currentTimestamp <= @endTimestamp
BEGIN
INSERT INTO @Result (TimestampUtc)
VALUES (@currentTimestamp);
SET @currentTimestamp = DATEADD(MINUTE, @stepMinutes, @currentTimestamp);
END;
RETURN;
END

View File

@ -0,0 +1,43 @@
-- dbo.ef_Vyroba_VratCisloSarze
CREATE FUNCTION dbo.ef_Vyroba_VratCisloSarze (@Datum DATETIME=NULL, @Typ TINYINT=1, @iso BIT=1)
RETURNS NVARCHAR(5)
AS
BEGIN
DECLARE
@smena TINYINT=0,
@pracDen NCHAR(1)=N'',
@tyden NCHAR(2)=N'',
@retVal NVARCHAR(5),
@den TINYINT,
@NYden TINYINT
SET @Datum = ISNULL(@Datum, GETDATE())
SELECT @smena=Smena, @Datum=Datum FROM dbo.ef_GetDatumASmenu (@Datum)
SET @NYden = DATEPART(weekday, '20240101') -- pondeli
--SET @pracDen = CONVERT(nchar(1), (DATEPART(weekday, @Datum) + @@DATEFIRST - 2) % 7 + 1)
SET @den = DATEPART(weekday, @Datum)
IF (@NYden=1) -- system ma nastaveno pondeli=1, Rootvin potrebuje nedele=1
BEGIN
IF (@den=7) -- nedele=7 -> nedele=1
SET @den = 1
ELSE
SET @den = @den + 1
END
SET @pracDen = CONVERT(nchar(1), @den)
IF (@typ=1)
SET @tyden = IIF(@iso=0, FORMAT(DATEPART(week, @Datum), '00', 'cs-cz'), FORMAT(DATEPART(iso_week, @Datum), '00', 'cs-cz'))
IF (@typ=2)
SET @tyden = IIF(@iso=0, FORMAT(DATEPART(week, @Datum), '00', 'en-gb'), FORMAT(DATEPART(iso_week, @Datum), '00', 'en-gb'))
SET @retVal = RIGHT(FORMAT(@Datum, 'yy'), 1) + @tyden + @pracDen + FORMAT(@smena, '0')
RETURN @retVal
END

View File

@ -0,0 +1,108 @@
-- dbo.ef_Vyroba_VratNovyPaletovyList
CREATE FUNCTION dbo.ef_Vyroba_VratNovyPaletovyList (@typ TINYINT=1, @radaVPr NVARCHAR(10)=N'', @cisloOrg INT=NULL, @idKmenZbozi INT=NULL)
RETURNS NVARCHAR(50)
AS
BEGIN
-- funkci neupravujte, stejne bude prepsana pri spusteni pluginu pro Planovani nebo Windows sluzbou HDC API
DECLARE
@retVal NVARCHAR(15),
@bi BIGINT,
@maska NVARCHAR(100)=NULL,
@delka TINYINT,
@sz NVARCHAR(3)
DECLARE
@skladNestd NVARCHAR(30)=N'211',
@radaPrijemNestd NVARCHAR(3)='270' -- vyrobky PEK
SET @bi = 1 + ISNULL( (SELECT MAX(TRY_PARSE(VyrCislo AS BIGINT)) FROM dbo.TabVyrCisPrikaz WHERE VyrCislo LIKE N'5%'), 0)
IF (@bi = 1)
SET @bi = 5200001
SET @retVal = CONVERT(nvarchar, @bi)
IF EXISTS(SELECT 1 FROM Information_schema.Routines WHERE Specific_schema=N'dbo' AND specific_name=N'ef_Vyroba_VratNovyPaletovyList1' AND Routine_Type=N'FUNCTION')
SET @retVal = dbo.ef_Vyroba_VratNovyPaletovyList1 (@typ, @radaVPr, @cisloOrg, @idKmenZbozi)
/*
IF (@typ=2)
BEGIN
SET @delka = 0
IF (@radaVPr<>N'')
BEGIN
SET @maska=(SELECT MaskaProGenVyrCis FROM dbo.TabRadyPrikazu WHERE Rada=@radaVPr)
IF (@maska IS NOT NULL)
IF (@maska LIKE N'#%C')
SET @delka = CONVERT(tinyint, LEFT(SUBSTRING(@maska, 2, 50), CHARINDEX(N'C', SUBSTRING(@maska, 2, 50))-1))
END
SELECT @bi = 1 + MAX(ISNULL(TRY_PARSE(VyrCislo AS BIGINT), 0)) FROM dbo.TabVyrCisPrikaz
SET @retVal = CONVERT(nvarchar, @bi)
IF (@maska IS NULL) AND (@typ=2)
BEGIN
SELECT @bi = 1 + MAX(ISNULL(TRY_PARSE(VyrCislo AS BIGINT), 23000000)) FROM dbo.TabVyrCisPrikaz
SET @retVal = CONVERT(nvarchar, @bi)
END
ELSE
IF (@delka>0)
SET @retVal = REPLICATE(N'0', @delka - LEN(@retVal)) + @retVal
END
IF (@typ=3)
BEGIN
SET @bi = 1 + ISNULL( (SELECT MAX(TRY_PARSE(CisloPalety AS BIGINT)) FROM dbo._TabVyroba_Palety WHERE Typ=1), 23000000)
SET @retVal = CONVERT(nvarchar, @bi)
END
IF (@typ=1) -- prijem nestandard
BEGIN
SELECT @bi = 1 + ISNULL(MAX(x.num), 8200000)
FROM (SELECT TRY_PARSE(vcs.Nazev1 AS BIGINT) AS num FROM dbo.TabPohybyZbozi p
INNER JOIN dbo.TabDokladyZbozi d ON (d.ID=p.IDDoklad)
INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad) INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi)
INNER JOIN dbo.TabVyrCP vcp ON (vcp.IDPolozkaDokladu=p.ID) INNER JOIN dbo.TabVyrCS vcs ON (vcs.IDStavSkladu=p.IDZboSklad)
WHERE k.Nazev1 LIKE N'%nestandart%' AND CONVERT(nvarchar, p.Poznamka)=N'P<><50>jem nestandard' AND d.DruhPohybuZbo=0
AND d.IDSklad=@skladNestd AND ISNUMERIC(vcs.Nazev1)=1 AND d.RadaDokladu=@radaPrijemNestd
) x
SET @retVal = CONVERT(nvarchar, @bi)
END
IF (@idKmenZbozi IS NOT NULL) AND (@typ<>1)
BEGIN
SELECT @sz=SkupZbo FROM dbo.TabKmenZbozi WHERE ID=@idKmenZbozi
IF (@sz LIKE N'7%' AND @sz NOT LIKE N'70%')
SET @bi = 1 + ISNULL( (SELECT MAX(TRY_PARSE(CisloPalety AS BIGINT)) FROM dbo._TabVyroba_Palety WHERE Typ=1), 5200000)
IF (@sz LIKE N'6%')
SET @bi = 1 + ISNULL( (SELECT MAX(TRY_PARSE(CisloPalety AS BIGINT)) FROM dbo._TabVyroba_Palety WHERE Typ=2), 6200000)
IF (@sz LIKE N'1%')
SET @bi = 1 + ISNULL( (SELECT MAX(TRY_PARSE(CisloPalety AS BIGINT)) FROM dbo._TabVyroba_Palety WHERE Typ=3), 7200000)
IF (@sz LIKE N'60%')
SET @bi = 1 + ISNULL( (SELECT MAX(TRY_PARSE(CisloPalety AS BIGINT)) FROM dbo._TabVyroba_Palety WHERE Typ=4), 8200000)
SET @retVal = CONVERT(nvarchar, @bi)
END
*/
RETURN @retVal
END

View File

@ -0,0 +1,117 @@
-- dbo.ep_HDC_PZ_ZapisPolozek
CREATE PROCEDURE dbo.ep_HDC_PZ_ZapisPolozek
@typ INT,
@idDokladOZDst INT=NULL
AS
SET NOCOUNT ON
DECLARE
@idPol INT,
@idPHIdent INT,
@idPHIdent2 INT,
@sz NVARCHAR(3),
@rc NVARCHAR(30),
@idKmen INT,
@idStav INT,
@idPZ INT,
@idVCK INT,
@idVCS INT,
@idVCP INT,
@sklad NVARCHAR(30),
@mnoz NUMERIC(19,6),
@paletList NVARCHAR(50),
@sarze NVARCHAR(50)
DECLARE
@dpz TINYINT,
@cisOrg INT,
@vstC TINYINT,
@jednM INT,
@dzMena NVARCHAR(3),
@dzKurz NUMERIC(19,6),
@dzKurzE NUMERIC(19,6)
IF OBJECT_ID(N'tempdb..#TabTempUziv', N'U') IS NULL
CREATE TABLE #TabTempUziv (Tabulka NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)
IF (@typ=1) -- zapis z dbo._TabVyroba_Objednavky do dokladu výdejky
BEGIN
IF (@idDokladOZDst IS NULL)
RETURN
IF OBJECT_ID(N'tempdb..#TabZapisPolozekOZ', N'U') IS NULL
RETURN
SELECT @cisOrg=CisloOrg, @dpz=DruhPohybuZbo, @vstC=VstupniCena, @jednM=JednotkaMeny, @dzMena=Mena, @dzKurz=Kurz, @dzKurzE=KurzEuro, @sklad=IDSklad
FROM dbo.TabDokladyZbozi WHERE ID=@idDokladOZDst
DECLARE c CURSOR LOCAL FOR
SELECT IDPolozky FROM #TabZapisPolozekOZ ORDER BY ID
OPEN c
WHILE (1=1)
BEGIN
FETCH NEXT FROM c INTO @idPol
IF (@@FETCH_STATUS<>0) BREAK
SELECT @idPHIdent=IdPHIdent, @idPHIdent2=IdPHIdent2, @idKmen=IDKmenZbozi, @sz=SkupZbo, @rc=RegCis, @mnoz=Mnozstvi, @paletList=PaletovyList, @sarze=Sarze
FROM dbo._TabVyroba_Objednavky WHERE ID=@idPol
SET @paletList = ISNULL(@paletList, N'')
IF (@idKmen IS NOT NULL)
BEGIN
SET @idStav = (SELECT ID FROM dbo.TabStavSkladu WHERE IDSklad=@sklad AND IDKmenZbozi=@idKmen)
IF (@idStav IS NULL)
EXEC dbo.hp_InsertStavSkladu @IDKmen=@idKmen, @IDSklad=@sklad, @IDZboSklad=@idStav OUT
IF (@idStav IS NOT NULL)
BEGIN
EXEC dbo.hp_InsertPolozkyOZ @Ident=@idPZ OUT, @IDDoklad=@idDokladOZDst, @DruhPohybu=@dpz, @CisloOrg=@cisOrg, @IDZboSklad=@idStav, @Mena=@dzMena, @Kurz=@dzKurz, @KurzEuro=@dzKurzE,
@JednotkaMeny=@jednM, @SazbaSD=NULL, @SazbaDPH=NULL, @ZakazanoDPH=NULL, @VstupniCena=@vstC, @Mnozstvi=@mnoz, @PovolitDuplicitu=1
IF (@idPZ IS NOT NULL)
BEGIN
UPDATE dbo._TabVyroba_Objednavky SET Blokovano=1 WHERE ID=@idPol
UPDATE dbo.TabPohybyZbozi_EXT SET _HDCAPI_PHident=@idPol WHERE ID=@idPZ
IF (@@ROWCOUNT=0)
INSERT dbo.TabPohybyZbozi_EXT (ID, _HDCAPI_PHident) SELECT @idPZ, @idPol
UPDATE dbo.TabPohybyZbozi_EXT SET _Vyroba_Sarze=@sarze, _Vyroba_PaletList=@paletList WHERE ID=@idPZ
/*
SET @idVCK=(SELECT ID FROM dbo.TabVyrCK WHERE IDKmenZbozi=@idKmen AND Nazev1=@paletList)
IF (@idVCK IS NULL)
EXEC dbo.hp_OZInsertVyrCK @IDVyrCK=@idVCK OUT, @IDKmenZbozi=@idKmen, @Selectem=0, @Nazev1=@paletList
IF (@idVCK IS NOT NULL)
BEGIN
SET @idVCS = (SELECT ID FROM dbo.TabVyrCS WHERE IDVyrCK=@idVCK AND IDStavSkladu=@idStav AND Nazev1=@paletList)
IF (@idVCS IS NULL)
EXEC dbo.hp_OZInsertVyrCS @IDVyrCS=@idVCS OUT, @IDVyrCK=@idVCK, @IDZboSklad=@idStav, @Nazev1=@paletList
IF (@idVCS IS NOT NULL)
BEGIN
INSERT dbo.TabVyrCP (IDPolozkaDokladu, IDVyrCis, Nazev, Mnozstvi) SELECT @idPZ, @idVCS, @sarze, @mnoz
SET @idVCP = SCOPE_IDENTITY()
END
END -- @idVCK
*/
INSERT dbo._TabVyroba_Objednavky_Pol (IDHlava, IDDokladOZ, IDPohybOZ, IDVyrCP, Mnozstvi, Sarze) VALUES (@idPol, @idDokladOZDst, @idPZ, @idVCP, @mnoz, @paletList)
END -- @idPZ
END -- @idStav
END -- @idKmen
UPDATE dbo._TabVyroba_Objednavky SET Blokovano=0,
MnozKVydeji=Mnozstvi - ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=@idPol), 0)
WHERE ID=@idPol
END
CLOSE c
DEALLOCATE c
END

68
_sql/ep_P01.sql Normal file
View File

@ -0,0 +1,68 @@
/* HELIOS iNuvio | NTB-T | 2024-06-04 11:20:15 */
SET NOCOUNT ON
DECLARE @GUID BINARY(16),@Id INT,@Popis NVARCHAR(255),@UP NVARCHAR(255),@Parametry NVARCHAR(255),@IdBrowse INT,@Poznamka NVARCHAR(MAX),@Autor NVARCHAR(255),@DatPorizeni DATETIME,@Zmenil NVARCHAR(255),@DatZmeny DATETIME,@ParamHe INT,@Typ INT,@BidNavBrowse INT,@TextNavBrowse INT,@ZobrUkonceni BIT,@VerejnaAkce BIT,@ObnovitPoUkonceni BIT,@eServer BIT, @ZobrazitEditorPar BIT, @ObsluznyPlugin NVARCHAR(255),
@BlokovaniEditoru SMALLINT,@TextBrowse INT,@CyklickyEditor BIT,@SelectoTvurceVlastnikId BIT,@VstupneID NVARCHAR(255),@PosunPoZaznamech INT,@TechnickyPopis NVARCHAR(MAX),@Napoveda NVARCHAR(255),@Hotkey INT,@NavaznaAkce INT,@NavaznaAkceGUID BINARY(16),@Skupina NVARCHAR(255),@NazevPodmenu NVARCHAR(255),@PoradiVPodmenu INT,@err NVARCHAR(2047),@IdExtKom INT,@GUIDFiltr BINARY(16),@IDFiltr INT,@ErrStr NVARCHAR(2047),@SkriptPredSpustenim NVARCHAR(MAX),@Automatizace BIT
SELECT @Id=9999, @Popis=N'Spec - realizace p<><70>jemky (po)', @UP=N'dbo.ep_P01', @Parametry=N'', @IdBrowse=990990
SELECT @Poznamka=N'CREATE PROCEDURE dbo.ep_P01
@IDDoklad INT
AS
-- dopln<6C>k realizace skladovych prijmu, vola se na konci procesu realizace prijmu.
-- Vstupni parametr ID dokladu, vystup neni
SET NOCOUNT ON
DECLARE
@rada NVARCHAR(3),
@idSklad NVARCHAR(30)
SELECT @rada=RadaDokladu, @idSklad=IDSklad
FROM dbo.TabDokladyZbozi WHERE ID=@IDDoklad
-- pro reseni HDC Strakonice, moznost dalsi slepe procedury
IF OBJECT_ID(N''dbo.ep_P01_HDC1'', N''P'') IS NOT NULL
EXEC sp_executesql N''EXEC dbo.ep_P01_HDC1 @IDDoklad'', N''@IDDoklad INT'', @IDDoklad
-- pro reseni HDC Strakonice, moznost dalsi slepe procedury pro API
IF OBJECT_ID(N''dbo.ep_P01_HDCDZApi1'', N''P'') IS NOT NULL
EXEC sp_executesql N''EXEC dbo.ep_P01_HDCDZApi1 @IDDoklad'', N''@IDDoklad INT'', @IDDoklad
'
SELECT @Autor=N'Import HDC',@DatPorizeni='20240604 11:20:15.450',@Zmenil=NULL,@DatZmeny=NULL,@ParamHe=0,@Typ=0,@BidNavBrowse=NULL,@TextNavBrowse=NULL,@ZobrUkonceni=0,@VerejnaAkce=0
SELECT @NavaznaAkceGUID=CAST(NULL AS UNIQUEIDENTIFIER),@BlokovaniEditoru=NULL,@TextBrowse=990990,@CyklickyEditor=0,@SelectoTvurceVlastnikId=0,@VstupneID=NULL,@TechnickyPopis=NULL
SELECT @Napoveda=NULL,@Hotkey=0,@GUID=CAST(N'D2A38F2E-BB3C-41CC-AFF2-B3F63D9A0720' AS UNIQUEIDENTIFIER),@Skupina=N'',@NazevPodmenu=N'',@PoradiVPodmenu=0,@GUIDFiltr=CAST(NULL AS UNIQUEIDENTIFIER)
SELECT @eServer=0,@ZobrazitEditorPar=1,@ObsluznyPlugin=N'',@PosunPoZaznamech=0,@ObnovitPoUkonceni=1,@SkriptPredSpustenim=NULL,@Automatizace=0
SET @NavaznaAkce = NULL
SET @IDFiltr = NULL
IF NOT EXISTS(SELECT * FROM dbo.TabExtKom WHERE [UP]=N'dbo.ep_P01')
INSERT dbo.TabExtKom ([GUID], Popis, [UP], Parametry, IdBrowse, Poznamka, Autor,
DatPorizeni, Zmenil, DatZmeny, ParamHe, Typ, BidNavBrowse, TextNavBrowse,
ZobrUkonceni, VerejnaAkce, BlokovaniEditoru, TextBrowse, CyklickyEditor,
SelectoTvurceVlastnikId, VstupneID, TechnickyPopis, Napoveda, Hotkey,
NavaznaAkce, Skupina, NazevPodmenu, PoradiVPodmenu, IDFiltr,
eServer, ZobrazitEditorPar, ObsluznyPlugin, PosunPoZaznamech,
ObnovitPoUkonceni, SkriptPredSpustenim, Automatizace)
VALUES (@GUID, @Popis, @UP, @Parametry, @IdBrowse, @Poznamka, @Autor, @DatPorizeni,
@Zmenil, @DatZmeny, @ParamHe, @Typ, @BidNavBrowse, @TextNavBrowse, @ZobrUkonceni,
@VerejnaAkce, @BlokovaniEditoru, @TextBrowse, @CyklickyEditor, @SelectoTvurceVlastnikId,
@VstupneID, @TechnickyPopis, @Napoveda, @Hotkey, @NavaznaAkce, @Skupina, @NazevPodmenu,
@PoradiVPodmenu, @IDFiltr, @eServer, @ZobrazitEditorPar, @ObsluznyPlugin, @PosunPoZaznamech,
@ObnovitPoUkonceni, @SkriptPredSpustenim, @Automatizace)
SET @IdExtKom=(SELECT Id FROM dbo.TabExtKom WHERE GUID=@GUID)
DELETE dbo.TabExtKomPar WHERE IdExtKom=@IdExtKom
IF OBJECT_ID(N'dbo.ep_P01', N'P') IS NULL

160
_sql/ep_P01_HDC1.sql Normal file
View File

@ -0,0 +1,160 @@
-- dbo.ep_P01_HDC1
CREATE PROCEDURE dbo.ep_P01_HDC1
@IDDoklad INT
AS
-- HD Consulting Strakonice, T. Buzin
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu pluginu pro pekarnu nebo Windows sluzby HDCDZApi !!
-- vola se na konci procesu realizace prijemky (po uskutecneni prijmu ale pred konecnym COMMIT TRAN)
-- nastaveni skladu lze ovlivnit pres #HDCTabDefiniceProP01 (HlavniSkladMat NVARCHAR(30), TechnologickySklad NVARCHAR(30), SkladVyrobaPekarna NVARCHAR(30) )
-- pred finalizaci prijemky smaz vyrobni cisla (sarze hlida aplikace ProHoldingu, ale zapis si sarze do ext.info skladove karty
-- puvodni prirazeni VC k polozkam dokladu zapis do pomocne tabulice _hdc_PZ_PuvodniVC
SET NOCOUNT ON
DECLARE
@errMsg NVARCHAR(500),
@bChyba BIT,
@iTemp INT
DECLARE
@radaTechPrijem NVARCHAR(30)=N'251',
@sklTechnolog NVARCHAR(30),
@sklMatHlavni NVARCHAR(30),
@sklPekarna NVARCHAR(30)
DECLARE
@idDZDst INT,
@cOrg INT,
@dpz TINYINT,
@dpzOld TINYINT,
@datReal DATETIME,
@dzDatum DATETIME,
@dzMena NVARCHAR(3),
@dzKurz NUMERIC(19,6),
@dzKurzE NUMERIC(19,6),
@jednM INT,
@vstC TINYINT,
@radaDokl NVARCHAR(3),
@idSklad NVARCHAR(30),
@idSkladOld NVARCHAR(30),
@strChyba NVARCHAR(max)=N''
DECLARE
@idPZ INT,
@idPZOld INT,
@idPZNew INT,
@idSS INT,
@idKZ INT,
@idVCP INT,
@vyrCis NVARCHAR(100),
@poslVyrCis NVARCHAR(100),
@popisVC NVARCHAR(100), -- paletovy list
@moukaSilo SMALLINT,
@mnoz NUMERIC(19,6),
@mnozVCP NUMERIC(19,6),
@sz NVARCHAR(3),
@nazev1 NVARCHAR(100)
IF OBJECT_ID(N'tempdb..#HDCTabDefiniceProP01', N'U') IS NOT NULL
SELECT TOP(1) @sklMatHlavni=HlavniSkladMat, @sklPekarna=SkladVyrobaPekarna, @sklTechnolog=TechnologickySklad FROM #HDCTabDefiniceProP01
IF (@sklMatHlavni IS NULL)
SELECT @sklMatHlavni=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavn<EFBFBD> sklad - Materi<72>l'
IF (@sklTechnolog IS NULL)
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%ne<6E><65>%' AND CisloStr LIKE N'2%'
IF (@sklPekarna IS NULL)
SELECT @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'V<EFBFBD>roba - Pek<65>rna'
DROP TABLE IF EXISTS #HDCTabDefiniceProP01
SELECT @dpz=DruhPohybuZbo, @radaDokl=RadaDokladu, @idSklad=IDSklad, @vstC=VstupniCena, @dzMena=Mena, @dzKurz=Kurz, @dzKurzE=KurzEuro,
@jednM=JednotkaMeny, @cOrg=CisloOrg, @dzDatum=DatPorizeni, @datReal=DatRealizace
FROM dbo.TabDokladyZbozi WHERE ID=@IDDoklad
MERGE dbo._hdc_PZ_PuvodniVC AS T
USING dbo.TabPohybyZbozi AS S ON (S.ID=T.IDPohybZbozi)
WHEN MATCHED AND T.IDDoklad IS NULL THEN UPDATE SET T.IDDoklad=S.IDDoklad;
-- na hlavnim sklade - prijemky a storna prijmu na hlavnim skladu - kopie puvodnich VC
IF (@radaDokl IN (N'251', N'259', N'261', N'269')) AND (@idSklad=@sklMatHlavni)
BEGIN
INSERT dbo._hdc_PZ_PuvodniVC (IDPohybZbozi, IDDoklad, IDZboSklad, VyrCis, IDVyrCis, Mnozstvi, Sarze, PaletovyList, IDUmisteni)
SELECT p.ID, p.IDDoklad, p.IDZboSklad, vcp.Nazev, vcp.IDVyrCis, vcp.Mnozstvi, vcp.Nazev, vcs.Nazev1, p.IDUmisteni
FROM dbo.TabPohybyZbozi p
INNER JOIN dbo.TabVyrCP vcp ON (vcp.IDPolozkaDokladu=p.ID)
INNER JOIN dbo.TabVyrCS vcs ON (vcs.ID=vcp.IDVyrCis)
WHERE p.IDDoklad=@IDDoklad
ORDER BY p.Poradi, vcp.ID
-- smaz vyrobni cisla, jejich evidenci vede ProHolding
DELETE FROM dbo.TabVyrCP WHERE IDPolozkaDokladu IN (SELECT ID FROM dbo.TabPohybyZbozi WHERE IDDoklad=@IDDoklad)
SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabVyrCP), 0)
DBCC CHECKIDENT (TabVyrCP, RESEED, @iTemp)
END
-- prevodka/prijemka na sklad Pekarna
-- zapis posledni prevedene sarze
IF (@dpz=0) AND (@radaDokl=N'281')
BEGIN
DECLARE p CURSOR LOCAL FOR
SELECT p.ID, p.IDZboSklad, s.IDKmenZbozi, p.IDOldPolozka
FROM dbo.TabPohybyZbozi p
INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad)
INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi)
WHERE p.IDDoklad=@IDDoklad
AND k.Sluzba=0
ORDER BY p.Poradi
OPEN p
WHILE (1=1)
BEGIN
FETCH NEXT FROM p INTO @idPZ, @idSS, @idKZ, @idPZOld
IF (@@FETCH_STATUS<>0) BREAK
SET @vyrCis = (SELECT ISNULL(peN._Vyroba_Sarze, peO._Vyroba_Sarze)
FROM dbo.TabPohybyZbozi_EXT peN, dbo.TabPohybyZbozi_EXT peO WHERE peN.ID=@idPZ AND peO.ID=@idPZOld)
IF (@vyrCis IS NOT NULL)
BEGIN
IF NOT EXISTS(SELECT 1 FROM dbo.TabPohybyZbozi_EXT WHERE ID=@idPZ)
INSERT dbo.TabPohybyZbozi_EXT (ID) VALUES (@idPZ)
UPDATE dbo.TabPohybyZbozi_EXT SET _Vyroba_Sarze=@vyrCis WHERE ID=@idPZ
END
-- zapis posledni prevedenou sarzi
IF NOT EXISTS(SELECT 1 FROM dbo.TabStavSkladu_EXT WHERE ID=@idSS)
INSERT dbo.TabStavSkladu_EXT (ID) VALUES (@idSS)
UPDATE dbo.TabStavSkladu_EXT SET _Prevod_PosledniSarze=@vyrCis WHERE ID=@idSS
SET @popisVC = (SELECT ISNULL(peN._Vyroba_PaletList, peO._Vyroba_PaletList)
FROM dbo.TabPohybyZbozi_EXT peN, dbo.TabPohybyZbozi_EXT peO WHERE peN.ID=@idPZ AND peO.ID=@idPZOld)
IF (@popisVC IS NOT NULL)
BEGIN
IF NOT EXISTS(SELECT 1 FROM dbo.TabPohybyZbozi_EXT WHERE ID=@idPZ)
INSERT dbo.TabPohybyZbozi_EXT (ID) VALUES (@idPZ)
UPDATE dbo.TabPohybyZbozi_EXT SET _Vyroba_PaletList=@popisVC WHERE ID=@idPZ
END
SET @moukaSilo = (SELECT ISNULL(peN._Mouka_Silo, peO._Mouka_Silo)
FROM dbo.TabPohybyZbozi_EXT peN, dbo.TabPohybyZbozi_EXT peO WHERE peN.ID=@idPZ AND peO.ID=@idPZOld)
IF (@moukaSilo IS NOT NULL)
BEGIN
IF NOT EXISTS(SELECT 1 FROM dbo.TabPohybyZbozi_EXT WHERE ID=@idPZ)
INSERT dbo.TabPohybyZbozi_EXT (ID) VALUES (@idPZ)
UPDATE dbo.TabPohybyZbozi_EXT SET _Mouka_Silo=@moukaSilo WHERE ID=@idPZ
END
END
CLOSE p
DEALLOCATE p
END -- @radaDokl 281

67
_sql/ep_P03.sql Normal file
View File

@ -0,0 +1,67 @@
/* HELIOS iNuvio | NTB-T | 2024-06-04 11:20:15 */
SET NOCOUNT ON
DECLARE @GUID BINARY(16),@Id INT,@Popis NVARCHAR(255),@UP NVARCHAR(255),@Parametry NVARCHAR(255),@IdBrowse INT,@Poznamka NVARCHAR(MAX),@Autor NVARCHAR(255),@DatPorizeni DATETIME,@Zmenil NVARCHAR(255),@DatZmeny DATETIME,@ParamHe INT,@Typ INT,@BidNavBrowse INT,@TextNavBrowse INT,@ZobrUkonceni BIT,@VerejnaAkce BIT,@ObnovitPoUkonceni BIT,@eServer BIT, @ZobrazitEditorPar BIT, @ObsluznyPlugin NVARCHAR(255),
@BlokovaniEditoru SMALLINT,@TextBrowse INT,@CyklickyEditor BIT,@SelectoTvurceVlastnikId BIT,@VstupneID NVARCHAR(255),@PosunPoZaznamech INT,@TechnickyPopis NVARCHAR(MAX),@Napoveda NVARCHAR(255),@Hotkey INT,@NavaznaAkce INT,@NavaznaAkceGUID BINARY(16),@Skupina NVARCHAR(255),@NazevPodmenu NVARCHAR(255),@PoradiVPodmenu INT,@err NVARCHAR(2047),@IdExtKom INT,@GUIDFiltr BINARY(16),@IDFiltr INT,@ErrStr NVARCHAR(2047),@SkriptPredSpustenim NVARCHAR(MAX),@Automatizace BIT
SELECT @Id=9998, @Popis=N'Spec - realizace p<><70>jemky (p<>ed)', @UP=N'dbo.ep_P03', @Parametry=N'', @IdBrowse=990990
SELECT @Poznamka=N'CREATE PROCEDURE dbo.ep_P03
@IDDoklad INT
AS
-- p<>ed realizaci prijemky, po standardnich kontrolach, bezi uz v triggeru
SET NOCOUNT ON
DECLARE
@rada NVARCHAR(3),
@idSklad NVARCHAR(30)
SELECT @rada=RadaDokladu, @idSklad=IDSklad
FROM dbo.TabDokladyZbozi WHERE ID=@IDDoklad
-- pro reseni HDC Strakonice, moznost dalsi slepe procedury
IF OBJECT_ID(N''dbo.ep_P03_HDC1'', N''P'') IS NOT NULL
EXEC sp_executesql N''EXEC dbo.ep_P03_HDC1 @IDDoklad'', N''@IDDoklad INT'', @IDDoklad
-- pro reseni HDC Strakonice, moznost dalsi slepe procedury pro API
IF OBJECT_ID(N''dbo.ep_P03_HDCDZApi1'', N''P'') IS NOT NULL
EXEC sp_executesql N''EXEC dbo.ep_P03_HDCDZApi1 @IDDoklad'', N''@IDDoklad INT'', @IDDoklad
'
SELECT @Autor=N'Import HDC',@DatPorizeni='20240604 11:20:15.450',@Zmenil=NULL,@DatZmeny=NULL,@ParamHe=0,@Typ=0,@BidNavBrowse=NULL,@TextNavBrowse=NULL,@ZobrUkonceni=0,@VerejnaAkce=0
SELECT @NavaznaAkceGUID=CAST(NULL AS UNIQUEIDENTIFIER),@BlokovaniEditoru=NULL,@TextBrowse=990990,@CyklickyEditor=0,@SelectoTvurceVlastnikId=0,@VstupneID=NULL,@TechnickyPopis=NULL
SELECT @Napoveda=NULL,@Hotkey=0,@GUID=CAST(N'36FB0DA8-4645-4853-9684-71E17897692A' AS UNIQUEIDENTIFIER),@Skupina=N'',@NazevPodmenu=N'',@PoradiVPodmenu=0,@GUIDFiltr=CAST(NULL AS UNIQUEIDENTIFIER)
SELECT @eServer=0,@ZobrazitEditorPar=1,@ObsluznyPlugin=N'',@PosunPoZaznamech=0,@ObnovitPoUkonceni=1,@SkriptPredSpustenim=NULL,@Automatizace=0
SET @NavaznaAkce = NULL
SET @IDFiltr = NULL
IF NOT EXISTS(SELECT * FROM dbo.TabExtKom WHERE [UP]=N'dbo.ep_P03')
INSERT dbo.TabExtKom ([GUID], Popis, [UP], Parametry, IdBrowse, Poznamka, Autor,
DatPorizeni, Zmenil, DatZmeny, ParamHe, Typ, BidNavBrowse, TextNavBrowse,
ZobrUkonceni, VerejnaAkce, BlokovaniEditoru, TextBrowse, CyklickyEditor,
SelectoTvurceVlastnikId, VstupneID, TechnickyPopis, Napoveda, Hotkey,
NavaznaAkce, Skupina, NazevPodmenu, PoradiVPodmenu, IDFiltr,
eServer, ZobrazitEditorPar, ObsluznyPlugin, PosunPoZaznamech,
ObnovitPoUkonceni, SkriptPredSpustenim, Automatizace)
VALUES (@GUID, @Popis, @UP, @Parametry, @IdBrowse, @Poznamka, @Autor, @DatPorizeni,
@Zmenil, @DatZmeny, @ParamHe, @Typ, @BidNavBrowse, @TextNavBrowse, @ZobrUkonceni,
@VerejnaAkce, @BlokovaniEditoru, @TextBrowse, @CyklickyEditor, @SelectoTvurceVlastnikId,
@VstupneID, @TechnickyPopis, @Napoveda, @Hotkey, @NavaznaAkce, @Skupina, @NazevPodmenu,
@PoradiVPodmenu, @IDFiltr, @eServer, @ZobrazitEditorPar, @ObsluznyPlugin, @PosunPoZaznamech,
@ObnovitPoUkonceni, @SkriptPredSpustenim, @Automatizace)
SET @IdExtKom=(SELECT Id FROM dbo.TabExtKom WHERE GUID=@GUID)
DELETE dbo.TabExtKomPar WHERE IdExtKom=@IdExtKom
IF OBJECT_ID(N'dbo.ep_P03', N'P') IS NULL
EXEC sp_executesql @Poznamka

170
_sql/ep_P03_HDC1.sql Normal file
View File

@ -0,0 +1,170 @@
-- dbo.ep_P03_HDC1
CREATE PROCEDURE dbo.ep_P03_HDC1
@IDDoklad INT
AS
-- HD Consulting Strakonice, T. Buzin
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu pluginu pro pekarnu nebo Windows sluzby HDCDZApi !!
-- vol<6F> se p<>ed realizac<61> p<><70>jemky, po standardn<64>ch kontrol<6F>ch, b<><62><EFBFBD> u<> v triggeru
SET NOCOUNT ON
DECLARE
@errMsg NVARCHAR(500),
@iTemp INT
DECLARE
@rada NVARCHAR(3),
@idSklad NVARCHAR(30),
@sklMatHlavni NVARCHAR(30)=N'311',
@sklPekarna NVARCHAR(30)=N'211',
@sklTechnolog NVARCHAR(30),
@idPZ INT,
@idSS INT,
@idKZ INT,
@poslVyrCis NVARCHAR(100),
@idVCP INT,
@vyrCis NVARCHAR(100),
@siloMouka SMALLINT
IF OBJECT_ID(N'tempdb..#TabExtKom', N'U') IS NULL
CREATE TABLE #TabExtKom (Typ TINYINT, Poznamka NVARCHAR(255) )
IF OBJECT_ID(N'tempdb..#TabDefiniceProP03', N'U') IS NOT NULL
SELECT TOP(1) @sklMatHlavni=HlavniSkladMat, @sklPekarna=SkladVyrobaPekarna, @sklTechnolog=TechnologickySklad FROM #TabDefiniceProP03
IF (@sklMatHlavni IS NULL)
SELECT @sklMatHlavni=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavn<EFBFBD> sklad - Materi<72>l'
IF (@sklTechnolog IS NULL)
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%ne<6E><65>%' AND CisloStr LIKE N'2%'
IF (@sklPekarna IS NULL)
SELECT @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'V<EFBFBD>roba - Pek<65>rna'
DROP TABLE IF EXISTS #TabDefiniceProP03
SELECT @rada=RadaDokladu, @idSklad=IDSklad
FROM dbo.TabDokladyZbozi WHERE ID=@IDDoklad
-- prijemka/prevodka na sklad Pekarna, zkontroluj zda mouka ma umisteni (ext.info pohybu OZ)
IF (@rada IN (N'251', N'261', N'281')) AND (@idSklad=@sklPekarna)
BEGIN
IF EXISTS(SELECT 1 FROM dbo.TabPohybyZbozi p INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad) INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi)
WHERE p.IDDoklad=@IDDoklad AND k.SkupZbo=N'101' AND k.Nazev1 LIKE N'%mouka%' AND p.IDUmisteni IS NULL)
BEGIN
SET @errMsg = N'Mouka zadan<61> na p<><70>jemce mus<75> m<>t zad<61>no um<75>st<73>n<EFBFBD> (Silo) ! (ep_P03)'
INSERT #TabExtKom (Typ, Poznamka) SELECT 3, LEFT(@errMsg, 255)
RAISERROR (@errMsg, 16, 1)
END
-- zapis posledni prevedene sarze na skladovou kartu skladu Pekarna
DECLARE p CURSOR LOCAL FOR
SELECT p.ID, p.IDZboSklad, s.IDKmenZbozi
FROM dbo.TabPohybyZbozi p
INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad)
INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi)
WHERE p.IDDoklad=@IDDoklad
AND k.Sluzba=0
ORDER BY p.Poradi
OPEN p
WHILE (1=1)
BEGIN
FETCH NEXT FROM p INTO @idPZ, @idSS, @idKZ
IF (@@FETCH_STATUS<>0) BREAK
SET @poslVyrCis = N''
DECLARE v CURSOR LOCAL FOR
SELECT ID, Nazev
FROM dbo.TabVyrCP
WHERE IDPolozkaDokladu=@idPZ
AND TRIM(ISNULL(Nazev,N''))<>N''
ORDER BY ID
OPEN v
WHILE (1=1)
BEGIN
FETCH NEXT FROM v INTO @idVCP, @vyrCis
IF (@@FETCH_STATUS<>0) BREAK
SET @poslVyrCis = @vyrCis
END
CLOSE v
DEALLOCATE v
IF (@poslVyrCis<>N'')
BEGIN
IF NOT EXISTS(SELECT 1 FROM dbo.TabStavSkladu_EXT WHERE ID=@idSS)
INSERT dbo.TabStavSkladu_EXT (ID) VALUES (@idSS)
UPDATE dbo.TabStavSkladu_EXT SET _Prevod_PosledniSarze=@poslVyrCis WHERE ID=@idSS
END
END
CLOSE p
DEALLOCATE p
DECLARE c CURSOR LOCAL FOR
SELECT p.ID, CONVERT(smallint, u.Kod)
FROM dbo.TabPohybyZbozi p
INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad)
INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi)
INNER JOIN dbo.TabUmisteni u ON (u.ID=p.IDUmisteni)
WHERE p.IDDoklad=@IDDoklad AND k.SkupZbo=N'101' AND k.Nazev1 LIKE N'%mouka%' AND p.IDUmisteni IS NOT NULL
OPEN c
WHILE (1=1)
BEGIN
FETCH NEXT FROM c INTO @idPZ, @siloMouka
IF (@@FETCH_STATUS<>0) BREAK
IF NOT EXISTS(SELECT 1 FROM dbo.TabPohybyZbozi_EXT WHERE ID=@idPZ)
INSERT dbo.TabPohybyZbozi_EXT (ID) VALUES (@idPZ)
UPDATE dbo.TabPohybyZbozi_EXT SET _Mouka_Silo=@siloMouka WHERE ID=@idPZ
END
CLOSE c
DEALLOCATE c
-- pro info zapis informaci o prevadenych VC
INSERT dbo._hdc_PZ_PuvodniVC (IDPohybZbozi, IDDoklad, IDZboSklad, VyrCis, IDVyrCis, Mnozstvi, Sarze, PaletovyList, IDUmisteni)
SELECT p.ID, p.IDDoklad, p.IDZboSklad, vcp.Nazev, vcp.IDVyrCis, vcp.Mnozstvi, vcp.Nazev, vcs.Nazev1, p.IDUmisteni
FROM dbo.TabPohybyZbozi p
INNER JOIN dbo.TabVyrCP vcp ON (vcp.IDPolozkaDokladu=p.ID)
INNER JOIN dbo.TabVyrCS vcs ON (vcs.ID=vcp.IDVyrCis)
WHERE p.IDDoklad=@IDDoklad
ORDER BY p.Poradi, vcp.ID
-- odstran umisteni, delalo by problem pri vydeji
UPDATE dbo.TabPohybyZbozi SET IDUmisteni=NULL WHERE IDDoklad=@IDDoklad
-- smaz vyrobni cisla, jejich evidenci vede ProHolding
DELETE FROM dbo.TabVyrCP WHERE IDPolozkaDokladu IN (SELECT ID FROM dbo.TabPohybyZbozi WHERE IDDoklad=@IDDoklad)
SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabVyrCP), 0)
DBCC CHECKIDENT (TabVyrCP, RESEED, @iTemp)
END
-- prijemky a storna na hlavni sklad
IF (@rada IN (N'251', N'259', N'261', N'269')) AND (@idSklad=@sklMatHlavni)
BEGIN
INSERT dbo._hdc_PZ_PuvodniVC (IDPohybZbozi, IDDoklad, IDZboSklad, VyrCis, IDVyrCis, Mnozstvi, Sarze, PaletovyList, IDUmisteni)
SELECT p.ID, p.IDDoklad, p.IDZboSklad, vcp.Nazev, vcp.IDVyrCis, vcp.Mnozstvi, vcp.Nazev, vcs.Nazev1, p.IDUmisteni
FROM dbo.TabPohybyZbozi p
INNER JOIN dbo.TabVyrCP vcp ON (vcp.IDPolozkaDokladu=p.ID)
INNER JOIN dbo.TabVyrCS vcs ON (vcs.ID=vcp.IDVyrCis)
WHERE p.IDDoklad=@IDDoklad
ORDER BY p.Poradi, vcp.ID
-- odstran umisteni, delalo by problem pri vydeji
UPDATE dbo.TabPohybyZbozi SET IDUmisteni=NULL WHERE IDDoklad=@IDDoklad
-- smaz vyrobni cisla, jejich evidenci vede ProHolding
DELETE FROM dbo.TabVyrCP WHERE IDPolozkaDokladu IN (SELECT ID FROM dbo.TabPohybyZbozi WHERE IDDoklad=@IDDoklad)
SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabVyrCP), 0)
DBCC CHECKIDENT (TabVyrCP, RESEED, @iTemp)
END

68
_sql/ep_V01.sql Normal file
View File

@ -0,0 +1,68 @@
/* HELIOS iNuvio | NTB-T.Rootvin | 2024-09-18 09:28:15 */
DECLARE @GUID BINARY(16),@Id INT,@Popis NVARCHAR(255),@UP NVARCHAR(255),@Parametry NVARCHAR(255),@IdBrowse INT,@Poznamka NVARCHAR(MAX),@Autor NVARCHAR(255),@DatPorizeni DATETIME,@Zmenil NVARCHAR(255),@DatZmeny DATETIME,@ParamHe INT,@Typ INT,@BidNavBrowse INT,@TextNavBrowse INT,@ZobrUkonceni BIT,@VerejnaAkce BIT,@ObnovitPoUkonceni BIT,@eServer BIT, @ZobrazitEditorPar BIT, @ObsluznyPlugin NVARCHAR(255),
@BlokovaniEditoru SMALLINT,@TextBrowse INT,@CyklickyEditor BIT,@SelectoTvurceVlastnikId BIT,@VstupneID NVARCHAR(255),@PosunPoZaznamech INT,@TechnickyPopis NVARCHAR(MAX),@Napoveda NVARCHAR(255),@Hotkey INT,@NavaznaAkce INT,@NavaznaAkceGUID BINARY(16),@Skupina NVARCHAR(255),@NazevPodmenu NVARCHAR(255),@PoradiVPodmenu INT,@err NVARCHAR(2047),@IdExtKom INT,@GUIDFiltr BINARY(16),@IDFiltr INT,@ErrStr NVARCHAR(2047),@SkriptPredSpustenim NVARCHAR(MAX),@Automatizace BIT
SELECT @Id=6,@Popis=N'Spec - realizace v<>dejky (po)',@UP=N'dbo.ep_V01',@Parametry=N'',@IdBrowse=990990,@Poznamka=N'CREATE PROCEDURE dbo.ep_V01
@IDDoklad INT
AS
SET NOCOUNT ON
-- dopln<6C>k realizace skladov<6F>ch v<>dej<65>. Vol<6F> se na konci procesu realizace v<>dej<65>. Vstupn<70> parametr ID dokladu, v<>stup nen<65>.
DECLARE
@rada NVARCHAR(3),
@idSklad NVARCHAR(30)
SELECT @rada=RadaDokladu, @idSklad=IDSklad
FROM dbo.TabDokladyZbozi WHERE ID=@IDDoklad
-- pro reseni HDC Strakonice, moznost dalsi slepe procedury
IF OBJECT_ID(N''dbo.ep_V01_HDC1'', N''P'') IS NOT NULL
EXEC sp_executesql N''EXEC dbo.ep_V01_HDC1 @IDDoklad'', N''@IDDoklad INT'', @IDDoklad
',@Autor=N'Import HDC',@DatPorizeni='20240918 09:23:37.193',@Zmenil=NULL,@DatZmeny=NULL,@ParamHe=0,@Typ=0,@BidNavBrowse=NULL,@TextNavBrowse=NULL,@ZobrUkonceni=0,@VerejnaAkce=0,@NavaznaAkceGUID=CAST(NULL AS UNIQUEIDENTIFIER),@BlokovaniEditoru=NULL,@TextBrowse=990990,@CyklickyEditor=0,@SelectoTvurceVlastnikId=0,@VstupneID=NULL,@TechnickyPopis=NULL,@Napoveda=NULL,@Hotkey=0,@GUID=CAST(N'5C642FF2-6E25-4FD8-AB32-F27EC5B249A3' AS UNIQUEIDENTIFIER),@Skupina=N'',@NazevPodmenu=N'',@PoradiVPodmenu=0,@GUIDFiltr=CAST(NULL AS UNIQUEIDENTIFIER),@eServer=0,@ZobrazitEditorPar=1,@ObsluznyPlugin=N'',@PosunPoZaznamech=0,@ObnovitPoUkonceni=0,@SkriptPredSpustenim=NULL,@Automatizace=0
IF @NavaznaAkceGUID IS NULL
SET @NavaznaAkce = NULL
ELSE
BEGIN
SET @NavaznaAkce=(SELECT Id FROM dbo.TabExtKom WHERE GUID=@NavaznaAkceGUID)
IF @NavaznaAkce IS NULL
BEGIN
SET @err=CAST(CAST(@NavaznaAkceGUID AS UNIQUEIDENTIFIER)AS NVARCHAR(36))
SET @ErrStr = dbo.hf_FormatError(75037, @err)
RAISERROR(@ErrStr, 16, 1)
RETURN
END
END
IF @GUIDFiltr IS NULL
SET @IDFiltr = NULL
ELSE
SELECT @IDFiltr = ID FROM TabFiltr WHERE GUID = @GUIDFiltr
IF NOT EXISTS(SELECT * FROM dbo.TabExtKom WHERE [UP]=N'dbo.ep_V01')
INSERT dbo.TabExtKom (GUID,Popis,UP,Parametry,IdBrowse,Poznamka,Autor,
DatPorizeni,Zmenil,DatZmeny,ParamHe,Typ,BidNavBrowse,TextNavBrowse,
ZobrUkonceni,VerejnaAkce,BlokovaniEditoru,TextBrowse,CyklickyEditor,
SelectoTvurceVlastnikId,VstupneID,TechnickyPopis,Napoveda,Hotkey,
NavaznaAkce,Skupina,NazevPodmenu,PoradiVPodmenu,IDFiltr,
eServer, ZobrazitEditorPar, ObsluznyPlugin, PosunPoZaznamech,
ObnovitPoUkonceni,SkriptPredSpustenim,Automatizace)
VALUES (@GUID,@Popis,@UP,@Parametry,@IdBrowse,@Poznamka,@Autor,@DatPorizeni,
@Zmenil,@DatZmeny,@ParamHe,@Typ,@BidNavBrowse,@TextNavBrowse,@ZobrUkonceni,
@VerejnaAkce,@BlokovaniEditoru,@TextBrowse,@CyklickyEditor,@SelectoTvurceVlastnikId,
@VstupneID,@TechnickyPopis,@Napoveda,@Hotkey,@NavaznaAkce,@Skupina,@NazevPodmenu,
@PoradiVPodmenu,@IDFiltr,@eServer,@ZobrazitEditorPar,@ObsluznyPlugin,@PosunPoZaznamech,
@ObnovitPoUkonceni,@SkriptPredSpustenim,@Automatizace)
SET @IdExtKom=(SELECT Id FROM dbo.TabExtKom WHERE GUID=@GUID)
DELETE dbo.TabExtKomPar WHERE IdExtKom=@IdExtKom
IF OBJECT_ID(N'dbo.ep_V01', N'P') IS NULL
EXEC sp_executesql @Poznamka

93
_sql/ep_V01_HDC1.sql Normal file
View File

@ -0,0 +1,93 @@
-- dbo.ep_V01_HDC1
CREATE PROCEDURE dbo.ep_V01_HDC1
@IDDoklad INT=NULL
AS
SET NOCOUNT ON
-- HD Consulting Strakonice, T. Buzin
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu pluginu pro pekarnu nebo Windows sluzby HDCDZApi !!
-- dopln<6C>k realizace skladov<6F>ch v<>dej<65>. Vol<6F> se na konci procesu realizace v<>dej<65>. Vstupn<70> parametr ID dokladu, v<>stup nen<65>.
IF (@IDDoklad IS NULL) -- jistota je jistota
RETURN
DECLARE
@errMsg NVARCHAR(500),
@iTemp INT,
@bChyba BIT,
@iChyba INT
DECLARE
@rada NVARCHAR(3),
@dpz TINYINT,
@idSklad NVARCHAR(30),
@radaPrev NVARCHAR(3),
@idSkladPrev NVARCHAR(30),
@sklMatHlavni NVARCHAR(30)=N'311',
@sklPekarna NVARCHAR(30)=N'211',
@sklTechnolog NVARCHAR(30),
@paletList NVARCHAR(100),
@sarze NVARCHAR(100),
@siloMouka SMALLINT,
@idPZ INT,
@idPZNew INT
IF OBJECT_ID(N'tempdb..#TabExtKom', N'U') IS NULL
CREATE TABLE #TabExtKom (Typ TINYINT, Poznamka NVARCHAR(255) )
IF OBJECT_ID(N'tempdb..#HDCTabDefiniceProV01', N'U') IS NOT NULL
SELECT TOP(1) @sklMatHlavni=HlavniSkladMat, @sklPekarna=SkladVyrobaPekarna, @sklTechnolog=TechnologickySklad FROM #HDCTabDefiniceProV01
IF (@sklMatHlavni IS NULL)
SELECT @sklMatHlavni=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavn<EFBFBD> sklad - Materi<72>l'
IF (@sklTechnolog IS NULL)
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%ne<6E><65>%' AND CisloStr LIKE N'2%'
IF (@sklPekarna IS NULL)
SELECT @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'V<EFBFBD>roba - Pek<65>rna'
DROP TABLE IF EXISTS #HDCTabDefiniceProV01
SELECT @rada=RadaDokladu, @idSklad=IDSklad, @dpz=DruhPohybuZbo, @idSkladPrev=IdSkladPrevodu, @radaPrev=TypPrevodky
FROM dbo.TabDokladyZbozi WHERE ID=@IDDoklad
-- pri prevodce na polozky nasledujici prijemky zapis sarzi/paletovy list/cislo sila u mouky
IF (@rada=N'231') AND (@idSklad=@sklMatHlavni) AND (@radaPrev=N'281') AND (@idSkladPrev=@sklPekarna)
BEGIN
DECLARE c CURSOR LOCAL FOR
SELECT p.ID, pe._Vyroba_Sarze, pe._Vyroba_PaletList, pe._Mouka_Silo
FROM dbo.TabPohybyZbozi p
INNER JOIN dbo.TabPohybyZbozi_EXT pe ON (pe.ID=p.ID)
INNER JOIN dbo.TabDokladyZbozi d ON (d.ID=p.IDDoklad)
WHERE p.IDDoklad=@IDDoklad
AND d.RadaDokladu=N'231'
OPEN c
WHILE (1=1)
BEGIN
FETCH NEXT FROM c INTO @idPZ, @sarze, @paletList, @siloMouka
IF (@@FETCH_STATUS<>0) BREAK
-- dohledej polozku "protilehle" prijemky
SET @idPZNew = (SELECT TOP(1) p.ID FROM dbo.TabPohybyZbozi p INNER JOIN dbo.TabDokladyZbozi d ON (d.ID=p.IDDoklad)
WHERE d.RadaDokladu=N'281' AND d.DruhPohybuZbo=0 AND p.IDOldPolozka=@idPZ)
IF (@idPZNew IS NOT NULL)
BEGIN
IF NOT EXISTS(SELECT 1 FROM dbo.TabPohybyZbozi_EXT WHERE ID=@idPZNew)
INSERT dbo.TabPohybyZbozi_EXT (ID) VALUES (@idPZNew)
UPDATE dbo.TabPohybyZbozi_EXT SET _Vyroba_Sarze=@sarze, _Vyroba_PaletList=@paletList, _Mouka_Silo=@siloMouka WHERE ID=@idPZNew
END
END
CLOSE c
DEALLOCATE c
END -- vydejka/prevodka 231 z hlavniho skladu na pekarnu

67
_sql/ep_V03.sql Normal file
View File

@ -0,0 +1,67 @@
SET NOCOUNT ON
DECLARE @GUID BINARY(16),@Id INT,@Popis NVARCHAR(255),@UP NVARCHAR(255),@Parametry NVARCHAR(255),@IdBrowse INT,@Poznamka NVARCHAR(MAX),@Autor NVARCHAR(255),@DatPorizeni DATETIME,@Zmenil NVARCHAR(255),@DatZmeny DATETIME,@ParamHe INT,@Typ INT,@BidNavBrowse INT,@TextNavBrowse INT,@ZobrUkonceni BIT,@VerejnaAkce BIT,@ObnovitPoUkonceni BIT,@eServer BIT, @ZobrazitEditorPar BIT, @ObsluznyPlugin NVARCHAR(255),
@BlokovaniEditoru SMALLINT,@TextBrowse INT,@CyklickyEditor BIT,@SelectoTvurceVlastnikId BIT,@VstupneID NVARCHAR(255),@PosunPoZaznamech INT,@TechnickyPopis NVARCHAR(MAX),@Napoveda NVARCHAR(255),@Hotkey INT,@NavaznaAkce INT,@NavaznaAkceGUID BINARY(16),@Skupina NVARCHAR(255),@NazevPodmenu NVARCHAR(255),@PoradiVPodmenu INT,@err NVARCHAR(2047),@IdExtKom INT,@GUIDFiltr BINARY(16),@IDFiltr INT,@ErrStr NVARCHAR(2047),@SkriptPredSpustenim NVARCHAR(MAX),@Automatizace BIT
SELECT @Id=9998, @Popis=N'Spec - realizace v<>dejky (p<>ed)', @UP=N'dbo.ep_V03', @Parametry=N'', @IdBrowse=990990
SELECT @Poznamka=N'CREATE PROCEDURE dbo.ep_V03
@IDDoklad INT=NULL
AS
-- doplnek realizace skladovych vydeju, vola se na zacatku transakce v prubehu procesu realizace vydeju
-- vstupni parametr @ID INT -- ID hlavicky realizovaneho dokladu; vystup neni
-- Pozadovana funkcnost: napr. doplneni vazby do vyroby a napocet NV
SET NOCOUNT ON
DECLARE
@rada NVARCHAR(3),
@idSklad NVARCHAR(30)
SELECT @rada=RadaDokladu, @idSklad=IDSklad
FROM dbo.TabDokladyZbozi WHERE ID=@IDDoklad
-- pro reseni HDC Strakonice, moznost dalsi slepe procedury
IF OBJECT_ID(N''dbo.ep_V03_HDC1'', N''P'') IS NOT NULL
EXEC sp_executesql N''EXEC dbo.ep_V03_HDC1 @IDDoklad'', N''@IDDoklad INT'', @IDDoklad
-- pro reseni HDC Strakonice, moznost dalsi slepe procedury pro API
IF OBJECT_ID(N''dbo.ep_V03_HDCDZApi1'', N''P'') IS NOT NULL
EXEC sp_executesql N''EXEC dbo.ep_V03_HDCDZApi1 @IDDoklad'', N''@IDDoklad INT'', @IDDoklad
'
SELECT @Autor=N'Import HDC',@DatPorizeni='20240822 11:20:15.450',@Zmenil=NULL,@DatZmeny=NULL,@ParamHe=0,@Typ=0,@BidNavBrowse=NULL,@TextNavBrowse=NULL,@ZobrUkonceni=0,@VerejnaAkce=0
SELECT @NavaznaAkceGUID=CAST(NULL AS UNIQUEIDENTIFIER),@BlokovaniEditoru=NULL,@TextBrowse=990990,@CyklickyEditor=0,@SelectoTvurceVlastnikId=0,@VstupneID=NULL,@TechnickyPopis=NULL
SELECT @Napoveda=NULL,@Hotkey=0,@GUID=CAST(N'CA4BC316-F9EB-4A68-B6D5-ED93911426E2' AS UNIQUEIDENTIFIER),@Skupina=N'',@NazevPodmenu=N'',@PoradiVPodmenu=0,@GUIDFiltr=CAST(NULL AS UNIQUEIDENTIFIER)
SELECT @eServer=0,@ZobrazitEditorPar=1,@ObsluznyPlugin=N'',@PosunPoZaznamech=0,@ObnovitPoUkonceni=1,@SkriptPredSpustenim=NULL,@Automatizace=0
SET @NavaznaAkce = NULL
SET @IDFiltr = NULL
IF NOT EXISTS(SELECT * FROM dbo.TabExtKom WHERE [UP]=N'dbo.ep_V03')
INSERT dbo.TabExtKom ([GUID], Popis, [UP], Parametry, IdBrowse, Poznamka, Autor,
DatPorizeni, Zmenil, DatZmeny, ParamHe, Typ, BidNavBrowse, TextNavBrowse,
ZobrUkonceni, VerejnaAkce, BlokovaniEditoru, TextBrowse, CyklickyEditor,
SelectoTvurceVlastnikId, VstupneID, TechnickyPopis, Napoveda, Hotkey,
NavaznaAkce, Skupina, NazevPodmenu, PoradiVPodmenu, IDFiltr,
eServer, ZobrazitEditorPar, ObsluznyPlugin, PosunPoZaznamech,
ObnovitPoUkonceni, SkriptPredSpustenim, Automatizace)
VALUES (@GUID, @Popis, @UP, @Parametry, @IdBrowse, @Poznamka, @Autor, @DatPorizeni,
@Zmenil, @DatZmeny, @ParamHe, @Typ, @BidNavBrowse, @TextNavBrowse, @ZobrUkonceni,
@VerejnaAkce, @BlokovaniEditoru, @TextBrowse, @CyklickyEditor, @SelectoTvurceVlastnikId,
@VstupneID, @TechnickyPopis, @Napoveda, @Hotkey, @NavaznaAkce, @Skupina, @NazevPodmenu,
@PoradiVPodmenu, @IDFiltr, @eServer, @ZobrazitEditorPar, @ObsluznyPlugin, @PosunPoZaznamech,
@ObnovitPoUkonceni, @SkriptPredSpustenim, @Automatizace)
SET @IdExtKom=(SELECT Id FROM dbo.TabExtKom WHERE GUID=@GUID)
DELETE dbo.TabExtKomPar WHERE IdExtKom=@IdExtKom
IF OBJECT_ID(N'dbo.ep_V03', N'P') IS NULL
EXEC sp_executesql @Poznamka

103
_sql/ep_V03_HDC1.sql Normal file
View File

@ -0,0 +1,103 @@
-- dbo.ep_V03_HDC1
CREATE PROCEDURE dbo.ep_V03_HDC1
@IDDoklad INT
AS
-- HD Consulting Strakonice, T. Buzin
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu pluginu pro pekarnu nebo Windows sluzby HDCDZApi !!
-- doplnek realizace skladov<6F>ch v<>deju, vola se na zacatku transakce v prubehu procesu realizace v<>deju
-- vstupni parametr @ID INT -- ID hlavicky realizovaneho dokladu; v<>stup neni
-- Pozadovana funkcnost: napr. doplneni vazby do vyroby a napocet NV.
SET NOCOUNT ON
DECLARE
@errMsg NVARCHAR(500),
@iTemp INT
DECLARE
@dpz TINYINT,
@rada NVARCHAR(3),
@idPZ INT,
@idSklad NVARCHAR(30),
@idSkladPrev NVARCHAR(30),
@radaPrev NVARCHAR(3),
@sklMatHlavni NVARCHAR(30)=N'311',
@sklPekarna NVARCHAR(30)=N'211',
@sklTechnolog NVARCHAR(30),
@paletList NVARCHAR(100),
@sarze NVARCHAR(100)
IF OBJECT_ID(N'tempdb..#TabExtKom', N'U') IS NULL
CREATE TABLE #TabExtKom (Typ TINYINT, Poznamka NVARCHAR(255) )
IF OBJECT_ID(N'tempdb..#HDCTabDefiniceProV03', N'U') IS NOT NULL
SELECT TOP(1) @sklMatHlavni=HlavniSkladMat, @sklPekarna=SkladVyrobaPekarna, @sklTechnolog=TechnologickySklad FROM #HDCTabDefiniceProV03
IF (@sklMatHlavni IS NULL)
SELECT @sklMatHlavni=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavn<EFBFBD> sklad - Materi<72>l'
IF (@sklTechnolog IS NULL)
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%ne<6E><65>%' AND CisloStr LIKE N'2%'
IF (@sklPekarna IS NULL)
SELECT @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'V<EFBFBD>roba - Pek<65>rna'
DROP TABLE IF EXISTS #HDCTabDefiniceProV03
SELECT @rada=RadaDokladu, @idSklad=IDSklad, @dpz=DruhPohybuZbo, @idSkladPrev=IdSkladPrevodu, @radaPrev=TypPrevodky
FROM dbo.TabDokladyZbozi WHERE ID=@IDDoklad
-- vydejka/prevodka na sklad Pekarna
IF (@rada IN (N'231')) AND (@idSklad=@sklMatHlavni) AND (@idSkladPrev=@sklPekarna) AND (@radaPrev=N'281')
BEGIN
-- zapis VC na externi info
DECLARE p CURSOR LOCAL FOR
SELECT p.ID, vcs.Nazev1, vcp.Nazev
FROM dbo.TabPohybyZbozi p
INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad)
INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi)
INNER JOIN dbo.TabVyrCP vcp ON (p.ID=vcp.IDPolozkaDokladu)
INNER JOIN dbo.TabVyrCS vcs ON (vcs.ID=vcp.IDVyrCis)
WHERE p.IDDoklad=@IDDoklad
AND k.Sluzba=0
ORDER BY p.Poradi
OPEN p
WHILE (1=1)
BEGIN
FETCH NEXT FROM p INTO @idPZ, @paletList, @sarze
IF (@@FETCH_STATUS<>0) BREAK
IF NOT EXISTS (SELECT 1 FROM dbo.TabPohybyZbozi_EXT WHERE ID=@idPZ)
INSERT dbo.TabPohybyZbozi_EXT (ID) VALUES (@idPZ)
UPDATE dbo.TabPohybyZbozi_EXT SET _Vyroba_Sarze=ISNULL(_Vyroba_Sarze, IIF(_Vyroba_Sarze IS NOT NULL, N',', N'') + @sarze) WHERE ID=@idPZ
UPDATE dbo.TabPohybyZbozi_EXT SET _Vyroba_PaletList=ISNULL(_Vyroba_PaletList, IIF(_Vyroba_PaletList IS NOT NULL, N',', N'') + @paletList) WHERE ID=@idPZ
END
CLOSE p
DEALLOCATE p
-- zapis do pomocne tabulky
INSERT dbo._hdc_PZ_PuvodniVC (IDPohybZbozi, IDDoklad, IDZboSklad, VyrCis, IDVyrCis, Mnozstvi, Sarze, PaletovyList, IDUmisteni)
SELECT p.ID, p.IDDoklad, p.IDZboSklad, vcp.Nazev, vcp.IDVyrCis, vcp.Mnozstvi, vcp.Nazev, vcs.Nazev1, p.IDUmisteni
FROM dbo.TabPohybyZbozi p
INNER JOIN dbo.TabVyrCP vcp ON (vcp.IDPolozkaDokladu=p.ID)
INNER JOIN dbo.TabVyrCS vcs ON (vcs.ID=vcp.IDVyrCis)
WHERE p.IDDoklad=@IDDoklad
ORDER BY p.Poradi, vcp.ID
-- odstran umisteni, delalo by problem pri vydeji
UPDATE dbo.TabPohybyZbozi SET IDUmisteni=NULL WHERE IDDoklad=@IDDoklad
-- smaz vyrobni cisla, jejich evidenci vede ProHolding
DELETE FROM dbo.TabVyrCP WHERE IDPolozkaDokladu IN (SELECT ID FROM dbo.TabPohybyZbozi WHERE IDDoklad=@IDDoklad)
SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabVyrCP), 0)
DBCC CHECKIDENT (TabVyrCP, RESEED, @iTemp)
END

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,832 @@
-- dbo.ep_Vyroba_Doklady_Micharna
CREATE PROCEDURE dbo.ep_Vyroba_Doklady_Micharna
@idJson INT=NULL
AS
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu pluginu PluginHDCRTN !!
SET NOCOUNT ON
DECLARE
@tranPred INT,
@cnt INT,
@errMsg NVARCHAR(500),
@bChyba BIT,
@iChyba INT,
@debugXml XML,
@aktDatum DATETIME,
@logTyp TINYINT,
@logText NVARCHAR(500),
@logInt INT,
@logStr NVARCHAR(255),
@log4Mail BIT=0
DECLARE
@jsonString NVARCHAR(MAX),
@jsonString2 NVARCHAR(MAX),
@typDokum NVARCHAR(50),
@subtypDokum NVARCHAR(50),
@akce NVARCHAR(50)
DECLARE
@cOrg INT,
@sklMat NVARCHAR(30),
@sklTechnicky NVARCHAR(30),
@sklPek NVARCHAR(30),
@radaTechVydej NVARCHAR(30)=N'222',
@radaDZVydejka NVARCHAR(3)=N'',
@radaDZPrevodV NVARCHAR(3)=N'',
@prevodka BIT=0,
@parZnak NVARCHAR(20)
DECLARE
@idPHIdent INT,
@idPHIdentBak INT,
@idPHIdent2 INT,
@idPHObj INT,
@idPHObjPol INT
DECLARE
@datPorizeni DATETIME,
@idVPr INT,
@radaVPr NVARCHAR(10),
@cisloPrikazu NVARCHAR(20),
@idVPrNizsi INT,
@radaVPrNizsi NVARCHAR(10),
@idVPrVyssi INT,
@radaVPrVyssi NVARCHAR(10),
@dilec INT,
@idZakazka INT,
@cisloZak NVARCHAR(30),
@casStart DATETIME,
@vyrobniDen DATETIME,
@smena TINYINT,
@casStartOld DATETIME,
@viskoz TINYINT,
@vodaLitry NUMERIC(12,3),
@moukaKgNorma NUMERIC(19,6),
@moukaKgFin NUMERIC(19,6),
@moukaSilo TINYINT,
@hmotTesta NUMERIC(19,6),
@idMzda INT,
@skCasSek INT,
@casKonec DATETIME,
@idSS INT,
@rDoklVyd NVARCHAR(3),
@idDZ INT,
@idDZDst INT,
@idPZ INT,
@datumDZ DATETIME,
@datReal DATETIME,
@menaDZ NVARCHAR(3),
@kurzDZ NUMERIC(19,6),
@kurzEDZ NUMERIC(19,6),
@dpz TINYINT,
@jednM INT,
@vstC TINYINT
DECLARE
@idPrKVazby INT,
@doklPrV INT,
@altPrV NCHAR(1),
@oper NVARCHAR(4),
@pozice NVARCHAR(100),
@idKZ INT,
@nazev1 NVARCHAR(100),
@idVCK INT,
@idVCS INT,
@idVCP INT,
@sz NVARCHAR(3),
@rc NVARCHAR(30),
@idUmist INT,
@sarze NVARCHAR(30),
@paletList NVARCHAR(30),
@mnozDilec NUMERIC(19,6),
@mnoz NUMERIC(19,6),
@mnoz2 NUMERIC(19,6),
@mnozVyd NUMERIC(19,6),
@mnozReq NUMERIC(19,6),
@mnozNew NUMERIC(19,6)
DECLARE
@idStartStopOp INT,
@idPracoviste INT,
@idPracovisteOld INT,
@idStroj INT,
@strojPec NVARCHAR(40),
@statusStroje NVARCHAR(50),
@idEvROp INT,
@idEvROpR INT,
@cisZam INT,
@idZam INT,
@doklPrP INT,
@altPrP NCHAR(1)
DECLARE @TabPHObj TABLE (ID INT NOT NULL, IDPHIdent INT )
DECLARE @PrKVazby TABLE (ID INT NOT NULL, Sklad NVARCHAR(30) )
-- vytvor pomocnou tabulku
IF OBJECT_ID(N'tempdb..#TabJSONData', N'U') IS NOT NULL
DROP TABLE #TabJSONData
CREATE TABLE #TabJSONData (ID INT IDENTITY(1,1) NOT NULL, doc NVARCHAR(max))
IF OBJECT_ID(N'tempdb..#TabDefiniceProMicharnu', N'U') IS NOT NULL
SELECT TOP(1) @sklMat=HlavniSkladMat, @sklPek=SkladVyrobaPekarna, @sklTechnicky=TechnologickySklad, @radaTechVydej=RadaTechnologickyVydej
FROM #TabDefiniceProMicharnu
IF (@sklMat IS NULL)
SELECT @sklMat=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavn<EFBFBD> sklad - Materi<72>l'
IF (@sklTechnicky IS NULL)
SELECT @sklTechnicky=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%ne<6E><65>%'
IF (@sklPek IS NULL)
SELECT @sklPek=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'V<EFBFBD>roba - Pek<65>rna'
IF (@sklTechnicky IS NULL) AND (@sklPek IS NOT NULL)
SET @sklTechnicky=@sklPek
DROP TABLE IF EXISTS #TabDefiniceProMicharnu
IF (@radaTechVydej IS NOT NULL)
SET @radaDZVydejka = @radaTechVydej
IF (@idJson IS NULL)
DECLARE j CURSOR LOCAL FOR
SELECT ID, JSONData, Akce
FROM dbo._hdc_ph_PrijataJsonData
WHERE DatZpracovani IS NULL
AND ISNULL(JSONData, N'')<>N''
ORDER BY DatPorizeni ASC
ELSE
DECLARE j CURSOR LOCAL FOR
SELECT ID, JSONData, Akce
FROM dbo._hdc_ph_PrijataJsonData
WHERE ID=@idJson
OPEN j
WHILE (1=1)
BEGIN
FETCH NEXT FROM j INTO @idJson, @jsonString, @akce
IF (@@FETCH_STATUS<>0) BREAK
IF (ISJSON(@jsonString)=0)
CONTINUE
IF ISNULL( (SELECT COUNT(ID) FROM dbo._hdc_ph_Log WHERE IdJsonData=@idJson), 0)>=3
BEGIN
IF EXISTS(SELECT 1 FROM dbo._hdc_ph_PrijataJsonData WHERE ID=@idJson AND ISNULL(PosledniChyba,N'')=N'')
UPDATE dbo._hdc_ph_PrijataJsonData SET PosledniChyba=(SELECT TOP(1) LogText FROM dbo._hdc_ph_Log WHERE IdJsonData=@idJson ORDER BY DatPorizeni DESC) WHERE ID=@idJson
CONTINUE
END
SET @logTyp = 0
SET @logInt = NULL
SET @logStr = N''
SET @log4Mail = 0
SET @logText = N''
BEGIN TRY
SET @tranPred = @@TRANCOUNT
IF (@tranPred=0)
BEGIN TRAN
-- BEGIN: SPOTREBA/ODPIS
IF (@akce=N'vyroba_spotreba')
BEGIN
DELETE FROM @PrKVazby
DELETE FROM #TabJSONData
INSERT #TabJSONData (doc) SELECT @jsonString
SELECT @typDokum=u2.typ, @subtypDokum=u2.subtyp
FROM #TabJSONData d
CROSS APPLY OPENJSON (d.doc, '$')
WITH ([data] NVARCHAR(MAX) AS JSON) AS u
CROSS APPLY OPENJSON ([data])
WITH (typ NVARCHAR(50), subtyp NVARCHAR(50)) AS u2
-- SPOTREBA PLUS UKONCENI OPERACE MICHANI ----------------------------------------------------
IF (@typDokum='vyroba')
BEGIN
SET @vodaLitry = 0
SET @moukaKgNorma = 0
SET @moukaKgFin = 0
SET @moukaSilo = 0
SELECT @idStroj=u3.heliosId, @idPHIdent=u2.datazoneId
FROM #TabJSONData d
CROSS APPLY OPENJSON (d.doc, '$')
WITH ([data] NVARCHAR(MAX) AS JSON) AS u
CROSS APPLY OPENJSON ([data])
WITH (datazoneId INT, stroj NVARCHAR(MAX) AS JSON) AS u2
CROSS APPLY OPENJSON (stroj)
WITH (heliosId INT) u3
SELECT @idVPr=u3.heliosId, @casStart=u3.zacatek, @casKonec=u3.konec, @viskoz=u3.viskozita, @moukaSilo=u3.silo
FROM #TabJSONData d
CROSS APPLY OPENJSON (d.doc, '$')
WITH ([data] NVARCHAR(MAX) AS JSON) AS u
CROSS APPLY OPENJSON ([data])
WITH (typ NVARCHAR(50), prikaz NVARCHAR(MAX) AS JSON) AS u2
CROSS APPLY OPENJSON (prikaz)
WITH (heliosId INT, datazoneId INT, skupzbo NVARCHAR(3), regcis NVARCHAR(30), zacatek DATETIME, konec DATETIME, viskozita TINYINT, silo TINYINT) u3
SET @idPHIdentBak = @idPHIdent
SELECT @vyrobniDen=Datum, @smena=Smena FROM dbo.ef_GetDatumASmenu(@casStart)
SELECT @idStartStopOp=ID FROM dbo._TabVyroba_OperaceStartStop WHERE IDPrikaz=@idVPr AND IDPHIdent=@idPHIdent
SELECT @dilec=IdTabKmen, @radaVPr=Rada, @idZakazka=IDZakazka, @mnozDilec=kusy_zad FROM dbo.TabPrikaz WHERE ID=@idVPr
SELECT @cisloZak=CisloZakazky FROM dbo.TabZakazka WHERE ID=@idZakazka
IF (@radaDZVydejka IS NULL)
SET @radaDZVydejka = ISNULL( (SELECT RadaDokl_GenerRezVyd_Mat FROM dbo.TabRadyPrikazu WHERE Rada=@radaVPr), @radaDZVydejka)
-- SET @sklMat = ISNULL( (SELECT VydejMatPol_SkladProGenHlavDZ FROM dbo.TabRadyPrikazu WHERE Rada=@radaVPr), @sklMat)
-- povol evidenci a odvod vice ks nez je na prikazu
UPDATE dbo.TabRadyPrikazu SET NekontrolMnozEvidMezd=1 WHERE Rada=@radaVPr AND NekontrolMnozEvidMezd=0
UPDATE dbo.TabRadyPrikazu SET NekontrolMnozOdvedFinal=1 WHERE Rada=@radaVPr AND NekontrolMnozOdvedFinal=0
SET @idDZ = (SELECT IDDoklad FROM dbo._hdc_ph_PrijataJsonData WHERE ID=@idJson)
IF (@idDZ IS NULL) -- @idDZ uz existuje ? Ne, udelej vydejku na prikaz
BEGIN
SELECT @jsonString2=u2.vydej
FROM #TabJSONData d
CROSS APPLY OPENJSON (d.doc, '$')
WITH (akce NVARCHAR(50), [data] NVARCHAR(MAX) AS JSON) AS u
CROSS APPLY OPENJSON ([data])
WITH ( vydej NVARCHAR(MAX) AS JSON) AS u2
DELETE FROM #TabJSONData
INSERT #TabJSONData (doc) SELECT @jsonString2
DECLARE p CURSOR LOCAL FOR
SELECT u.nazev, u.skupzbo, u.regcis, u.sarze, u.paletovylist, u.mnozstvi, u.mnozstviVychozi, u.datazoneId
FROM #TabJSONData d
CROSS APPLY OPENJSON (d.doc, '$')
WITH ( nazev NVARCHAR(100), skupzbo NVARCHAR(3), regcis NVARCHAR(30), sarze NVARCHAR(30), paletovyList NVARCHAR(30), mnozstvi NUMERIC(19,6), mnozstviVychozi NUMERIC(19,6), datazoneId INT) AS u
OPEN p
WHILE (1=1)
BEGIN
FETCH NEXT FROM p INTO @nazev1, @sz, @rc, @sarze, @paletList, @mnoz, @mnoz2, @idPHIdent
IF (@@FETCH_STATUS<>0) BREAK
SET @paletList = ISNULL(@paletList, N'')
IF (@sz=N'101') AND (@rc=N'001000')
SET @vodaLitry = @mnoz
IF (@sz=N'101') AND (@nazev1 LIKE N'%mouka%')
BEGIN
SET @moukaKgFin = @mnoz
SET @moukaKgNorma = @mnoz2
END
IF (@idDZ IS NULL)
BEGIN
SET @dpz = 4
EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZ OUT, @Sklad=@sklTechnicky, @DruhPohybu=@dpz, @RadaDokladu=@radaDZVydejka, @CisloOrg=0
IF (@idDZ IS NOT NULL)
BEGIN
IF NOT EXISTS(SELECT 1 FROM dbo.TabDokladyZbozi_EXT WHERE ID=@idDZ)
INSERT dbo.TabDokladyZbozi_EXT (ID) VALUES (@idDZ)
UPDATE dbo.TabDokladyZbozi_EXT SET _HDCAPI_PHident=@idJson WHERE ID=@idDZ
SELECT @datumDZ=DatPorizeni, @menaDZ=Mena, @kurzDZ=Kurz, @kurzEDZ=KurzEuro, @jednM=JednotkaMeny, @vstC=VstupniCena
FROM dbo.TabDokladyZbozi WHERE ID=@idDZ
UPDATE dbo.TabDokladyZbozi SET IDPrikaz=@idVPr, BlokovaniEditoru=0 WHERE ID=@idDZ
IF (@cisloZak IS NOT NULL)
UPDATE dbo.TabDokladyZbozi SET CisloZakazky=@cisloZak WHERE ID=@idDZ
END
END
IF (@idDZ IS NOT NULL)
BEGIN
SET @idKZ = (SELECT ID FROM dbo.TabKmenZbozi WHERE Nazev1 NOT LIKE N'%Voda%' AND SkupZbo=@sz AND RegCis=@rc AND (Material=1 OR Dilec=1) AND Sluzba=0)
IF (@idKZ IS NOT NULL)
BEGIN
-- najdi vazbu vc. kontroly jestli polozka neni rezijni material
SET @idPrKVazby = (SELECT ID FROM dbo.TabPrKVazby WHERE IDPrikaz=@idVPr AND vyssi=@dilec AND nizsi=@idKZ AND IDOdchylkyDo IS NULL AND RezijniMat=0)
-- pokud neni material v pozadavcich prikazu, pridej ho (neni v TPV)
IF (@idPrKVazby IS NULL) AND (@mnoz>0)
BEGIN
EXEC @idPrKVazby=dbo.hp_NewPozadavek_TabPrKVazby @IDPrikaz=@idVPr, @IDKmenZbozi=@idKZ, @Mnozstvi=@mnoz, @Mnoz_zad=@mnoz, @VychoziSklad=@sklMat
END
-- pridej do vydejky
IF (@idPrKVazby IS NOT NULL)
BEGIN
INSERT @PrKVazby (ID, Sklad) SELECT ID, Sklad FROM dbo.TabPrKVazby WHERE ID=@idPrKVazby
UPDATE dbo.TabPrKVazby SET Sklad=@sklTechnicky WHERE ID=@idPrKVazby
SET @idSS = (SELECT ID FROM dbo.TabStavSkladu WHERE IDKmenZbozi=@idKZ AND IDSklad=@sklTechnicky)
IF (@idSS IS NULL)
EXEC dbo.hp_InsertStavSkladu @IDKmen=@idKZ, @IDSklad=@sklTechnicky, @IDZboSklad=@idSS OUT
IF (@idSS IS NOT NULL)
BEGIN
-- mnoz = mnozstvi realne spotrebovane / mnoz2 = mnozstvi vychozi normovane
/*
UPDATE dbo.TabPrKVazby SET mnozstvi=@mnoz, mnoz_zad=@mnoz*@mnozDilec WHERE ID=@idPrKVazby AND mnozstvi<>@mnoz
*/
/*
SELECT @mnozReq=mnoz_zad, @doklPrV=Doklad FROM dbo.TabPrKVazby WHERE ID=@idPrKVazby
SET @mnozVyd = ISNULL( (SELECT SUM(pz.Mnozstvi) FROM dbo.TabPohybyZbozi pz INNER JOIN dbo.TabDokladyZbozi dz ON (dz.ID=pz.IDDoklad)
WHERE dz.DruhPohybuZbo=@dpz AND dz.RadaDokladu=@radaDZVydejka AND pz.IDPrikaz=@idVPr AND pz.TypVyrobnihoDokladu=0), 0)
SET @mnozNew = @mnozReq - @mnozVyd - @mnoz
IF (@mnozNew<=0)
BEGIN
SET @mnozNew = @mnozVyd + @mnoz
UPDATE dbo.TabPrKVazby SET mnoz_zad = @mnozNew WHERE ID=@idPrKVazby
END
*/
EXEC dbo.hp_InsertPolozkyOZ @ident=@idPZ OUT, @IDDoklad=@idDZ, @DruhPohybu=@dpz, @CisloOrg=0, @IDZboSklad=@idSS, @Mena=@menaDZ, @Kurz=@kurzDZ,
@JednotkaMeny=@jednM, @KurzEuro=@kurzEDZ, @SazbaSD=NULL, @SazbaDPH=NULL, @ZakazanoDPH=0, @VstupniCena=@vstC, @Mnozstvi=@mnoz
IF (@idPZ IS NOT NULL)
BEGIN
IF NOT EXISTS(SELECT 1 FROM dbo.TabPohybyZbozi_EXT WHERE ID=@idPZ)
INSERT dbo.TabPohybyZbozi_EXT (ID) VALUES (@idPZ)
IF (@sz=N'101') AND (@nazev1 LIKE N'%mouka%') AND (@moukaSilo IS NOT NULL)
BEGIN
UPDATE dbo.TabPohybyZbozi_EXT SET _Mouka_Silo=@moukaSilo WHERE ID=@idPZ
/*
SET @idUmist = (SELECT ID FROM dbo.TabUmisteni WHERE Kod=CONVERT(nvarchar,@moukaSilo) AND IDSklad=@sklTechnicky)
IF (@idUmist IS NOT NULL)
UPDATE dbo.TabPohybyZbozi SET IdUmisteni=@idUmist WHERE ID=@idPZ
*/
END
INSERT dbo._TabVyroba_OperaceStartStopVydej (IDHlava, IDKmenZbozi, Mnozstvi, MnozstviPuvodni, IDPohybZbozi)
SELECT @idStartStopOp, @idKZ, @mnoz, @mnoz2, @idPZ
UPDATE dbo.TabPohybyZbozi SET IDPrikaz=@idVPr, TypVyrobnihoDokladu=1, DokladPrikazu=@doklPrV WHERE ID=@idPZ
UPDATE dbo.TabPohybyZbozi_EXT SET _HDCAPI_PHident=@idPHIdent WHERE ID=@idPZ
IF (ISNULL(@sarze,N'')=N'')
SET @sarze = (SELECT _Prevod_PosledniSarze FROM dbo.TabStavSkladu_EXT WHERE ID=@idSS)
UPDATE dbo.TabPohybyZbozi_EXT SET _Vyroba_PrikazMnoz=@mnoz2, _Vyroba_Sarze=@sarze, _Vyroba_PaletList=@paletList WHERE ID=@idPZ
END -- @idPZ IS NOT NULL
END -- @idSS IS NOT NULL
END -- @idPrKVazby IS NOT NULL
END -- @idKZ IS NOT NULL
END -- @idDZ IS NOT NULL
END
CLOSE p
DEALLOCATE p
IF (@idDZ IS NOT NULL)
BEGIN
SET @hmotTesta = ISNULL( (SELECT SUM(p.Mnozstvi) FROM dbo.TabPohybyZbozi p INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad)
INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi) WHERE p.IDDoklad=@idDZ AND k.Sluzba=0), 0)
IF (@hmotTesta>0)
BEGIN
SET @hmotTesta = ROUND(@hmotTesta, 2)
IF NOT EXISTS(SELECT 1 FROM dbo.TabDokladyZbozi_EXT WHERE ID=@idDZ)
INSERT dbo.TabDokladyZbozi_EXT (ID) VALUES (@idDZ)
UPDATE dbo.TabDokladyZbozi_EXT SET _Vyroba_HmotTesta=@hmotTesta WHERE ID=@idDZ
END
EXEC dbo.hp_VypCenOZPolozek_IDDokladu @idDZ, 0
UPDATE dbo.TabDokladyZbozi SET BlokovaniEditoru=NULL WHERE ID=@idDZ
END
END -- @idDZ uz existuje ?
-- konec operace
SET @idPHIdent = @idPHIdentBak
IF (@idStartStopOp IS NOT NULL)
BEGIN
IF (@idDZ IS NOT NULL)
UPDATE dbo._TabVyroba_OperaceStartStop SET IDDokladOZ=@idDZ WHERE ID=@idStartStopOp
SELECT @idEvROp=IDEvidRozpracOper FROM dbo._TabVyroba_OperaceStartStop WHERE ID=@idStartStopOp
IF (@idEvROp IS NOT NULL)
BEGIN
SELECT @idPracovisteOld=IDPracoviste, @idZam=IDZamestnance FROM dbo.TabEvidRozpracOper WHERE ID=@idEvROp
IF (@idZam IS NULL)
BEGIN
IF (ISNULL( (SELECT COUNT(ID) FROM dbo.TabCisZam), 0)=1)
SELECT TOP(1) @idZam=ID FROM dbo.TabCisZam
IF (@idZam IS NOT NULL)
UPDATE dbo.TabEvidRozpracOper SET IDZamestnance=@idZam WHERE ID=@idEvROp
END
UPDATE dbo._hdc_ph_PrijataJsonData SET CisloZam=(SELECT Cislo FROM dbo.TabCisZam WHERE ID=@idZam) WHERE ID=@idJson AND CisloZam IS NULL
SET @skCasSek = DATEDIFF(s, @casStart, @casKonec)
UPDATE dbo.TabEvidRozpracOperR SET Mnoz_odv=1,
Sk_cas=CASE Sk_Cas_T WHEN 0 THEN @skCasSek WHEN 1 THEN (@skCasSek/60.0) WHEN 2 THEN (@skCasSek/3600.0) END,
Sk_cas_Obsluhy=CASE Sk_Cas_Obsluhy_T WHEN 0 THEN @skCasSek WHEN 1 THEN (@skCasSek/60.0) WHEN 2 THEN (@skCasSek/3600.0) END
WHERE IDEvidRozpracOper=@idEvROp
UPDATE dbo.TabEvidRozpracOper SET CasUkonceni=@casKonec, CelkovyCas_T=0, CelkovyCas=DATEDIFF(s, @casStart, @casKonec) WHERE ID=@idEvROp
EXEC dbo.hp_EvidRozpracOper_AktualizaceCasuOper @IDEvidRozpracOper=@idEvROp, @CelkovyCas_S=@skCasSek, @KVO=1
IF (@idPracovisteOld IS NOT NULL)
EXEC dbo.hp_EvidRozpracOper_Uzavreni @IDEvidRozpracOper=@idEvROp, @GenerovatEvidenciOperaci=1
ELSE
EXEC dbo.hp_EvidRozpracOper_Uzavreni @IDEvidRozpracOper=@idEvROp, @GenerovatEvidenciOperaci=0
SET @idMzda=NULL
IF (1=(SELECT COUNT(ID) FROM dbo.TabEvidRozpracOperR WHERE IDEvidRozpracOper=@idEvROp))
SET @idMzda = (SELECT TOP(1) m.ID FROM dbo.TabPrikazMzdyAZmetky m INNER JOIN dbo.TabEvidRozpracOperR er ON (er.ID=m.IDEvidRozpracOperR)
WHERE er.IDEvidRozpracOper=@idEvROp)
UPDATE dbo._TabVyroba_OperaceStartStop SET CasKonec=@casKonec, Ukonceno=1, IDMzda=@idMzda WHERE ID=@idStartStopOp
UPDATE dbo._hdc_ph_PrijataJsonData SET IDMzda=@idMzda WHERE ID=@idJson
END
END
MERGE dbo.TabPrKVazby AS T
USING @PrKVazby AS S ON (T.ID=S.ID)
WHEN MATCHED THEN UPDATE SET T.Sklad=S.Sklad;
-- zapis pro pocitani spotreby testa
INSERT dbo._TabVyroba_TestoVyroba (IdPHIdent, IDPrikaz, IDDokladVydejMat, IDKmenZbozi, SkupZbo, RegCis, DatPriprava, VyrobniDen, Smena, DatVypousteni,
IDStrojPek, Viskozita, VodaLitry, MoukaHmot, MoukaSilo)
SELECT @idPHIdent, @idVPr, @idDZ, @dilec, SkupZbo, RegCis, @casStart, @vyrobniDen, @smena, @casKonec,
@idStroj, @viskoz, @vodaLitry, @moukaKgFin, @moukaSilo FROM dbo.TabKmenZbozi WHERE ID=@dilec
UPDATE dbo._hdc_ph_PrijataJsonData SET DatZpracovani=GETDATE(), IDDoklad=@idDZ WHERE ID=@idJson
IF OBJECT_ID(N'tempdb..#TabJSONData', N'U') IS NOT NULL
DROP TABLE #TabJSONData
END -- typ spotreba
-- ODPIS -----------------------------------------------------------------
IF (@typDokum='odpis')
BEGIN
SET @sklMat = N'211' -- odpis ze skladu Pekarna nebo z 311 - sklad Material ???????
SET @radaDZVydejka = N'242'
SET @dpz=4
SELECT @jsonString2=u2.vydej
FROM #TabJSONData d
CROSS APPLY OPENJSON (d.doc, '$')
WITH (akce NVARCHAR(50), [data] NVARCHAR(MAX) AS JSON) AS u
CROSS APPLY OPENJSON ([data])
WITH ( vydej NVARCHAR(MAX) AS JSON) AS u2
DELETE FROM #TabJSONData
INSERT #TabJSONData (doc) SELECT @jsonString2
DECLARE p CURSOR LOCAL FOR
SELECT u.skupzbo, u.regcis, u.sarze, u.paletovylist, u.mnozstvi, u.datazoneId
FROM #TabJSONData d
CROSS APPLY OPENJSON (d.doc, '$')
WITH ( skupzbo NVARCHAR(3), regcis NVARCHAR(30), sarze NVARCHAR(30), paletovyList NVARCHAR(30), mnozstvi NUMERIC(19,6), datazoneId INT) AS u
OPEN p
WHILE (1=1)
BEGIN
FETCH NEXT FROM p INTO @sz, @rc, @sarze, @paletList, @mnoz, @idPHIdent
IF (@@FETCH_STATUS<>0) BREAK
SET @paletList = ISNULL(@paletList, N'')
SET @sarze = ISNULL(@sarze, N'')
IF (@idDZ IS NULL)
BEGIN
EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZ OUT, @Sklad=@sklMat, @DruhPohybu=@dpz, @RadaDokladu=@radaDZVydejka, @CisloOrg=0
SELECT @datumDZ=DatPorizeni, @menaDZ=Mena, @kurzDZ=Kurz, @kurzEDZ=KurzEuro, @jednM=JednotkaMeny, @vstC=VstupniCena, @parZnak=ParovaciZnak
FROM dbo.TabDokladyZbozi WHERE ID=@idDZ
UPDATE dbo.TabDokladyZbozi SET BlokovaniEditoru=0 WHERE ID=@idDZ
END
IF (@idDZ IS NOT NULL)
BEGIN
SET @idKZ = (SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo=@sz AND RegCis=@rc)
IF (@idKZ IS NOT NULL)
BEGIN
SET @idSS = (SELECT ID FROM dbo.TabStavSkladu WHERE IDKmenZbozi=@idKZ AND IDSklad=@sklMat)
IF (@idSS IS NULL)
EXEC dbo.hp_InsertStavSkladu @IDKmen=@idKZ, @IDSklad=@sklMat, @IDZboSklad=@idSS OUT
IF (@idSS IS NOT NULL)
BEGIN
EXEC dbo.hp_InsertPolozkyOZ @ident=@idPZ OUT, @IDDoklad=@idDZ, @DruhPohybu=@dpz, @CisloOrg=0, @IDZboSklad=@idSS, @Mena=@menaDZ, @Kurz=@kurzDZ,
@JednotkaMeny=@jednM, @KurzEuro=@kurzEDZ, @SazbaSD=NULL, @SazbaDPH=NULL, @ZakazanoDPH=0, @VstupniCena=@vstC, @Mnozstvi=@mnoz
IF (@idPZ IS NOT NULL)
BEGIN
UPDATE dbo._hdc_ph_PrijataJsonData SET IdPHIdent=@idPHIdent WHERE ID=@idJson
IF NOT EXISTS(SELECT 1 FROM dbo.TabPohybyZbozi_EXT WHERE ID=@idPZ)
INSERT dbo.TabPohybyZbozi_EXT (ID) VALUES (@idPZ)
IF (ISNULL(@sarze,N'')=N'')
SET @sarze = (SELECT _Prevod_PosledniSarze FROM dbo.TabStavSkladu_EXT WHERE ID=@idSS)
UPDATE dbo.TabPohybyZbozi_EXT SET _HDCAPI_PHident=@idPHIdent, _Vyroba_Sarze=@sarze WHERE ID=@idPZ
IF (@paletList<>N'')
BEGIN
SET @idVCK = (SELECT ID FROM dbo.TabVyrCK WHERE IDKmenZbozi=@idKZ AND Nazev1=@paletList)
IF (@idVCK IS NULL)
EXEC dbo.hp_OZInsertVyrCK @IDVyrCK=@idVCK OUT, @IDKmenZbozi=@idKZ, @Nazev1=@paletList, @Selectem=0
SET @idVCS = (SELECT ID FROM dbo.TabVyrCS WHERE IDVyrCK=@idVCK AND IDStavSkladu=@idSS AND Nazev1=@paletList)
IF (@idVCS IS NULL)
EXEC dbo.hp_OZInsertVyrCS @IDVyrCS=@idVCS OUT, @IDVyrCK=@idVCK, @IDZboSklad=@idSS
INSERT dbo.TabVyrCP (IDPolozkaDokladu, IDVyrCis, Nazev, Mnozstvi) SELECT @idPZ, @idVCS, @sarze, @mnoz
END
END -- @idPZ IS NOT NULL
END -- @idSS IS NOT NULL
END -- @idKZ IS NOT NULL
END -- @idDZ IS NOT NULL
END
CLOSE p
DEALLOCATE p
IF (@idDZ IS NOT NULL)
BEGIN
EXEC dbo.hp_VypCenOZPolozek_IDDokladu @idDZ, 0
UPDATE dbo.TabDokladyZbozi SET BlokovaniEditoru=NULL WHERE ID=@idDZ
-- musim odepsat i z technologickeho skladu
EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZDst OUT, @Sklad=@sklTechnicky, @DruhPohybu=@dpz, @RadaDokladu=@radaDZVydejka,
@Mena=@menaDZ, @CisloOrg=0, @DatumPorizeni=@datumDZ
IF (@idDZDst IS NOT NULL)
BEGIN
IF NOT EXISTS(SELECT 1 FROM dbo.TabDokladyZbozi_EXT WHERE ID=@idDZDst)
INSERT dbo.TabDokladyZbozi_EXT (ID) VALUES (@idDZDst)
UPDATE dbo.TabDokladyZbozi_EXT SET _Vyroba_IDPuvodniDoklad=@idDZ WHERE ID=@idDZDst
SELECT @datReal=DatRealizace FROM dbo.TabDokladyZbozi WHERE ID=@idDZ
EXEC dbo.hp_generuj_navazny_doklad @IDDokladDst=@idDZDst, @IDDokladSrc=@idDZ, @CisloOrgCil=0, @MUCil=NULL, @MenaCil=@menaDZ,
@KurzCil=NULL, @JednotkaMenyCil=NULL, @KurzEuroCil=NULL, @CisloZakCil=NULL, @NOkruhCil=NULL,
@StredNakladCil=NULL, @StredVynosCil=NULL, @FormaDopravyCil=NULL, @VozidloCil=NULL, @ObjednavkaCil=NULL,
@PopisDodavkyCil=NULL, @NavaznyDobropisCil=NULL, @ZamestnanecCil=NULL, @DodFakCil=NULL, @Nasobek=1,
@SlevaCil=NULL, @VytvaretDokladovouVazbu=0, @VytvaretPolozkovouVazbu=0, @ChybaSkladana=@errMsg OUT,
@KopirovaniDokladu=1
IF EXISTS(SELECT 1 FROM dbo.TabPohybyZbozi WHERE IDDoklad=@idDZDst) AND EXISTS(SELECT 1 FROM dbo.TabDokladyZbozi WHERE Realizovano=1 AND ID=@idDZ)
EXEC dbo.hp_Realizuj_Vydej @ID=@idDZDst, @DatumRealizace=@datReal, @Uzivatel=0, @Hlidat=0, @BylaChyba=@bChyba OUT, @RealMnoz=1, @RealFin=1
END
UPDATE dbo._hdc_ph_PrijataJsonData SET DatZpracovani=GETDATE(), IDDoklad=@idDZ WHERE ID=@idJson
END
IF OBJECT_ID(N'tempdb..#TabJSONData', N'U') IS NOT NULL
DROP TABLE #TabJSONData
END -- typ odpis
END -- akce: vyroba_spotreba
-- END: SPOTREBA/ODPIS
-- BEGIN: OBJEDNAVKA
IF (@akce=N'objednavka')
BEGIN
-- smaz pomocnou tabulku
DELETE FROM #TabJSONData
INSERT #TabJSONData (doc) SELECT @jsonString
DELETE FROM @TabPHObj
DECLARE p CURSOR LOCAL FOR
SELECT u2.datazoneId, u3.datazoneId, u2.paletovyList, u2.created, u2.skupzbo, u2.regcis, u3.sarze, u3.mnozstvi, u2.typ, u2.subtyp
FROM #TabJSONData d
CROSS APPLY OPENJSON (d.doc, '$')
WITH ([data] NVARCHAR(MAX) AS JSON) AS u
CROSS APPLY OPENJSON ([data])
WITH (typ NVARCHAR(50), subtyp NVARCHAR(50), datazoneId INT, skupzbo NVARCHAR(3), regcis NVARCHAR(30), paletovyList NVARCHAR(50), created DATETIME, items NVARCHAR(MAX) AS JSON) AS u2
CROSS APPLY OPENJSON (items)
WITH ( datazoneId INT, heliosId INT, sarze NVARCHAR(30), mnozstvi NUMERIC(19,6) ) AS u3
OPEN p
WHILE (1=1)
BEGIN
FETCH NEXT FROM p INTO @idPHIdent, @idPHIdent2, @paletList, @datPorizeni, @sz, @rc, @sarze, @mnoz, @typDokum, @subtypDokum
IF (@@FETCH_STATUS<>0) BREAK
INSERT dbo._TabVyroba_Objednavky (IDPrijataDataJson, IdPHIdent, IdPHIdent2, SkupZbo, RegCis, PaletovyList, Sarze, Mnozstvi, DatPorizeni)
SELECT @idJson, @idPHIdent, @idPHIdent2, @sz, @rc, @paletList, @sarze, @mnoz, @datPorizeni
SET @idPHObj = SCOPE_IDENTITY()
INSERT @TabPHObj (ID, IDPHIdent) VALUES (@idPHObj, @idPHIdent)
IF (@typDokum='micharna') AND (@subtypDokum='nocni')
UPDATE dbo._TabVyroba_Objednavky SET NocniObjednavka=1 WHERE ID=@idPHObj
END
CLOSE p
DEALLOCATE p
IF (@typDokum='micharna') AND (@subtypDokum='nocni') AND EXISTS (SELECT 1 FROM @TabPHObj)
BEGIN
SET @idDZ = NULL
SET @prevodka = 1
SET @radaDZPrevodV = N'231'
SET @dpz = 4
DECLARE p CURSOR LOCAL FOR
SELECT ID, IDPHIdent FROM @TabPHObj
OPEN p
WHILE (1=1)
BEGIN
FETCH NEXT FROM p INTO @idPHObj, @idPHIdent
IF (@@FETCH_STATUS<>0) BREAK
IF (@idDZ IS NULL)
BEGIN
EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZ OUT, @Sklad=@sklMat, @DruhPohybu=@dpz, @RadaDokladu=@radaDZPrevodV, @CisloOrg=0
UPDATE dbo.TabDokladyZbozi SET DruhPohybuPrevod=0, TypPrevodky=N'281', IdSkladPrevodu=@sklPek, PrevodRealizovat=1 WHERE ID=@idDZ
SELECT @menaDZ=Mena, @kurzDZ=Kurz, @kurzEDZ=KurzEuro, @jednM=JednotkaMeny, @vstC=VstupniCena, @parZnak=ParovaciZnak FROM dbo.TabDokladyZbozi WHERE ID=@idDZ
UPDATE dbo.TabDokladyZbozi SET BlokovaniEditoru=0 WHERE ID=@idDZ
END
IF (@idDZ IS NOT NULL)
BEGIN
SELECT @sz=SkupZbo, @rc=RegCis, @paletList=PaletovyList, @sarze=Sarze FROM dbo._TabVyroba_Objednavky WHERE ID=@idPHObj
SET @sarze = ISNULL(@sarze, N'')
SET @idKZ = (SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo=@sz AND RegCis=@rc)
IF (@idKZ IS NOT NULL)
BEGIN
SET @idSS = (SELECT ID FROM dbo.TabStavSkladu WHERE IDKmenZbozi=@idKZ AND IDSklad=@sklMat)
IF (@idSS IS NULL)
EXEC dbo.hp_InsertStavSkladu @IDKmen=@idKZ, @IDSklad=@sklMat, @IDZboSklad=@idSS OUT
IF (@idSS IS NOT NULL)
BEGIN
EXEC dbo.hp_InsertPolozkyOZ @ident=@idPZ OUT, @IDDoklad=@idDZ, @DruhPohybu=@dpz, @CisloOrg=0, @IDZboSklad=@idSS, @Mena=@menaDZ, @Kurz=@kurzDZ,
@JednotkaMeny=@jednM, @KurzEuro=@kurzEDZ, @SazbaSD=NULL, @SazbaDPH=NULL, @ZakazanoDPH=0, @VstupniCena=@vstC, @Mnozstvi=@mnoz
IF (@idPZ IS NOT NULL)
BEGIN
UPDATE dbo.TabPohybyZbozi_EXT SET _HDCAPI_PHident=@idPHIdent WHERE ID=@idPZ
IF (@@ROWCOUNT=0)
INSERT dbo.TabPohybyZbozi_EXT (ID, _HDCAPI_PHident) SELECT @idPZ, @idPHIdent
IF (@sarze<>N'')
BEGIN
IF NOT EXISTS(SELECT 1 FROM dbo.TabKmenZbozi_EXT WHERE ID=@idKZ)
INSERT dbo.TabKmenZbozi_EXT (ID) SELECT @idKZ
UPDATE dbo.TabKmenZbozi_EXT SET _Prevod_PosledniSarze=@sarze WHERE ID=@idKZ
END
SET @idVCP = NULL
IF (@paletList<>N'')
BEGIN
SET @idVCK = (SELECT ID FROM dbo.TabVyrCK WHERE IDKmenZbozi=@idKZ AND Nazev1=@paletList)
IF (@idVCK IS NULL)
EXEC dbo.hp_OZInsertVyrCK @IDVyrCK=@idVCK OUT, @IDKmenZbozi=@idKZ, @Nazev1=@paletList, @Selectem=0
SET @idVCS = (SELECT ID FROM dbo.TabVyrCS WHERE IDVyrCK=@idVCK AND IDStavSkladu=@idSS AND Nazev1=@paletList)
IF (@idVCS IS NULL)
EXEC dbo.hp_OZInsertVyrCS @IDVyrCS=@idVCS OUT, @IDVyrCK=@idVCK, @IDZboSklad=@idSS
INSERT dbo.TabVyrCP (IDPolozkaDokladu, IDVyrCis, Nazev, Mnozstvi) SELECT @idPZ, @idVCS, @sarze, @mnoz
SET @idVCP = SCOPE_IDENTITY()
END
INSERT dbo._TabVyroba_Objednavky_Pol (IDHlava, IDDokladOZ, IDPohybOZ, IDVyrCP, Mnozstvi, Sarze)
SELECT @idPHObj, @idDZ, @idPZ, @idVCP, @mnoz, @paletList
SET @idPHObjPol = SCOPE_IDENTITY()
END -- @idPZ IS NOT NULL
END -- @idSS IS NOT NULL
END -- @idKZ IS NOT NULL
END -- @idDZ IS NOT NULL
END
CLOSE p
DEALLOCATE p
IF (@idDZ IS NOT NULL)
BEGIN
UPDATE dbo.TabDokladyZbozi SET BlokovaniEditoru=NULL WHERE ID=@idDZ
SET @logTyp=3
SET @logInt=@idDZ
SET @logStr = @parZnak
SET @log4Mail = 1
SET @logText = N'Nelze realizovat v<>dejka no<6E>n<EFBFBD> p<>evodky'
SET @aktDatum = GETDATE()
EXEC dbo.hp_Realizuj_Vydej @ID=@idDZ, @DatumRealizace=@aktDatum, @Uzivatel=0, @Hlidat=0, @BylaChyba=@bChyba OUT
IF (@bChyba=0)
BEGIN
SET @logTyp=0
SET @logInt=0
SET @logStr = N''
SET @log4Mail = 0
SET @logText = N''
END
END
END -- @subtypDokum='nocni'
UPDATE dbo._hdc_ph_PrijataJsonData SET DatZpracovani=GETDATE(), Blokovano=0 WHERE ID=@idJson
END -- akce: objednavka
-- END: OBJEDNAVKA
-- BEGIN: ZAHAJENI OPERACE
IF (@akce=N'vyroba_zacatek')
BEGIN
-- smaz pomocnou tabulku
DELETE FROM #TabJSONData
INSERT #TabJSONData (doc) SELECT @jsonString
IF (1=ISNULL( (SELECT COUNT(ID) FROM dbo.TabCisZam), 0))
UPDATE dbo._hdc_ph_PrijataJsonData SET CisloZam=(SELECT TOP(1)Cislo FROM dbo.TabCisZam) WHERE ID=@idJson AND CisloZam IS NULL
ELSE
UPDATE dbo._hdc_ph_PrijataJsonData SET CisloZam=999999 WHERE ID=@idJson AND CisloZam IS NULL
SET @cisZam = NULL
SET @idZam = NULL
SELECT @typDokum=u2.typ, @idVPr=u3.heliosId, @idPHIdent=u2.datazoneId, @idPracoviste=u4.idprac, @idStroj=u4.heliosId, @statusStroje=u3.[status],
@casStart=u3.zacatek, @sz=u3.skupzbo, @rc=u3.regcis, @idPHIdent2=u4.datazoneId
FROM #TabJSONData d
CROSS APPLY OPENJSON (d.doc, '$')
WITH ([data] NVARCHAR(MAX) AS JSON) AS u
CROSS APPLY OPENJSON ([data])
WITH ( typ NVARCHAR(50), prikaz NVARCHAR(MAX) AS JSON, datazoneId INT, stroj NVARCHAR(MAX) AS JSON) AS u2
CROSS APPLY OPENJSON (prikaz)
WITH ( heliosId INT, datazoneId INT, skupzbo NVARCHAR(3), regcis NVARCHAR(30), [status] NVARCHAR(20), zacatek DATETIME, konec DATETIME ) AS u3
CROSS APPLY OPENJSON (stroj)
WITH ( heliosId INT, datazoneId INT, idprac INT, kod NVARCHAR(20) ) AS u4
IF (@cisZam IS NULL)
SELECT @cisZam=CisloZam FROM dbo._hdc_ph_PrijataJsonData WHERE ID=@idJson
IF (@cisZam IS NOT NULL)
SELECT @idZam=ID FROM dbo.TabCisZam WHERE Cislo=@cisZam
IF (@idVPr IS NOT NULL) AND (@idPracoviste IS NOT NULL)
BEGIN
-- INSERT dbo._hdc_ph_Log (Typ, LogText, IntValue) SELECT 1, N'Zpracovavam PrijataJsonData jako Vyroba_zacatek', @idJson
SET @doklPrP = NULL
SET @altPrP = NULL
SELECT @cisloPrikazu = RadaPrikaz FROM dbo.TabPrikaz WHERE ID=@idVPr
SET @idStartStopOp = (SELECT ID FROM dbo._TabVyroba_OperaceStartStop WHERE IDPrijataDataJson=@idJson AND IdPHIdent=@idPHIdent)
IF (@idStartStopOp IS NULL)
BEGIN
INSERT dbo._TabVyroba_OperaceStartStop (IDPrijataDataJson, IdPHIdent, IdPHIdent2, IDPrikaz, SkupZbo, RegCis, IDStroj, IDPracoviste, CasStart)
SELECT @idJson, @idPHIdent, @idPHIdent2, @idVPr, @sz, @rc, @idStroj, @idPracoviste, @casStart
SET @idStartStopOp = SCOPE_IDENTITY()
END
IF EXISTS (SELECT 1 FROM dbo._TabVyroba_OperaceStartStop WHERE IDPrijataDataJson=@idJson AND IDEvidRozpracOper IS NULL)
BEGIN
SELECT @strojPec = Nazev FROM dbo.TabCisStroju WHERE ID=@idStroj
SET @doklPrP = NULL
IF (@sz='701')
SELECT TOP(1) @doklPrP=Doklad, @altPrP=Alt, @idPracoviste=pracoviste FROM dbo.TabPrPostup
WHERE IDOdchylkyDo IS NULL AND IDPrikaz=@idVPr AND nazev=N'M<EFBFBD>ch<EFBFBD>n<EFBFBD>'
IF (@doklPrP IS NOT NULL)
BEGIN
INSERT dbo.TabEvidRozpracOper (IDZamestnance, IDPracoviste, IDStroje, CasZahajeni, Poznamka)
SELECT @idZam, @idPracoviste, NULL, @casStart, N'M<EFBFBD>ch<EFBFBD>n<EFBFBD> pro stroj ' + ISNULL(@strojPec, N'') + N' *** p<><70>kaz ' + ISNULL(@cisloPrikazu, N'')
SET @idEvROp = SCOPE_IDENTITY()
INSERT dbo.TabEvidRozpracOperR (IDEvidRozpracOper, IDPrikaz, DokladPrPostup, AltPrPostup, Mnoz_odv) SELECT @idEvROp, @idVPr, @doklPrP, @altPrP, 1
UPDATE dbo._TabVyroba_OperaceStartStop SET IDEvidRozpracOper=@idEvROp, DokladPrP=@doklPrP, AltPrP=@altPrP WHERE ID=@idStartStopOp
UPDATE dbo._hdc_ph_PrijataJsonData SET DatZpracovani=GETDATE(), Blokovano=0, IDEvidRozpOp=@idEvROp WHERE ID=@idJson
END
END
END
END -- akce: vyroba_zacatek
-- END: ZAHAJENI OPERACE
IF (@tranPred=0) AND (@@TRANCOUNT>0)
COMMIT TRAN
END TRY
BEGIN CATCH
IF (@tranPred=0) AND (@@TRANCOUNT>0)
ROLLBACK TRAN
SET @errMsg = ERROR_PROCEDURE() + N'/r.' + CONVERT(nvarchar, ERROR_LINE()) + N' >> ' + ERROR_MESSAGE()
UPDATE dbo._hdc_ph_PrijataJsonData SET PosledniChyba=@errMsg WHERE ID=@idJson
IF (@logTyp>0)
INSERT dbo._hdc_ph_Log (Typ, LogText, IntValue, StrValue, IdJsonData, ForMail)
SELECT @logTyp, ISNULL(@logText, N'') + NCHAR(13)+NCHAR(10) + @errMsg, @logInt, @logStr, @idJson, @log4Mail
ELSE
INSERT dbo._hdc_ph_Log (Typ, LogText, IdJsonData, ForMail) SELECT 1, N'Chyba zpracovani PrijataJsonData: ' + @errMsg, @idJson, 1
END CATCH
SET @logTyp=0
END
CLOSE j
DEALLOCATE j
-- pro jistotu
IF OBJECT_ID(N'tempdb..#TabJSONData', N'U') IS NOT NULL
DROP TABLE #TabJSONData

View File

@ -0,0 +1,162 @@
-- dbo.ep_Vyroba_GenSouhrnnyVydej
CREATE PROCEDURE dbo.ep_Vyroba_GenSouhrnnyVydej
@datum DATETIME=NULL,
@radaVydej NVARCHAR(3)=NULL,
@idSklad NVARCHAR(30)=NULL,
@errorMsg NVARCHAR(500)=N'' OUT
AS
-- HD Consulting Strakonice, T. Buzin
-- generuje souhrnnou vydejku (z vydejek prikazu, storna, rucnich korekci zaslanych z terminalu od PH) do jedne vydejky za dany den
-- data z technologickeho/pomocneho skladu, vydejka na sklad Pekarna 211 (lze ovlivnit parametrem idSklad)
-- pokud neni @datum zadane, bere se vcerejsek
SET NOCOUNT ON
DECLARE
@errMsg NVARCHAR(500),
@tranPred INT,
@debugXml XML,
@iTemp INT,
@bTemp BIT
DECLARE
@idObd INT,
@datumOd DATETIME,
@datumDo DATETIME,
@sklMatHlavni NVARCHAR(30)=N'311',
@sklPekarna NVARCHAR(30)=N'211',
@sklTechnolog NVARCHAR(30),
@idDZ INT,
@idPZ INT,
@idSS INT,
@idKZ INT,
@mnoz NUMERIC(19,6),
@cOrg INT=0,
@dzMena NUMERIC(19,6),
@dpz TINYINT=4, -- vydej v evid.cene
@vstC TINYINT,
@jednM INT,
@dzKurz NUMERIC(19,6),
@dzKurzE NUMERIC(19,6)
DECLARE @vydeje TABLE (SkupZbo NVARCHAR(3) NOT NULL, RegCis NVARCHAR(30) NOT NULL, IDKmenZbozi INT, IDPohybZbozi INT, IDPrikaz INT, Mnozstvi NUMERIC(19,6) NOT NULL DEFAULT 0.0,
PRIMARY KEY (SkupZbo,RegCis) )
IF OBJECT_ID(N'tempdb..#TabExtKom', N'U') IS NULL
CREATE TABLE #TabExtKom (Typ TINYINT, Poznamka NVARCHAR(255) )
SET @sklTechnolog=(SELECT TOP(1) Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%ne<6E><65>%' AND CisloStr LIKE N'2%')
IF (@sklTechnolog IS NULL)
SET @sklTechnolog = N'261'
SET @sklPekarna=(SELECT TOP(1) Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'V<EFBFBD>roba - Pek<65>rna')
IF (@sklPekarna IS NULL)
SET @sklPekarna = N'211'
IF (@idSklad IS NULL)
SET @idSklad = @sklPekarna
IF (@datum IS NULL)
SET @datum = DATEADD(second, -1, dbo.hf_TruncDate(GETDATE())) -- vcerejsi pulnoc
SET @datumOd = dbo.hf_TruncDate(@datum) -- 00:00:00 daneho dne
SET @datumDo = DATEADD(second, -1, DATEADD(day, 1, @datumOd)) -- 23:59:59 daneho dne
EXEC @idObd = dbo.hp_GetObdobiDleDatumu @Datum=@datumOd, @JakyDatum=0, @HlasitUzavreno=0
IF (@radaVydej IS NULL)
SET @radaVydej = (SELECT TOP(1) RadaDokladu FROM dbo.TabDruhDokZbo WHERE DruhPohybuZbo=4 AND Nazev LIKE N'%eba PEK'
AND ID NOT IN (SELECT d.IDDruhDZ FROM dbo.TabDruhDokZboDef d WHERE d.IdObdobi=@idObd AND d.Blokovano=1) )
IF (@radaVydej IS NULL)
SET @radaVydej = (SELECT TOP(1) RadaDokladu FROM dbo.TabDruhDokZbo WHERE DruhPohybuZbo=4 AND Nazev LIKE N'%eba PEK')
IF (@radaVydej IS NULL)
SET @radaVydej = N'223' -- vyrobni spotreba PEK
INSERT @vydeje (SkupZbo, RegCis, IDKmenZbozi, IDPohybZbozi, IDPrikaz, Mnozstvi)
SELECT p.SkupZbo, p.RegCis, k.ID, p.ID, ISNULL(p.IDPrikaz, d.IDPrikaz), p.MnozstviDruhove
FROM dbo.TabPohybyZbozi p
INNER JOIN dbo.TabDokladyZbozi d ON (d.ID=p.IDDoklad)
INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad)
INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi)
WHERE d.DatPorizeni BETWEEN @datumOd AND @datumDo
AND d.RadaDokladu IN (@radaVydej, N'229', N'292') -- standardne by melo byt: 223 vydej spotreba PEK, 229 Storno vydej spotreba, 292 Prijem vyrovnani do normy
AND d.DruhPohybuZbo IN (0,1,3,4)
AND s.IDSklad=@sklTechnolog
AND p.Mnozstvi>0
AND k.Sluzba=0
ORDER BY d.ParovaciZnak, p.Poradi
MERGE @vydeje AS T
USING dbo.TabKmenZbozi AS S ON (S.SkupZbo=T.SkupZbo AND S.RegCis=T.RegCis)
WHEN MATCHED AND T.IDKmenZbozi IS NULL THEN UPDATE SET T.IDKmenZbozi=S.ID;
SET @debugXml=(SELECT * FROM @vydeje FOR XML AUTO)
BEGIN TRY
SET @tranPred = @@TRANCOUNT
IF (@tranPred=0)
BEGIN TRAN
IF EXISTS (SELECT 1 FROM @vydeje WHERE Mnozstvi<>0 AND IDKmenZbozi IS NOT NULL)
BEGIN
EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZ OUT, @Sklad=@idSklad, @DruhPohybuZbo=@dpz, @RadaDokladu=@radaVydej, @CisloOrg=@cOrg, @DatumPorizeni=@datumDo
IF (@idDZ IS NOT NULL)
BEGIN
SELECT @dzMena=Mena, @dzKurz=Kurz, @dzKurzE=KurzEuro, @vstC=VstupniCena, @jednM=JednotkaMeny FROM dbo.TabDokladyZbozi WHERE ID=@idDZ
DECLARE p CURSOR LOCAL FOR
SELECT DISTINCT(IDKmenZbozi), SUM(Mnozstvi)
FROM @vydeje
WHERE IDKmenZbozi IS NOT NULL
GROUP BY IDKmenZbozi
OPEN p
WHILE (1=1)
BEGIN
FETCH NEXT FROM p INTO @idKZ, @mnoz
IF (@@FETCH_STATUS<>0) BREAK
SET @idSS = (SELECT ID FROM dbo.TabStavSkladu WHERE IDSklad=@sklPekarna AND IDKmenZbozi=@idKZ)
IF (@idSS IS NULL)
EXEC dbo.hp_InsertStavSkladu @IDKmen=@idKZ, @IDSklad=@sklPekarna, @IDZboSklad=@idSS OUT
IF (@idSS IS NOT NULL)
BEGIN
EXEC dbo.hp_InsertPolozkyOZ @Ident=@idPZ OUT, @IDDoklad=@idDZ, @DruhPohybu=@dpz, @CisloOrg=@cOrg, @IDZboSklad=@idSS, @Mena=@dzMena,
@Kurz=@dzKurz, @KurzEuro=@dzKurzE, @JednotkaMeny=@jednM, @SazbaSD=NULL, @SazbaDPH=NULL, @ZakazanoDPH=0,
@VstupniCena=@vstC, @PovolitDuplicitu=1, @PovolitBlokovane=1, @Mnozstvi=@mnoz
END -- @idSS IS NOT NULL
END
CLOSE p
DEALLOCATE p
END -- @idDZ IS NOT NULL
END -- mam neco v tabulici @vydeje
IF (@tranPred=0) AND (@@TRANCOUNT>0)
COMMIT TRAN
END TRY
BEGIN CATCH
IF (@tranPred=0) AND (@@TRANCOUNT>0)
ROLLBACK TRAN
SET @errMsg = ERROR_MESSAGE() + N' / ' + ERROR_PROCEDURE() + N' / r. ' + CONVERT(nvarchar, ERROR_LINE())
END CATCH

View File

@ -0,0 +1,10 @@
-- dbo.ep_Vyroba_GenerujPalety
CREATE PROCEDURE dbo.ep_Vyroba_GenerujPalety
@idPrikaz INT=NULL,
@pocetStitku INT=0,
@pocetPaletListu INT=0,
@paletaStart NVARCHAR(25)=NULL,
@sarze NVARCHAR(15)=NULL
AS
SET NOCOUNT ON

View File

@ -0,0 +1,101 @@
-- dbo.ep_Vyroba_PrijemNestandard
CREATE PROCEDURE dbo.ep_Vyroba_PrijemNestandard
AS
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu pluginu PluginHDCRTN !!
SET NOCOUNT ON
IF OBJECT_ID(N'tempdb..#TabPrijemNestandard', N'U') IS NULL
RETURN
DECLARE
@sklad NVARCHAR(30)=N'211',
@radaPrijem NVARCHAR(3)='270',
@vstC TINYINT,
@dpz TINYINT=0,
@jednM INT,
@dzMena NVARCHAR(3),
@dzKurz NUMERIC(19,6),
@dzKurzE NUMERIC(19,6),
@idDZ INT,
@idPZ INT,
@idStav INT,
@mjEvid NVARCHAR(10),
@mnoz NUMERIC(19,6),
@mnozKS NUMERIC(19,6),
@ksVKA NUMERIC(19,6),
@idVCK INT,
@idVCS INT,
@idVCP INT
DECLARE
@idKmen INT,
@pocetKA SMALLINT,
@paletList NVARCHAR(50),
@sarze NVARCHAR(50),
@datVyroby DATETIME,
@datExpirace DATETIME,
@smena TINYINT,
@idStroj INT
SELECT TOP(1) @idKmen=IDKmen,
@mnoz=MnozstviKg,
@paletList=PaletovyList,
@sarze=Sarze,
@datVyroby=DatumVyroby,
@datExpirace=DatumExpirace,
@smena=Smena,
@idStroj=IDStroje
FROM #TabPrijemNestandard
IF (@idKmen IS NULL) OR (@mnoz<=0)
RETURN
SET @paletList = ISNULL(@paletList, N'')
SET @sarze = ISNULL(@sarze, N'')
SELECT @mjEvid=MJEvidence FROM dbo.TabKmenZbozi WHERE ID=@idKmen
SET @ksVKA = 1
IF (@mjEvid=N'KA')
SET @ksVKA = ISNULL( (SELECT PocetOdvozene FROM dbo.TabMJZbozi WHERE KodMJ1=N'KA' AND KodMJ2=N'Ks' AND IDKmenZbozi=@idKmen), 0)
SET @idStav = (SELECT ID FROM dbo.TabStavSkladu WHERE IDSklad=@sklad AND IDKmenZbozi=@idKmen)
IF (@idStav IS NULL)
EXEC dbo.hp_InsertStavSkladu @IDKmen=@idKmen, @IDSklad=@sklad, @IDZboSklad=@idStav OUT
IF (@idStav IS NOT NULL)
BEGIN
EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZ OUT, @Sklad=@sklad, @DruhPohybu=@dpz, @RadaDokladu=@radaPrijem, @CisloOrg=0
SELECT @dzMena=Mena, @dzKurz=Kurz, @dzKurzE=KurzEuro, @jednM=JednotkaMeny, @vstC=VstupniCena FROM dbo.TabDokladyZbozi WHERE ID=@idDZ
IF (@idDZ IS NOT NULL)
BEGIN
-- SET @mnoz = @pocetKA
EXEC dbo.hp_InsertPolozkyOZ @ident=@idPZ OUT, @IDDoklad=@idDZ, @DruhPohybu=@dpz, @CisloOrg=0, @IDZboSklad=@idStav, @Mena=@dzMena, @Kurz=@dzKurz,
@JednotkaMeny=@jednM, @KurzEuro=@dzKurzE, @SazbaSD=NULL, @SazbaDPH=NULL, @ZakazanoDPH=0, @VstupniCena=@vstC, @Mnozstvi=@mnoz
IF (@idPZ IS NOT NULL) AND (@sarze<>N'')
BEGIN
UPDATE dbo.TabPohybyZbozi SET Poznamka=N'P<EFBFBD><EFBFBD>jem nestandard' WHERE ID=@idPZ
SET @idVCK = (SELECT ID FROM dbo.TabVyrCK WHERE IDKmenZbozi=@idKmen AND Nazev1=@paletList)
IF (@idVCK IS NULL)
EXEC dbo.hp_OZInsertVyrCK @IDVyrCK=@idVCK OUT, @IDKmenZbozi=@idKmen, @Nazev1=@paletList, @Selectem=0, @DatVyroby=@datVyroby, @DatExpirace=@datExpirace, @Poznamka=N'Nestandard'
SET @idVCS = (SELECT ID FROM dbo.TabVyrCS WHERE IDVyrCK=@idVCK AND IDStavSkladu=@idStav AND Nazev1=@paletList)
IF (@idVCS IS NULL)
EXEC dbo.hp_OZInsertVyrCS @IDVyrCS=@idVCS OUT, @IDVyrCK=@idVCK, @IDZboSklad=@idStav
INSERT dbo.TabVyrCP (IDPolozkaDokladu, IDVyrCis, Nazev, Mnozstvi, DatExpirace) SELECT @idPZ, @idVCS, @sarze, @mnoz, @datExpirace
IF NOT EXISTS(SELECT 1 FROM dbo._TabVyroba_Palety WHERE Typ=5 AND CisloPalety=@paletList AND Sarze=@sarze)
INSERT dbo._TabVyroba_Palety (Typ, CisloPalety, Sarze, DatZahajeni, DatUkonceni, Mnozstvi, MnozstviKA, IDKmen)
SELECT 5, @paletList, @sarze, GETDATE(), GETDATE(), @pocetKA*@ksVKA, @pocetKA, @idKmen
END
END
END

View File

@ -0,0 +1,116 @@
-- dbo.ep_Vyroba_VyrobaMimoPlan
CREATE PROCEDURE dbo.ep_Vyroba_VyrobaMimoPlan
@IDKmen INT=NULL,
@IDStroj INT=NULL,
@IDZamest INT=NULL
AS
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu pluginu PluginHDCRTN !!
SET NOCOUNT ON
IF ((@IDKmen IS NULL) OR (@IDStroj IS NULL)) AND OBJECT_ID(N'tempdb..#TabVyrobaMimoPlan', N'U') IS NULL
RETURN
DECLARE
@errMsg NVARCHAR(500),
@tranPred INT
DECLARE
@idEvROp INT,
@uroven INT,
@maxUroven INT,
@iChyba INT,
@mamPolotovar BIT,
@idPlan INT,
@IDPracoviste INT,
@idVPr INT,
@prpD INT,
@szKmen NVARCHAR(3),
@prpA NCHAR(1)=N'A',
@mn NUMERIC(19,6),
@mj NVARCHAR(10),
@szVyr NVARCHAR(3),
@rcVyr NVARCHAR(30)
IF (@IDKmen IS NULL)
DECLARE v CURSOR LOCAL FOR
SELECT IDKmen, IDStroj, IDZamest FROM #TabVyrobaMimoPlan ORDER BY ID
ELSE
DECLARE v CURSOR LOCAL FOR
SELECT @IDKmen, @IDStroj, @IDZamest
OPEN v
WHILE (1=1)
BEGIN
FETCH NEXT FROM v INTO @IDKmen, @IDStroj, @IDZamest
IF (@@FETCH_STATUS<>0) BREAK
IF (@IDZamest IS NULL)
SELECT TOP(1) ID FROM dbo.TabCisZam
SELECT @szVyr=SkupZbo, @rcVyr=RegCis, @mj=MJEvidence FROM dbo.TabKmenZbozi WHERE ID=@IDKmen
SET @mn = ISNULL( (SELECT PocetHlavni FROM dbo.TabMJZbozi WHERE IDKmenZbozi=@IDKmen AND KodMJ1=N'KA' AND KodMJ2='Pal'), 1)
IF (@mn=0)
SET @mn = 1
SELECT @IDPracoviste=IDPrac FROM dbo.TabCisStroju WHERE ID=@IDStroj
EXEC @idPlan=dbo.hp_NewVyrobniPlan @IDDilce=@IDKmen, @mnozstvi=@mn, @Poznamka=N'V<EFBFBD>roba mimo pl<70>n', @ZdrojPozadavku=0
IF (@idPlan>0)
BEGIN
UPDATE dbo.TabPlan SET Datum=dbo.hf_TruncDate(GETDATE()) WHERE ID=@idPlan
IF OBJECT_ID(N'tempdb..#TabPomSeznamVyrPlanuProZaplanovani', N'U') IS NULL
CREATE TABLE #TabPomSeznamVyrPlanuProZaplanovani (ID INT NOT NULL)
IF OBJECT_ID(N'tempdb..#TabGenVyrPrikazy', N'U') IS NULL
CREATE TABLE #TabGenVyrPrikazy (ID INT NOT NULL, UrovenVnoreni INT NULL)
INSERT #TabPomSeznamVyrPlanuProZaplanovani (ID) SELECT @idPlan
EXEC dbo.hp_VyrPlan_ZaplanujSeznam @GenPlanovaneVyroby=0
IF EXISTS (SELECT 1 FROM #TabGenVyrPrikazy)
BEGIN
UPDATE t SET t.UrovenVnoreni=s.UrovenVnoreni FROM #TabGenVyrPrikazy t, dbo.TabPrikaz s WHERE s.ID=t.ID
SET @maxUroven=(SELECT MAX(UrovenVnoreni) FROM #TabGenVyrPrikazy)
DECLARE c CURSOR LOCAL FOR
SELECT ID, UrovenVnoreni FROM #TabGenVyrPrikazy
OPEN c
WHILE (1=1)
BEGIN
FETCH NEXT FROM c INTO @idVPr, @uroven
IF (@@FETCH_STATUS<>0) BREAK
SELECT @idKmen=p.IDTabKmen, @szKmen=k.SkupZbo FROM dbo.TabPrikaz p INNER JOIN dbo.TabKmenZbozi k ON (k.ID=p.IDTabKmen) WHERE p.ID=@idVPr
SET @mamPolotovar=0
IF EXISTS (SELECT 1 FROM dbo.TabPrKVazby v INNER JOIN dbo.TabKmenZbozi n ON (v.nizsi=n.ID)
WHERE v.IDOdchylkyDo IS NULL AND v.IDPrikaz=@idVPr AND n.SkupZbo LIKE N'7%' AND n.SkupZbo<>N'701')
SET @mamPolotovar=1
IF (@szKmen NOT IN (N'701')) AND (@mamPolotovar=0)
UPDATE dbo.TabPrPostup SET pracoviste=@IDPracoviste, IDStroje=@IDStroj WHERE IDOdchylkyDo IS NULL AND Nazev LIKE N'Pe<EFBFBD>e%' AND IDPrikaz=@idVPr
EXEC @iChyba=dbo.hp_ZadaniPrikazuDoVyroby @IDPrikaz=@idVPr, @OnlyPredzpracovani=0
/*
IF (@iChyba=0) AND (@szKmen NOT IN (N'701'))
BEGIN
EXEC @idEvROp=dbo.ep_Vyroba_InsertEvidRozpracOper @IDZamestnance=@idZamest, @IDPracoviste=@IDPracoviste, @IDStroje=@IDStroj
IF (@idEvROp>0)
BEGIN
SELECT TOP(1) @prpD=Doklad, @prpA=Alt FROM dbo.TabPrPostup WHERE IDOdchylkyDo IS NULL AND IDPrikaz=@idVPr
EXEC dbo.ep_Vyroba_InsertEvidRozpracOperPol @IdEvidRozpOper=@idEvROp, @IdPrikaz=@idVPr, @doklPrPost=@prpD, @altPrPost=@prpA
END
END
*/
END
CLOSE c
DEALLOCATE c
END
END
END
CLOSE v
DEALLOCATE v

View File

@ -0,0 +1,49 @@
-- dbo.ep_Vyroba_ZapisCCP1
CREATE PROCEDURE dbo.ep_Vyroba_ZapisCCP1
AS
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu pluginu PluginHDCRTN !!
SET NOCOUNT ON
DECLARE
@id INT,
@idVPr INT,
@idKZ INT,
@idStroj INT,
@smena TINYINT,
@dat DATETIME=GETDATE(),
@teplota NUMERIC(15,2),
@rychlost NUMERIC(15,2),
@hmotnost NUMERIC(15,2),
@delka NUMERIC(15,2),
@prumer NUMERIC(15,2),
@naprava NVARCHAR(255)
IF OBJECT_ID(N'tempdb..#InsertCCP1Zaznamy', N'U') IS NULL
RETURN
DECLARE c CURSOR LOCAL FOR
SELECT IDStroj, IDPrikaz, Smena, Teplota, Rychlost, Hmotnost, Delka, Prumer, NapravneOpatreni
FROM #InsertCCP1Zaznamy
ORDER BY ID
OPEN c
WHILE (1=1)
BEGIN
FETCH NEXT FROM c INTO @idStroj, @idVPr, @smena, @teplota, @rychlost, @hmotnost, @delka, @prumer, @naprava
IF (@@FETCH_STATUS<>0) BREAK
SELECT @idKZ=IDTabKmen FROM dbo.TabPrikaz WHERE ID=@idVPr
INSERT dbo._TabVyroba_KontrolyCCP1 (IDStroj, Smena, Teplota, Rychlost, Hmotnost, Delka, Prumer, IDKmenZbozi, NapravneOpatreni)
SELECT @idStroj, @smena, @teplota, @rychlost, @hmotnost, @delka, @prumer, @idKZ, @naprava
END
CLOSE c
DEALLOCATE c

View File

@ -0,0 +1,36 @@
DROP TABLE IF EXISTS #tempPeceni
CREATE TABLE #tempPeceni
(
EventID VARCHAR(8) NOT NULL,
StartDateTime DATETIME NOT NULL,
EndDateTime DATETIME NOT NULL
)
INSERT INTO #tempPeceni
VALUES
('peceni', 'september 17, 2023 7:0:00', 'september 18, 2023 02:26:18');
select hr.ld AS CasDavky,
60 - case when e.startdatetime > hr.ld then datepart(minute, e.startdatetime) else 0 end
+ case when e.enddatetime < hr.ud then datepart(minute, e.enddatetime)-60 else 0 end as allocatedminutes
from #tempPeceni as e
cross apply
(
select
dateadd(hour, datepart(hour,e.startdatetime)+t.rn-1, cast(cast(e.startdatetime as date) as datetime)) as ld,
dateadd(hour, datepart(hour,e.startdatetime)+t.rn, cast(cast(e.startdatetime as date) as datetime)) as ud,
rn
from
(
-- a tally, max 100 rows .. max 100 hours duration
select top (1+datediff(hour,e.startdatetime,dateadd(minute, -1, e.enddatetime))) row_number() over(order by @@spid) as rn
from (values(1),(1),(1),(1),(1),(1),(1),(1),(1),(1)) as a(n)
cross join (values(1),(1),(1),(1),(1),(1),(1),(1),(1),(1)) as b(n)
) as t
) as hr;

10
_sql/spec_Clear.sql Normal file
View File

@ -0,0 +1,10 @@
DROP TRIGGER IF EXISTS dbo.ET_TabVyroba_Objednavky_IU
DROP TRIGGER IF EXISTS dbo.ET_TabVyroba_Objednavky_Pol_D
DROP TRIGGER IF EXISTS dbo.ET_TabPohybyZbozi_HDC_IU
DROP TRIGGER IF EXISTS dbo.ET_TabPohybyZbozi_HDC_D
DROP TRIGGER IF EXISTS dbo.ET_TabVyrCP_HDC_IU
DROP TRIGGER IF EXISTS dbo.ET_TabVyrCP_HDC_D
DROP TRIGGER IF EXISTS dbo.ET_TabVyroba_Palety_IU
DROP TRIGGER IF EXISTS dbo.ET_TabVyroba_Palety_D
DROP TRIGGER IF EXISTS dbo.ET_TabVyroba_PaletyUkonceni_D
DROP TRIGGER IF EXISTS dbo.ET_TabVyroba_VydejMatSarze_IU

View File

@ -0,0 +1,103 @@
IF OBJECT_ID(N'dbo._TabVyroba_Objednavky', N'U') IS NULL
CREATE TABLE dbo._TabVyroba_Objednavky (
ID int IDENTITY(1, 1) NOT NULL,
IDPrijataDataJson int NULL,
IdPHIdent bigint NULL,
IdPHIdent2 bigint NULL,
PHOznaceni nvarchar(50) COLLATE Czech_CI_AS NULL,
IDDokladOZ INT,
Poznamka nvarchar(255) COLLATE Czech_CI_AS NULL,
SkupZbo nvarchar(3) COLLATE Czech_CI_AS NULL,
RegCis nvarchar(30) COLLATE Czech_CI_AS NULL,
IDKmenZbozi int NULL,
Mnozstvi numeric(19, 6) DEFAULT 0.0 NOT NULL,
MnozKVydeji numeric(19, 6) DEFAULT 0.0 NOT NULL,
PaletovyList nvarchar(50) COLLATE Czech_CI_AS NULL,
Sarze nvarchar(30) COLLATE Czech_CI_AS NULL,
NocniObjednavka BIT NOT NULL DEFAULT 0,
Storno BIT NOT NULL DEFAULT 0,
Vratka BIT NOT NULL DEFAULT 0,
Splneno BIT NOT NULL DEFAULT 0,
PocetPohybuOZ SMALLINT NOT NULL DEFAULT 0,
Blokovano bit DEFAULT 0 NOT NULL,
DatPorizeni datetime DEFAULT getdate() NOT NULL,
Autor NVARCHAR(80) NOT NULL DEFAULT SUSER_SNAME(),
DatZpracovani datetime NULL,
CONSTRAINT PK__TabVyroba_Objednavky PRIMARY KEY CLUSTERED (ID DESC) WITH ( PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
DROP INDEX IF EXISTS EI_TabVyroba_Objednavky_IdPrijataDataJson ON dbo._TabVyroba_Objednavky
CREATE NONCLUSTERED INDEX EI_TabVyroba_Objednavky_IdPrijataDataJson ON dbo._TabVyroba_Objednavky (IDPrijataDataJson)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
DROP INDEX IF EXISTS EI_TabVyroba_Objednavky_idPH ON dbo._TabVyroba_Objednavky
CREATE NONCLUSTERED INDEX EI_TabVyroba_Objednavky_idPH ON dbo._TabVyroba_Objednavky (IdPHIdent)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
/* 10.11.2023 */
IF COL_LENGTH(N'dbo._TabVyroba_Objednavky', N'IDDokladOZ') IS NULL ALTER TABLE dbo._TabVyroba_Objednavky ADD IDDokladOZ INT NULL
IF COL_LENGTH(N'dbo._TabVyroba_Objednavky', N'IDPohybOZ') IS NOT NULL ALTER TABLE dbo._TabVyroba_Objednavky DROP COLUMN IDPohybOZ
IF COL_LENGTH(N'dbo._TabVyroba_Objednavky', N'DatReportuPH') IS NOT NULL ALTER TABLE dbo._TabVyroba_Objednavky DROP COLUMN DatReportuPH
IF COL_LENGTH(N'dbo._TabVyroba_Objednavky', N'PocetPohybuOZ') IS NULL ALTER TABLE dbo._TabVyroba_Objednavky ADD PocetPohybuOZ SMALLINT NOT NULL DEFAULT 0
/* 12.11.2023 */
IF COL_LENGTH(N'dbo._TabVyroba_Objednavky', N'Storno') IS NULL ALTER TABLE dbo._TabVyroba_Objednavky ADD Storno BIT NOT NULL DEFAULT 0
IF COL_LENGTH(N'dbo._TabVyroba_Objednavky', N'Vratka') IS NULL ALTER TABLE dbo._TabVyroba_Objednavky ADD Vratka BIT NOT NULL DEFAULT 0
IF COL_LENGTH(N'dbo._TabVyroba_Objednavky', N'Autor') IS NULL ALTER TABLE dbo._TabVyroba_Objednavky ADD Autor NVARCHAR(80) NOT NULL DEFAULT SUSER_SNAME()
/* 14.11.2023 */
IF COL_LENGTH(N'dbo._TabVyroba_Objednavky', N'NocniObjednavka') IS NULL ALTER TABLE dbo._TabVyroba_Objednavky ADD NocniObjednavka BIT NOT NULL DEFAULT 0
/* 23.11.2023 */
IF COL_LENGTH(N'dbo._TabVyroba_Objednavky', N'Splneno') IS NULL ALTER TABLE dbo._TabVyroba_Objednavky ADD Splneno BIT NOT NULL DEFAULT 0
IF COL_LENGTH(N'dbo._TabVyroba_Objednavky', N'MnozKVydeji') IS NULL ALTER TABLE dbo._TabVyroba_Objednavky ADD MnozKVydeji NUMERIC(19,6) NOT NULL DEFAULT 0.0
IF OBJECT_ID(N'dbo._TabVyroba_Objednavky_Pol', N'U') IS NULL
CREATE TABLE dbo._TabVyroba_Objednavky_Pol (
ID INT IDENTITY(1, 1) NOT NULL,
IDHlava INT NULL,
IDDokladOZ INT NULL,
IDPohybOZ INT NULL,
IDVyrCP INT NULL,
SkupZbo NVARCHAR(3),
RegCis NVARCHAR(100),
Mnozstvi numeric(19, 6) DEFAULT 0.0 NOT NULL,
Sarze NVARCHAR(100) NULL,
PaletovyList NVARCHAR(100) NULL,
DatPorizeni datetime DEFAULT getdate() NOT NULL,
CONSTRAINT PK__TabVyroba_Objednavky_Pol PRIMARY KEY CLUSTERED (ID DESC) WITH ( PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
DROP INDEX IF EXISTS EI_TabVyroba_Objednavky_Pol_idHlava ON dbo._TabVyroba_Objednavky_Pol
CREATE NONCLUSTERED INDEX EI_TabVyroba_Objednavky_Pol_idHlava ON dbo._TabVyroba_Objednavky_Pol (IDHlava)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
DROP INDEX IF EXISTS EI_TabVyroba_Objednavky_Pol_idPZ ON dbo._TabVyroba_Objednavky_Pol
CREATE NONCLUSTERED INDEX EI_TabVyroba_Objednavky_Pol_idPZ ON dbo._TabVyroba_Objednavky_Pol (IDPohybOZ)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
DROP INDEX IF EXISTS EI_TabVyroba_Objednavky_Pol_idDZ ON dbo._TabVyroba_Objednavky_Pol
CREATE NONCLUSTERED INDEX EI_TabVyroba_Objednavky_Pol_idDZ ON dbo._TabVyroba_Objednavky_Pol (IDDokladOZ)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
/* 13.11.2023 */
IF COL_LENGTH(N'dbo._TabVyroba_Objednavky_Pol', N'IDVyrCP') IS NULL ALTER TABLE dbo._TabVyroba_Objednavky_Pol ADD IDVyrCP INT NULL
/* 9.9.2024 */
IF COL_LENGTH(N'dbo._TabVyroba_Objednavky_Pol', N'Sarze') IS NULL ALTER TABLE dbo._TabVyroba_Objednavky_Pol ADD Sarze NVARCHAR(100) NULL
/* 17.9.2024 */
IF COL_LENGTH(N'dbo._TabVyroba_Objednavky_Pol', N'PaletovyList') IS NULL ALTER TABLE dbo._TabVyroba_Objednavky_Pol ADD PaletovyList NVARCHAR(100) NULL
IF COL_LENGTH(N'dbo._TabVyroba_Objednavky_Pol', N'SkupZbo') IS NULL ALTER TABLE dbo._TabVyroba_Objednavky_Pol ADD SkupZbo NVARCHAR(3) NULL
IF COL_LENGTH(N'dbo._TabVyroba_Objednavky_Pol', N'RegCis') IS NULL ALTER TABLE dbo._TabVyroba_Objednavky_Pol ADD RegCis NVARCHAR(30) NULL

View File

@ -0,0 +1,52 @@
IF OBJECT_ID(N'dbo._TabVyroba_OperaceStartStop', N'U') IS NULL
CREATE TABLE dbo._TabVyroba_OperaceStartStop (
ID int IDENTITY(1, 1) NOT NULL,
IDPrijataDataJson int NOT NULL,
IdPHIdent bigint NULL,
IdPHIdent2 bigint NULL,
IDPrikaz int NULL,
Nazev NVARCHAR(50) NULL,
DokladPrP int NULL,
AltPrP nchar(1) COLLATE Czech_CI_AS NULL,
SkupZbo nvarchar(3) COLLATE Czech_CI_AS NULL,
RegCis nvarchar(30) COLLATE Czech_CI_AS NULL,
IDKmenZbozi int NULL,
IDStroj int NULL,
IDPracoviste int NULL,
CasStart datetime NULL,
CasKonec datetime NULL,
IDDokladOZ INT NULL,
CONSTRAINT PK___TabVyrobaOperaceStartStop PRIMARY KEY CLUSTERED (ID DESC)
WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
DROP INDEX IF EXISTS EI_TabVyroba_OperaceStartStop_IdPrijataDataJson ON dbo._TabVyroba_OperaceStartStop
CREATE NONCLUSTERED INDEX EI_TabVyroba_OperaceStartStop_IdPrijataDataJson ON dbo._TabVyroba_OperaceStartStop (IDPrijataDataJson)
WITH (PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
DROP INDEX IF EXISTS EI_TabVyroba_OperaceStartStop_Prikaz ON dbo._TabVyroba_OperaceStartStop
CREATE NONCLUSTERED INDEX EI_TabVyroba_OperaceStartStop_Prikaz ON dbo._TabVyroba_OperaceStartStop (IDPrikaz)
WITH (PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
DROP INDEX IF EXISTS EI_TabVyroba_OperaceStartStop_Stroj ON dbo._TabVyroba_OperaceStartStop
CREATE NONCLUSTERED INDEX EI_TabVyroba_OperaceStartStop_Stroj ON dbo._TabVyroba_OperaceStartStop (IDStroj)
WITH (PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
/* 26.10.2023 */
IF COL_LENGTH(N'dbo._TabVyroba_OperaceStartStop', N'PosledniChyba') IS NULL ALTER TABLE dbo._TabVyroba_OperaceStartStop ADD PosledniChyba NVARCHAR(255) NULL
/* 28.10.2023 */
IF COL_LENGTH(N'dbo._TabVyroba_OperaceStartStop', N'IDMzda') IS NULL ALTER TABLE dbo._TabVyroba_OperaceStartStop ADD IDMzda INT NULL
IF COL_LENGTH(N'dbo._TabVyroba_OperaceStartStop', N'IDEvidRozpracOper') IS NULL ALTER TABLE dbo._TabVyroba_OperaceStartStop ADD IDEvidRozpracOper INT NULL
IF COL_LENGTH(N'dbo._TabVyroba_OperaceStartStop', N'Ukonceno') IS NULL ALTER TABLE dbo._TabVyroba_OperaceStartStop ADD Ukonceno BIT NOT NULL DEFAULT 0
/* 13.10.2023 */
IF COL_LENGTH(N'dbo._TabVyroba_OperaceStartStop', N'IDDokladOZ') IS NULL ALTER TABLE dbo._TabVyroba_OperaceStartStop ADD IDDokladOZ INT NULL
/* 7.10.2024 */
IF COL_LENGTH(N'dbo._TabVyroba_OperaceStartStop', N'Nazev') IS NULL ALTER TABLE dbo._TabVyroba_OperaceStartStop ADD Nazev NVARCHAR(50) NULL

View File

@ -0,0 +1,25 @@
IF OBJECT_ID(N'dbo._TabVyroba_OperaceStartStopVydej', N'U') IS NULL
CREATE TABLE dbo._TabVyroba_OperaceStartStopVydej (
ID int IDENTITY(1, 1) NOT NULL,
IDHlava int NOT NULL,
IDKmenZbozi int NOT NULL,
Mnozstvi numeric(19, 6) DEFAULT 0.0 NOT NULL,
MnozstviPuvodni numeric(19, 6) DEFAULT 0.0 NOT NULL,
IDPohybZbozi int NOT NULL,
CONSTRAINT PK__TabVyroba_OperaceStartStopVydej PRIMARY KEY CLUSTERED (ID DESC)
WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
DROP INDEX IF EXISTS EI__TabVyroba_OperaceStartStopVydej_IDHlava ON dbo._TabVyroba_OperaceStartStopVydej
CREATE NONCLUSTERED INDEX EI__TabVyroba_OperaceStartStopVydej_IDHlava ON dbo._TabVyroba_OperaceStartStopVydej (IDHlava)
WITH (PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
DROP INDEX IF EXISTS EI__TabVyroba_OperaceStartStopVydej_IDKmen ON dbo._TabVyroba_OperaceStartStopVydej
CREATE NONCLUSTERED INDEX EI__TabVyroba_OperaceStartStopVydej_IDKmen ON dbo._TabVyroba_OperaceStartStopVydej (IDKmenZbozi)
WITH (PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
DROP INDEX IF EXISTS EI__TabVyroba_OperaceStartStopVydej_PohybOZ ON dbo._TabVyroba_OperaceStartStopVydej
CREATE NONCLUSTERED INDEX EI__TabVyroba_OperaceStartStopVydej_PohybOZ ON dbo._TabVyroba_OperaceStartStopVydej (IDPohybZbozi)
WITH (PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)

View File

@ -0,0 +1,82 @@
IF OBJECT_ID(N'dbo._TabVyroba_Palety', N'U') IS NULL
CREATE TABLE dbo._TabVyroba_Palety (
ID int IDENTITY(1, 1) NOT NULL,
Typ tinyint DEFAULT 0 NOT NULL,
CisloPalety nvarchar(50) NOT NULL,
Sarze nvarchar(30) NULL,
CisloOrg int NULL,
IDPrikaz int NULL,
IDKmen int NULL,
IDStroj int NULL,
IDVyrCisPrikaz int NULL,
IDPlanRozpis INT NULL,
DatPlan datetime NULL,
HodinaPlan smallint NULL,
DatZahajeni datetime NULL,
DatUkonceni datetime NULL,
Mnozstvi int DEFAULT 0 NOT NULL,
MnozstviKA smallint DEFAULT 0 NOT NULL,
MnozstviPlneKA smallint DEFAULT 0 NOT NULL,
MnoztviPosledniKA smallint DEFAULT 0 NOT NULL,
KusuVKA smallint DEFAULT 0 NOT NULL,
JSONDataStart nvarchar(max) NULL,
JSONStartResp nvarchar(max) NULL,
JSONDataKonec nvarchar(max) NULL,
JSONKonecResp nvarchar(max) NULL,
DatPorizeni datetime DEFAULT getdate() NOT NULL,
JeCislo AS CONVERT([bit],case when isnumeric([CisloPalety])=(1) then (1) else (0) end),
CONSTRAINT PK__TabVyroba_Palety PRIMARY KEY CLUSTERED (ID DESC) WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
/* 25.11.2023 */
IF COL_LENGTH(N'dbo._TabVyroba_Palety', N'IDKmen') IS NULL ALTER TABLE dbo._TabVyroba_Palety ADD IDKmen INT NULL
IF COL_LENGTH(N'dbo._TabVyroba_Palety', N'IDVyrCisPrikaz') IS NULL ALTER TABLE dbo._TabVyroba_Palety ADD IDVyrCisPrikaz INT NULL
IF COL_LENGTH(N'dbo._TabVyroba_Palety', N'KusuVKA') IS NULL ALTER TABLE dbo._TabVyroba_Palety ADD KusuVKA SMALLINT DEFAULT 0 NOT NULL
IF COL_LENGTH(N'dbo._TabVyroba_Palety', N'DatExpirace') IS NULL ALTER TABLE dbo._TabVyroba_Palety ADD DatExpirace DATETIME NULL
/* 29.10.2024 */
IF COL_LENGTH(N'dbo._TabVyroba_Palety', N'IDPlanRozpis') IS NULL ALTER TABLE dbo._TabVyroba_Palety ADD IDPlanRozpis INT NULL
IF COL_LENGTH(N'dbo._TabVyroba_Palety', N'DatPlan') IS NULL ALTER TABLE dbo._TabVyroba_Palety ADD DatPlan DATETIME NULL
IF COL_LENGTH(N'dbo._TabVyroba_Palety', N'HodinaPlan') IS NULL ALTER TABLE dbo._TabVyroba_Palety ADD HodinaPlan TINYINT NULL
/* 7.12.2024 */
IF COL_LENGTH(N'dbo._TabVyroba_Palety', N'JSONDataStart') IS NULL ALTER TABLE dbo._TabVyroba_Palety ADD JSONDataStart NVARCHAR(max) NULL
IF COL_LENGTH(N'dbo._TabVyroba_Palety', N'JSONDataKonec') IS NULL ALTER TABLE dbo._TabVyroba_Palety ADD JSONDataKonec NVARCHAR(max) NULL
IF COL_LENGTH(N'dbo._TabVyroba_Palety', N'JSONStartResp') IS NULL ALTER TABLE dbo._TabVyroba_Palety ADD JSONStartResp NVARCHAR(max) NULL
IF COL_LENGTH(N'dbo._TabVyroba_Palety', N'JSONKonecResp') IS NULL ALTER TABLE dbo._TabVyroba_Palety ADD JSONKonecResp NVARCHAR(max) NULL
IF EXISTS (SELECT 1 FROM sys.extended_properties WHERE [name]='MS_Description' AND major_id=OBJECT_ID(N'dbo._TabVyroba_Palety', N'U'))
EXEC sp_dropextendedproperty @name='MS_Description', @level0type='schema', @level0name='dbo', @level1type='table', @level1name='_TabVyroba_Palety', @level2type='column', @level2name='Typ'
EXEC sp_addextendedproperty @name='MS_Description', @value=N'0-nedefinovano
1-vyrobek pekarna (vlastni)
2-vyrobek pekarna (externi)
3-material
4-zbozi
5-nestandard', @level0type='schema', @level0name='dbo', @level1type='table', @level1name='_TabVyroba_Palety', @level2type='column', @level2name='Typ'
DROP INDEX IF EXISTS EI__TabVyroba_Palety_Typ ON dbo._TabVyroba_Palety
CREATE NONCLUSTERED INDEX EI__TabVyroba_Palety_Typ ON dbo._TabVyroba_Palety (Typ)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
DROP INDEX IF EXISTS EI__TabVyroba_Palety_IdPrikaz ON dbo._TabVyroba_Palety
CREATE NONCLUSTERED INDEX EI__TabVyroba_Palety_IdPrikaz ON dbo._TabVyroba_Palety (IDPrikaz)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
DROP INDEX IF EXISTS EI__TabVyroba_Palety_IdStroj ON dbo._TabVyroba_Palety
CREATE NONCLUSTERED INDEX EI__TabVyroba_Palety_IdStroj ON dbo._TabVyroba_Palety (IDStroj)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
DROP INDEX IF EXISTS EI__TabVyroba_Palety_CisloOrg ON dbo._TabVyroba_Palety
CREATE NONCLUSTERED INDEX EI__TabVyroba_Palety_CisloOrg ON dbo._TabVyroba_Palety (CisloOrg)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)

View File

@ -0,0 +1,22 @@
IF OBJECT_ID(N'dbo._TabVyroba_PaletyPohybOZ', N'U') IS NULL
CREATE TABLE dbo._TabVyroba_PaletyPohybOZ (
ID int IDENTITY(1, 1) NOT NULL,
IDPalety int NOT NULL,
IDPohybOZ int NOT NULL,
Sarze nvarchar(30) COLLATE Czech_CI_AS NULL,
Mnozstvi int NULL,
MnozstviKA smallint NULL,
CONSTRAINT PK_TabVyroba_PaletyPohybOZ PRIMARY KEY CLUSTERED (ID DESC)
WITH (
PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
DROP INDEX IF EXISTS EI_TabVyroba_PaletyPohybOZ_Paleta ON dbo._TabVyroba_PaletyPohybOZ
CREATE NONCLUSTERED INDEX EI_TabVyroba_PaletyPohybOZ_Paleta ON dbo._TabVyroba_PaletyPohybOZ (IDPalety)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
DROP INDEX IF EXISTS EI_TabVyroba_PaletyPohybOZ_PohybZbozi ON dbo._TabVyroba_PaletyPohybOZ
CREATE NONCLUSTERED INDEX EI_TabVyroba_PaletyPohybOZ_PohybZbozi ON dbo._TabVyroba_PaletyPohybOZ (IDPohybOZ)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)

View File

@ -0,0 +1,37 @@
IF OBJECT_ID(N'dbo._TabVyroba_PaletyUkonceni', N'U') IS NULL
CREATE TABLE dbo._TabVyroba_PaletyUkonceni (
ID int IDENTITY(1, 1) NOT NULL,
IDPalety INT,
IDPrikaz INT,
IDMzda INT,
IDMezd NVARCHAR(max) NULL,
PocetKs NUMERIC(19,6) DEFAULT 0.0 NOT NULL,
PocetKA NUMERIC(19,6) DEFAULT 0.0 NOT NULL,
NeuplnaPalPocetKA NUMERIC(19,6) DEFAULT 0.0 NOT NULL,
NeuplnaPalKsVPoslKA NUMERIC(19,6) DEFAULT 0.0 NOT NULL,
ErrMsg NVARCHAR(255) NULL,
Autor nvarchar(80) DEFAULT suser_sname() NOT NULL,
DatPorizeni datetime DEFAULT getdate() NOT NULL,
PRIMARY KEY (ID DESC)
)
/* 20.3.2024 */
IF COL_LENGTH(N'dbo._TabVyroba_PaletyUkonceni', N'IDPrikaz') IS NULL ALTER TABLE dbo._TabVyroba_PaletyUkonceni ADD IDPrikaz INT NULL
IF COL_LENGTH(N'dbo._TabVyroba_PaletyUkonceni', N'IDMzda') IS NULL ALTER TABLE dbo._TabVyroba_PaletyUkonceni ADD IDMzda INT NULL
DROP INDEX IF EXISTS EI__TabVyroba_PaletyUkonceni_IDPalety ON dbo._TabVyroba_PaletyUkonceni
CREATE NONCLUSTERED INDEX EI__TabVyroba_PaletyUkonceni_IDPalety ON dbo._TabVyroba_PaletyUkonceni (IDPalety)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
DROP INDEX IF EXISTS EI__TabVyroba_PaletyUkonceni_IDPrikaz ON dbo._TabVyroba_PaletyUkonceni
CREATE NONCLUSTERED INDEX EI__TabVyroba_PaletyUkonceni_IDPrikaz ON dbo._TabVyroba_PaletyUkonceni (IDPrikaz)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
/* 8.10.2024 */
IF COL_LENGTH(N'dbo._TabVyroba_PaletyUkonceni', N'IDMezd') IS NULL ALTER TABLE dbo._TabVyroba_PaletyUkonceni ADD IDMezd NVARCHAR(MAX) NULL
/* 10.12.2024 */
IF COL_LENGTH(N'dbo._TabVyroba_PaletyUkonceni', N'ErrMsg') IS NULL ALTER TABLE dbo._TabVyroba_PaletyUkonceni ADD ErrMsg NVARCHAR(255) NULL

View File

@ -0,0 +1,32 @@
IF OBJECT_ID(N'dbo._TabVyroba_StrojCinnost', N'U') IS NULL
CREATE TABLE dbo._TabVyroba_StrojCinnost
(ID INT IDENTITY(1,1) NOT NULL,
IDStroje INT NOT NULL,
Datum DATETIME NOT NULL DEFAULT CONVERT(datetime, CONVERT(int, CONVERT(float, GETDATE()))),
Smena TINYINT NOT NULL DEFAULT 1,
Cinnost NVARCHAR(50) NOT NULL,
IdCinnost INT, -- pro budouci pouziti
DatKonec DATETIME NULL,
DatPorizeni DATETIME NOT NULL DEFAULT GETDATE(),
PRIMARY KEY (ID DESC)
)
/* 12.12.2023 */
IF COL_LENGTH(N'dbo._TabVyroba_StrojCinnost', N'DatKonec') IS NULL ALTER TABLE dbo._TabVyroba_StrojCinnost ADD DatKonec DATETIME NULL
DECLARE @currDat DATETIME=GETDATE()
IF (COL_LENGTH(N'dbo.TabPrikazMzdyAZmetky_EXT', N'_TestoViskozita') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPrikazMzdyAZmetky', @NazevAtrSys=N'_TestoViskozita', @Skupina=NULL, @NazevAtrVer=N'Viskozita t<>sta',
@NazevAtrVerZkr=N'Viskozita', @TypAtr=N'NUMERIC', @MaskaAtr=NULL, @VerejnyAtr=N'N', @SirkaSloupceAtr=10, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=1,
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'NUMERIC', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL
IF (COL_LENGTH(N'dbo.TabPrikazMzdyAZmetky_EXT', N'_TestoViskozita2') IS NULL)
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPrikazMzdyAZmetky', @NazevAtrSys=N'_TestoViskozita2', @Skupina=NULL, @NazevAtrVer=N'Viskozita t<>sta 2',
@NazevAtrVerZkr=N'Viskozita 2', @TypAtr=N'NUMERIC', @MaskaAtr=NULL, @VerejnyAtr=N'N', @SirkaSloupceAtr=10, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=1,
@KonverzeAtr=NULL, @ExtEd_Poradi=2, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
@TypAtrSQL=N'NUMERIC', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL

View File

@ -0,0 +1,26 @@
IF OBJECT_ID(N'dbo._TabVyroba_VydejMatSarze', N'U') IS NULL
CREATE TABLE dbo._TabVyroba_VydejMatSarze (
ID INT IDENTITY(1,1) NOT NULL,
IDPohybZbozi INT,
Sarze NVARCHAR(100) NOT NULL,
Mnozstvi NUMERIC(19,6) DEFAULT 0.0 NOT NULL,
Autor nvarchar(80) DEFAULT suser_sname() NOT NULL,
DatPorizeni datetime DEFAULT getdate() NOT NULL,
PRIMARY KEY (ID DESC)
)
/* 14.5.2024 */
IF COL_LENGTH(N'dbo._TabVyroba_VydejMatSarze', N'IDKmenZbozi') IS NULL ALTER TABLE dbo._TabVyroba_VydejMatSarze ADD IDKmenZbozi INT NULL
DROP INDEX IF EXISTS EI__TabVyroba_VydejMatSarze_IDPohybZbozi ON dbo._TabVyroba_VydejMatSarze
CREATE NONCLUSTERED INDEX EI__TabVyroba_VydejMatSarze_IDPohybZbozi ON dbo._TabVyroba_VydejMatSarze (IDPohybZbozi)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
DROP INDEX IF EXISTS EI__TabVyroba_VydejMatSarze_IDKmenZbozi ON dbo._TabVyroba_VydejMatSarze
CREATE NONCLUSTERED INDEX EI__TabVyroba_VydejMatSarze_IDKmenZbozi ON dbo._TabVyroba_VydejMatSarze (IDKmenZbozi)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)

View File

@ -0,0 +1,38 @@
IF OBJECT_ID(N'dbo._TabVyroba_KontrolyCCP1', N'U') IS NULL
CREATE TABLE dbo._TabVyroba_KontrolyCCP1 (
ID int IDENTITY(1, 1) NOT NULL,
IDStroj int NULL,
Smena tinyint NULL,
Teplota numeric(8, 2) NULL,
Rychlost numeric(15, 2) NULL,
Hmotnost numeric(19, 6) NULL,
Delka numeric(19, 6) NULL,
Prumer numeric(19, 6) NULL,
OdpovidaPredpisu bit DEFAULT 0 NULL,
IDKmenZbozi int NOT NULL,
NapravneOpatreni nvarchar(255) COLLATE Czech_CI_AS NULL,
Uzavreno bit DEFAULT 0 NULL,
Autor nvarchar(100) COLLATE Czech_CI_AS DEFAULT suser_sname() NOT NULL,
Zmenil nvarchar(100) COLLATE Czech_CI_AS NULL,
DatPorizeni datetime DEFAULT getdate() NOT NULL,
DatPorizeni_X AS CONVERT([datetime],CONVERT([int],CONVERT([float],[DatPorizeni]))),
DatPorizeni_D AS datepart(day,[DatPorizeni]),
DatPorizeni_M AS datepart(month,[DatPorizeni]),
DatPorizeni_Y AS datepart(year,[DatPorizeni]),
DatPorizeni_W AS datepart(week,[DatPorizeni]),
DatZmeny datetime NULL,
VyrobniDen date NULL,
CONSTRAINT PK__TabVyroba_KontrolyCCP1 PRIMARY KEY CLUSTERED (ID DESC) WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
IF NOT EXISTS(SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID('dbo._TabVyroba_KontrolyCCP1') AND name=N'EI__TabVyroba_KontrolyCCP1_Kmen')
CREATE NONCLUSTERED INDEX EI__TabVyroba_KontrolyCCP1_Kmen ON dbo._TabVyroba_KontrolyCCP1 (IDKmenZbozi)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
IF NOT EXISTS(SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID('dbo._TabVyroba_KontrolyCCP1') AND name=N'EI__TabVyroba_KontrolyCCP1_Stroj')
CREATE NONCLUSTERED INDEX EI__TabVyroba_KontrolyCCP1_Stroj ON dbo._TabVyroba_KontrolyCCP1 (IDStroj)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)

View File

@ -0,0 +1,16 @@
IF OBJECT_ID(N'dbo._TabVyroba_OdpadPekarna', N'U') IS NULL
CREATE TABLE dbo._TabVyroba_OdpadPekarna (
ID int IDENTITY(1, 1) NOT NULL, IDStroje int NOT NULL, Datum datetime NOT NULL, Smena tinyint NOT NULL, OdpadSuchy numeric(19, 6) DEFAULT 0 NOT NULL,
OdpadMokry numeric(19, 6) DEFAULT 0 NOT NULL, Poznamka nvarchar(500) COLLATE Czech_CI_AS NULL, Datum_X AS CONVERT([datetime],CONVERT([int],CONVERT([float],[Datum]))),
Datum_D AS datepart(day,[Datum]), Datum_W AS datepart(week,[Datum]), Datum_M AS datepart(month,[Datum]), Datum_Q AS datepart(quarter,[Datum]), Datum_Y AS datepart(year,[Datum]),
Autor nvarchar(80) COLLATE Czech_CI_AS DEFAULT suser_sname() NOT NULL,
DatPorizeni datetime DEFAULT getdate() NOT NULL,
Zmenil nvarchar(80) COLLATE Czech_CI_AS NULL,
DatZmeny datetime NULL,
CONSTRAINT PK_TabVyroba_OdpadPekarna PRIMARY KEY CLUSTERED (ID DESC) WITH ( PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
IF NOT EXISTS(SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID('dbo._TabVyroba_OdpadPekarna') AND name=N'EI_TabVyroba_OdpadPekarna_Stroj')
CREATE NONCLUSTERED INDEX EI_TabVyroba_OdpadPekarna_Stroj ON dbo._TabVyroba_OdpadPekarna (IDStroje)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)

View File

@ -0,0 +1,38 @@
IF OBJECT_ID(N'dbo._TabVyroba_TestoSpotreba', N'U') IS NULL
CREATE TABLE dbo._TabVyroba_TestoSpotreba (
ID int IDENTITY(1, 1) NOT NULL,
IDHlava int NULL,
IDPrikaz int NULL,
IDPrPostup INT,
IDDoklad int NULL,
Mnozstvi numeric(19, 6) DEFAULT 0.0 NOT NULL,
DokladPrP int NULL,
AltPrP nchar(1) COLLATE Czech_CI_AS NULL,
PaletovyList nvarchar(50) NULL,
Sarze nvarchar(30) NULL,
DeviceID nvarchar(50) COLLATE Czech_CI_AS NULL,
DatPorizeni datetime DEFAULT getdate() NOT NULL,
CONSTRAINT PK__TabVyroba_TestoSpotreba PRIMARY KEY CLUSTERED (ID DESC) WITH ( PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
/* 20.3.2024 */
IF COL_LENGTH(N'dbo._TabVyroba_TestoSpotreba', N'IDHlava') IS NOT NULL ALTER TABLE dbo._TabVyroba_TestoSpotreba ALTER COLUMN IDHlava INT NULL
IF COL_LENGTH(N'dbo._TabVyroba_TestoSpotreba', N'IDPrikaz') IS NOT NULL ALTER TABLE dbo._TabVyroba_TestoSpotreba ALTER COLUMN IDPrikaz INT NULL
IF COL_LENGTH(N'dbo._TabVyroba_TestoSpotreba', N'IDPrikaz') IS NULL ALTER TABLE dbo._TabVyroba_TestoSpotreba ADD IDPrikaz INT NULL
IF COL_LENGTH(N'dbo._TabVyroba_TestoSpotreba', N'IDPrPostup') IS NULL ALTER TABLE dbo._TabVyroba_TestoSpotreba ADD IDPrPostup INT NULL
IF COL_LENGTH(N'dbo._TabVyroba_TestoSpotreba', N'IDDoklad') IS NULL ALTER TABLE dbo._TabVyroba_TestoSpotreba ADD IDDoklad INT NULL
DROP INDEX IF EXISTS EI_TabVyroba_TestoSpotreba_IDHlava ON dbo._TabVyroba_TestoSpotreba
CREATE NONCLUSTERED INDEX EI_TabVyroba_TestoSpotreba_IDHlava ON dbo._TabVyroba_TestoSpotreba (IDHlava)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
DROP INDEX IF EXISTS EI_TabVyroba_TestoSpotreba_IDPrikaz ON dbo._TabVyroba_TestoSpotreba
CREATE NONCLUSTERED INDEX EI_TabVyroba_TestoSpotreba_IDPrikaz ON dbo._TabVyroba_TestoSpotreba (IDPrikaz)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
DROP INDEX IF EXISTS EI_TabVyroba_TestoSpotreba_IDPrPostup ON dbo._TabVyroba_TestoSpotreba
CREATE NONCLUSTERED INDEX EI_TabVyroba_TestoSpotreba_IDPrPostup ON dbo._TabVyroba_TestoSpotreba (IDPrPostup)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)

View File

@ -0,0 +1,73 @@
IF OBJECT_ID(N'dbo._TabVyroba_TestoVyroba', N'U') IS NULL
CREATE TABLE dbo._TabVyroba_TestoVyroba (
ID int IDENTITY(1, 1) NOT NULL,
IdPHIdent int NULL,
IDPrikaz int NULL,
IDDokladVydejMat int NULL,
IDStrojPek INT NULL,
IDKmenZbozi int NULL,
SkupZbo NVARCHAR(3) NULL,
RegCis NVARCHAR(30) NULL,
MoukaHmot NUMERIC(10,2) NOT NULL DEFAULT 0.0,
MoukaSilo TINYINT NULL,
VodaLitry NUMERIC(10,2) NOT NULL DEFAULT 0.0,
VodaPridavek NUMERIC(10,2) NOT NULL DEFAULT 0.0,
Viskozita TINYINT NOT NULL DEFAULT 0,
Viskozita2 TINYINT NOT NULL DEFAULT 0,
DatPriprava DATETIME NULL,
VyrobniDen DATETIME,
Smena TINYINT,
DatVypousteni DATETIME NULL,
Spotrebovano numeric(10, 6) DEFAULT 0.0 NOT NULL,
DatPorizeni datetime DEFAULT getdate() NOT NULL,
DatPorizeni_H AS datepart(hour,[DatPorizeni]),
DatPorizeni_N AS datepart(minute,[DatPorizeni]),
DatPorizeni_D AS datepart(day,[DatPorizeni]),
DatPorizeni_T AS datepart(week,[DatPorizeni]),
DatPorizeni_M AS datepart(month,[DatPorizeni]),
DatPorizeni_Q AS datepart(quarter,[DatPorizeni]),
DatPorizeni_Y AS datepart(year,[DatPorizeni]),
DatPriprava_X AS CONVERT(datetime, CONVERT(int, CONVERT(float, DatPriprava))),
CONSTRAINT PK__TabVyroba_TestoVyroba PRIMARY KEY CLUSTERED (ID DESC) WITH ( PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
/* 10.12.2023 */
IF COL_LENGTH(N'dbo._TabVyroba_TestoVyroba', N'IDStrojPek') IS NULL ALTER TABLE dbo._TabVyroba_TestoVyroba ADD IDStrojPek INT NULL
IF COL_LENGTH(N'dbo._TabVyroba_TestoVyroba', N'MoukaHmot') IS NULL ALTER TABLE dbo._TabVyroba_TestoVyroba ADD MoukaHmot NUMERIC(10,2) NOT NULL DEFAULT 0.0
IF COL_LENGTH(N'dbo._TabVyroba_TestoVyroba', N'MoukaSilo') IS NULL ALTER TABLE dbo._TabVyroba_TestoVyroba ADD MoukaSilo TINYINT NULL
IF COL_LENGTH(N'dbo._TabVyroba_TestoVyroba', N'VodaLitry') IS NULL ALTER TABLE dbo._TabVyroba_TestoVyroba ADD VodaLitry NUMERIC(10,2) NOT NULL DEFAULT 0.0
IF COL_LENGTH(N'dbo._TabVyroba_TestoVyroba', N'VodaPridavek') IS NULL ALTER TABLE dbo._TabVyroba_TestoVyroba ADD VodaPridavek NUMERIC(10,2) NOT NULL DEFAULT 0.0
IF COL_LENGTH(N'dbo._TabVyroba_TestoVyroba', N'Viskozita') IS NULL ALTER TABLE dbo._TabVyroba_TestoVyroba ADD Viskozita TINYINT NULL
IF COL_LENGTH(N'dbo._TabVyroba_TestoVyroba', N'Viskozita2') IS NULL ALTER TABLE dbo._TabVyroba_TestoVyroba ADD Viskozita2 TINYINT NULL
IF COL_LENGTH(N'dbo._TabVyroba_TestoVyroba', N'DatPriprava') IS NULL ALTER TABLE dbo._TabVyroba_TestoVyroba ADD DatPriprava DATETIME NULL
IF COL_LENGTH(N'dbo._TabVyroba_TestoVyroba', N'DatVypousteni') IS NULL ALTER TABLE dbo._TabVyroba_TestoVyroba ADD DatVypousteni DATETIME NULL
IF COL_LENGTH(N'dbo._TabVyroba_TestoVyroba', N'DatPriprava_X') IS NULL ALTER TABLE dbo._TabVyroba_TestoVyroba ADD DatPriprava_X AS CONVERT(datetime, CONVERT(int, CONVERT(float, DatPriprava)))
/* 11.12.2023 */
IF COL_LENGTH(N'dbo._TabVyroba_TestoVyroba', N'VyrobniDen') IS NULL ALTER TABLE dbo._TabVyroba_TestoVyroba ADD VyrobniDen DATETIME
IF COL_LENGTH(N'dbo._TabVyroba_TestoVyroba', N'Smena') IS NULL ALTER TABLE dbo._TabVyroba_TestoVyroba ADD Smena TINYINT
/* 20.3.2024 */
IF COL_LENGTH(N'dbo._TabVyroba_TestoVyroba', N'IDPrikaz') IS NULL ALTER TABLE dbo._TabVyroba_TestoVyroba ADD IDPrikaz INT NULL
IF COL_LENGTH(N'dbo._TabVyroba_TestoVyroba', N'IDDokladVydejMat') IS NULL ALTER TABLE dbo._TabVyroba_TestoVyroba ADD IDDokladVydejMat INT NULL
DROP INDEX IF EXISTS EI_TabVyroba_TestoVyroba_IdPH ON dbo._TabVyroba_TestoVyroba
CREATE NONCLUSTERED INDEX EI_TabVyroba_TestoVyroba_IdPH ON dbo._TabVyroba_TestoVyroba (IdPHIdent)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
DROP INDEX IF EXISTS EI_TabVyroba_TestoVyroba_IdKmen ON dbo._TabVyroba_TestoVyroba
CREATE NONCLUSTERED INDEX EI_TabVyroba_TestoVyroba_IdKmen ON dbo._TabVyroba_TestoVyroba (IDKmenZbozi)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
DROP INDEX IF EXISTS EI_TabVyroba_TestoVyroba_IdStroj ON dbo._TabVyroba_TestoVyroba
DROP INDEX IF EXISTS EI_TabVyroba_TestoVyroba_IdStrojPek ON dbo._TabVyroba_TestoVyroba
CREATE NONCLUSTERED INDEX EI_TabVyroba_TestoVyroba_IdStrojPek ON dbo._TabVyroba_TestoVyroba (IDStrojPek)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
DROP INDEX IF EXISTS EI_TabVyroba_TestoVyroba_MoukaSilo ON dbo._TabVyroba_TestoVyroba
CREATE NONCLUSTERED INDEX EI_TabVyroba_TestoVyroba_MoukaSilo ON dbo._TabVyroba_TestoVyroba (MoukaSilo)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)

View File

@ -0,0 +1,53 @@
IF OBJECT_ID(N'dbo._TabVyroba_Vzorky', N'U') IS NULL
CREATE TABLE dbo._TabVyroba_Vzorky (
ID int IDENTITY(1, 1) NOT NULL,
IDArchiv int NOT NULL,
IDStroj int NOT NULL,
IDKmenZbozi int NOT NULL,
CisloZamMistr int NULL,
KArchivaci bit DEFAULT 0 NULL,
Ukonceno bit DEFAULT 0 NULL,
Vyrazeno bit DEFAULT 0 NULL,
Autor nvarchar(128) COLLATE Czech_CI_AS DEFAULT suser_sname() NOT NULL,
DatPorizeni datetime DEFAULT getdate() NOT NULL,
DatPorizeni_X AS CONVERT([datetime],CONVERT([int],CONVERT([float],[DatPorizeni]))),
DatPorizeni_D AS datepart(day,[DatPorizeni]),
DatPorizeni_M AS datepart(month,[DatPorizeni]),
DatPorizeni_Q AS datepart(quarter,[DatPorizeni]),
DatPorizeni_T AS datepart(week,[DatPorizeni]),
DatPorizeni_Y AS datepart(year,[DatPorizeni]),
CONSTRAINT PK__TabVyroba_Vzorky PRIMARY KEY CLUSTERED (ID DESC) WITH ( PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
IF NOT EXISTS(SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID('dbo._TabVyroba_Vzorky') AND name=N'EI__TabVyroba_Vzorky_Archiv')
CREATE NONCLUSTERED INDEX EI__TabVyroba_Vzorky_Archiv ON dbo._TabVyroba_Vzorky (IDArchiv)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
IF OBJECT_ID(N'dbo._TabVyroba_VzorkyArchiv', N'U') IS NULL
CREATE TABLE dbo._TabVyroba_VzorkyArchiv (
ID int IDENTITY(1, 1) NOT NULL,
Archiv nvarchar(50) COLLATE Czech_CI_AS DEFAULT N'' NOT NULL,
Autor nvarchar(128) COLLATE Czech_CI_AS DEFAULT suser_sname() NOT NULL,
DatPorizeni datetime DEFAULT getdate() NOT NULL,
DatPorizeni_X AS CONVERT([datetime],CONVERT([int],CONVERT([float],[DatPorizeni]))),
DatPorizeni_D AS datepart(day,[DatPorizeni]),
DatPorizeni_M AS datepart(month,[DatPorizeni]),
DatPorizeni_Q AS datepart(quarter,[DatPorizeni]),
DatPorizeni_T AS datepart(week,[DatPorizeni]),
DatPorizeni_Y AS datepart(year,[DatPorizeni]),
DatUkonceni datetime NULL,
DatUkonceni_X AS CONVERT([datetime],CONVERT([int],CONVERT([float],[DatUkonceni]))),
DatUkonceni_D AS datepart(day,[DatUkonceni]),
DatUkonceni_M AS datepart(month,[DatUkonceni]),
DatUkonceni_T AS datepart(week,[DatUkonceni]),
DatUkonceni_Y AS datepart(year,[DatUkonceni]),
DatUkonceni_Q AS datepart(quarter,[DatUkonceni]),
CONSTRAINT PK__TabVyroba_VzorkyArchiv PRIMARY KEY CLUSTERED (ID DESC) WITH ( PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)

View File

@ -0,0 +1,43 @@
IF OBJECT_ID(N'dbo._hdc_PZ_PuvodniVC', N'U') IS NULL
CREATE TABLE dbo._hdc_PZ_PuvodniVC (
ID int IDENTITY(1, 1) NOT NULL,
IDPohybZbozi int NOT NULL,
IDDoklad int NULL,
IDZboSklad int NULL,
VyrCis nvarchar(100) COLLATE Czech_CI_AS NOT NULL,
IDVyrCis int NOT NULL,
Mnozstvi numeric(19, 6) NOT NULL,
Sarze NVARCHAR(100) NULL,
PaletovyList NVARCHAR(100) NULL,
IDUmisteni INT NULL,
Autor nvarchar(128) COLLATE Czech_CI_AS CONSTRAINT DF___hdc_PZ_PuvodniVC__Autor DEFAULT suser_sname() NOT NULL,
DatPorizeni datetime CONSTRAINT DF___hdc_PZ_PuvodniVC__DatPorizeni DEFAULT getdate() NOT NULL,
BlokovaniEditoru smallint NULL,
CONSTRAINT PK___hdc_PZ_PuvodniVC__ID PRIMARY KEY CLUSTERED (ID DESC) WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
/* 9.9.2024 */
IF COL_LENGTH(N'dbo._hdc_PZ_PuvodniVC', N'Sarze') IS NULL ALTER TABLE dbo._hdc_PZ_PuvodniVC ADD Sarze NVARCHAR(100) NULL
IF COL_LENGTH(N'dbo._hdc_PZ_PuvodniVC', N'PaletovyList') IS NULL ALTER TABLE dbo._hdc_PZ_PuvodniVC ADD PaletovyList NVARCHAR(100) NULL
IF COL_LENGTH(N'dbo._hdc_PZ_PuvodniVC', N'IDUmisteni') IS NULL ALTER TABLE dbo._hdc_PZ_PuvodniVC ADD IDUmisteni INT NULL
IF COL_LENGTH(N'dbo._hdc_PZ_PuvodniVC', N'IDZboSklad') IS NULL ALTER TABLE dbo._hdc_PZ_PuvodniVC ADD IDZboSklad INT NULL
IF COL_LENGTH(N'dbo._hdc_PZ_PuvodniVC', N'IDDoklad') IS NULL ALTER TABLE dbo._hdc_PZ_PuvodniVC ADD IDDoklad INT NULL
/* 13.11.2023 */
IF COL_LENGTH(N'dbo._hdc_PZ_PuvodniVC', N'Zmenil') IS NOT NULL ALTER TABLE dbo._hdc_PZ_PuvodniVC DROP COLUMN Zmenil
IF COL_LENGTH(N'dbo._hdc_PZ_PuvodniVC', N'DatZmeny') IS NOT NULL ALTER TABLE dbo._hdc_PZ_PuvodniVC DROP COLUMN DatZmeny
IF NOT EXISTS(SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID('dbo._hdc_PZ_PuvodniVC') AND name=N'EI__hdc_PZ_PuvodniVC__IDPohybZbozi')
CREATE NONCLUSTERED INDEX EI__hdc_PZ_PuvodniVC__IDPohybZbozi ON dbo._hdc_PZ_PuvodniVC (IDPohybZbozi)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
IF NOT EXISTS(SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID('dbo._hdc_PZ_PuvodniVC') AND name=N'EI__hdc_PZ_PuvodniVC__IDVyrCis')
CREATE NONCLUSTERED INDEX EI__hdc_PZ_PuvodniVC__IDVyrCis ON dbo._hdc_PZ_PuvodniVC (IDVyrCis)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
IF NOT EXISTS(SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID('dbo._hdc_PZ_PuvodniVC') AND name=N'EI__hdc_PZ_PuvodniVC__IDDoklad')
CREATE NONCLUSTERED INDEX EI__hdc_PZ_PuvodniVC__IDDoklad ON dbo._hdc_PZ_PuvodniVC (IDDoklad)
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)

24
_sql/tbl__hdc_ph_Log.sql Normal file
View File

@ -0,0 +1,24 @@
-- dbo._hdc_ph_Log
IF OBJECT_ID(N'dbo._hdc_ph_Log', N'U') IS NULL
CREATE TABLE dbo._hdc_ph_Log (
ID int IDENTITY(1, 1) NOT NULL,
LogText nvarchar(500) NULL,
Typ tinyint NULL,
IntValue int NULL,
NumValue numeric(19, 6) NULL,
StrValue nvarchar(255) NULL,
DatValue datetime NULL,
ForMail BIT NOT NULL DEFAULT 0,
MailSent DATETIME NULL,
IdJsonData INT NULL,
Autor nvarchar(80) DEFAULT suser_sname() NOT NULL,
DatPorizeni datetime DEFAULT getdate() NOT NULL,
PRIMARY KEY (ID DESC)
)
/* 14.11.2023 */
IF COL_LENGTH(N'dbo._hdc_ph_Log', N'ForMail') IS NULL ALTER TABLE dbo._hdc_ph_Log ADD ForMail BIT NOT NULL DEFAULT 0
IF COL_LENGTH(N'dbo._hdc_ph_Log', N'MailSent') IS NULL ALTER TABLE dbo._hdc_ph_Log ADD MailSent DATETIME NULL
IF COL_LENGTH(N'dbo._hdc_ph_Log', N'IdJsonData') IS NULL ALTER TABLE dbo._hdc_ph_Log ADD IdJsonData INT NULL

View File

@ -0,0 +1,51 @@
-- dbo.ET_TabDokladyZbozi_HDC_D
CREATE TRIGGER dbo.ET_TabDokladyZbozi_HDC_D ON dbo.TabDokladyZbozi
WITH EXECUTE AS CALLER
FOR DELETE
AS
BEGIN
SET NOCOUNT ON
-- !! trigger neupravujte, bude stejne pregenerovan pri startu pluginu PluginHDCRTN nebo Windows sluzby HDCDZApi !!
DECLARE
@id INT,
@dpz TINYINT,
@rada NVARCHAR(3),
@sklad NVARCHAR(30)
DECLARE c CURSOR LOCAL FAST_FORWARD FOR
SELECT d.ID, d.DruhPohybuZbo, d.RadaDokladu, d.IDSklad
FROM deleted d
OPEN c
WHILE (1=1)
BEGIN
FETCH NEXT FROM c INTO @id, @dpz, @rada, @sklad
IF (@@FETCH_STATUS<>0) BREAK
-- sync informace pro reseni ASol/ProHolding/HDC
-- vydejky
IF (@dpz=4)
BEGIN
IF OBJECT_ID(N'dbo._hdc_ph_PrijataJsonData', N'U') IS NOT NULL
UPDATE dbo._hdc_ph_PrijataJsonData SET IDDoklad=NULL WHERE IDDoklad=@id
IF OBJECT_ID(N'dbo._TabVyroba_Objednavky_Pol', N'U') IS NOT NULL
BEGIN
DELETE FROM dbo._TabVyroba_Objednavky_Pol WHERE IDDokladOZ=@id
DELETE FROM dbo._TabVyroba_Objednavky WHERE IDDokladOZ=@id
END
END
IF OBJECT_ID(N'dbo._hdc_PZ_PuvodniVC', N'U') IS NOT NULL
DELETE FROM dbo._hdc_PZ_PuvodniVC WHERE IDDoklad=@id
END
CLOSE c
DEALLOCATE c
END

View File

@ -0,0 +1,71 @@
-- dbo.ET_TabPohybyZbozi_HDC_D
CREATE TRIGGER dbo.ET_TabPohybyZbozi_HDC_D ON dbo.TabPohybyZbozi
WITH EXECUTE AS CALLER
FOR DELETE
AS
BEGIN
SET NOCOUNT ON
-- !! trigger neupravujte, bude stejne pregenerovan pri startu pluginu PluginHDCRTN nebo sluzby HDCDZApi !!
DECLARE
@id INT,
@dpz TINYINT,
@idPHId INT,
@idPHIdent1 INT,
@idPHIdent2 INT,
@idObjHlav INT
DECLARE c CURSOR LOCAL FAST_FORWARD FOR
SELECT d.ID, d.DruhPohybuZbo
FROM deleted d
OPEN c
WHILE (1=1)
BEGIN
FETCH NEXT FROM c INTO @id, @dpz
IF (@@FETCH_STATUS<>0) BREAK
-- sync informace pro reseni ASol/ProHolding/HDC
IF (@dpz=4)
BEGIN
IF OBJECT_ID(N'dbo._TabVyroba_VydejMatSarze', N'U') IS NOT NULL
DELETE FROM dbo._TabVyroba_VydejMatSarze WHERE IDPohybZbozi=@id
IF OBJECT_ID(N'dbo.TabPohybyZbozi_EXT', N'U') IS NOT NULL
BEGIN
SET @idPHId=(SELECT _HDCAPI_PHident FROM dbo.TabPohybyZbozi_EXT WHERE ID=@id)
IF (@idPHId IS NOT NULL)
IF OBJECT_ID(N'dbo._TabVyroba_Objednavky', N'U') IS NOT NULL
SELECT @idPHIdent1=IdPHIdent, @idPHIdent2=IdPHIdent2 FROM dbo._TabVyroba_Objednavky WHERE ID=@idPHId
IF OBJECT_ID(N'dbo._TabVyroba_Objednavky_Pol', N'U') IS NOT NULL
BEGIN
SELECT @idObjHlav=IDHlava FROM dbo._TabVyroba_Objednavky_Pol WHERE IDPohybOZ=@id
DELETE FROM dbo._TabVyroba_Objednavky_Pol WHERE IDPohybOZ=@id
IF OBJECT_ID(N'dbo._TabVyroba_Objednavky', N'U') IS NOT NULL
UPDATE dbo._TabVyroba_Objednavky SET MnozKVydeji=Mnozstvi - ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=@idObjHlav), 0)
WHERE ID=@idObjHlav
END
END
END
IF (@dpz=0)
BEGIN
IF OBJECT_ID(N'dbo._TabVyroba_PaletyPohybOZ', N'U') IS NOT NULL
UPDATE dbo._TabVyroba_PaletyPohybOZ SET IDPohybOZ=NULL WHERE IDPohybOZ=@id
END
IF OBJECT_ID(N'dbo._hdc_PZ_PuvodniVC', N'U') IS NOT NULL
DELETE FROM dbo._hdc_PZ_PuvodniVC WHERE IDPohybZbozi=@id
END
CLOSE c
DEALLOCATE c
END

View File

@ -0,0 +1,51 @@
-- dbo.ET_TabPohybyZbozi_HDC_IU
CREATE TRIGGER dbo.ET_TabPohybyZbozi_HDC_IU ON dbo.TabPohybyZbozi
WITH EXECUTE AS CALLER
FOR INSERT,UPDATE
AS
BEGIN
SET NOCOUNT ON
-- !! trigger neupravujte, bude stejne pregenerovan pri startu pluginu PluginHDCRTN nebo slozby HDCDZApi !!
DECLARE
@id INT,
@dpz TINYINT,
@mnoz NUMERIC(19,6),
@idObjHlav INT,
@idObjPol INT
DECLARE c CURSOR LOCAL FAST_FORWARD FOR
SELECT i.ID, i.DruhPohybuZbo, i.Mnozstvi
FROM inserted i
OPEN c
WHILE (1=1)
BEGIN
FETCH NEXT FROM c INTO @id, @dpz, @mnoz
IF (@@FETCH_STATUS<>0) BREAK
-- sync informace pro reseni ASol/ProHolding/HDC
IF (@dpz=4)
BEGIN
IF UPDATE(Mnozstvi)
BEGIN
IF OBJECT_ID(N'dbo._TabVyroba_Objednavky_Pol', N'U') IS NOT NULL
BEGIN
SELECT @idObjHlav=IDHlava, @idObjPol=ID FROM dbo._TabVyroba_Objednavky_Pol WHERE IDPohybOZ=@id
UPDATE dbo._TabVyroba_Objednavky_Pol SET Mnozstvi=@mnoz WHERE ID=@idObjPol
IF OBJECT_ID(N'dbo._TabVyroba_Objednavky', N'U') IS NOT NULL
UPDATE dbo._TabVyroba_Objednavky SET MnozKVydeji=Mnozstvi - ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=@idObjHlav), 0)
WHERE ID=@idObjHlav
END
END
END
END
CLOSE c
DEALLOCATE c
END

View File

@ -0,0 +1,47 @@
-- dbo.ET_TabVyrCP_HDC_D
CREATE TRIGGER dbo.ET_TabVyrCP_HDC_D ON dbo.TabVyrCP
WITH EXECUTE AS CALLER
FOR DELETE
AS
BEGIN
SET NOCOUNT ON
-- !! trigger neupravujte, bude stejne pregenerovan pri startu pluginu PluginHDCRTN !!
DECLARE
@id INT,
@idPZ INT,
@idObjHlav INT,
@idObjPol INT
DECLARE c CURSOR LOCAL FAST_FORWARD FOR
SELECT d.ID, d.IDPolozkaDokladu
FROM deleted d
OPEN c
WHILE (1=1)
BEGIN
FETCH NEXT FROM c INTO @id, @idPZ
IF (@@FETCH_STATUS<>0) BREAK
-- sync informace pro reseni ASol/ProHolding/HDC
IF OBJECT_ID(N'dbo._TabVyroba_Objednavky_Pol', N'U') IS NOT NULL
BEGIN
SELECT @idObjHlav=IDHlava FROM dbo._TabVyroba_Objednavky_Pol WHERE IDPohybOZ=@idPZ AND IDVyrCP=@id
DELETE FROM dbo._TabVyroba_Objednavky_Pol WHERE IDPohybOZ=@idPZ AND IDVyrCP=@id
IF OBJECT_ID(N'dbo._TabVyroba_Objednavky', N'U') IS NOT NULL
UPDATE dbo._TabVyroba_Objednavky SET MnozKVydeji=Mnozstvi - ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=@idObjHlav), 0)
WHERE ID=@idObjHlav
END
END
CLOSE c
DEALLOCATE c
END

View File

@ -0,0 +1,39 @@
-- dbo.ET_TabVyrCP_HDC_IU
CREATE TRIGGER dbo.ET_TabVyrCP_HDC_IU ON dbo.TabVyrCP
WITH EXECUTE AS CALLER
FOR INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON
-- !! trigger neupravujte, bude stejne pregenerovan pri startu pluginu PluginHDCRTN !!
DECLARE
@id INT,
@idPZ INT,
@mnoz NUMERIC(19,6)
DECLARE c CURSOR LOCAL FAST_FORWARD FOR
SELECT i.ID, i.IDPolozkaDokladu, i.Mnozstvi
FROM inserted i
OPEN c
WHILE (1=1)
BEGIN
FETCH NEXT FROM c INTO @id, @idPZ, @mnoz
IF (@@FETCH_STATUS<>0) BREAK
-- sync informace pro reseni ASol/ProHolding/HDC
IF OBJECT_ID(N'dbo._TabVyroba_Objednavky_Pol', N'U') IS NOT NULL
BEGIN
UPDATE dbo._TabVyroba_Objednavky_Pol SET Mnozstvi=@mnoz WHERE IDPohybOZ=@idPZ AND IDVyrCP=@id
END
END
CLOSE c
DEALLOCATE c
END

View File

@ -0,0 +1,43 @@
-- dbo.ET_TabVyrCisPrikaz_HDC_D
CREATE TRIGGER dbo.ET_TabVyrCisPrikaz_HDC_D ON dbo.TabVyrCisPrikaz
WITH EXECUTE AS CALLER
FOR DELETE
AS
BEGIN
SET NOCOUNT ON
DECLARE
@id INT,
@idVPr INT,
@vyrCis NVARCHAR(100),
@popis NVARCHAR(100)
DECLARE c CURSOR LOCAL FAST_FORWARD FOR
SELECT d.ID, d.IDPrikaz, d.VyrCislo, d.Popis
FROM deleted d
OPEN c
WHILE (1=1)
BEGIN
FETCH NEXT FROM c INTO @id, @idVPr, @vyrCis, @popis
IF (@@FETCH_STATUS<>0) BREAK
-- begin: reseni HDC/DZ API
IF OBJECT_ID(N'dbo._TabVyroba_Palety', N'U') IS NOT NULL
DELETE FROM dbo._TabVyroba_Palety WHERE IDPrikaz=@idVPr AND CisloPalety=@vyrCis AND Sarze=@popis
-- end: reseni HDC/DZ API
END
CLOSE c
DEALLOCATE c
-- cisteni seedu
IF EXISTS(SELECT 1 FROM dbo.TabVyrCisPrikaz)
BEGIN
SELECT @id=ISNULL(MAX(ID),1) FROM dbo.TabVyrCisPrikaz
DBCC CHECKIDENT (TabVyrCisPrikaz, RESEED, @id)
END
END

View File

@ -0,0 +1,40 @@
-- dbo.ET__TabVyroba_Objednavky_D
CREATE TRIGGER dbo.ET__TabVyroba_Objednavky_D ON dbo._TabVyroba_Objednavky
WITH EXECUTE AS CALLER
FOR DELETE
AS
BEGIN
SET NOCOUNT ON
DECLARE
@id INT
DECLARE c CURSOR LOCAL FAST_FORWARD FOR
SELECT d.ID
FROM deleted d
OPEN c
WHILE (1=1)
BEGIN
FETCH NEXT FROM c INTO @id
IF (@@FETCH_STATUS<>0) BREAK
DELETE FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=@id
END
CLOSE c
DEALLOCATE c
-- cisteni seedu
IF NOT EXISTS(SELECT 1 FROM dbo._TabVyroba_Objednavky)
TRUNCATE TABLE dbo._TabVyroba_Objednavky
ELSE
BEGIN
SELECT @id=MAX(ID) FROM dbo._TabVyroba_Objednavky
DBCC CHECKIDENT(_TabVyroba_Objednavky, RESEED, @id)
END
END

View File

@ -0,0 +1,39 @@
-- dbo.ET_TabVyroba_Objednavky_IU
CREATE TRIGGER dbo.ET_TabVyroba_Objednavky_IU ON dbo._TabVyroba_Objednavky
WITH EXECUTE AS CALLER
FOR INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON
-- !! trigger neupravujte, bude stejne pregenerovan pri startu pluginu PluginHDCRTN !!
DECLARE
@id INT,
@sz NVARCHAR(3),
@rc NVARCHAR(30),
@idKZ INT,
@sarze NVARCHAR(50)
DECLARE c CURSOR LOCAL FAST_FORWARD FOR
SELECT i.ID, i.SkupZbo, i.RegCis, i.IDKmenZbozi
FROM inserted i
OPEN c
WHILE (1=1)
BEGIN
FETCH NEXT FROM c INTO @id, @sz, @rc, @idKZ
IF (@@FETCH_STATUS<>0) BREAK
IF (@idKZ IS NULL)
BEGIN
SET @idKZ = (SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo=@sz AND RegCis=@rc)
IF (@idKZ IS NOT NULL)
UPDATE dbo._TabVyroba_Objednavky SET IDKmenZbozi=@idKZ WHERE ID=@id
END
END
CLOSE c
DEALLOCATE c
END

View File

@ -0,0 +1,26 @@
-- dbo.ET_TabVyroba_Objednavky_Pol_D
CREATE TRIGGER dbo.ET_TabVyroba_Objednavky_Pol_D ON dbo._TabVyroba_Objednavky_Pol
WITH EXECUTE AS CALLER
FOR DELETE
AS
BEGIN
SET NOCOUNT ON
-- !! trigger neupravujte, bude stejne pregenerovan pri startu pluginu PluginHDCRTN !!
DECLARE
@id INT
-- cisteni
IF EXISTS(SELECT 1 FROM dbo._TabVyroba_Objednavky_Pol)
BEGIN
SELECT @id=MAX(ID) FROM dbo._TabVyroba_Objednavky_Pol
DBCC CHECKIDENT(_TabVyroba_Objednavky_Pol, RESEED, @id)
END
ELSE
TRUNCATE TABLE dbo._TabVyroba_Objednavky_Pol
END

View File

@ -0,0 +1,25 @@
-- dbo.ET_TabVyroba_OperaceStartStop_D
CREATE TRIGGER dbo.ET_TabVyroba_OperaceStartStop_D ON dbo._TabVyroba_OperaceStartStop
WITH EXECUTE AS CALLER
FOR DELETE
AS
BEGIN
SET NOCOUNT ON
-- !! trigger neupravujte, bude stejne pregenerovan pri startu pluginu PluginHDCRTN !!
DECLARE
@id INT
-- cisteni seedu
IF EXISTS(SELECT 1 FROM dbo._TabVyroba_OperaceStartStop)
BEGIN
SELECT @id=MAX(ID) FROM dbo._TabVyroba_OperaceStartStop
DBCC CHECKIDENT(_TabVyroba_OperaceStartStop, RESEED, @id)
END
ELSE
TRUNCATE TABLE dbo._TabVyroba_OperaceStartStop
END

View File

@ -0,0 +1,37 @@
-- dbo.ET_TabVyroba_PaletyUkonceni_D
CREATE TRIGGER dbo.ET_TabVyroba_PaletyUkonceni_D ON dbo._TabVyroba_PaletyUkonceni
WITH EXECUTE AS CALLER
FOR DELETE
AS
BEGIN
SET NOCOUNT ON
-- !! trigger neupravujte, bude stejne pregenerovan pri startu pluginu PluginHDCRTN !!
DECLARE
@id INT
DECLARE c CURSOR LOCAL FOR
SELECT d.ID
FROM deleted d
OPEN c
WHILE (1=1)
BEGIN
FETCH NEXT FROM c INTO @id
IF (@@FETCH_STATUS<>0) BREAK
END
CLOSE c
DEALLOCATE c
-- cisteni
IF EXISTS(SELECT 1 FROM dbo._TabVyroba_PaletyUkonceni)
BEGIN
SELECT @id=MAX(ID) FROM dbo._TabVyroba_PaletyUkonceni
DBCC CHECKIDENT(_TabVyroba_PaletyUkonceni, RESEED, @id)
END
ELSE
TRUNCATE TABLE dbo._TabVyroba_PaletyUkonceni
END

View File

@ -0,0 +1,44 @@
-- dbo.ET_TabVyroba_Palety_D
CREATE TRIGGER dbo.ET_TabVyroba_Palety_D ON dbo._TabVyroba_Palety
WITH EXECUTE AS CALLER
FOR DELETE
AS
BEGIN
SET NOCOUNT ON
-- !! trigger neupravujte, bude stejne pregenerovan pri startu pluginu PluginHDCRTN !!
DECLARE
@id INT
DECLARE c CURSOR LOCAL FOR
SELECT d.ID
FROM deleted d
OPEN c
WHILE (1=1)
BEGIN
FETCH NEXT FROM c INTO @id
IF (@@FETCH_STATUS<>0) BREAK
IF OBJECT_ID(N'dbo._TabVyroba_PaletyUkonceni', N'U') IS NOT NULL
DELETE FROM dbo._TabVyroba_PaletyUkonceni WHERE IDPalety=@id
IF OBJECT_ID(N'dbo._TabVyroba_PaletyPohybOZ', N'U') IS NOT NULL
DELETE FROM dbo._TabVyroba_PaletyPohybOZ WHERE IDPalety=@id
END
CLOSE c
DEALLOCATE c
-- cisteni
IF EXISTS(SELECT 1 FROM dbo._TabVyroba_Palety)
BEGIN
SELECT @id=MAX(ID) FROM dbo._TabVyroba_Palety
DBCC CHECKIDENT(_TabVyroba_Palety, RESEED, @id)
END
ELSE
TRUNCATE TABLE dbo._TabVyroba_Palety
END

View File

@ -0,0 +1,38 @@
-- dbo.ET_TabVyroba_Palety_IU
CREATE TRIGGER dbo.ET_TabVyroba_Palety_IU ON dbo._TabVyroba_Palety
WITH EXECUTE AS CALLER
FOR INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON
-- !! trigger neupravujte, bude stejne pregenerovan pri startu pluginu PluginHDCRTN !!
DECLARE
@id INT,
@idVPr INT,
@idKmen INT
DECLARE c CURSOR LOCAL FAST_FORWARD FOR
SELECT i.ID, i.IDPrikaz, i.IDKmen
FROM inserted i
OPEN c
WHILE (1=1)
BEGIN
FETCH NEXT FROM c INTO @id, @idVPr, @idKmen
IF (@@FETCH_STATUS<>0) BREAK
IF (@idKmen IS NULL)
BEGIN
SELECT @idKmen=IDTabKmen FROM dbo.TabPrikaz WHERE ID=@idVPr
UPDATE dbo._TabVyroba_Palety SET IDKmen=@idKmen WHERE ID=@id
END
END
CLOSE c
DEALLOCATE c
END

View File

@ -0,0 +1,38 @@
-- dbo.ET_TabVyroba_VydejMatSarze_IU
CREATE TRIGGER dbo.ET_TabVyroba_VydejMatSarze_IU ON dbo._TabVyroba_VydejMatSarze
WITH EXECUTE AS CALLER
FOR INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON
-- !! trigger neupravujte, bude stejne pregenerovan pri startu pluginu PluginHDCRTN !!
DECLARE
@id INT,
@idPZ INT,
@idKmen INT
DECLARE c CURSOR LOCAL FAST_FORWARD FOR
SELECT i.ID, i.IDPohybZbozi, i.IDKmenZbozi
FROM inserted i
OPEN c
WHILE (1=1)
BEGIN
FETCH NEXT FROM c INTO @id, @idPZ, @idKmen
IF (@@FETCH_STATUS<>0) BREAK
IF (@idKmen IS NULL)
BEGIN
SELECT @idKmen=s.IDKmenZbozi FROM dbo.TabPoybyZbozi p INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad) WHERE p.ID=@idPZ
UPDATE dbo._TabVyroba_VydejMatSarze SET IDKmenZbozi=@idKmen WHERE ID=@id
END
END
CLOSE c
DEALLOCATE c
END

View File

@ -0,0 +1,25 @@
-- dbo.ET__hdc_PZ_PuvodniVC_D
CREATE TRIGGER dbo.ET__hdc_PZ_PuvodniVC_D ON dbo._hdc_PZ_PuvodniVC
WITH EXECUTE AS CALLER
FOR DELETE
AS
BEGIN
SET NOCOUNT ON
DECLARE
@id INT
-- cisteni
IF EXISTS (SELECT 1 FROM dbo._hdc_PZ_PuvodniVC)
BEGIN
SELECT @id=MAX(ID) FROM dbo._hdc_PZ_PuvodniVC
DBCC CHECKIDENT (_hdc_PZ_PuvodniVC, RESEED, @id)
END
ELSE
TRUNCATE TABLE dbo._hdc_PZ_PuvodniVC
END

2
_tisk Normal file
View File

@ -0,0 +1,2 @@
1 - vyrobni denik
2 - prehled CCP1

4
compileZdroje.cmd Normal file
View File

@ -0,0 +1,4 @@
@echo off
"C:\Program files (x86)\Embarcadero\Studio\23.0\bin\brcc32.exe" PluginHDCRTNResource.rc

18719
datMod.dfm Normal file

File diff suppressed because it is too large Load Diff

2221
datMod.pas Normal file

File diff suppressed because it is too large Load Diff

0
extCtrls/HeODefine.inc Normal file
View File

Some files were not shown because too many files have changed in this diff Show More