prvi
This commit is contained in:
85
EveryThing/Models/Project/Project.cs
Normal file
85
EveryThing/Models/Project/Project.cs
Normal file
@@ -0,0 +1,85 @@
|
||||
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;
|
||||
|
||||
namespace EveryThing.Models.Project
|
||||
{
|
||||
public enum ProjectStatus
|
||||
{
|
||||
[Display(Name = "Odprt")]
|
||||
Opened = 0,
|
||||
|
||||
[Display(Name = "V izdelavi")]
|
||||
InProduction = 1,
|
||||
|
||||
[Display(Name = "Zaključen")]
|
||||
Finished = 2,
|
||||
[Display(Name = "Ponudba")]
|
||||
Offer = 10
|
||||
}
|
||||
|
||||
public class Project
|
||||
{
|
||||
[Key]
|
||||
public int IdProject { get; set; }
|
||||
|
||||
[Required]
|
||||
[ForeignKey("Company")]
|
||||
public int IdCompanyFk { get; set; }
|
||||
[Required]
|
||||
[Display(Name = "Partner")]
|
||||
[ForeignKey("Partner")]
|
||||
public int IdPartnerFk { get; set; }
|
||||
|
||||
[Required]
|
||||
[Display(Name = "Naziv")]
|
||||
public string Title { get; set; }
|
||||
|
||||
[Display(Name = "Številka naročila kupca")]
|
||||
public string BuyersOrderNumber { get; set; }
|
||||
|
||||
[Display(Name = "Opis")]
|
||||
public string Description { get; set; }
|
||||
|
||||
[Required]
|
||||
public int ProjectNumber { get; set; } = 0;
|
||||
|
||||
[Required]
|
||||
public int ProjectYear { get; set; } = 0;
|
||||
|
||||
[Required]
|
||||
[Display(Name = "Status")]
|
||||
public ProjectStatus Status { get; set; } = ProjectStatus.Opened;
|
||||
|
||||
[Display(Name = "Datum zaključka")]
|
||||
[DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}", ApplyFormatInEditMode = true)]
|
||||
public DateTime? FinishedDate { get; set; }
|
||||
|
||||
[NotMapped]
|
||||
[Display(Name = "Številka projekta")]
|
||||
public string ProjectNumberFormatted => $"{ProjectYear}-{ProjectNumber:D4}";
|
||||
|
||||
[NotMapped]
|
||||
[Display(Name = "Prvi dobavni rok")]
|
||||
public DateTime? FirstDeliveryDate { get; set; }
|
||||
|
||||
[NotMapped]
|
||||
[Display(Name = "Prvi dobavni rok")]
|
||||
public string FirstDeliveryDateString => FirstDeliveryDate == null || (DateTime)FirstDeliveryDate == DateTime.MaxValue
|
||||
? ""
|
||||
: ((DateTime)FirstDeliveryDate).ToString("dd.MM.yyyy");
|
||||
|
||||
// ForeignKey
|
||||
public CodeTableCompany Company { get; set; }
|
||||
public CodeTablePartner Partner { get; set; }
|
||||
|
||||
// ProjectPart
|
||||
[InverseProperty("Project")]
|
||||
public virtual ICollection<ProjectPart> ProjectProjectPart { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
69
EveryThing/Models/Project/ProjectPart.cs
Normal file
69
EveryThing/Models/Project/ProjectPart.cs
Normal file
@@ -0,0 +1,69 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace EveryThing.Models.Project
|
||||
{
|
||||
public enum ProjectPartStatus
|
||||
{
|
||||
[Display(Name = "Odprto")]
|
||||
Opened = 0,
|
||||
|
||||
[Display(Name = "V izdelavi")]
|
||||
InProduction = 1,
|
||||
|
||||
[Display(Name = "Zaključeno")]
|
||||
Finished = 2,
|
||||
|
||||
[Display(Name = "Odpremljeno")]
|
||||
Shipped = 3
|
||||
}
|
||||
|
||||
public class ProjectPart
|
||||
{
|
||||
[Key]
|
||||
public int IdProjectPart { get; set; }
|
||||
|
||||
[Required]
|
||||
[ForeignKey("Project")]
|
||||
public int IdProjectFk { get; set; }
|
||||
|
||||
[Required]
|
||||
[Display(Name = "Naziv")]
|
||||
public string Title { get; set; }
|
||||
|
||||
[Display(Name = "Opis")]
|
||||
public string Description { get; set; }
|
||||
|
||||
[Required]
|
||||
[Display(Name = "Status")]
|
||||
public ProjectPartStatus Status { get; set; } = ProjectPartStatus.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? ShippedDate { get; set; }
|
||||
|
||||
[Display(Name = "Pot načrtov")]
|
||||
public string PathOfPlans { get; set; }
|
||||
|
||||
[Required]
|
||||
public int ProjectPartNumber { get; set; } = 0;
|
||||
|
||||
[NotMapped]
|
||||
public string ProjectPartNumberFormatted => (Project != null ? Project.ProjectNumberFormatted : "") + $"-{ProjectPartNumber:D4}";
|
||||
|
||||
// ForeignKey
|
||||
public Project Project { get; set; }
|
||||
|
||||
// ProjectPartItem
|
||||
[InverseProperty("ProjectPart")]
|
||||
public virtual ICollection<ProjectPartItem> ProjectPartProjectPartItem { get; set; }
|
||||
}
|
||||
}
|
||||
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