public frmCaixaReport(objCaixa caixa, List <objMovimentacao> movList) { InitializeComponent(); _caixa = caixa; _movList = movList; ReportDataSource dstCaixa = new ReportDataSource("dstCaixa", _caixa); ReportDataSource dstMov = new ReportDataSource("dstMov", _movList); // --- define o relatório // ------------------------------------------------------------- // --- clear dataSources rptvPadrao.LocalReport.DataSources.Clear(); // --- insert data rptvPadrao.LocalReport.DataSources.Add(dstCaixa); rptvPadrao.LocalReport.DataSources.Add(dstMov); //--- add Parameters //addParameters(dtInicial, dtFinal); // -- display rptvPadrao.SetDisplayMode(DisplayMode.PrintLayout); rptvPadrao.RefreshReport(); }
private void dgvListagem_MouseDown(object sender, MouseEventArgs e) { // check button if (e.Button != MouseButtons.Right) { return; } Control c = (Control)sender; DataGridView.HitTestInfo hit = dgvListagem.HitTest(e.X, e.Y); dgvListagem.ClearSelection(); if (hit.Type != DataGridViewHitTestType.Cell) { return; } // seleciona o ROW dgvListagem.SelectionMode = DataGridViewSelectionMode.FullRowSelect; dgvListagem.CurrentCell = dgvListagem.Rows[hit.RowIndex].Cells[2]; dgvListagem.Rows[hit.RowIndex].Selected = true; // mostra o MENU ativar e desativar objCaixa recItem = (objCaixa)dgvListagem.Rows[hit.RowIndex].DataBoundItem; // mnuVerPagamentos /* * switch (recItem.IDSituacao) * { * case 1: // EM ABERTO * mnuItemAlterar.Enabled = true; * mnuItemAlterar.Text = "Alterar"; * mnuItemCancelar.Enabled = true; * mnuItemNormalizar.Enabled = false; * mnuItemReceber.Enabled = true; * mnuItemEstornar.Enabled = false; * break; * case 2: // RECEBIDAS * mnuItemAlterar.Enabled = false; * mnuItemCancelar.Enabled = false; * mnuItemNormalizar.Enabled = false; * mnuItemReceber.Enabled = false; * mnuItemEstornar.Enabled = true; * break; * case 3: // CANCELADAS * mnuItemAlterar.Enabled = false; * mnuItemCancelar.Enabled = false; * mnuItemNormalizar.Enabled = true; * mnuItemReceber.Enabled = false; * mnuItemEstornar.Enabled = false; * break; * default: * break; * } */ // revela menu mnuOperacoes.Show(c.PointToScreen(e.Location)); }
// CONSTRUCTOR //------------------------------------------------------------------------------------------------------------ public frmCaixa(objCaixa caixa, Form formOrigem) { InitializeComponent(); _formOrigem = formOrigem; _caixa = caixa; bindCaixa.DataSource = typeof(objCaixa); bindCaixa.Add(_caixa); BindingCreator(); propSituacao = _caixa.IDSituacao; //--- Get Data with TRANSACTION var access = new AcessoControlBLL(); object dbTran = access.GetNewAcessoWithTransaction(); ObterConta(dbTran); ObterMovimentacaoList(dbTran); access.CommitAcessoWithTransaction(dbTran); //--- check if exists nivelamento checkAjusteNivelamento(); txtObservacao.GotFocus += txtObservacao_GotFocus; txtObservacao.LostFocus += txtObservacao_LostFocus; }
//--- MENU VER ORIGEM //------------------------------------------------------------------------------------------------------- private void mnuItemVerOrigem_Click(object sender, EventArgs e) { //--- verifica se existe alguma cell if (dgvListagem.SelectedRows.Count == 0) { return; } //--- Get A Pagar on list objCaixa item = (objCaixa)dgvListagem.SelectedRows[0].DataBoundItem; try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; /* * Entradas.frmContribuicao frm = new Entradas.frmContribuicao(item.IDContribuicao); * Visible = false; * frm.ShowDialog(); * DesativaMenuPrincipal(); * Visible = true; */ } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Abrir a Origem..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
// VERIFY BEFORE DELETING //------------------------------------------------------------------------------------------------------------ private bool verifyDeleting(objCaixa caixa, AcessoDados dbTran) { try { //--- define Params dbTran.LimparParametros(); dbTran.AdicionarParametros("@IDCaixa", caixa.IDCaixa); dbTran.AdicionarParametros("@DataFinal", caixa.DataFinal); dbTran.AdicionarParametros("@IDConta", caixa.IDConta); dbTran.ConvertNullParams(); string query = "SELECT COUNT(*) AS Total " + "FROM tblCaixa WHERE IDConta = @IDConta " + "AND DataFinal >= @DataFinal AND IDCaixa <> @IDCaixa"; DataTable dt = dbTran.ExecutarConsulta(CommandType.Text, query); if (dt.Rows.Count == 0) { throw new Exception("Não houve retorno na consulta de verificação de caixas"); } if ((int)dt.Rows[0]["Total"] > 0) { return(false); } return(true); } catch (Exception ex) { throw ex; } }
private void AbrirCaixa() { try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; //--- check selected item if (dgvListagem.SelectedRows.Count == 0) { AbrirDialog("Favor selecionar um registro para Visualizar...", "Selecionar Registro", DialogType.OK, DialogIcon.Information); return; } objCaixa caixa = (objCaixa)dgvListagem.SelectedRows[0].DataBoundItem; var frm = new frmCaixa(caixa, Application.OpenForms[0]); frm.MdiParent = Application.OpenForms[0]; frm.Show(); Close(); } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Abrir o formulário de caixa..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
// UPDATE CAIXA //------------------------------------------------------------------------------------------------------------ public bool UpdateCaixa(objCaixa caixa, AcessoDados dbTran) { AcessoDados db = null; try { db = dbTran == null ? new AcessoDados() : dbTran; if (dbTran == null) { db.BeginTransaction(); } //--- clear Params db.LimparParametros(); //--- define Params db.AdicionarParametros("@IDCaixa", caixa.IDCaixa); db.AdicionarParametros("@FechamentoData", caixa.FechamentoData); db.AdicionarParametros("@IDConta", caixa.IDConta); db.AdicionarParametros("@DataInicial", caixa.DataInicial); db.AdicionarParametros("@DataFinal", caixa.DataFinal); db.AdicionarParametros("@SaldoAnterior", caixa.SaldoAnterior); db.AdicionarParametros("@SaldoFinal", caixa.SaldoFinal); db.AdicionarParametros("@IDSituacao", caixa.IDSituacao); db.AdicionarParametros("@IDUsuario", caixa.IDUsuario); db.AdicionarParametros("@CaixaFinalDoDia", caixa.CaixaFinalDoDia); //--- convert null parameters db.ConvertNullParams(); string query = db.CreateUpdateSQL("tblCaixa", "IDCaixa"); //--- execute update db.ExecutarManipulacao(CommandType.Text, query); //--- change observacao ObservacaoBLL oBLL = new ObservacaoBLL(); oBLL.SaveObservacao(3, (long)caixa.IDCaixa, caixa.Observacao, db); //--- commit and return if (dbTran == null) { db.CommitTransaction(); } return(true); } catch (Exception ex) { if (dbTran == null) { db.RollBackTransaction(); } throw ex; } }
// FINALIZE CAIXA //------------------------------------------------------------------------------------------------------------ public bool FinalizeCaixa(objCaixa caixa) { AcessoDados db = null; try { db = new AcessoDados(); db.BeginTransaction(); // 1. BLOCK older Caixa Conta SITUACAO = 3 //------------------------------------------------------------------------------------------------------------ db.LimparParametros(); //--- define Params db.AdicionarParametros("@IDCaixa", caixa.IDCaixa); db.AdicionarParametros("@IDConta", caixa.IDConta); db.AdicionarParametros("@DataFinal", caixa.DataFinal); //--- convert null parameters db.ConvertNullParams(); //--- define query string query = "UPDATE tblCaixa SET IDSituacao = 3 " + "WHERE IDConta = @IDConta " + "AND DataFinal <= @DataFinal " + "AND IDCaixa <> @IDCaixa"; //--- execute update db.ExecutarManipulacao(CommandType.Text, query); // 2. BLOCK CONTA Date //------------------------------------------------------------------------------------------------------------ DateTime blockDate = caixa.CaixaFinalDoDia == false ? caixa.DataFinal : caixa.DataFinal.AddDays(1); new ContaBLL().UpdateContaBloqueioData(caixa.IDConta, blockDate, db); // 3. UPDATE Caixa //------------------------------------------------------------------------------------------------------------ UpdateCaixa(caixa, db); // COMMIT and RETURN //------------------------------------------------------------------------------------------------------------ db.CommitTransaction(); return(true); } catch (Exception ex) { db.RollBackTransaction(); throw ex; } }
private void btnEfetuar_Click(object sender, EventArgs e) { var newCaixa = new objCaixa(null) { DataFinal = dtpDataFinal.Value, DataInicial = lastCaixa.DataInicial, IDConta = (int)ContaSelected.IDConta, CaixaFinalDoDia = false, Conta = ContaSelected.Conta, ContaBloqueioData = ContaSelected.BloqueioData, ContaSaldo = ContaSelected.ContaSaldo, FechamentoData = DateTime.Today, IDSituacao = 1, SaldoAnterior = lastCaixa.SaldoFinal, SaldoFinal = 0, Situacao = "Iniciado", IDUsuario = (int)Program.usuarioAtual.IDUsuario, UsuarioApelido = Program.usuarioAtual.UsuarioApelido, Observacao = "" }; //--- INSERT NEW CAIXA try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; newCaixa.IDCaixa = cBLL.InsertCaixa(newCaixa); //--- open form var frm = new frmCaixa(newCaixa, Application.OpenForms[0]); frm.MdiParent = Application.OpenForms[0]; frm.Show(); Close(); } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Inserir o novo Caixa..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
// GET Movimentacao LIST BY IDCaixa //------------------------------------------------------------------------------------------------------------ public List <objMovimentacao> GetMovimentacaoCaixaList( objCaixa caixa, objUsuario user, object dbTran = null) { try { AcessoDados db = dbTran == null ? new AcessoDados() : (AcessoDados)dbTran; //--- update MOVIMENTACAO if (user.UsuarioAcesso == 1) { InsertCaixaMovs(caixa, db); } // add params db.LimparParametros(); db.AdicionarParametros("@IDCaixa", caixa.IDCaixa); string query = "SELECT * FROM qryMovimentacao WHERE IDCaixa = @IDCaixa"; query += " ORDER BY MovData"; List <objMovimentacao> listagem = new List <objMovimentacao>(); DataTable dt = db.ExecutarConsulta(CommandType.Text, query); if (dt.Rows.Count == 0) { return(listagem); } foreach (DataRow row in dt.Rows) { listagem.Add(ConvertRowInClass(row, false)); } return(listagem); } catch (Exception ex) { throw ex; } }
// INSERT CAIXA //------------------------------------------------------------------------------------------------------------ public long InsertCaixa(objCaixa caixa) { AcessoDados db = null; try { db = new AcessoDados(); db.BeginTransaction(); //--- clear Params db.LimparParametros(); //--- define Params db.AdicionarParametros("@FechamentoData", caixa.FechamentoData); db.AdicionarParametros("@IDConta", caixa.IDConta); db.AdicionarParametros("@DataInicial", caixa.DataInicial); db.AdicionarParametros("@DataFinal", caixa.DataFinal); db.AdicionarParametros("@SaldoAnterior", caixa.SaldoAnterior); db.AdicionarParametros("@SaldoFinal", caixa.SaldoFinal); db.AdicionarParametros("@IDSituacao", caixa.IDSituacao); db.AdicionarParametros("@IDUsuario", caixa.IDUsuario); db.AdicionarParametros("@CaixaFinalDoDia", caixa.CaixaFinalDoDia); //--- convert null parameters db.ConvertNullParams(); string query = db.CreateInsertSQL("tblCaixa"); //--- insert and Get new ID long newID = db.ExecutarInsertAndGetID(query); caixa.IDCaixa = newID; //--- return db.CommitTransaction(); return(newID); } catch (Exception ex) { db.RollBackTransaction(); throw ex; } }
// CONVERT ROW IN CLASS //------------------------------------------------------------------------------------------------------------ public objCaixa ConvertRowInClass(DataRow row) { objCaixa caixa = new objCaixa((long)row["IDCaixa"]) { FechamentoData = (DateTime)row["FechamentoData"], IDConta = (int)row["IDConta"], Conta = row["Conta"] == DBNull.Value ? null : (string)row["Conta"], ContaSaldo = (decimal)row["ContaSaldo"], ContaBloqueioData = row["ContaBloqueioData"] == DBNull.Value ? null : (DateTime?)row["ContaBloqueioData"], DataFinal = (DateTime)row["DataFinal"], DataInicial = (DateTime)row["DataInicial"], SaldoAnterior = (decimal)row["SaldoAnterior"], SaldoFinal = (decimal)row["SaldoFinal"], IDSituacao = (byte)row["IDSituacao"], Situacao = (string)row["Situacao"], IDUsuario = (int)row["IDUsuario"], UsuarioApelido = (string)row["UsuarioApelido"], CaixaFinalDoDia = (bool)row["CaixaFinalDoDia"], Observacao = row["Observacao"] == DBNull.Value ? string.Empty : (string)row["Observacao"], }; return(caixa); }
// UPDATE MOVIMENTACOES TO INSERT IN CAIXA //------------------------------------------------------------------------------------------------------------ private void InsertCaixaMovs(objCaixa caixa, AcessoDados dbTran) { try { // UPDATE tblMovimentacao dbTran.LimparParametros(); dbTran.AdicionarParametros("@IDCaixa", caixa.IDCaixa); dbTran.AdicionarParametros("@IDConta", caixa.IDConta); dbTran.AdicionarParametros("@DataInicial", caixa.DataInicial); dbTran.AdicionarParametros("@DataFinal", caixa.DataFinal); string query = "UPDATE tblMovimentacao SET IDCaixa = @IDCaixa " + "WHERE MovData >= @DataInicial " + "AND MovData <= @DataFinal " + "AND IDConta = @IDConta " + "AND IDCaixa IS NULL"; dbTran.ExecutarManipulacao(CommandType.Text, query); } catch (Exception ex) { throw ex; } }
// DELETE | REMOVE CAIXA //------------------------------------------------------------------------------------------------------------ public void DeleteCaixa(objCaixa caixa) { AcessoDados db = null; try { db = new AcessoDados(); db.BeginTransaction(); // 1. CHECK CAIXA //------------------------------------------------------------------------------------------------------------ if (!verifyDeleting(caixa, db)) { throw new AppException("Caixa não pode ser excluído porque existem outro(s) caixa(s) na mesma conta depois dele..."); } // 2. REMOVE AJUSTES //------------------------------------------------------------------------------------------------------------ new AjusteBLL().RemoveAjusteFromCaixa((long)caixa.IDCaixa, db); // 3. UPDATE MOVIMENTACAO //------------------------------------------------------------------------------------------------------------ //--- define Params db.LimparParametros(); db.AdicionarParametros("@IDCaixa", caixa.IDCaixa); db.ConvertNullParams(); string query = "UPDATE tblMovimentacao SET IDCaixa = NULL WHERE IDCaixa = @IDCaixa"; //--- execute update db.ExecutarManipulacao(CommandType.Text, query); // 4. REMOVE OBSERVACAO //------------------------------------------------------------------------------------------------------------ ObservacaoBLL oBLL = new ObservacaoBLL(); oBLL.DeleteObservacao(3, (long)caixa.IDCaixa, db); // 5. DELETE CAIXA //------------------------------------------------------------------------------------------------------------ //--- define Params db.LimparParametros(); db.AdicionarParametros("@IDCaixa", caixa.IDCaixa); db.ConvertNullParams(); query = "DELETE tblCaixa WHERE IDCaixa = @IDCaixa"; //--- execute update db.ExecutarManipulacao(CommandType.Text, query); // 6. COMMIT AND RETURN //------------------------------------------------------------------------------------------------------------ db.CommitTransaction(); } catch (Exception ex) { db.RollBackTransaction(); throw ex; } }
// UNBLOCK CAIXA //------------------------------------------------------------------------------------------------------------ public DateTime DesbloquearCaixa(objCaixa caixa) { AcessoDados db = null; DateTime? oldDataPadraoConta = null; try { db = new AcessoDados(); //--- INICIA TRANSACTION db.BeginTransaction(); // 1. CHECK if Caixa is the lastest //------------------------------------------------------------------------------------------------------------ db.LimparParametros(); //--- define Params db.AdicionarParametros("@IDCaixa", caixa.IDCaixa); db.AdicionarParametros("@IDConta", caixa.IDConta); db.AdicionarParametros("@DataFinal", caixa.DataFinal); string query = "SELECT COUNT(*) AS QUANT " + "FROM tblCaixa " + "WHERE IDConta = @IDConta " + "AND DataInicial >= @DataFinal " + "AND IDCaixa > @IDCaixa;"; //--- execute SELECT DataTable dt = db.ExecutarConsulta(CommandType.Text, query); if (dt.Rows.Count == 0) { throw new Exception("Consulta não retornou nenhum resultado..."); } if ((int)dt.Rows[0]["QUANT"] > 0) { throw new AppException("Não é possível desbloquerar porque o caixa não é o último da Conta..."); } // 2. GET the PREVIOUS IDCAIXA to UNLOCK //------------------------------------------------------------------------------------------------------------ db.LimparParametros(); //--- define Params db.AdicionarParametros("@IDCaixa", caixa.IDCaixa); db.AdicionarParametros("@IDConta", caixa.IDConta); db.AdicionarParametros("@DataInicial", caixa.DataInicial); query = "SELECT TOP 1 IDCaixa, CaixaFinalDoDia, DataFinal " + "FROM tblCaixa " + "WHERE IDConta = @IDConta " + "AND DataFinal <= @DataInicial " + "AND IDCaixa < @IDCaixa " + "ORDER BY IDCaixa DESC"; //--- execute SELECT dt = db.ExecutarConsulta(CommandType.Text, query); DataRow dtRow = null; if (dt.Rows.Count > 0) { dtRow = dt.Rows[0]; } // 3. UNBLOCK older Caixa Conta SET SITUACAO = 2 //------------------------------------------------------------------------------------------------------------ if (dtRow != null) { db.LimparParametros(); //--- define Params db.AdicionarParametros("@IDCaixa", (long)dtRow["IDCaixa"]); //--- define query query = "UPDATE tblCaixa SET IDSituacao = 2 " + "WHERE IDCaixa = @IDCaixa"; //--- execute update db.ExecutarManipulacao(CommandType.Text, query); } // 4. unBLOCK CONTA Date //------------------------------------------------------------------------------------------------------------ if (dtRow != null) { DateTime blockDate = (bool)dtRow["CaixaFinalDoDia"] == false ? (DateTime)dtRow["DataFinal"] : ((DateTime)dtRow["DataFinal"]).AddDays(1); new ContaBLL().UpdateContaBloqueioData(caixa.IDConta, blockDate, db); oldDataPadraoConta = blockDate; } else { new ContaBLL().UpdateContaBloqueioData(caixa.IDConta, caixa.DataInicial, db); oldDataPadraoConta = caixa.DataInicial; } // 5. UPDATE Caixa //------------------------------------------------------------------------------------------------------------ caixa.IDSituacao = 1; caixa.Situacao = "Iniciado"; UpdateCaixa(caixa, db); // COMMIT and RETURN //------------------------------------------------------------------------------------------------------------ db.CommitTransaction(); return((DateTime)oldDataPadraoConta); } catch (Exception ex) { db.RollBackTransaction(); throw ex; } }
// GET LAST CAIXA CONTA //------------------------------------------------------------------------------------------------------------ public objCaixa GetLastCaixa(int IDConta) { try { AcessoDados db = new AcessoDados(); db.BeginTransaction(); //--- get the MAXDATE to verify movimentacao and continue DateTime?MaxDate = GetMaxDateContaMov(IDConta, db); if (MaxDate == null) { throw new AppException("Essa Conta não possui nenhuma movimentação pendente de caixa..."); } //--- get lastCaixa objCaixa LastCaixa = null; string query = "SELECT TOP 1 * FROM qryCaixa WHERE IDConta = @IDConta ORDER BY IDCaixa DESC"; db.LimparParametros(); db.AdicionarParametros("@IDConta", IDConta); DataTable dt = db.ExecutarConsulta(CommandType.Text, query); //--- if LASTCaixa => NULL construct new objCaixa to return if (dt.Rows.Count == 0) { objConta conta = new ContaBLL().GetConta(IDConta, db); LastCaixa = new objCaixa(null) { DataFinal = (DateTime)MaxDate, DataInicial = GetMinDateContaMov(IDConta, db), IDConta = IDConta, CaixaFinalDoDia = false, Conta = conta.Conta, ContaBloqueioData = conta.BloqueioData, ContaSaldo = conta.ContaSaldo, FechamentoData = DateTime.Today, IDSituacao = 0, SaldoAnterior = 0, SaldoFinal = 0, Situacao = "Iniciado", }; return(LastCaixa); } //--- else convert DataRow in objCaixa LastCaixa = ConvertRowInClass(dt.Rows[0]); //--- Redefine control Dates LastCaixa.DataInicial = LastCaixa.CaixaFinalDoDia ? LastCaixa.DataFinal.AddDays(1) : LastCaixa.DataFinal; LastCaixa.DataFinal = (DateTime)MaxDate; return(LastCaixa); } catch (Exception ex) { throw ex; } }
private void ObterDados() { try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; //--- Check Conta if (ContaSelected == null) { AbrirDialog("Favor selecionar uma conta...", "Conta"); txtConta.Focus(); } //--- Get LAST CAIXA lastCaixa = cBLL.GetLastCaixa((int)ContaSelected.IDConta); //--- check if is situacao = iniciado if (lastCaixa.IDSituacao == 1) { AbrirDialog("Essa conta possui um caixa que ainda não foi finalizado...", "Caixa Não Finalizado"); //--- OPEN FORM CAIXA try { //--- open form var frm = new frmCaixa(lastCaixa, Application.OpenForms[0]); frm.Show(); Close(); } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Inserir o novo Caixa..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } return; } PreecheCampos(); btnEfetuar.Enabled = true; } catch (AppException ex) { AbrirDialog(ex.Message, "Aviso", DialogType.OK, DialogIcon.Exclamation); btnEfetuar.Enabled = false; } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Obter as informações do caixa anterior..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); btnEfetuar.Enabled = false; } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }