示例#1
0
 public XFrmWizardBaixaLancamento(List <LancamentoFinanceiro> lancamentos,
                                  TypeFaturamentoComissao typeFaturamento) : this(lancamentos)
 {
     this.typeFaturamento         = typeFaturamento;
     this.welcomeWizardPage1.Text = "Bem vindo ao assistente para baixa das comissões";
     gridViewLanctosBaixa.UnSelectAllRow();
     gridViewLanctosBaixa.SelectRows(0, 0);
 }
示例#2
0
        /// <summary>
        /// Gerar as comissoes da venda
        /// </summary>
        /// <param name="venda"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        private List <LancamentoFinanceiro> createComissoes(Venda venda, TypeFaturamentoComissao type)
        {
            var lancamentos = new List <LancamentoFinanceiro>();
            var comissoes   = venda.Comissoes.Where(c => c.StatusComissao != TypeStatusComissaoVenda.Faturado);

            if (type == TypeFaturamentoComissao.Integral)
            {
                //gera um lançamento unico para essa comissa
                //cria uma comissao com base na venda e gera o lancamento
                //faturando a comissão do usuário
                var lancto = new LancamentoFinanceiro(venda)
                {
                    //status da lancamento (comissao)
                    StatusLancamento = TypeStatusLancamentoFinanceiro.Aberto,
                    //comissao eh sempre a pagar
                    TipoLancamento = TypeLancamentoFinanceiro.Pagar,
                    //comissao integral => todas as comissoes
                    ValorLancamento = venda.Comissoes.Sum(cv => cv.ValorComissao),
                    //histórico
                    Observacao = "COMISSÃO INTEGRAL VENDA Nº: " + venda.IdVenda,
                    //forma de pagamento é dinheiro
                    IdFormaPagamento = 1,
                    //informe a venda
                    IdVenda = venda.IdVenda,
                };

                //add
                lancamentos.Add(lancto);
            }
            else
            {
                foreach (var cv in comissoes)
                {
                    //gera um lançamento unico para essa comissa
                    //cria uma comissao com base na venda e gera o lancamento
                    //faturando a comissão do usuário
                    var lancto = new LancamentoFinanceiro(cv);

                    //add
                    lancamentos.Add(lancto);
                }
            }

            return(lancamentos);
        }
示例#3
0
        private void baixarComissoes(Venda venda, TypeFaturamentoComissao type)
        {
            try
            {
                var comissoes   = createComissoes(venda, type);
                var wizardBaixa = new XFrmWizardBaixaLancamento(comissoes, type);

                wizardBaixa.ShowDialog();

                if (wizardBaixa.IsBaixa)
                {
                    this.masterRowComissao.NotifyChidlChanged();
                    gridViewComissoes.RefreshData();
                }
            }
            catch (Exception ex)
            {
                XMessageIts.ExceptionMessageDetails(ex, "Não foi possível baixar as comissões da venda");
            }
        }
示例#4
0
        public XFrmWizardBaixaLancamento()
        {
            InitializeComponent();
            this.typeFaturamento = TypeFaturamentoComissao.None;
            this._manager        = new LancamentoDaoManager();
            //tenta recuperar a conta padrão
            ContaBancaria conta = new ContaBancariaDaoManager().GetContaDefault();

            if (conta != null)
            {
                this.lookUpContaBancaria1.FindSetContaBancaria(conta.CodigoContaBancaria);
            }

            chDataAtual_CheckedChanged(null, null);
            this.ActiveControl = this.cbFormaPagto;
            //listern default
            wizardControl1.EnableSelectedPageChanged();
            //listerner custom
            this.wizardControl1.SelectedPageChanged += new DevExpress.XtraWizard
                                                       .WizardPageChangedEventHandler(this.wizardControl1_SelectedPageChanged);
        }
示例#5
0
        /// <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;
            }
        }