/// <summary> /// Fatura a comissao de venda gerandos os lançamentos financeiros. /// </summary> /// <param name="venda"></param> /// <returns></returns> public bool FaturarComissao(List <LancamentoFinanceiro> lancamentosComissoes, TypeFaturamentoComissao type) { //using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required, // new TransactionOptions() { IsolationLevel = IsolationLevel.Serializable })) //{ var lancamento = lancamentosComissoes.First(); int idVenda = lancamento.IdVenda.Value; try { using (var ctx = new BalcaoContext()) { if (type == TypeFaturamentoComissao.Integral) { //limpe todas as comissoes ctx.ComissaoVendaUsuarioDao.Delete(c => c.IdVenda == idVenda); //recupere a venda var venda = ctx.VendaDao.Find(idVenda); //crie uma nova comissão var comissao = new ComissaoVendaUsuario(venda); //crie o lançamento da comissão comissao.Lancamentos.Add(lancamento); //crie a nova comissão ctx.ComissaoVendaUsuarioDao.Save(comissao); } else { //salva o lançamento foreach (var lancto in lancamentosComissoes) { lancto.CliFor = null; ctx.LancamentoFinanceiroDao.Save(lancto); var cv = ctx.ComissaoVendaUsuarioDao.Find(lancto.IdComissaoVenda); cv.FaturarComissao(); ctx.ComissaoVendaUsuarioDao.Update(cv); } } return(true);// XMessageIts.Mensagem("Comissão da venda nº: " + idVenda + " faturada com sucesso"); } } catch (Exception ex) { XMessageIts.ExceptionJustMessage(ex, "Não foi possivel faturar comissão da venda nº: " + idVenda); throw ex; } }
/// <summary> /// Cria as comissões ao realizar uma venda /// </summary> /// <param name="venda"></param> public void AddComissaoVenda(Venda venda) { using (var ctx = new BalcaoContext(false)) { var cliFor = new ClienteDaoManager().GetClienteById(venda.IdCliForVenda); //consumidor nao permite comissão if (cliFor.RazaoSocial != "CONSUMIDOR") { var user = ctx.UsuarioDao.Find(venda.IdUsuarioVenda); venda.Usuario = user; //gera comissão de venda foreach (var lancamento in venda.Parcelas) { var comissao = new ComissaoVendaUsuario(venda, lancamento, user); ctx.ComissaoVendaUsuarioDao.Save(comissao); } } } }