summaryrefslogtreecommitdiff
path: root/Gestor.Model/Gestor.Model.Domain.Seguros/Vida.cs
blob: c9dc57d05719d928e2e956c5afb0e683f9b67136 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Globalization;
using Gestor.Model.Domain.Generic;
using Gestor.Model.Helper;
using Gestor.Model.Resources;
using Newtonsoft.Json;

namespace Gestor.Model.Domain.Seguros;

public class Vida : DomainBase, IDomain
{
	private string _plano;

	public Item Item { get; set; }

	public string Plano
	{
		get
		{
			return _plano?.ToUpper();
		}
		set
		{
			_plano = value;
		}
	}

	public int? Socios { get; set; }

	public int? Funcionarios { get; set; }

	public decimal? CapitalSocios { get; set; }

	public decimal? CapitalFuncionarios { get; set; }

	public string Observacao { get; set; }

	[JsonIgnore]
	public Func<List<KeyValuePair<string, string>>> ValidationEvent => Validate;

	public List<KeyValuePair<string, string>> Validate()
	{
		List<KeyValuePair<string, string>> list = ValidationHelper.AddValue();
		if (string.IsNullOrWhiteSpace(Plano))
		{
			list.AddValue("Plano", Messages.Obrigatorio);
		}
		if (Item?.Documento == null)
		{
			return list;
		}
		long id = Item.Documento.Controle.Ramo.Id;
		if (id == 7 || id == 10 || id == 53)
		{
			if (!Socios.HasValue || Socios < 0)
			{
				list.AddValue("Socios|SÓCIOS", Messages.Obrigatorio);
			}
			if (!Funcionarios.HasValue || Funcionarios < 0)
			{
				list.AddValue("Funcionarios|FUNCIONÁRIOS", Messages.Obrigatorio);
			}
			if (CapitalSocios.HasValue)
			{
				decimal? capitalSocios = CapitalSocios;
				if (!((capitalSocios.GetValueOrDefault() < default(decimal)) & capitalSocios.HasValue))
				{
					goto IL_0133;
				}
			}
			list.AddValue("CapitalSocios|CAPITAL SÓCIO", Messages.Obrigatorio);
			goto IL_0133;
		}
		goto IL_017e;
		IL_017e:
		return list;
		IL_0133:
		if (CapitalFuncionarios.HasValue)
		{
			decimal? capitalSocios = CapitalFuncionarios;
			if (!((capitalSocios.GetValueOrDefault() < default(decimal)) & capitalSocios.HasValue))
			{
				goto IL_017e;
			}
		}
		list.AddValue("CapitalFuncionarios|CAPITAL FUNCIONÁRIO", Messages.Obrigatorio);
		goto IL_017e;
	}

	public static List<TupleList> Log(Item item)
	{
		List<TupleList> list = new List<TupleList>
		{
			new TupleList
			{
				Tuples = new ObservableCollection<Tuple<string, string, string>>
				{
					new Tuple<string, string, string>("PLANO", string.IsNullOrWhiteSpace(item.Vida.Plano) ? "" : item.Vida.Plano, ""),
					new Tuple<string, string, string>("DESCRIÇÃO", string.IsNullOrWhiteSpace(item.Descricao) ? "" : item.Descricao.ToUpper(), ""),
					new Tuple<string, string, string>("SÓCIOS", (!item.Vida.Socios.HasValue) ? "" : item.Vida.Socios?.ToString(), ""),
					new Tuple<string, string, string>("CAPITAL SÓCIO", (!item.Vida.CapitalSocios.HasValue) ? "" : item.Vida.CapitalSocios?.ToString(), ""),
					new Tuple<string, string, string>("FUNCIONÁRIOS", (!item.Vida.Funcionarios.HasValue) ? "" : item.Vida.Funcionarios?.ToString(), ""),
					new Tuple<string, string, string>("CAPITAL FUNCIONÁRIOS", (!item.Vida.CapitalFuncionarios.HasValue) ? "" : item.Vida.CapitalFuncionarios?.ToString(), ""),
					new Tuple<string, string, string>("QUANTIDADE DE TITULARES", (!item.Vida.Socios.HasValue) ? "" : item.Vida.Socios?.ToString(), ""),
					new Tuple<string, string, string>("QUANTIDADE DE BENEFICIÁRIOS", (!item.Vida.Funcionarios.HasValue) ? "" : item.Vida.Funcionarios?.ToString(), "")
				}
			}
		};
		ObservableCollection<Tuple<string, string, string>> observableCollection = new ObservableCollection<Tuple<string, string, string>>
		{
			new Tuple<string, string, string>("COBERTURAS$", "", "")
		};
		foreach (Cobertura cobertura in item.Coberturas)
		{
			observableCollection.Add(new Tuple<string, string, string>($"   COBERTURA {item.Coberturas.IndexOf(cobertura) + 1}$", "", ""));
			observableCollection.Add(new Tuple<string, string, string>("      OBSERVAÇÃO", string.IsNullOrWhiteSpace(cobertura.Observacao) ? "" : cobertura.Observacao.ToUpper(), ""));
			observableCollection.Add(new Tuple<string, string, string>("      PRÊMIO", cobertura.Premio.ToString("C", new CultureInfo("pt-BR", useUserOverride: false)), ""));
			observableCollection.Add(new Tuple<string, string, string>("      FRANQUIA", cobertura.Franquia.ToString("C", new CultureInfo("pt-BR", useUserOverride: false)), ""));
			observableCollection.Add(new Tuple<string, string, string>("      L.M.I.", cobertura.Lmi.ToString("C", new CultureInfo("pt-BR", useUserOverride: false)), ""));
		}
		list.Add(new TupleList
		{
			Tuples = observableCollection
		});
		return list;
	}
}