MaterialModel.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. using GreenTree.Strohrmann.ERP.Core.Domain.Business;
  2. using GreenTree.Strohrmann.ERP.Web.Models.Shared;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.ComponentModel.DataAnnotations;
  6. using System.Linq;
  7. using System.Threading.Tasks;
  8. namespace GreenTree.Strohrmann.ERP.Web.Models.Business
  9. {
  10. public class MaterialModel : TrackingModel, ISearchResult
  11. {
  12. #region Properties
  13. /// <summary>
  14. /// Material id
  15. /// </summary>
  16. [Display(Name = "ID")]
  17. public int Id { get; set; }
  18. /// <summary>
  19. /// Material name
  20. /// </summary>
  21. [Display(Name = "Name")]
  22. public string Name { get; set; }
  23. /// <summary>
  24. /// Material item number
  25. /// </summary>
  26. [Display(Name = "Artikel- / Materialnummer d. Lieferanten")]
  27. public string ItemNumber { get; set; }
  28. /// <summary>
  29. /// Material description
  30. /// </summary>
  31. [Display(Name = "Beschreibung")]
  32. public string Description { get; set; }
  33. /// <summary>
  34. /// Material net value
  35. /// </summary>
  36. [Display(Name = "Nettowert")]
  37. [DisplayFormat(ApplyFormatInEditMode = false, DataFormatString = "{0:C}")]
  38. public float NetValue { get; set; }
  39. /// <summary>
  40. /// Material height
  41. /// </summary>
  42. [Display(Name = "Höhe")]
  43. public decimal Height { get; set; }
  44. /// <summary>
  45. /// Material width
  46. /// </summary>
  47. [Display(Name = "Breite")]
  48. public decimal Width { get; set; }
  49. /// <summary>
  50. /// Material depth
  51. /// </summary>
  52. [Display(Name = "Tiefe")]
  53. public decimal Depth { get; set; }
  54. /// <summary>
  55. /// Material dimensions (read only)
  56. /// </summary>
  57. [Display(Name = "Maße")]
  58. public string Dimension
  59. {
  60. get
  61. {
  62. return String.Format("{0:F2}x{1:F2}x{2:F2}", Height, Width, Depth);
  63. }
  64. }
  65. /// <summary>
  66. /// Material default unit
  67. /// </summary>
  68. [Display(Name = "Einheit")]
  69. public UnitModel DefaultUnit { get; set; }
  70. /// <summary>
  71. /// The amount of items per package
  72. /// </summary>
  73. [Display(Name = "Packungsgröße / -menge")]
  74. public decimal PackageSize { get; set; }
  75. /// <summary>
  76. /// Material supplier
  77. /// </summary>
  78. [Display(Name = "Lieferant")]
  79. public SupplierModel Supplier { get; set; }
  80. #endregion
  81. #region Search result
  82. /// <summary>
  83. /// Search result id
  84. /// </summary>
  85. public object SearchId
  86. {
  87. get
  88. {
  89. return Id;
  90. }
  91. }
  92. /// <summary>
  93. /// Search result text
  94. /// </summary>
  95. public string SearchText
  96. {
  97. get
  98. {
  99. return String.Format("{0} ({1})", Name, ItemNumber);
  100. }
  101. }
  102. #endregion
  103. #region Ctor
  104. /// <summary>
  105. /// Initializes a new instance of the MaterialModel class
  106. /// </summary>
  107. public MaterialModel() { }
  108. /// <summary>
  109. /// Initializes a new instance of the MaterialModel class
  110. /// </summary>
  111. /// <param name="material">The base material.</param>
  112. public MaterialModel(Material material)
  113. : base(material)
  114. {
  115. if (material == null) return;
  116. Id = material.Id;
  117. Name = material.Name;
  118. ItemNumber = material.ItemNumber;
  119. Description = material.Description;
  120. NetValue = Convert.ToSingle(material.NetValue);
  121. Height = material.Height;
  122. Width = material.Width;
  123. Depth = material.Depth;
  124. DefaultUnit = new UnitModel(material.DefaultUnit);
  125. PackageSize = material.PackageSize;
  126. Supplier = new SupplierModel(material.Supplier);
  127. }
  128. #endregion
  129. }
  130. }