public string GravarOrcamento(TRegistro_Orcamento val) { if (val == null) { return("Parametro com valor NULL"); } BancoDados.TObjetoBanco banco = new BancoDados.TObjetoBanco(); try { //TConexao.BuscarParametros(); banco.CriarConexao("MASTER", "localhost", "ALIANCE_PRMUDANCA"); banco.CriarComando(); banco.Conexao.Open(); banco.Start_Tran(System.Data.IsolationLevel.ReadUncommitted); banco.Comando.Transaction = banco.Transac; //Gravar mudanca val.Cd_empresa = "0001"; val.St_registro = "0";//Orcamento val.Dt_orcamento = DateTime.Now; val.Id_orcamentostr = CamadaDados.TDataQuery.getPubVariavel(new CamadaDados.Mudanca.TCD_Orcamento(banco).Gravar(val), "@P_ID_ORCAMENTO"); //Gravar itens mudanca if (val.lItens != null) { val.lItens.ForEach(p => { p.Cd_empresa = val.Cd_empresa; p.Id_orcamento = val.Id_orcamento; new CamadaDados.Mudanca.TCD_Orcamento_X_Itens(banco).Gravar(p); }); } ////Gravar itens encaixotamento if (val.lEnc != null) { val.lEnc.ForEach(p => { p.Cd_empresa = val.Cd_empresa; p.Id_orcamento = val.Id_orcamento; new CamadaDados.Mudanca.TCD_Encaixotamento(banco).Gravar(p); }); } banco.Transac.Commit(); return("Orçamento Gravado com Sucesso"); } catch (Exception ex) { banco.Transac.Rollback(); throw new Exception("Erro: " + ex.Message.Trim()); } finally { if (banco.Conexao.State == System.Data.ConnectionState.Open) { banco.Conexao.Close(); } banco = null; } }
public static string Excluir(TRegistro_Orcamento val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_CadFatDireto qtb_orc = new TCD_CadFatDireto(); try { if (banco == null) { st_transacao = qtb_orc.CriarBanco_Dados(true); } else { qtb_orc.Banco_Dados = banco; } //Excluir despesas val.lDespesas.ForEach(p => TCN_Despesas.Excluir(p, qtb_orc.Banco_Dados)); val.lDespesasDel.ForEach(p => TCN_Despesas.Excluir(p, qtb_orc.Banco_Dados)); //Excluir Projetos val.lOrcProjeto.ForEach(p => TCN_OrcProjeto.Excluir(p, qtb_orc.Banco_Dados)); val.lOrcProjetoDel.ForEach(p => TCN_OrcProjeto.Excluir(p, qtb_orc.Banco_Dados)); //Excluir Orcamento // qtb_orc.Excluir(val); if (st_transacao) { qtb_orc.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_orc.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir orçamento: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_orc.deletarBanco_Dados(); } } }
public static string Excluir(TRegistro_Orcamento val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_Orcamento qtb_orc = new TCD_Orcamento(); try { if (banco == null) { st_transacao = qtb_orc.CriarBanco_Dados(true); } else { qtb_orc.Banco_Dados = banco; } //Excluir itens val.lItens.ForEach(p => TCN_Orcamento_X_Itens.Excluir(p, qtb_orc.Banco_Dados)); val.lItensDel.ForEach(p => TCN_Orcamento_X_Itens.Excluir(p, qtb_orc.Banco_Dados)); //Excluir encaixotamento val.lEnc.ForEach(p => TCN_Encaixotamento.Excluir(p, qtb_orc.Banco_Dados)); val.lEncDel.ForEach(p => TCN_Encaixotamento.Excluir(p, qtb_orc.Banco_Dados)); qtb_orc.Excluir(val); if (st_transacao) { qtb_orc.Banco_Dados.Commit_Tran(); } return(val.Id_orcamentostr); } catch (Exception ex) { if (st_transacao) { qtb_orc.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir orçamento: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_orc.deletarBanco_Dados(); } } }
public static string Reprovar(TRegistro_Orcamento val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_Orcamento qtb_orc = new TCD_Orcamento(); try { if (banco == null) { st_transacao = qtb_orc.CriarBanco_Dados(true); } else { qtb_orc.Banco_Dados = banco; } //Reprovar Orçamento val.St_registro = "2"; qtb_orc.Gravar(val); if (st_transacao) { qtb_orc.Banco_Dados.Commit_Tran(); } return(val.Id_orcamentostr); } catch (Exception ex) { if (st_transacao) { qtb_orc.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar orçamento: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_orc.deletarBanco_Dados(); } } }
public static CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento ProcessarEmpreendimento(string tp_nota, string Cd_clifor, TRegistro_Orcamento rOrcamento, List <TRegistro_FichaTec> rFicha) { // TP_NOTA S SERVICO N NORMAL if (new TCD_CadCFGEmpreendimento().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + rOrcamento.Cd_empresa.Trim() + "'" } }, "a.cfg_remessa", string.Empty, string.Empty, null) == null) { throw new Exception("Não existe configuração para emitir NF peças para a empresa " + rOrcamento.Cd_empresa.Trim()); } //Buscar configuracao fiscal do pedido CamadaDados.Faturamento.Cadastros.TList_CadCFGPedidoFiscal lCfgPed = new CamadaDados.Faturamento.Cadastros.TList_CadCFGPedidoFiscal(); if (tp_nota.Equals("N")) { lCfgPed = new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from TB_EMP_CFGEmpreendimento x " + "where a.cfg_pedido = x.cfg_remessa " + "and x.cd_empresa = '" + rOrcamento.Cd_empresa.Trim() + "')" }, new TpBusca() { vNM_Campo = "a.tp_fiscal", vOperador = "=", vVL_Busca = "'NO'" } }, 1, string.Empty); } if (tp_nota.Equals("S")) { lCfgPed = new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from TB_EMP_CFGEmpreendimento x " + "where a.cfg_pedido = x.cfg_servico " + "and x.cd_empresa = '" + rOrcamento.Cd_empresa.Trim() + "')" }, new TpBusca() { vNM_Campo = "a.tp_fiscal", vOperador = "=", vVL_Busca = "'SE'" } }, 1, string.Empty); } if (lCfgPed.Count.Equals(0)) { throw new Exception("Não existe configuração fiscal do pedido para o tipo pedido!"); } //Objeto Nota Fiscal CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rNf = new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento(); //Buscar registro empresa CamadaDados.Diversos.TRegistro_CadEmpresa rEmpresa = CamadaNegocio.Diversos.TCN_CadEmpresa.Busca(rOrcamento.Cd_empresa, string.Empty, string.Empty, null)[0]; rNf.Cd_empresa = rEmpresa.Cd_empresa; rNf.Cd_uf_empresa = rEmpresa.rEndereco.Cd_uf; rNf.Uf_empresa = rEmpresa.rEndereco.UF; //Buscar registro clifor CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor rCliente = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo(Cd_clifor, null); rNf.Cd_clifor = rCliente.Cd_clifor; rNf.Cd_condfiscal_clifor = rCliente.Cd_condfiscal_clifor; //Buscar endereco cliente CamadaDados.Financeiro.Cadastros.TRegistro_CadEndereco rEndereco = CamadaNegocio.Financeiro.Cadastros.TCN_CadEndereco.Buscar(Cd_clifor, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, 1, null)[0]; rNf.Cd_endereco = rEndereco.Cd_endereco; rNf.Cd_uf_clifor = rEndereco.Cd_uf; rNf.Uf_clifor = rEndereco.UF; rNf.Cd_cmi = lCfgPed[0].Cd_cmi; rNf.Cd_movimentacao = lCfgPed[0].Cd_movto; rNf.lCFGFiscal = lCfgPed; rNf.Tp_duplicata = lCfgPed[0].Tp_duplicata; rNf.Ds_tpduplicata = lCfgPed[0].Ds_tpduplicata; rNf.Cd_condpgto = lCfgPed[0].CD_CondPgto; rNf.Tp_movimento = "S"; rNf.Tp_pessoa = rCliente.Tp_pessoa; rNf.Tp_nota = (rNf.Tp_pessoa.Trim().ToUpper().Equals("J") && rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? "T" : "P"); rNf.Nr_serie = lCfgPed[0].Nr_serie; rNf.Cd_modelo = lCfgPed[0].Cd_modelo; rNf.St_sequenciaauto = lCfgPed[0].ST_SequenciaAuto.Trim().ToUpper().Equals("S"); rNf.Dt_emissao = CamadaDados.UtilData.Data_Servidor(); rNf.Dt_saient = rNf.Dt_emissao; rNf.Dadosadicionais = ProcessaAplicacao.BuscarObsMov("D", rNf.Cd_movimentacaostring, rEndereco.UF.Trim().Equals(rEmpresa.rEndereco.UF.Trim())); rNf.Obsfiscal = ProcessaAplicacao.BuscarObsMov("F", rNf.Cd_movimentacaostring, rEndereco.UF.Trim().Equals(rEmpresa.rEndereco.UF.Trim())); //Abrir tela para capturar dados da nota fiscal using (NumeroNota.TFNumero_Nota fNumero = new NumeroNota.TFNumero_Nota()) { 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.pTp_movimento = rNf.Tp_movimento; fNumero.pCd_municipioexecservico = rOrcamento.Cd_cidadeemp; fNumero.pNm_municipioexecservico = rOrcamento.Ds_cidadeemp; fNumero.pTp_nota = rNf.Tp_nota; fNumero.pChave_Acesso_NFe = rNf.Chave_acesso_nfe; fNumero.pNr_serie = rNf.Nr_serie; fNumero.pDs_serie = rNf.Ds_serienf; fNumero.pCd_modelo = rNf.Cd_modelo; fNumero.pDt_emissao = rNf.Dt_emissao; fNumero.pST_NotaUnica = false; fNumero.pNr_notafiscal = rNf.Nr_notafiscal.HasValue ? rNf.Nr_notafiscal.Value.ToString() : string.Empty; fNumero.pDt_saient = rNf.Dt_saient; fNumero.pDs_dadosadic = rNf.Dadosadicionais; fNumero.pDs_obsfiscal = rNf.Obsfiscal; fNumero.pSt_sequenciaauto = rNf.St_sequenciaauto; fNumero.pCd_movto = rNf.Cd_movimentacaostring; fNumero.pCd_cmi = rNf.Cd_cmistring; if (rNf.Tp_nota.Trim().ToUpper().Equals("T")) { fNumero.pInsc_estadual = rEndereco.Insc_estadual; } if (fNumero.ShowDialog() == System.Windows.Forms.DialogResult.OK) { rNf.Chave_acesso_nfe = fNumero.pChave_Acesso_NFe; if (!string.IsNullOrEmpty(fNumero.pNr_notafiscal)) { rNf.Nr_notafiscal = decimal.Parse(fNumero.pNr_notafiscal); } else { rNf.Nr_notafiscal = null; } rNf.Nr_serie = fNumero.pNr_serie; rNf.Cd_modelo = fNumero.pCd_modelo; rNf.Dt_emissao = fNumero.pDt_emissao; rNf.Dt_saient = fNumero.pDt_saient; rNf.Obsfiscal = fNumero.pDs_obsfiscal; rNf.Dadosadicionais = fNumero.pDs_dadosadic; rNf.Cd_transportadora = fNumero.pCd_transportadora; rNf.Nm_razaosocialtransp = fNumero.pNm_transportadora; rNf.Cpf_transp = fNumero.pCnpjCpfTransp; rNf.Placaveiculo = fNumero.pPlacaVeiculo; rNf.Tp_frete = fNumero.pTp_frete; rNf.Especie = fNumero.pEspecie; rNf.Quantidade = fNumero.pQuantidade; rNf.Pesobruto = fNumero.pPsbruto; rNf.Pesoliquido = fNumero.pPsliquido; rNf.Vl_frete = fNumero.pVl_frete; 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]; rNf.Cminf.Add(new CamadaDados.Faturamento.NotaFiscal.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 }); rNf.Cd_cmistring = fNumero.pCd_cmi; rNf.Ds_cmi = rCmi.Ds_cmi; rNf.Tp_duplicata = rCmi.Tp_duplicata; rNf.Ds_tpduplicata = rCmi.ds_tpduplicata; } else { throw new Exception("Obrigatorio informar numero da nota fiscal."); } } if (rNf.Nr_notafiscal.HasValue) { CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rFat = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.existeNumeroNota(rNf.Nr_notafiscal.ToString(), rNf.Nr_serie, rNf.Cd_empresa, rNf.Cd_clifor, string.Empty, rNf.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."); } } } //Itens da Nota rFicha.ForEach(item => { CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_Item rItem = new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_Item(); rItem.Cd_empresa = item.Cd_empresa; rItem.Cd_produto = item.Cd_produto; //pega cd condfiscal do produto object cd_cfiscal = new CamadaDados.Estoque.Cadastros.TCD_CadProduto().BuscarEscalar(new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_produto", vOperador = "=", vVL_Busca = item.Cd_produto } }, "d.cd_condfiscal_produto"); TList_CadCFGEmpreendimento cfg = TCN_CadCFGEmpreendimento.Busca(item.Cd_empresa, string.Empty, null); object ncmm = new CamadaDados.Estoque.Cadastros.TCD_CadProduto().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_produto", vOperador = "=", vVL_Busca = "'" + item.Cd_produto.Trim() + "'" } }, "isnull(a.ncm, 0)"); if (ncmm != null) { if (!string.IsNullOrEmpty(ncmm.ToString())) { object obj_imp = new CamadaDados.Fiscal.TCD_CadNCM().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.ncm", vOperador = "=", vVL_Busca = "'" + ncmm.ToString().Trim() + "'" } }, "isnull(a.Pc_Aliquota, 0)"); if (obj_imp != null) { if (!string.IsNullOrEmpty(obj_imp.ToString())) { rItem.Pc_imposto_Aprox = Convert.ToDecimal(obj_imp.ToString()); } } } } //buscar cdunidade rItem.Cd_condfiscal_produto = cd_cfiscal != null ?cd_cfiscal.ToString() : string.Empty; rItem.Cd_unidade = item.Cd_unidade; rItem.Cd_local = cfg[0].cd_local; rItem.Cd_unidEst = item.Cd_unidade; rItem.Quantidade = item.quantidade_agregar; rItem.Quantidade_estoque = item.quantidade_agregar; rItem.Vl_subtotal = item.quantidade_agregar * item.Vl_unitario; rItem.Vl_subtotal_estoque = item.quantidade_agregar * item.Vl_unitario; rItem.Vl_unitario = item.Vl_unitario; //Buscar cfop do item CamadaDados.Fiscal.TRegistro_CadCFOP rCfop = null; bool st_dentroestado = rEndereco.Cd_uf.Trim().Equals(rEmpresa.rEndereco.Cd_uf.Trim()); if (CamadaNegocio.Fiscal.TCN_Mov_X_CFOP.BuscarCFOP(rNf.Cd_movimentacaostring, rItem.Cd_condfiscal_produto, rEndereco.Cd_uf.Trim().Equals("99") ? "I" : rEndereco.Cd_uf.Trim().Equals(rEmpresa.rEndereco.Cd_uf.Trim()) ? "D" : "F", (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_clifor : rNf.Cd_uf_empresa), (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_empresa : rNf.Cd_uf_clifor), rNf.Tp_movimento, rNf.Cd_condfiscal_clifor, rNf.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 " + (rEndereco.Cd_uf.Trim().Equals("99") ? "internacional" : rEndereco.Cd_uf.Trim().Equals(rEmpresa.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; CamadaDados.Faturamento.NotaFiscal.TList_ImpostosNF lImpUf = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraImpostosPorUf(rNf.Cd_empresa, (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_clifor : rNf.Cd_uf_empresa), (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_empresa : rNf.Cd_uf_clifor), rNf.Cd_movimentacaostring, rNf.Tp_movimento, rNf.Cd_condfiscal_clifor, rItem.Cd_condfiscal_produto, rItem.Vl_subtotal, rItem.Quantidade, ref vObsFiscal, rNf.Dt_emissao, rItem.Cd_produto, rNf.Tp_nota, rNf.Nr_serie, null); if (lImpUf.Exists(v => v.Imposto.St_ICMS)) { CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.PreencherICMS(lImpUf.Find(v => v.Imposto.St_ICMS), rItem); rNf.Obsfiscal += vObsFiscal.Trim(); } else if (CamadaNegocio.Faturamento.NotaFiscal.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: " + rNf.Tipo_movimento.Trim() + "\r\n" + "Movimentação: " + rNf.Cd_movimentacao.ToString() + "\r\n" + "Cond. Fiscal Clifor: " + rNf.Cd_condfiscal_clifor.Trim() + "\r\n" + "Cond. Fiscal Produto: " + rItem.Cd_condfiscal_produto.Trim() + "\r\n" + "UF Origem: " + (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Uf_clifor.Trim() : rNf.Uf_empresa.Trim()) + "\r\n" + "UF Destino: " + (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Uf_empresa.Trim() : rNf.Uf_clifor.Trim())); } //Procurar impostos sobre os itens da nota fiscal de destino CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.PreencherOutrosImpostos( CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraCondicaoFiscalImpostos(rNf.Cd_condfiscal_clifor, rItem.Cd_condfiscal_produto, rNf.Cd_movimentacaostring, rNf.Tp_movimento, rNf.Tp_pessoa, rNf.Cd_empresa, rNf.Nr_serie, rNf.Cd_clifor, rItem.Cd_unidEst, rNf.Dt_emissao, rItem.Quantidade, rItem.Vl_subtotal, rNf.Tp_nota, rNf.Cd_municipioexecservico, null), rItem, rNf.Tp_movimento); rItem.rItemFichaTec = item; rNf.ItensNota.Add(rItem); }); return(rNf); }
public static string GravarDireto(TRegistro_Orcamento orcamento, TList_FichaTec litens, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_CompraEmpreendimento qtb_orc = new TCD_CompraEmpreendimento(); try { if (banco == null) { st_transacao = qtb_orc.CriarBanco_Dados(true); } else { qtb_orc.Banco_Dados = banco; } TList_CadCFGEmpreendimento lCfg = TCN_CadCFGEmpreendimento.Busca(string.Empty, string.Empty, qtb_orc.Banco_Dados); if (lCfg.Count.Equals(0)) { throw new Exception("Não existe cadastro CFG.Empreendimento."); } TList_FichaTec itensDireto = new TList_FichaTec(); if (litens == null) { orcamento.lOrcProjeto.ForEach(o => { o.lFicha.ForEach(p => { if (p.St_fatdiretobool) { itensDireto.Add(p); } }); }); } else { litens.ForEach(p => { itensDireto.Add(p); }); } string ret = string.Empty; itensDireto.ForEach(p => { CamadaDados.Compra.Lancamento.TRegistro_Requisicao req = new CamadaDados.Compra.Lancamento.TRegistro_Requisicao(); req.Cd_empresa = orcamento.Cd_empresa; req.Cd_produto = p.Cd_produto; req.Ds_produto = p.Ds_produto; req.Quantidade = p.quantidade_agregar == decimal.Zero? p.Quantidade : p.quantidade_agregar; CamadaDados.Financeiro.Cadastros.TList_CadClifor lclifor = new CamadaDados.Financeiro.Cadastros.TCD_CadClifor().Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'C'" }, new Utils.TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_cmp_usuariocompra x " + "where x.cd_clifor_cmp = a.cd_clifor " + "and isnull(x.st_requisitar, 'N') = 'S' " + "and x.login = '******')" } }, 0, string.Empty); if (lclifor.Count > 0) { req.Cd_clifor_comprador = lclifor[0].Cd_clifor; req.Cd_clifor_requisitante = lclifor[0].Cd_clifor; } req.St_requisicao = "AC"; req.Id_tprequisicaostr = p.St_fatdiretobool ? lCfg[0].tp_requisicaodir: lCfg[0].tp_requisicao; //GRAVAR req.Id_requisicao = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel( CamadaNegocio.Compra.Lancamento.TCN_Requisicao.GravarRequisicao(req, qtb_orc.Banco_Dados), "@P_ID_REQUISICAO")); TRegistro_CompraEmpreendimento val = new TRegistro_CompraEmpreendimento(); val.Id_orcamentostr = p.Id_orcamentostr; val.Id_registrostr = p.Id_registrostr; val.Id_requisicao = req.Id_requisicao; val.Nr_versao = p.Nr_versao; val.Id_ficha = p.Id_ficha; val.id_atividade = p.Id_projetostr; val.Cd_empresa = p.Cd_empresa; ret = qtb_orc.Gravar(val); val.Id_requisicao = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret, "@P_ID_REQUISICAO")); }); //string ret = qtb_orc.Gravar(val); if (st_transacao) { qtb_orc.Banco_Dados.Commit_Tran(); } return(ret); } catch (Exception ex) { if (st_transacao) { qtb_orc.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar requisicao: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_orc.deletarBanco_Dados(); } } }
public static string Gravar(TRegistro_Orcamento val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_Orcamento qtb_orc = new TCD_Orcamento(); try { if (banco == null) { st_transacao = qtb_orc.CriarBanco_Dados(true); } else { qtb_orc.Banco_Dados = banco; } val.Id_orcamentostr = CamadaDados.TDataQuery.getPubVariavel(qtb_orc.Gravar(val), "@P_ID_ORCAMENTO"); //Excluir itens if (val.lItensDel != null) { val.lItensDel.ForEach(p => TCN_Orcamento_X_Itens.Excluir(p, qtb_orc.Banco_Dados)); } //Gravar itens if (val.lItens != null) { val.lItens.ForEach(p => { p.Cd_empresa = val.Cd_empresa; p.Id_orcamento = val.Id_orcamento; TCN_Orcamento_X_Itens.Gravar(p, qtb_orc.Banco_Dados); }); } //Excluir encaixotamento if (val.lEncDel != null) { val.lEncDel.ForEach(p => TCN_Encaixotamento.Excluir(p, qtb_orc.Banco_Dados)); } //Gravar encaixotamento if (val.lEnc != null) { val.lEnc.ForEach(p => { p.Cd_empresa = val.Cd_empresa; p.Id_orcamento = val.Id_orcamento; TCN_Encaixotamento.Gravar(p, qtb_orc.Banco_Dados); }); } if (val.lSerDel != null) { val.lSerDel.ForEach(p => TCN_ServicoOrc.Excluir(p, qtb_orc.Banco_Dados)); } if (val.lSer != null) { val.lSer.ForEach(p => { p.Cd_empresa = val.Cd_empresa; p.Id_orcamento = val.Id_orcamento; TCN_ServicoOrc.Gravar(p, qtb_orc.Banco_Dados); }); } if (st_transacao) { qtb_orc.Banco_Dados.Commit_Tran(); } return(val.Id_orcamentostr); } catch (Exception ex) { if (st_transacao) { qtb_orc.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar orçamento: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_orc.deletarBanco_Dados(); } } }
private void toolStripLabel1_Click(object sender, EventArgs e) { if (bsOrcamento.Current == null) { return; } using (FRequisicaoCompra comp = new FRequisicaoCompra()) {//Buscar Atividades TRegistro_Orcamento orc = new TRegistro_Orcamento(); orc = (bsOrcamento.Current as TRegistro_Orcamento); orc.lOrcProjeto = TCN_OrcProjeto.Buscar((bsOrcamento.Current as TRegistro_Orcamento).Cd_empresa, (bsOrcamento.Current as TRegistro_Orcamento).Id_orcamentostr, (bsOrcamento.Current as TRegistro_Orcamento).Nr_versaostr, string.Empty, string.Empty, null); orc.lOrcProjeto.ForEach(p => { TpBusca[] filtro = new TpBusca[0]; if (!string.IsNullOrEmpty(p.Cd_empresa)) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "a.cd_empresa"; filtro[filtro.Length - 1].vOperador = "="; filtro[filtro.Length - 1].vVL_Busca = "'" + p.Cd_empresa.Trim() + "'"; } if (!string.IsNullOrEmpty(p.Id_orcamentostr)) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "a.id_orcamento"; filtro[filtro.Length - 1].vOperador = "="; filtro[filtro.Length - 1].vVL_Busca = p.Id_orcamentostr; } if (!string.IsNullOrEmpty(p.Nr_versaostr)) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "a.nr_versao"; filtro[filtro.Length - 1].vOperador = "="; filtro[filtro.Length - 1].vVL_Busca = p.Nr_versaostr; } if (!string.IsNullOrEmpty(p.Id_projetostr)) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "a.id_atividade"; filtro[filtro.Length - 1].vOperador = "="; filtro[filtro.Length - 1].vVL_Busca = p.Id_projetostr; } if (!string.IsNullOrEmpty(p.Id_registrostr)) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "a.Id_Registro"; filtro[filtro.Length - 1].vOperador = "="; filtro[filtro.Length - 1].vVL_Busca = p.Id_registrostr; } Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vOperador = "not exists "; filtro[filtro.Length - 1].vVL_Busca = " (select 1 from TB_EMP_CompraEmpreendimento x " + "where a.id_orcamento = x.id_orcamento and a.nr_versao = x.nr_versao " + "and a.ID_Atividade = x.ID_Atividade and a.ID_Ficha = x.ID_Ficha " + "and a.ID_Registro = x.ID_Registro and a.cd_empresa = x.cd_empresa) "; p.lFicha = new TCD_FichaTec().Select(filtro, 0, string.Empty); }); comp.rOrcamento = orc; if (comp.ShowDialog() == DialogResult.OK) { TList_FichaTec lficha = new TList_FichaTec(); lficha = comp.objetoItens.lFicha; //(bsOrcamento.Current as TRegistro_Orcamento).St_registro = "E"; TList_FichaTec lficha2 = new TList_FichaTec(); lficha.ForEach(p => { if (p.st_agregar) { lficha2.Add(p); } }); try { TCN_Orcamento.GravarOrcReq((bsOrcamento.Current as TRegistro_Orcamento), lficha2, null); MessageBox.Show("Requisição de compra gravada com sucesso.", "Informativo", MessageBoxButtons.OK, MessageBoxIcon.Information); LimparFiltros(); afterBusca(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }
private void toolStripButton3_Click(object sender, EventArgs e) { if ((bsOrcamento.Current) != null) { if ((bsOrcamento.Current as TRegistro_Orcamento).St_registro.Equals("T")) { if (CamadaNegocio.Diversos.TCN_Usuario_RegraEspecial.ValidaRegra(Parametros.pubLogin, "VISAO PROJETISTA", null)) { if (MessageBox.Show("Orcamento está em " + (bsOrcamento.Current as TRegistro_Orcamento).Status + ", Deseja finalizar o projeto e evoluir para execução?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { try { bsOrcamento_PositionChanged(this, new EventArgs()); TList_FichaTec lficha = new TList_FichaTec(); //valida TList_CadCFGEmpreendimento lcfg = new TCD_CadCFGEmpreendimento().Select( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = (bsOrcamento.Current as TRegistro_Orcamento).Cd_empresa } }, 1, string.Empty); if (string.IsNullOrEmpty(lcfg[0].tp_requisicao) || string.IsNullOrEmpty(lcfg[0].tp_requisicaodir)) { MessageBox.Show("Favor corrigir a configuração do empreendimento!\n (Tipo Requisição)", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } (bsOrcamento.Current as TRegistro_Orcamento).lOrcProjeto.ForEach(o => { o.lFicha.ForEach(p => { if (p.Tot_saldo < p.Quantidade) { p.st_agregar = true; p.quantidade_agregar = p.Quantidade; } }); }); TList_FichaTec lista_nao_cadastrados = new TList_FichaTec(); bool lista = false; (bsOrcamento.Current as TRegistro_Orcamento).lOrcProjeto.ForEach(o => { o.lFicha.ForEach(p => { if (string.IsNullOrEmpty(p.Cd_produto)) { lista_nao_cadastrados.Add(p); lista = true; } }); }); if (lista) { using (FListCadProd ls = new FListCadProd()) { ls.rLItens = lista_nao_cadastrados; if (ls.ShowDialog() == DialogResult.OK) { (bsOrcamento.Current as TRegistro_Orcamento).lOrcProjeto.ForEach(o => { o.lFicha.ForEach(p => { ls.rLItens.ForEach(i => { if (p.Ds_produto.Equals(i.Ds_produto)) { p.Cd_produto = i.Cd_produto; CamadaNegocio.Empreendimento.TCN_FichaTec.Gravar(p, null); } }); }); }); bsOrcamento.ResetCurrentItem(); } else { return; } } } using (FRequisicaoCompra comp = new FRequisicaoCompra()) {//Buscar Atividades TRegistro_Orcamento orc = new TRegistro_Orcamento(); orc = (bsOrcamento.Current as TRegistro_Orcamento); orc.lOrcProjeto = TCN_OrcProjeto.Buscar((bsOrcamento.Current as TRegistro_Orcamento).Cd_empresa, (bsOrcamento.Current as TRegistro_Orcamento).Id_orcamentostr, (bsOrcamento.Current as TRegistro_Orcamento).Nr_versaostr, string.Empty, string.Empty, null); orc.lOrcProjeto.ForEach(p => { TpBusca[] filtro = new TpBusca[0]; if (!string.IsNullOrEmpty(p.Cd_empresa)) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "a.cd_empresa"; filtro[filtro.Length - 1].vOperador = "="; filtro[filtro.Length - 1].vVL_Busca = "'" + p.Cd_empresa.Trim() + "'"; } if (!string.IsNullOrEmpty(p.Id_orcamentostr)) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "a.id_orcamento"; filtro[filtro.Length - 1].vOperador = "="; filtro[filtro.Length - 1].vVL_Busca = p.Id_orcamentostr; } if (!string.IsNullOrEmpty(p.Nr_versaostr)) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "a.nr_versao"; filtro[filtro.Length - 1].vOperador = "="; filtro[filtro.Length - 1].vVL_Busca = p.Nr_versaostr; } if (!string.IsNullOrEmpty(p.Id_projetostr)) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "a.id_atividade"; filtro[filtro.Length - 1].vOperador = "="; filtro[filtro.Length - 1].vVL_Busca = p.Id_projetostr; } if (!string.IsNullOrEmpty(p.Id_registrostr)) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "a.Id_Registro"; filtro[filtro.Length - 1].vOperador = "="; filtro[filtro.Length - 1].vVL_Busca = p.Id_registrostr; } Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vOperador = "not exists "; filtro[filtro.Length - 1].vVL_Busca = " (select 1 from TB_EMP_CompraEmpreendimento x " + "where a.id_orcamento = x.id_orcamento and a.nr_versao = x.nr_versao " + "and a.ID_Atividade = x.ID_Atividade and a.ID_Ficha = x.ID_Ficha " + "and a.ID_Registro = x.ID_Registro and a.cd_empresa = x.cd_empresa) "; p.lFicha = new TCD_FichaTec().Select(filtro, 0, string.Empty); }); comp.rOrcamento = orc; if (comp.ShowDialog() == DialogResult.OK) { lficha = comp.objetoItens.lFicha; //(bsOrcamento.Current as TRegistro_Orcamento) = comp.rOrcamento; (bsOrcamento.Current as TRegistro_Orcamento).St_registro = "E"; TList_FichaTec lficha2 = new TList_FichaTec(); lficha.ForEach(p => { if (p.st_agregar) { lficha2.Add(p); } }); TCN_Orcamento.GravarOrcReq((bsOrcamento.Current as TRegistro_Orcamento), lficha2, null); // MessageBox.Show("Orçamento gravado com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); LimparFiltros(); //cbHomologacao.Checked = true; afterBusca(); MessageBox.Show("Orçamento está aguardando em execução.", "Orçamento", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } else { MessageBox.Show("Usuário não tem permissão de projetista para esta evolução.", "Orçamento", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } else { MessageBox.Show("Selecione um orcamento!", "Orçamento", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
private void OtimizarOrcamento() { if (MessageBox.Show("Deseja gerar nova versão do orçamento?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { if (bsOrcamento.Current != null) { if ((bsOrcamento.Current as TRegistro_Orcamento).St_registro.Trim().ToUpper().Equals("N")) { //Verificar se orçamento possui versão em Aberto if (new TCD_Orcamento().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + (bsOrcamento.Current as TRegistro_Orcamento).Cd_empresa.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.id_orcamento", vOperador = "=", vVL_Busca = (bsOrcamento.Current as TRegistro_Orcamento).Id_orcamentostr }, new TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "=", vVL_Busca = "'A'" } }, "1") != null) { MessageBox.Show("Orçamento possui versão disponivel para OTIMIZAR.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } string ds_tarefa = string.Empty; using (TFTarefas fTarefa = new TFTarefas()) { if (fTarefa.ShowDialog() == DialogResult.OK) { ds_tarefa = fTarefa.pDs_tarefa; } } try { TRegistro_Orcamento aux = TCN_Orcamento.GerarNovaVersao(bsOrcamento.Current as TRegistro_Orcamento, ds_tarefa, null); MessageBox.Show("Nova versão gerada com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); LimparFiltros(); cd_empresa.Text = aux.Cd_empresa; id_orcamento.Text = aux.Id_orcamentostr; nr_versao.Text = aux.Nr_versaostr; // cbAberto.Checked = true; afterBusca(); } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show("Permitido otimizar somente orçamento que estiver em NEGOCIAÇÃO.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { MessageBox.Show("Selecione um orcamento!", "Orçamento", MessageBoxButtons.OK, MessageBoxIcon.Information); } } }