public void CupomNaoFiscal() { DsCupomNaoFiscal dataSet = new DsCupomNaoFiscal(); DataTable dtMovimento = dataSet.Tables["Movimento"]; EstoqueController eController = new EstoqueController(); Grades_produtosController gController = new Grades_produtosController(); UnidadesController unController = new UnidadesController(); UsuariosController usuariosController = new UsuariosController(); ClientesController clientesController = new ClientesController(); Tipos_movimentoController tipoMovController = new Tipos_movimentoController(); Formas_pagamentoController fpgController = new Formas_pagamentoController(); if (Movimento.Usuarios == null) { Movimento.Usuarios = new UsuariosController().Find(Movimento.Usuario_id); } #region MOVIMENTO dtMovimento.Rows.Add( Movimento.Id, UsuariosController.LojaAtual.Nome_fantasia, Movimento.Usuarios.Vendedores.Count == 0 ? Movimento.Usuarios.Nome : Movimento.Usuarios.Vendedores.First().Nome, Movimento.Cliente_id == 0 ? "Não identificado" : clientesController.Find(Movimento.Cliente_id).Nome, GetTotalParcial(), GetTotalDesconto(), Movimento.Data, "", $"{UsuariosController.LojaAtual.Logradouro}, {UsuariosController.LojaAtual.Bairro} - {UsuariosController.LojaAtual.Municipio}", tipoMovController.Find(Movimento.Tipo_movimento_id).Descricao, UsuariosController.LojaAtual.Cnpj); #endregion #region ITENS_PAGAMENTO DataTable dtItens_pag = dataSet.Tables["Itens_pagamento"]; itens_pag.ForEach(e => dtItens_pag.Rows.Add( fpgController.Find(e.Forma_pagamento_id).Descricao, e.Valor )); #endregion #region ITENS_MOVIMENTO DataTable dtItens_mov = dataSet.Tables["Itens_movimento"]; foreach (Itens_movimento item in Itens_movimento) { string cod_prod = string.Empty; string descricaoProdo = item.Produtos.Descricao; string descricao_valor_unitario = string.Empty; if (!string.IsNullOrEmpty(item.Lote)) { cod_prod = item.Lote + "SL" + item.Sublote; } else if (item.Grade_id != null) { Grades_produtos grade = gController.Find(item.Grade_id); cod_prod = item.Grade_id; descricaoProdo += $" {grade.Cores.Descricao} {grade.Tamanhos.Descricao}"; } else { cod_prod = item.Produtos.Ean; } if (item.Unidades == null) { item.Unidades = unController.Find(item.Unidade_id); } descricao_valor_unitario = $"{item.Quant} {item.Unidades.Sigla} x R${item.Valor_unit}"; dtItens_mov.Rows.Add(item.Id, cod_prod, descricaoProdo, descricao_valor_unitario, item.Quant, item.Valor_final); } #endregion IControllerReport rController = ReportController.GetInstance(); rController.AddDataSource("Itens_movimento", dtItens_mov); rController.AddDataSource("Itens_pagamento", dtItens_pag); rController.AddDataSource("Movimento", dtMovimento); rController.ShowReport("MOVIMENTO", "MOV001"); }
public void NFCe() { int retorno = 0; // Declaracoes.tCFCancelar_NFCe_Daruma("", "", "", "", ""); Clientes cliente = new ClientesController().Find(Movimento.Cliente_id); if (cliente == null || cliente.Cpf.Equals("___.___.___-__")) { retorno = Declaracoes.aCFAbrir_NFCe_Daruma("", "", "", "", "", "", "", "", ""); } else { retorno = Declaracoes.aCFAbrir_NFCe_Daruma(cliente.Cpf, cliente.Nome, cliente.Logradouro, cliente.Numero.ToString(), cliente.Bairro, "", cliente.Municipio, cliente.Uf, cliente.Cep); } LogNFCe($"aCFAbrir_NFCe_Daruma - {Declaracoes.TrataRetorno(retorno)}"); if (retorno != 1) { MessageBox.Show("Ocorreu um problema ao emitir a NFC-e. \nAcione o suporte Doware.", "Erro NFC-e", MessageBoxButton.OK, MessageBoxImage.Error); Declaracoes.tCFCancelar_NFCe_Daruma("", "", "", "", ""); return; } foreach (Itens_movimento item in Itens_movimento) { Produtos produto = new ProdutosController().Find(item.Produto_id); string aliquota = (produto.Aliquota == 0 ? "F1" : produto.Aliquota.ToString("N2").Replace(",", ".")); string tipoDescAcresc = (item.Desconto == 0 ? "A$" : "D$"); string valorDescAcresc = (item.Desconto == 0 ? item.Acrescimo.ToString("N2") : item.Desconto.ToString("N2")); string codigoItem = (produto.Controla_lote ? item.Lote + "SL" + item.Sublote : produto.Id.ToString()); retorno = Declaracoes.aCFVenderCompleto_NFCe_Daruma(aliquota, item.Quant.ToString("N2"), item.Valor_unit.ToString("N2").Replace(".", ""), tipoDescAcresc, valorDescAcresc, codigoItem, produto.Ncm, item.Cfop.ToString(), produto.Unidades.Sigla, produto.Descricao, ""); string msg = $@"aCFVenderCompleto_NFCe_Daruma - {Declaracoes.TrataRetorno(retorno)} Aliquita.....: {aliquota} Quant........: {item.Quant} Valor_unit...: {item.Valor_unit.ToString("N2")} Tp. Desc/Acr.: {tipoDescAcresc} Vl. Desc/Acr.: {valorDescAcresc} Cod. Item....: {codigoItem} NCM..........: {produto.Ncm} CFOP.........: {item.Cfop} Unidade......: {produto.Unidades.Sigla} Produto......: {produto.Descricao} "; LogNFCe(msg); if (retorno != 1) { MessageBox.Show("Ocorreu um problema ao emitir a NFC-e. Acione o suporte Doware.", "Erro NFC-e", MessageBoxButton.OK, MessageBoxImage.Exclamation); Declaracoes.tCFCancelar_NFCe_Daruma("", "", "", "", ""); return; } } retorno = Declaracoes.aCFTotalizar_NFCe_Daruma("D%", "0,00"); LogNFCe("aCFTotalizar_NFCe_Daruma - " + Declaracoes.TrataRetorno(retorno)); List <Itens_pagamento> itens_pagamento = itens_pag; foreach (Itens_pagamento item in itens_pagamento) { Formas_pagamento fpg = new Formas_pagamentoController().Find(item.Forma_pagamento_id); retorno = Declaracoes.aCFEfetuarPagamento_NFCe_Daruma(fpg.Descricao, item.Valor.ToString("N2").Replace(".", "")); string msg = $@"aCFEfetuarPagamento_NFCe_Daruma - {Declaracoes.TrataRetorno(retorno)} Condição pgto.....: {fpg.Descricao} Valor.............: {item.Valor.ToString("N2")} "; LogNFCe(msg); if (retorno != 1) { MessageBox.Show("Ocorreu um problema ao emitir a NFC-e. \nAcione o suporte Doware.", "Erro NFC-e", MessageBoxButton.OK, MessageBoxImage.Error); Declaracoes.tCFCancelar_NFCe_Daruma("", "", "", "", ""); return; } } retorno = Declaracoes.tCFEncerrar_NFCe_Daruma("NFC-e emitida via Curae ERP - Doware Sistemas"); LogNFCe($@"tCFEncerrar_NFCe_Daruma - {Declaracoes.TrataRetorno(retorno)}"); if (retorno != 1) { StringBuilder sbCodigo = new StringBuilder(10); StringBuilder sbMensagem = new StringBuilder(1000); Declaracoes.rAvisoErro_NFCe_Daruma(sbCodigo, sbMensagem); LogNFCe($@"tCFEncerrar_NFCe_Daruma - ERRO Codigo.....: {sbCodigo.ToString()} Mensagem...: {sbMensagem.ToString()}"); MessageBox.Show($"A NFC-e não foi autorizada! \nErro: {sbCodigo.ToString()} \nMensagem SEFAZ: {sbMensagem.ToString()}"); retorno = Declaracoes.tCFCancelar_NFCe_Daruma("", "", "", "", ""); LogNFCe($"tCFCancelar_NFCe_Daruma - {Declaracoes.TrataRetorno(retorno)}"); return; } if (retorno == 1) { string diretorio = @"C:\NFC-e\DANFEs\"; var directory = new DirectoryInfo(diretorio); FileInfo danfe = directory.GetFiles() .Where(f => f.Name.Contains("DANFE")) .OrderByDescending(f => f.LastWriteTime) .First(); Parametros parametro = ParametrosController.FindParametro("NF_IMPPADRAO", true); if (parametro == null) { MessageBox.Show("Não foi possível imprimir a DANFE por que o parâmetro de sistema 'NF_IMPPADRAO' não foi informado ou seu valor não pode ser reconhecido. \n\nAcione o suporte Doware.", "NF_IMPPADRAO", MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } if (parametro.Valor == null || parametro.Valor == "") { MessageBox.Show("Não foi possível imprimir a DANFE por que o parâmetro de sistema 'NF_IMPPADRAO' não foi informado ou seu valor não pode ser reconhecido. \n\nAcione o suporte Doware.", "NF_IMPPADRAO", MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } string parametrosSpool = $@"{danfe.FullName};{parametro.Valor}"; File.WriteAllText(Directory.GetCurrentDirectory() + @"\PARAMS.txt", ""); StreamWriter writer = new StreamWriter(Directory.GetCurrentDirectory() + @"\PARAMS.txt"); writer.WriteLine(parametrosSpool); writer.Close(); System.Diagnostics.Process.Start(Directory.GetCurrentDirectory() + @"\Utilitarios\NFCe_Spool.exe"); } }