public static void PreencherCMINota(TRegistro_LanFaturamento val, TObjetoBanco banco) { //Buscar registro cmi CamadaDados.Fiscal.TList_CadCMI lCmi = CamadaNegocio.Fiscal.TCN_CadCMI.Busca(val.Cd_cmistring, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, false, false, false, false, false, false, banco); if (lCmi.Count > 0) { val.Cminf.Clear(); val.Cminf.Add( new TRegistro_LanFaturamento_CMI() { St_complementar = lCmi[0].St_complementar, St_devolucao = lCmi[0].St_devolucao, St_geraestoque = lCmi[0].St_geraestoque, St_mestra = lCmi[0].St_mestra, St_simplesremessa = lCmi[0].St_simplesremessa, St_compdevimposto = lCmi[0].St_compdevimposto, St_retorno = lCmi[0].St_retorno }); } }
private TList_RegLanFaturamento_Item ObservacaoFiscalItemNf(TRegistro_LanFaturamento rNf, decimal Tam_DadosAdic) { TList_RegLanFaturamento_Item lItens = new TList_RegLanFaturamento_Item(); rNf.ItensNota.ForEach(p => { lItens.Add(p); if (p.Observacao_item.Trim() != string.Empty) { string[] obs = p.Observacao_item.Trim().Split(new char[] { '\n' }); if (Tam_DadosAdic > 0) { foreach (string str in obs) { if (str.Trim() != string.Empty) { if (str.Trim().Length > Convert.ToInt32(Tam_DadosAdic)) { int index = 0; int total_copiar = 0; do { total_copiar = (Convert.ToInt32(Tam_DadosAdic) > str.Trim().Substring(index, str.Trim().Length - index).Length ? str.Trim().Substring(index, str.Trim().Length - index).Length : Convert.ToInt32(Tam_DadosAdic)); lItens.Add(new TRegistro_LanFaturamento_Item() { Ds_produto = str.Trim().Substring(index, total_copiar) }); index += total_copiar; }while (index < str.Trim().Length); } else { lItens.Add(new TRegistro_LanFaturamento_Item() { Ds_produto = str }); } } } } else { foreach (string str in obs) { if (str.Trim() != string.Empty) { lItens.Add(new TRegistro_LanFaturamento_Item() { Ds_produto = str }); } } } } }); return(lItens); }
public static string GravarFaturamento(TRegistro_LanFaturamento val, TRegistro_LanMudanca rMudanca, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_LanMudanca qtb_mud = new TCD_LanMudanca(); try { if (banco == null) { st_transacao = qtb_mud.CriarBanco_Dados(true); } else { qtb_mud.Banco_Dados = banco; } //Gravar Nota Fiscal CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.GravarFaturamento(val, null, qtb_mud.Banco_Dados); //Gravar Mudança_X_NFSe TCN_Mudanca_X_NFSe.Gravar( new TRegistro_Mudanca_X_NFSe() { Cd_empresa = val.Cd_empresa, Nr_LanctoFiscal = val.Nr_lanctofiscal, Id_mudanca = rMudanca.Id_mudanca }, qtb_mud.Banco_Dados); if (st_transacao) { qtb_mud.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_mud.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar faturamento: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_mud.deletarBanco_Dados(); } } }
private void GerarRemessa(TRegistro_CargaAvulsa rCarga) { CamadaDados.Diversos.TList_CfgEmpresa lCfgEmpresa = CamadaNegocio.Diversos.TCN_CfgEmpresa.Buscar(rCarga.Cd_empresa, null); if (lCfgEmpresa.Count.Equals(0)) { MessageBox.Show("Não existe configuração parâmetro Empresa: " + rCarga.Cd_empresa, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } CamadaDados.Faturamento.Pedido.TRegistro_Pedido rPed = null; try { Proc_Commoditties.TProcessaPedidoCargaAvulsa.GerarPedidoCarga(ref rPed, rCarga, lCfgEmpresa[0]); CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Grava_Pedido(rPed, null); //Buscar pedido rPed = CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Busca_Registro_Pedido(rPed.Nr_pedido.ToString(), null); //Buscar itens pedido CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Busca_Pedido_Itens(rPed, false, null); for (int i = 0; i < rCarga.lItens.Count; i++) { rPed.Pedido_Itens[i].lItensCargaAvulsa.Add(rCarga.lItens[i]); } //Gerar Nota Fiscal TRegistro_LanFaturamento rFat = Proc_Commoditties.TProcessaPedFaturar.ProcessaPedFaturar(rPed, false, decimal.Zero); //Gravar Nota Fiscal TCN_LanFaturamento.GravarFaturamento(rFat, null, null); using (srvNFE.TFGerenciarNFe fGerNfe = new srvNFE.TFGerenciarNFe()) { fGerNfe.rNfe = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.BuscarNF(rFat.Cd_empresa, rFat.Nr_lanctofiscalstr, null); fGerNfe.ShowDialog(); } } catch (Exception ex) { if (rPed != null) { CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Deleta_Pedido(rPed, null); } MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void Imprime_NotaFiscal(TRegistro_LanFaturamento rNf, bool St_imprimir, bool St_visualizar, bool St_enviaremail, List <string> Destinatarios, string Titulo, string Mensagem) { LayoutNotaFiscal Relatorio = new LayoutNotaFiscal(); Relatorio.Imprime_NF(rNf, St_imprimir, St_visualizar, St_enviaremail, Destinatarios, Titulo, Mensagem); }
public static TRegistro_LanFaturamento GerarDevolucao(TRegistro_LanFaturamento rNf) { CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor Reg_Clifor = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo(rNf.Cd_clifor, null); #region Nota Fiscal Devolução TRegistro_LanFaturamento rNfDev = new TRegistro_LanFaturamento(); CamadaDados.Faturamento.Cadastros.TList_CadCFGPedidoFiscal lCfgPedido = new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fat_pedido x " + "where x.cfg_pedido = a.cfg_pedido " + "and x.nr_pedido = " + rNf.Nr_pedido.ToString() + ")" }, new TpBusca() { vNM_Campo = "a.tp_fiscal", vOperador = "=", vVL_Busca = "'DV'" } }, 1, string.Empty); if (lCfgPedido.Count > 0) { rNfDev.Cd_empresa = rNf.Cd_empresa; rNfDev.Nr_serie = lCfgPedido[0].Nr_serie; rNfDev.Ds_serienf = lCfgPedido[0].Ds_serienf; rNfDev.Cd_modelo = lCfgPedido[0].Cd_modelo; rNfDev.Cd_movimentacao = lCfgPedido[0].Cd_movto; rNfDev.Cd_cmi = lCfgPedido[0].Cd_cmi; rNfDev.Tp_movimento = lCfgPedido[0].Tp_movimento.ToUpper().Equals("S") ? "E" : "S"; rNfDev.Dt_emissao = CamadaDados.UtilData.Data_Servidor(); rNfDev.Dt_saient = CamadaDados.UtilData.Data_Servidor(); rNfDev.Cd_uf_clifor = rNf.Cd_uf_clifor; rNfDev.Cd_uf_empresa = rNf.Cd_uf_empresa; rNfDev.Cd_condfiscal_clifor = rNf.Cd_condfiscal_clifor; rNfDev.rEndereco = rNf.rEndereco; rNfDev.Cd_clifor = rNf.Cd_clifor; rNfDev.Cd_endereco = rNf.Cd_endereco; rNfDev.Nr_pedido = rNf.Nr_pedido; using (TFNumero_Nota fNumero = new TFNumero_Nota()) { fNumero.Text = "Dados Nota Fiscal Devolução"; fNumero.pCd_empresa = rNf.Cd_empresa; fNumero.pNm_empresa = rNf.Nm_empresa; fNumero.pCd_clifor = rNf.Cd_clifor; fNumero.pNm_clifor = rNf.Nm_clifor; fNumero.pTp_pessoa = rNf.Tp_pessoa; fNumero.pNr_serie = lCfgPedido[0].Nr_serie; fNumero.pDs_serie = lCfgPedido[0].Ds_serienf; fNumero.pCd_modelo = lCfgPedido[0].Cd_modelo; fNumero.pTp_movimento = lCfgPedido[0].Tp_movimento.ToUpper().Equals("S") ? "E" : "S"; fNumero.pNr_notafiscal = string.Empty; fNumero.pDt_emissao = rNfDev.Dt_emissao; fNumero.pDt_saient = rNfDev.Dt_saient; fNumero.pSt_sequenciaauto = lCfgPedido[0].ST_SequenciaAuto.Trim().ToUpper().Equals("S"); fNumero.pCd_movto = rNfDev.Cd_movimentacaostring; fNumero.pCd_cmi = rNfDev.Cd_cmistring; //Buscar insc. estadual origem object obj_inscdestino = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + rNf.Cd_clifor.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.cd_endereco", vOperador = "=", vVL_Busca = "'" + rNf.Cd_endereco.Trim() + "'" } }, "a.insc_estadual"); if (obj_inscdestino != null) { fNumero.pInsc_estadual = obj_inscdestino.ToString(); } fNumero.pTp_nota = (TCN_LanFaturamento.validarST_Nota(fNumero.pTp_movimento, fNumero.pTp_pessoa, Reg_Clifor.St_equiparado_pjbool, Reg_Clifor.St_agropecuariabool).Equals(0) ? "P" : "T"); if (fNumero.ShowDialog() == DialogResult.OK) { rNfDev.Nr_serie = fNumero.pNr_serie; rNfDev.Tp_pessoa = fNumero.pTp_pessoa; rNfDev.Cd_modelo = fNumero.pCd_modelo; rNfDev.Tp_movimento = fNumero.pTp_movimento; rNfDev.Tp_nota = fNumero.pTp_nota; rNfDev.Dt_emissao = fNumero.pDt_emissao; rNfDev.Dt_saient = fNumero.pDt_saient; rNfDev.Obsfiscal = fNumero.pDs_obsfiscal; rNfDev.Dadosadicionais = fNumero.pDs_dadosadic; rNfDev.Chave_acesso_nfe = fNumero.pChave_Acesso_NFe; if (!string.IsNullOrEmpty(fNumero.pNr_notafiscal)) { rNfDev.Nr_notafiscal = decimal.Parse(fNumero.pNr_notafiscal); } else { rNfDev.Nr_notafiscal = null; } rNfDev.St_sequenciaauto = fNumero.pSt_sequenciaauto; if (rNfDev.Cd_cmistring.Trim() != fNumero.pCd_cmi.Trim()) { CamadaDados.Fiscal.TRegistro_CadCMI rCmi = CamadaNegocio.Fiscal.TCN_CadCMI.Busca(fNumero.pCd_cmi, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, false, false, false, false, false, false, null)[0]; rNfDev.Cminf.Add(new TRegistro_LanFaturamento_CMI() { St_compdevimposto = rCmi.St_compdevimposto, St_complementar = rCmi.St_complementar, St_devolucao = rCmi.St_devolucao, St_geraestoque = rCmi.St_geraestoque, St_mestra = rCmi.St_mestra, St_simplesremessa = rCmi.St_simplesremessa, St_retorno = rCmi.St_retorno }); rNfDev.Cd_cmistring = fNumero.pCd_cmi; rNfDev.Ds_cmi = rCmi.Ds_cmi; rNfDev.Tp_duplicata = rCmi.Tp_duplicata; rNfDev.Ds_tpduplicata = rCmi.ds_tpduplicata; } //Dados Frete rNfDev.Cd_transportadora = fNumero.pCd_transportadora; rNfDev.Nm_razaosocialtransp = fNumero.pNm_transportadora; rNfDev.Cpf_transp = fNumero.pCnpjCpfTransp; rNfDev.Cd_enderecotransp = fNumero.pCd_endtransportadora; rNfDev.Especie = fNumero.pEspecie; rNfDev.Placaveiculo = fNumero.pPlacaVeiculo; rNfDev.Freteporconta = fNumero.pTp_frete; rNfDev.Vl_frete = fNumero.pVl_frete; rNfDev.Quantidade = fNumero.pQuantidade; rNfDev.Pesobruto = fNumero.pPsbruto; rNfDev.Pesoliquido = fNumero.pPsliquido; //Dados Exportacao rNfDev.Cd_ufsaidaex = fNumero.pCd_ufsaidaex; rNfDev.Ds_ufsaidaex = fNumero.pDs_ufsaidaex; rNfDev.Uf_saidaex = fNumero.pUf_saidaex; rNfDev.Ds_localex = fNumero.pDs_localex; } else { throw new Exception("Obrigatorio informar numero da nota fiscal de destino."); } } } else { throw new Exception("Não existe configuração fiscal Devolução para tipo de pedido!"); } //Itens da Nota rNf.ItensNota.FindAll(p => p.St_processar).ForEach(item => { //Item da nota fiscal TRegistro_LanFaturamento_Item rItem = new TRegistro_LanFaturamento_Item(); rItem.Cd_empresa = item.Cd_empresa; rItem.Nr_pedido = item.Nr_pedido; rItem.Id_pedidoitem = item.Id_pedidoitem; rItem.Cd_produto = item.Cd_produto; rItem.Cd_local = item.Cd_local; rItem.Cd_condfiscal_produto = item.Cd_condfiscal_produto; rItem.Cd_unidade = item.Cd_unidade; rItem.Cd_unidEst = item.Cd_unidade; rItem.Quantidade = item.Qtd_devolver; rItem.Quantidade_estoque = item.Qtd_devolver; rItem.Vl_subtotal = item.Qtd_devolver * item.Vl_unitario; rItem.Vl_subtotal_estoque = item.Qtd_devolver * item.Vl_unitario; rItem.Vl_unitario = item.Vl_unitario; rItem.Vl_desconto = (item.Vl_desconto / item.Quantidade) * item.Qtd_devolver; rItem.Vl_juro_fin = (item.Vl_juro_fin / item.Quantidade) * item.Qtd_devolver; //Buscar cfop do item CamadaDados.Fiscal.TRegistro_CadCFOP rCfop = null; if (CamadaNegocio.Fiscal.TCN_Mov_X_CFOP.BuscarCFOP(rNfDev.Cd_movimentacaostring, item.Cd_condfiscal_produto, rNfDev.rEndereco.Cd_uf.Trim().Equals("99") ? "I" : rNfDev.Cd_uf_clifor.Trim().Equals(rNfDev.Cd_uf_empresa.Trim()) ? "D" : "F", (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNfDev.Cd_uf_clifor : rNfDev.Cd_uf_empresa), (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNfDev.Cd_uf_empresa : rNfDev.Cd_uf_clifor), rNfDev.Tp_movimento, rNfDev.Cd_condfiscal_clifor, rItem.Cd_empresa, ref rCfop, null)) { rItem.Cd_cfop = rCfop.CD_CFOP; rItem.Ds_cfop = rCfop.DS_CFOP; rItem.St_bonificacao = rCfop.St_bonificacaobool; } else { throw new Exception("Não existe CFOP " + (rNf.rEndereco.Cd_uf.Trim().Equals("99") ? "internacional" : rNf.rEndereco.Cd_uf.Trim().Equals(rNf.rEndereco.Cd_uf.Trim()) ? "dentro estado" : "fora estado") + " configurado para a Movimentação " + rNf.Cd_movimentacaostring + " condição fiscal do produto " + item.Cd_condfiscal_produto); } //Procurar Impostos Estaduais para o Item string vObsFiscal = string.Empty; TList_ImpostosNF lImpUf = TCN_LanFaturamento_Item.procuraImpostosPorUf(rItem.Cd_empresa, (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_clifor : rNf.Cd_uf_empresa), (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_empresa : rNf.Cd_uf_clifor), rNfDev.Cd_movimentacaostring, rNfDev.Tp_movimento, rNfDev.Cd_condfiscal_clifor, rItem.Cd_condfiscal_produto, rItem.Vl_subtotal, rItem.Quantidade, ref vObsFiscal, rNfDev.Dt_emissao, rItem.Cd_produto, rNfDev.Tp_nota, rNfDev.Nr_serie, null); if (lImpUf.Exists(v => v.Imposto.St_ICMS)) { TCN_LanFaturamento_Item.PreencherICMS(lImpUf.Find(v => v.Imposto.St_ICMS), rItem); rNf.Obsfiscal += vObsFiscal.Trim(); } else if (TCN_LanFaturamento_Item.ObrigImformarICMS(rItem.Cd_produto, rNf.Nr_serie, null)) { throw new Exception("Erro: Não existe condição fiscal do ICMS.\r\n" + "Tipo Movimento: " + rNfDev.Tp_movimento + "\r\n" + "Movimentação: " + rNfDev.Cd_movimentacao.ToString() + "\r\n" + "Cond. Fiscal Clifor: " + rNfDev.Cd_condfiscal_clifor.Trim() + "\r\n" + "Cond. Fiscal Produto: " + rItem.Cd_condfiscal_produto.Trim() + "\r\n" + "UF Origem: " + (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Uf_clifor.Trim() : rNf.Uf_empresa.Trim()) + "\r\n" + "UF Destino: " + (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Uf_empresa.Trim() : rNf.Uf_clifor.Trim())); } //Procurar impostos sobre os itens da nota fiscal de destino TCN_LanFaturamento_Item.PreencherOutrosImpostos( TCN_LanFaturamento_Item.procuraCondicaoFiscalImpostos(rNf.Cd_condfiscal_clifor, rItem.Cd_condfiscal_produto, rNfDev.Cd_movimentacaostring, rNfDev.Tp_movimento, rNfDev.Tp_pessoa, rNfDev.Cd_empresa, rNfDev.Nr_serie, rNfDev.Cd_clifor, rItem.Cd_unidEst, rNfDev.Dt_emissao, rItem.Quantidade, rItem.Vl_subtotal, rNfDev.Tp_nota, rNf.Cd_municipioexecservico, null), rItem, rNfDev.Tp_movimento); // Formar Itens a devolver rItem.lNfcompdev.Add(new TRegistro_LanFat_ComplementoDevolucao() { Cd_empresa = item.Cd_empresa, Nr_notafiscal_origem = rNf.Nr_notafiscal, Nr_serie_origem = rNf.Nr_serie, Nr_lanctofiscal_origem = rNf.Nr_lanctofiscal, Id_nfitem_origem = item.Id_nfitem, Qtd_lancto = item.Qtd_devolver, Vl_lancto = item.Quantidade * item.Vl_unitario, Tp_operacao = "D" }); //Observação do Item com os dados das notas de orig rItem.Observacao_item += "NF/Serie Origem Quantidade Valor(R$)\r\n" + (rNf.Nr_notafiscalstr + rNf.Nr_serie).FormatStringDireita(21, ' ') + item.Qtd_devolver.ToString("N3", new System.Globalization.CultureInfo("en-US", true)) + rItem.Sigla_unidade_estoque.Trim().FormatStringDireita(15, ' ') + decimal.Multiply(item.Quantidade, item.Vl_unitario).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringDireita(12, ' ') + "\r\n"; rNfDev.ItensNota.Add(rItem); }); return(rNfDev); #endregion }
public static void DevolverNF(TRegistro_LanFaturamento val) { if (val != null) { //Verificar se Nf é de devolução if (new TCD_LanFat_ComplementoDevolucao().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.NR_LanctoFiscal_Destino", vOperador = "=", vVL_Busca = val.Nr_lanctofiscalstr } }, "1") != null) { MessageBox.Show("Não é possivel devolver NF Devolução!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } using (TFDevolverNF fDev = new TFDevolverNF()) { fDev.rNf = val; if (fDev.ShowDialog() == DialogResult.OK) { if (fDev.rNf != null) { try { TRegistro_LanFaturamento rFat = GerarDevolucao(fDev.rNf); TCN_LanFaturamento.GravarFaturamento(rFat, null, null); //Enviar NFe Destino if (rFat != null) { //Buscar nota fiscal de destino TRegistro_LanFaturamento rNf = TCN_LanFaturamento.BuscarNF(rFat.Cd_empresa, rFat.Nr_lanctofiscalstr, null); //Se for nota propria e NF-e if (rNf.Tp_nota.Trim().ToUpper().Equals("P") && rNf.Cd_modelo.Trim().Equals("55")) { if (MessageBox.Show("Deseja enviar NF-e Devolução para a receita agora?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { try { using (srvNFE.TFGerenciarNFe fGerNfe = new srvNFE.TFGerenciarNFe()) { fGerNfe.rNfe = rNf; fGerNfe.ShowDialog(); } } catch (Exception ex) { MessageBox.Show("Erro enviar NF-e: " + ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } } }
public static void ReprocessarImpostos(TRegistro_LanFaturamento rNf, CamadaDados.Faturamento.CTRC.TRegistro_ConhecimentoFrete rCtrc, CamadaDados.Faturamento.PDV.TRegistro_NFCe rEcf, decimal Vl_TotalNota, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_ImpostosNF qtb_imp = new TCD_ImpostosNF(); try { if (banco == null) { st_transacao = qtb_imp.CriarBanco_Dados(true); } else { qtb_imp.Banco_Dados = banco; } TList_ImpostosNF lImp = new TList_ImpostosNF(); if (rCtrc != null) { //Verificar se o ctrc possui imposto processado object objfiscal = new TCD_ImpostosNF(banco).BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + rCtrc.Cd_empresa.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.nr_lanctoCTR", vOperador = "=", vVL_Busca = rCtrc.Nr_lanctoCTRC.Value.ToString() }, new TpBusca() { vNM_Campo = "a.id_lotefis", vOperador = "is", vVL_Busca = "not null" } }, "1"); if (objfiscal != null) { throw new Exception("Não é permitido reprocessar impostos de conhecimento de frete com registro fiscal processado."); } //Buscar impostos CTRC gravados para excluir lImp = Buscar(string.Empty, rCtrc.Cd_empresa, string.Empty, string.Empty, rCtrc.Nr_lanctoCTRC.Value.ToString(), string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, string.Empty, qtb_imp.Banco_Dados); } //Excluir impostos lImp.ForEach(p => Excluir(p, qtb_imp.Banco_Dados)); //Gravar novos impostos if (rCtrc != null) { rCtrc.lImpostos.ForEach(p => { p.Cd_empresa = rCtrc.Cd_empresa; p.Nr_lanctoctr = rCtrc.Nr_lanctoCTRC; Gravar(p, qtb_imp.Banco_Dados); }); } else if (rNf != null) { rNf.ItensNota.ForEach(p => TCN_LanFaturamento_Item.AlterarFaturamentoItem(p, qtb_imp.Banco_Dados)); } else if (rEcf != null) { rEcf.lItem.ForEach(p => new CamadaDados.Faturamento.PDV.TCD_NFCe_Item(qtb_imp.Banco_Dados).Gravar(p)); } if (st_transacao) { qtb_imp.Banco_Dados.Commit_Tran(); } } catch (Exception ex) { if (st_transacao) { qtb_imp.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro reprocessar impostos: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_imp.deletarBanco_Dados(); } } }
public static bool ExcluirNotaFiscal(TRegistro_LanFaturamento val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_LanFaturamento qtb_nf = new TCD_LanFaturamento(); try { if (banco == null) { st_transacao = qtb_nf.CriarBanco_Dados(true); } else { qtb_nf.Banco_Dados = banco; } //Verificar se NFe e se a mesma foi cancelada junto a receita if (val.Cd_modelo.Trim().Equals("55") && (new CamadaDados.Faturamento.NFE.TCD_LanLoteNFE_X_NotaFiscal(qtb_nf.Banco_Dados).BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.nr_lanctofiscal", vOperador = "=", vVL_Busca = val.Nr_lanctofiscal.ToString() }, new TpBusca() { vNM_Campo = "a.status", vOperador = "in", vVL_Busca = "('100', '110')" }, new TpBusca() { vNM_Campo = "d.tp_ambiente", vOperador = "<>", vVL_Busca = "'2'" //Producao } }, "1") != null)) { throw new Exception("Não é permitido excluir Nota Fiscal Eletronica ACEITA ou DENEGADA pela receita."); } //Verificar se a nota fiscal possui imposto processado object objfiscal = new CamadaDados.Faturamento.NotaFiscal.TCD_ImpostosNF(banco).BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.nr_lanctofiscal", vOperador = "=", vVL_Busca = val.Nr_lanctofiscal.ToString() }, new TpBusca() { vNM_Campo = "a.id_lotefis", vOperador = "is", vVL_Busca = "not null" } }, "1"); if (objfiscal != null) { throw new Exception("Não é permitido excluir nota fiscal que possui registro fiscal processado.\r\n" + "Entre em contato com o departamento contabil para excluir a nota fiscal"); } int mes = 0; int ano = 0; //Verificar se a nota fiscal esta dentro do mes corrente if (val.Tp_movimento.Trim().ToUpper().Equals("E")) { mes = val.Dt_saient.Value.Month; ano = val.Dt_saient.Value.Year; } else { mes = val.Dt_emissao.Value.Month; ano = val.Dt_emissao.Value.Year; } if (CamadaDados.UtilData.Data_Servidor().Month.Equals(val.Tp_movimento.Trim().ToUpper().Equals("E") ? val.Dt_saient.Value.Month : val.Dt_emissao.Value.Month) && CamadaDados.UtilData.Data_Servidor().Year.Equals(val.Tp_movimento.Trim().ToUpper().Equals("E") ? val.Dt_saient.Value.Year : val.Dt_emissao.Value.Year)) { qtb_nf.ExcluirNotaFiscal(val); } else if (Diversos.TCN_Usuario_RegraEspecial.ValidaRegra(Parametros.pubLogin.Trim().ToUpper(), "PERMITIR EXCLUIR NOTA FISCAL FORA PERIODO", banco)) { qtb_nf.ExcluirNotaFiscal(val); } else { throw new Exception("Usuario " + Utils.Parametros.pubLogin.Trim() + " não é tem permissão para excluir nota fiscal com data movimentação fora do mês corrente."); } if (st_transacao) { qtb_nf.Banco_Dados.Commit_Tran(); } return(true); } catch (Exception ex) { if (st_transacao) { qtb_nf.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir nota fiscal: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_nf.deletarBanco_Dados(); } } }
public void Imprime_NF(TRegistro_LanFaturamento listNF, bool St_imprimir, bool St_visualizar, bool St_enviaremail, List <string> Destinatarios, string Titulo, string Mensagem) { TList_CFGImpNF CfgImpNf = TCN_CFGImpNF.Buscar(listNF.Nr_serie, listNF.Cd_modelo, listNF.Cd_empresa, null); if (CfgImpNf.Count > 0) { //Buscar itens da nota listNF.ItensNota = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.Busca(listNF.Cd_empresa, listNF.Nr_lanctofiscalstr, string.Empty, null); //Tratar observacao Fiscal dos itens da nota listNF.ItensNota = this.ObservacaoFiscalItemNf(listNF, CfgImpNf[0].Tam_dadosadic); //ADD A QTD DE LINHAS Q FALTA if (listNF.ItensNota.Count < CfgImpNf[0].Qt_itensnota) { int QtdItemVazio = (Convert.ToInt32(CfgImpNf[0].Qt_itensnota) - listNF.ItensNota.Count); if (listNF.Vl_desconto > 0) { QtdItemVazio -= 1; } for (int i = 0; i < QtdItemVazio; i++) { listNF.ItensNota.Add(new TRegistro_LanFaturamento_Item()); } if (listNF.Vl_desconto > 0) { listNF.ItensNota.Add(new TRegistro_LanFaturamento_Item() { Ds_produto = "Desconto sobre produtos: " + Math.Round(listNF.Vl_desconto, 2) }); } } else { TList_RegLanFaturamento_Item ListaItem = new TList_RegLanFaturamento_Item(); int contador = 0; for (int i = 0; i < listNF.ItensNota.Count; i++) { if (contador == ((Convert.ToInt32(CfgImpNf[0].Qt_itensnota) - 1))) { ListaItem.Add(new TRegistro_LanFaturamento_Item() { Ds_produto = "VALOR A TRANSPORTAR... " + ListaItem.Sum(p => p.Vl_subtotal).ToString("C2", new System.Globalization.CultureInfo("pt-BR", true)) }); for (int x = 0; x < CfgImpNf[0].Qt_linha; x++) { ListaItem.Add(new TRegistro_LanFaturamento_Item()); } ListaItem.Add(new TRegistro_LanFaturamento_Item() { Ds_produto = "VALOR TRANSPORTADO... " + ListaItem.Sum(p => p.Vl_subtotal).ToString("C2", new System.Globalization.CultureInfo("pt-BR", true)) }); //PARA PULAR DE LINHA contador = 1; } contador++; ListaItem.Add(listNF.ItensNota[i]); if (i == (listNF.ItensNota.Count - 1)) { if (CfgImpNf[0].Qt_itensnota > 0) { int QtdItemVazio = (Convert.ToInt32(CfgImpNf[0].Qt_itensnota) - contador); if (listNF.Vl_desconto > 0) { QtdItemVazio -= 1; } for (int x = 0; x < QtdItemVazio; x++) { ListaItem.Add(new TRegistro_LanFaturamento_Item()); } if (listNF.Vl_desconto > 0) { ListaItem.Add(new TRegistro_LanFaturamento_Item() { Ds_produto = "Desconto sobre produtos: " + Math.Round(listNF.Vl_desconto, 2) }); } } } } listNF.ItensNota.Clear(); listNF.ItensNota = ListaItem; } if (listNF.Duplicata.Count == 0) { listNF.Duplicata.Add(new TRegistro_LanDuplicata()); } //ADD AS PARCELAS for (int i = 0; i < listNF.Duplicata[0].Parcelas.Count; i++) { this.Parametros_Relatorio.Add("CDPARCELA" + i, listNF.Duplicata[0].Parcelas[i].Cd_parcela.ToString()); this.Parametros_Relatorio.Add("DTVENCTO" + i, listNF.Duplicata[0].Parcelas[i].Dt_vencto); this.Parametros_Relatorio.Add("VLPARCELA" + i, listNF.Duplicata[0].Parcelas[i].Vl_parcela); } this.reportManager.DataSources.Add("DTS", listNF); Imprime(CfgImpNf[0], listNF.Nr_notafiscal.ToString(), St_imprimir, St_visualizar, St_enviaremail, Destinatarios, Titulo, Mensagem); } }
private void Imprime_Danfe() { FormRelPadrao.Relatorio Danfe = new FormRelPadrao.Relatorio(); Danfe.Altera_Relatorio = Altera_Relatorio; //Buscar NFe TRegistro_LanFaturamento rNfe = TCN_LanFaturamento.BuscarNF((bsNotaFiscal.Current as TRegistro_LanFaturamento).Cd_empresa, (bsNotaFiscal.Current as TRegistro_LanFaturamento).Nr_lanctofiscalstr, null); //Buscar Itens NFe rNfe.ItensNota = TCN_LanFaturamento_Item.Busca(rNfe.Cd_empresa, rNfe.Nr_lanctofiscalstr, string.Empty, null); Danfe.Parametros_Relatorio.Add("VL_IPI", rNfe.ItensNota.Sum(v => v.Vl_ipi)); Danfe.Parametros_Relatorio.Add("VL_ICMS", rNfe.ItensNota.Sum(v => v.Vl_icms + v.Vl_FCP)); Danfe.Parametros_Relatorio.Add("VL_BASEICMS", rNfe.ItensNota.Sum(v => v.Vl_basecalcICMS)); Danfe.Parametros_Relatorio.Add("VL_BASEICMSSUBST", rNfe.ItensNota.Sum(v => v.Vl_basecalcSTICMS)); Danfe.Parametros_Relatorio.Add("VL_ICMSSUBST", rNfe.ItensNota.Sum(v => v.Vl_ICMSST + v.Vl_FCPST)); BindingSource Bin = new BindingSource(); Bin.DataSource = new TList_RegLanFaturamento() { rNfe }; Danfe.Nome_Relatorio = "TFLanFaturamento_Danfe"; Danfe.NM_Classe = "TFLanConsultaNFe"; Danfe.Modulo = "FAT"; Danfe.Ident = "TFLanFaturamento_Danfe"; Danfe.DTS_Relatorio = Bin; //Buscar financeiro da DANFE CamadaDados.Financeiro.Duplicata.TList_RegLanParcela lParc = new CamadaDados.Financeiro.Duplicata.TCD_LanParcela().Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'L'" }, new Utils.TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fin_duplicata x " + "inner join tb_fat_notafiscal_x_duplicata y " + "on x.cd_empresa = y.cd_empresa " + "and x.nr_lancto = y.nr_lanctoduplicata " + "where isnull(x.st_registro, 'A') <> 'C' " + "and x.cd_empresa = a.cd_empresa " + "and x.nr_lancto = a.nr_lancto " + "and y.cd_empresa = '" + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Cd_empresa.Trim() + "' " + "and y.nr_lanctofiscal = " + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Nr_lanctofiscal + ")" } }, 0, string.Empty, "a.dt_vencto, c.nm_clifor", string.Empty); if (lParc.Count == 0) { //Verificar se Nota a nota foi vinculada de um cupom e buscar o Financeiro lParc = new CamadaDados.Financeiro.Duplicata.TCD_LanParcela().Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'L'" }, new Utils.TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fin_duplicata x " + "inner join TB_PDV_CupomFiscal_X_Duplicata y " + "on x.cd_empresa = y.cd_empresa " + "and x.nr_lancto = y.nr_lancto " + "inner join TB_PDV_Cupom_X_VendaRapida k " + "on y.cd_empresa = k.cd_empresa " + "and y.id_cupom = k.id_vendarapida " + "inner join TB_FAT_ECFVinculadoNF z " + "on k.cd_empresa = z.cd_empresa " + "and k.id_cupom = z.id_cupom " + "where isnull(x.st_registro, 'A') <> 'C' " + "and x.cd_empresa = a.cd_empresa " + "and x.nr_lancto = a.nr_lancto " + "and z.cd_empresa = '" + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Cd_empresa.Trim() + "' " + "and z.nr_lanctofiscal = " + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Nr_lanctofiscal + ")" } }, 0, string.Empty, "a.dt_vencto, c.nm_clifor", string.Empty); if (lParc.Count == 0) { //Verificar se Nota foi gerada de uma venda rapida e buscar o Financeiro lParc = new CamadaDados.Financeiro.Duplicata.TCD_LanParcela().Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'L'" }, new Utils.TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fin_duplicata x " + "inner join TB_PDV_CupomFiscal_X_Duplicata y " + "on x.cd_empresa = y.cd_empresa " + "and x.nr_lancto = y.nr_lancto " + "inner join TB_PDV_Pedido_X_VendaRapida k " + "on k.cd_empresa = y.cd_empresa " + "and k.id_vendarapida = y.id_cupom " + "inner join TB_FAT_NotaFiscal z " + "on z.cd_empresa = k.cd_empresa " + "and z.nr_pedido = k.nr_pedido " + "where isnull(x.st_registro, 'A') <> 'C' " + "and x.cd_empresa = a.cd_empresa " + "and x.nr_lancto = a.nr_lancto " + "and z.cd_empresa = '" + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Cd_empresa.Trim() + "' " + "and z.nr_lanctofiscal = " + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Nr_lanctofiscal + ")" } }, 0, string.Empty, "a.dt_vencto, c.nm_clifor", string.Empty); } } if (lParc.Count > 0) { for (int i = 0; i < lParc.Count; i++) { if (i < 12) { Danfe.Parametros_Relatorio.Add("DT_VENCTO" + i.ToString(), lParc[i].Dt_venctostring); Danfe.Parametros_Relatorio.Add("VL_DUP" + i.ToString(), lParc[i].Vl_parcela_padrao); } else { break; } } } //Verificar se existe logo configurada para a empresa object log = new CamadaDados.Diversos.TCD_CadEmpresa().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Cd_empresa.Trim() + "'" } }, "a.logoEmpresa"); if (log != null) { Danfe.Parametros_Relatorio.Add("IMAGEM_RELATORIO", log); } Danfe.Gera_Relatorio(); }
public static string GravarAplicacaoPedido(string CD_Empresa, decimal saldoAplicar, TRegistro_LanFaturamento rNotaFiscal, TObjetoBanco banco) { TCD_LanAplicacaoPedido qtb_aplic = new TCD_LanAplicacaoPedido(); bool pode_liberar = false; try { //Start Transação if (banco == null) { pode_liberar = qtb_aplic.CriarBanco_Dados(true); } else { qtb_aplic.Banco_Dados = banco; } //Gravar Notas Fiscais da Aplicacao if (rNotaFiscal == null) { throw new Exception("Erro processar aplicação. Não existe nota para processar."); } if ((rNotaFiscal.Nr_pedido == null) || (rNotaFiscal.Nr_pedido == 0)) { throw new Exception("ERRO: Não existe pedido informado para a nota fiscal " + rNotaFiscal.Nr_notafiscal.ToString()); } rNotaFiscal.ItensNota.ForEach(p => { if (p.Nr_pedido.Equals(0)) { throw new Exception("ERRO: Não existe pedido informado para o item: " + p.Cd_produto.Trim() + "-" + p.Ds_produto.Trim() + " da nota fiscal " + rNotaFiscal.Nr_notafiscal.ToString()); } if ((p.Id_pedidoitem == null) || (p.Id_pedidoitem == 0)) { throw new Exception("ERRO: Não existe item de pedido informado para o item: " + p.Cd_produto.Trim() + "-" + p.Ds_produto.Trim() + " da nota fiscal " + rNotaFiscal.Nr_notafiscal.ToString()); } TRegistro_EntregaPedido rgent = new TRegistro_EntregaPedido() { Id_entrega = null, Nr_pedido = p.Nr_pedido, Cd_produto = p.Cd_produto, Id_pedidoitem = p.Id_pedidoitem, Qtd_entregue = p.Quantidade_estoque > 0 ? p.Quantidade_estoque : p.Quantidade, Dt_entrega = rNotaFiscal.Dt_saient, Ds_observacao = "ENTREGA GRAVADA AUTOMATICAMENTE PELA APLICACAO" }; rgent.Id_entregastr = TCN_LanEntregaPedido.Gravar(rgent, qtb_aplic.Banco_Dados); //ADICIONAR A ENTREGA NA NOTAITEM PARA SER UTILIZADA NO PROCESSAMENTO DA NOTA //QUANDO FOR APLICACAO A ENTREGA A SER CUMPRIDA OBRIGATORIAMENTE SERA A GRAVADA ACIMA E NAO OUTRAS COM SALDO DISPONIVEL p.lEntrega = new TList_EntregaPedido(); p.lEntrega.Add(rgent); }); //Grava Nota Fiscal //gravar taxas de deposito separado da nota string retorno = TCN_LanFaturamento.GravarFaturamento(rNotaFiscal, false, null, qtb_aplic.Banco_Dados); //Para cada item da nota fiscal, gravar um registro aplicacao rNotaFiscal.ItensNota.ForEach(p => { if (p.rEstoque == null) { throw new Exception("Aplicação não pode ser processada. Não foi possivel gerar estoque."); } p.lTicketAplicar.ForEach(v => { TRegistro_LanAplicacaoPedido val = new TRegistro_LanAplicacaoPedido(); //Gravar Aplicação val.Cd_empresa = p.Cd_empresa; val.Id_ticket = v.Id_ticket.Value; val.Tp_pesagem = v.Tp_pesagem; val.Nr_pedido = p.Nr_pedido; val.Cd_produto = p.Cd_produto; val.Id_pedidoitem = p.Id_pedidoitem.Value; val.Id_lanctoestoque = p.rEstoque.Id_lanctoestoque; val.Qtd_aplicado = v.Ps_Aplicar; val.Vl_unitario = TCN_CadConvUnidade.ConvertUnid(v.Cd_unid_produto, v.Cd_unid_contrato, v.Vl_unit_contrato, 7, qtb_aplic.Banco_Dados); val.Vl_subtotal = Math.Round(v.Ps_Aplicar * val.Vl_unitario, 2); val.Id_aplicacao = null; val.Id_autoriz = v.Id_autoriz; string retorno_aplicacao = qtb_aplic.Gravar(val); retorno = retorno + "|" + retorno_aplicacao; val.Id_aplicacao = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno_aplicacao, "@P_ID_APLICACAO")); //Gravar Aplicação X Nota Fiscal retorno = retorno + "|" + TCN_LanAplicacao_NotaFiscal.GravarAplicacaoXNotaFiscal( new TRegistro_LanAplicacao_NotaFiscal() { Cd_empresa = val.Cd_empresa, Id_aplicacao = val.Id_aplicacao, Id_nfitem = p.Id_nfitem, Nr_lanctofiscal = p.Nr_lanctofiscal }, qtb_aplic.Banco_Dados); }); //Gravar Movimento Deposito TCN_MovDeposito.GravarMovDeposito(new TRegistro_MovDeposito() { Id_Movto = 0, Nr_Pedido = p.Nr_pedido, CD_Produto = p.Cd_produto, CD_Empresa = p.Cd_empresa, Id_LanctoEstoque = p.rEstoque.Id_lanctoestoque, Id_pedidoitem = p.Id_pedidoitem.Value }, qtb_aplic.Banco_Dados); //Gravar Pesagem GMO CamadaNegocio.Graos.TCN_LanRoyaltiesGMO.GravaPesagemGMO(p, rNotaFiscal.Tp_movimento, qtb_aplic.Banco_Dados); //Contrato Entrada a Fixar TRegistro_CadCFGPedido rCfg = new TCD_CadCFGPedido(qtb_aplic.Banco_Dados).Select( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fat_pedido x " + "where x.cfg_pedido = a.cfg_pedido " + "and x.nr_pedido = " + p.Nr_pedido.ToString() + ")" } }, 1, string.Empty)[0]; }); if (pode_liberar) { qtb_aplic.Banco_Dados.Commit_Tran(); } return(retorno); } catch (Exception ex) { if (pode_liberar) { qtb_aplic.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar aplicação: " + ex.Message.Trim()); } finally { if (pode_liberar) { qtb_aplic.deletarBanco_Dados(); } } }
public static TRegistro_LanFaturamento ProcessarAplicPsDiversos(List <TRegistro_PesagemDiversas> lTicket) { if (lTicket.Count > 0) { using (TFPedidoPsDiversa fPed = new TFPedidoPsDiversa()) { fPed.pTp_movimento = lTicket[0].Tp_movimento; fPed.pCd_empresa = lTicket[0].Cd_empresa; fPed.pNm_empresa = lTicket[0].Nm_empresa; fPed.pCd_clifor = lTicket[0].Cd_clifor; fPed.pNm_clifor = lTicket[0].Nm_clifor; fPed.pCd_produto = lTicket[0].Cd_produto; fPed.pDs_produto = lTicket[0].Ds_produto; fPed.pCd_unidade = lTicket[0].Cd_unidade; fPed.pSg_produto = lTicket[0].Sg_produto; string und_balanca = CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVL_String_Empresa("UND_BALANCA", lTicket[0].Cd_empresa); if (!string.IsNullOrEmpty(und_balanca)) { fPed.pQuantidade = TCN_CadConvUnidade.ConvertUnid(und_balanca, lTicket[0].Cd_unidade, lTicket.Sum(p => p.Ps_liquidobruto), 3, null); } else { fPed.pQuantidade = lTicket.Sum(p => p.Ps_liquidobruto); } if (fPed.ShowDialog() == System.Windows.Forms.DialogResult.OK) { CamadaDados.Faturamento.Pedido.TRegistro_Pedido rPed = new CamadaDados.Faturamento.Pedido.TRegistro_Pedido(); try { rPed.TP_Movimento = lTicket[0].Tp_movimento; rPed.CD_Empresa = fPed.pCd_empresa; rPed.CFG_Pedido = fPed.cfg_pedido; rPed.CD_Clifor = fPed.pCd_clifor; rPed.CD_Endereco = fPed.cd_endereco; rPed.DT_Pedido = CamadaDados.UtilData.Data_Servidor(); rPed.Pedido_Itens.Add(new CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item() { Cd_produto = fPed.pCd_produto, Cd_unidade_valor = fPed.cd_unidade, Cd_local = fPed.cd_local, Quantidade = fPed.quantidade, Vl_unitario = fPed.vl_unitario, Vl_subtotal = fPed.vl_subtotal }); CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Grava_Pedido(rPed, null); //Buscar pedido rPed = TCN_Pedido.Busca_Registro_Pedido(rPed.Nr_pedido.ToString(), null); //Buscar itens pedido TCN_Pedido.Busca_Pedido_Itens(rPed, false, null); TRegistro_LanFaturamento rNota = Proc_Commoditties.TProcessaPedFaturar.ProcessaPedFaturar(rPed, false, decimal.Zero); rNota.Placaveiculo = lTicket[0].Placacarreta; rNota.Pesobruto = lTicket.Sum(p => p.Ps_bruto); rNota.Pesoliquido = lTicket.Sum(p => p.Ps_liquidobruto); rNota.Cd_transportadora = lTicket[0].Cd_transp; rNota.Nm_razaosocialtransp = lTicket[0].Nm_transp; return(rNota); } catch (Exception ex) { TCN_Pedido.Deleta_Pedido(rPed, null); throw new Exception(ex.Message.Trim()); } } else { return(null); } } } else { return(null); } }
public static TRegistro_LanFaturamento ProcessarNF(TRegistro_Pedido rPedido) { //Buscar Configuração Fiscal Pedido TList_CadCFGPedidoFiscal lCfgPed = new TCD_CadCFGPedidoFiscal().Select( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cfg_pedido", vOperador = "=", vVL_Busca = "'" + rPedido.CFG_Pedido + "'" }, new TpBusca() { vNM_Campo = "a.tp_fiscal", vOperador = "=", vVL_Busca = "'RT'" } }, 1, string.Empty); if (lCfgPed.Count > 0) { //Buscar Notas Vendas Sem Remessa TList_RegLanFaturamento lNFV = new TCD_LanFaturamento().Select( new TpBusca[] { new TpBusca() { vNM_Campo = "a.nr_pedido", vOperador = "=", vVL_Busca = rPedido.Nr_pedido.ToString() }, new TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'C'" }, new TpBusca() { vNM_Campo = "isnull(cmi.st_remessatransp, 'N')", vOperador = "<>", vVL_Busca = "'S'" }, new TpBusca() { vNM_Campo = "a.nr_lanctofiscalRT", vOperador = "is", vVL_Busca = "null" } }, 0, string.Empty); if (lNFV.Count.Equals(0)) { throw new Exception("Pedido não possui nota venda disponivel para gerar REMESSA TRANSPORTE."); } TRegistro_LanFaturamento rNF = null; if (lNFV.Count > 1) { using (TFListaNF fNF = new TFListaNF()) { fNF.lFat = lNFV; if (fNF.ShowDialog() == System.Windows.Forms.DialogResult.OK) { if (fNF.rFat != null) { rNF = fNF.rFat; } } } } else { rNF = lNFV[0]; } if (rNF == null) { throw new Exception("Obrigório selecionar nota fiscal para gerar REMESSA TRANSPORTE."); } TRegistro_LanFaturamento ret = new TRegistro_LanFaturamento(); ret.Cd_empresa = rNF.Cd_empresa; ret.Cd_clifor = !string.IsNullOrEmpty(rPedido.Cd_cliforent) ? rPedido.Cd_cliforent : rNF.Cd_clifor; ret.Nm_clifor = !string.IsNullOrEmpty(rPedido.Nm_cliforent) ? rPedido.Nm_cliforent : rNF.Nm_clifor; ret.Cd_endereco = !string.IsNullOrEmpty(rPedido.Cd_enderecoent) ? rPedido.Cd_enderecoent : rNF.Cd_endereco; ret.Cd_cmi = lCfgPed[0].Cd_cmi; ret.Cd_movimentacao = lCfgPed[0].Cd_movto; ret.lCFGFiscal = lCfgPed; ret.Cd_uf_empresa = rNF.Cd_uf_empresa; ret.Uf_empresa = rNF.Uf_empresa; ret.Uf_clifor = rNF.Uf_clifor; ret.Cd_condfiscal_clifor = !string.IsNullOrEmpty(rPedido.Cd_cliforent) ? rPedido.Cd_condfiscalent : rNF.Cd_condfiscal_clifor; ret.Cd_uf_clifor = !string.IsNullOrEmpty(rPedido.Cd_cliforent) ? rPedido.Cd_uf_ent : rNF.Cd_uf_clifor; ret.Nr_pedido = rNF.Nr_pedido; ret.Tp_movimento = rNF.Tp_movimento; ret.Tp_pessoa = rNF.Tp_pessoa; ret.Tp_nota = rNF.Tp_nota; ret.Nr_serie = lCfgPed[0].Nr_serie; ret.Cd_modelo = lCfgPed[0].Cd_modelo; ret.St_sequenciaauto = lCfgPed[0].ST_SequenciaAuto.Trim().ToUpper().Equals("S"); ret.Dt_emissao = CamadaDados.UtilData.Data_Servidor(); ret.Dt_saient = ret.Dt_emissao; ret.Dadosadicionais = ProcessaAplicacao.BuscarObsMov("D", ret.Cd_movimentacaostring, rNF.Uf_clifor.Trim().Equals(rNF.Uf_empresa.Trim())); ret.Obsfiscal = ProcessaAplicacao.BuscarObsMov("F", ret.Cd_movimentacaostring, rNF.Uf_clifor.Trim().Equals(rNF.Uf_empresa.Trim())); ret.Freteporconta = rNF.Tp_frete; ret.Cd_transportadora = rNF.Cd_transportadora; ret.Nm_razaosocialtransp = rNF.Nm_razaosocialtransp; ret.Cpf_transp = rNF.Cpf_transp; ret.Placaveiculo = rNF.Placaveiculo; //Abrir tela para capturar dados da nota fiscal using (NumeroNota.TFNumero_Nota fNumero = new NumeroNota.TFNumero_Nota()) { fNumero.pCd_empresa = ret.Cd_empresa; fNumero.pNm_empresa = ret.Nm_empresa; fNumero.pCd_clifor = ret.Cd_clifor; fNumero.pNm_clifor = ret.Nm_clifor; fNumero.pTp_pessoa = ret.Tp_pessoa; fNumero.pTp_movimento = ret.Tp_movimento; fNumero.pTp_nota = ret.Tp_nota; fNumero.pChave_Acesso_NFe = ret.Chave_acesso_nfe; fNumero.pNr_serie = ret.Nr_serie; fNumero.pDs_serie = ret.Ds_serienf; fNumero.pCd_modelo = ret.Cd_modelo; fNumero.pDt_emissao = ret.Dt_emissao; fNumero.pST_NotaUnica = false; fNumero.pNr_notafiscal = ret.Nr_notafiscal.HasValue ? ret.Nr_notafiscal.Value.ToString() : string.Empty; fNumero.pDt_saient = ret.Dt_saient; fNumero.pDs_dadosadic = ret.Dadosadicionais; fNumero.pDs_obsfiscal = ret.Obsfiscal; fNumero.pSt_sequenciaauto = ret.St_sequenciaauto; fNumero.pCd_movto = ret.Cd_movimentacaostring; fNumero.pCd_cmi = ret.Cd_cmistring; fNumero.pSt_servico = lCfgPed.Count > 0 ? lCfgPed[0].St_servico : false; if (ret.Tp_nota.Trim().ToUpper().Equals("T")) { //Buscar inscricao estadual do clifor da nota object obj_insc = new TCD_CadEndereco().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + ret.Cd_clifor.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.cd_endereco", vOperador = "=", vVL_Busca = "'" + ret.Cd_endereco.Trim() + "'" } }, "a.insc_estadual"); fNumero.pInsc_estadual = obj_insc == null ? string.Empty : obj_insc.ToString(); } fNumero.pTp_frete = ret.Freteporconta; fNumero.pCd_transportadora = ret.Cd_transportadora; fNumero.pNm_transportadora = ret.Nm_razaosocialtransp; fNumero.pCnpjCpfTransp = ret.Cpf_transp; fNumero.pPlacaVeiculo = ret.Placaveiculo; fNumero.pVl_frete = rNF.ItensNota.Sum(p => p.Vl_freteitem); if (fNumero.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ret.Chave_acesso_nfe = fNumero.pChave_Acesso_NFe; if (!string.IsNullOrEmpty(fNumero.pNr_notafiscal)) { ret.Nr_notafiscal = decimal.Parse(fNumero.pNr_notafiscal); } else { ret.Nr_notafiscal = null; } ret.Nr_serie = fNumero.pNr_serie; ret.Cd_modelo = fNumero.pCd_modelo; ret.Dt_emissao = fNumero.pDt_emissao; ret.Dt_saient = fNumero.pDt_saient; ret.Obsfiscal = fNumero.pDs_obsfiscal; ret.Dadosadicionais = fNumero.pDs_dadosadic; ret.Cd_transportadora = fNumero.pCd_transportadora; ret.Cd_enderecotransp = fNumero.pCd_endtransportadora; ret.Nm_razaosocialtransp = fNumero.pNm_transportadora; ret.Cpf_transp = fNumero.pCnpjCpfTransp; ret.Placaveiculo = fNumero.pPlacaVeiculo; ret.Freteporconta = fNumero.pTp_frete; ret.Especie = fNumero.pEspecie; ret.Quantidade = fNumero.pQuantidade; ret.Pesobruto = fNumero.pPsbruto; ret.Pesoliquido = fNumero.pPsliquido; ret.Vl_frete = fNumero.pVl_frete; ret.Cd_municipioexecservico = fNumero.pCd_municipioexecservico; ret.Ds_municipioexecservico = fNumero.pNm_municipioexecservico; //Preencher objeto CMI CamadaDados.Fiscal.TRegistro_CadCMI rCmi = CamadaNegocio.Fiscal.TCN_CadCMI.Busca(fNumero.pCd_cmi, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, false, false, false, false, false, false, null)[0]; ret.Cminf.Add(new TRegistro_LanFaturamento_CMI() { St_compdevimposto = rCmi.St_compdevimposto, St_complementar = rCmi.St_complementar, St_devolucao = rCmi.St_devolucao, St_geraestoque = rCmi.St_geraestoque, St_mestra = rCmi.St_mestra, St_simplesremessa = rCmi.St_simplesremessa, St_retorno = rCmi.St_retorno, St_remessatransp = "S" }); ret.Cd_cmistring = fNumero.pCd_cmi; ret.Ds_cmi = rCmi.Ds_cmi; ret.Tp_duplicata = rCmi.Tp_duplicata; ret.Ds_tpduplicata = rCmi.ds_tpduplicata; } else { throw new Exception("Obrigatorio informar numero da nota fiscal."); } } if (ret.Nr_notafiscal.HasValue) { TRegistro_LanFaturamento rFat = TCN_LanFaturamento.existeNumeroNota(ret.Nr_notafiscal.ToString(), ret.Nr_serie, ret.Cd_empresa, ret.Cd_clifor, string.Empty, ret.Tp_nota, null); if (rFat != null) { if (rFat.St_registro.Trim().ToUpper().Equals("C")) { throw new Exception("Nota Fiscal Nº " + rFat.Nr_notafiscal.ToString() + " ja existe no sistema e se encontra cancelada.\r\n" + "Para poder utilizar o mesmo numero e necessario excluir a nota fiscal cancelada.\r\n" + "Dica: Menu FATURAMENTO->Emissão de Notas Fiscais / NFe, localize a nota fiscal cancelada e exclua a mesma.\r\n" + "Obs.: Para excluir a nota fiscal cancelada é necessario que o usuario tenha permissão."); } else { throw new Exception("Nota Fiscal Nº " + rFat.Nr_notafiscal.ToString() + " ja existe no sistema e se encontra ativa.\r\n" + "Não é permitido gerar nota fiscal com mesmo numero."); } } } TCN_LanFaturamento_Item.Busca(rNF.Cd_empresa, rNF.Nr_lanctofiscal.Value.ToString(), string.Empty, null).ForEach(item => { TRegistro_LanFaturamento_Item rItem = new TRegistro_LanFaturamento_Item(); rItem.Cd_empresa = rNF.Cd_empresa; rItem.Cd_produto = item.Cd_produto; rItem.Cd_local = item.Cd_local; rItem.Cd_condfiscal_produto = item.Cd_condfiscal_produto; rItem.Cd_unidade = item.Cd_unidade; rItem.Cd_unidEst = item.Cd_unidEst; rItem.Nr_pedido = item.Nr_pedido; rItem.Id_pedidoitem = item.Id_pedidoitem; rItem.Quantidade = item.Quantidade; rItem.Quantidade_estoque = item.Quantidade; rItem.Vl_subtotal = item.Vl_subtotal; rItem.Vl_subtotal_estoque = item.Vl_subtotal; rItem.Vl_unitario = item.Vl_unitario; rItem.Pc_desconto = item.Pc_desconto; rItem.Vl_desconto = item.Vl_desconto; rItem.Vl_freteitem = item.Vl_freteitem; rItem.Pc_juro_fin = item.Pc_juro_fin; rItem.Vl_juro_fin = item.Vl_juro_fin; rItem.Vl_outrasdesp = item.Vl_outrasdesp; rItem.Pc_imposto_Aprox = item.Pc_imposto_Aprox; rItem.Observacao_item = item.Observacao_item; //Buscar cfop do item TRegistro_CadCFOP rCfop = null; if (TCN_Mov_X_CFOP.BuscarCFOP(ret.Cd_movimentacaostring, item.Cd_condfiscal_produto, ret.Cd_uf_clifor.Trim().Equals("99") ? "I" : ret.Cd_uf_clifor.Trim().Equals(ret.Cd_uf_empresa.Trim()) ? "D" : "F", (ret.Tp_movimento.Trim().ToUpper().Equals("E") ? ret.Cd_uf_clifor : ret.Cd_uf_empresa), (ret.Tp_movimento.Trim().ToUpper().Equals("E") ? ret.Cd_uf_empresa : ret.Cd_uf_clifor), ret.Tp_movimento, ret.Cd_condfiscal_clifor, ret.Cd_empresa, ref rCfop, null)) { rItem.Cd_cfop = rCfop.CD_CFOP; rItem.Ds_cfop = rCfop.DS_CFOP; rItem.St_bonificacao = rCfop.St_bonificacaobool; } else { throw new Exception("Não existe CFOP " + (ret.Cd_uf_clifor.Trim().Equals("99") ? "I" : ret.Cd_uf_clifor.Trim().Equals(ret.Cd_uf_empresa.Trim()) ? "dentro estado" : "fora estado") + " configurado para a Movimentação " + ret.Cd_movimentacaostring + " condição fiscal do produto " + item.Cd_condfiscal_produto); } //Procurar Impostos Estaduais para o Item string vObsFiscal = string.Empty; TList_ImpostosNF lImpUf = TCN_LanFaturamento_Item.procuraImpostosPorUf(ret.Cd_empresa, (ret.Tp_movimento.Trim().ToUpper().Equals("E") ? ret.Cd_uf_clifor : ret.Cd_uf_empresa), (ret.Tp_movimento.Trim().ToUpper().Equals("E") ? ret.Cd_uf_empresa : ret.Cd_uf_clifor), ret.Cd_movimentacaostring, ret.Tp_movimento, ret.Cd_condfiscal_clifor, rItem.Cd_condfiscal_produto, rItem.Vl_subtotal, rItem.Quantidade, ref vObsFiscal, ret.Dt_emissao, rItem.Cd_produto, ret.Tp_nota, ret.Nr_serie, null); if (lImpUf.Exists(v => v.Imposto.St_ICMS)) { TCN_LanFaturamento_Item.PreencherICMS(lImpUf.Find(v => v.Imposto.St_ICMS), rItem); ret.Obsfiscal += vObsFiscal.Trim(); } else if (TCN_LanFaturamento_Item.ObrigImformarICMS(rItem.Cd_produto, ret.Nr_serie, null)) { throw new Exception("Erro: Não existe condição fiscal do ICMS.\r\n" + "Tipo Movimento: " + ret.Tipo_movimento.Trim() + "\r\n" + "Movimentação: " + ret.Cd_movimentacao.ToString() + "\r\n" + "Cond. Fiscal Clifor: " + ret.Cd_condfiscal_clifor.Trim() + "\r\n" + "Cond. Fiscal Produto: " + rItem.Cd_condfiscal_produto.Trim() + "\r\n" + "UF Origem: " + (ret.Tp_movimento.Trim().ToUpper().Equals("E") ? ret.Uf_clifor.Trim() : ret.Uf_empresa.Trim()) + "\r\n" + "UF Destino: " + (ret.Tp_movimento.Trim().ToUpper().Equals("E") ? ret.Uf_empresa.Trim() : ret.Uf_clifor.Trim())); } //Procurar impostos sobre os itens da nota fiscal de destino TCN_LanFaturamento_Item.PreencherOutrosImpostos( TCN_LanFaturamento_Item.procuraCondicaoFiscalImpostos(ret.Cd_condfiscal_clifor, rItem.Cd_condfiscal_produto, ret.Cd_movimentacaostring, ret.Tp_movimento, ret.Tp_pessoa, ret.Cd_empresa, ret.Nr_serie, ret.Cd_clifor, rItem.Cd_unidEst, ret.Dt_emissao, rItem.Quantidade, rItem.Vl_subtotal, ret.Tp_nota, ret.Cd_municipioexecservico, null), rItem, ret.Tp_movimento); string obs_ret = string.Empty; string linha = string.Empty; if (rItem.Vl_ICMSRetido > decimal.Zero) { obs_ret += linha + "ICMS RETIDO " + rItem.Vl_ICMSRetido.ToString("C2", new System.Globalization.CultureInfo("pt-BR")); linha = "\r\n"; } if (rItem.Vl_retidoCofins > decimal.Zero) { obs_ret += linha + "COFINS RETIDO " + rItem.Vl_retidoCofins.ToString("C2", new System.Globalization.CultureInfo("pt-BR")); linha = "\r\n"; } if (rItem.Vl_retidoCSLL > decimal.Zero) { obs_ret += linha + "CSLL RETIDO " + rItem.Vl_retidoCSLL.ToString("C2", new System.Globalization.CultureInfo("pt-BR")); linha = "\r\n"; } if (rItem.Vl_retidoFunrural > decimal.Zero) { obs_ret += linha + "FUNRURAL RETIDO " + rItem.Vl_retidoFunrural.ToString("C2", new System.Globalization.CultureInfo("pt-BR")); linha = "\r\n"; } if (rItem.Vl_retidoINSS > decimal.Zero) { obs_ret += linha + "INSS RETIDO " + rItem.Vl_retidoINSS.ToString("C2", new System.Globalization.CultureInfo("pt-BR")); linha = "\r\n"; } if (rItem.Vl_retidoIRRF > decimal.Zero) { obs_ret += linha + "IRFF RETIDO " + rItem.Vl_retidoIRRF.ToString("C2", new System.Globalization.CultureInfo("pt-BR")); linha = "\r\n"; } if (rItem.Vl_retidoPIS > decimal.Zero) { obs_ret += linha + "PIS RETIDO " + rItem.Vl_retidoPIS.ToString("C2", new System.Globalization.CultureInfo("pt-BR")); linha = "\r\n"; } if (rItem.Vl_retidoSenar > decimal.Zero) { obs_ret += linha + "SENAR RETIDO " + rItem.Vl_retidoSenar.ToString("C2", new System.Globalization.CultureInfo("pt-BR")); linha = "\r\n"; } if (!string.IsNullOrEmpty(obs_ret)) { ret.Obsfiscal += (string.IsNullOrEmpty(ret.Obsfiscal) ? string.Empty : "\r\n") + obs_ret.Trim(); } ret.ItensNota.Add(rItem); }); ret.rNFVendaRT = rNF; return(ret); } else { throw new Exception("Não existe configuração fiscal pedido para gerar REMESSA TRANSPORTE."); } }
private void ProcDevAquisicao() { if (bsLoteSemente.Current != null) { try { //Processar objeto devolucao/aquisicao CamadaDados.Graos.TRegistro_DevAquisicao rDevAquisicao = Proc_Commoditties.TProcessaDevAquisicao.ProcessarDevAquisicao(Cd_empresa, (bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Cd_amostra, CamadaNegocio.Estoque.Cadastros.TCN_CadConvUnidade.ConvertUnid( (bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Cd_unidade, (bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Cd_unidamostra, Qtd_nota, 3, null)); if (rDevAquisicao != null) { CamadaNegocio.Graos.TCN_DevAquisicao.GravarDevAquisicao(rDevAquisicao, null); if (MessageBox.Show("Devolução/Aquisição realizada com sucesso.\r\nDeseja imprimir as notas fiscais?\r\n" + "Obs.: Somente serão impressas as notas fiscais proprias e não NF-e.", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { //Buscar nota de origem TRegistro_LanFaturamento rNf = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.BuscarNF(rDevAquisicao.rNfOrigem.Cd_empresa, rDevAquisicao.rNfOrigem.Nr_lanctofiscalstr, null); if (rNf.Tp_nota.Trim().ToUpper().Equals("P") && (!rNf.Cd_modelo.Trim().Equals("55"))) { //Chamar tela de impressao para a nota fiscal //somente se for nota propria using (FormRelPadrao.TFGerenciadorImpressao fImp = new FormRelPadrao.TFGerenciadorImpressao()) { fImp.St_enabled_enviaremail = true; fImp.pCd_clifor = rNf.Cd_clifor; fImp.pMensagem = "NOTA FISCAL DEVOLUÇÃO Nº" + rNf.Nr_notafiscal.ToString(); if ((fImp.ShowDialog() == DialogResult.OK) || (fImp.pSt_enviaremail)) { new FormRelPadrao.LayoutNotaFiscal().Imprime_NF(rNf, fImp.pSt_imprimir, fImp.pSt_visualizar, fImp.pSt_enviaremail, fImp.pDestinatarios, "NOTA FISCAL DEVOLUÇÃO Nº " + rNf.Nr_notafiscal.ToString(), fImp.pDs_mensagem); } } } //Buscar nota fiscal de destino rNf = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.BuscarNF(rDevAquisicao.rNfDestino.Cd_empresa, rDevAquisicao.rNfDestino.Nr_lanctofiscalstr, null); if (rNf.Tp_nota.Trim().ToUpper().Equals("P") && (!rNf.Cd_modelo.Trim().Equals("55"))) { //Chamar tela de impressao para a nota fiscal //somente se for nota propria using (FormRelPadrao.TFGerenciadorImpressao fImp = new FormRelPadrao.TFGerenciadorImpressao()) { fImp.St_enabled_enviaremail = true; fImp.pCd_clifor = rNf.Cd_clifor; fImp.pMensagem = "NOTA FISCAL AQUISIÇÃO Nº" + rNf.Nr_notafiscal.ToString(); if ((fImp.ShowDialog() == DialogResult.OK) || (fImp.pSt_enviaremail)) { new FormRelPadrao.LayoutNotaFiscal().Imprime_NF(rNf, fImp.pSt_imprimir, fImp.pSt_visualizar, fImp.pSt_enviaremail, fImp.pDestinatarios, "NOTA FISCAL AQUISIÇÃO Nº " + rNf.Nr_notafiscal.ToString(), fImp.pDs_mensagem); } } } } } } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }