using System; using System.Collections.Generic; using System.Data; using System.Text; using Kreta.Core.Logic; using Kreta.DataAccessManual.Interfaces; using Kreta.DataAccessManual.ParameterClasses; using Kreta.DataAccessManual.Util; using Kreta.Framework; using Kreta.Framework.Util; using Kreta.Resources; using SDA.DataProvider; namespace Kreta.DataAccessManual { internal class HRModulDAL : DataAccessBase, IHRModulDAL { public HRModulDAL(DalHandler handler) : base(handler) { } public HRModulDAL(DalHandler handler, GridParameters gridParameters) : base(handler, gridParameters) { } public DataSet TavolletjelentoDokList(int tavolletId) { List paramlist = new List(); paramlist.Add(new CommandParameter("pTavolletId", tavolletId)); StringBuilder command = new StringBuilder($@" SELECT iktId.ID as ID ,ISNULL(iktId.C_IKTATOSZAM, '-') as Iktatoszam ,iktId.C_DOKUMENTUMNEVE as DokumentumNev ,'T' as IsDokumentum FROM T_IKTATOTTDOKUMENTUMTAVOLLET tid INNER JOIN T_IKTATOTTDOKUMENTUM iktId on tid.C_IKTATOTTDOKUMENTUMID = iktId.ID LEFT JOIN T_IKTATOTTDOKUMENTUMCSATOLMANY iktCsat on iktCsat.C_IKTATOTTDOKUMENTUMID = iktId.ID WHERE tid.C_KOZPONTITAVOLLETID = :pTavolletId AND iktCsat.ID IS NULL AND iktId.C_DOKUMENTUMNEVE <> '{HRModulResource.TavolletIktatasSablonGeneraltFajlNeve}' UNION SELECT iktCsat.ID as ID ,ISNULL(iktId.C_IKTATOSZAM, '-') as Iktatoszam ,iktCsat.C_FAJLNEV as DokumentumNev ,'F' as IsDokumentum FROM T_IKTATOTTDOKUMENTUMTAVOLLET tid INNER JOIN T_IKTATOTTDOKUMENTUM iktId on tid.C_IKTATOTTDOKUMENTUMID = iktId.ID INNER JOIN T_IKTATOTTDOKUMENTUMCSATOLMANY iktCsat on iktCsat.C_IKTATOTTDOKUMENTUMID = iktId.ID WHERE tid.C_KOZPONTITAVOLLETID = :pTavolletId "); DataSet ds = GetData(command.ToString(), paramlist); return ds; } public void InsertDokumentum(int tavolletId, int dokumentumId) { DalHelper.IktatottDokumentumTavolletDal().Insert(tavolletId, dokumentumId); DalHelper.Commit(); } public void UpdateSzinkronizalatlan(int intezmenyId, int tanevId, List list) { using (var command = new SDACommand { Connection = UserContext.Instance.SDAConnection, Transaction = UserContext.Instance.SDATransaction, CommandText = $@" UPDATE T_IKTATOTTDOKUMENTUMTAVOLLET_OSSZES SET [C_SZINKRONIZALVA] = GETDATE() ,[SERIAL] = SERIAL + 1 WHERE C_KOZPONTITAVOLLETID IN ({SqlLogic.ParseListToParameter(list)}) AND C_INTEZMENYID = :pIntezmenyId AND C_TANEVID = :pTanevId AND C_SZINKRONIZALVA IS NULL " }) { command.Parameters.Add("pTanevId", tanevId); command.Parameters.Add("pIntezmenyId", intezmenyId); command.ExecuteNonQuery(); DalHelper.Commit(); } } public int GetTavolletIdotartam(DateTime tavolletKezdet, DateTime tavolletVeg) { using (var command = new SDACommand()) { command.Connection = UserContext.Instance.SDAConnection; command.Transaction = UserContext.Instance.SDATransaction; command.Parameters.Add(nameof(tavolletKezdet), tavolletKezdet); command.Parameters.Add(nameof(tavolletVeg), tavolletVeg); command.CommandText = $@" SELECT COUNT(1) FROM T_NAPTARINAP_OSSZES nn WHERE nn.C_NAPDATUMA BETWEEN @{nameof(tavolletKezdet)} AND @{nameof(tavolletVeg)} AND nn.C_NAPTIPUSA NOT IN (1386, 6833, 1396) AND nn.TOROLT = 'F' AND (nn.C_HETNAPJA BETWEEN 1408 AND 1412 OR EXISTS ( SELECT TOP 1 1 FROM T_TANEVRENDJE_OSSZES tr WHERE tr.TOROLT = 'F' AND tr.C_DATUM = nn.C_NAPDATUMA AND tr.C_EGYEDINAP = 'T' AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T')) "; var result = int.Parse(command.ExecuteScalar()?.ToString()); return tavolletKezdet == tavolletVeg ? 1 : result; } } public DataSet GetTavolletSzinkronizalatlanDok(TavolletIktatottPCO pco) { List paramlist = new List() { //paramétereket beállítani new CommandParameter("pTanevId", pco.TanevId), new CommandParameter("pIntezmenyId", pco.IntezmenyId) }; var command = @" WITH x AS (SELECT C_KOZPONTITAVOLLETID FROM T_IKTATOTTDOKUMENTUMTAVOLLET_OSSZES tavol INNER JOIN T_IKTATOTTDOKUMENTUM_OSSZES iktat ON iktat.ID = tavol.C_IKTATOTTDOKUMENTUMID AND iktat.C_INTEZMENYID = tavol.C_INTEZMENYID AND iktat.C_TANEVID = iktat.C_TANEVID AND tavol.C_SZINKRONIZALVA IS NULL WHERE tavol.TOROLT = 'F' AND tavol.C_TANEVID = @pTanevId AND tavol.C_INTEZMENYID = @pIntezmenyId AND C_ELEKTRONIKUSPELDANYID IS NULL) SELECT C_KOZPONTITAVOLLETID, C_ELEKTRONIKUSPELDANYID, C_FAJLNEV, C_IKTATASDATUMA, C_NYOMTATASINEV, C_EGYEDIAZONOSITO FROM (SELECT iktDokCsat.id ,tavol.C_KOZPONTITAVOLLETID ,iktDokCsat.C_ELEKTRONIKUSPELDANYID ,iktDokCsat.C_FAJLNEV as C_FAJLNEV ,iktat.C_IKTATASDATUMA ,f.C_NYOMTATASINEV ,f.C_EGYEDIAZONOSITO FROM T_IKTATOTTDOKUMENTUMTAVOLLET_OSSZES tavol INNER JOIN T_IKTATOTTDOKUMENTUM_OSSZES iktat ON iktat.ID = tavol.C_IKTATOTTDOKUMENTUMID AND iktat.C_INTEZMENYID = tavol.C_INTEZMENYID AND iktat.C_TANEVID = tavol.C_TANEVID AND tavol.C_SZINKRONIZALVA IS NULL INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = iktat.C_IKTATOSZEMELYID AND f.C_INTEZMENYID = tavol.C_INTEZMENYID AND f.C_TANEVID = tavol.C_TANEVID INNER JOIN T_IKTATOTTDOKUMENTUMCSATOLMANY_OSSZES iktDokCsat on iktDokCsat.C_IKTATOTTDOKUMENTUMID = iktat.ID AND iktDokCsat.C_INTEZMENYID = iktat.C_INTEZMENYID AND iktDokCsat.C_TANEVID = iktat.C_TANEVID AND iktDokCsat.C_ISATTACHED = 'T' AND iktDokCsat.TOROLT = 'F' WHERE tavol.TOROLT = 'F' AND C_SZINKRONIZALVA IS NULL AND tavol.C_TANEVID = @pTanevId AND tavol.C_INTEZMENYID = @pIntezmenyId) AS notsynced WHERE NOT EXISTS (SELECT C_KOZPONTITAVOLLETID FROM x WHERE C_KOZPONTITAVOLLETID = notsynced.C_KOZPONTITAVOLLETID) "; return GetData(command, paramlist); } } }