Prvi commit
This commit is contained in:
164
EveryThing/Models/Project/ProjectPartItem.cs
Normal file
164
EveryThing/Models/Project/ProjectPartItem.cs
Normal file
@@ -0,0 +1,164 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using EveryThing.Models.CodeTable;
|
||||
using EveryThing.Models.Invoice;
|
||||
|
||||
namespace EveryThing.Models.Project
|
||||
{
|
||||
public enum ProjectPartItemStatus
|
||||
{
|
||||
[Display(Name = "Odprto")]
|
||||
Opened = 0,
|
||||
|
||||
[Display(Name = "V izdelavi")]
|
||||
InProduction = 1,
|
||||
|
||||
[Display(Name = "Zaključeno")]
|
||||
Finished = 2,
|
||||
|
||||
[Display(Name = "Odpremljeno")]
|
||||
Shipped = 3
|
||||
}
|
||||
|
||||
public class ProjectPartItem
|
||||
{
|
||||
[Key]
|
||||
public int IdProjectPartItem { get; set; }
|
||||
|
||||
[Required]
|
||||
[ForeignKey("ProjectPart")]
|
||||
public int IdProjectPartFk { get; set; }
|
||||
|
||||
[ForeignKey("Item")]
|
||||
[Display(Name = "Artikel")]
|
||||
public int? IdItemFk { get; set; }
|
||||
|
||||
[Required]
|
||||
[Display(Name = "Število kosov")]
|
||||
public float NumberOfItems { get; set; }
|
||||
|
||||
[Display(Name = "Število kompletov")]
|
||||
public float NumberOfSets { get; set; }
|
||||
|
||||
[ForeignKey("Material")]
|
||||
[Display(Name = "Material")]
|
||||
public int? IdMaterialFk { get; set; }
|
||||
|
||||
[Display(Name = "Dimenzije surovca")]
|
||||
public string MaterialDimensions { get; set; }
|
||||
|
||||
[Required]
|
||||
[ForeignKey("MaterialSupplier")]
|
||||
[Display(Name = "Dobavitelj materiala")]
|
||||
public int? IdMaterialSupplierFk { get; set; }
|
||||
|
||||
[Display(Name = "Cena - Material")]
|
||||
public float MaterialPrice { get; set; }
|
||||
|
||||
[Display(Name = "Cena - Delo")]
|
||||
public float WorkPrice { get; set; }
|
||||
|
||||
[Display(Name = "Prodajna cena")]
|
||||
public float SellingPrice { get; set; } = 0;
|
||||
|
||||
[Display(Name = "Število kosov - Zaključeno")]
|
||||
public float NumberOfItemsFinished { get; set; }
|
||||
|
||||
[NotMapped]
|
||||
[Display(Name = "Vrednost - Delo")]
|
||||
public double WorkValue
|
||||
{
|
||||
get => Convert.ToDouble(NumberOfSets) * Convert.ToDouble(NumberOfItems) * Convert.ToDouble(WorkPrice);
|
||||
set => WorkPrice = Convert.ToSingle(Convert.ToDouble(NumberOfSets) * Convert.ToDouble(NumberOfItems == 0
|
||||
? 0
|
||||
: value / (Convert.ToDouble(NumberOfSets) * Convert.ToDouble(NumberOfItems))));
|
||||
}
|
||||
|
||||
[NotMapped]
|
||||
[Display(Name = "Vrednost - Delo")]
|
||||
public double MaterialValue
|
||||
{
|
||||
get => Convert.ToDouble(NumberOfSets) * Convert.ToDouble(NumberOfItems) * Convert.ToDouble(MaterialPrice);
|
||||
set => MaterialPrice = Convert.ToSingle(Convert.ToDouble(NumberOfSets) * Convert.ToDouble(NumberOfItems == 0
|
||||
? 0
|
||||
: value / (Convert.ToDouble(NumberOfSets) * Convert.ToDouble(NumberOfItems))));
|
||||
}
|
||||
|
||||
[NotMapped]
|
||||
[Display(Name = "Vrednost - cena")]
|
||||
public double CostPrice=> Convert.ToDouble(WorkPrice) + Convert.ToDouble(MaterialPrice);
|
||||
|
||||
[NotMapped]
|
||||
[Display(Name = "Vrednost - strošek")]
|
||||
public double CostValue => Convert.ToDouble(NumberOfSets) * Convert.ToDouble(NumberOfItems) * Convert.ToDouble(CostPrice);
|
||||
|
||||
[NotMapped]
|
||||
[Display(Name = "Prodajna vrednost")]
|
||||
public double SellingValue
|
||||
{
|
||||
get => Convert.ToDouble(NumberOfSets) * Convert.ToDouble(NumberOfItems) * Convert.ToDouble(SellingPrice);
|
||||
set => SellingPrice = Convert.ToSingle(Convert.ToDouble(NumberOfSets) * Convert.ToDouble(NumberOfItems == 0
|
||||
? 0
|
||||
: value / (Convert.ToDouble(NumberOfSets) * Convert.ToDouble(NumberOfItems))));
|
||||
}
|
||||
|
||||
[NotMapped]
|
||||
[Display(Name = "RVC")]
|
||||
public double DifferenceInPrice
|
||||
{
|
||||
get => SellingPrice - (MaterialPrice + WorkPrice);
|
||||
set => SellingPrice = Convert.ToSingle(value + (MaterialPrice + WorkPrice));
|
||||
}
|
||||
|
||||
[NotMapped]
|
||||
[Display(Name = "RVC")]
|
||||
public double DifferenceInPriceValue => SellingValue - (MaterialValue + WorkValue);
|
||||
|
||||
[NotMapped]
|
||||
[Display(Name = "RVC")]
|
||||
public double DifferenceInPricePercentage =>
|
||||
(Convert.ToDouble(MaterialValue) + Convert.ToDouble(WorkValue)) == 0
|
||||
? 100
|
||||
: ((SellingValue / (MaterialValue + WorkValue) - 1) * 100);
|
||||
|
||||
[Required]
|
||||
[Display(Name = "Status")]
|
||||
public ProjectPartItemStatus Status { get; set; } = ProjectPartItemStatus.Opened;
|
||||
|
||||
[Display(Name = "Datum zaključka")]
|
||||
[DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}", ApplyFormatInEditMode = true)]
|
||||
public DateTime? FinishedDate { get; set; }
|
||||
|
||||
[Display(Name = "Datum odpreme")]
|
||||
[DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}", ApplyFormatInEditMode = true)]
|
||||
public DateTime? ShippingDate { get; set; }
|
||||
|
||||
[Display(Name = "Dobavni rok")]
|
||||
[DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}", ApplyFormatInEditMode = true)]
|
||||
public DateTime? DeliveryDate { get; set; }
|
||||
|
||||
[Display(Name = "Spremenjeno")]
|
||||
public DateTime DateModified { get; set; } = DateTime.Now;
|
||||
|
||||
|
||||
[Required]
|
||||
public int ProjectPartItemNumber { get; set; } = 0;
|
||||
|
||||
[NotMapped]
|
||||
public string ProjectPartNumberFormatted => (ProjectPart != null ? ProjectPart.ProjectPartNumberFormatted : "") + $"-{ProjectPartItemNumber:D4}";
|
||||
|
||||
// ForeignKey
|
||||
public ProjectPart ProjectPart { get; set; }
|
||||
public CodeTablePartner MaterialSupplier { get; set; }
|
||||
public CodeTableItem Item { get; set; }
|
||||
public CodeTableItem Material { get; set; }
|
||||
|
||||
//Invoice item
|
||||
[InverseProperty("ProjectPartItem")]
|
||||
public virtual ICollection<InvoiceItem> InvoiceItem { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user