diff --git a/MP.Data/Controllers/MpInveController.cs b/MP.Data/Controllers/MpInveController.cs
index 919aeecf..de0f324c 100644
--- a/MP.Data/Controllers/MpInveController.cs
+++ b/MP.Data/Controllers/MpInveController.cs
@@ -1,4 +1,5 @@
-using Microsoft.EntityFrameworkCore;
+using Microsoft.Data.SqlClient;
+using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using MP.Data.DatabaseModels;
using NLog;
@@ -27,12 +28,44 @@ namespace MP.Data.Controllers
{
_configuration = null;
}
+
+ #region gestione lotti esterni
+ ///
+ /// Elenco lotti esterni presenti sul db di ARCA
+ ///
+ /// Codice articolo
+ /// Codice lotto
+ /// Codice magazzino
+ /// proprietà per definire scopo stored
+ ///
+ public List ListLottiEsterni(string codArt, string codLotto, string codMagazzino, bool onlyTest)
+ {
+ List dbResult = new List();
+ using (var dbCtx = new MoonPro_InveContext(_configuration))
+ {
+ var DataGiac = new SqlParameter("@DataGiac", null);
+ var CodArt = new SqlParameter("@CodArt", codArt);
+ var CodLotto = new SqlParameter("@CodLotto", codLotto);
+ var CodMagaz = new SqlParameter("@CodMagaz", codMagazzino);
+ var OnlyTest = new SqlParameter("@OnlyTest", onlyTest);
+
+ dbResult = dbCtx
+ .DbLottoArca
+ .FromSqlRaw("exec dbo.stp_GIAC_getByDate @DataGiac,@CodArt,@CodLotto,@CodMagaz,@OnlyTest", DataGiac, CodArt, CodLotto, CodMagaz, OnlyTest)
+ .AsNoTracking()
+ //.AsEnumerable()
+ .ToList();
+ }
+ return dbResult;
+ }
+ #endregion gestione lotti esterni
+
#region gestione articoli
///
/// articolo MAG corrispondente all' articolo selezionato
///
- ///
+ ///
///
public AnagArticoli_MAG artBySearch(string artSearch)
{
diff --git a/MP.Data/MoonPro_InveContext.cs b/MP.Data/MoonPro_InveContext.cs
index 323c5fa6..a6cec875 100644
--- a/MP.Data/MoonPro_InveContext.cs
+++ b/MP.Data/MoonPro_InveContext.cs
@@ -53,6 +53,7 @@ namespace MP.Data
public virtual DbSet DbUdcData { get; set; }
public virtual DbSet DbLottoData { get; set; }
public virtual DbSet DbArtMag { get; set; }
+ public virtual DbSet DbLottoArca { get; set; }
#endregion PER INVE
#region PER SPEC
diff --git a/MP.INVE/Data/MiDataService.cs b/MP.INVE/Data/MiDataService.cs
index 023cb27c..59b837be 100644
--- a/MP.INVE/Data/MiDataService.cs
+++ b/MP.INVE/Data/MiDataService.cs
@@ -297,6 +297,39 @@ namespace MP.INVE.Data
return result;
}
+
+ public List ListLottiEsterni()
+ {
+ string source = "";
+ Stopwatch stopWatch = new Stopwatch();
+ stopWatch.Start();
+ List? result = new List();
+ // cerco in redis...
+ RedisValue rawData = redisDb.StringGet(redisLottiEsterni);
+ if (!string.IsNullOrEmpty($"{rawData}"))
+ {
+ result = JsonConvert.DeserializeObject>($"{rawData}");
+
+ source = "REDIS";
+ }
+ else
+ {
+ result = dbController.ListLottiEsterni();
+ // serializzo e salvo...
+ rawData = JsonConvert.SerializeObject(result);
+ redisDb.StringSetAsync(redisLottiEsterni, rawData, getRandTOut(redisLongTimeCache));
+ source = "DB";
+ }
+ if (result == null)
+ {
+ result = new List();
+ }
+ stopWatch.Stop();
+ TimeSpan ts = stopWatch.Elapsed;
+ Log.Debug($"ListLottiEsterni Read from {source}: {ts.TotalMilliseconds}ms");
+ return result;
+ }
+
public List ScanList()
{
string source = "";
@@ -413,7 +446,7 @@ namespace MP.INVE.Data
stopWatch.Start();
List? result = new List();
// cerco in redis...
- RedisValue rawData = redisDb.StringGet(redisLottiBaseAddr);
+ RedisValue rawData = redisDb.StringGet(redisLottiInterni);
if (!string.IsNullOrEmpty($"{rawData}"))
{
result = JsonConvert.DeserializeObject>($"{rawData}");
@@ -425,7 +458,7 @@ namespace MP.INVE.Data
result = dbController.ElencoLotti();
// serializzo e salvo...
rawData = JsonConvert.SerializeObject(result);
- redisDb.StringSetAsync(redisLottiBaseAddr, rawData, getRandTOut(redisLongTimeCache));
+ redisDb.StringSetAsync(redisLottiInterni, rawData, getRandTOut(redisLongTimeCache));
source = "DB";
}
if (result == null)
@@ -599,8 +632,10 @@ namespace MP.INVE.Data
private const string redisBaseAddr = "MP:INVE";
private const string redisSessionBaseAddr = ":Session";
private const string redisOperatoriBaseAddr = ":Operatore";
- private const string redisUdcBaseAddr = ":UDC";
private const string redisLottiBaseAddr = ":Lotti";
+ private const string redisUdcBaseAddr = ":UDC";
+ private const string redisLottiInterni = redisLottiBaseAddr + ":LottiInterni";
+ private const string redisLottiEsterni = redisLottiBaseAddr + ":LottiEsterni";
private const string redisConfigBaseAddr = ":Config";
private const string redisScanBaseAddr = redisBaseAddr + ":Scan";
private const string redisElencoOperatori = redisBaseAddr + redisOperatoriBaseAddr + ":ListOperatori";