public static string GravarColEnt(TRegistro_ColetaEntrega val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_ColetaEntrega qtb_locacao = new TCD_ColetaEntrega(); try { if (banco == null) { st_transacao = qtb_locacao.CriarBanco_Dados(true); } else { qtb_locacao.Banco_Dados = banco; } val.Id_coletastr = CamadaDados.TDataQuery.getPubVariavel(qtb_locacao.Gravar(val), "@P_ID_COLETA"); //Gravar Vistoria val.lVistoria.ForEach(p => { p.Id_coleta = val.Id_coletastr; TCN_Vistoria.Gravar(p, qtb_locacao.Banco_Dados); }); if (st_transacao) { qtb_locacao.Banco_Dados.Commit_Tran(); } return(val.Id_coletastr); } catch (Exception ex) { if (st_transacao) { qtb_locacao.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar coleta/entrega: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_locacao.deletarBanco_Dados(); } } }
public static string Gravar(TRegistro_ColetaEntrega val, TRegistro_Locacao rLoc, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_ColetaEntrega qtb_locacao = new TCD_ColetaEntrega(); try { if (banco == null) { st_transacao = qtb_locacao.CriarBanco_Dados(true); } else { qtb_locacao.Banco_Dados = banco; } val.Id_coletastr = CamadaDados.TDataQuery.getPubVariavel(qtb_locacao.Gravar(val), "@P_ID_COLETA"); //Gravar Vistoria val.lVistoria.ForEach(p => { p.Id_coleta = val.Id_coletastr; TCN_Vistoria.Gravar(p, qtb_locacao.Banco_Dados); }); //Gravar Itens Locação if (rLoc.lItens != null) { if (rLoc.lItens.Count > 0) { rLoc.lItens.FindAll(p => p.St_processar).ForEach(p => { if (val.Tp_mov.ToUpper().Equals("E")) { p.Dt_retirada = CamadaDados.UtilData.Data_Servidor(); } else { p.Dt_devolucao = string.IsNullOrEmpty(p.Dt_devolucaostr) ? CamadaDados.UtilData.Data_Servidor() : p.Dt_devolucao; //Gravar devolução de patrimonio TCN_DevItensLocacao.Gravar(new TRegistro_DevItensLocacao() { Cd_empresa = p.Cd_empresa, Id_locacao = p.Id_locacao, Id_itemloc = p.Id_itemloc, Qtd_baixada = p.St_baixa ? p.SaldoDevolver : decimal.Zero, Qtd_devolvida = p.Qtd_devolver > 0 ? p.Qtd_devolver : p.QTDItem }, qtb_locacao.Banco_Dados); //Verificar se Patrimonio é quantidade 1 para cancelar senão pular processo if (p.St_baixa) { System.Collections.Hashtable hs = new System.Collections.Hashtable(); hs.Add("@SALDO", p.SaldoDevolver); hs.Add("@PRODUTO", p.Cd_produto); qtb_locacao.executarSql(p.Qtd_Patrimonio > 1 ? "update TB_EST_Patrimonio set Quantidade = Quantidade - @SALDO " + "where cd_patrimonio = @PRODUTO " + "and quantidade > 1 " : "update TB_EST_Produto set St_registro = 'C' " + "where cd_produto = @PRODUTO ", hs); } } //Gravar Itens TCN_ItensLocacao.Gravar(p, qtb_locacao.Banco_Dados); }); } //Gravar Locação if (val.Tp_mov.Trim().ToUpper().Equals("E")) { rLoc.St_registro = "2"; //Mudar Status para ENTREGUE qtb_locacao.executarSql("update TB_LOC_Locacao set st_registro = '" + rLoc.St_registro + "', dt_alt = getdate() " + "where isnull(ST_Registro, '0') = '0' " + "and ID_Locacao = " + rLoc.Id_locacaostr, null); } else { //Verificar se tem item com data de devolucao null if (new TCD_ItensLocacao(qtb_locacao.Banco_Dados).BuscarEscalar( new TpBusca[] { new TpBusca { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + rLoc.Cd_empresa.Trim() + "'" }, new TpBusca { vNM_Campo = "a.id_locacao", vOperador = "=", vVL_Busca = rLoc.Id_locacaostr }, new TpBusca { vNM_Campo = "a.dt_devolucao", vOperador = "is", vVL_Busca = "null" } }, "1") != null) { if (rLoc.St_registro.Trim().Equals("2")) { rLoc.St_registro = "10"; //Trocar status para devolucao parcial qtb_locacao.executarSql("update TB_LOC_Locacao set st_registro = '" + rLoc.St_registro + "', dt_alt = getdate() " + "where ID_Locacao = " + rLoc.Id_locacaostr, null); } else if (rLoc.St_registro.Trim().Equals("3") || rLoc.St_registro.Trim().Equals("4")) { rLoc.St_registro = "6"; //Trocar status para devolucao parcial qtb_locacao.executarSql("update TB_LOC_Locacao set st_registro = '" + rLoc.St_registro + "', dt_alt = getdate() " + "where ID_Locacao = " + rLoc.Id_locacaostr, null); } } else { if (rLoc.St_registro.Trim().Equals("2") || rLoc.St_registro.Trim().Equals("10")) { rLoc.St_registro = "9"; //Trocar status para aguardando faturamento qtb_locacao.executarSql("update TB_LOC_Locacao set st_registro = '" + rLoc.St_registro + "', dt_alt = getdate() " + "where ID_Locacao = " + rLoc.Id_locacaostr, null); } else if (rLoc.St_registro.Trim().Equals("4") || rLoc.St_registro.Trim().Equals("6")) { rLoc.St_registro = "7"; //Trocar status para devolvido qtb_locacao.executarSql("update TB_LOC_Locacao set st_registro = '" + rLoc.St_registro + "', dt_alt = getdate() " + "where ID_Locacao = " + rLoc.Id_locacaostr, null); } } } } if (val.Tp_mov.ToUpper().Equals("C")) { //Devolver Acessórios TCN_Locacao.DevolverAcessorios(rLoc, qtb_locacao.Banco_Dados); //Faturar Locação if (rLoc.St_registro != "9") { TCN_Locacao.Faturar(rLoc, qtb_locacao.Banco_Dados); } } if (st_transacao) { qtb_locacao.Banco_Dados.Commit_Tran(); } return(val.Id_coletastr); } catch (Exception ex) { if (st_transacao) { qtb_locacao.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar coleta/entrega: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_locacao.deletarBanco_Dados(); } } }