Ejemplo n.º 1
0
 public override void Gravar()
 {
     CFOP t = new CFOP();
     t.Descricao = "Teste de CFOP";
     t.CFOP = "5101";
     t.Abreviatura = "CFOP";
     GUID = t.Save();
 }
Ejemplo n.º 2
0
        public override void Gravar()
        {
            PreVenda pv = new PreVenda();

            #region Vendedor
            Continente t = new Continente();
            t.Nome = "Europa";
            GUID guidContinente = t.Save();
            Pais p = new Pais();
            p.Nome = "Brasil";
            p.Abreviatura = "BR";
            p.CodBACEN = "1234";
            p.Continente = t;
            GUID guidPais = p.Save();
            Estado e = new Estado();
            e.Nome = "Europa";
            e.CodigoIBGE = "41256";
            e.UF = "PR";
            e.Pais = p;
            GUID guidEstado = e.Save();
            Municipio m = new Municipio();
            m.Abreviatura = "PVI";
            m.CodigoIBGE = "123546";
            m.Estado = e;
            m.Nome = "Paranavaí";
            GUID guidMunicipio = m.Save();
            Cidade c = new Cidade();
            c.Abreviatura = "GR";
            c.Municipio = m;
            c.Nome = "Graciosa";
            GUID = c.Save();

            Logradouro l = new Logradouro();
            l.Descricao = "Avenida";
            l.Abreviatura = "Av";
            GUID guidLogradouro = l.Save();

            Bairro b = new Bairro();
            b.Cidade = c;
            b.Descricao = "Centro";
            GUID guidBairro = b.Save();

            OpenPOS.Data.Cadastro.Endereco.Endereco end = new OpenPOS.Data.Cadastro.Endereco.Endereco();
            end.Logradouro = l;
            end.CEP = "87704020";
            end.Endereco = "Joaquim da Silva";
            end.Bairro = b;
            string guidEndereco = end.Save();

            OpenPOS.Data.Cadastro.Pessoa.Fisica.Fisica fisica = new OpenPOS.Data.Cadastro.Pessoa.Fisica.Fisica();
            fisica.CPF = "05210438910";
            fisica.DataNascimento = new DateTime(1985, 07, 27);
            fisica.EstadoCivil = Enuns.Cadastro.Pessoa.EstadoCivil.Casado;
            fisica.MaeNome = "Teste";
            fisica.PaiNome = "Teste";
            fisica.RG = "90702343";
            fisica.RGEmissao = new DateTime(1995, 12, 12);
            Estado estado = new Estado(guidEstado);
            fisica.RGEstado = estado;
            fisica.RGOrgao = "SSPPR";
            fisica.RGTipoVisto = "";
            fisica.Sexo = Enuns.Cadastro.Pessoa.Sexo.Masculino;

            OpenPOS.Data.Cadastro.Pessoa.Juridica.Juridica juridica = new OpenPOS.Data.Cadastro.Pessoa.Juridica.Juridica();
            juridica.CNPJ = "75480764000120";
            juridica.DataAbertura = new DateTime(1999, 10, 10);
            juridica.IM = "1205";
            juridica.ISuf = "";
            juridica.RamoAtividade = new RamoAtividade().Find<IRamoAtividade>()[0];

            OpenPOS.Data.Cadastro.Pessoa.Endereco endereco = new OpenPOS.Data.Cadastro.Pessoa.Endereco();
            endereco.CaixaPostal = "123";
            endereco.Cobranca = true;
            endereco.Complemento = "teste";
            endereco.Correspondencia = true;
            endereco.Endereco = end;
            endereco.Entrega = true;
            endereco.Faturamento = true;
            endereco.Numero = "1234";
            endereco.Principal = true;
            endereco.Proximidade = "Estadio";
            endereco.Retirada = true;
            endereco.TipoEndereco = Enuns.Cadastro.Endereco.TipoEndereco.Principal;

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

            #region DadoPessoa

            Model.Faturamento.Lancamento.Movimento.IDadoPessoa dadoPessoa =
                new Data.Faturamento.Lancamento.Movimento.DadoPessoa.DadoPessoa();

            ICliente cliente = CriarCliente();
            dadoPessoa.Cliente = cliente;
            #endregion

            pv.TabelaPreco = new Data.Cadastro.TabelaPreco.TabelaPreco().Find<Model.Cadastro.TabelaPreco.ITabelaPreco>(new Where { Limit = new Limit(1) })[0];
            pv.DadoPessoa = dadoPessoa;
            pv.COO = 123457;

            #region Frete
            Frete frete = new Frete();
            frete.Descricao = "Frete";
            frete.Save();
            #endregion

            #region Desconto
            Desconto desconto = new Desconto();
            desconto.Descricao = "Desconto";
            desconto.Save();
            #endregion

            #region Encargos
            EncargoFinanceiro encargoFinanceiro = new EncargoFinanceiro();
            encargoFinanceiro.Descricao = "Encargo Financeiro";
            encargoFinanceiro.Save();
            #endregion

            #region CFOP
            ICFOP cfop = new CFOP().Find<ICFOP>(new Where { Limit = new Limit(1, 1) })[0];
            #endregion

            #region items
            ProdutoAcabadoTest acabadoTest = new ProdutoAcabadoTest();

            for(int i = 0; i < 7; i++)
            {
                acabadoTest.Gravar();
                pv.Itens.Add(new Item
                {
                    Vendedor = vendedor,
                    Quantidade = new Random().NextDouble(7, 21),
                    ValorUnitarioBruto = new Random().NextDouble(7, 42),
                    DescricaoNF = "Produto de teste um",
                    Status = 0,
                    ItemMovimentado = new Acabado(acabadoTest.GUID),
                    CFOP = cfop,
                    ItensEspeciais = new List<IEspecial> {
                    new Especial{
                        Ordem = 0,
                        ItemEspecial  = frete,
                        Valor = new Random().NextDouble(21, 77)
                    },
                    new Especial{
                        Ordem = 1,
                        ItemEspecial = desconto,
                        Valor = new Random().NextDouble(21, 77)
                    },
                    new Especial{
                        Ordem = 2,
                        ItemEspecial = encargoFinanceiro,
                        Valor = new Random().NextDouble(21, 77)
                    },
                }
                });
            }
            #endregion

            #region Parcelas
            //-------------------------------------------------------------------------
            // Conta Corrente
            //-------------------------------------------------------------------------
            IContaCorrente contaCorrente = new ContaCorrente();
            contaCorrente.Descricao = new Random().NextString();
            contaCorrente.Save();

            //-------------------------------------------------------------------------
            // Criar uma condição de pagamento
            //-------------------------------------------------------------------------
            ICondicaoPagamento condicaoPagamento = new CondicaoPagamento();
            condicaoPagamento.Descricao = "30/60";
            condicaoPagamento.PrazoMedio = 1;
            condicaoPagamento.FormaCalculoVencimento = Enuns.Cadastro.Financeiro.FormaCalculoVencimento.Mensal;
            condicaoPagamento.VencimentoFeriado = Enuns.Cadastro.Financeiro.VencimentoFeriado.Manter;
            condicaoPagamento.MesmoDiaMes = false;

            #region Período de vencimento
            IPeriodo periodo = new OpenPOS.Data.Cadastro.Periodo.Periodo();
            periodo.Tipo = TipoVencimento.ManualMes;
            periodo.Descricao = "Período mensal";
            periodo.Save();
            #endregion

            IParcela parcelaUm = new Parcela();
            parcelaUm.APartirDataEmissao = 30;
            parcelaUm.APartirDataVencimentoAnterior = 30;
            parcelaUm.Percentual = 35;
            parcelaUm.PeriodoVencimento = periodo;
            parcelaUm.PeriodoVencimento = periodo;
            condicaoPagamento.Parcelas.Add(parcelaUm);

            IParcela parcelaDois = new Parcela();
            parcelaDois.APartirDataEmissao = 30;
            parcelaDois.APartirDataVencimentoAnterior = 60;
            parcelaDois.Percentual = 65;
            parcelaDois.PeriodoVencimento = periodo;
            parcelaDois.PeriodoVencimento = periodo;
            condicaoPagamento.Parcelas.Add(parcelaDois);
            condicaoPagamento.Save();

            pv.CondicaoPagamento = condicaoPagamento;

            #endregion

            GUID = pv.Save();
        }
