예제 #1
0
        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;
            }
        }
예제 #2
0
        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);
            }
        }