Example #1
0
        public ActionResult Cliente(ClienteModelView model)
        {
            if (!User.Identity.IsAuthenticated)
            {
                return(RedirectToAction("Login", "Account", null));
            }

            if (ModelState.IsValid)
            {
                model.user   = User.Identity.Name;
                model.status = Convert.ToInt16(model.statusb);
                if (model.clienteid != 0) //update
                {
                    ServiceCliente.UpdateCliente(model);
                }
                else //insert
                {
                    ServiceCliente.InsertCliente(model);
                }
                return(Redirect(Domain.Util.config.UrlSite + "Client/Cliente"));
            }
            //busca o representante
            //se for admin, é zero e escolhe pelo combo, se  não ja atribui no model
            Int16 repreid = 0;

            ViewBag.repreid = repreid;

            model.ClientesTipos = ServiceClienteTipo.getClienteTipoCombo();
            model.UFs           = ServiceUF.getUFCombo();
            return(View(model));
        }
Example #2
0
        public static void UpdateCliente(ClienteModelView model)
        {
            Cliente objretorno = new Cliente();

            //faz o de para: objModelView para objEntity
            Mapper.CreateMap <ClienteModelView, Cliente>();
            var objtpprod = Mapper.Map <Cliente>(model);

            objtpprod.Dataalt = DateTime.Now;
            ClienteRepository tpprod = new ClienteRepository();

            tpprod.Edit(objtpprod);
            tpprod.Save();
        }
Example #3
0
        public ActionResult Cliente(Int16 id = 0)
        {
            var model = new ClienteModelView();

            if (id != 0)
            {
                //busca as informações para edição
                model = ServiceCliente.GetClienteId(id);
            }

            //busca o representante
            //se for admin, é zero e escolhe pelo combo, se  não ja atribui no model


            return(View(model));
        }