Ejemplo n.º 3
0
        public override void Gravar()
        {
            PreVenda pv = new PreVenda();

            #region Vendedor
            Model.Cadastro.Endereco.IEndereco end = new Data.Cadastro.Endereco.Endereco().Find<Model.Cadastro.Endereco.IEndereco>(new Where { Limit = 1 })[0];

            OpenPOS.Data.Cadastro.Pessoa.Fisica.Fisica fisica = new OpenPOS.Data.Cadastro.Pessoa.Fisica.Fisica();
            fisica.CPF = "05210438910";
            fisica.DataNascimento = new DateTime(1985, 07, 27);
            fisica.EstadoCivil = Enuns.Cadastro.Pessoa.EstadoCivil.Casado;
            fisica.MaeNome = "Teste";
            fisica.PaiNome = "Teste";
            fisica.RG = "90702343";
            fisica.RGEmissao = new DateTime(1995, 12, 12);
            fisica.RGEstado = end.Estado;
            fisica.RGOrgao = "SSPPR";
            fisica.RGTipoVisto = "";
            fisica.Sexo = Enuns.Cadastro.Pessoa.Sexo.Masculino;

            OpenPOS.Data.Cadastro.Pessoa.Juridica.Juridica juridica = new OpenPOS.Data.Cadastro.Pessoa.Juridica.Juridica();
            juridica.CNPJ = "75480764000120";
            juridica.DataAbertura = new DateTime(1999, 10, 10);
            juridica.IM = "1205";
            juridica.ISuf = "";
            juridica.RamoAtividade = new RamoAtividade().Find<IRamoAtividade>()[0];

            OpenPOS.Data.Cadastro.Pessoa.Endereco endereco = new OpenPOS.Data.Cadastro.Pessoa.Endereco();
            endereco.CaixaPostal = "123";
            endereco.Cobranca = true;
            endereco.Complemento = "teste";
            endereco.Correspondencia = true;
            endereco.Endereco = end;
            endereco.Entrega = true;
            endereco.Faturamento = true;
            endereco.Numero = "1234";
            endereco.Principal = true;
            endereco.Proximidade = "Estadio";
            endereco.Retirada = true;
            endereco.TipoEndereco = Enuns.Cadastro.Endereco.TipoEndereco.Principal;

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

            #region DadoPessoa

            Model.Faturamento.Lancamento.Movimento.IDadoPessoa dadoPessoa =
                new Data.Faturamento.Lancamento.Movimento.DadoPessoa.DadoPessoa();

            ICliente cliente = new Cliente().Find<ICliente>(new Where { Limit = new Limit(1, 1) })[0];
            dadoPessoa.Cliente = cliente;
            #endregion

            pv.TabelaPreco = new Data.Cadastro.TabelaPreco.TabelaPreco().Find<Model.Cadastro.TabelaPreco.ITabelaPreco>(new Where { Limit = new Limit(1) })[0];
            pv.DadoPessoa = dadoPessoa;
            pv.COO = 123457;

            #region Frete
            Frete frete = new Frete();
            frete.Descricao = "Frete";
            frete.Save();
            #endregion

            #region Desconto
            Desconto desconto = new Desconto();
            desconto.Descricao = "Desconto";
            desconto.Save();
            #endregion

            #region Encargos
            EncargoFinanceiro encargoFinanceiro = new EncargoFinanceiro();
            encargoFinanceiro.Descricao = "Encargo Financeiro";
            encargoFinanceiro.Save();
            #endregion

            #region CFOP
            ICFOP cfop = new CFOP().Find<ICFOP>(new Where { Limit = new Limit(1, 1) })[0];
            #endregion

            #region items
            ProdutoAcabadoTest acabadoTest = new ProdutoAcabadoTest();

            for(int i = 0; i < 3; i++)
            {
                acabadoTest.Gravar();
                pv.Itens.Add(new Item
                {
                    Quantidade = new Random().NextDouble(7, 21),
                    ValorUnitarioBruto = new Random().NextDouble(7, 42),
                    DescricaoNF = "Produto de teste um",
                    Status = 0,
                    ItemMovimentado = new Acabado(acabadoTest.GUID),
                    CFOP = cfop,
                    Vendedor = vendedor,
                    ItensEspeciais = new List<IEspecial> {
                    new Especial{
                        Ordem = 0,
                        ItemEspecial  = frete,
                        Valor = 10
                    },
                    new Especial{
                        Ordem = 1,
                        ItemEspecial = desconto,
                        Valor = 10
                    },
                    new Especial{
                        Ordem = 2,
                        ItemEspecial = encargoFinanceiro,
                        Valor = 10
                    },
                }
                });
            }
            #endregion

            #region itens especiais
            pv.ItensEspeciais = new List<IEspecial> {
                    new Especial{
                        Ordem = 0,
                        ItemEspecial  = frete,
                        Valor = 12
                    },
                    new Especial{
                        Ordem = 1,
                        ItemEspecial = desconto,
                        Valor = 12
                    },
                    new Especial{
                        Ordem = 2,
                        ItemEspecial = desconto,
                        Valor = 12
                    },
                    new Especial{
                        Ordem = 3,
                        ItemEspecial = encargoFinanceiro,
                        Valor = 12
                    }};
            #endregion

            GUID = pv.Save();
        }
