145 lines
4.1 KiB
C#
145 lines
4.1 KiB
C#
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using gehGassi.Domain.Localization;
|
|
using gehGassi.Web.Helper;
|
|
|
|
namespace gehGassi.Web.Models
|
|
{
|
|
/// <summary>
|
|
/// Viewmodel für eine Steuer
|
|
/// </summary>
|
|
public class TaxRateVm
|
|
{
|
|
/// <summary>
|
|
/// Id des Steuereintrags
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
public int Id { get; set; }
|
|
|
|
/// <summary>
|
|
/// Land für die Steuer
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[MaxLength(2, ErrorMessage = "Err_StringLength_Max")]
|
|
[Display(Name = "Common_Country")]
|
|
public string CountryIso { get; set; }
|
|
|
|
/// <summary>
|
|
/// Steuer in Prozent
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Range(0.0, 100.0, ErrorMessage = "Err_Range")]
|
|
[Display(Name = "TaxRate_Value")]
|
|
public decimal Value { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gibt an ob dieser Steuersatz für die Versandkosten verwendet werden soll
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "TaxRate_UseForShipment", Description = "TaxRate_UseForShipment_Desc")]
|
|
public bool UseForShipment { get; set; }
|
|
|
|
/// <summary>
|
|
/// Titel des Steuersatzes
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[MaxLength(100, ErrorMessage = "Err_StringLength_Max")]
|
|
[Display(Name = "TaxRate_Title")]
|
|
public string Title { get; set; }
|
|
|
|
/// <summary>
|
|
/// Anmerkungen intern
|
|
/// </summary>
|
|
[Display(Name = "Common_Comment")]
|
|
public string Comment { get; set; }
|
|
|
|
/// <summary>
|
|
/// Texte mehrsprachig
|
|
/// </summary>
|
|
public List<TaxRateTextVm> TextVms { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Viewmodel für das Anlegen und Bearbeiten einer Steuer
|
|
/// </summary>
|
|
public class TaxRateCrudVm : TaxRateVm
|
|
{
|
|
/// <summary>
|
|
/// Land-Name
|
|
/// </summary>
|
|
public string CountryName { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Hilfsklasse für das Erfassen Mehrsprachiger Texte für Steuern.
|
|
/// Wird so gelöst, damit beliebig viele Sprachen verwendet werden können
|
|
/// </summary>
|
|
public class TaxRateTextVm
|
|
{
|
|
/// <summary>
|
|
/// Id
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
public int Id { get; set; }
|
|
|
|
/// <summary>
|
|
/// Srache
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
public string Language { get; set; }
|
|
|
|
/// <summary>
|
|
/// Name
|
|
/// </summary>
|
|
[RequiredIfDefaultLanguage("Language", ErrorMessage = "Err_Required")]
|
|
[MaxLength(100, ErrorMessage = "Err_StringLength_Max")]
|
|
[Display(Name = "TaxRate_Name", Description = "TaxRate_Name_Desc")]
|
|
public string Name { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Viewmodel für Steuern in Listendarstellung
|
|
/// </summary>
|
|
public class TaxRateListVm : LocalizableBase
|
|
{
|
|
/// <summary>
|
|
/// Id des Steuereintrags
|
|
/// </summary>
|
|
public int Id { get; set; }
|
|
|
|
/// <summary>
|
|
/// Land für die Steuer
|
|
/// </summary>
|
|
public string CountryIso { get; set; }
|
|
|
|
/// <summary>
|
|
/// Steuer in Prozent
|
|
/// </summary>
|
|
public decimal Value { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gibt an ob dieser Steuersatz für die Versandkosten verwendet werden soll
|
|
/// </summary>
|
|
public bool UseForShipment { get; set; }
|
|
|
|
/// <summary>
|
|
/// Titel des Steuersatzes
|
|
/// </summary>
|
|
public string Title { get; set; }
|
|
|
|
/// <summary>
|
|
/// Name des Steuersatzed
|
|
/// </summary>
|
|
public string Name
|
|
{
|
|
get => Get("Name", GetLanguage());
|
|
set => Set("Name", GetLanguage(), value);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Übersetzungen Name
|
|
/// </summary>
|
|
public string NameLocalized { get; set; }
|
|
}
|
|
}
|