Prvni verze
This commit is contained in:
12
_plgPlan/col_AdvKPDavky_EXT.sql
Normal file
12
_plgPlan/col_AdvKPDavky_EXT.sql
Normal 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
|
||||
14
_plgPlan/col_Prikaz_EXT.sql
Normal file
14
_plgPlan/col_Prikaz_EXT.sql
Normal 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
|
||||
|
||||
4
_plgPlan/compileZdroje.cmd
Normal file
4
_plgPlan/compileZdroje.cmd
Normal 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
4766
_plgPlan/datMod2.dfm
Normal file
File diff suppressed because it is too large
Load Diff
821
_plgPlan/datMod2.pas
Normal file
821
_plgPlan/datMod2.pas
Normal 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.
|
||||
10
_plgPlan/ep_Vyroba_AdvPlan_ArchivujDavky.sql
Normal file
10
_plgPlan/ep_Vyroba_AdvPlan_ArchivujDavky.sql
Normal 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
|
||||
|
||||
556
_plgPlan/ep_Vyroba_AdvPlan_ZapisDavkyPrikazu.sql
Normal file
556
_plgPlan/ep_Vyroba_AdvPlan_ZapisDavkyPrikazu.sql
Normal 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
|
||||
|
||||
133
_plgPlan/ep_Vyroba_ZapisDoPlanu.sql
Normal file
133
_plgPlan/ep_Vyroba_ZapisDoPlanu.sql
Normal 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
|
||||
|
||||
198
_plgPlan/ep_Vyroba_ZrusZakazkuPlanuDleFinPrikazu.sql
Normal file
198
_plgPlan/ep_Vyroba_ZrusZakazkuPlanuDleFinPrikazu.sql
Normal 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
294
_plgPlan/frmKmen.dfm
Normal 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
226
_plgPlan/frmKmen.pas
Normal 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
1500
_plgPlan/frmPlan.dfm
Normal file
File diff suppressed because it is too large
Load Diff
1436
_plgPlan/frmPlan.pas
Normal file
1436
_plgPlan/frmPlan.pas
Normal file
File diff suppressed because it is too large
Load Diff
1101
_plgPlan/frmPlanPaletListy.dfm
Normal file
1101
_plgPlan/frmPlanPaletListy.dfm
Normal file
File diff suppressed because it is too large
Load Diff
312
_plgPlan/frmPlanPaletListy.pas
Normal file
312
_plgPlan/frmPlanPaletListy.pas
Normal 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
1245
_plgPlan/frmRamcovyPlan.dfm
Normal file
File diff suppressed because it is too large
Load Diff
63
_plgPlan/frmRamcovyPlan.pas
Normal file
63
_plgPlan/frmRamcovyPlan.pas
Normal 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.
|
||||
93
_plgPlan/frmVyrobniTyden.dfm
Normal file
93
_plgPlan/frmVyrobniTyden.dfm
Normal 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
|
||||
118
_plgPlan/frmVyrobniTyden.pas
Normal file
118
_plgPlan/frmVyrobniTyden.pas
Normal 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
113
_plgPlan/frmZavady.dfm
Normal 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
124
_plgPlan/frmZavady.pas
Normal 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
4
_plgPlan/iConsts.inc
Normal file
@ -0,0 +1,4 @@
|
||||
const
|
||||
CRLF = #13#10;
|
||||
tblPalety = '[dbo].[_TabVyroba_Palety]';
|
||||
tblPlanRozpad = '[dbo].[_TabVyroba_PlanRozpad]';
|
||||
21
_plgPlan/tbl__TabVyrobaPlanRozpad.sql
Normal file
21
_plgPlan/tbl__TabVyrobaPlanRozpad.sql
Normal 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)
|
||||
23
_plgPlan/trg__TabAdvKPDavky_HDC_D.sql
Normal file
23
_plgPlan/trg__TabAdvKPDavky_HDC_D.sql
Normal 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
|
||||
23
_plgPlan/trg__TabPlan_HDC_D.sql
Normal file
23
_plgPlan/trg__TabPlan_HDC_D.sql
Normal 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
|
||||
Reference in New Issue
Block a user