Ejemplo n.º 4
0
 public override void Popular()
 {
     CFOP t = new CFOP(GUID);
     DumpElement(t);
 }
Ejemplo n.º 5
0
 public override void Editar()
 {
     CFOP t = new CFOP(GUID);
     t.Save();
 }
Ejemplo n.º 6
0
        /// <summary>
        /// Método utilizado para preencher esta instância com os dados do dataReader
        /// </summary>
        /// <param name="dataReader">DataReader com os dados que deverão ser passados para esta instância</param>
        public override void Populate(DataReader dataReader)
        {
            #region base
            base.Populate(dataReader);
            #endregion

            #region desta classe
            DataEmissao = dataReader.GetValue<DateTime>("p_DataEmissao");
            DataHoraMovimento = dataReader.GetValue<DateTime>("p_DataHoraMovimento");
            BaseCalculoICMS = dataReader.GetDouble("p_BaseCalculoICMS");
            ValorICMS = dataReader.GetDouble("p_ValorICMS");
            ValorIsentaNaoTributado = dataReader.GetDouble("p_VlrIsentaNaoTrib");
            ValorOutra = dataReader.GetDouble("p_VlrOutra");
            AliquotaICMS = dataReader.GetDouble("p_AliquotaICMS");
            Modelo = dataReader.GetString("p_Modelo");
            Serie = new Data.Faturamento.Cadastro.Serie(dataReader.GetString("p_GUIDSerie"));
            CFOP = new CFOP("p_GUIDCFOP");
            Emitente = dataReader.GetString("p_Emitente");
            ValorBaseCalculo = dataReader.GetDouble("p_VlrBaseCalc");
            Situacao = dataReader.GetString("p_Situacao");
            ValorICMSRetido = dataReader.GetDouble("p_ValorICMSRetido");
            ValorDespesasAcessorias = dataReader.GetDouble("p_VlrDespAcess");
            CodigoAntecipacao = dataReader.GetEnum<CodigoAntecipacao>("p_CodigoAntecipacao");
            BaseCalculoICMSST = dataReader.GetDouble("p_BaseCalculoICMSST");
            DadoPessoa = new Data.Faturamento.Lancamento.Movimento.DadoPessoa.DadoPessoa(dataReader.GetValue<string>("p_GUIDLan"));
            Subserie = dataReader.GetString("p_Subserie");
            Temp = dataReader.GetBoolean("p_Temp");
            Impressora = new Impressora(dataReader.GetString("p_Impressora"));
            TabelaPreco = Abstract.Cadastro.TabelaPreco.TabelaPrecoBase.Create(dataReader.GetString("p_GUIDTabelaPreco"));
            COO = dataReader.GetInt("p_COO");
            CondicaoPagamento = new Data.Cadastro.Financeiro.CondicaoPagamento.CondicaoPagamento(dataReader.GetString("p_GUIDCondicaoPagamento"));
            Replicado = dataReader.GetBoolean("p_Replicado");
            Transportador = new Transportador((GUID)dataReader.GetValue<string>("p_GUIDTransportador"));
            QuantidadeVolume = dataReader.GetDouble("p_QuantidadeVolume");
            #endregion

            #region Registro04
            //    Registro04 = new Registro04(this);
            #endregion

            #region read only
            //ValorTotalBruto = dataReader.GetValue<double>("p_VlrTotalBruto");
            //ValorTotalLiquido = dataReader.GetValue<double>("p_VlrTotalLiquido");
            #endregion

            #region Itens Especiais
            IList<IRateio> rateios = new Rateio().Find<IRateio, IMovimento>("fat_LanMovItem.GUIDLanMov", GUID, this);

            ItensEspeciais = (from r in rateios
                              group r by r.Ordem into g
                              let rateio = g.FirstOrDefault()
                              select new Especial
                              {
                                  ItemEspecial = rateio.ItemEspecial.ItemEspecial,
                                  Valor = g.Sum(s => s.Valor),
                                  Percentual = rateio.ItemEspecial.Percentual > 0 ? rateio.ItemEspecial.Percentual : 0,
                                  Ordem = rateio.Ordem
                              }).ToList<IEspecial>();

            #endregion

            #region Analise de crédito
            AnaliseCredito = new AnaliseCredito(this);
            #endregion

            #region Parcelas
            DataReader dr = Connection.ExecuteReader(@"
                            SELECT GUID
                              FROM fat_Lan
                             WHERE GUID IN (
                                       SELECT GUIDLanFilho
                                         FROM fat_LanSK
                                        WHERE GUIDLanPai = @pai
                                              AND
                                              TableHash = @th
                                   );",
                                                    new[] {
                                                        new Parameter {
                                                            ParameterName = "@pai",
                                                            Value = GUID
                                                        },
                                                        new Parameter{
                                                            ParameterName = "@th",
                                                            Value = Unimake.Utilities.GetTableHash(typeof(IPagarReceber))
                                                        }
                                                    });

            Parcelas = new List<IParcela>();

            while(dr.Read())
            {
                Parcelas.Add(Data.Abstract.Financeiro.Lancamento.PagarReceberBase.Create(dr.GetString(0)) as IParcela);
            }
            #endregion

            #region Itens
            Itens = ItemBase.Create(this).Find<IItem, IMovimento>(new Where()
            {
                {"fat_LanMovItem.GUIDLanMov", GUID.ToString() }
            }, this);
            #endregion

            #region Ocorrências
            Ocorrencias = new Data.Faturamento.Lancamento.Movimento.Ocorrencia.Ocorrencia().Find<Model.Faturamento.Lancamento.Movimento.Ocorrencia.IOcorrencia, IMovimento>(new Where
            {
                {
                    "fat_LanMovOcorrencia.GUIDLanMov", GUID.ToString()
                }
            }, this);
            #endregion

            #region Baixas
            //Todo Luciano: Para implementar múltiplas baixas basta tratar as baixas como uma coleção
            IList<IBaixa> baixas = new Data.Faturamento.Lancamento.Movimento.Baixa.Baixa().Find<IBaixa>(new Where()
            {
                { "fat_LanMovBx.GUIDLan", GUID.ToString() }
            });

            if(baixas.Count > 0)
                Baixa = baixas.FirstOrDefault();

            #endregion
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Método utilizado para preencher esta instância com os dados do dataReader
        /// </summary>
        /// <param name="dataReader">DataReader com os dados que deverão ser passados para esta instância</param>
        public override void Populate(DataReader dataReader)
        {
            #region base
            base.Populate(dataReader);
            #endregion

            #region desta classe
            Descricao = dataReader.GetValue<string>("p_Descricao");
            CFOP = new CFOP(dataReader.GetString("p_GUIDCFOP"));
            #endregion

            #region Filtros
            Filtros = new CFOPRegraFiltro().Find<ICFOPRegraFiltro, ICFOPRegra>(new Where{
                {"GUIDCFOPRegra", GUID} }, this);
            #endregion
        }
Ejemplo n.º 8
0
        public override void Gravar()
        {
            PreVenda = new PreVenda();

            #region Vendedor
            Continente t = new Continente();
            t.Nome = "Europa";
            GUID guidContinente = t.Save();
            Pais p = new Pais();
            p.Nome = "Brasil";
            p.Abreviatura = "BR";
            p.CodBACEN = "1234";
            p.Continente = t;
            GUID guidPais = p.Save();
            Estado e = new Estado();
            e.Nome = "Europa";
            e.CodigoIBGE = "99";
            e.UF = "PR";
            e.Pais = p;
            GUID guidEstado = e.Save();
            Municipio m = new Municipio();
            m.Abreviatura = "PVI";
            m.CodigoIBGE = "123546";
            m.Estado = e;
            m.Nome = "Paranavaí";
            GUID guidMunicipio = m.Save();
            Cidade c = new Cidade();
            c.Abreviatura = "GR";
            c.Municipio = m;
            c.Nome = "Graciosa";
            GUID = c.Save();

            Logradouro l = new Logradouro();
            l.Descricao = "Avenida";
            l.Abreviatura = "Av";
            GUID guidLogradouro = l.Save();

            Bairro b = new Bairro();
            b.Cidade = c;
            b.Descricao = "Centro";
            GUID guidBairro = b.Save();

            OpenPOS.Data.Cadastro.Endereco.Endereco end = new OpenPOS.Data.Cadastro.Endereco.Endereco();
            end.Logradouro = l;
            end.CEP = "87704020";
            end.Endereco = "Joaquim da Silva";
            end.Bairro = b;
            string guidEndereco = end.Save();

            OpenPOS.Data.Cadastro.Pessoa.Fisica.Fisica fisica = new OpenPOS.Data.Cadastro.Pessoa.Fisica.Fisica();
            fisica.CPF = "05210438910";
            fisica.DataNascimento = new DateTime(1985, 07, 27);
            fisica.EstadoCivil = Enuns.Cadastro.Pessoa.EstadoCivil.Casado;
            fisica.MaeNome = "Teste";
            fisica.PaiNome = "Teste";
            fisica.RG = "90702343";
            fisica.RGEmissao = new DateTime(1995, 12, 12);
            Estado estado = new Estado(guidEstado);
            fisica.RGEstado = estado;
            fisica.RGOrgao = "SSPPR";
            fisica.RGTipoVisto = "";
            fisica.Sexo = Enuns.Cadastro.Pessoa.Sexo.Masculino;

            OpenPOS.Data.Cadastro.Pessoa.Juridica.Juridica juridica = new OpenPOS.Data.Cadastro.Pessoa.Juridica.Juridica();
            juridica.CNPJ = "75480764000120";
            juridica.DataAbertura = new DateTime(1999, 10, 10);
            juridica.IM = "1205";
            juridica.ISuf = "";
            juridica.RamoAtividade = new RamoAtividade().Find<IRamoAtividade>()[0];

            OpenPOS.Data.Cadastro.Pessoa.Endereco endereco = new OpenPOS.Data.Cadastro.Pessoa.Endereco();
            endereco.CaixaPostal = "123";
            endereco.Cobranca = true;
            endereco.Complemento = "teste";
            endereco.Correspondencia = true;
            endereco.Endereco = end;
            endereco.Entrega = true;
            endereco.Faturamento = true;
            endereco.Numero = "1234";
            endereco.Principal = true;
            endereco.Proximidade = "Estadio";
            endereco.Retirada = true;
            endereco.TipoEndereco = Enuns.Cadastro.Endereco.TipoEndereco.Principal;

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

            #region DadoPessoa

            Model.Faturamento.Lancamento.Movimento.IDadoPessoa dadoPessoa =
                new Data.Faturamento.Lancamento.Movimento.DadoPessoa.DadoPessoa();

            ICliente cliente = new Cliente().Find<ICliente>(new Where { Limit = new Limit(1, 1) })[0];
            dadoPessoa.Cliente = cliente;

            #endregion

            PreVenda.TabelaPreco = new Data.Cadastro.TabelaPreco.TabelaPreco(Settings.TabelaPrecoPadrao.GUID);
            PreVenda.DadoPessoa = dadoPessoa;
            PreVenda.COO = 123457;

            #region Frete
            Frete frete = new Frete();
            frete.Descricao = "Frete";
            frete.Save();
            #endregion

            #region Desconto
            Desconto desconto = new Desconto();
            desconto.Descricao = "Desconto";
            desconto.Save();
            #endregion

            #region Encargos
            EncargoFinanceiro encargoFinanceiro = new EncargoFinanceiro();
            encargoFinanceiro.Descricao = "Encargo Financeiro";
            encargoFinanceiro.Save();
            #endregion

            #region CFOP
            ICFOP cfop = new CFOP().Find<ICFOP>(new Where { Limit = new Limit(1, 1) })[0];
            #endregion

            #region items

            for(int i = 0; i < 7; i++)
            {
                PreVenda.Itens.Add(new Item
                {
                    TabelaPreco = PreVenda.TabelaPreco,
                    Vendedor = vendedor,
                    Quantidade = new Random().NextDouble(7, 21),
                    ValorUnitarioBruto = new Random().NextDouble(7, 42),
                    DescricaoNF = "Produto de teste um",
                    ItemMovimentado = PreVenda.TabelaPreco.Itens[0].Item as Acabado,
                    Status = 0,
                    CFOP = cfop,
                    Conferido = true,
                    ItensEspeciais = new List<IEspecial> {
                    new Especial{
                        Ordem = 0,
                        ItemEspecial  = frete,
                        Valor = new Random().NextDouble(21, 77)
                    },
                    new Especial{
                        Ordem = 1,
                        ItemEspecial = desconto,
                        Valor = new Random().NextDouble(21, 77)
                    },
                    new Especial{
                        Ordem = 2,
                        ItemEspecial = encargoFinanceiro,
                        Valor = new Random().NextDouble(21, 77)
                    },
                }
                });
            }
            #endregion

            GUID = PreVenda.Save();
        }