Modifica tracciato x gestione prodEstimate su righe ord

review processing estimate data
This commit is contained in:
Samuele Locatelli
2025-12-04 12:22:31 +01:00
parent 22758a8095
commit 9f621c0936
15 changed files with 4170 additions and 96 deletions
@@ -2695,6 +2695,44 @@ namespace EgwCoreLib.Lux.Data.Controllers
return dbResult;
}
/// <summary>
/// Upsert record del solo ProdEstimate
/// </summary>
/// <param name="uID"></param>
/// <param name="prodEstim"></param>
internal async Task<bool> OrderRowUpsertProdEst(string uID, string prodEstim)
{
bool answ = false;
//using (DataLayerContext dbCtx = new DataLayerContext(_config))
using (DataLayerContext dbCtx = new DataLayerContext())
{
try
{
// recupero offerta...
var currRec = dbCtx
.DbSetORDerRow
.Where(x => x.OrderRowUID == uID)
.FirstOrDefault();
// se non trovo aggiungo
if (currRec != null)
{
currRec.ProdEstimate = prodEstim;
dbCtx.Entry(currRec).State = EntityState.Modified;
}
// salvo TUTTI i cambiamenti...
var result = await dbCtx.SaveChangesAsync();
answ = result > 0;
}
catch (Exception exc)
{
Log.Error($"Eccezione durante OrderRowUpsertProdEst{Environment.NewLine}{exc}");
}
}
return answ;
}
/// <summary>
/// Upsert record
/// </summary>
@@ -2776,7 +2814,7 @@ namespace EgwCoreLib.Lux.Data.Controllers
{
dbResult = await dbCtx
.DbSetProdItem
.Where(x => x.OrderRowID==orderRowId)
.Where(x => x.OrderRowID == orderRowId)
.ToListAsync();
}
catch (Exception exc)
@@ -195,6 +195,13 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales
/// </summary>
public string ItemSteps { get; set; } = "";
/// <summary>
/// Oggetto serializzato contentente lista degli Estimate su tutte le macchine utilizzabili, serve a
/// - carico macchine
/// - pianificazione
/// </summary>
public string ProdEstimate { get; set; } = "";
/// <summary>
/// Validazione dati BOM (Inteso come gruppi tutti trovati/esistenti)
/// </summary>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,366 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace EgwCoreLib.Lux.Data.Migrations
{
/// <inheritdoc />
public partial class AddProdEstimate : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "ProdEstimate",
table: "sales_order_row",
type: "longtext",
nullable: false)
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 1,
columns: new[] { "DueDateProm", "DueDateReq", "Inserted", "Modified", "ValidUntil" },
values: new object[] { new DateTime(2026, 2, 2, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 1, 3, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(134), new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(136), new DateTime(2026, 1, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(128) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 2,
columns: new[] { "DueDateProm", "DueDateReq", "Inserted", "Modified", "ValidUntil" },
values: new object[] { new DateTime(2026, 2, 2, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 1, 3, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(153), new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(154), new DateTime(2026, 1, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(152) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 3,
columns: new[] { "DueDateProm", "DueDateReq", "Inserted", "Modified", "ValidUntil" },
values: new object[] { new DateTime(2026, 2, 2, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 1, 3, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(162), new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(164), new DateTime(2026, 1, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(161) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 4,
columns: new[] { "DueDateProm", "DueDateReq", "Inserted", "Modified", "ValidUntil" },
values: new object[] { new DateTime(2026, 2, 2, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 1, 3, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(171), new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(173), new DateTime(2026, 1, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(170) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 1,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(306), new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(308) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 2,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(292), new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(294) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 3,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(319), new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(320) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 4,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(331), new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(333) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 5,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(364), new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(366) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 6,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(376), new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(378) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 7,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(412), new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(413) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 8,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(424), new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(425) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 9,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(453), new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(455) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 10,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(466), new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(468) });
migrationBuilder.UpdateData(
table: "stock_mov",
keyColumn: "StockMovID",
keyValue: 1,
column: "DtCreate",
value: new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5533));
migrationBuilder.UpdateData(
table: "stock_mov",
keyColumn: "StockMovID",
keyValue: 2,
column: "DtCreate",
value: new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5580));
migrationBuilder.UpdateData(
table: "stock_mov",
keyColumn: "StockMovID",
keyValue: 3,
column: "DtCreate",
value: new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5584));
migrationBuilder.UpdateData(
table: "stock_mov",
keyColumn: "StockMovID",
keyValue: 4,
column: "DtCreate",
value: new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5587));
migrationBuilder.UpdateData(
table: "stock_mov",
keyColumn: "StockMovID",
keyValue: 5,
column: "DtCreate",
value: new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5591));
migrationBuilder.UpdateData(
table: "stock_mov",
keyColumn: "StockMovID",
keyValue: 6,
column: "DtCreate",
value: new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5595));
migrationBuilder.UpdateData(
table: "stock_mov",
keyColumn: "StockMovID",
keyValue: 7,
column: "DtCreate",
value: new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5598));
migrationBuilder.UpdateData(
table: "stock_mov",
keyColumn: "StockMovID",
keyValue: 8,
column: "DtCreate",
value: new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5602));
migrationBuilder.UpdateData(
table: "stock_mov",
keyColumn: "StockMovID",
keyValue: 9,
column: "DtCreate",
value: new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5605));
migrationBuilder.UpdateData(
table: "stock_mov",
keyColumn: "StockMovID",
keyValue: 10,
column: "DtCreate",
value: new DateTime(2025, 12, 4, 12, 12, 42, 512, DateTimeKind.Local).AddTicks(5609));
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "ProdEstimate",
table: "sales_order_row");
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 1,
columns: new[] { "DueDateProm", "DueDateReq", "Inserted", "Modified", "ValidUntil" },
values: new object[] { new DateTime(2026, 1, 20, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 12, 21, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1545), new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1547), new DateTime(2025, 12, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1542) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 2,
columns: new[] { "DueDateProm", "DueDateReq", "Inserted", "Modified", "ValidUntil" },
values: new object[] { new DateTime(2026, 1, 20, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 12, 21, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1565), new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1566), new DateTime(2025, 12, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1564) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 3,
columns: new[] { "DueDateProm", "DueDateReq", "Inserted", "Modified", "ValidUntil" },
values: new object[] { new DateTime(2026, 1, 20, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 12, 21, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1574), new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1576), new DateTime(2025, 12, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1573) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 4,
columns: new[] { "DueDateProm", "DueDateReq", "Inserted", "Modified", "ValidUntil" },
values: new object[] { new DateTime(2026, 1, 20, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 12, 21, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1584), new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1585), new DateTime(2025, 12, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1582) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 1,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1727), new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1729) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 2,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1713), new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1715) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 3,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1739), new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1741) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 4,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1751), new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1753) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 5,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1784), new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1786) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 6,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1796), new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1798) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 7,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1826), new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1828) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 8,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1838), new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1840) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 9,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1868), new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1870) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 10,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1881), new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1882) });
migrationBuilder.UpdateData(
table: "stock_mov",
keyColumn: "StockMovID",
keyValue: 1,
column: "DtCreate",
value: new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5608));
migrationBuilder.UpdateData(
table: "stock_mov",
keyColumn: "StockMovID",
keyValue: 2,
column: "DtCreate",
value: new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5662));
migrationBuilder.UpdateData(
table: "stock_mov",
keyColumn: "StockMovID",
keyValue: 3,
column: "DtCreate",
value: new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5666));
migrationBuilder.UpdateData(
table: "stock_mov",
keyColumn: "StockMovID",
keyValue: 4,
column: "DtCreate",
value: new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5669));
migrationBuilder.UpdateData(
table: "stock_mov",
keyColumn: "StockMovID",
keyValue: 5,
column: "DtCreate",
value: new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5673));
migrationBuilder.UpdateData(
table: "stock_mov",
keyColumn: "StockMovID",
keyValue: 6,
column: "DtCreate",
value: new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5676));
migrationBuilder.UpdateData(
table: "stock_mov",
keyColumn: "StockMovID",
keyValue: 7,
column: "DtCreate",
value: new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5679));
migrationBuilder.UpdateData(
table: "stock_mov",
keyColumn: "StockMovID",
keyValue: 8,
column: "DtCreate",
value: new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5683));
migrationBuilder.UpdateData(
table: "stock_mov",
keyColumn: "StockMovID",
keyValue: 9,
column: "DtCreate",
value: new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5686));
migrationBuilder.UpdateData(
table: "stock_mov",
keyColumn: "StockMovID",
keyValue: 10,
column: "DtCreate",
value: new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5690));
}
}
}
@@ -1299,16 +1299,16 @@ namespace EgwCoreLib.Lux.Data.Migrations
Description = "Offerta per tre serramenti",
DictPresel = "",
Discount = 0.0,
DueDateProm = new DateTime(2026, 1, 20, 0, 0, 0, 0, DateTimeKind.Local),
DueDateReq = new DateTime(2025, 12, 21, 0, 0, 0, 0, DateTimeKind.Local),
DueDateProm = new DateTime(2026, 2, 2, 0, 0, 0, 0, DateTimeKind.Local),
DueDateReq = new DateTime(2026, 1, 3, 0, 0, 0, 0, DateTimeKind.Local),
Envir = 1,
Inserted = new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1545),
Modified = new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1547),
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),
OffertState = 0,
RefNum = 1,
RefRev = 1,
RefYear = 2025,
ValidUntil = new DateTime(2025, 12, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1542)
ValidUntil = new DateTime(2026, 1, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(128)
},
new
{
@@ -1319,16 +1319,16 @@ namespace EgwCoreLib.Lux.Data.Migrations
Description = "Offerta BEAM",
DictPresel = "",
Discount = 0.0,
DueDateProm = new DateTime(2026, 1, 20, 0, 0, 0, 0, DateTimeKind.Local),
DueDateReq = new DateTime(2025, 12, 21, 0, 0, 0, 0, DateTimeKind.Local),
DueDateProm = new DateTime(2026, 2, 2, 0, 0, 0, 0, DateTimeKind.Local),
DueDateReq = new DateTime(2026, 1, 3, 0, 0, 0, 0, DateTimeKind.Local),
Envir = 2,
Inserted = new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1565),
Modified = new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1566),
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),
OffertState = 0,
RefNum = 2,
RefRev = 1,
RefYear = 2025,
ValidUntil = new DateTime(2025, 12, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1564)
ValidUntil = new DateTime(2026, 1, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(152)
},
new
{
@@ -1339,16 +1339,16 @@ namespace EgwCoreLib.Lux.Data.Migrations
Description = "Offerta Cabinet",
DictPresel = "",
Discount = 0.0,
DueDateProm = new DateTime(2026, 1, 20, 0, 0, 0, 0, DateTimeKind.Local),
DueDateReq = new DateTime(2025, 12, 21, 0, 0, 0, 0, DateTimeKind.Local),
DueDateProm = new DateTime(2026, 2, 2, 0, 0, 0, 0, DateTimeKind.Local),
DueDateReq = new DateTime(2026, 1, 3, 0, 0, 0, 0, DateTimeKind.Local),
Envir = 4,
Inserted = new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1574),
Modified = new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1576),
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),
OffertState = 0,
RefNum = 3,
RefRev = 1,
RefYear = 2025,
ValidUntil = new DateTime(2025, 12, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1573)
ValidUntil = new DateTime(2026, 1, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(161)
},
new
{
@@ -1359,16 +1359,16 @@ namespace EgwCoreLib.Lux.Data.Migrations
Description = "Offerta Wall",
DictPresel = "",
Discount = 0.0,
DueDateProm = new DateTime(2026, 1, 20, 0, 0, 0, 0, DateTimeKind.Local),
DueDateReq = new DateTime(2025, 12, 21, 0, 0, 0, 0, DateTimeKind.Local),
DueDateProm = new DateTime(2026, 2, 2, 0, 0, 0, 0, DateTimeKind.Local),
DueDateReq = new DateTime(2026, 1, 3, 0, 0, 0, 0, DateTimeKind.Local),
Envir = 3,
Inserted = new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1584),
Modified = new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1585),
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),
OffertState = 0,
RefNum = 4,
RefRev = 1,
RefYear = 2025,
ValidUntil = new DateTime(2025, 12, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1582)
ValidUntil = new DateTime(2026, 1, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(170)
});
});
@@ -1497,14 +1497,14 @@ namespace EgwCoreLib.Lux.Data.Migrations
FileName = "",
FileResource = "",
FileSize = 0L,
Inserted = new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1713),
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(292),
ItemBOM = "",
ItemJCD = "",
ItemOk = true,
ItemSteps = "{}",
ItemTags = "",
JobID = 0,
Modified = new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1715),
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(294),
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, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1727),
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(306),
ItemBOM = "",
ItemJCD = "",
ItemOk = true,
ItemSteps = "{}",
ItemTags = "",
JobID = 0,
Modified = new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1729),
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(308),
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, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1739),
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(319),
ItemBOM = "",
ItemJCD = "",
ItemOk = true,
ItemSteps = "{}",
ItemTags = "",
JobID = 0,
Modified = new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1741),
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(320),
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, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1751),
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(331),
ItemBOM = "",
ItemJCD = "",
ItemOk = true,
ItemSteps = "{}",
ItemTags = "",
JobID = 0,
Modified = new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1753),
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(333),
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, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1784),
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(364),
ItemBOM = "",
ItemJCD = "",
ItemOk = true,
ItemSteps = "{}",
ItemTags = "",
JobID = 0,
Modified = new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1786),
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(366),
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, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1796),
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(376),
ItemBOM = "",
ItemJCD = "",
ItemOk = true,
ItemSteps = "{}",
ItemTags = "",
JobID = 0,
Modified = new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1798),
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(378),
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, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1826),
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(412),
ItemBOM = "",
ItemJCD = "",
ItemOk = true,
ItemSteps = "{}",
ItemTags = "",
JobID = 0,
Modified = new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1828),
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(413),
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, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1838),
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(424),
ItemBOM = "",
ItemJCD = "",
ItemOk = true,
ItemSteps = "{}",
ItemTags = "",
JobID = 0,
Modified = new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1840),
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(425),
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, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1868),
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(453),
ItemBOM = "",
ItemJCD = "",
ItemOk = true,
ItemSteps = "{}",
ItemTags = "",
JobID = 0,
Modified = new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1870),
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(455),
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, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1881),
Inserted = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(466),
ItemBOM = "",
ItemJCD = "",
ItemOk = true,
ItemSteps = "{}",
ItemTags = "",
JobID = 0,
Modified = new DateTime(2025, 11, 21, 12, 38, 49, 304, DateTimeKind.Local).AddTicks(1882),
Modified = new DateTime(2025, 12, 4, 12, 12, 42, 516, DateTimeKind.Local).AddTicks(468),
Note = "Demo file 02",
OfferID = 4,
OfferRowUID = "SOR.25.0000000A",
@@ -1970,6 +1970,10 @@ namespace EgwCoreLib.Lux.Data.Migrations
.IsRequired()
.HasColumnType("longtext");
b.Property<string>("ProdEstimate")
.IsRequired()
.HasColumnType("longtext");
b.Property<int>("ProdItemQty")
.HasColumnType("int");
@@ -2065,8 +2069,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 1,
CodDoc = "",
DtCreate = new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5608),
DtMod = new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5659),
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),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 5.0,
@@ -2078,8 +2082,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 2,
CodDoc = "",
DtCreate = new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5662),
DtMod = new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5664),
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),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 8.0,
@@ -2091,8 +2095,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 3,
CodDoc = "",
DtCreate = new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5666),
DtMod = new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5667),
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),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 5.0,
@@ -2104,8 +2108,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 4,
CodDoc = "",
DtCreate = new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5669),
DtMod = new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5671),
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),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 1.0,
@@ -2117,8 +2121,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 5,
CodDoc = "",
DtCreate = new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5673),
DtMod = new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5674),
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),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 10.0,
@@ -2130,8 +2134,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 6,
CodDoc = "",
DtCreate = new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5676),
DtMod = new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5677),
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),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 1.0,
@@ -2143,8 +2147,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 7,
CodDoc = "",
DtCreate = new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5679),
DtMod = new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5681),
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),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 50.0,
@@ -2156,8 +2160,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 8,
CodDoc = "",
DtCreate = new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5683),
DtMod = new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5684),
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),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 1.0,
@@ -2169,8 +2173,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 9,
CodDoc = "",
DtCreate = new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5686),
DtMod = new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5688),
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),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 1.0,
@@ -2182,8 +2186,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 10,
CodDoc = "",
DtCreate = new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5690),
DtMod = new DateTime(2025, 11, 21, 12, 38, 49, 300, DateTimeKind.Local).AddTicks(5691),
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),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 1.0,
@@ -1477,7 +1477,7 @@ namespace EgwCoreLib.Lux.Data.Services
bool result = await dbController.ResourcesUpsertAsync(upsRec);
await ExecFlushRedisPatternAsync((RedisValue)$"{redisBaseKey}:Resources:*");
return result;
}/// <summary>
}
/// <summary>
/// Esegue salvataggio BOM sul DB
@@ -1509,6 +1509,39 @@ namespace EgwCoreLib.Lux.Data.Services
await Task.Delay(1);
}
/// <summary>
/// Esegue salvataggio ProdEstimate (per riga ordine) sul DB
/// </summary>
/// <param name="uID">UID dell'item offerta di cui si è ricevuto la BOM</param>
/// <param name="execEnvironment">Environment dell'item</param>
/// <param name="prodEstim">Stima ProdEstimate serializzata</param>
/// <returns></returns>
public async Task SaveProdEstimateAsync(string uID, Constants.EXECENVIRONMENTS execEnvironment, string prodEstim)
{
// salvo sul DB il risultato della BOM
if (!string.IsNullOrEmpty(prodEstim))
{
// salvo la BOM nel record del DB relativo all'oggetto richiesto
await dbController.OrderRowUpsertProdEst(uID, prodEstim);
#if false
List<BomItemDTO>? bomList = null;
try
{
// deserializzo la Bom...
bomList = JsonConvert.DeserializeObject<List<BomItemDTO>>(prodEstim);
}
catch { }
if (bomList != null)
{
// verifico 1:1 gli item ricevuti dalla BOM sul DB con eventuale insert in anagrafica dei nuovi
dbController.ItemUpsertFromBom(bomList);
// salvo la BOM nel record del DB relativo all'oggetto richiesto
dbController.OfferUpsertFromBom(uID, bomList);
}
#endif
}
}
/// <summary>
/// Esegue salvataggio HardwareModelList sul DB
/// </summary>
@@ -194,6 +194,20 @@ namespace EgwCoreLib.Lux.Data.Services
return fullUrl;
}
/// <summary>
/// Rilettura risposta da debug in formato string x riprocessare...
/// </summary>
/// <param name="uID"></param>
/// <param name="env"></param>
/// <returns></returns>
public async Task<string> LoadDebug(string uID, Constants.EXECENVIRONMENTS env)
{
// salvo img in cache
string currKey = $"{redisBaseKey}:DEBUG:{env}:{uID}";
string answ = await _redisService.GetAsync(currKey) ?? "";
return answ;
}
/// <summary>
/// Recupera img redis PNG x id item richiesto
/// </summary>
@@ -302,6 +316,24 @@ namespace EgwCoreLib.Lux.Data.Services
return done;
}
/// <summary>
/// Salva e invia su channel risultato stima per POR (UID.GroupId) richiesto
/// </summary>
/// <param name="uid"></param>
/// <param name="env"></param>
/// <param name="estimContent"></param>
public async Task<bool> SaveEstimationAsync(string uid, EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS env, string estimContent)
{
// salvo in cache
string currKey = $"{redisBaseKey}:{env}:Estimation:{uid}";
var done = await _redisService.SetAsync(currKey, estimContent);
// invio notifica nuova stima sul canale... viene inviato SOLO che è stata fatta (DONE) x UID (POR)...
string notifyChannel = $"{chEstimation}:{uid}";
long numSent = await _redisService.PublishAsync(notifyChannel, "DONE");
//long numSent = await _redisService.PublishAsync(notifyChannel, estimContent);
return done;
}
/// <summary>
/// Salva e invia su channel dedicato HML l'elenco degli HarwareModel (conf preferiti) gestiti
/// </summary>
@@ -405,24 +437,6 @@ namespace EgwCoreLib.Lux.Data.Services
return done;
}
/// <summary>
/// Salva e invia su channel risultato stima per POR (UID.GroupId) richiesto
/// </summary>
/// <param name="uid"></param>
/// <param name="env"></param>
/// <param name="estimContent"></param>
public async Task<bool> SaveEstimationAsync(string uid, EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS env, string estimContent)
{
// salvo in cache
string currKey = $"{redisBaseKey}:{env}:Estimation:{uid}";
var done = await _redisService.SetAsync(currKey, estimContent);
// invio notifica nuova stima sul canale... viene inviato SOLO che è stata fatta (DONE) x UID (POR)...
string notifyChannel = $"{chEstimation}:{uid}";
long numSent = await _redisService.PublishAsync(notifyChannel, "DONE");
//long numSent = await _redisService.PublishAsync(notifyChannel, estimContent);
return done;
}
/// <summary>
/// Salva e invia su channel img redis SVG per il doc richiesto
/// </summary>
@@ -508,12 +522,12 @@ namespace EgwCoreLib.Lux.Data.Services
private readonly string cacheTag = "svgfile";
private readonly string calcTag = "svgpreview";
private readonly string chBom = "lux:bom";
private readonly string chEstimation = "estimation:curr";
private readonly string chHwList = "lux:hw:list";
private readonly string chHwOpt = "lux:hw:opt";
private readonly string chPng = "lux:png:img";
private readonly string chProfList = "lux:prof:list";
private readonly string chShape = "shape:curr";
private readonly string chEstimation = "estimation:curr";
private readonly string chSvg = "lux:svg:img";
private readonly string chUpdate = "lux::update";
private readonly string imgBasePath = "";
+21 -2
View File
@@ -91,8 +91,7 @@ namespace Lux.API.Controllers
saved = await EMProc.ProcessAnswer(retData);
// se in debug forzo save dell'ultima chiamata comunque...
saved = false;
#if DEBUG
#endif
// se non avessi salvato e non sapessi cosa fosse --> salvo comunque x debug...
if (!saved && retData != null)
{
@@ -107,6 +106,26 @@ namespace Lux.API.Controllers
return saved;
}
/// <summary>
/// Chiamata GET:
/// - fornisce il job da eseguire dalla coda (SE presente)
/// GET: api/Prod/rep-answer/ABC012345
/// </summary>
/// <returns></returns>
[HttpGet("rep-answer/{id}")]
public async Task<ActionResult<string>> ReplayAnswer(string id, int env)
{
Constants.EXECENVIRONMENTS envir = (Constants.EXECENVIRONMENTS)env;
string rawData = await EMProc.LoadRawData(id, envir);
bool saved = false;
// provo a riprcessare...
var retData = JsonConvert.DeserializeObject<AnswerDTO>(rawData);
if (retData != null)
{
saved = await EMProc.ProcessAnswer(retData);
}
return Ok(rawData);
}
#if false
+1 -1
View File
@@ -4,7 +4,7 @@
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<Version>0.9.2512.0218</Version>
<Version>0.9.2512.0412</Version>
</PropertyGroup>
<ItemGroup>
+18 -7
View File
@@ -69,6 +69,18 @@ namespace Lux.API.Services
#endif
}
/// <summary>
/// Rilettura della risposta in formato RawData x Debug
/// </summary>
/// <param name="rawData"></param>
/// <returns></returns>
public async Task<string> LoadRawData(string UID, Constants.EXECENVIRONMENTS envir)
{
// rileggo
string rawData = await cacheService.LoadDebug(UID, envir);
return rawData;
}
/// <summary>
/// Processing di una risposta AnswerDTO
/// </summary>
@@ -133,28 +145,27 @@ namespace Lux.API.Services
saved = true;
}
// gestione ritorno tipo Stima Tempi e lavorabilità (x carico macchine/schedulazione)
if (retData.Args.ContainsKey("Estimation") || retData.Args.ContainsKey("Answer"))
if (retData.Args.ContainsKey("Estimate"))
{
// recupero lista risultati calcolo...
string rawAnsw = retData.Args["Answer"];
string rawAnsw = retData.Args["Estimate"];
List<MachineCalcResultDTO>? machineEstimList = new List<MachineCalcResultDTO>();
// deserializzo
try
{
machineEstimList = JsonConvert.DeserializeObject<List<MachineCalcResultDTO>>(rawAnsw);
machineEstimList = JsonConvert.DeserializeObject<List<MachineCalcResultDTO>>(rawAnsw);
await dbService.SaveProdEstimateAsync(UID, retData.ExecEnvironment, rawAnsw);
}
catch(Exception exc)
catch (Exception exc)
{
Log.Error($"Eccezione in deserializzazione Stima{Environment.NewLine}{exc}");
Log.Error($"Eccezione in gestione Estimate{Environment.NewLine}{exc}");
}
// reinvio in redis (cache + channel)
await cacheService.SaveEstimationAsync(UID, retData.ExecEnvironment, rawAnsw);
saved = true;
}
// gestione ritorno opzioni HW
if (retData.Args.ContainsKey("HardwareOptions"))
{
+1 -1
View File
@@ -5,7 +5,7 @@
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<UserSecretsId>aspnet-Lux.UI-a758c101-a2f4-4e38-977d-1c4887dbbd50</UserSecretsId>
<Version>0.9.2512.0218</Version>
<Version>0.9.2512.0412</Version>
</PropertyGroup>
<ItemGroup>
+1 -1
View File
@@ -1,6 +1,6 @@
<body>
<i>LUX - Web Windows MES</i>
<h4>Versione: 0.9.2512.0218</h4>
<h4>Versione: 0.9.2512.0412</h4>
<br /> Note di rilascio:
<ul>
<li>
+1 -1
View File
@@ -1 +1 @@
0.9.2512.0218
0.9.2512.0412
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<item>
<version>0.9.2512.0218</version>
<version>0.9.2512.0412</version>
<url>http://nexus.steamware.net/repository/SWS/GPW/stable/GPW.UI.zip</url>
<changelog>http://nexus.steamware.net/repository/SWS/GPW/stable/ChangeLog.html</changelog>
<mandatory>false</mandatory>
File diff suppressed because one or more lines are too long