Example #4
0
        public ActionResult Index(int pagina, FiltroCliente filtro = null)
        {
            _repositorio = new Repositorio <Entidade>();
            var ClienteModel = new ClienteModelView();

            ClienteModel.Clientes              = Filtrar(filtro);
            ClienteModel.Paginacao             = new Paginacao();
            ClienteModel.Paginacao.PaginaAtual = pagina;
            ClienteModel.Clientes              = ClienteModel.Paginacao.Paginar <Entidade>(ClienteModel.Clientes, filtro != null);
            ClienteModel.Filtro = filtro;

            /*   if (filtro == null)
             *     ClienteModel.Filtro = new FiltroCliente() { Status = EntidadeSituacao.None, TipoCliente = TipoCliente.None };
             * else    */

            return(View(ClienteModel));
        }
        public JsonResult Alterar(ClienteModelView cliente)
        {
            if (!this.ModelState.IsValid)
            {
                List <string> erros = (from item in ModelState.Values
                                       from error in item.Errors
                                       select error.ErrorMessage).ToList();

                Response.StatusCode = 400;
                return(Json(string.Join(Environment.NewLine, erros)));
            }
            else
            {
                var config = new MapperConfiguration(cfg => cfg.CreateMap <ClienteModelView, ClienteDTO>());
                var mapper = new Mapper(config);
                _clienteService.Editar(mapper.Map <ClienteDTO>(cliente));
                return(Json("Cadastro efetuado com sucesso"));
            }
        }
        public virtual ExtratoModelView Extrato(string idCliente, string cardNumber, string cardPass, string codEstabelecimento)
        {
            var cliente = new ClienteModelView
            {
                Id     = idCliente,
                Cartao = new CartaoModelView
                {
                    Numero = cardNumber,
                    Senha  = cardPass
                }
            };

            var inicializacao = new InicializacaoModelView
            {
                CodCliente = cliente.Id,
                NSU        = ConfigurationManager.AppSettings["NSU"].ToString()
            };

            InicializacaoApiInfox(ref inicializacao);

            return(Extrato(ref inicializacao, cliente, codEstabelecimento));
        }
        public virtual CartaoModelView Saldo(string idCliente, string cardNumber, string cardPass)
        {
            var cliente = new ClienteModelView
            {
                Id     = idCliente,
                Cartao = new CartaoModelView
                {
                    Numero = cardNumber,
                    Senha  = cardPass
                }
            };

            var inicializacao = new InicializacaoModelView
            {
                CodCliente = cliente.Id,
                NSU        = ConfigurationManager.AppSettings["NSU"].ToString()
            };

            InicializacaoApiInfox(ref inicializacao);

            Saldo(ref inicializacao, ref cliente);

            return(cliente.Cartao);
        }
        private void Saldo(ref InicializacaoModelView inicializacao, ref ClienteModelView cliente)
        {
            try
            {
                var CodResp         = string.Empty;
                var NSU_Rede        = string.Empty;
                var StrResp         = string.Empty;
                var SaldoDisponivel = string.Empty;
                var LimiteCredito   = string.Empty;
                var DiaVencimento   = string.Empty;

                var workKeyData = Helpers.CryptoApiInfox.DecryptApi(inicializacao.WorkKey, MasterKey);
                var chaveAcessoChamadaConcatenada = Helpers.CryptoApiInfox.EncryptApi($"{cliente.Id}{NSURequest}{Helpers.CryptoApiInfox.DecryptApi(inicializacao.ChaveAcessoTx, workKeyData)}", workKeyData);

                var cartaoNumeroEncrypted = Helpers.CryptoApiInfox.EncryptApi(cliente.Cartao.Numero, workKeyData);
                var cartaoSenhaEncrypted  = Helpers.CryptoApiInfox.EncryptApi(cliente.Cartao.Senha, workKeyData);

                var dados = _service.ConsultaSaldo(chaveAcessoChamadaConcatenada,
                                                   null,
                                                   ConfigurationManager.AppSettings["TIPO_CAPTURA"].ToString(),
                                                   null,
                                                   cartaoNumeroEncrypted,
                                                   NSURequest,
                                                   null,
                                                   cartaoSenhaEncrypted,
                                                   ref CodResp,
                                                   ref NSU_Rede,
                                                   ref SaldoDisponivel,
                                                   ref StrResp);

                cliente.Cartao.Numero = $"{cliente.Cartao.Numero.Substring(0, 4)} XXXX XXXX {cliente.Cartao.Numero.Substring(cliente.Cartao.Numero.Length -4 , 4)}";
                cliente.Cartao.Senha  = null;

                if (dados > 0)
                {
                    cliente.Cartao.Return          = dados;
                    cliente.Cartao.CodResp         = dados.ToString();
                    cliente.Cartao.StrResp         = $"Retorno da Chamada de Saldo: {StrResp}";
                    cliente.Cartao.SaldoDisponivel = string.Empty;
                    cliente.Cartao.LimiteCredito   = string.Empty;
                    cliente.Cartao.DiaVencimento   = string.Empty;
                    return;
                }

                var frases = StrResp.Replace("@@", "@").Split('@').ToList();
                LimiteCredito = frases?.FirstOrDefault(x => x.Contains("LIMITE"))?.Split(':')?.Last()?.Trim() ?? string.Empty;
                DiaVencimento = frases?.FirstOrDefault(x => x.Contains("VENCIMENTO"))?.Split(':')?.Last()?.Trim() ?? string.Empty;

                cliente.Cartao.Return          = dados;
                cliente.Cartao.CodResp         = CodResp;
                cliente.Cartao.NSU_Rede        = NSU_Rede;
                cliente.Cartao.StrResp         = StrResp;
                cliente.Cartao.SaldoDisponivel = SaldoDisponivel.Length <= 1 ? SaldoDisponivel : $"{SaldoDisponivel.Substring(0, SaldoDisponivel.Length - 2).Replace(",", "")},{SaldoDisponivel.Substring(SaldoDisponivel.Length - 2)}";
                cliente.Cartao.LimiteCredito   = LimiteCredito;
                cliente.Cartao.DiaVencimento   = DiaVencimento;
            }
            catch (BusinessRuleException br)
            {
                throw br;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private ExtratoModelView Extrato(ref InicializacaoModelView inicializacao, ClienteModelView cliente, string codEstabelecimento)
        {
            try
            {
                var CodResp         = string.Empty;
                var NSU_Rede        = string.Empty;
                var StrResp         = string.Empty;
                var SaldoDisponivel = string.Empty;
                var LimiteCredito   = string.Empty;
                var DiaVencimento   = string.Empty;
                var DataHoraExtrato = string.Empty;

                var workKeyData = Helpers.CryptoApiInfox.DecryptApi(inicializacao.WorkKey, MasterKey);
                var chaveAcessoChamadaConcatenada = Helpers.CryptoApiInfox.EncryptApi($"{cliente.Id}{NSURequest}{Helpers.CryptoApiInfox.DecryptApi(inicializacao.ChaveAcessoTx, workKeyData)}", workKeyData);

                var cartaoNumeroEncrypted = Helpers.CryptoApiInfox.EncryptApi(cliente.Cartao.Numero, workKeyData);
                var cartaoSenhaEncrypted  = Helpers.CryptoApiInfox.EncryptApi(cliente.Cartao.Senha, workKeyData);

                var dados = _service.ConsultaExtrato(chaveAcessoChamadaConcatenada,
                                                     codEstabelecimento,
                                                     ConfigurationManager.AppSettings["TIPO_CAPTURA"].ToString(),
                                                     null,
                                                     cartaoNumeroEncrypted,
                                                     NSURequest,
                                                     null,
                                                     cartaoSenhaEncrypted,
                                                     ref CodResp,
                                                     ref NSU_Rede,
                                                     ref SaldoDisponivel,
                                                     ref StrResp);

                cliente.Cartao.Numero = $"{cliente.Cartao.Numero.Substring(0, 4)} XXXX XXXX {cliente.Cartao.Numero.Substring(cliente.Cartao.Numero.Length - 4, 4)}";
                cliente.Cartao.Senha  = null;

                if (dados > 0)
                {
                    return new ExtratoModelView
                           {
                               Return  = dados,
                               CodResp = dados.ToString(),
                               StrResp = $"Retorno da Chamada de Extrato: {StrResp}",
                               Cartao  = cliente.Cartao
                           }
                }
                ;

                var frases = StrResp.Replace("@@", "@").Split('@').ToList();
                LimiteCredito   = frases?.FirstOrDefault(x => x.Contains("LIMITE"))?.Split(':')?.Last()?.Trim() ?? string.Empty;
                DiaVencimento   = frases?.FirstOrDefault(x => x.Contains("VENCIMENTO"))?.Split(':')?.Last()?.Trim() ?? string.Empty;
                SaldoDisponivel = frases?.FirstOrDefault(x => x.Contains("SALDO DISPONIVEL"))?.Split(':')?.Last()?.Trim() ?? string.Empty;

                var resultado       = TipoCartaoEnum.Cartao;
                var listaTipoCartao = Enum.GetValues(typeof(TipoCartaoEnum)).Cast <TipoCartaoEnum>().Select(e => new KeyValuePair <TipoCartaoEnum, string>(e, e.ToDescription())).ToList();
                if (frases?.Count > 2)
                {
                    resultado = listaTipoCartao?.FirstOrDefault(x => x.Key.ToString() == frases[1].Trim().ToUpper() || x.Value.ToUpper() == frases[1].Trim().ToUpper()).Key ?? TipoCartaoEnum.Cartao;
                }
                cliente.Cartao.TipoCartao = new Entidade.TipoCartao
                {
                    Id           = (int)resultado,
                    DataInsercao = DateTime.Now,
                    Descricao    = resultado.ToDescription()
                };
                cliente.Cartao.SaldoDisponivel = SaldoDisponivel.Length <= 1 ? SaldoDisponivel : $"{SaldoDisponivel.Substring(0, SaldoDisponivel.Length - 2).Replace(",", "")},{SaldoDisponivel.Substring(SaldoDisponivel.Length - 2)}";
                DataHoraExtrato = frases?.FirstOrDefault(x => x.Contains("DATA/HORA")) != null && frases?.FirstOrDefault(x => x.Contains("DATA/HORA")).Length > 10 ? frases?.FirstOrDefault(x => x.Contains("DATA/HORA"))?.Substring(10)?.Trim()?.Replace("/", "-") ?? string.Empty : string.Empty;

                var extrato = new ExtratoModelView
                {
                    Return          = dados,
                    CodResp         = CodResp,
                    NSU_Rede        = NSU_Rede,
                    StrResp         = StrResp,
                    Cabecalho       = frases?.FirstOrDefault()?.Trim(),
                    DataHoraExtrato = DataHoraExtrato != null?Convert.ToDateTime(DataHoraExtrato) : DateTime.Now,
                                          SaldoDisponivel = SaldoDisponivel.Length <= 1 ? SaldoDisponivel : $"{SaldoDisponivel.Substring(0, SaldoDisponivel.Length - 2).Replace(",", "")},{SaldoDisponivel.Substring(SaldoDisponivel.Length - 2)}",
                                          LimiteCredito   = LimiteCredito,
                                          DiaVencimento   = DiaVencimento,
                                          Cartao          = cliente.Cartao,
                                          Itens           = new List <ExtratoItemModelView>()
                };

                var mesAno = new List <string>();
                foreach (var linha in frases)
                {
                    if (linha.Contains("MES/ANO"))
                    {
                        var splitMesAno = linha.Substring(linha.LastIndexOf(':') + 1).Split('/');
                        mesAno.Add($"DAY-{splitMesAno.First().Trim()}-20{splitMesAno.Last().Trim()}");
                        continue;
                    }

                    var dia = 1;
                    if (linha.Length > 2 && int.TryParse(linha.Substring(0, 3), out dia))
                    {
                        extrato.Itens.Add(new ExtratoItemModelView
                        {
                            Data      = DateTime.Parse($"{mesAno.Last().Replace("DAY", dia.ToString())}"),
                            Descricao = linha.Substring(linha.IndexOf(' '), linha.LastIndexOf(' ') - 1).Trim(),
                            Valor     = Convert.ToDecimal(linha.Substring(linha.LastIndexOf(' ') + 1).Trim())
                        });
                    }
                }
                extrato.TotalValorItens = extrato.Itens?.Sum(x => x.Valor).ToString("N2") ?? "0,00";

                return(extrato);
            }
            catch (BusinessRuleException br)
            {
                throw br;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }