示例#1
0
        private bool startBaixa()
        {
            //se mandei faturar comissoes
            if (typeFaturamento != TypeFaturamentoComissao.None || this.lancamentos.Any(l => l.IdLancamento == 0))
            {
                this.lancamentos = this.gridViewLanctosBaixa.GetSelectedItens <LancamentoFinanceiro>();
                try
                {
                    //gera os lancamentos antes de efetuar as baixas
                    new ComissaoVendaDaoManager().FaturarComissao(lancamentos, typeFaturamento);
                }
                catch
                {
                    return(false);
                }
            }

            var frmPagto = cbFormaPagto.SelectedItem as FormaPagamento;

            //realiza a baixa do lançamento
            bool baixado = _manager.BaixarLancamentos(this.lancamentos, lookUpContaBancaria1.ContaBancaria,
                                                      dtEditDataBaixa.DateTime, frmPagto);

            return(baixado);
        }
示例#2
0
        public async Task <bool> GerarFinanceiro(ParamsGerarFinanceiro parametros)
        {
            int success           = 1;
            int saveOk            = 0;
            var competencia       = parametros.Competencia;
            var lancamentoManager = new LancamentoDaoManager();

            List <LancamentoFinanceiro> lancamentosFinanceiros = new List <LancamentoFinanceiro>();

            #region processamento/criacao dos lancs. financeiros
            if (parametros.TipoGeracao == TypeGeracaoFinanceiroFolha.Analitico)
            {
                foreach (var funcionario in competencia.FuncionariosCompetencia)
                {
                    var nome = funcionario.Funcionario.NomeFuncionario;

                    LancamentoFinanceiro l = new LancamentoFinanceiro()
                    {
                        DataLancamento    = parametros.Data,
                        IdCliFor          = parametros.CliFor.IdCliFor,
                        IdCentroCusto     = parametros.CentroCusto.IdCentroCusto,
                        IdFilial          = parametros.Filial.IdFilial,
                        DataPagamento     = parametros.Data,
                        DataVencimento    = parametros.DataVencimento,
                        Observacao        = "Pagamento funcionario " + nome + " periodo " + competencia.Periodo,
                        QuantidadeAnexos  = 0,
                        RecCreatedBy      = parametros.Usuario.IdUsuario,
                        RecCreatedDate    = DateTime.Now,
                        TipoLancamento    = TypeLancamentoFinanceiro.Pagar,
                        DiasPrazo         = DataUtil.CalcularDias(parametros.Data, parametros.DataVencimento),
                        StatusLancamento  = TypeStatusLancamentoFinanceiro.Aberto,
                        ValorLancamento   = funcionario.ValorLiquido,
                        SequencialParcela = success
                    };
                    lancamentosFinanceiros.Add(l);
                    success++;
                }
            }
            else
            {
                LancamentoFinanceiro l = new LancamentoFinanceiro()
                {
                    DataLancamento    = parametros.Data,
                    IdCliFor          = parametros.CliFor.IdCliFor,
                    IdCentroCusto     = parametros.CentroCusto.IdCentroCusto,
                    IdFilial          = parametros.Filial.IdFilial,
                    DataVencimento    = parametros.DataVencimento,
                    Observacao        = "Pagamento folha periodo " + competencia.Periodo,
                    QuantidadeAnexos  = 0,
                    RecCreatedBy      = parametros.Usuario.IdUsuario,
                    RecCreatedDate    = DateTime.Now,
                    TipoLancamento    = TypeLancamentoFinanceiro.Pagar,
                    DiasPrazo         = DataUtil.CalcularDias(parametros.Data, parametros.DataVencimento),
                    StatusLancamento  = TypeStatusLancamentoFinanceiro.Aberto,
                    ValorLancamento   = competencia.ValorLiquidoFechamento.Value,
                    SequencialParcela = 1
                };
                lancamentosFinanceiros.Add(l);
            }
            #endregion

            //se a lista foi preenchida com os lancamentos financeiros, grave cada um no banco
            if (lancamentosFinanceiros.Count > 0)
            {
                using (var ctx = new BalcaoContext())
                {
                    foreach (var lancFinanceiro in lancamentosFinanceiros)
                    {
                        var result = await ctx.LancamentoFinanceiroDao.SaveAsync(lancFinanceiro);

                        if (result)
                        {
                            saveOk++;
                        }
                    }

                    //se foi tudo salvo ok, verifica se foi marcado para baixar os lancamentos e os baixe.
                    if (saveOk == lancamentosFinanceiros.Count)
                    {
                        if (parametros.BaixarLancamento)
                        {
                            lancamentoManager.BaixarLancamentos(lancamentosFinanceiros, parametros.ContaBancaria,
                                                                parametros.DataBaixa, parametros.FormaPagamento);
                        }
                        //atualiza a competencia informando que teve seus lancamentos gerados
                        var compCurrent = ctx.CompetenciaFolhaDao.Find(competencia.IdCompetencia);
                        if (compCurrent.Status == TypeStatusCompetencia.Encerrada)
                        {
                            compCurrent.Status = TypeStatusCompetencia.EncerradaFinanceiro;
                        }

                        ctx.CompetenciaFolhaDao.Update(compCurrent);

                        return(true);
                    }
                }
            }
            return(false);
        }