示例#1
0
        public override void Gravar()
        {
            #region DAV

            #region Vendedor
            IVendedor vendedor = new Vendedor().Find<IVendedor>(new Where { Limit = new Limit(1) })[0];
            #endregion

            #region DadoPessoa
            IDadoPessoa dadoPessoa = new DadoPessoa();

            ICanalComunicacao canal = new CanalComunicacao();
            canal.NomeContato = "Cliente";
            canal.IdentificadorCanal = "3423-5051";
            canal.TipoCanal = Enuns.Cadastro.Pessoa.TipoCanal.Telefone;
            canal.Principal = true;

            Cliente cliente = new Cliente()
            {
                FisicaJuridica = Enuns.Cadastro.Pessoa.FisicaJuridica.Fisica,
                Fisica = new Fisica().Find<IFisica>(new Where { Limit = new Limit(1) })[0],
                NomeFantasia = "Luciano",
                RazaoSocial = "Luciano Leandro",
                TipoPessoa = Enuns.Cadastro.Pessoa.TipoPessoa.Cliente,
                Enderecos = new List<IEndereco> { new Endereco().Find<IEndereco>(new Where { Limit = new Limit(1) })[0] },
                CanaisComunicacao = new List<ICanalComunicacao> { canal },
                ValorLimiteCredto = 3000,
                PercentualRisco = 10,
                Situacao = Situacao.AAutorizar
            };
            cliente.Save();
            dadoPessoa.Cliente = cliente;

            #endregion

            dav.DadoPessoa = dadoPessoa;
            dav.TabelaPreco = new OpenPOS.Data.Cadastro.TabelaPreco.TabelaPreco().Find<Model.Cadastro.TabelaPreco.ITabelaPreco>(new Where { Limit = new Limit(1) })[0];
            dav.Descricao = "Orcamento de venda";

            #region Itens do DAV
            dav.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.DAV.Item
                {
                    Quantidade = 10,
                    ValorUnitarioBruto = 12.5,
                    DescricaoNF = "Produto de teste um",
                    Vendedor = vendedor,
                    TabelaPreco = dav.TabelaPreco,
                    ItemMovimentado = new OpenPOS.Data.Cadastro.Item.Produto.Acabado().Find<Model.Cadastro.Item.Produto.IAcabado>(new Where { Limit = new Limit(1) })[0]
                });

            dav.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.DAV.Item
            {
                Quantidade = 25,
                ValorUnitarioBruto = 15,
                DescricaoNF = "Produto de teste dois",
                Vendedor = vendedor,
                TabelaPreco = dav.TabelaPreco,
                ItemMovimentado = new OpenPOS.Data.Cadastro.Item.Produto.Acabado().Find<Model.Cadastro.Item.Produto.IAcabado>(new Where { Limit = new Limit(1) })[0]
            });

            dav.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.DAV.Item
            {
                Quantidade = 33,
                ValorUnitarioBruto = 17.5,
                DescricaoNF = "Produto de teste três",
                Vendedor = vendedor,
                TabelaPreco = dav.TabelaPreco,
                ItemMovimentado = new OpenPOS.Data.Cadastro.Item.Produto.Acabado().Find<Model.Cadastro.Item.Produto.IAcabado>(new Where { Limit = new Limit(1) })[0]
            });

            #endregion
            dav.Save();
            #endregion
        }
