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 MessagePack; namespace EveryThing.Models.Transport { public class TransportLoadingOrder { public enum TransportLoadingOrderState { [Display(Name = "Nov")] New = 0, [Display(Name = "Potrjen")] Confirmed = 10, [Display(Name = "Zaprt")] Closed = 20 } [System.ComponentModel.DataAnnotations.Key] public int IdTransportLoadingOrder { get; set; } [Required] [ForeignKey("Company")] public int IdCompanyFk { get; set; } [ForeignKey("Partner")] [Display(Name = "Prevoznik - Partner")] [Required] public int IdPartnerFk { get; set; } [Required] public int OrderNumber { get; set; } [Required] public int OrderYear { get; set; } [NotMapped] public string OrderNumberDisplay => $"{OrderYear}-{OrderNumber:D5}"; [Required] [Display(Name = "Kraj naloga")] public string OrderCity { get; set; } [Required] [Display(Name = "Datum naloga")] [DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}")] public DateTime OrderDate { get; set; } [Display(Name = "Uvodno besedilo")] public string PreText { get; set; } [Display(Name = "Zaključno besedilo")] public string PostText { get; set; } [ForeignKey("Vehicle")] [Display(Name = "Vozilo iz šifranta")] public int? IdVehicleFk { get; set; } [Display(Name = "Vozilo")] public string VehicleText { get; set; } [Display(Name = "Znesek")] [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:N}")] public float Total { get; set; } [Display(Name = "Opomba")] public string Note { get; set; } [Required] [Display(Name = "Status")] public TransportLoadingOrderState State { get; set; } = TransportLoadingOrderState.New; // ForeignKey public CodeTableCompany Company { get; set; } public Vehicle.Vehicle Vehicle { get; set; } public CodeTablePartner Partner { get; set; } // TransportOrderLoadUnload [InverseProperty("TransportLoadingOrder")] public virtual ICollection TransportLoadingOrderLoadUnload { get; set; } } }