Esempio n. 1
0
        public async Task <List <FipeMake> > GetMakes(FipeType type)
        {
            try
            {
                List <FipeMake> makes    = new List <FipeMake>();
                string          url      = /*await*/ UrlBuilder(_getMakesUrl, new string[] { _refTable, ((int)type).ToString() });
                string          jsonList = await WebFile.HttpRequestAsync(url);

                if (String.IsNullOrEmpty(jsonList))
                {
                    throw new WebException(JsonConvert.SerializeObject(new Relatório(2, "", "Sem acesso à internet")));
                }
                else
                {
                    if (jsonList.StartsWith("["))//tests if string is a json list (starts with '[')... "{\"codigo\":\"3\",\"erro\":\"Código fipe inválido\"}" , "{\"codigo\":\"0\",\"erro\":\"Nada encontrado\"}")
                    {
                        makes = JsonConvert.DeserializeObject <List <FipeMake> >(jsonList);
                    }
                    else
                    {
                        throw new WebException(jsonList);
                    }
                }
                return(makes);
            }
            catch (Exception ex)
            {
                Relatório.ExHandler(ex);
                return(new List <FipeMake>());
            }
        }
Esempio n. 2
0
        public Cotacao(FipeType tiposeg, string cliente, DateTime data, string seguradora, string modelo, string anoFabricacao, string anoModelo,
                       string marca, string valorFipe, string porContratada, string danosMateriais, string danosCorporais, string danosMorais,
                       string appMorte, string appInvalidez, string franquiaBasica, string valFranqBasicaAVista, string franquiaReduzida,
                       string valFranqReduzidaAVista, string observacoes, bool nomeFuncionario, string funcionario,
                       bool debitobb, bool rcf, string equipamento, string carroceria, bool vd, bool mostrarvalidade, DateTime validade, Fill preenchimento)
        {
            try
            {
                var segerrada = new FormatException();
                Tipo    = tiposeg;
                Cliente = cliente;
                Data    = data;
                if (seguradora != "")
                {
                    Seguradora = seguradora;
                }
                else
                {
                    throw segerrada;
                }
                Modelo        = modelo;
                AnoFabricacao = Convert.ToInt32(anoFabricacao);
                AnoModelo     = anoModelo;
                Marca         = marca;
                ValorFipe     = Decimal.Parse(valorFipe, NumberStyles.Currency, CultureInfo.CurrentCulture);
                if (porContratada != "")
                {
                    PorContratada = Decimal.Parse(porContratada);
                }
                else
                {
                    PorContratada = 0.0m;
                }
                Rcf                    = rcf;
                DanosMateriais         = Decimal.Parse(danosMateriais, NumberStyles.Currency, CultureInfo.CurrentCulture);
                DanosCorporais         = Decimal.Parse(danosCorporais, NumberStyles.Currency, CultureInfo.CurrentCulture);
                DanosMorais            = Decimal.Parse(danosMorais, NumberStyles.Currency, CultureInfo.CurrentCulture);
                APPMorte               = Decimal.Parse(appMorte, NumberStyles.Currency, CultureInfo.CurrentCulture);
                APPInvalidez           = Decimal.Parse(appInvalidez, NumberStyles.Currency, CultureInfo.CurrentCulture);
                FranquiaBasica         = Decimal.Parse(franquiaBasica, NumberStyles.Currency, CultureInfo.CurrentCulture);
                ValFranqBasicaAVista   = Decimal.Parse(valFranqBasicaAVista, NumberStyles.Currency, CultureInfo.CurrentCulture);
                FranquiaReduzida       = Decimal.Parse(franquiaReduzida, NumberStyles.Currency, CultureInfo.CurrentCulture);
                ValFranqReduzidaAVista = Decimal.Parse(valFranqReduzidaAVista, NumberStyles.Currency, CultureInfo.CurrentCulture);
                if (FranquiaBasica + ValFranqBasicaAVista + FranquiaReduzida + ValFranqReduzidaAVista == 0.0m)
                {
                    throw segerrada;
                }

                NomeFuncionario = nomeFuncionario;
                Funcionario     = funcionario;
                Observacoes     = observacoes;

                DebitoBB      = debitobb;
                ErroDeFormato = false;

                if (nomeFuncionario == true)
                {
                    Home.preferencias.NomeFuncionario = funcionario;
                    WebFile.Prefs = Home.preferencias;
                }

                Equipamento     = Decimal.Parse(equipamento, NumberStyles.Currency, CultureInfo.CurrentCulture);
                Carroceria      = Decimal.Parse(carroceria, NumberStyles.Currency, CultureInfo.CurrentCulture);
                Vd              = vd;
                MostrarValidade = mostrarvalidade;
                Validade        = validade;
                Preenchimento   = preenchimento;
            }
            catch (FormatException)
            {
                Relatório.AdicionarAoRelatorio("Campos preenchidos incorretamente");
                MessageBox.Show("Algum campo foi preenchido incorretamente.\r\nCorrija-o e tente novamente.",
                                "Carta de Cotação",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
                ErroDeFormato = true;
            }

            TabelaParcelamento = new List <Parcelamento>();
            int max = maxParcelas;

            if (Seguradora == "Allianz")
            {
                max = 6; //Ajusta o número máximo de parcelas conforme a seguradora;
            }
            for (int i = 0; i < max; i++)
            {
                foreach (string tipo in tiposFranq)
                {
                    foreach (string forma in formasPagto)
                    {
                        try
                        {
                            object o = WebFile.Extras.CreateInstance("CartaDeCotacao.Parcelamento");
                            o.GetType().GetConstructors()[1].Invoke(o, new object[] { Seguradora, forma, tipo, ValFranqBasicaAVista, ValFranqReduzidaAVista });
                            o.GetType().GetMethod("CalculaParcela").Invoke(o, new object[] { 1 + i });

                            Parcelamento parc = new Parcelamento()
                            {
                                Seguradora  = (string)o.GetType().GetProperty("Seguradora").GetValue(o, null),
                                FormaPagto  = (string)o.GetType().GetProperty("FormaPagto").GetValue(o, null),
                                TipoFranq   = (string)o.GetType().GetProperty("TipoFranq").GetValue(o, null),
                                Basica      = (decimal)o.GetType().GetProperty("Basica").GetValue(o, null),
                                Reduzida    = (decimal)o.GetType().GetProperty("Reduzida").GetValue(o, null),
                                NumParcelas = (int)o.GetType().GetProperty("NumParcelas").GetValue(o, null),
                                Descricao   = (string)o.GetType().GetProperty("Descricao").GetValue(o, null),
                                ValParcela  = (decimal)o.GetType().GetProperty("ValParcela").GetValue(o, null)
                            };

                            TabelaParcelamento.Add(parc);
                        }
                        catch (Exception ex)
                        {
                            Relatório.ExHandler(ex, "Uso do parcelamento");
                        }
                    }
                }

                if (i == 0) //Começa no zero (Á vista)
                {
                    i++;
                }

                if (i == 1)
                {
                    i++;
                }

                if (Seguradora == "Allianz" && i == 3)
                {
                    i++;
                }
            }
        }