public static void CorrigirNumeroNFSe(TRegistro_LoteRPS_X_NFES val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_LoteRPS_X_NFES qtb_lote = new TCD_LoteRPS_X_NFES(); try { if (banco == null) { st_transacao = qtb_lote.CriarBanco_Dados(true); } else { qtb_lote.Banco_Dados = banco; } if (val.Nr_notafiscal.HasValue && val.Nr_nfse.HasValue) { if (val.Nr_notafiscal.Value != val.Nr_nfse.Value) { //Verificar se existe NF-e utilizando numero nota CamadaDados.Faturamento.NotaFiscal.TList_RegLanFaturamento lFat = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.Busca(val.Cd_empresa, val.Nr_nfse.Value.ToString(), val.Nr_serie, string.Empty, string.Empty, string.Empty, decimal.Zero, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, decimal.Zero, decimal.Zero, string.Empty, string.Empty, string.Empty, false, string.Empty, string.Empty, string.Empty, 1, string.Empty, qtb_lote.Banco_Dados); if (lFat.Count > 0) { if (lFat[0].St_registro.Trim().ToUpper().Equals("C")) { throw new Exception("Nº de NFS-e <" + val.Nr_nfse.Value.ToString() + "> já esta em uso no sistema."); } else if (new TCD_LoteRPS(qtb_lote.Banco_Dados).BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.st_lote", vOperador = "=", vVL_Busca = "3" }, new Utils.TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from TB_FAT_LoteRPS_X_NFES x " + "where x.cd_empresa = a.cd_empresa " + "and x.id_lote = a.id_lote " + "and x.cd_empresa = '" + lFat[0].Cd_empresa.Trim() + "' " + "and x.nr_lanctofiscal = " + lFat[0].Nr_lanctofiscalstr + ")" } }, "1") != null) { throw new Exception("Nº de NFS-e <" + val.Nr_nfse.Value.ToString() + "> já esta em uso no sistema."); } else { CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.CancelarFaturamento(lFat[0], qtb_lote.Banco_Dados); } } //Buscar Nota Fiscal para alterar numero lFat = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.Busca(val.Cd_empresa, string.Empty, string.Empty, val.Nr_lanctofiscal.Value.ToString(), string.Empty, string.Empty, decimal.Zero, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, string.Empty, string.Empty, string.Empty, string.Empty, "A", string.Empty, string.Empty, string.Empty, decimal.Zero, decimal.Zero, string.Empty, string.Empty, string.Empty, false, string.Empty, string.Empty, string.Empty, 1, string.Empty, qtb_lote.Banco_Dados); if (lFat.Count > 0) { lFat[0].Nr_notafiscal = val.Nr_nfse; CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.AlterarFaturamento(lFat[0], qtb_lote.Banco_Dados); //Buscar sequencia NFSe CamadaDados.Faturamento.Cadastros.TList_CadSequenciaNF lSeq = new CamadaDados.Faturamento.Cadastros.TCD_CadSequenciaNF(qtb_lote.Banco_Dados).Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + lFat[0].Cd_empresa.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.nr_serie", vOperador = "=", vVL_Busca = "'" + lFat[0].Nr_serie.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.cd_modelo", vOperador = "=", vVL_Busca = "'" + lFat[0].Cd_modelo.Trim() + "'" } }, 1, string.Empty); if (lSeq.Count > 0) { if (lSeq[0].Seq_NotaFiscal < val.Nr_nfse.Value) { lSeq[0].Seq_NotaFiscal = val.Nr_nfse.Value; CamadaNegocio.Faturamento.Cadastros.TCN_CadSequenciaNF.Gravar(lSeq[0], qtb_lote.Banco_Dados); } } //Se possuir duplicata alterar Nº Docto CamadaDados.Financeiro.Duplicata.TList_RegLanDuplicata lDup = new CamadaDados.Financeiro.Duplicata.TCD_LanDuplicata(qtb_lote.Banco_Dados).Select( new TpBusca[] { new TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'C'" }, new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fat_notafiscal_x_duplicata x " + "where x.cd_empresa = a.cd_empresa " + "and x.Nr_LanctoDuplicata = a.nr_lancto " + "and x.cd_empresa = '" + val.Cd_empresa.Trim() + "'" + "and x.nr_lanctofiscal = " + val.Nr_lanctofiscal + ") " } }, 1, string.Empty); if (lDup.Count > 0) { qtb_lote.executarSql("update TB_FIN_Duplicata set Nr_docto = '" + val.Nr_nfse.Value.ToString() + "' " + "where cd_empresa = '" + lDup[0].Cd_empresa.Trim() + "' " + "and nr_lancto = " + lDup[0].Nr_lancto.ToString(), null); } } } } if (st_transacao) { qtb_lote.Banco_Dados.Commit_Tran(); } } catch (Exception ex) { if (st_transacao) { qtb_lote.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro corrigir numero NFS-e: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_lote.deletarBanco_Dados(); } } }
private void GerarNFCe() { using (TFVendaItensCargaAvulsa fGerar = new TFVendaItensCargaAvulsa()) { if (fGerar.ShowDialog() == DialogResult.OK) { if (fGerar.lItens != null) { if (fGerar.lItens.Count > 0) { try { //Processar cupom fiscal PDV.TDadosCupom dados = new PDV.TDadosCupom(); //Buscar dados PDV object obj = new CamadaDados.Faturamento.Cadastros.TCD_PontoVenda().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_terminal", vOperador = "=", vVL_Busca = "'" + Utils.Parametros.pubTerminal.Trim() + "'" } }, "a.id_pdv"); if (obj == null) { MessageBox.Show("Não existe PDV cadastrado para o terminal " + Utils.Parametros.pubTerminal, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (new TCD_Sessao().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "=", vVL_Busca = "'A'" }, new TpBusca() { vNM_Campo = "a.id_pdv", vOperador = "=", vVL_Busca = obj.ToString() }, new TpBusca() { vNM_Campo = "a.login", vOperador = "=", vVL_Busca = "'" + Utils.Parametros.pubLogin + "'" } }, "1") == null) { CamadaNegocio.Faturamento.PDV.TCN_Sessao.AbrirSessao( new TRegistro_Sessao() { Id_pdvstr = obj.ToString(), Login = Utils.Parametros.pubLogin }, null); } //Buscar sessao aberta dados.rSessao = CamadaNegocio.Faturamento.PDV.TCN_Sessao.Buscar(obj.ToString(), string.Empty, Utils.Parametros.pubLogin, string.Empty, string.Empty, string.Empty, "'A'", 1, null)[0]; //Buscar Local Arm object LocalArm = new CamadaDados.Estoque.Cadastros.TCD_CadLocalArm_X_Empresa().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + fGerar.Cd_empresa.Trim() + "'" } }, "a.CD_Local"); if (LocalArm == null) { throw new Exception("Não existe Local de armazenagem configurado para Empresa" + fGerar.Cd_empresa.Trim() + "!"); } //Montar Itens Cupom dados.lItens = new List <TRegistro_VendaRapida_Item>(); fGerar.lItens.ForEach(p => dados.lItens.Add(new TRegistro_VendaRapida_Item { Cd_empresa = p.Cd_empresa, Cd_local = LocalArm.ToString(), Cd_produto = p.Cd_produto, Ds_produto = p.Ds_produto, Cd_unidade = p.Cd_unidade, Ds_unidade = p.Ds_unidade, Sigla_unidade = p.Sigla, Cd_condfiscal_produto = p.Cd_condfiscal_produto, Quantidade = p.Quantidade, Vl_subtotal = p.Vl_subtotal, Vl_unitario = p.Vl_unitario, lAbastItens = new CamadaDados.Locacao.TList_AbastItens() { p } })); dados.Cd_clifor = string.Empty; dados.Nm_clifor = string.Empty; dados.CpfCgc = string.Empty; dados.Endereco = string.Empty; dados.Mensagem = string.Empty; dados.lPortador = new List <CamadaDados.Financeiro.Cadastros.TRegistro_CadPortador>(); dados.St_vendacombustivel = false; dados.St_cupomavulso = true; dados.St_agruparProduto = false; dados.St_abastItens = true; TRegistro_NFCe rNFCe = new PDV.TGerenciarCupom().GerarNFCe(dados, false); if (rNFCe != null) { if (!rNFCe.St_contingencia) { using (NFCe.TFGerenciarNFCe fGerNfe = new NFCe.TFGerenciarNFCe()) { fGerNfe.rNFCe = CamadaNegocio.Faturamento.PDV.TCN_NFCe.BuscarNFCe(rNFCe.Cd_empresa, rNFCe.Id_nfcestr, null); fGerNfe.ShowDialog(); } } else { FormRelPadrao.Relatorio Rel = new FormRelPadrao.Relatorio(); Rel.Altera_Relatorio = Altera_Relatorio; BindingSource dts = new BindingSource(); dts.DataSource = new TList_NFCe_Item(); Rel.DTS_Relatorio = dts; // bsItens; //DTS Cupom BindingSource bsNFCe = new BindingSource(); bsNFCe.DataSource = CamadaNegocio.Faturamento.PDV.TCN_NFCe.Buscar(rNFCe.Id_nfcestr, string.Empty, rNFCe.Cd_empresa, string.Empty, string.Empty, string.Empty, string.Empty, decimal.Zero, decimal.Zero, string.Empty, string.Empty, string.Empty, string.Empty, false, string.Empty, string.Empty, 1, null); (bsNFCe.Current as TRegistro_NFCe).lItem = CamadaNegocio.Faturamento.PDV.TCN_NFCe_Item.Buscar((bsNFCe.Current as TRegistro_NFCe).Id_nfcestr, (bsNFCe.Current as TRegistro_NFCe).Cd_empresa, string.Empty, null); NFCe.TGerarQRCode.GerarQRCode2(bsNFCe.Current as TRegistro_NFCe); Rel.Adiciona_DataSource("DTS_NFCE", bsNFCe); //Buscar Empresa BindingSource bsEmpresa = new BindingSource(); bsEmpresa.DataSource = CamadaNegocio.Diversos.TCN_CadEmpresa.Busca(rNFCe.Cd_empresa, string.Empty, string.Empty, null); Rel.Adiciona_DataSource("DTS_EMP", bsEmpresa); //Forma Pagamento BindingSource bsPagto = new BindingSource(); List <TRegistro_MovCaixa> lPagto = new List <TRegistro_MovCaixa>(); new TCD_CaixaPDV().SelectMovCaixa( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_pdv_cupom_x_vendarapida x " + "where x.cd_empresa = a.cd_empresa " + "and x.id_vendarapida = a.id_cupom " + "and x.cd_empresa = '" + (bsNFCe.Current as TRegistro_NFCe).Cd_empresa.Trim() + "' " + "and x.id_cupom = " + (bsNFCe.Current as TRegistro_NFCe).Id_nfcestr + ")" } }, string.Empty).GroupBy(v => v.Tp_portador, (aux, venda) => new { tp_portador = aux, Vl_recebido = venda.Sum(x => x.Vl_recebido), Vl_troco_ch = venda.Sum(x => x.Vl_troco_ch), Vl_troco_dh = venda.Sum(x => x.Vl_troco_dh) }).ToList().ForEach(x => lPagto.Add(new TRegistro_MovCaixa() { Tp_portador = x.tp_portador, Vl_recebido = x.Vl_recebido, Vl_troco_ch = x.Vl_troco_ch, Vl_troco_dh = x.Vl_troco_dh })); CamadaDados.Financeiro.Duplicata.TList_RegLanDuplicata lDup = new CamadaDados.Financeiro.Duplicata.TCD_LanDuplicata().Select( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from TB_PDV_CupomFiscal_X_Duplicata x " + "inner join TB_PDV_Cupom_X_VendaRapida y " + "on x.cd_empresa = y.cd_empresa " + "and x.id_cupom = y.id_vendarapida " + "where x.cd_empresa = a.cd_empresa " + "and x.Nr_Lancto = a.Nr_Lancto " + "and y.cd_empresa = '" + (bsNFCe.Current as TRegistro_NFCe).Cd_empresa.Trim() + "' " + "and y.id_cupom = " + (bsNFCe.Current as TRegistro_NFCe).Id_nfcestr + ")" } }, 1, string.Empty); if (lDup.Count > 0) { lPagto.Add(new TRegistro_MovCaixa() { Tp_portador = "05", Vl_recebido = lDup[0].Vl_documento }); } bsPagto.DataSource = lPagto; Rel.Adiciona_DataSource("DTS_PAGTO", bsPagto); //Parametros Rel.Parametros_Relatorio.Add("TOT_IMP_APROX", (bsNFCe.Current as TRegistro_NFCe).lItem.Sum(p => p.Vl_imposto_Aprox)); Rel.Parametros_Relatorio.Add("QTD_ITENS", (bsNFCe.Current as TRegistro_NFCe).lItem.Count); Rel.Parametros_Relatorio.Add("TOT_SUBTOTAL", (bsNFCe.Current as TRegistro_NFCe).lItem.Sum(p => p.Vl_subtotal)); Rel.Parametros_Relatorio.Add("TOT_ACRESCIMO", (bsNFCe.Current as TRegistro_NFCe).lItem.Sum(p => p.Vl_acrescimo)); Rel.Parametros_Relatorio.Add("TOT_DESCONTO", (bsNFCe.Current as TRegistro_NFCe).lItem.Sum(p => p.Vl_desconto)); Rel.Parametros_Relatorio.Add("ST_VIAEMPRESA", "N"); obj = new CamadaDados.Faturamento.NFCe.TCD_LoteNFCe().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from TB_FAT_Lote_X_NFCe x " + "where x.cd_empresa = a.cd_empresa " + "and x.id_lote = a.id_lote " + "and x.status = '100')" } }, "a.tp_ambiente"); Rel.Parametros_Relatorio.Add("TP_AMBIENTE", obj == null ? string.Empty : obj.ToString()); string dadoscf = CamadaNegocio.Faturamento.PDV.TCN_NFCe.BuscarPlacaKM((bsNFCe.Current as TRegistro_NFCe).Cd_empresa, (bsNFCe.Current as TRegistro_NFCe).Id_nfcestr, null); if (!string.IsNullOrEmpty(dadoscf)) { string[] linhas = dadoscf.Split(new char[] { ':' }); string placa = string.Empty; string km = string.Empty; string frota = string.Empty; string requisicao = string.Empty; string nm_motorista = string.Empty; string cpf_motorista = string.Empty; string media = string.Empty; string virg = string.Empty; foreach (string s in linhas) { string[] colunas = s.Split(new char[] { '/' }); placa += virg + colunas[0]; km += virg + colunas[1]; frota += virg + colunas[2]; requisicao += virg + colunas[3]; nm_motorista += virg + colunas[4]; cpf_motorista += virg + colunas[5]; media += virg + colunas[6]; virg = ","; } if (!string.IsNullOrEmpty(placa)) { Rel.Parametros_Relatorio.Add("PLACA", placa); } if (!string.IsNullOrEmpty(km)) { Rel.Parametros_Relatorio.Add("KM", km); } if (!string.IsNullOrEmpty(media)) { Rel.Parametros_Relatorio.Add("MEDIA", media + " KM/LT"); } if (!string.IsNullOrEmpty(frota)) { Rel.Parametros_Relatorio.Add("FROTA", frota); } if (!string.IsNullOrEmpty(requisicao)) { Rel.Parametros_Relatorio.Add("REQUISICAO", requisicao); } if (!string.IsNullOrEmpty(nm_motorista)) { Rel.Parametros_Relatorio.Add("NM_MOTORISTA", nm_motorista); } if (!string.IsNullOrEmpty(cpf_motorista)) { Rel.Parametros_Relatorio.Add("CPF_MOTORISTA", cpf_motorista); } } Rel.Nome_Relatorio = "DANFE_NFCE"; Rel.NM_Classe = "TFConsultaFrenteCaixa"; Rel.Modulo = "FAT"; Rel.Ident = "DANFE_NFCE"; if (CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVlBool("ST_IMP_DANFE_NFCE_DETALHADA", null)) { BindingSource bsItens = new BindingSource(); bsItens.DataSource = (bsNFCe.Current as TRegistro_NFCe).lItem; Rel.DTS_Relatorio = bsItens; } if (rNFCe.Id_contingencia.HasValue) { if (Rel.Parametros_Relatorio.ContainsKey("ST_VIAEMPRESA")) { Rel.Parametros_Relatorio["ST_VIAEMPRESA"] = "S"; } else { Rel.Parametros_Relatorio.Add("ST_VIAEMPRESA", "S"); } } //Verificar se existe Impressora padrão para o PDV obj = new CamadaDados.Faturamento.Cadastros.TCD_PontoVenda().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_terminal", vOperador = "=", vVL_Busca = "'" + Utils.Parametros.pubTerminal.Trim() + "'" } }, "a.impressorapadrao"); string print = obj == null ? string.Empty : obj.ToString(); if (string.IsNullOrEmpty(print)) { using (Parametros.Diversos.TFListaImpressoras fLista = new Parametros.Diversos.TFListaImpressoras()) { if (fLista.ShowDialog() == DialogResult.OK) { if (!string.IsNullOrEmpty(fLista.Impressora)) { print = fLista.Impressora; } } } } //Imprimir if (!string.IsNullOrEmpty(print)) { Rel.ImprimiGraficoReduzida(print, true, false, null, string.Empty, string.Empty, 1); if ((bsNFCe.Current as TRegistro_NFCe).Id_contingencia.HasValue && (bsNFCe.Current as TRegistro_NFCe).rCfgNFCe.Tp_ambiente_nfce.Equals(1)) { Rel.ImprimiGraficoReduzida(print, true, false, null, string.Empty, string.Empty, 1); } } } } return; } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } else { MessageBox.Show("Não existe venda selecionada para gerar cupom.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } } }
public static string Excluir(TRegistro_PesagemAvulsa val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_PesagemAvulsa qtb_pesagem = new TCD_PesagemAvulsa(); try { if (st_transacao) { st_transacao = qtb_pesagem.CriarBanco_Dados(true); } else { qtb_pesagem.Banco_Dados = banco; } //Verificar se a pesagem possui financeiro if (val.Nr_lancto != null) { //Verificar se a pesagem nao possui financeiro aberto object objfin = new CamadaDados.Financeiro.Duplicata.TCD_LanDuplicata(qtb_pesagem.Banco_Dados).BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.nr_lancto", vOperador = "=", vVL_Busca = val.Nr_lancto.Value.ToString() }, new Utils.TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'C'" } }, "1"); if (objfin != null) { if (objfin.ToString().Trim().Equals("1")) { throw new Exception("Pesagem possui financeiro em aberto.\r\n" + "Para cancelar pesagem necessario antes cancelar o financeiro.\r\n" + "Empresa: " + val.Cd_empresa.Trim() + "\r\n" + "Nº Lancto: " + val.Nr_lancto.Value.ToString()); } } } qtb_pesagem.Excluir(val); if (st_transacao) { qtb_pesagem.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_pesagem.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro cancelar pesagem avulsa: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_pesagem.deletarBanco_Dados(); } } }