public void Gravar(TB_FIN_CAIXA_LANCAMENTO_X_USUARIO caixa, ref int posicaoTransacao) { try { Conexao.Iniciar(ref posicaoTransacao); var existente = Conexao.BancoDados.TB_FIN_CAIXA_LANCAMENTO_X_USUARIOs.FirstOrDefault(a => a.ID_USUARIO == caixa.ID_USUARIO && a.DT_INICIAL != null); // Abre o caixa geral if (existente == null) { var caixaGeral = new QCaixaGeral(); caixaGeral.Abrir(ref posicaoTransacao); Conexao.BancoDados.TB_FIN_CAIXA_LANCAMENTOs.InsertOnSubmit(new TB_FIN_CAIXA_LANCAMENTO { ID_CAIXA = Conexao.BancoDados.TB_FIN_CAIXAs.Max(p => p.ID_CAIXA), ID_LANCAMENTO = (Conexao.BancoDados.TB_FIN_CAIXA_LANCAMENTOs.Any(a => a.ID_LANCAMENTO == caixa.ID_LANCAMENTO) ? Conexao.BancoDados.TB_FIN_CAIXA_LANCAMENTOs.Where(a => a.ID_LANCAMENTO == caixa.ID_LANCAMENTO).Max(a => a.ID_LANCAMENTO) : 0) + 1, TP_MOVIMENTO = "E", VL = caixa.VL_FINAL == null ? caixa.VL_INICIAL : caixa.VL_FINAL }); Conexao.Enviar(); var vCaixa = new TB_FIN_CAIXA_LANCAMENTO_X_USUARIO { //(QQuery.BancoDados.TB_EST_GRUPOs.Any(a => a.ID_GRUPO == grupo.ID_GRUPO) ? QQuery.BancoDados.TB_EST_GRUPOs.Where(a => a.ID_GRUPO == grupo.ID_GRUPO).Max(a => a.ID_GRUPO) : 0) + 1; ID_CAIXA = (Conexao.BancoDados.TB_FIN_CAIXA_LANCAMENTO_X_USUARIOs.Any(a => a.ID_CAIXA == caixa.ID_CAIXA) ? Conexao.BancoDados.TB_FIN_CAIXA_LANCAMENTO_X_USUARIOs.Where(a => a.ID_CAIXA == caixa.ID_CAIXA).Max(a => a.ID_CAIXA) : 0) + 1, ID_USUARIO = caixa.ID_USUARIO, ID_LANCAMENTO = (Conexao.BancoDados.TB_FIN_CAIXA_LANCAMENTOs.Any(a => a.ID_LANCAMENTO == caixa.ID_LANCAMENTO) ? Conexao.BancoDados.TB_FIN_CAIXA_LANCAMENTOs.Where(a => a.ID_LANCAMENTO == caixa.ID_LANCAMENTO).Max(a => a.ID_LANCAMENTO) : 0) + 1, VL_INICIAL = caixa.VL_INICIAL, VL_FINAL = caixa.VL_FINAL, DT_INICIAL = caixa.DT_INICIAL, DT_FINAL = caixa.DT_FINAL }; Conexao.BancoDados.TB_FIN_CAIXA_LANCAMENTO_X_USUARIOs.InsertOnSubmit(vCaixa); } else { existente.VL_FINAL = caixa.VL_FINAL; existente.DT_FINAL = caixa.DT_FINAL; } Conexao.Enviar(); Conexao.Finalizar(ref posicaoTransacao); } catch (Exception excessao) { Conexao.Voltar(ref posicaoTransacao); throw excessao; } }
public override void Gravar() { try { if (spValor.Value < 0) { throw new Exception("Valor deve ser maior ou igual a zero!"); } var caixa = new TB_FIN_CAIXA_LANCAMENTO_X_USUARIO(); var busca = new QCaixaDiario().Buscar(SYS.UTILS.Parametros.ID_Usuario, DateTime.Now.ToString()).ToList(); if (busca.Count > 0) { if (busca[0].DT_FINAL == null) { caixa.DT_FINAL = DateTime.Now; caixa.VL_FINAL = spValor.Value; } } else { caixa.DT_INICIAL = DateTime.Now; caixa.VL_INICIAL = spValor.Value; } caixa.ID_USUARIO = SYS.UTILS.Parametros.ID_Usuario; int posicao_transacao = 0; new QCaixaDiario().Gravar(caixa, ref posicao_transacao); this.DialogResult = System.Windows.Forms.DialogResult.OK; this.Close(); } catch (Exception ex) { XtraMessageBox.Show(ex.Message); } }