/// <summary> /// Cria uma instancia da classe com o tipo passado como parâmetro /// </summary> /// <param name="tipo">Tipo de lançamento a ser criado</param> /// <returns>Retorna um objeto do tipo ILancamento</returns> public static ILancamento Create(Tipo tipo) { ILancamento lancamento = null; if (tipo == Enuns.Faturamento.Lancamento.Tipo.ContasPagar) lancamento = new Data.Financeiro.Lancamento.ContaPagar(); else if (tipo == Enuns.Faturamento.Lancamento.Tipo.ContasReceber) lancamento = new Data.Financeiro.Lancamento.ContaReceber(); else if (tipo == Enuns.Faturamento.Lancamento.Tipo.CupomFiscal) lancamento = new OpenPOS.Data.Faturamento.Lancamento.Movimento.VendaCF.VendaCF(); else if (tipo == Enuns.Faturamento.Lancamento.Tipo.DAV) lancamento = new OpenPOS.Data.Faturamento.Lancamento.Movimento.DAV.DAV(); else if (tipo == Enuns.Faturamento.Lancamento.Tipo.DAVOS) lancamento = new OpenPOS.Data.Faturamento.Lancamento.Movimento.DAV.OS.DAV(); else if (tipo == Enuns.Faturamento.Lancamento.Tipo.NotaFiscalEletronica) lancamento = new OpenPOS.Data.Faturamento.Lancamento.Movimento.NFe.NFe(); else if (tipo == Enuns.Faturamento.Lancamento.Tipo.PreVenda) lancamento = new OpenPOS.Data.Faturamento.Lancamento.Movimento.PreVenda.PreVenda(); else if (tipo == Enuns.Faturamento.Lancamento.Tipo.Recebimento) throw new NotImplementedException("Faturamento.Lancamento.Tipo.Recebimento"); else if (tipo == Enuns.Faturamento.Lancamento.Tipo.Sangria) lancamento = new OpenPOS.Data.FrenteCaixa.Lancamento.Sangria(); else if (tipo == Enuns.Faturamento.Lancamento.Tipo.Suprimento) lancamento = new OpenPOS.Data.FrenteCaixa.Lancamento.Suprimento(); else if (tipo == Enuns.Faturamento.Lancamento.Tipo.LancamentoGeral) lancamento = new OpenPOS.Data.FrenteCaixa.Lancamento.LancamentoCaixa(); else if (tipo == Enuns.Faturamento.Lancamento.Tipo.DevolucaoMercadoria) lancamento = new OpenPOS.Data.Faturamento.Lancamento.Movimento.Devolucao.Devolucao(); else if (tipo == Enuns.Faturamento.Lancamento.Tipo.NotaFiscalManual) lancamento = new OpenPOS.Data.Faturamento.Lancamento.Movimento.NFManual.NFManual(); else if (tipo == Enuns.Faturamento.Lancamento.Tipo.NotaFiscalConsumidorEletronica) lancamento = new OpenPOS.Data.Faturamento.Lancamento.Movimento.NFCe.NFCe(); else if (tipo == Enuns.Faturamento.Lancamento.Tipo.ConferenciaMercadoria) lancamento = new OpenPOS.Data.Faturamento.Lancamento.Movimento.Conferencia.Conferencia(); return lancamento; }
public void CancelarNFe() { INFe nfe = new OpenPOS.Data.Faturamento.Lancamento.Movimento.NFe.NFe().Find(new Where() { { "fat_LanMovNF.Status",100 } })[0] as INFe; // Ainda não está implementado o cancelamento chamando pelo método da classe ...é apenas para testar a geração do xml CancelarTotal canc = new CancelarTotal(); canc.Lancamento = nfe; string filePath = Path.Combine(Settings.NFe.PastaEnvio, "canc" + nfe.Chave + "-ped-eve.xml"); // nfe.GenerateXMLEventoCancelamento("Teste unitario").Save(filePath); }
public void GerarDevolucaoNFe() { #region variáveis OpenPOS.Data.Faturamento.Lancamento.Movimento.NFe.NFe nfe = null; Devolucao devolucao = null; IList<ICliente> clientes = new Cliente().Find<ICliente>(new Where() { { "cad_Pessoa.nomefantasia", "NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM "} }); if (clientes.Count == 0) throw new Exception(); #endregion #region Emitir a nfe nfe = new OpenPOS.Data.Faturamento.Lancamento.Movimento.NFe.NFe(); nfe.QuantidadeVolume = 3; nfe.DadoPessoa = new DadoPessoa { Cliente = clientes[0] }; nfe.Emitente = IndicadorProducao.Proprio; nfe.Situacao = SituacaoNotaFiscal.Normal; nfe.TabelaPreco = new OpenPOS.Data.Cadastro.TabelaPreco.TabelaPreco().Find<Model.Cadastro.TabelaPreco.ITabelaPreco>(new Where { Limit = new Limit(1) })[0]; nfe.StatusNF = Status.LoteEmProcessamento; nfe.Motivo = "Teste"; nfe.Chave = "12345678"; nfe.InfProt = "123456"; nfe.Modelo = "55"; nfe.Serie = new OpenPOS.Data.Faturamento.Cadastro.Serie().Find<Model.Faturamento.Cadastro.ISerie>(new Where() { { "fat_Serie.Modelo = '55'"} })[0]; nfe.InformacoesAdicionais.Add(new InfAdic() { Tipo = Enuns.Faturamento.Lancamento.Movimento.NF.InfCplTipo.Contribuinte, Campo = "Teste de CRUD" }); nfe.InformacoesAdicionais.Add(new InfAdic() { Tipo = Enuns.Faturamento.Lancamento.Movimento.NF.InfCplTipo.ObsContribuinte, Campo = "Teste de CRUD Obs" }); ITabelaPreco tabela = OpenPOS.Settings.TabelaPrecoPadrao; nfe.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.NFe.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" }); nfe.SaveTemp(); #endregion #region enviar e autorizar a nfe string fileName = nfe.Chave + "-nfe.xml"; string filePath = Path.Combine(OpenPOS.Settings.NFe.PastaEnvio, fileName); ((NFe.IGenerateNFe)nfe).GenerateXML().Save(filePath); OpenPOS.NFe.NFeResult result = ((OpenPOS.Data.Abstract.Faturamento.Lancamento.Movimento.NF.NFBase)nfe).ProcessaResposta(); if (result.Success) { nfe.StatusNF = result.Status; nfe.Chave = result.Chave; nfe.InfProt = result.Protocolo; nfe.Motivo = result.Motivo; nfe.Save(); MessageBox.Show(result.Motivo); } else nfe.Save(); #endregion #region Emitir a devolução devolucao = new Devolucao(); devolucao.MotivoDevolucao = "Não gostou da cor e com defeito"; devolucao.Voucher = nfe; devolucao.TabelaPreco = new OpenPOS.Data.Cadastro.TabelaPreco.TabelaPreco().Find<OpenPOS.Model.Cadastro.TabelaPreco.ITabelaPreco>(new Where { Limit = new Limit(1) })[0]; foreach (OpenPOS.Model.Faturamento.Lancamento.Movimento.Item.NF.IItem item in nfe.Itens) { Model.Faturamento.Lancamento.Movimento.Item.Devolucao.IDevolucaoItem i = new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.Devolucao.Item() { ItemMovimentado = item.ItemMovimentado, Quantidade = item.Quantidade, ValorUnitarioBruto = item.ValorUnitarioBruto, DescricaoNF = item.DescricaoNF, MotivoDevolucao = "Com defeito", QuantidadeDevol = item.Quantidade, EstadoItem = Enuns.Faturamento.Lancamento.Movimento.Devolucao.EstadoItem.Defeito, TabelaPreco = item.TabelaPreco }; devolucao.Itens.Add(i); } GUID = devolucao.SaveTemp(); #endregion #region enviar e autorizar a devolução fileName = devolucao.Chave + "-nfe.xml"; filePath = Path.Combine(OpenPOS.Settings.NFe.PastaEnvio, fileName); ((NFe.IGenerateNFe)devolucao).GenerateXML().Save(filePath); result = ((OpenPOS.Data.Abstract.Faturamento.Lancamento.Movimento.NF.NFBase)devolucao).ProcessaResposta(); if (result.Success) { devolucao.StatusNF = result.Status; devolucao.Chave = result.Chave; devolucao.InfProt = result.Protocolo; devolucao.Motivo = result.Motivo; devolucao.Save(); MessageBox.Show("NF-e Devolução: " + result.Motivo); } #endregion }