示例#1
0
        // INSERT DESPESA DATA PERIODO
        //------------------------------------------------------------------------------------------------------------
        private void InsertDespesaDataPeriodo(objDespesaComum desp, AcessoDados dbTran)
        {
            try
            {
                //--- check DataInicial and DataFinal
                if (desp.DataInicial == null || desp.DataFinal == null)
                {
                    return;
                }

                //--- clear Params
                dbTran.LimparParametros();

                //--- define Params
                dbTran.AdicionarParametros("@IDDespesa", desp.IDDespesa);
                dbTran.AdicionarParametros("@DataInicial", desp.DataInicial);
                dbTran.AdicionarParametros("@DataFinal", desp.DataFinal);

                //--- convert null parameters
                dbTran.ConvertNullParams();

                string query = dbTran.CreateInsertSQL("tblDespesaDataPeriodo");

                //--- insert
                dbTran.ExecutarManipulacao(CommandType.Text, query);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        // EDITAR DESPESA ESCOLHIDA
        //------------------------------------------------------------------------------------------------------------
        private void btnVisualizar_Click(object sender, EventArgs e)
        {
            if (_formOrigem != null && _formOrigem.Name == "frmProvisorio")
            {
                Escolher();
            }
            else
            {
                //--- check selected item
                if (dgvListagem.SelectedRows.Count == 0)
                {
                    AbrirDialog("Favor selecionar um registro para Editar...",
                                "Selecionar Registro", DialogType.OK, DialogIcon.Information);
                    return;
                }

                //--- get Selected item
                objDespesaComum item = (objDespesaComum)dgvListagem.SelectedRows[0].DataBoundItem;

                frmDespesa frm = new frmDespesa(item, this);
                frm.MdiParent = Application.OpenForms.OfType <frmPrincipal>().FirstOrDefault();
                DesativaMenuPrincipal();
                Close();
                frm.Show();
            }
        }
示例#3
0
        // INSERT DESPESA COMUM
        //------------------------------------------------------------------------------------------------------------
        private void InsertDespesaComum(objDespesaComum desp, AcessoDados dbTran)
        {
            try
            {
                //--- clear Params
                dbTran.LimparParametros();

                //--- define Params
                dbTran.AdicionarParametros("@IDDespesa", desp.IDDespesa);
                dbTran.AdicionarParametros("@DocumentoNumero", desp.DocumentoNumero);
                dbTran.AdicionarParametros("@IDDocumentoTipo", desp.IDDocumentoTipo);
                dbTran.AdicionarParametros("@IDSituacao", desp.IDSituacao);
                dbTran.AdicionarParametros("@Parcelas", desp.Parcelas);
                dbTran.AdicionarParametros("@Prioridade", desp.Prioridade);

                //--- convert null parameters
                dbTran.ConvertNullParams();

                string query = dbTran.CreateInsertSQL("tblDespesaComum");

                //--- insert
                dbTran.ExecutarManipulacao(CommandType.Text, query);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private void mnuImagemVisualizar_Click(object sender, EventArgs e)
        {
            //--- check selected item
            if (dgvListagem.SelectedRows.Count == 0)
            {
                AbrirDialog("Favor selecionar um registro para Visualizar Imagem...",
                            "Selecionar Registro", DialogType.OK, DialogIcon.Information);
                return;
            }

            //--- get Selected item
            objDespesaComum item = (objDespesaComum)dgvListagem.SelectedRows[0].DataBoundItem;

            try
            {
                // --- Ampulheta ON
                Cursor.Current = Cursors.WaitCursor;
                ImagemUtil.ImagemVisualizar(item.Imagem);
            }
            catch (Exception ex)
            {
                AbrirDialog("Uma exceção ocorreu ao Visualizar a imagem..." + "\n" +
                            ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation);
            }
            finally
            {
                // --- Ampulheta OFF
                Cursor.Current = Cursors.Default;
            }
        }
        // EXCLUIR DESPESA
        //------------------------------------------------------------------------------------------------------------
        private void btnExcluir_Click(object sender, EventArgs e)
        {
            //--- check selected item
            if (dgvListagem.SelectedRows.Count == 0)
            {
                AbrirDialog("Favor selecionar um registro para Excluir...",
                            "Selecionar Registro", DialogType.OK, DialogIcon.Information);
                return;
            }

            //--- get Selected item
            objDespesaComum item = (objDespesaComum)dgvListagem.SelectedRows[0].DataBoundItem;

            try
            {
                // --- Ampulheta ON
                Cursor.Current = Cursors.WaitCursor;

                // --- ask USER
                var resp = AbrirDialog("Você deseja realmente EXCLUIR definitivamente a Despesa abaixo?\n" +
                                       $"\nREG: {item.IDDespesa:D4}\nDATA: {item.DespesaData.ToShortDateString()}\nVALOR: {item.DespesaValor:c}",
                                       "Excluir Despesa", DialogType.SIM_NAO, DialogIcon.Question, DialogDefaultButton.Second);

                if (resp != DialogResult.Yes)
                {
                    return;
                }

                //--- EXECUTE DELETE
                dBLL.DeleteDespesaComum(item);

                //--- REQUERY LIST
                ObterDados();

                AbrirDialog("Despesa Excluída com Sucesso!", "Despesa Excluída");
            }
            catch (AppException ex)
            {
                AbrirDialog("A Despesa está protegida de exclusão porque:\n" +
                            ex.Message, "Bloqueio de Exclusão", DialogType.OK, DialogIcon.Exclamation);
            }
            catch (Exception ex)
            {
                AbrirDialog("Uma exceção ocorreu ao Excluir Despesa..." + "\n" +
                            ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation);
            }
            finally
            {
                // --- Ampulheta OFF
                Cursor.Current = Cursors.Default;
            }
        }
        // DEFINE DESPESA TO SAVE
        //------------------------------------------------------------------------------------------------------------
        private objDespesaComum DefineDespesa(List <objComissao> comissoes, DateTime PagData, decimal Total)
        {
            // create format Identificador
            string desc = "Pag. Comissão: " + comissoes[0].Credor;

            if (desc.Length > 200)
            {
                desc.Substring(0, 200);
            }

            // create format Doc. Numero
            string Id = "";

            comissoes.ForEach(x => Id += ((int)x.IDComissao).ToString("D2") + " | ");
            Id = Id.Substring(0, Id.Length - 3);
            if (Id.Length > 30)
            {
                Id = Id.Substring(0, 30);
            }

            // get dtInicial a dtFinal
            DateTime despDtInicial = comissoes.Min(x => x.DataInicial);
            DateTime despDtFinal   = comissoes.Max(x => x.DataFinal);

            var despesa = new objDespesaComum(null)
            {
                Credor           = comissoes[0].Credor,
                DespesaData      = PagData,
                CNP              = "",
                DataFinal        = despDtFinal,
                DataInicial      = despDtInicial,
                DespesaDescricao = desc,
                DespesaOrigem    = 1,
                DespesaTipo      = "Comissão Colaborador",
                DespesaValor     = Total,
                DocumentoNumero  = Id,
                DocumentoTipo    = "Recibo Próprio",              // recibo proprio
                IDCredor         = comissoes[0].IDCredor,
                IDDespesa        = null,
                IDDespesaTipo    = 1,
                IDDocumentoTipo  = 4,
                IDSetor          = comissoes[0].IDSetor,
                IDSituacao       = 2,
                IDTitular        = null,
                Parcelas         = 1,
                Setor            = comissoes[0].Setor,
                Situacao         = "Quitada",
            };

            return(despesa);
        }
        private void mnuImagemRemover_Click(object sender, EventArgs e)
        {
            //--- check selected item
            if (dgvListagem.SelectedRows.Count == 0)
            {
                AbrirDialog("Favor selecionar um registro para Visualizar Imagem...",
                            "Selecionar Registro", DialogType.OK, DialogIcon.Information);
                return;
            }

            //--- get Selected item
            objDespesaComum item = (objDespesaComum)dgvListagem.SelectedRows[0].DataBoundItem;

            DialogResult resp;

            resp = AbrirDialog("Deseja realmente REMOVER ou DESASSOCIAR a imagem da despesa selecionada?" +
                               "\nA imagem não será excluída mas movida para pasta de Imagens Removidas...",
                               "Remover Imagem", DialogType.SIM_NAO, DialogIcon.Question, DialogDefaultButton.Second);

            if (resp != DialogResult.Yes)
            {
                return;
            }

            try
            {
                // --- Ampulheta ON
                Cursor.Current = Cursors.WaitCursor;

                //_despesa.Imagem.ReferenceDate = _despesa.DespesaData;
                item.Imagem = ImagemUtil.ImagemRemover(item.Imagem);

                AbrirDialog("Imagem desassociada com sucesso!" +
                            "\nPor segurança a imagem foi guardada na pasta de Imagens Removidas.",
                            "Imagem Removida", DialogType.OK, DialogIcon.Information);
            }
            catch (Exception ex)
            {
                AbrirDialog("Uma exceção ocorreu ao Remover a imagem..." + "\n" +
                            ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation);
            }
            finally
            {
                // --- Ampulheta OFF
                Cursor.Current = Cursors.Default;
            }
        }
示例#8
0
        // CHECK DESPESA REALIZADA BEFORE ANEXAR
        //------------------------------------------------------------------------------------------------------------
        private bool VerificaDespesaAnexada(objDespesaComum newDesp)
        {
            // check data
            if (newDesp.DespesaData < _provisoria.RetiradaData)
            {
                AbrirDialog("A despesa realizada não pode ter uma data anterior à data da despesa provisória...\n" +
                            $"Favor escolher uma despesa com data igual ou depois de {_provisoria.RetiradaData.ToShortDateString()}.", "Anexar Despesa Realizada",
                            DialogType.OK, DialogIcon.Information);
                return(false);
            }

            // check situacao
            if (newDesp.IDSituacao == 1)
            {
                AbrirDialog("A despesa realizada não pode estar em aberto, precisa estar quitada..." +
                            "\nFavor escolher uma despesa quitada.", "Anexar Despesa Realizada",
                            DialogType.OK, DialogIcon.Information);
                return(false);
            }

            // check Despesa Already Anexada
            try
            {
                // --- Ampulheta ON
                Cursor.Current = Cursors.WaitCursor;

                if (provBLL.DespesaAlreadyVinculada((long)newDesp.IDDespesa))
                {
                    AbrirDialog("Essa despesa escolhida já está anexada/vinculada com uma Despesa Provisória..." +
                                "\nFavor escolher outra despesa realizada.", "Anexar Despesa Realizada",
                                DialogType.OK, DialogIcon.Information);
                    return(false);
                }
            }
            catch (Exception ex)
            {
                AbrirDialog("Uma exceção ocorreu ao verifica se a despesa já estava vinculada..." + "\n" +
                            ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation);
            }
            finally
            {
                // --- Ampulheta OFF
                Cursor.Current = Cursors.Default;
            }

            return(true);
        }
        // VERIFICA A SITUACAO DA DESPESA BY SITUACAO APAGAR
        //------------------------------------------------------------------------------------------------------------
        private void mnuVerificaSituacao_Click(object sender, EventArgs e)
        {
            //--- check selected item
            if (dgvListagem.SelectedRows.Count == 0)
            {
                AbrirDialog("Favor selecionar um registro para Verificar a Situação...",
                            "Selecionar Registro",
                            DialogType.OK,
                            DialogIcon.Information);
                return;
            }

            //--- get Selected item
            objDespesaComum item = (objDespesaComum)dgvListagem.SelectedRows[0].DataBoundItem;

            try
            {
                // --- Ampulheta ON
                Cursor.Current = Cursors.WaitCursor;

                var result = dBLL.CheckSituacaoDespesa(item);

                if (result)
                {
                    ObterDados();
                    AbrirDialog("Situação da Despesa foi verificada." +
                                "\nA Situação da Despesa foi corrigida.", "Situação Corrigida");
                }
                else
                {
                    AbrirDialog("Situação da Despesa verificada..." +
                                "\nNão foi encontrado nenhum erro.", "Situação Verificada");
                }
            }
            catch (Exception ex)
            {
                AbrirDialog("Uma exceção ocorreu ao Verificar a situação da despesa..." + "\n" +
                            ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation);
            }
            finally
            {
                // --- Ampulheta OFF
                Cursor.Current = Cursors.Default;
            }
        }
示例#10
0
        // PAGAR LIST OF COMISSAO AND CHANGE SITUATION
        //------------------------------------------------------------------------------------------------------------
        public long ComissoesPagamento(
            List <objComissao> list,
            objDespesaComum despesa,
            objAPagar pagar,
            objMovimentacao saida,
            Action <int, decimal> ContaSldLocalUpdate,
            Action <int, decimal> SetorSldLocalUpdate)
        {
            AcessoDados dbTran = null;

            try
            {
                dbTran = new AcessoDados();
                dbTran.BeginTransaction();

                // insert new Despesa Realizada | Gasto
                var  despBLL = new DespesaComumBLL();
                long newID   = despBLL.InsertDespesaRealizada(despesa, pagar, saida, ContaSldLocalUpdate, SetorSldLocalUpdate, dbTran);

                // update all comissoes to PAGO
                string query = "UPDATE tblComissoes SET " +
                               "IDSituacao = 3, " +
                               "IDDespesa = @IDDespesa " +
                               "WHERE IDComissao = @IDComissao";

                foreach (var comissao in list)
                {
                    dbTran.LimparParametros();
                    dbTran.AdicionarParametros("@IDDespesa", newID);
                    dbTran.AdicionarParametros("@IDComissao", comissao.IDComissao);

                    dbTran.ExecutarManipulacao(CommandType.Text, query);
                }

                dbTran.CommitTransaction();

                return(newID);
            }
            catch (Exception ex)
            {
                dbTran.RollBackTransaction();
                throw ex;
            }
        }
示例#11
0
        // INSERT DESPESA COMUM
        //------------------------------------------------------------------------------------------------------------
        public long InsertDespesaComum(objDespesaComum desp, ref List <objAPagar> listAPagar, object dbTran = null)
        {
            AcessoDados db = dbTran == null ? new AcessoDados() : (AcessoDados)dbTran;

            try
            {
                //--- Init Transaction
                if (dbTran == null)
                {
                    db.BeginTransaction();
                }

                //--- insert Despesa
                var newID = new DespesaBLL().InsertDespesa(desp, db);

                //--- insert Despesa Comum
                desp.IDDespesa = newID;
                InsertDespesaComum(desp, db);

                //--- insert DespesaDataPeriodo if necessary
                InsertDespesaDataPeriodo(desp, db);

                //--- insert IDDespesa in APagar List items
                listAPagar.ForEach(x => x.IDDespesa = newID);

                //--- save APagar items
                new APagarBLL().InsertAPagarList(listAPagar, db);

                if (dbTran == null)
                {
                    db.CommitTransaction();
                }
                return(newID);
            }
            catch (Exception ex)
            {
                if (dbTran == null)
                {
                    db.RollBackTransaction();
                }
                throw ex;
            }
        }
        private void dgvListagem_MouseDown(object sender, MouseEventArgs e)
        {
            // check button
            if (e.Button != MouseButtons.Right)
            {
                return;
            }

            // check Escolha
            if (_formOrigem != null && _formOrigem.Name == "frmProvisorio")
            {
                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
            objDespesaComum desp = (objDespesaComum)dgvListagem.Rows[hit.RowIndex].DataBoundItem;

            // mnuImagem
            bool IsThereImagem = desp.Imagem != null && !string.IsNullOrEmpty(desp.Imagem.ImagemFileName);

            mnuImagemRemover.Enabled    = IsThereImagem;
            mnuImagemInserir.Text       = IsThereImagem ? "Alterar Imagem" : "Inserir Imagem";
            mnuImagemVisualizar.Enabled = IsThereImagem;

            // revela menu
            mnuOperacoes.Show(c.PointToScreen(e.Location));
        }
示例#13
0
        // ANEXAR DESPESA
        //------------------------------------------------------------------------------------------------------------
        private void btnAnexarDespesa_Click(object sender, EventArgs e)
        {
            var frm = new frmDespesaListagem(this);

            frm.ShowDialog();

            if (frm.DialogResult != DialogResult.OK)
            {
                return;
            }

            objDespesaComum newDesp = frm.propEscolha;

            if (VerificaDespesaAnexada(newDesp) == false)
            {
                return;
            }

            //--- save
            SaveAttachDespesa(newDesp);
            _provisoria.EndEdit();
            Sit = EnumFlagEstado.RegistroSalvo;
        }
示例#14
0
        // INSERIR NOVA DESPESA GASTO
        //------------------------------------------------------------------------------------------------------------
        private void btnInserirDespesa_Click(object sender, EventArgs e)
        {
            try
            {
                // --- Ampulheta ON
                Cursor.Current = Cursors.WaitCursor;

                frmGasto frm = new frmGasto(new objDespesaComum(null), _provisoria.IDConta, _provisoria.RetiradaData);
                frm.ShowDialog();

                //--- check inserted Despesa
                if (frm.DialogResult != DialogResult.OK)
                {
                    return;
                }

                //--- check Despesa Realizada
                objDespesaComum newDesp = frm.propDespesa;
                if (VerificaDespesaAnexada(newDesp) == false)
                {
                    return;
                }

                //--- save
                SaveAttachDespesa(newDesp);
            }
            catch (Exception ex)
            {
                AbrirDialog("Uma exceção ocorreu ao Abrir o formulário de Despesa Realizada..." + "\n" +
                            ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation);
            }
            finally
            {
                // --- Ampulheta OFF
                Cursor.Current = Cursors.Default;
            }
        }
示例#15
0
        // CONVERT ROW IN CLASS
        //------------------------------------------------------------------------------------------------------------
        public objDespesaComum ConvertRowInClass(DataRow row)
        {
            objDespesaComum despesa = new objDespesaComum((long)row["IDDespesa"])
            {
                DespesaDescricao = (string)row["DespesaDescricao"],
                IDCredor         = (int)row["IDCredor"],
                Credor           = (string)row["Credor"],
                DespesaData      = (DateTime)row["DespesaData"],
                IDDespesaTipo    = (int)row["IDDespesaTipo"],
                DespesaTipo      = (string)row["DespesaTipo"],
                IDDocumentoTipo  = (byte)row["IDDocumentoTipo"],
                DocumentoTipo    = (string)row["DocumentoTipo"],
                DespesaValor     = (decimal)row["DespesaValor"],
                DocumentoNumero  = (string)row["DocumentoNumero"],
                IDSetor          = (int)row["IDSetor"],
                Setor            = (string)row["Setor"],
                IDSituacao       = (byte)row["IDSituacao"],
                Situacao         = (string)row["Situacao"],
                Parcelas         = (byte)row["Parcelas"],
                Prioridade       = (byte)row["Prioridade"],
                IDTitular        = row["IDTitular"] == DBNull.Value ? null : (int?)row["IDTitular"],
                Titular          = row["Titular"] == DBNull.Value ? null : (string)row["Titular"],
                CNP         = row["CNP"] == DBNull.Value ? null : (string)row["CNP"],
                DataFinal   = row["DataFinal"] == DBNull.Value ? null : (DateTime?)row["DataFinal"],
                DataInicial = row["DataInicial"] == DBNull.Value ? null : (DateTime?)row["DataInicial"],
            };

            // SET IMAGEM
            despesa.Imagem.IDOrigem       = (long)despesa.IDDespesa;
            despesa.Imagem.Origem         = EnumImagemOrigem.Despesa;
            despesa.Imagem.ImagemFileName = row["ImagemFileName"] == DBNull.Value ? string.Empty : (string)row["ImagemFileName"];
            despesa.Imagem.ImagemPath     = row["ImagemPath"] == DBNull.Value ? string.Empty : (string)row["ImagemPath"];

            // RETURN
            return(despesa);
        }
        // CRIAR DESPESA DE PAGAMENTO | SAIDA
        //------------------------------------------------------------------------------------------------------------
        private void PagarComissoesSelected()
        {
            // create list of selected comissao
            //---------------------------------------------------------------------
            List <objComissao> selected = new List <objComissao>();

            foreach (DataGridViewRow row in dgvListagem.Rows)
            {
                bool marked = row.Cells[0].Value == null ? false : (bool)row.Cells[0].Value;

                if (marked)
                {
                    selected.Add((objComissao)row.DataBoundItem);
                }
            }

            // check same colaborador
            //---------------------------------------------------------------------
            if (selected.GroupBy(x => x.IDCredor).Count() > 1)
            {
                AbrirDialog("As Comissões selecionadas pertencem a diversos COLABORADORES diferentes..." +
                            "\nAs Comissões selecionadas devem ser de um ÚNICO Colaborador." +
                            "\nFavor selecionar comissões do mesmo colaborador."
                            , "Diversos Colaboradores", DialogType.OK, DialogIcon.Exclamation);
                return;
            }

            // check total
            //---------------------------------------------------------------------
            decimal total = selected.Sum(x => x.ValorComissao);

            // --- ask USER
            //---------------------------------------------------------------------
            string mesage = nItemsSelected > 1 ? $"das {nItemsSelected:00} Comissões selecionadas?" : "da Comissão selecionada?";

            var resp = AbrirDialog("Você deseja realmente REALIZAR O PAGAMENTO " + mesage +
                                   $"\n\nCOLABORADOR: {selected[0].Credor}" +
                                   $"\nVALOR TOTAL: {total:C}",
                                   "Quitar Comissões",
                                   DialogType.SIM_NAO,
                                   DialogIcon.Question,
                                   DialogDefaultButton.Second);

            if (resp != DialogResult.Yes)
            {
                return;
            }

            try
            {
                // open form to get info: CONTA and DATE
                var frm = new frmComissaoQuitarInfo(selected[0], total, this);
                frm.ShowDialog();

                if (frm.DialogResult != DialogResult.OK)
                {
                    return;
                }

                // create apagar and saida
                objDespesaComum despesa = DefineDespesa(selected, frm.propDataEscolhida, total);
                objAPagar       pagar   = DefineAPagar(selected, frm.propDataEscolhida, total);
                objMovimentacao saida   = DefineSaida(
                    frm.propDataEscolhida,
                    (int)frm.propContaEscolhida.IDConta,
                    selected[0].IDSetor,
                    total,
                    frm.propObservacao);

                // create Gasto: Despesa quitada
                long newID = cBLL.ComissoesPagamento
                             (
                    selected,
                    despesa,
                    pagar,
                    saida,
                    ContaSaldoLocalUpdate,
                    SetorSaldoLocalUpdate
                             );

                ObterDados();

                // --- Ampulheta ON
                Cursor.Current = Cursors.WaitCursor;

                //--- message
                resp = AbrirDialog("Pagamento efetuado com sucesso na conta e data informados..." +
                                   "\nDeseja CONFERIR a Despesa criada?",
                                   "Sucesso",
                                   DialogType.SIM_NAO,
                                   DialogIcon.Question,
                                   DialogDefaultButton.Second);

                if (resp == DialogResult.Yes)
                {
                    var frmGt = new Saidas.frmGasto(newID);
                    frmGt.MdiParent = Application.OpenForms[0];
                    Close();
                    frmGt.Show();
                }
            }
            catch (Exception ex)
            {
                AbrirDialog("Uma exceção ocorreu ao Efetuar a Finalização das Comissões Selecionadas..." + "\n" +
                            ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation);
            }
            finally
            {
                // --- Ampulheta OFF
                Cursor.Current = Cursors.Default;
            }
        }
        // INSERT IMAGE
        //------------------------------------------------------------------------------------------------------------
        private void mnuImagemInserir_Click(object sender, EventArgs e)
        {
            //--- check selected item
            if (dgvListagem.SelectedRows.Count == 0)
            {
                AbrirDialog("Favor selecionar um registro para Inserir Imagem...",
                            "Selecionar Registro", DialogType.OK, DialogIcon.Information);
                return;
            }

            //--- get Selected item
            objDespesaComum item = (objDespesaComum)dgvListagem.SelectedRows[0].DataBoundItem;

            try
            {
                // --- Ampulheta ON
                Cursor.Current = Cursors.WaitCursor;

                objImagem imagem = new objImagem()
                {
                    IDOrigem       = (long)item.IDDespesa,
                    Origem         = EnumImagemOrigem.Despesa,
                    ImagemFileName = item.Imagem == null ? string.Empty : item.Imagem.ImagemFileName,
                    ImagemPath     = item.Imagem == null ? string.Empty : item.Imagem.ImagemPath,
                    ReferenceDate  = item.DespesaData,
                };

                // open form to edit or save image
                bool IsNew = item.Imagem == null || string.IsNullOrEmpty(item.Imagem.ImagemPath);
                imagem = ImagemUtil.ImagemGetFileAndSave(imagem, this);

                // check if isUpdated
                bool IsUpdated = false;
                if (item.Imagem != null && imagem != null)
                {
                    IsUpdated = (item.Imagem.ImagemFileName != imagem.ImagemFileName) || (item.Imagem.ImagemPath != imagem.ImagemPath);
                }

                // update imagem object
                item.Imagem = imagem;

                // emit message
                if (IsNew && imagem != null)
                {
                    AbrirDialog("Imagem associada e salva com sucesso!" +
                                "\nPor segurança a imagem foi transferida para a pasta padrão.",
                                "Imagem Salva", DialogType.OK, DialogIcon.Information);
                }
                else if (IsUpdated)
                {
                    AbrirDialog("Imagem alterada com sucesso!" +
                                "\nPor segurança a imagem anterior foi transferida para a pasta de imagens removidas.",
                                "Imagem Alterada", DialogType.OK, DialogIcon.Information);
                }
            }
            catch (Exception ex)
            {
                AbrirDialog("Uma exceção ocorreu ao obter a imagem..." + "\n" +
                            ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation);
            }
            finally
            {
                // --- Ampulheta OFF
                Cursor.Current = Cursors.Default;
            }
        }
示例#18
0
        // INSERT DESPESA REALIZADA | GASTO | DESPESA QUITADA
        //------------------------------------------------------------------------------------------------------------
        public long InsertDespesaRealizada(
            objDespesaComum despesa,
            objAPagar pagar,
            objMovimentacao saida,
            Action <int, decimal> ContaSldLocalUpdate,
            Action <int, decimal> SetorSldLocalUpdate,
            object dbTran = null)
        {
            bool IsTran = dbTran != null;

            try
            {
                // create transaction
                if (!IsTran)
                {
                    dbTran = new AcessoDados();
                }
                if (!IsTran)
                {
                    ((AcessoDados)dbTran).BeginTransaction();
                }

                // Verifica CONTA SALDO
                ContaBLL cBLL = new ContaBLL();

                decimal saldoAtual = cBLL.ContaSaldoGet((int)saida.IDConta, dbTran);

                if (saida.MovValor > saldoAtual)
                {
                    throw new AppException("Não existe SALDO SUFICIENTE na conta para realizar esse débito...", 1);
                }

                // Verifica CONTA BLOQUEIO
                if (!cBLL.ContaDateBlockPermit((int)saida.IDConta, saida.MovData, dbTran))
                {
                    throw new AppException("A Data da Conta está BLOQUEADA nesta Data de Débito proposto...", 2);
                }

                // create APagar list
                List <objAPagar> listPag = new List <objAPagar>();
                listPag.Add(pagar);

                // insert Despesa AND APagar
                despesa.IDSituacao = 2;                 // quitada
                long newID = InsertDespesaComum(despesa, ref listPag, dbTran);

                // insert Saida
                saida.MovTipo         = 2;
                saida.Origem          = EnumMovOrigem.APagar;
                saida.IDOrigem        = (long)listPag[0].IDAPagar;
                saida.DescricaoOrigem = $"DESPESA: {despesa.DespesaDescricao}";
                if (saida.DescricaoOrigem.Length > 250)
                {
                    saida.DescricaoOrigem = saida.DescricaoOrigem.Substring(0, 250);
                }

                new MovimentacaoBLL().InsertMovimentacao(saida, ContaSldLocalUpdate, SetorSldLocalUpdate, dbTran);

                // commit and return
                if (!IsTran)
                {
                    ((AcessoDados)dbTran).CommitTransaction();
                }
                return(newID);
            }
            catch (Exception ex)
            {
                if (!IsTran)
                {
                    ((AcessoDados)dbTran).RollBackTransaction();
                }
                throw ex;
            }
        }
示例#19
0
        // DELETE
        //------------------------------------------------------------------------------------------------------------
        public bool DeleteDespesaComum(objDespesaComum despesa)
        {
            AcessoDados dbTran = null;

            try
            {
                dbTran = new AcessoDados();
                dbTran.BeginTransaction();

                // 1 - CHECK APagar and Movimentacao Saida
                //------------------------------------------------------------------------------------------------------------
                List <objAPagar>       listAPagar    = new List <objAPagar>();
                List <objMovimentacao> listMovSaidas = new List <objMovimentacao>();

                if (!VerifyBeforeDelete(despesa, ref listAPagar, ref listMovSaidas, dbTran))
                {
                    return(false);
                }

                // 2 - delete ALL APAGAR
                //------------------------------------------------------------------------------------------------------------
                if (listAPagar.Count > 0)
                {
                    APagarBLL pBLL = new APagarBLL();

                    foreach (objAPagar pagar in listAPagar)
                    {
                        pBLL.DeleteAPagar(pagar, dbTran);
                    }
                }

                // 3 - delete DESPESA COMUM
                //------------------------------------------------------------------------------------------------------------

                //--- define Params
                dbTran.LimparParametros();
                dbTran.AdicionarParametros("@IDDespesa", despesa.IDDespesa);
                dbTran.ConvertNullParams();

                //--- create query
                string query = "DELETE tblDespesaComum WHERE IDDespesa = @IDDespesa";

                //--- DELETE
                dbTran.ExecutarManipulacao(CommandType.Text, query);

                // 4 - delete DESPESA DATA PERIODO
                //------------------------------------------------------------------------------------------------------------

                //--- define Params
                dbTran.LimparParametros();
                dbTran.AdicionarParametros("@IDDespesa", despesa.IDDespesa);
                dbTran.ConvertNullParams();

                //--- create query
                query = "DELETE tblDespesaDataPeriodo WHERE IDDespesa = @IDDespesa";

                //--- DELETE
                dbTran.ExecutarManipulacao(CommandType.Text, query);

                // 5 - delete DESPESA
                //------------------------------------------------------------------------------------------------------------

                //--- define Params
                dbTran.LimparParametros();
                dbTran.AdicionarParametros("@IDDespesa", despesa.IDDespesa);
                dbTran.ConvertNullParams();

                //--- create query
                query = "DELETE tblDespesa WHERE IDDespesa = @IDDespesa";

                //--- DELETE
                dbTran.ExecutarManipulacao(CommandType.Text, query);

                // 6 - UPDATE REMOVE DESPESA COMISSAO reference
                //------------------------------------------------------------------------------------------------------------

                //--- define Params
                dbTran.LimparParametros();
                dbTran.AdicionarParametros("@IDDespesa", despesa.IDDespesa);
                dbTran.ConvertNullParams();

                //--- create query
                query = "UPDATE tblComissoes SET IDDespesa = null WHERE IDDespesa = @IDDespesa";

                //--- UPDATE
                dbTran.ExecutarManipulacao(CommandType.Text, query);


                // 7 - COMMIT AND RETURN
                //------------------------------------------------------------------------------------------------------------
                dbTran.CommitTransaction();
                return(true);
            }
            catch (AppException ex)
            {
                dbTran.RollBackTransaction();
                throw ex;
            }
            catch (Exception ex)
            {
                dbTran.RollBackTransaction();
                throw ex;
            }
        }
示例#20
0
        // VERIFY DESPESA BEFORE DELETE
        //------------------------------------------------------------------------------------------------------------
        public bool VerifyBeforeDelete(objDespesaComum despesa,
                                       ref List <objAPagar> listAPagar,
                                       ref List <objMovimentacao> listMovSaidas,
                                       AcessoDados dbTran)
        {
            try
            {
                long IDDespesa = (long)despesa.IDDespesa;

                // VERIFY IMAGEM
                //------------------------------------------------------------------------------------------------------------
                if (despesa.Imagem != null && !string.IsNullOrEmpty(despesa.Imagem.ImagemFileName))
                {
                    throw new AppException("A despesa não pode ser excluída pois possui uma imagem vinculada a ela...");
                }

                // GET APAGAR
                //------------------------------------------------------------------------------------------------------------
                listAPagar = new APagarBLL().GetListAPagarByDespesa(IDDespesa, dbTran);

                // VERIFY APAGAR
                //------------------------------------------------------------------------------------------------------------
                bool   err        = false;
                string errMessage = "Os a PAGAR abaixo possuem pagamentos...\n";

                Action <objAPagar> addMessage = (pagar) =>
                {
                    errMessage += $"Reg.: {pagar.IDAPagar:D4}    {pagar.Vencimento.ToShortDateString()}\n";
                    err         = true;
                };

                listAPagar.Where(x => x.IDSituacao == 2).ToList().ForEach(addMessage);

                if (err == true)
                {
                    errMessage += "Favor estornar antes os pagamentos se deseja EXCLUIR a despesa.";
                    throw new AppException(errMessage);
                }

                // VERIFY APAGAR IMAGES
                //------------------------------------------------------------------------------------------------------------
                errMessage = "Os APagar abaixo possuem IMAGEM associada\n";

                listAPagar.Where(x => x.Imagem != null && !string.IsNullOrEmpty(x.Imagem.ImagemFileName)).ToList().ForEach(addMessage);

                if (err == true)
                {
                    errMessage += "Favor remover/desassociar as imagens do APagar se deseja EXCLUIR a despesa.";
                    throw new AppException(errMessage);
                }

                // VERIFY MOVIMENTACAO SAIDA FROM APAGAR
                //------------------------------------------------------------------------------------------------------------
                MovimentacaoBLL mBLL = new MovimentacaoBLL();
                listMovSaidas = new List <objMovimentacao>();

                if (listAPagar.Count > 0)
                {
                    foreach (objAPagar pagar in listAPagar)
                    {
                        listMovSaidas.AddRange(mBLL.GetMovimentacaoListByOrigem(EnumMovOrigem.APagar, (long)pagar.IDAPagar, true, dbTran));
                    }
                }

                // VERIFY RECEBIMENTOS WITH CAIXA OR BLOCKED
                //------------------------------------------------------------------------------------------------------------
                errMessage = "Essa Despesa possui pagamentos que foram inseridas no caixa...\n";

                Action <objMovimentacao> addMessageMov = (saida) =>
                {
                    errMessage += $"Reg.: {saida.IDMovimentacao:D4} | {saida.MovData.ToShortDateString()} | Caixa: {saida.IDCaixa:D4}\n";
                    err         = true;
                };

                listMovSaidas.Where(x => x.IDCaixa != null).ToList().ForEach(addMessageMov);

                if (err == true)
                {
                    errMessage += "Favor remover o(s) caixa(s) se desejar EXCLUIR a(s) DESPESA.";
                    throw new AppException(errMessage);
                }

                // VERIFY MOVIMENTACAO SAIDA IMAGES
                //------------------------------------------------------------------------------------------------------------
                errMessage = "As Saídas abaixo possuem IMEGEM associada\n";

                listMovSaidas.Where(x => x.Imagem != null && !string.IsNullOrEmpty(x.Imagem.ImagemFileName)).ToList().ForEach(addMessageMov);

                if (err == true)
                {
                    errMessage += "Favor remover/desassociar as imagens das Saídas se deseja EXCLUIR a despesa.";
                    throw new AppException(errMessage);
                }

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
 private void Escolher()
 {
     //--- get Selected item
     propEscolha  = (objDespesaComum)dgvListagem.SelectedRows[0].DataBoundItem;
     DialogResult = DialogResult.OK;
 }
        // DELETE
        //------------------------------------------------------------------------------------------------------------
        public bool DeleteDespesaPeriodica(objDespesaPeriodica periodica)
        {
            AcessoDados dbTran = null;

            //--- get despesa from periodica
            objDespesaComum despesa = new objDespesaComum(periodica.IDDespesa)
            {
                DespesaDescricao = periodica.DespesaDescricao,
                DespesaOrigem    = periodica.DespesaOrigem,
                DespesaValor     = periodica.DespesaValor,
                DespesaData      = periodica.DespesaData,
                IDCredor         = periodica.IDCredor,
                IDSetor          = periodica.IDSetor,
                IDDespesaTipo    = periodica.IDDespesaTipo,
            };

            try
            {
                dbTran = new AcessoDados();
                dbTran.BeginTransaction();

                // 1 - CHECK APagar and Movimentacao Saida
                //------------------------------------------------------------------------------------------------------------
                List <objAPagar>       listAPagar    = new List <objAPagar>();
                List <objMovimentacao> listMovSaidas = new List <objMovimentacao>();

                DespesaComumBLL dBLL = new DespesaComumBLL();

                if (!dBLL.VerifyBeforeDelete(despesa, ref listAPagar, ref listMovSaidas, dbTran))
                {
                    return(false);
                }

                // 2 - delete ALL APAGAR
                //------------------------------------------------------------------------------------------------------------
                if (listAPagar.Count > 0)
                {
                    APagarBLL pBLL = new APagarBLL();

                    foreach (objAPagar pagar in listAPagar)
                    {
                        pBLL.DeleteAPagar(pagar, dbTran);
                    }
                }

                // 3 - delete DESPESA COMUM
                //------------------------------------------------------------------------------------------------------------

                //--- define Params
                dbTran.LimparParametros();
                dbTran.AdicionarParametros("@IDDespesa", despesa.IDDespesa);
                dbTran.ConvertNullParams();

                //--- create query
                string query = "DELETE tblDespesaPeriodica WHERE IDDespesa = @IDDespesa";

                //--- DELETE
                dbTran.ExecutarManipulacao(CommandType.Text, query);

                // 4 - delete DESPESA DATA PERIODO
                //------------------------------------------------------------------------------------------------------------

                //--- define Params
                dbTran.LimparParametros();
                dbTran.AdicionarParametros("@IDDespesa", despesa.IDDespesa);
                dbTran.ConvertNullParams();

                //--- create query
                query = "DELETE tblDespesaDataPeriodo WHERE IDDespesa = @IDDespesa";

                //--- DELETE
                dbTran.ExecutarManipulacao(CommandType.Text, query);

                // 5 - delete DESPESA
                //------------------------------------------------------------------------------------------------------------

                //--- define Params
                dbTran.LimparParametros();
                dbTran.AdicionarParametros("@IDDespesa", despesa.IDDespesa);
                dbTran.ConvertNullParams();

                //--- create query
                query = "DELETE tblDespesa WHERE IDDespesa = @IDDespesa";

                //--- DELETE
                dbTran.ExecutarManipulacao(CommandType.Text, query);

                // 7 - COMMIT AND RETURN
                //------------------------------------------------------------------------------------------------------------
                dbTran.CommitTransaction();
                return(true);
            }
            catch (AppException ex)
            {
                dbTran.RollBackTransaction();
                throw ex;
            }
            catch (Exception ex)
            {
                dbTran.RollBackTransaction();
                throw ex;
            }
        }
示例#23
0
        // CRIAR DESPESA DE PAGAMENTO | SAIDA
        //------------------------------------------------------------------------------------------------------------
        private void PagarComissao()
        {
            // create list of comissao
            //---------------------------------------------------------------------
            List <objComissao> selected = new List <objComissao>();

            selected.Add(_comissao);

            // check total
            //---------------------------------------------------------------------
            decimal total = _comissao.ValorComissao;

            // --- ask USER
            //---------------------------------------------------------------------
            var resp = AbrirDialog("Você deseja realmente REALIZAR O PAGAMENTO da Comissão selecionada?" +
                                   $"\n\nCOLABORADOR: {_comissao.Credor}" +
                                   $"\nVALOR TOTAL: {total:C}",
                                   "Quitar Comissões",
                                   DialogType.SIM_NAO,
                                   DialogIcon.Question,
                                   DialogDefaultButton.Second);

            if (resp != DialogResult.Yes)
            {
                return;
            }

            try
            {
                // open form to get info: CONTA and DATE
                var frm = new frmComissaoQuitarInfo(selected[0], total, this);
                frm.ShowDialog();

                if (frm.DialogResult != DialogResult.OK)
                {
                    return;
                }

                // create apagar and saida
                objDespesaComum despesa = DefineDespesa(selected, frm.propDataEscolhida, total);
                objAPagar       pagar   = DefineAPagar(selected, frm.propDataEscolhida, total);
                objMovimentacao saida   = DefineSaida(
                    frm.propDataEscolhida,
                    (int)frm.propContaEscolhida.IDConta,
                    selected[0].IDSetor,
                    total,
                    frm.propObservacao);

                // create Gasto: Despesa quitada
                long newID = cBLL.ComissoesPagamento
                             (
                    selected,
                    despesa,
                    pagar,
                    saida,
                    ContaSaldoLocalUpdate,
                    SetorSaldoLocalUpdate
                             );

                _comissao.IDDespesa  = newID;
                _comissao.IDSituacao = 3;
                _comissao.EndEdit();
                DefineSituacao();

                // --- Ampulheta ON
                Cursor.Current = Cursors.WaitCursor;

                //--- message
                resp = AbrirDialog("Pagamento efetuado com sucesso na conta e data informados..." +
                                   "\nDeseja CONFERIR a Despesa criada?",
                                   "Sucesso",
                                   DialogType.SIM_NAO,
                                   DialogIcon.Question,
                                   DialogDefaultButton.Second);

                if (resp == DialogResult.Yes)
                {
                    var frmGt = new Saidas.frmGasto(newID);
                    frmGt.MdiParent = Application.OpenForms[0];
                    Close();
                    frmGt.Show();
                }
            }
            catch (Exception ex)
            {
                AbrirDialog("Uma exceção ocorreu ao Efetuar a Finalização das Comissões Selecionadas..." + "\n" +
                            ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation);
            }
            finally
            {
                // --- Ampulheta OFF
                Cursor.Current = Cursors.Default;
            }
        }
示例#24
0
        // VERIFY DESPESA SITUACAO BY LIST OF APAGAR
        //------------------------------------------------------------------------------------------------------------
        public bool CheckSituacaoDespesa(objDespesaComum despesa)
        {
            // return TRUE when IDSitucao is Changed | FALSE when nothing changed
            try
            {
                var dbTran = new AcessoDados();

                var lstAPagar = new APagarBLL().GetListAPagarByDespesa((long)despesa.IDDespesa, dbTran);

                if (lstAPagar.Count == 0)
                {
                    throw new Exception("Não foram encontrados registros de APagar referentes a essa Despesa...");
                }

                byte?newSituacao = null;

                foreach (objAPagar item in lstAPagar)
                {
                    switch (item.IDSituacao)
                    {
                    case 1:                             // EM ABERTO
                        if (newSituacao == null || newSituacao == 2)
                        {
                            newSituacao = 1;
                        }
                        break;

                    case 2:                             // QUITADA
                        if (newSituacao == null)
                        {
                            newSituacao = 2;
                        }
                        break;

                    case 3:                             // CANCELADA
                        if (newSituacao == null || newSituacao < 3)
                        {
                            newSituacao = 3;
                        }
                        break;

                    case 4:                             // NEGOCIADA
                        if (newSituacao == null || newSituacao < 4)
                        {
                            newSituacao = 4;
                        }
                        break;

                    case 5:                             // NEGATIVADA
                        if (newSituacao == null || newSituacao < 5)
                        {
                            newSituacao = 5;
                        }
                        break;

                    default:
                        break;
                    }
                }

                if ((byte)newSituacao != despesa.IDSituacao)
                {
                    despesa.IDSituacao = (byte)newSituacao;

                    // change situacao
                    ChangeSituacaoDespesa((long)despesa.IDDespesa, (byte)newSituacao, dbTran);

                    // return
                    return(true);
                }
                else
                {
                    // return nothing changed
                    return(false);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }