169 lines
4.4 KiB
C#
169 lines
4.4 KiB
C#
using EgwCoreLib.Lux.Data.DbModel.Items;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace EgwCoreLib.Lux.Data.DbModel.Sales
|
|
{
|
|
// <Auto-Generated>
|
|
// This is here so CodeMaid doesn't reorganize this document
|
|
// </Auto-Generated>
|
|
|
|
[Table("sales_order_row")]
|
|
public class OrderRowModel
|
|
{
|
|
/// <summary>
|
|
/// ID del record
|
|
/// </summary>
|
|
[Key]
|
|
public int OrderRowID { get; set; }
|
|
|
|
/// <summary>
|
|
/// Riferimento Ordine
|
|
/// </summary>
|
|
public int OrderID { get; set; }
|
|
|
|
/// <summary>
|
|
/// Riga Ordine
|
|
/// </summary>
|
|
public int RowNum { get; set; } = 0;
|
|
|
|
/// <summary>
|
|
/// Codice calcolato Ordine ANNO.NUMERO.REV
|
|
/// </summary>
|
|
[NotMapped]
|
|
public string OrderRowCode
|
|
{
|
|
get => $"{OrderRowID:0000}.{RowNum:000}";
|
|
}
|
|
|
|
/// <summary>
|
|
/// ID dell'articolo di vendita Orderto
|
|
/// </summary>
|
|
public int SellingItemID { get; set; }
|
|
|
|
/// <summary>
|
|
/// Costo dei componeti BOM (RockBottom)
|
|
/// </summary>
|
|
public double BomCost { get; set; } = 0;
|
|
|
|
/// <summary>
|
|
/// Margine percentuale standard
|
|
/// </summary>
|
|
public double Qty { get; set; } = 1;
|
|
|
|
/// <summary>
|
|
/// Prezzo dei componeti BOM (scontabile)
|
|
/// </summary>
|
|
public double BomPrice { get; set; } = 0;
|
|
|
|
|
|
/// <summary>
|
|
/// Costo produzione Fase/Step (RockBottom)
|
|
/// </summary>
|
|
public double StepCost { get; set; } = 0;
|
|
|
|
/// <summary>
|
|
/// Prezzo produzione Fase/Step (scontabile)
|
|
/// </summary>
|
|
public double StepPrice { get; set; } = 0;
|
|
|
|
/// <summary>
|
|
/// Costo Totale Risorsa (BOM + Fase)
|
|
/// </summary>
|
|
[NotMapped]
|
|
public double UnitCost
|
|
{
|
|
get => BomCost + StepCost;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Costo Totale Risorsa (BOM + Fase)
|
|
/// </summary>
|
|
[NotMapped]
|
|
public double UnitPrice
|
|
{
|
|
get => BomPrice + StepPrice;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Sconto massimo applicabile
|
|
/// </summary>
|
|
[NotMapped]
|
|
public double MaxDiscount
|
|
{
|
|
get => (UnitCost > 0 && UnitPrice > UnitCost) ? (UnitPrice - UnitCost) / UnitPrice : 0;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Costo Totale risorsa
|
|
/// </summary>
|
|
[NotMapped]
|
|
public double TotalCost
|
|
{
|
|
get => UnitCost * Qty;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Costo Totale risorsa
|
|
/// </summary>
|
|
[NotMapped]
|
|
public double TotalPrice
|
|
{
|
|
get => UnitPrice * Qty;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Valore serializzato della composizione articolo (in formato JWD x finestra)
|
|
/// </summary>
|
|
public string SerStruct { get; set; } = "";
|
|
|
|
/// <summary>
|
|
/// Elenco StepDTO (Fasi) per la stima tempi / costi
|
|
/// potrebbe contenere anche altre info accessorie x definire dati logistico/gestionali
|
|
/// </summary>
|
|
public string ItemSteps { get; set; } = "";
|
|
|
|
/// <summary>
|
|
/// Note libere
|
|
/// </summary>
|
|
public string Note { get; set; } = "";
|
|
|
|
#if false
|
|
/// <summary>
|
|
/// Stack degli ultimi item serializzati per Uno/Redo actions
|
|
/// </summary>
|
|
[NotMapped]
|
|
public List<string> UndoRedoSerStruct { get; set; } = new List<string>();
|
|
#endif
|
|
|
|
|
|
/// <summary>
|
|
/// DataOra inserimento
|
|
/// </summary>
|
|
public DateTime Inserted { get; set; } = DateTime.Now;
|
|
|
|
/// <summary>
|
|
/// DataOra ultima modifica
|
|
/// </summary>
|
|
public DateTime Modified { get; set; } = DateTime.Now;
|
|
|
|
/// <summary>
|
|
/// Navigazione Order
|
|
/// </summary>
|
|
[ForeignKey("OrderID")]
|
|
public virtual OrderModel OrderNav { get; set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Navigazione Item
|
|
/// </summary>
|
|
[ForeignKey("SellingItemID")]
|
|
public virtual SellingItemModel SellingItemNav { get; set; } = null!;
|
|
}
|
|
}
|