示例#2
0
        public void AnalisarCreditoCliente()
        {
            #region DAV

            #region Vendedor
            IVendedor vendedor = new Vendedor().Find<IVendedor>(new Where { Limit = new Limit(1) })[0];
            #endregion

            #region DadoPessoa
            ICliente cliente = new Cliente().Find<ICliente>(new Where { Limit = 1 })[0];
               // cliente.ValorLimiteCredto = 1000;
               // cliente.PercentualRisco = 10;
            cliente.Save();
            IDadoPessoa dadoPessoa = new DadoPessoa()
            {
                Cliente = cliente
            };
            #endregion

            dav.DadoPessoa = dadoPessoa;
            dav.TabelaPreco = new OpenPOS.Data.Cadastro.TabelaPreco.TabelaPreco().Find<Model.Cadastro.TabelaPreco.ITabelaPreco>(new Where { Limit = new Limit(1) })[0];
            dav.Descricao = "Orcamento de venda";

            ITabelaPreco tabela = OpenPOS.Settings.TabelaPrecoPadrao;
            #region Itens do DAV
            dav.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.DAV.Item
            {
                Quantidade = 25,
                ValorUnitarioBruto = 15,
                DescricaoNF = "Produto de teste um",
                ItemMovimentado = tabela.Itens[0].Item,
                Conferido = true,
                TabelaPreco = tabela,
                InformacaoAdicional = "Informações adicionais dos produtos, mercadorias e serviços"
            });

            GUID guidAnalista = (GUID)OpenPOS.Settings.Setting.AnalistaCredito;

            dav.AnaliseCredito = new AnaliseCredito()
            {
                Analista = new Usuario().Find<IUsuario>(new Where
                {
                    { "cad_PessoaUsuarioTipo.GUIDTipoUsuario", guidAnalista }
                })[0],
                DataHoraAnalise = System.DateTime.Now
            };

            #endregion

            GUID = dav.Save();
            #endregion

            #region Análise
            //-------------------------------------------------------------------------
            // Fazer a análise deste cliente
            // Iremos simular todas as situações
            //-------------------------------------------------------------------------

            //-------------------------------------------------------------------------
            // Cliente aprovado
            //-------------------------------------------------------------------------
            cliente.ValorLimiteCredto = dav.ValorTotalLiquido + 1000;
            AnaliseCreditoResult resultAnalise = AnalisarCredito.Analisar(dav);
            Assert.AreEqual(resultAnalise.Status, StatusAnaliseResult.Aprovado);

            //-------------------------------------------------------------------------
            // Aprovado Somente A Vista
            //-------------------------------------------------------------------------
            cliente.ValorLimiteCredto = dav.ValorTotalLiquido + 1000;
            cliente.Situacao = Situacao.SemCredito;
            resultAnalise = AnalisarCredito.Analisar(dav);
            Assert.AreEqual(resultAnalise.Status, StatusAnaliseResult.AprovadoSomenteAVista);

            //-------------------------------------------------------------------------
            // Aprovado Com Risco
            //-------------------------------------------------------------------------
            cliente.ValorLimiteCredto = dav.ValorTotalLiquido - 15.5;
            cliente.PercentualRisco = 10;
            resultAnalise = AnalisarCredito.Analisar(dav);
            Assert.AreEqual(resultAnalise.Status, StatusAnaliseResult.AprovadoComRisco);

            //-------------------------------------------------------------------------
            // Aguardar Analise
            //-------------------------------------------------------------------------
            cliente.ValorLimiteCredto = dav.ValorTotalLiquido + 1000;
            cliente.Situacao = Situacao.AAutorizar;
            resultAnalise = AnalisarCredito.Analisar(dav);
            Assert.AreEqual(resultAnalise.Status, StatusAnaliseResult.AguardarAnalise);

            //-------------------------------------------------------------------------
            // Aguardar analise 2
            //-------------------------------------------------------------------------
            cliente.ValorDocumentoAberto = 10000;
            cliente.ValorLimiteCredto = 1000;
            resultAnalise = AnalisarCredito.Analisar(dav);
            Assert.AreEqual(resultAnalise.Status, StatusAnaliseResult.AguardarAnalise);

            //-------------------------------------------------------------------------
            // Bloqueado
            //-------------------------------------------------------------------------
            cliente.ValorLimiteCredto = dav.ValorTotalLiquido + 1000;
            cliente.Situacao = Situacao.Bloqueado;
            resultAnalise = AnalisarCredito.Analisar(dav);
            Assert.AreEqual(resultAnalise.Status, StatusAnaliseResult.Bloqueado);

            //-------------------------------------------------------------------------
            // Cliente Nao Identificado
            //-------------------------------------------------------------------------
            cliente.ValorLimiteCredto = dav.ValorTotalLiquido + 1000;
            dav.DadoPessoa.Cliente = null;
            resultAnalise = AnalisarCredito.Analisar(dav);
            Assert.AreEqual(resultAnalise.Status, StatusAnaliseResult.ClienteNaoIdentificado);
            #endregion
        }
示例#3
0
 /// <summary>
 /// Instancia este objeto e apenas inicia as variáveis, não carrega nenhum dado da base de dados
 /// </summary>
 public MovimentoBase()
     : base()
 {
     DataEmissao = DateTime.Now;
     DataHoraCadastro = DateTime.Now;
     DataHoraMovimento = DateTime.Now;
     Itens = new List<IItem>();
     Emitente = IndicadorProducao.Proprio;
     Situacao = SituacaoNotaFiscal.Normal;
     DadoPessoa = new DadoPessoa();
     Impressora = new Impressora();
     Registro04 = new Registro04();
     AnaliseCredito = new AnaliseCredito();
     Parcelas = new List<IParcela>();
     ItensEspeciais = new List<IEspecial>();
     CondicaoPagamento = new CondicaoPagamento();
     MovimentosVinculados = new List<IMovimento>();
     MovimentosMesclados = new List<IMovimento>();
     Ocorrencias = new List<Model.Faturamento.Lancamento.Movimento.Ocorrencia.IOcorrencia>();
     Baixa = new Data.Faturamento.Lancamento.Movimento.Baixa.Baixa();
     Serie = new Data.Faturamento.Cadastro.Serie();
 }