Aggiunta creazione stored x cancellazione tree ordini/offerte (DA validare)

This commit is contained in:
Samuele Locatelli
2025-12-12 09:51:22 +01:00
parent 4491c4b3af
commit 48cdb50588
8 changed files with 3876 additions and 109 deletions
@@ -3030,35 +3030,6 @@ namespace EgwCoreLib.Lux.Data.Controllers
return answ;
}
#if false
/// <summary>
/// Ritorna direttamente 1 riga offerta
/// </summary>
/// <param name="offerRowID"></param>
/// <returns></returns>
internal OfferRowModel? OfferRowGetByOfferRowID(int offerRowID)
{
OfferRowModel? dbResult = null;
//using (DataLayerContext dbCtx = new DataLayerContext(_config))
using (DataLayerContext dbCtx = new DataLayerContext())
{
try
{
dbResult = dbCtx
.DbSetOfferRow
.Where(x => x.OfferRowID == offerRowID)
.Include(s => s.SellingItemNav)
.FirstOrDefault();
}
catch (Exception exc)
{
Log.Error($"Eccezione durante OfferRowGetByOfferRowID{Environment.NewLine}{exc}");
}
}
return dbResult;
}
#endif
/// <summary>
/// Upsert record
/// </summary>
@@ -3250,6 +3221,63 @@ namespace EgwCoreLib.Lux.Data.Controllers
return answ;
}
/// <summary>
/// Restituisce elenco SellingItem dato envir
/// </summary>
/// <param name="envir"></param>
/// <returns></returns>
internal async Task<List<SellingItemModel>> SellingItemsByEnvir(EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS envir)
{
List<SellingItemModel> dbRec = new List<SellingItemModel>();
//using (DataLayerContext dbCtx = new DataLayerContext(_config))
using (DataLayerContext dbCtx = new DataLayerContext())
{
try
{
DateTime adesso = DateTime.Now;
// recupero offerta...
dbRec = await dbCtx
.DbSetSellItem
.Where(x => x.Envir == envir)
.ToListAsync();
}
catch (Exception exc)
{
Log.Error($"Eccezione durante SellingItemsByEnvir{Environment.NewLine}{exc}");
}
}
return dbRec;
}
#if false
/// <summary>
/// Ritorna direttamente 1 riga offerta
/// </summary>
/// <param name="offerRowID"></param>
/// <returns></returns>
internal OfferRowModel? OfferRowGetByOfferRowID(int offerRowID)
{
OfferRowModel? dbResult = null;
//using (DataLayerContext dbCtx = new DataLayerContext(_config))
using (DataLayerContext dbCtx = new DataLayerContext())
{
try
{
dbResult = dbCtx
.DbSetOfferRow
.Where(x => x.OfferRowID == offerRowID)
.Include(s => s.SellingItemNav)
.FirstOrDefault();
}
catch (Exception exc)
{
Log.Error($"Eccezione durante OfferRowGetByOfferRowID{Environment.NewLine}{exc}");
}
}
return dbResult;
}
#endif
/// <summary>
/// Elenco completo Tags
/// </summary>
@@ -58,4 +58,13 @@
<ProjectReference Include="..\EgwCoreLib.Lux.Core\EgwCoreLib.Lux.Core.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="SqlScripts\Stored\stp_deleteOfferTree.sql">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="SqlScripts\Stored\stp_deleteOrderTree.sql">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,50 @@
using Microsoft.EntityFrameworkCore.Migrations;
using System;
using System.Reflection;
#nullable disable
namespace EgwCoreLib.Lux.Data.Migrations
{
/// <inheritdoc />
public partial class AddStoredProc_01 : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
// aggiunta stored
addStored(migrationBuilder, "stp_deleteOfferTree");
addStored(migrationBuilder, "stp_deleteOrderTree");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
// rimozione stored
remStored(migrationBuilder, "stp_deleteOfferTree");
remStored(migrationBuilder, "stp_deleteOrderTree");
}
private void addView(MigrationBuilder migrationBuilder, string objName)
{
string path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "SqlScripts", "View", $"{objName}.sql");
string viewBody = File.ReadAllText(path);
migrationBuilder.Sql(viewBody);
}
private void addStored(MigrationBuilder migrationBuilder, string objName)
{
string path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "SqlScripts", "Stored", $"{objName}.sql");
string viewBody = File.ReadAllText(path);
migrationBuilder.Sql(viewBody);
}
private void remView(MigrationBuilder migrationBuilder, string objName)
{
migrationBuilder.Sql($"DROP VIEW IF EXISTS {objName};");
}
private void remStored(MigrationBuilder migrationBuilder, string objName)
{
migrationBuilder.Sql($"DROP PROCEDURE IF EXISTS {objName};");
}
}
}
@@ -1299,16 +1299,16 @@ namespace EgwCoreLib.Lux.Data.Migrations
Description = "Offerta per tre serramenti",
DictPresel = "",
Discount = 0.0,
DueDateProm = new DateTime(2026, 2, 2, 0, 0, 0, 0, DateTimeKind.Local),
DueDateReq = new DateTime(2026, 1, 3, 0, 0, 0, 0, DateTimeKind.Local),
DueDateProm = new DateTime(2026, 2, 8, 0, 0, 0, 0, DateTimeKind.Local),
DueDateReq = new DateTime(2026, 1, 9, 0, 0, 0, 0, DateTimeKind.Local),
Envir = 1,
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(134),
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(136),
Inserted = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2349),
Modified = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2351),
OffertState = 0,
RefNum = 1,
RefRev = 1,
RefYear = 2025,
ValidUntil = new DateTime(2026, 1, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(128)
ValidUntil = new DateTime(2026, 1, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2341)
},
new
{
@@ -1319,16 +1319,16 @@ namespace EgwCoreLib.Lux.Data.Migrations
Description = "Offerta BEAM",
DictPresel = "",
Discount = 0.0,
DueDateProm = new DateTime(2026, 2, 2, 0, 0, 0, 0, DateTimeKind.Local),
DueDateReq = new DateTime(2026, 1, 3, 0, 0, 0, 0, DateTimeKind.Local),
DueDateProm = new DateTime(2026, 2, 8, 0, 0, 0, 0, DateTimeKind.Local),
DueDateReq = new DateTime(2026, 1, 9, 0, 0, 0, 0, DateTimeKind.Local),
Envir = 2,
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(153),
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(154),
Inserted = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2361),
Modified = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2362),
OffertState = 0,
RefNum = 2,
RefRev = 1,
RefYear = 2025,
ValidUntil = new DateTime(2026, 1, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(152)
ValidUntil = new DateTime(2026, 1, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2360)
},
new
{
@@ -1339,16 +1339,16 @@ namespace EgwCoreLib.Lux.Data.Migrations
Description = "Offerta Cabinet",
DictPresel = "",
Discount = 0.0,
DueDateProm = new DateTime(2026, 2, 2, 0, 0, 0, 0, DateTimeKind.Local),
DueDateReq = new DateTime(2026, 1, 3, 0, 0, 0, 0, DateTimeKind.Local),
DueDateProm = new DateTime(2026, 2, 8, 0, 0, 0, 0, DateTimeKind.Local),
DueDateReq = new DateTime(2026, 1, 9, 0, 0, 0, 0, DateTimeKind.Local),
Envir = 4,
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(162),
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(164),
Inserted = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2370),
Modified = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2371),
OffertState = 0,
RefNum = 3,
RefRev = 1,
RefYear = 2025,
ValidUntil = new DateTime(2026, 1, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(161)
ValidUntil = new DateTime(2026, 1, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2369)
},
new
{
@@ -1359,16 +1359,16 @@ namespace EgwCoreLib.Lux.Data.Migrations
Description = "Offerta Wall",
DictPresel = "",
Discount = 0.0,
DueDateProm = new DateTime(2026, 2, 2, 0, 0, 0, 0, DateTimeKind.Local),
DueDateReq = new DateTime(2026, 1, 3, 0, 0, 0, 0, DateTimeKind.Local),
DueDateProm = new DateTime(2026, 2, 8, 0, 0, 0, 0, DateTimeKind.Local),
DueDateReq = new DateTime(2026, 1, 9, 0, 0, 0, 0, DateTimeKind.Local),
Envir = 3,
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(171),
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(173),
Inserted = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2379),
Modified = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2380),
OffertState = 0,
RefNum = 4,
RefRev = 1,
RefYear = 2025,
ValidUntil = new DateTime(2026, 1, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(170)
ValidUntil = new DateTime(2026, 1, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2378)
});
});
@@ -1497,14 +1497,14 @@ namespace EgwCoreLib.Lux.Data.Migrations
FileName = "",
FileResource = "",
FileSize = 0L,
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(292),
Inserted = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2496),
ItemBOM = "",
ItemJCD = "",
ItemOk = true,
ItemSteps = "{}",
ItemTags = "",
JobID = 0,
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(294),
Modified = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2498),
Note = "Finestra Anta Singola 2025",
OfferID = 1,
OfferRowUID = "SOR.25.00000002",
@@ -1530,14 +1530,14 @@ namespace EgwCoreLib.Lux.Data.Migrations
FileName = "",
FileResource = "",
FileSize = 0L,
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(306),
Inserted = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2509),
ItemBOM = "",
ItemJCD = "",
ItemOk = true,
ItemSteps = "{}",
ItemTags = "",
JobID = 0,
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(308),
Modified = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2511),
Note = "Finestra Vetro Fisso 2025",
OfferID = 1,
OfferRowUID = "SOR.25.00000001",
@@ -1563,14 +1563,14 @@ namespace EgwCoreLib.Lux.Data.Migrations
FileName = "",
FileResource = "",
FileSize = 0L,
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(319),
Inserted = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2522),
ItemBOM = "",
ItemJCD = "",
ItemOk = true,
ItemSteps = "{}",
ItemTags = "",
JobID = 0,
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(320),
Modified = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2523),
Note = "Persiana per Finestra anta singola 2025",
OfferID = 1,
OfferRowUID = "SOR.25.00000003",
@@ -1596,14 +1596,14 @@ namespace EgwCoreLib.Lux.Data.Migrations
FileName = "",
FileResource = "",
FileSize = 0L,
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(331),
Inserted = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2533),
ItemBOM = "",
ItemJCD = "",
ItemOk = true,
ItemSteps = "{}",
ItemTags = "",
JobID = 0,
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(333),
Modified = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2535),
Note = "Installazione serramento",
OfferID = 1,
OfferRowUID = "SOR.25.00000004",
@@ -1629,14 +1629,14 @@ namespace EgwCoreLib.Lux.Data.Migrations
FileName = "",
FileResource = "",
FileSize = 0L,
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(364),
Inserted = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2564),
ItemBOM = "",
ItemJCD = "",
ItemOk = true,
ItemSteps = "{}",
ItemTags = "",
JobID = 0,
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(366),
Modified = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2565),
Note = "Demo file 01",
OfferID = 2,
OfferRowUID = "SOR.25.00000005",
@@ -1662,14 +1662,14 @@ namespace EgwCoreLib.Lux.Data.Migrations
FileName = "",
FileResource = "",
FileSize = 0L,
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(376),
Inserted = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2576),
ItemBOM = "",
ItemJCD = "",
ItemOk = true,
ItemSteps = "{}",
ItemTags = "",
JobID = 0,
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(378),
Modified = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2577),
Note = "Demo file 02",
OfferID = 2,
OfferRowUID = "SOR.25.00000006",
@@ -1695,14 +1695,14 @@ namespace EgwCoreLib.Lux.Data.Migrations
FileName = "",
FileResource = "",
FileSize = 0L,
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(412),
Inserted = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2604),
ItemBOM = "",
ItemJCD = "",
ItemOk = true,
ItemSteps = "{}",
ItemTags = "",
JobID = 0,
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(413),
Modified = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2606),
Note = "Demo file 01",
OfferID = 3,
OfferRowUID = "SOR.25.00000007",
@@ -1728,14 +1728,14 @@ namespace EgwCoreLib.Lux.Data.Migrations
FileName = "",
FileResource = "",
FileSize = 0L,
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(424),
Inserted = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2616),
ItemBOM = "",
ItemJCD = "",
ItemOk = true,
ItemSteps = "{}",
ItemTags = "",
JobID = 0,
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(425),
Modified = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2618),
Note = "Demo file 02",
OfferID = 3,
OfferRowUID = "SOR.25.00000008",
@@ -1761,14 +1761,14 @@ namespace EgwCoreLib.Lux.Data.Migrations
FileName = "",
FileResource = "",
FileSize = 0L,
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(453),
Inserted = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2645),
ItemBOM = "",
ItemJCD = "",
ItemOk = true,
ItemSteps = "{}",
ItemTags = "",
JobID = 0,
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(455),
Modified = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2647),
Note = "Demo file 01",
OfferID = 4,
OfferRowUID = "SOR.25.00000009",
@@ -1794,14 +1794,14 @@ namespace EgwCoreLib.Lux.Data.Migrations
FileName = "",
FileResource = "",
FileSize = 0L,
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(466),
Inserted = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2657),
ItemBOM = "",
ItemJCD = "",
ItemOk = true,
ItemSteps = "{}",
ItemTags = "",
JobID = 0,
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(468),
Modified = new DateTime(2025, 12, 10, 10, 17, 46, 656, DateTimeKind.Local).AddTicks(2659),
Note = "Demo file 02",
OfferID = 4,
OfferRowUID = "SOR.25.0000000A",
@@ -2069,8 +2069,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 1,
CodDoc = "",
DtCreate = new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5533),
DtMod = new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5577),
DtCreate = new DateTime(2025, 12, 10, 10, 17, 46, 652, DateTimeKind.Local).AddTicks(9055),
DtMod = new DateTime(2025, 12, 10, 10, 17, 46, 652, DateTimeKind.Local).AddTicks(9106),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 5.0,
@@ -2082,8 +2082,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 2,
CodDoc = "",
DtCreate = new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5580),
DtMod = new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5582),
DtCreate = new DateTime(2025, 12, 10, 10, 17, 46, 652, DateTimeKind.Local).AddTicks(9109),
DtMod = new DateTime(2025, 12, 10, 10, 17, 46, 652, DateTimeKind.Local).AddTicks(9111),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 8.0,
@@ -2095,8 +2095,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 3,
CodDoc = "",
DtCreate = new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5584),
DtMod = new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5585),
DtCreate = new DateTime(2025, 12, 10, 10, 17, 46, 652, DateTimeKind.Local).AddTicks(9113),
DtMod = new DateTime(2025, 12, 10, 10, 17, 46, 652, DateTimeKind.Local).AddTicks(9114),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 5.0,
@@ -2108,8 +2108,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 4,
CodDoc = "",
DtCreate = new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5587),
DtMod = new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5589),
DtCreate = new DateTime(2025, 12, 10, 10, 17, 46, 652, DateTimeKind.Local).AddTicks(9116),
DtMod = new DateTime(2025, 12, 10, 10, 17, 46, 652, DateTimeKind.Local).AddTicks(9117),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 1.0,
@@ -2121,8 +2121,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 5,
CodDoc = "",
DtCreate = new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5591),
DtMod = new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5592),
DtCreate = new DateTime(2025, 12, 10, 10, 17, 46, 652, DateTimeKind.Local).AddTicks(9119),
DtMod = new DateTime(2025, 12, 10, 10, 17, 46, 652, DateTimeKind.Local).AddTicks(9121),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 10.0,
@@ -2134,8 +2134,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 6,
CodDoc = "",
DtCreate = new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5595),
DtMod = new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5596),
DtCreate = new DateTime(2025, 12, 10, 10, 17, 46, 652, DateTimeKind.Local).AddTicks(9123),
DtMod = new DateTime(2025, 12, 10, 10, 17, 46, 652, DateTimeKind.Local).AddTicks(9124),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 1.0,
@@ -2147,8 +2147,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 7,
CodDoc = "",
DtCreate = new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5598),
DtMod = new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5599),
DtCreate = new DateTime(2025, 12, 10, 10, 17, 46, 652, DateTimeKind.Local).AddTicks(9126),
DtMod = new DateTime(2025, 12, 10, 10, 17, 46, 652, DateTimeKind.Local).AddTicks(9127),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 50.0,
@@ -2160,8 +2160,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 8,
CodDoc = "",
DtCreate = new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5602),
DtMod = new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5603),
DtCreate = new DateTime(2025, 12, 10, 10, 17, 46, 652, DateTimeKind.Local).AddTicks(9129),
DtMod = new DateTime(2025, 12, 10, 10, 17, 46, 652, DateTimeKind.Local).AddTicks(9131),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 1.0,
@@ -2173,8 +2173,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 9,
CodDoc = "",
DtCreate = new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5605),
DtMod = new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5606),
DtCreate = new DateTime(2025, 12, 10, 10, 17, 46, 652, DateTimeKind.Local).AddTicks(9133),
DtMod = new DateTime(2025, 12, 10, 10, 17, 46, 652, DateTimeKind.Local).AddTicks(9134),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 1.0,
@@ -2186,8 +2186,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 10,
CodDoc = "",
DtCreate = new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5609),
DtMod = new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5610),
DtCreate = new DateTime(2025, 12, 10, 10, 17, 46, 652, DateTimeKind.Local).AddTicks(9136),
DtMod = new DateTime(2025, 12, 10, 10, 17, 46, 652, DateTimeKind.Local).AddTicks(9137),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 1.0,
@@ -1185,6 +1185,11 @@ namespace EgwCoreLib.Lux.Data.Services
sw.Start();
// calcolo
bool fatto = await dbController.OffertRowUpsert(updRec);
if (fatto)
{
// sistemo UID...
await OffertRowFixUid(updRec.OfferID);
}
// svuoto cache...
await ExecFlushRedisPatternAsync((RedisValue)$"{redisBaseKey}:Offers:*");
await ExecFlushRedisPatternAsync((RedisValue)$"{redisBaseKey}:OfferRows:*");
@@ -1523,26 +1528,6 @@ namespace EgwCoreLib.Lux.Data.Services
return fatto;
}
#if false
/// <summary>
/// Recupero nuovo record BOM diretto dal DB
/// </summary>
/// <param name="offerRowID"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public OfferRowModel? OfferRowGetByOfferRowID(int offerRowID)
{
string source = "DB";
Stopwatch sw = new Stopwatch();
sw.Start();
OfferRowModel? result = null;
result = dbController.OfferRowGetByOfferRowID(offerRowID);
sw.Stop();
Log.Debug($"OfferRowGetByOfferRowID | {source} | {sw.Elapsed.TotalMilliseconds}ms");
return result;
}
#endif
/// <summary>
/// Effettua upsert complessivo Ordine
/// </summary>
@@ -1793,6 +1778,61 @@ namespace EgwCoreLib.Lux.Data.Services
}
}
/// <summary>
/// Restituisce elenco SellingItem dato envir
/// </summary>
/// <param name="envir"></param>
/// <returns></returns>
public async Task<List<SellingItemModel>> SellingItemsByEnvir(EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS envir)
{
string source = "DB";
Stopwatch sw = new Stopwatch();
sw.Start();
List<SellingItemModel>? result = new List<SellingItemModel>();
// cerco in redis...
string currKey = $"{redisBaseKey}:SellingItem:{envir}";
RedisValue rawData = await redisDb.StringGetAsync(currKey);
if (rawData.HasValue && rawData.Length() > 2)
{
result = JsonConvert.DeserializeObject<List<SellingItemModel>>($"{rawData}");
source = "REDIS";
}
else
{
result = await dbController.SellingItemsByEnvir(envir);
// serializzo e salvo con config x evitare loop...
rawData = JsonConvert.SerializeObject(result, JSSettings);
await redisDb.StringSetAsync(currKey, rawData, UltraLongCache);
}
if (result == null)
{
result = new List<SellingItemModel>();
}
sw.Stop();
Log.Debug($"SellingItemsByEnvir | {source} | {sw.Elapsed.TotalMilliseconds}ms");
return result;
}
#if false
/// <summary>
/// Recupero nuovo record BOM diretto dal DB
/// </summary>
/// <param name="offerRowID"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public OfferRowModel? OfferRowGetByOfferRowID(int offerRowID)
{
string source = "DB";
Stopwatch sw = new Stopwatch();
sw.Start();
OfferRowModel? result = null;
result = dbController.OfferRowGetByOfferRowID(offerRowID);
sw.Stop();
Log.Debug($"OfferRowGetByOfferRowID | {source} | {sw.Elapsed.TotalMilliseconds}ms");
return result;
}
#endif
/// <summary>
/// Elenco completo Tags disponibili
/// </summary>
@@ -0,0 +1,25 @@
DROP PROCEDURE IF EXISTS `stp_deleteOfferTree`;
CREATE DEFINER=`egalmware`@`10.74.%` PROCEDURE `stp_deleteOfferTree`(
IN `pOfferID` INT
)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT 'Rimozione in unica stored di Righe Offerta e Offerta'
BEGIN
-- Eliminazione order rows
DELETE
FROM sales_offer_row
WHERE OfferID = pOfferID;
-- Eliminazione main order
DELETE
FROM sales_offer
WHERE OfferID = pOfferID;
-- Return affected rows
SELECT ROW_COUNT() AS 'RowsDeleted';
END
@@ -0,0 +1,33 @@
DROP PROCEDURE IF EXISTS `stp_deleteOrderTree`;
CREATE DEFINER=`egalmware`@`10.74.%` PROCEDURE `stp_deleteOrderTree`(
IN `pOrderId` INT
)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT 'Rimozione in unica stored di ProdItems, Righe Ordine e Ordine'
BEGIN
-- Eliminazione production_item collegati alle order rows
DELETE FROM production_item
WHERE OrderRowID IN (
SELECT OrderRowID
FROM sales_order_row
WHERE OrderID = pOrderId
);
-- Eliminazione order rows
DELETE
FROM sales_order_row
WHERE OrderID = pOrderId;
-- Eliminazione main order
DELETE
FROM sales_order
WHERE OrderID = pOrderId;
-- Return affected rows
SELECT ROW_COUNT() AS 'RowsDeleted';
END