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