public void RegraCSTCSOSNCalculoTest() { IVendaCF v = null; if (new VendaCF().Find<IVendaCF>(new Where() { Limit = 1 }).Count <= 0) { VendaCFTest vendaTest = new VendaCFTest(); vendaTest.Gravar(); v = new VendaCF(vendaTest.GUID); } else v = new VendaCF().Find<IVendaCF>(new Where() { Limit = 1 })[0]; IList<RegraCSTCSOSNResult> lista = new List<RegraCSTCSOSNResult>(); foreach (Model.Faturamento.Lancamento.Movimento.Item.IItem item in v.Itens) { RegraCFOPResult resultCFOP = new RetornaCFOP(item).ExecutarRegra(new RegraCFOPFilter() { Tipo = v.Tipo }); RegraCSTCSOSNResult resultCST = new RetornaCSTCSOSN(item).ExecutarRegra(new RegraCSTCSOSNFilter() { CFOPRegra = resultCFOP.Regra }); if (!resultCST.Regra.IsNullOrEmpty()) { item.CFOP = resultCFOP.Regra.CFOP; lista.Add(resultCST); } else throw new Exception(); } GUID = v.Save(); }
public void CancelarTotal() { Gravar(); string motivo = "Cancelar o cupom fiscal inteiro"; VendaCF vendaCF = new VendaCF(GUID); vendaCF.Cancelar(motivo); vendaCF = new VendaCF(GUID); DumpElement(vendaCF); Assert.AreNotEqual(vendaCF.DadosCancelamento, null); }
public void CancelarItem() { Gravar(); string motivo = "Teste de cancelamento de item"; VendaCF v = new VendaCF(GUID); //cancelar apenas o primeiro item v.Itens[0].Cancelar(motivo); //carregar o objeto e verificar se foi carregado os dados do cancelamento v = new VendaCF(GUID); DumpElement(v); Assert.AreEqual(v.DadosCancelamento.Motivo, motivo); }
/// <summary> /// Ao carregar o formulário /// </summary> /// <param name="sender">Objeto que disparou o evento</param> /// <param name="e">Argumento do evento gerado</param> private void Inicial_Load(object sender, EventArgs e) { splash.Show(); splash.SetMessage("Verificando ECF"); if(Settings.ECF.ECFAtual != null) { ICupomFiscal cf = null; #if IsPAF IArquivoAuxiliar aux = null; #endif try { cf = new CupomFiscal(Settings.ECF.ECFAtual.ModeloACBR, Settings.ECF.ECFAtual.Porta); #if IsPAF aux = new ArquivoAuxiliar(); if(!System.IO.File.Exists(aux.ArquivoAuxiliarPath)) { aux.GrandeTotal = cf.GrandeTotal.ToString(); aux.NumeroSerie = cf.NumeroSerie; aux.Gerar(); } aux.Carregar(); #endif } catch { } #if IsPAF if((cf.Estado != EstadoECF.Livre) || !aux.PermiteFaturamento(cf.GrandeTotal)) { //TODO André: Essa parte do código só vai ser executado quando por algum motivo ocorreu a perda //acidentalmente dos dados do //arquivo auxiliar criptografado, onde será reconstituído o valor do Grande Total e Número de Série do Equipamento Emissor de Cupom Fiscal conectado //Requisito XXIV - item 8 try { using(IInformacao info = new Informacao(Settings.ECF.ECFAtual.ModeloACBR, Settings.ECF.ECFAtual.Porta)) { DadosReducaoZClass dadosReducao = info.DadosReducaoZ; if(aux.RecomporTotalizadorGeral(info.CRZ, info.CRO, dadosReducao.ValorVendaBruta, dadosReducao.DataHoraEmissao)) aux.CorrigeDados(cf.GrandeTotal); else { MessageBox.ShowWarning("Não é permitido o faturamento na impressora fiscal, pois os dados do Grande Total ou Número de série, diferem dos que estão no arquivo auxiliar criptografado!"); return; } } } catch { } } #endif splash.SetMessage("Preparando Caixa"); IVendaCF venda = new VendaCF().HasTemp(Settings.ECF.ECFAtual) as IVendaCF; if(venda != null) { if(venda.Status == Enuns.Faturamento.Lancamento.Status.ImpressoCupom) new Pagamento(cf, venda).Confirmacao(); else new Pagamento(cf, venda).CancelarTransacoesPendentes(); try { cf = new CupomFiscal(Settings.ECF.ECFAtual.ModeloACBR, Settings.ECF.ECFAtual.Porta); if(cf.Estado == EstadoECF.Pagamento) { if(cf.TotalPago > 0) { cf.CancelaCupom(); if(cf.Estado == EstadoECF.Livre) venda.Cancelar("Venda cancelada pelo Usuário"); } } else if(cf.Estado == EstadoECF.Venda) { } else if(cf.Estado == EstadoECF.Livre) { venda.Cancelar("Venda cancelada pelo Sistema"); } else if(cf.Estado == EstadoECF.Relatorio) { new OpenPOS.ECF.RelatorioGerencial(Settings.ECF.ECFAtual.ModeloACBR, Settings.ECF.ECFAtual.Porta).FechaRelatorio(Enuns.ECF.TipoOutrosDocumentos.RG, false); } else if(cf.Estado == EstadoECF.NaoInicializada) { throw new Exception(); } } catch { if(MessageBox.AskYesNo("Impressora não responde.\r\tContinuar?", "Erro") == DialogResult.No) Application.Exit(); } } splash.SetMessage("Finalizando Incialização"); } optbCaixa.Visible = optBarVenda.Visible = optbConsulta.Visible = optBarDAV.Visible = optBarOutros.Visible = false; //Configurações na barra de acordo com o terminal, ou seja PDV ou não if(isPDV) { labelOperador.Text = Settings.UsuarioAtual.NomeLogin; labelTerminal.Text = Settings.MachineName; IAbreFechaCaixa abreCx = new AbreCaixa().PermiteAbrir(Settings.MachineName, DateTime.Now); labelStatus.Text = abreCx == null ? Convert.ToString(Enuns.FrenteCaixa.Cadastro.Caixa.Status.Fechado) : Convert.ToString(abreCx.Status); } else { labelOperador.Text = Settings.UsuarioAtual.NomeLogin; labelOperador.Location = new Point(202, 540); labelTerminal.Text = ""; labelStatus.Text = ""; } splash.Close(); }
/// <summary> /// Método para criar os registros 60D do Sintegra ao emitir a redução Z /// </summary> private void CriaRegistro60D() { IList<IVendaCF> produtos = new VendaCF().Find<IVendaCF>(new Where() { { "date(fat_LanMov.DataHoraMovimento) = date(@p1)", new Parameter{ GenericDbType = Unimake.Data.Generic.GenericDbType.DateTime, ParameterName = "@p1", Value = DadosReducaoZ.DataDoMovimento } } }); var colecao = (from n in produtos from x in n.Itens.Cast<Model.Faturamento.Lancamento.Movimento.Item.VendaCF.IItem>() group x by x.ItemMovimentado.EGUID); ISintegraReg60D reg60D = null; foreach (var item in colecao) { reg60D = new SintegraReg60D(); reg60D.Quantidade = item.Sum(i => i.Quantidade); reg60D.ValorBruto = item.Sum(i => i.ValorTotalBruto); reg60D.ValorBaseCalculoICMS = item.Sum(i => i.Tributos.Where(k => k.Aliquota.Parent.TipoTributo == Enuns.Cadastro.Tributo.TipoTributo.ICMS).Sum(k => k.VlrBaseCalculo)); reg60D.ValorICMS = item.Sum(i => i.Tributos.Where(k => k.Aliquota.Parent.TipoTributo == Enuns.Cadastro.Tributo.TipoTributo.ICMS).Sum(k => k.VlrTributo)); reg60D.DataEmissao = DadosReducaoZ.DataDoMovimento; reg60D.CodigoProduto = item.FirstOrDefault().ItemMovimentado.EGUID.ToString(); reg60D.NumeroSerie = NumeroSerie; reg60D.SituacaoTributaria = item.FirstOrDefault().SituacaoTributaria; reg60D.Save(); } }
/// <summary> /// Cancela as Pré Vendas pendentes /// </summary> private void CancelaPreVendasPendentes() { try { //Verifica se tem pre vendas pendentes DateTime dataMov = DateTime.Today; #region Antes da emissão da redução Z if (DadosReducaoZ.DataDoMovimento.CompareTo(dataMov) > 2) dataMov = dataMov.AddDays(DadosReducaoZ.DataDoMovimento.CompareTo(dataMov) - 1); else if (DadosReducaoZ.DataDoMovimento.CompareTo(dataMov) != 1) dataMov = DadosReducaoZ.DataDoMovimento.AddDays(-1); IList<IPreVenda> preVendas = new PreVenda().Find<IPreVenda>(new Where() { { "fat_LanMov.DataHoraMovimento < @p1", new Parameter { GenericDbType = GenericDbType.DateTime, ParameterName = "@p1", Value = dataMov } }, { "fat_Lan.Status = @p2", new Parameter { GenericDbType = GenericDbType.Integer, ParameterName = "@p2", Value = (int)Enuns.Faturamento.Lancamento.Status.Aberto } } }); //Cancela se houver pre vendas pendentes foreach (IPreVenda pv in preVendas) { Model.Faturamento.Lancamento.Movimento.VendaCF.IVendaCF venda = new VendaCF(); venda.DadoPessoa = pv.DadoPessoa; venda.Emitente = pv.Emitente; int contaPV = 0; foreach (Model.Faturamento.Lancamento.Movimento.Item.IItem item in pv.Itens) if (((Model.Faturamento.Lancamento.Movimento.Item.PreVenda.IItem)item).Status == Enuns.Faturamento.Lancamento.Movimento.Item.Status.Cancelado) contaPV++; if (contaPV != pv.Itens.Count) { ACBrECF.AbreCupom(venda.DadoPessoa.Cliente.GetCPFCNPJ(), venda.DadoPessoa.NomeFantasia, ""); foreach (Model.Faturamento.Lancamento.Movimento.Item.IItem item in pv.Itens) if (((Model.Faturamento.Lancamento.Movimento.Item.PreVenda.IItem)item).Status != Enuns.Faturamento.Lancamento.Movimento.Item.Status.Cancelado) { Model.Faturamento.Lancamento.Movimento.Item.VendaCF.IItem i = new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item(); i.DescricaoNF = item.DescricaoNF; i.ItemMovimentado = item.ItemMovimentado; i.Quantidade = item.Quantidade; i.ValorUnitarioBruto = item.ValorUnitarioBruto; i.Vendedor = item.Vendedor; i.Status = Enuns.Faturamento.Lancamento.Movimento.Item.Status.Cancelado; i.SituacaoTributaria = SituacaoTributaria.Isento; i.ItensParent.Add(item); (i.ItemMovimentado as Model.Cadastro.Item.Produto.IProduto).IndicadorProducao = "P"; (i.ItemMovimentado as Model.Cadastro.Item.Produto.IProduto).IndicadorTruncamento = "T"; ((Model.Faturamento.Lancamento.Movimento.Item.PreVenda.IItem)item).Status = Enuns.Faturamento.Lancamento.Movimento.Item.Status.Cancelado; item.Save(); venda.Itens.Add(i); ACBrECF.VendeItem(i.Ordem.ToString(), i.DescricaoNF, "FF", (decimal)i.Quantidade, (decimal)i.ValorUnitarioLiquido); } venda.NumeroSerieECF = NumeroSerie; venda.NumeroOrdemECF = Unimake.Convert.ToInt(NumeroECF); venda.COO = COO; venda.COOFinal = 0; // Todo: o valor do coo final será atualizado posteriormente pela emissão da redução z venda.CRO = CRO; venda.CCF = CCF; venda.CRZ = CRZ; venda.ValorGrandeTotalECF = GrandeTotal; venda.Save(); ACBrECF.SubtotalizaCupom(); ACBrECF.FechaCupom("Obrigado"); ACBrECF.CancelaCupom(); pv.Cancelar(DateTime.Today, "Cancelamento Automático - Emissão de Redução Z"); } } #endregion } finally { //aqui tem que liberar a variável da redução Z, pois será chamada em outros métodos que dependem // dos dados da última redução Z. Ou seja, os dados de pois de validados por este método. // Este método é chamado antes da redução Z _dadosReducaoZ = null; } }
public void RegraTributoCalculoTest() { #region Cadastrar uma regra de CFOP ICFOPRegra cfop = new CFOPRegra(); cfop.Descricao = "Regra CFOP - Venda Consumidor Final"; cfop.CFOP = new CFOP().Find<ICFOP>(new Where() { Limit = 1 })[0]; cfop.Filtros.Add(new CFOPRegraFiltro() { TipoLancamento = Enuns.Faturamento.Lancamento.Tipo.CupomFiscal }); cfop.Save(); #endregion #region Cadastrar uma regra de CST ICSTCSOSN cstCodigo = new CSTCSOSN(); cstCodigo.Codigo = "00"; cstCodigo.Descricao = "Tributado Integralmente"; cstCodigo.Save(); ICSTCSOSNRegra cst = new CSTCSOSNRegra(); cst.Descricao = "Teste Regra"; cst.CSTCSOSNCodigos.Add(new CSTCSOSNRegraCodigo() { CSTCSOSNCodigo = new CSTCSOSN().Find<ICSTCSOSN>()[0] }); cst.Filtros.Add(new CSTCSOSNRegraFiltro() { CFOPRegra = cfop }); cst.Save(); #endregion #region Regra Tributo ITributoRegra t = new TributoRegra(); t.Descricao = "Regra - Venda Consumidor Final"; ITributo tributo = new Tributo(); tributo.TipoTributo = Enuns.Cadastro.Tributo.TipoTributo.ICMS; tributo.Descricao = "ICMS"; tributo.Aliquotas = new List<IAliquotaTributo> { new DCT.AliquotaTributo{Valor = 18.00} }; t.Aliquotas.Add(new TributoRegraAliquota() { Aliquota = tributo.Aliquotas[0] }); t.Filtros.Add(new TributoRegraFiltro() { CFOPRegra = cfop }); tributo.Save(); t.Save(); #endregion #region Filtro da regra de base de cálculo IRegraFiltro filtro = new RegraFiltro(); filtro.TipoTributo = Enuns.Cadastro.Tributo.TipoTributo.ICMS; #endregion #region Regra da base de cálculo OpenPOS.Model.Regra.BaseCalculo.IRegra regraBC = new OpenPOS.Data.Regra.BaseCalculo.Regra(); regraBC.Descricao = "Regra de base de cálculo"; regraBC.Formula = ""; regraBC.Filtros.Add(filtro); regraBC.Save(); #endregion //------------------------------------------------------------------------- // Como teste pode recuperar qualquer ECF //------------------------------------------------------------------------- IUnidade un = new Unidade().Find()[0] as IUnidade; IVendedor vendedor = new Vendedor().Find<IVendedor>(new Where { Limit = 1 })[0]; VendaCF v = new VendaCF(); ProdutoAcabadoTest acabadoTest = new ProdutoAcabadoTest(); acabadoTest.Gravar(); v.TabelaPreco = new TabelaPreco().Find<Model.Cadastro.TabelaPreco.ITabelaPreco>(new Where { Limit = new Limit(1) })[0]; v.DadoPessoa = new DadoPessoa { Cliente = new OpenPOS.Data.Cadastro.Pessoa.Cliente().Find<ICliente>(new Where() { Limit = 1 })[0] }; v.EmissorCupom = new OpenPOS.Data.Cadastro.Pessoa.Usuario().Find<IUsuario>(new Where() { Limit = 1 })[0]; // TODO: Voltar ao normal if (new AbreCaixa().Find<IAbreCaixa>(new Where() { { "cxa_AbreFechaCaixa.Status", 0 } }).Count > 0) v.AbreFechaCaixa = new AbreCaixa().Find<IAbreCaixa>(new Where() { { "cxa_AbreFechaCaixa.Status", 0 } })[0]; else { v.AbreFechaCaixa = new AbreCaixa().PermiteAbrir(Environment.MachineName, DateTime.Now); } v.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item { Quantidade = new Random().NextDouble(15, 50), ValorUnitarioBruto = new Random().NextDouble(15, 50), DescricaoNF = "Produto de teste um", SituacaoTributaria = SituacaoTributaria.ISSQN, ItemMovimentado = new Acabado(acabadoTest.GUID), Unidade = un, Vendedor = vendedor, Parent = v }); v.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item { Quantidade = new Random().NextDouble(15, 50), ValorUnitarioBruto = new Random().NextDouble(15, 50), DescricaoNF = "Produto de teste dois", SituacaoTributaria = SituacaoTributaria.Cancelamento, ItemMovimentado = new Acabado(acabadoTest.GUID), Unidade = un, Vendedor = vendedor, Parent = v }); v.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item { Quantidade = new Random().NextDouble(15, 50), ValorUnitarioBruto = new Random().NextDouble(15, 50), DescricaoNF = "Produto de teste tres", SituacaoTributaria = "18,00", ItemMovimentado = new Acabado(acabadoTest.GUID), Unidade = un, Vendedor = vendedor, Parent = v }); v.NumeroOrdemECF = 123; v.NumeroSerieECF = "212lklk1kl"; v.COO = 123458; GUID = v.SaveTemp(); v = new VendaCF(GUID); #region Regra Tributo Model.Faturamento.Lancamento.Movimento.Item.IItem item = v.Itens[0]; RegraCFOPResult resultCFOP = new RetornaCFOP(item).ExecutarRegra(new RegraCFOPFilter() { Tipo = v.Tipo }); RegraCSTCSOSNResult resultCST = new RetornaCSTCSOSN(item).ExecutarRegra(new RegraCSTCSOSNFilter() { CFOPRegra = resultCFOP.Regra }); RegraTributoResult resultTributo = new CalcularTributo(item).ExecutarRegra(new RegraTributoFilter() { CFOPRegra = resultCFOP.Regra, CSTCSOSNRegra = resultCST.Regra }); #endregion }
public void BaixarCupomTest() { #region Criar a venda //------------------------------------------------------------------------- // Criar um cupom fiscal com 5 itens //------------------------------------------------------------------------- #region Criar a venda IUnidade un = new Unidade().Find()[0] as IUnidade; VendaCF v = new VendaCF(); v.TabelaPreco = new OpenPOS.Data.Cadastro.TabelaPreco.TabelaPreco(OpenPOS.Settings.TabelaPrecoCupomPadrao.GUID); v.DadoPessoa = new DadoPessoa { Cliente = OpenPOS.Settings.ConsumidorFinal }; IAcabado acabado = v.TabelaPreco.Itens.FirstOrDefault().Item as IAcabado; for(int i = 0; i < 5; i++) { v.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item { Parent = v, Quantidade = 10, ValorUnitarioBruto = 20, DescricaoNF = "Produto de teste um", SituacaoTributaria = SituacaoTributaria.NaoTributado, ItemMovimentado = acabado, Unidade = un, Conferido = true, TabelaPreco = v.TabelaPreco }); } v.EmissorCupom = OpenPOS.Settings.UsuarioAtual; v.AbreFechaCaixa = new AbreCaixa().Find<AbreCaixa>().FirstOrDefault().CaixaAberto(); v.NumeroOrdemECF = 123; v.NumeroSerieECF = "3231313131321"; #endregion #region Baixar //------------------------------------------------------------------------- // Baixar R$ 200,00 em dinheiro //------------------------------------------------------------------------- string descricao = string.Empty; descricao = "Dinheiro".ToUpper(); v.Baixa.Formas.Add(new BaixaForma { FormaPagamento = new FormaPagamento().Find<IFormaPagamento>(new Where { "Descricao LIKE '%"+descricao+"%'" }).FirstOrDefault(), ValorBruto = new Random().NextDouble(), DataHoraPagamento = DateTime.Now }); //------------------------------------------------------------------------- // Baixar R$ 200,00 em cheque //------------------------------------------------------------------------- descricao = "Cheque".ToUpper(); v.Baixa.Formas.Add(new BaixaForma { FormaPagamento = new FormaPagamento().Find<IFormaPagamento>(new Where { "Descricao LIKE '%"+descricao+"%'" }).FirstOrDefault(), Cheque = new BaixaCheque { Agencia = "123", Banco = new Banco().Find<IBanco>(new Where { Limit = 1 })[0], Cliente = OpenPOS.Settings.ConsumidorFinal, Numero = "456", NumeroConta = "789", }, ValorBruto = new Random().NextDouble(), DataHoraPagamento = DateTime.Now }); //------------------------------------------------------------------------- // Baixar R$ 200,00 em cheque TEF //------------------------------------------------------------------------- v.Baixa.Formas.Add(new BaixaTEFCheque { FormaPagamento = new FormaPagamento().Find<IFormaPagamento>(new Where { "Descricao LIKE '%"+descricao+"%'" }).FirstOrDefault(), Cheque = new BaixaCheque { Agencia = "123", Banco = new Banco().Find<IBanco>(new Where { Limit = 1 })[0], Cliente = OpenPOS.Settings.ConsumidorFinal, Numero = "456", NumeroConta = "789", }, Autenticacao = "654a654sa64a6s4a64d6a4d65s987qw96wq5465a", DataHoraTransacaoComprovante = DateTime.Now, ValorBruto = new Random().NextDouble(), DataHoraPagamento = DateTime.Now }); //------------------------------------------------------------------------- // Baixar R$ 200,00 em cartão 1 //------------------------------------------------------------------------- descricao = "Cartao".ToUpper(); v.Baixa.Formas.Add(new BaixaTEF { FormaPagamento = new FormaPagamento().Find<IFormaPagamento>(new Where { "Descricao LIKE '%"+descricao+"%'" }).FirstOrDefault(), DataHoraTransacaoComprovante = DateTime.Now, ValorBruto = new Random().NextDouble(), DataHoraPagamento = DateTime.Now, CodigoAutorizacaoTransacao = 1236, NomeRede = "MasterCard", NSU = "1326547984" }); //------------------------------------------------------------------------- // Baixar R$ 200,00 em cartão 2 //------------------------------------------------------------------------- v.Baixa.Formas.Add(new BaixaTEF { FormaPagamento = new FormaPagamento().Find<IFormaPagamento>(new Where { "Descricao LIKE '%"+descricao+"%'" }).FirstOrDefault(), DataHoraTransacaoComprovante = DateTime.Now, ValorBruto = new Random().NextDouble(), DataHoraPagamento = DateTime.Now, CodigoAutorizacaoTransacao = 123456, NomeRede = "RedeCard", NSU = "132654" }); #endregion GUID g = v.Save(); #endregion #region Carregar a venda v = new VendaCF(g); DumpElement(v.Baixa.Formas); #endregion }
public override void Editar() { VendaCF v = new VendaCF(GUID); //fazer um dump dos itens do objeto DumpElement(v.Itens); //excluir 2 itens e salvar v.Itens.RemoveAt(0); v.Itens.RemoveAt(0); GUID = v.Save(); //recarrega o objeto para conferir se salvou corretamente os itens v = new VendaCF(GUID); //fazer um dump dos itens do objeto DumpElement(v.Itens); //adicionar 3 itens v.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item { Quantidade = 10, ValorUnitarioBruto = 12.5, DescricaoNF = "Produto de teste cinco", SituacaoTributaria = SituacaoTributaria.ISSQN, ItemMovimentado = Acabado, TabelaPreco = v.TabelaPreco }); v.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item { Quantidade = 25, ValorUnitarioBruto = 15, DescricaoNF = "Produto de teste seis", SituacaoTributaria = "17.00", ItemMovimentado = Acabado, TabelaPreco = v.TabelaPreco }); v.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item { Quantidade = 33, ValorUnitarioBruto = 17.5, DescricaoNF = "Produto de teste sete", SituacaoTributaria = SituacaoTributaria.Isento, ItemMovimentado = Acabado, TabelaPreco = v.TabelaPreco }); GUID = v.Save(); //recarrega o objeto para conferir se salvou corretamente os itens v = new VendaCF(GUID); //fazer um dump dos itens do objeto DumpElement(v.Itens); }
public override void Gravar() { //------------------------------------------------------------------------- // Como teste pode recuperar qualquer ECF //------------------------------------------------------------------------- IUnidade un = new Unidade().Find()[0] as IUnidade; IVendedor vendedor = new Vendedor().Find<IVendedor>(new Where { Limit = 1 })[0]; VendaCF v = new VendaCF(); v.QuantidadeVolume = 2; v.TabelaPreco = new Data.Cadastro.TabelaPreco.TabelaPreco(Settings.TabelaPrecoCupomPadrao.GUID); v.DadoPessoa = new DadoPessoa { Cliente = Settings.ConsumidorFinal }; v.EmissorCupom = Settings.UsuarioAtual; // TODO: Voltar ao normal v.AbreFechaCaixa = new AbreCaixa().Find<AbreCaixa>().FirstOrDefault().CaixaAberto(); Acabado = v.TabelaPreco.Itens.FirstOrDefault().Item as IAcabado; v.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item { Quantidade = new Random().NextDouble(15, 50), ValorUnitarioBruto = new Random().NextDouble(15, 50), DescricaoNF = "Produto de teste um", SituacaoTributaria = SituacaoTributaria.ISSQN, ItemMovimentado = Acabado, Unidade = un, Vendedor = vendedor, Conferido = true, TabelaPreco = v.TabelaPreco }); v.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item { Quantidade = new Random().NextDouble(15, 50), ValorUnitarioBruto = new Random().NextDouble(15, 50), DescricaoNF = "Produto de teste dois", SituacaoTributaria = SituacaoTributaria.Cancelamento, ItemMovimentado = Acabado, Unidade = un, Vendedor = vendedor, Conferido = true, TabelaPreco = v.TabelaPreco }); v.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item { Quantidade = new Random().NextDouble(15, 50), ValorUnitarioBruto = new Random().NextDouble(15, 50), DescricaoNF = "Produto de teste tres", SituacaoTributaria = "18,00", ItemMovimentado = Acabado, Unidade = un, Vendedor = vendedor, Conferido = true, TabelaPreco = v.TabelaPreco }); #region Movimento vinculado PreVendaTest pvt = new PreVendaTest(); pvt.Gravar(); v.MovimentosVinculados.Add(new PreVenda(pvt.GUID)); #endregion v.NumeroOrdemECF = 123; v.NumeroSerieECF = "212lklk1kl"; v.COO = 123458; GUID = v.Save(); }
public override void Popular() { VendaCF v = new VendaCF(GUID); DumpElement(v); }
public void ExportarParaXML() { Gravar(); VendaCF vendaCF = new VendaCF(GUID); ((Unimake.IGenerateXML)vendaCF).GenerateXML().Save(Path.GetTempFileName()); Excluir(); }
public override void Gravar() { #region DAV DAV dav = new DAV(); #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(); IVendedor vendedor = new Vendedor(); vendedor.FisicaJuridica = Enuns.Cadastro.Pessoa.FisicaJuridica.Fisica; 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.GUID = guidEndereco; 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; vendedor.Enderecos = new List<IEndereco> { endereco }; vendedor.Fisica = fisica; vendedor.Juridica = juridica; vendedor.NomeFantasia = "Teste"; vendedor.Observacao = "teste unitario"; vendedor.RazaoSocial = "Teste"; vendedor.TipoPessoa = Enuns.Cadastro.Pessoa.TipoPessoa.Vendedor; GUID guidVendedor = vendedor.Save(); #endregion #region DadoPessoa Model.Faturamento.Lancamento.Movimento.IDadoPessoa dadoPessoa = new Data.Faturamento.Lancamento.Movimento.DadoPessoa.DadoPessoa(); Cliente cliente = new Cliente() { FisicaJuridica = Enuns.Cadastro.Pessoa.FisicaJuridica.Fisica, Fisica = fisica, NomeFantasia = "Luciano", RazaoSocial = "Luciano Leandro", TipoPessoa = Enuns.Cadastro.Pessoa.TipoPessoa.Cliente, Enderecos = new List<IEndereco> { endereco } }; cliente.Save(); dadoPessoa.Cliente = cliente; #endregion dav.DadoPessoa = dadoPessoa; Item item1 = new Item() { Quantidade = 10, ValorUnitarioBruto = 12.5, DescricaoNF = "Produto de teste um", Vendedor = vendedor }; dav.Itens.Add(item1); GUID guidDav = dav.Save(); #endregion PreVenda pv = new PreVenda(); OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.PreVenda.Item itempv1 = new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.PreVenda.Item() { Quantidade = 10, ValorUnitarioBruto = 12.5, DescricaoNF = "Produto de teste um", Status = 0, }; itempv1.Parent = pv; itempv1.ItensParent.Add((Item)dav.Itens[0].Clone()); pv.Itens.Add(itempv1); guidPv = pv.Save(); VendaCF v = new VendaCF(); OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item itemVCF = new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item { Quantidade = 25, ValorUnitarioBruto = 15, DescricaoNF = "Produto de teste um", }; itemVCF.Parent = v; itemVCF.ItensParent.Add((Data.Faturamento.Lancamento.Movimento.Item.PreVenda.Item)pv.Itens[0].Clone()); v.Itens.Add(itemVCF); GUID = v.Save(); }
public override void Excluir() { VendaCF v = new VendaCF(GUID); v.Delete(); }
public override void Editar() { VendaCF v = new VendaCF(GUID); v.Save(); }
public override void Popular() { PreVenda pv = new PreVenda(guidPv); VendaCF v = new VendaCF(GUID); DumpElement(v); }