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); }
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); }