diff options
| author | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-03-30 13:38:18 +0000 |
|---|---|---|
| committer | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-03-30 13:38:18 +0000 |
| commit | 1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 (patch) | |
| tree | e1c3b20ea08f0cf71122a1e73f0d395f8fd83874 /Codemerx/Gestor.Application/ViewModels/Ferramentas/VendedorViewModel.cs | |
| parent | 674ca83ba9243a9e95a7568c797668dab6aee26a (diff) | |
| download | gestor-1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1.tar.gz gestor-1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1.zip | |
chore: location
Diffstat (limited to 'Codemerx/Gestor.Application/ViewModels/Ferramentas/VendedorViewModel.cs')
| -rw-r--r-- | Codemerx/Gestor.Application/ViewModels/Ferramentas/VendedorViewModel.cs | 913 |
1 files changed, 913 insertions, 0 deletions
diff --git a/Codemerx/Gestor.Application/ViewModels/Ferramentas/VendedorViewModel.cs b/Codemerx/Gestor.Application/ViewModels/Ferramentas/VendedorViewModel.cs new file mode 100644 index 0000000..32b04c4 --- /dev/null +++ b/Codemerx/Gestor.Application/ViewModels/Ferramentas/VendedorViewModel.cs @@ -0,0 +1,913 @@ +using CsQuery.ExtensionMethods.Internal;
+using Gestor.Application.Helpers;
+using Gestor.Application.Servicos.Ferramentas;
+using Gestor.Application.Servicos.Generic;
+using Gestor.Application.ViewModels.Generic;
+using Gestor.Common.Validation;
+using Gestor.Model.Attributes;
+using Gestor.Model.Common;
+using Gestor.Model.Domain.Common;
+using Gestor.Model.Domain.Configuracoes;
+using Gestor.Model.Domain.Generic;
+using Gestor.Model.Domain.Seguros;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Diagnostics;
+using System.Linq;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Threading.Tasks;
+using System.Windows;
+
+namespace Gestor.Application.ViewModels.Ferramentas
+{
+ public class VendedorViewModel : BaseSegurosViewModel
+ {
+ private readonly VendedorServico _servico;
+
+ public Vendedor CancelVendedor;
+
+ private Vendedor _selectedVendedor;
+
+ private GridLength _gridHeight = new GridLength(1, GridUnitType.Star);
+
+ private GridLength _gridHeight2 = new GridLength(0);
+
+ private ObservableCollection<Vendedor> _vendedoresFiltrados = new ObservableCollection<Vendedor>();
+
+ private bool _isExpanded;
+
+ private VendedorTelefone _selectedTelefone = new VendedorTelefone();
+
+ private ObservableCollection<VendedorTelefone> _telefones = new ObservableCollection<VendedorTelefone>();
+
+ private Repasse _selectedRepasse = new Repasse();
+
+ private ObservableCollection<Repasse> _repasses = new ObservableCollection<Repasse>();
+
+ private string _pesquisa;
+
+ private Visibility _mostrarRamo;
+
+ private ObservableCollection<Ramo> _ramos = new ObservableCollection<Ramo>();
+
+ private Visibility _visualizacaoPropriaCorretora { get; set; } = Visibility.Collapsed;
+
+ public bool CoCorretagemAtiva { get; set; } = Recursos.Configuracoes.Any<ConfiguracaoSistema>(new Func<ConfiguracaoSistema, bool>((//
+ // Current member / type: System.Boolean Gestor.Application.ViewModels.Ferramentas.VendedorViewModel::CoCorretagemAtiva()
+ // File path: C:\AggerSeguros\Gestor.Application.exe
+ //
+ // Product version: 0.0.0.0
+ // Exception in: System.Boolean CoCorretagemAtiva()
+ //
+ // Object reference not set to an instance of an object.
+ // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.GetArgumentName(ParameterReference parameter) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseImperativeLanguageWriter.cs:line 2276
+ // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.VisitLambdaParameterExpression(LambdaParameterExpression node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseImperativeLanguageWriter.cs:line 4496
+ // at Telerik.JustDecompiler.Ast.BaseCodeVisitor.Visit(ICodeNode node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Ast\BaseCodeVisitor.cs:line 351
+ // at Telerik.JustDecompiler.Languages.BaseLanguageWriter.Write(Action writeEntity) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseLanguageWriter.cs:line 339
+ // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.Visit(ICodeNode node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseImperativeLanguageWriter.cs:line 1133
+ // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.VisitMethodParametersInternal(IList`1 list, Boolean isExtensionMethod) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseImperativeLanguageWriter.cs:line 2769
+ // at Telerik.JustDecompiler.Languages.CSharp.CSharpWriter.VisitLambdaExpression(LambdaExpression node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\CSharp\CSharpWriter.cs:line 1077
+ // at Telerik.JustDecompiler.Ast.BaseCodeVisitor.Visit(ICodeNode node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Ast\BaseCodeVisitor.cs:line 351
+ // at Telerik.JustDecompiler.Languages.BaseLanguageWriter.Write(Action writeEntity) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseLanguageWriter.cs:line 339
+ // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.Visit(ICodeNode node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseImperativeLanguageWriter.cs:line 1133
+ // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.VisitDelegateCreationExpression(DelegateCreationExpression node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseImperativeLanguageWriter.cs:line 4667
+ // at Telerik.JustDecompiler.Ast.BaseCodeVisitor.Visit(ICodeNode node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Ast\BaseCodeVisitor.cs:line 351
+ // at Telerik.JustDecompiler.Languages.BaseLanguageWriter.Write(Action writeEntity) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseLanguageWriter.cs:line 339
+ // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.Visit(ICodeNode node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseImperativeLanguageWriter.cs:line 1133
+ // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.VisitMethodParametersInternal(IList`1 list, Boolean isExtensionMethod) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseImperativeLanguageWriter.cs:line 2769
+ // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.VisitMethodInvocationExpression(MethodInvocationExpression node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseImperativeLanguageWriter.cs:line 2750
+ // at Telerik.JustDecompiler.Ast.BaseCodeVisitor.Visit(ICodeNode node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Ast\BaseCodeVisitor.cs:line 351
+ // at Telerik.JustDecompiler.Languages.BaseLanguageWriter.Write(Action writeEntity) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseLanguageWriter.cs:line 339
+ // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.Visit(ICodeNode node) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseImperativeLanguageWriter.cs:line 1133
+ // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.WriteInitializedAutoProperty(PropertyDefinition property, Expression assignment) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseImperativeLanguageWriter.cs:line 1457
+ // at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.Write(PropertyDefinition property)
+ // at Telerik.JustDecompiler.Languages.BaseLanguageWriter.WriteInternal(IMemberDefinition member) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Languages\BaseLanguageWriter.cs:line 583
+ //
+ // mailto: JustDecompilePublicFeedback@telerik.com
+
+
+ public GridLength GridHeight
+ {
+ get
+ {
+ return this._gridHeight;
+ }
+ set
+ {
+ this._gridHeight = value;
+ base.OnPropertyChanged("GridHeight");
+ }
+ }
+
+ public GridLength GridHeight2
+ {
+ get
+ {
+ return this._gridHeight2;
+ }
+ set
+ {
+ this._gridHeight2 = value;
+ base.OnPropertyChanged("GridHeight2");
+ }
+ }
+
+ public bool IsExpanded
+ {
+ get
+ {
+ return this._isExpanded;
+ }
+ set
+ {
+ this._isExpanded = value;
+ base.OnPropertyChanged("IsExpanded");
+ }
+ }
+
+ public Visibility MostrarRamo
+ {
+ get
+ {
+ return this._mostrarRamo;
+ }
+ set
+ {
+ this._mostrarRamo = value;
+ base.OnPropertyChanged("MostrarRamo");
+ }
+ }
+
+ public string Pesquisa
+ {
+ get
+ {
+ return this._pesquisa;
+ }
+ set
+ {
+ this._pesquisa = value;
+ base.OnPropertyChanged("Pesquisa");
+ }
+ }
+
+ public ObservableCollection<Ramo> Ramos
+ {
+ get
+ {
+ return this._ramos;
+ }
+ set
+ {
+ this._ramos = value;
+ base.OnPropertyChanged("Ramos");
+ }
+ }
+
+ public ObservableCollection<Repasse> Repasses
+ {
+ get
+ {
+ return this._repasses;
+ }
+ set
+ {
+ if (value != null && value.Count > 0)
+ {
+ foreach (Repasse repasse in value)
+ {
+ if (repasse.get_Ramo() != null)
+ {
+ continue;
+ }
+ repasse.set_Ramo(new Ramo());
+ }
+ }
+ this._repasses = value;
+ base.OnPropertyChanged("Repasses");
+ }
+ }
+
+ public Repasse SelectedRepasse
+ {
+ get
+ {
+ return this._selectedRepasse;
+ }
+ set
+ {
+ this._selectedRepasse = value;
+ base.OnPropertyChanged("SelectedRepasse");
+ }
+ }
+
+ public VendedorTelefone SelectedTelefone
+ {
+ get
+ {
+ return this._selectedTelefone;
+ }
+ set
+ {
+ this._selectedTelefone = value;
+ base.OnPropertyChanged("SelectedTelefone");
+ }
+ }
+
+ public Vendedor SelectedVendedor
+ {
+ get
+ {
+ return this._selectedVendedor;
+ }
+ set
+ {
+ long? nullable;
+ this._selectedVendedor = value;
+ this.WorkOnSelectedVendedor(value, true);
+ if (value != null)
+ {
+ nullable = new long?(value.get_Id());
+ }
+ else
+ {
+ nullable = null;
+ }
+ base.VerificarEnables(nullable);
+ base.OnPropertyChanged("SelectedVendedor");
+ }
+ }
+
+ public ObservableCollection<VendedorTelefone> Telefones
+ {
+ get
+ {
+ return this._telefones;
+ }
+ set
+ {
+ this._telefones = value;
+ base.OnPropertyChanged("Telefones");
+ }
+ }
+
+ public List<TipoRepasse> TiposRepasseFiltrados
+ {
+ get
+ {
+ return Enum.GetValues(typeof(TipoRepasse)).Cast<TipoRepasse>().Where<TipoRepasse>((TipoRepasse tipo) => {
+ TipoAttribute tipoAttribute = (TipoAttribute)typeof(TipoRepasse).GetField(tipo.ToString()).GetCustomAttributes(typeof(TipoAttribute), false).FirstOrDefault<object>();
+ if (tipoAttribute == null || tipoAttribute.get_Tipo() == "0" || this.CoCorretagemAtiva)
+ {
+ return true;
+ }
+ TipoRepasse? nullable = this.SelectedRepasse.get_Tipo();
+ return tipo == nullable.GetValueOrDefault() & nullable.HasValue;
+ }).ToList<TipoRepasse>();
+ }
+ }
+
+ public List<Vendedor> Vendedores
+ {
+ get;
+ set;
+ }
+
+ public ObservableCollection<Vendedor> VendedoresFiltrados
+ {
+ get
+ {
+ return this._vendedoresFiltrados;
+ }
+ set
+ {
+ this._vendedoresFiltrados = value;
+ this.IsExpanded = (value != null ? value.Count > 0 : false);
+ base.OnPropertyChanged("VendedoresFiltrados");
+ }
+ }
+
+ public Visibility VisualizacaoPropriaCorretora
+ {
+ get
+ {
+ return this._visualizacaoPropriaCorretora;
+ }
+ set
+ {
+ this._visualizacaoPropriaCorretora = value;
+ base.OnPropertyChanged("VisualizacaoPropriaCorretora");
+ }
+ }
+
+ public VendedorViewModel()
+ {
+ this._servico = new VendedorServico();
+ base.EnableMenu = true;
+ this.Seleciona();
+ }
+
+ public async Task AtivarInativarRepasse(Repasse repasse)
+ {
+ bool id;
+ Ramo ramo;
+ object obj;
+ string str;
+ if (repasse != null && repasse.get_Id() != 0)
+ {
+ str = (repasse.get_Ativo() ? "INATIVOU REPASSE" : "ATIVOU REPASSE");
+ repasse.set_Ativo(!repasse.get_Ativo());
+ Repasse repasse1 = repasse;
+ Ramo ramo1 = repasse.get_Ramo();
+ if (ramo1 != null)
+ {
+ id = ramo1.get_Id() == (long)0;
+ }
+ else
+ {
+ id = false;
+ }
+ if (id)
+ {
+ ramo = null;
+ }
+ else
+ {
+ ramo = repasse.get_Ramo();
+ }
+ repasse1.set_Ramo(ramo);
+ repasse = await this._servico.Save(repasse);
+ long num = this.SelectedVendedor.get_Id();
+ VendedorViewModel vendedorViewModel = this;
+ string str1 = string.Concat(str, " \"", this.SelectedVendedor.get_Nome(), "\"");
+ long id1 = this.SelectedVendedor.get_Id();
+ TipoTela? nullable = new TipoTela?(15);
+ object[] objArray = new object[] { repasse.get_Id(), repasse.get_ValorNovo(), repasse.get_ValorRenovacao(), null };
+ obj = (repasse.get_Ativo() ? "SIM" : "NÃO");
+ objArray[3] = obj;
+ vendedorViewModel.RegistrarAcao(str1, id1, nullable, string.Format("ID: {0}\nVALOR NOVO: {1:N2}\nVALOR RENOVAÇÃO: {2:N2}\nATIVO: {3}", objArray));
+ this.Pesquisa = string.Empty;
+ this.SelectedVendedor = null;
+ await this.SelecionaVendedores(false);
+ this.SelectedVendedor = this.VendedoresFiltrados.FirstOrDefault<Vendedor>((Vendedor x) => x.get_Id() == num);
+ Recursos.Vendedores = this.Vendedores;
+ base.Alterar(false);
+ base.ToggleSnackBar("REPASSE SALVO COM SUCESSO", true);
+ }
+ str = null;
+ }
+
+ public async Task AtivarInativarVendedor(Vendedor vendedor)
+ {
+ object nome;
+ object obj;
+ string str;
+ Vendedor vendedor1 = vendedor;
+ if (vendedor1 != null && vendedor1.get_Id() != 0)
+ {
+ str = (vendedor1.get_Ativo() ? "INATIVOU VENDEDOR" : "ATIVOU VENDEDOR");
+ vendedor1.set_Ativo(!vendedor1.get_Ativo());
+ Vendedor vendedor2 = await this._servico.Save(vendedor1, this.Repasses.ToList<Repasse>());
+ vendedor1 = vendedor2;
+ VendedorViewModel vendedorViewModel = this;
+ string str1 = string.Concat(str, " \"", vendedor1.get_Nome(), "\"");
+ long id = vendedor1.get_Id();
+ TipoTela? nullable = new TipoTela?(15);
+ object[] agencia = new object[] { vendedor1.get_Id(), Recursos.Empresas.First<Empresa>((Empresa x) => x.get_Id() == (vendedor1.get_IdEmpresa() == 0 ? (long)1 : vendedor1.get_IdEmpresa())).get_Nome(), vendedor1.get_Documento(), null, null, null, null, null };
+ Banco banco = vendedor1.get_Banco();
+ if (banco != null)
+ {
+ nome = banco.get_Nome();
+ }
+ else
+ {
+ nome = null;
+ }
+ agencia[3] = nome;
+ agencia[4] = vendedor1.get_Agencia();
+ agencia[5] = vendedor1.get_Conta();
+ agencia[6] = vendedor1.get_Desconto();
+ obj = (vendedor1.get_Ativo() ? "SIM" : "NÃO");
+ agencia[7] = obj;
+ vendedorViewModel.RegistrarAcao(str1, id, nullable, string.Format("ID: {0}\nFILIAL DO VENDEDOR: {1}\nDOCUMENTO: {2}\nBANCO: {3}\nAGÊNCIA: {4}\nCONTA: {5}\nDESCONTO: {6:N2}\nATIVO: {7}", agencia));
+ this.Pesquisa = string.Empty;
+ this.SelectedVendedor = null;
+ await this.SelecionaVendedores(false);
+ this.SelectedVendedor = this.VendedoresFiltrados.FirstOrDefault<Vendedor>((Vendedor x) => x.get_Id() == vendedor1.get_Id());
+ Recursos.Vendedores = this.Vendedores;
+ base.Alterar(false);
+ base.ToggleSnackBar("VENDEDOR SALVO COM SUCESSO", true);
+ }
+ str = null;
+ }
+
+ public void CancelarAlteracao()
+ {
+ if (this.CancelVendedor == null || !this.Vendedores.Any<Vendedor>((Vendedor x) => x.get_Id() == this.CancelVendedor.get_Id()))
+ {
+ this.Incluir();
+ }
+ else
+ {
+ DomainBase.Copy<Vendedor, Vendedor>(this.Vendedores.First<Vendedor>((Vendedor x) => x.get_Id() == this.CancelVendedor.get_Id()), this.CancelVendedor);
+ if (this.VendedoresFiltrados.Count <= 0 || !this.VendedoresFiltrados.Any<Vendedor>((Vendedor x) => x.get_Id() == this.CancelVendedor.get_Id()))
+ {
+ this.VendedoresFiltrados.Add(this.CancelVendedor);
+ }
+ else
+ {
+ DomainBase.Copy<Vendedor, Vendedor>(this.VendedoresFiltrados.First<Vendedor>((Vendedor x) => x.get_Id() == this.CancelVendedor.get_Id()), this.CancelVendedor);
+ }
+ this.VendedoresFiltrados = new ObservableCollection<Vendedor>(this.VendedoresFiltrados);
+ this.SelectedVendedor = this.VendedoresFiltrados.First<Vendedor>((Vendedor x) => x.get_Id() == this.CancelVendedor.get_Id());
+ }
+ base.Alterar(false);
+ }
+
+ public void ExcluirTelefone(VendedorTelefone telefone)
+ {
+ this.Telefones.Remove(telefone);
+ }
+
+ public async Task ExcluirVinculo(VinculoRepasse vinculo)
+ {
+ if (await base.ShowMessage("DESEJA REALMENTE EXCLUIR O VÍNCULO DO REPASSE SELECIONADO?", "SIM", "NÃO", false))
+ {
+ await this._servico.Delete(vinculo);
+ this.Repasses = new ObservableCollection<Repasse>((IEnumerable<!0>)await this._servico.BuscaRepassesPorIdVendedor(this.SelectedVendedor.get_Id()));
+ base.ToggleSnackBar("VINCULO EXCLUÍDO COM SUCESSO", true);
+ }
+ }
+
+ internal async Task<List<Vendedor>> Filtrar(string value)
+ {
+ List<Vendedor> vendedors = await Task.Run<List<Vendedor>>(() => this.FiltrarVendedor(value));
+ return vendedors;
+ }
+
+ public List<Vendedor> FiltrarVendedor(string filter)
+ {
+ this.VendedoresFiltrados = (string.IsNullOrWhiteSpace(filter) ? new ObservableCollection<Vendedor>(this.Vendedores) : new ObservableCollection<Vendedor>(
+ from x in this.Vendedores
+ where ValidationHelper.RemoveDiacritics(x.get_Nome().Trim()).ToUpper().Contains(ValidationHelper.RemoveDiacritics(filter))
+ orderby x.get_Ativo() descending, x.get_Nome()
+ select x));
+ this.SelectedVendedor = this.VendedoresFiltrados.FirstOrDefault<Vendedor>();
+ return this.VendedoresFiltrados.ToList<Vendedor>();
+ }
+
+ public void Incluir()
+ {
+ Vendedor vendedor = new Vendedor();
+ vendedor.set_Ativo(true);
+ vendedor.set_Desconto(new decimal?(new decimal()));
+ this.SelectedVendedor = vendedor;
+ this.Telefones = new ObservableCollection<VendedorTelefone>();
+ this.Repasses = new ObservableCollection<Repasse>();
+ base.Alterar(true);
+ }
+
+ public void IncluirRepasse()
+ {
+ if (this.SelectedVendedor == null)
+ {
+ return;
+ }
+ if (this.Repasses == null)
+ {
+ this.Repasses = new ObservableCollection<Repasse>();
+ }
+ Repasse repasse = new Repasse();
+ repasse.set_Vendedor(this.SelectedVendedor);
+ repasse.set_Forma(new FormaRepasse?(1));
+ repasse.set_Incidencia(new TipoIncidencia?(1));
+ repasse.set_Tipo(new TipoRepasse?(2));
+ repasse.set_Ativo(true);
+ repasse.set_Ramo(this.Ramos.First<Ramo>());
+ Repasse repasse1 = repasse;
+ this.Repasses.Insert(0, repasse1);
+ this.SelectedRepasse = repasse1;
+ }
+
+ public void IncluirTelefone()
+ {
+ if (this.SelectedVendedor == null)
+ {
+ return;
+ }
+ if (this.Telefones == null)
+ {
+ this.Telefones = new ObservableCollection<VendedorTelefone>();
+ }
+ VendedorTelefone vendedorTelefone = new VendedorTelefone();
+ vendedorTelefone.set_Vendedor(this.SelectedVendedor);
+ vendedorTelefone.set_Tipo(new TipoTelefone?(1));
+ VendedorTelefone vendedorTelefone1 = vendedorTelefone;
+ this.Telefones.Add(vendedorTelefone1);
+ this.SelectedTelefone = vendedorTelefone1;
+ }
+
+ public async Task<List<KeyValuePair<string, string>>> Salvar()
+ {
+ List<KeyValuePair<string, string>> keyValuePairs1;
+ string str;
+ object nome;
+ object obj;
+ VendedorViewModel.u003cu003ec__DisplayClass55_0 variable;
+ List<Repasse> list;
+ string str1;
+ this.SelectedVendedor.set_Telefones(this.Telefones.ToList<VendedorTelefone>());
+ List<KeyValuePair<string, string>> keyValuePairs2 = this.SelectedVendedor.Validate();
+ List<KeyValuePair<string, string>> keyValuePairs3 = keyValuePairs2;
+ keyValuePairs3.AddRange(await this.Validate());
+ keyValuePairs3 = null;
+ if (keyValuePairs2.Count <= 0)
+ {
+ Vendedor selectedVendedor = this.SelectedVendedor;
+ ObservableCollection<VendedorTelefone> telefones = this.Telefones;
+ selectedVendedor.set_Telefones((
+ from x in telefones
+ where !string.IsNullOrEmpty(x.get_Nome())
+ select x).ToList<VendedorTelefone>());
+ List<Repasse> repasses = this.Repasses.ToList<Repasse>();
+ list = repasses.Where<Repasse>((Repasse x) => {
+ List<KeyValuePair<string, string>> keyValuePairs = x.Validate();
+ if (keyValuePairs == null)
+ {
+ return false;
+ }
+ return keyValuePairs.Count == 0;
+ }).ToList<Repasse>();
+ if (list.Count < this.Repasses.Count)
+ {
+ if (!await base.ShowMessage(string.Concat("HÁ REPASSES INVÁLIDOS, DESEJA PROSSEGUIR?", Environment.NewLine, "CASO PROSSIGA OS REPASSES INVÁLIDOS NÃO SERÃO SALVOS."), "SIM", "NÃO", false))
+ {
+ this.Repasses.ToList<Repasse>().ForEach((Repasse x) => keyValuePairs2.AddRange(x.Validate()));
+ keyValuePairs1 = keyValuePairs2;
+ variable = null;
+ list = null;
+ str1 = null;
+ return keyValuePairs1;
+ }
+ }
+ this.Repasses = new ObservableCollection<Repasse>(list);
+ str = (this.SelectedVendedor.get_Id() == 0 ? "INCLUIU" : "ALTEROU");
+ str1 = str;
+ Vendedor vendedor = await this._servico.Save(this.SelectedVendedor, this.Repasses.ToList<Repasse>());
+ Vendedor vendedor1 = vendedor;
+ if (this._servico.Sucesso)
+ {
+ VendedorViewModel vendedorViewModel = this;
+ string str2 = string.Concat(str1, " VENDEDOR \"", vendedor1.get_Nome(), "\"");
+ long id = vendedor1.get_Id();
+ TipoTela? nullable = new TipoTela?(15);
+ object[] agencia = new object[] { vendedor1.get_Id(), Recursos.Empresas.First<Empresa>((Empresa x) => x.get_Id() == (vendedor1.get_IdEmpresa() == 0 ? (long)1 : vendedor1.get_IdEmpresa())).get_Nome(), vendedor1.get_Documento(), null, null, null, null, null };
+ Banco banco = vendedor1.get_Banco();
+ if (banco != null)
+ {
+ nome = banco.get_Nome();
+ }
+ else
+ {
+ nome = null;
+ }
+ agencia[3] = nome;
+ agencia[4] = vendedor1.get_Agencia();
+ agencia[5] = vendedor1.get_Conta();
+ agencia[6] = vendedor1.get_Desconto();
+ obj = (vendedor1.get_Ativo() ? "SIM" : "NÃO");
+ agencia[7] = obj;
+ vendedorViewModel.RegistrarAcao(str2, id, nullable, string.Format("ID: {0}\nFILIAL DO VENDEDOR: {1}\nDOCUMENTO: {2}\nBANCO: {3}\nAGÊNCIA: {4}\nCONTA: {5}\nDESCONTO: {6:N2}\nATIVO: {7}", agencia));
+ this.Pesquisa = string.Empty;
+ this.SelectedVendedor = null;
+ await this.SelecionaVendedores(false);
+ this.SelectedVendedor = this.VendedoresFiltrados.FirstOrDefault<Vendedor>((Vendedor x) => x.get_Id() == vendedor1.get_Id());
+ Recursos.Vendedores = this.Vendedores;
+ base.Alterar(false);
+ base.ToggleSnackBar("VENDEDOR SALVO COM SUCESSO", true);
+ keyValuePairs1 = null;
+ }
+ else
+ {
+ keyValuePairs1 = null;
+ }
+ }
+ else
+ {
+ keyValuePairs1 = keyValuePairs2;
+ }
+ variable = null;
+ list = null;
+ str1 = null;
+ return keyValuePairs1;
+ }
+
+ public async Task SalvarVinculo(VinculoRepasse vinculo)
+ {
+ await this._servico.Save(vinculo);
+ this.Repasses = new ObservableCollection<Repasse>((IEnumerable<!0>)await this._servico.BuscaRepassesPorIdVendedor(this.SelectedVendedor.get_Id()));
+ base.ToggleSnackBar("VINCULO SALVO COM SUCESSO", true);
+ }
+
+ private async void Seleciona()
+ {
+ base.Loading(true);
+ await base.PermissaoTela(15);
+ await this.SelecionaVendedores(true);
+ await this.SelecionaRamos();
+ base.Loading(false);
+ }
+
+ private async Task SelecionaRamos()
+ {
+ Visibility visibility;
+ VendedorViewModel vendedorViewModel = this;
+ List<ConfiguracaoSistema> configuracoes = Recursos.Configuracoes;
+ visibility = (configuracoes.All<ConfiguracaoSistema>((ConfiguracaoSistema x) => x.get_Configuracao() != 20) ? Visibility.Collapsed : Visibility.Visible);
+ vendedorViewModel.MostrarRamo = visibility;
+ ObservableCollection<Ramo> ramos = this.Ramos;
+ Ramo ramo = new Ramo();
+ ramo.set_Nome("TODOS OS RAMOS");
+ ramos.Add(ramo);
+ List<Ramo> ramos1 = await (new BaseServico()).BuscarRamosAsync();
+ ObservableCollection<Ramo> observableCollection = this.Ramos;
+ List<Ramo> ramos2 = ramos1;
+ IEnumerable<Ramo> ativo =
+ from x in ramos2
+ where x.get_Ativo()
+ select x;
+ ExtensionMethods.AddRange<Ramo>(observableCollection,
+ from x in ativo
+ orderby x.get_Nome()
+ select x);
+ }
+
+ private async Task SelecionaVendedores(bool selecionar = true)
+ {
+ List<Vendedor> vendedors = await (new BaseServico()).BuscarVendedoresAsync();
+ VendedorViewModel list = this;
+ List<Vendedor> vendedors1 = vendedors;
+ IEnumerable<Vendedor> vendedors2 = vendedors1.Where<Vendedor>((Vendedor x) => {
+ if (Recursos.Usuario.get_IdEmpresa() == (long)1)
+ {
+ return true;
+ }
+ return x.get_IdEmpresa() == Recursos.Usuario.get_IdEmpresa();
+ });
+ IOrderedEnumerable<Vendedor> ativo =
+ from x in vendedors2
+ orderby x.get_Ativo() descending
+ select x;
+ list.Vendedores = ativo.ThenBy<Vendedor, string>((Vendedor x) => x.get_Nome()).ToList<Vendedor>();
+ this.VendedoresFiltrados = new ObservableCollection<Vendedor>(this.Vendedores);
+ if (selecionar)
+ {
+ this.SelectedVendedor = this.VendedoresFiltrados.FirstOrDefault<Vendedor>();
+ }
+ Recursos.Vendedores = vendedors;
+ }
+
+ private async Task<List<KeyValuePair<string, string>>> Validate()
+ {
+ List<Vendedor> vendedors;
+ IEnumerable<Repasse> repasses;
+ List<KeyValuePair<string, string>> keyValuePairs = new List<KeyValuePair<string, string>>();
+ if (!ValidationHelper.ValidateDocument(this.SelectedVendedor.get_Documento()))
+ {
+ vendedors = new List<Vendedor>();
+ }
+ else
+ {
+ vendedors = await (new BaseServico()).BuscarVendedor(this.SelectedVendedor.get_Documento());
+ }
+ Vendedor vendedor = vendedors.FirstOrDefault<Vendedor>((Vendedor x) => {
+ if (x.get_Id() == this.SelectedVendedor.get_Id() || !(x.get_Documento() == this.SelectedVendedor.get_Documento()))
+ {
+ return false;
+ }
+ return x.get_Ativo();
+ });
+ if (vendedor != null)
+ {
+ List<ConfiguracaoSistema> configuracoes = Recursos.Configuracoes;
+ if (configuracoes.All<ConfiguracaoSistema>((ConfiguracaoSistema x) => x.get_Configuracao() != 7))
+ {
+ keyValuePairs.Add(new KeyValuePair<string, string>("Documento", string.Concat("O DOCUMENTO JÁ ESTÁ CADASTRADO PARA O VENDEDOR ", vendedor.get_Nome(), ".")));
+ }
+ }
+ List<ConfiguracaoSistema> configuracaoSistemas = Recursos.Configuracoes;
+ if (configuracaoSistemas.All<ConfiguracaoSistema>((ConfiguracaoSistema x) => x.get_Configuracao() != 15))
+ {
+ ObservableCollection<Repasse> observableCollection = this.Repasses;
+ if (observableCollection != null)
+ {
+ repasses = observableCollection.Where<Repasse>((Repasse x) => {
+ if (x.get_Tipo().GetValueOrDefault() != 2)
+ {
+ return false;
+ }
+ if (x.get_ValorNovo() > new decimal(100))
+ {
+ return true;
+ }
+ return x.get_ValorRenovacao() > new decimal(100);
+ });
+ }
+ else
+ {
+ repasses = null;
+ }
+ IEnumerable<Repasse> repasses1 = repasses;
+ if (repasses1 != null && repasses1.Any<Repasse>())
+ {
+ keyValuePairs.Add(new KeyValuePair<string, string>("VALOR REPASSE", "O VALOR DE REPASSE NÃO PODE SER SUPERIOR A 100%"));
+ }
+ }
+ ObservableCollection<Repasse> observableCollection1 = await this._servico.BuscaRepassesPorIdVendedor(this.SelectedVendedor.get_Id());
+ if (observableCollection1 != null && observableCollection1.Count > 0)
+ {
+ foreach (Repasse repasse1 in observableCollection1)
+ {
+ if (!this.Repasses.Any<Repasse>((Repasse repasse) => {
+ long? nullable;
+ long? nullable1;
+ long? nullable2;
+ bool id;
+ if (repasse1.get_Id() != repasse.get_Id())
+ {
+ return false;
+ }
+ TipoRepasse? tipo = repasse1.get_Tipo();
+ TipoRepasse? tipo1 = repasse.get_Tipo();
+ if (tipo.GetValueOrDefault() == tipo1.GetValueOrDefault() & tipo.HasValue == tipo1.HasValue && !(repasse1.get_ValorNovo() != repasse.get_ValorNovo()) && !(repasse1.get_ValorRenovacao() != repasse.get_ValorRenovacao()))
+ {
+ TipoIncidencia? incidencia = repasse1.get_Incidencia();
+ TipoIncidencia? incidencia1 = repasse.get_Incidencia();
+ if (incidencia.GetValueOrDefault() == incidencia1.GetValueOrDefault() & incidencia.HasValue == incidencia1.HasValue)
+ {
+ FormaRepasse? forma = repasse1.get_Forma();
+ FormaRepasse? forma1 = repasse.get_Forma();
+ if (forma.GetValueOrDefault() == forma1.GetValueOrDefault() & forma.HasValue == forma1.HasValue)
+ {
+ BaseRepasse? @base = repasse1.get_Base();
+ BaseRepasse? base1 = repasse.get_Base();
+ if (@base.GetValueOrDefault() == base1.GetValueOrDefault() & @base.HasValue == base1.HasValue)
+ {
+ long? seguradora = repasse1.get_Seguradora();
+ long? seguradora1 = repasse.get_Seguradora();
+ if (seguradora.GetValueOrDefault() == seguradora1.GetValueOrDefault() & seguradora.HasValue == seguradora1.HasValue)
+ {
+ if (repasse1.get_Ramo() == null)
+ {
+ Ramo ramo = repasse.get_Ramo();
+ id = (ramo != null ? ramo.get_Id() != (long)0 : true);
+ if (!id)
+ {
+ return false;
+ }
+ }
+ Ramo ramo1 = repasse1.get_Ramo();
+ if (ramo1 != null)
+ {
+ nullable1 = new long?(ramo1.get_Id());
+ }
+ else
+ {
+ nullable = null;
+ nullable1 = nullable;
+ }
+ seguradora1 = nullable1;
+ Ramo ramo2 = repasse.get_Ramo();
+ if (ramo2 != null)
+ {
+ nullable2 = new long?(ramo2.get_Id());
+ }
+ else
+ {
+ nullable = null;
+ nullable2 = nullable;
+ }
+ seguradora = nullable2;
+ return !(seguradora1.GetValueOrDefault() == seguradora.GetValueOrDefault() & seguradora1.HasValue == seguradora.HasValue);
+ }
+ }
+ }
+ }
+ }
+ return true;
+ }))
+ {
+ continue;
+ }
+ if (await this._servico.BuscarVendedorParcela(repasse1.get_Id()).Count > 1)
+ {
+ keyValuePairs.Add(new KeyValuePair<string, string>("REPASSE", string.Format("O REPASSE, DE ID {0}, NÃO PODE SER ALTERADO POIS JÁ ESTÁ CADASTRADO EM ALGUM DOCUMENTO!", repasse1.get_Id())));
+ }
+ }
+ }
+ List<KeyValuePair<string, string>> keyValuePairs1 = keyValuePairs;
+ keyValuePairs = null;
+ return keyValuePairs1;
+ }
+
+ private async void WorkOnSelectedVendedor(Vendedor value, bool registrar = true)
+ {
+ Vendedor vendedor;
+ long? nullable;
+ bool corretora;
+ bool flag;
+ object nome;
+ object obj;
+ VendedorViewModel vendedorViewModel = this;
+ vendedor = (value == null || value.get_Id() == 0 ? this.CancelVendedor : (Vendedor)value.Clone());
+ vendedorViewModel.CancelVendedor = vendedor;
+ if (value != null && value.get_Id() != 0)
+ {
+ base.Loading(true);
+ this.Repasses = new ObservableCollection<Repasse>((IEnumerable<!0>)await this._servico.BuscaRepassesPorIdVendedor(value.get_Id()));
+ this.Telefones = new ObservableCollection<VendedorTelefone>((IEnumerable<!0>)await this._servico.BuscarTelefonesAsync(value.get_Id()));
+ base.Loading(false);
+ if (this.LastAccessId != value.get_Id() || this.LastAccessTela != 15)
+ {
+ if (registrar)
+ {
+ VendedorViewModel vendedorViewModel1 = this;
+ string str = string.Concat("ACESSOU VENDEDOR \"", value.get_Nome(), "\"");
+ long id = value.get_Id();
+ TipoTela? nullable1 = new TipoTela?(15);
+ object[] agencia = new object[] { value.get_Id(), Recursos.Empresas.First<Empresa>((Empresa x) => x.get_Id() == (value.get_IdEmpresa() == 0 ? (long)1 : value.get_IdEmpresa())).get_Nome(), value.get_Documento(), null, null, null, null, null };
+ Banco banco = value.get_Banco();
+ if (banco != null)
+ {
+ nome = banco.get_Nome();
+ }
+ else
+ {
+ nome = null;
+ }
+ agencia[3] = nome;
+ agencia[4] = value.get_Agencia();
+ agencia[5] = value.get_Conta();
+ agencia[6] = value.get_Desconto();
+ obj = (value.get_Ativo() ? "SIM" : "NÃO");
+ agencia[7] = obj;
+ vendedorViewModel1.RegistrarAcao(str, id, nullable1, string.Format("ID: {0}\nFILIAL DO VENDEDOR: {1}\nDOCUMENTO: {2}\nBANCO: {3}\nAGÊNCIA: {4}\nCONTA: {5}\nDESCONTO: {6:N2}\nATIVO: {7}", agencia));
+ }
+ this.LastAccessId = value.get_Id();
+ this.LastAccessTela = 15;
+ Vendedor selectedVendedor = this.SelectedVendedor;
+ if (selectedVendedor != null)
+ {
+ nullable = new long?(selectedVendedor.get_Id());
+ }
+ else
+ {
+ nullable = null;
+ }
+ long? nullable2 = nullable;
+ long num = value.get_Id();
+ if (nullable2.GetValueOrDefault() != num | !nullable2.HasValue)
+ {
+ this.SelectedVendedor = this.VendedoresFiltrados.FirstOrDefault<Vendedor>((Vendedor x) => x.get_Id() == value.get_Id());
+ }
+ VendedorViewModel vendedorViewModel2 = this;
+ Vendedor selectedVendedor1 = this.SelectedVendedor;
+ if (selectedVendedor1 != null)
+ {
+ corretora = selectedVendedor1.get_Corretora();
+ }
+ else
+ {
+ corretora = false;
+ }
+ vendedorViewModel2.VisualizacaoPropriaCorretora = (corretora ? Visibility.Visible : Visibility.Collapsed);
+ if (Recursos.Usuario.get_Id() == 0)
+ {
+ Vendedor vendedor1 = this.SelectedVendedor;
+ if (vendedor1 != null)
+ {
+ flag = vendedor1.get_Corretora();
+ }
+ else
+ {
+ flag = false;
+ }
+ if (!flag)
+ {
+ this._alterarPermissEnabled = false;
+ base.EnableAlterar = false;
+ }
+ else
+ {
+ this._alterarPermissEnabled = true;
+ base.EnableAlterar = true;
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file |