private void Run_MouseDown_1(object sender, MouseButtonEventArgs e)
        {
            Pagamentos_lancamentosController plController = new Pagamentos_lancamentosController();
            Lancamentos_financeiros          lf           = plController.FindLancamentoByPagamentoId(Parcela.Pagamento_lancamento_id);

            DetalhesLancamento detalhes = new DetalhesLancamento(lf.Id);

            detalhes.ShowDialog();
        }
Esempio n. 2
0
        public Lancamentos_financeirosAdapter(Lancamentos_financeiros lancamento, varejo_config context)
        {
            Lancamento = lancamento;

            Tipo = (lancamento.Tipo == (int)Tipo_lancamento.ENTRADA
                ? "ENTRADA"
                : "SAIDA");

            if (lancamento.Fornecedor_id > 0)
            {
                Fornecedor = context.Fornecedores.Find(lancamento.Fornecedor_id).Nome;
            }

            if (lancamento.Cliente_id > 0)
            {
                Cliente = context.Clientes.Find(lancamento.Cliente_id).Nome;
            }
        }
Esempio n. 3
0
        private void Salvar(bool close)
        {
            if (txData.SelectedDate == null)
            {
                MessageBox.Show("Informe a data do lançamento", "Atenção", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                return;
            }

            Lancamentos_financeiros lancamento = new Lancamentos_financeiros();

            lancamento.Data                = (DateTime)txData.SelectedDate;
            lancamento.Conta_id            = Conta_id;
            lancamento.Num_documento       = txNum_documento.Text;
            lancamento.Origem              = (int)Origem_lancamento.NENHUM;
            lancamento.Tipo                = ((int)(Tipo_lancamento)cbTipo.SelectedValue);
            lancamento.Plano_conta_id      = int.Parse(txCod_planoConta.Text);
            lancamento.Valor_original      = decimal.Parse(txValor_original.Text);
            lancamento.Desconto            = decimal.Parse(txDesconto.Text);
            lancamento.Acrescimo           = decimal.Parse(txAcrescimo.Text);
            lancamento.Despesas_acessorias = decimal.Parse(txDespesas_acessorias.Text);
            lancamento.Valor_final         = decimal.Parse(txValor_final.Text);
            lancamento.Usuario_id          = UsuariosController.UsuarioAtual.Id;
            lancamento.Descricao           = txDescricao.Text;
            lancamento.Cliente_id          = int.Parse(txCod_cliente.Text);
            lancamento.Fornecedor_id       = int.Parse(txCod_fornecedor.Text);

            PagamentoLancamento pagamento = new PagamentoLancamento();

            pagamento.Exibir(lancamento.Valor_final);

            lancamento.Pagamentos_lancamentos = pagamento.Pagamentos;

            if (controller.Save(lancamento))
            {
                if (close)
                {
                    Close();
                }
                else
                {
                    LimparCampos();
                }
            }
        }
Esempio n. 4
0
        private void Fill(int lancamento_id)
        {
            Lancamentos_financeirosController controller = new Lancamentos_financeirosController();
            Lancamentos_financeiros           lancamento = controller.Find(lancamento_id);

            txCod.Text  = lancamento.Id.ToString();
            txData.Text = lancamento.Data.ToString("dd/MM/yyyy");
            txTipo.Text = (lancamento.Tipo == (int)Tipo_lancamento.ENTRADA
                ? "ENTRADA"
                : "SAIDA");
            txNum_documento.Text = lancamento.Num_documento;
            txCliente.Text       = (lancamento.Cliente_id == 0
                ? string.Empty
                : new ClientesController().Find(lancamento.Cliente_id).Nome);
            txFornecedor.Text = (lancamento.Fornecedor_id == 0
                ? string.Empty
                : new FornecedoresController().Find(lancamento.Fornecedor_id).Nome);
            txUsuario.Text             = lancamento.Usuarios.Nome;
            txValor_original.Text      = lancamento.Valor_original.ToString("N2");
            txDesconto.Text            = lancamento.Desconto.ToString("N2");
            txAcrescimo.Text           = lancamento.Acrescimo.ToString("N2");
            txDespesas_acessorias.Text = lancamento.Despesas_acessorias.ToString("N2");
            txValor_final.Text         = lancamento.Valor_final.ToString("N2");
            txDescricao.Text           = lancamento.Descricao;

            dataGrid_pagamentos.ItemsSource = lancamento.Pagamentos_lancamentos;

            new Thread(() =>
            {
                ParcelasController parcController = new ParcelasController();

                varejo_config context         = new varejo_config();
                List <Parcelas> parcelas      = parcController.ListByPagamentosLancamento(lancamento.Pagamentos_lancamentos.ToList());
                List <ParcelaAdapter> listAdp = new List <ParcelaAdapter>();
                parcelas.ForEach(e => listAdp.Add(new ParcelaAdapter(e, context)));

                dataGrid_parcelas.Dispatcher.Invoke(new Action <DataGrid>(dt => dataGrid_parcelas.ItemsSource = listAdp), dataGrid_parcelas);
            }).Start();
        }
        private bool Valid(Lancamentos_financeiros lf)
        {
            if (lf.Conta_id == 0)
            {
                BStatus.Alert("Informe uma conta para efetuar o lançamento");
                return(false);
            }

            if (lf.Data == null)
            {
                BStatus.Alert("A data do lançamento é obrigatória");
                return(false);
            }

            if (lf.Valor_original == 0)
            {
                BStatus.Alert("Informe o valor original do lançamento");
                return(false);
            }

            if (lf.Plano_conta_id == 0)
            {
                BStatus.Alert("Informe o plano de contas");
                return(false);
            }

            if (!string.IsNullOrEmpty(lf.Num_documento))
            {
                if (db.Where(e => e.Num_documento.Equals(lf.Num_documento)).FirstOrDefault() != null)
                {
                    BStatus.Alert("Já existe um lançamento com o número de documento informado. Informe outro numero de documento.");
                    return(false);
                }
            }

            return(true);
        }
        private void EfetuarTransferencia()
        {
            ITelaTransferenciaConta t1 = telas[1];
            ITelaTransferenciaConta t2 = telas[2];

            progressBar.Dispatcher.Invoke(new Action <ProgressBar>(pb => progressBar.Visibility = Visibility.Visible), progressBar);

            Lancamentos_financeirosController controller = new Lancamentos_financeirosController();
            ContasController contasC = new ContasController();
            Formas_pagamento fpg     = new Formas_pagamentoController().Get(e => e.Tipo_pagamento == (int)Tipo_pagamento.DINHEIRO);

            Lancamentos_financeiros lancamento1 = new Lancamentos_financeiros();
            Lancamentos_financeiros lancamento2 = new Lancamentos_financeiros();

            Application.Current.Dispatcher.BeginInvoke(new Action(() =>
            {
                lancamento1.Data           = DateTime.Now;
                lancamento1.Conta_id       = t1.Conta_id;
                lancamento1.Plano_conta_id = t1.Plano_conta_id;
                lancamento1.Tipo           = (int)t1.Tipo_lancamento;
                lancamento1.Valor_original = t1.Valor;
                lancamento1.Valor_final    = t1.Valor;
                lancamento1.Usuario_id     = UsuariosController.LojaAtual.Id;
                lancamento1.Num_documento  = "";
                lancamento1.Pagamentos_lancamentos.Add(new Pagamentos_lancamentos()
                {
                    Forma_pagamento_id = fpg.Id,
                    Valor = lancamento1.Valor_final
                });

                lancamento2.Data           = DateTime.Now;
                lancamento2.Conta_id       = t2.Conta_id;
                lancamento2.Plano_conta_id = t2.Plano_conta_id;
                lancamento2.Tipo           = (int)t2.Tipo_lancamento;
                lancamento2.Valor_original = t2.Valor;
                lancamento2.Valor_final    = t2.Valor;
                lancamento2.Num_documento  = "";
                lancamento2.Usuario_id     = UsuariosController.LojaAtual.Id;
                lancamento2.Pagamentos_lancamentos.Add(new Pagamentos_lancamentos()
                {
                    Forma_pagamento_id = fpg.Id,
                    Valor = lancamento2.Valor_final
                });

                lancamento1.Descricao = $"TRANSFERÊNCIA '{contasC.Find(lancamento1.Conta_id).Nome}' -> '{contasC.Find(lancamento2.Conta_id).Nome}' - {lancamento1.Data.ToString("dd/MM/yyyy HH:mm:ss")} ({(lancamento1.Tipo == (int)Tipo_lancamento.ENTRADA ? "ENTRADA" : "SAIDA")})";
                lancamento2.Descricao = $"TRANSFERÊNCIA '{contasC.Find(lancamento1.Conta_id).Nome}' -> '{contasC.Find(lancamento2.Conta_id).Nome}' - {lancamento2.Data.ToString("dd/MM/yyyy HH:mm:ss")} ({(lancamento2.Tipo == (int)Tipo_lancamento.ENTRADA ? "ENTRADA" : "SAIDA")})";

                if (!controller.Save(lancamento1))
                {
                    MessageBox.Show("Ocorreu um problema ao executar o procedimento. Acione o suporte Doware.", "ERRO", MessageBoxButton.OK, MessageBoxImage.Error);
                    thread_transferencia.Abort();
                }

                if (!controller.Save(lancamento2))
                {
                    MessageBox.Show("Ocorreu um problema ao executar o procedimento. Acione o suporte Doware.", "ERRO", MessageBoxButton.OK, MessageBoxImage.Error);
                    thread_transferencia.Abort();
                }

                MessageBox.Show("Transferência efetuada com sucesso", "Concluído", MessageBoxButton.OK, MessageBoxImage.Information);
                Close();
                thread_transferencia.Abort();
            }));
        }
        public bool Save(Lancamentos_financeiros lancamento_financeiro)
        {
            if (!Valid(lancamento_financeiro))
            {
                return(false);
            }

            List <Pagamentos_lancamentos> pagamentos = lancamento_financeiro.Pagamentos_lancamentos.ToList();

            lancamento_financeiro.Pagamentos_lancamentos = null;
            UnitOfWork unit = new UnitOfWork();

            try
            {
                unit.BeginTransaction();
                db.Context = unit.Context;

                lancamento_financeiro.Id = db.NextId(e => e.Id);
                db.Save(lancamento_financeiro);
                db.Commit();

                pagamentos.ForEach(e => e.Lancamento_id    = lancamento_financeiro.Id);
                pagamentos.ForEach(e => e.Formas_pagamento = null);

                Pagamentos_lancamentosController pl_controller = new Pagamentos_lancamentosController();
                pl_controller.SetContext(unit.Context);

                Formas_pagamentoController fpg_controller = new Formas_pagamentoController();
                fpg_controller.SetContext(unit.Context);

                ParcelasController parcController = new ParcelasController();
                parcController.SetContext(unit.Context);

                ContasController contasController = new ContasController();
                contasController.SetContext(unit.Context);

                Planos_contasController planoContasController = new Planos_contasController();
                planoContasController.SetContext(unit.Context);

                Contas        conta       = contasController.Find(lancamento_financeiro.Conta_id);
                Planos_contas plano_conta = planoContasController.Find(lancamento_financeiro.Plano_conta_id);

                int numero_parcela = 1;
                foreach (Pagamentos_lancamentos pagamento in pagamentos)
                {
                    if (!pl_controller.Save(pagamento))
                    {
                        unit.RollBack();
                        return(false);
                    }

                    Formas_pagamento forma_pg = fpg_controller.Find(pagamento.Forma_pagamento_id);

                    #region DINHEIRO
                    if (forma_pg.Tipo_pagamento == (int)Tipo_pagamento.DINHEIRO)
                    {
                        if (lancamento_financeiro.Tipo == (int)Tipo_lancamento.ENTRADA)
                        {
                            conta.Saldo += pagamento.Valor;
                        }
                        else
                        {
                            conta.Saldo -= pagamento.Valor;
                        }

                        contasController.Save(conta);
                    }
                    #endregion

                    #region CHEQUE
                    if (forma_pg.Tipo_pagamento == (int)Tipo_pagamento.CHEQUE)
                    {
                        IRegistroCheques registroCheques;

                        if (lancamento_financeiro.Tipo == (int)Tipo_lancamento.ENTRADA)
                        {
                            registroCheques = new RecebimentoCheques();
                        }
                        else
                        {
                            registroCheques = new LancamentoCheque();
                            registroCheques.SetConta(conta);
                        }

                        registroCheques.Exibir(pagamento.Valor);

                        foreach (Cheque cheque in registroCheques.Cheques)
                        {
                            Parcelas parcela_cheque = new Parcelas();

                            parcela_cheque.Pagamento_lancamento_id = pagamento.Id;
                            parcela_cheque.Valor             = cheque.Valor;
                            parcela_cheque.Situacao          = (int)Situacao_parcela.EM_ABERTO;
                            parcela_cheque.Data_lancamento   = lancamento_financeiro.Data;
                            parcela_cheque.Num_documento     = lancamento_financeiro.Num_documento.PadLeft(8 - lancamento_financeiro.Num_documento.Length, '0') + "-" + numero_parcela;
                            parcela_cheque.Parcela_descricao = $"REFERENTE AO LANÇAMENTO FINANCEIRO {lancamento_financeiro.Id} ({plano_conta.Descricao})";
                            parcela_cheque.Data_vencimento   = cheque.Data_deposito;

                            if (lancamento_financeiro.Tipo == (int)Tipo_lancamento.ENTRADA)
                            {
                                parcela_cheque.Tipo_parcela = (int)Tipo_parcela.RECEBER;
                                parcela_cheque.Cliente_id   = lancamento_financeiro.Cliente_id;

                                parcela_cheque.Numero_cheque    = cheque.Numero_cheque;
                                parcela_cheque.Banco            = cheque.Banco;
                                parcela_cheque.Agencia          = cheque.Agencia;
                                parcela_cheque.Dias_compensacao = cheque.Dias_compensacao;
                                parcela_cheque.Conta            = cheque.Conta;
                            }

                            if (lancamento_financeiro.Tipo == (int)Tipo_lancamento.SAIDA)
                            {
                                parcela_cheque.Tipo_parcela  = (int)Tipo_parcela.PAGAR;
                                parcela_cheque.Fornecedor_id = lancamento_financeiro.Fornecedor_id;

                                parcela_cheque.Portador         = forma_pg.Conta_id;
                                parcela_cheque.Numero_cheque    = cheque.Numero_cheque;
                                parcela_cheque.Banco            = string.Empty;
                                parcela_cheque.Agencia          = string.Empty;
                                parcela_cheque.Dias_compensacao = 0;
                                parcela_cheque.Conta            = string.Empty;
                            }

                            if (!parcController.Save(parcela_cheque))
                            {
                                unit.RollBack();
                                return(false);
                            }

                            numero_parcela++;
                        }
                    }
                    #endregion

                    #region CARTAO
                    if (forma_pg.Tipo_pagamento == (int)Tipo_pagamento.CARTAO)
                    {
                        Operadoras_cartaoController opController = new Operadoras_cartaoController();
                        opController.SetContext(unit.Context);

                        Operadoras_cartao operadora = opController.Find(forma_pg.Operadora_cartao_id);

                        Parcelas parcela_cartao = new Parcelas();
                        parcela_cartao.Pagamento_lancamento_id = pagamento.Id;
                        parcela_cartao.Valor           = pagamento.Valor;
                        parcela_cartao.Situacao        = (int)Situacao_parcela.EM_ABERTO;
                        parcela_cartao.Data_lancamento = lancamento_financeiro.Data;

                        parcela_cartao.Data_vencimento = (operadora.Tipo_recebimento == (int)Tipo_prazo_operadora.DIAS
                            ? lancamento_financeiro.Data.AddDays(operadora.Prazo_recebimento)
                            : lancamento_financeiro.Data.AddHours(operadora.Prazo_recebimento));
                        parcela_cartao.Portador = forma_pg.Conta_id;

                        if (lancamento_financeiro.Tipo == (int)Tipo_lancamento.ENTRADA)
                        {
                            parcela_cartao.Tipo_parcela = (int)Tipo_parcela.RECEBER;
                            parcela_cartao.Cliente_id   = lancamento_financeiro.Cliente_id;
                        }

                        if (lancamento_financeiro.Tipo == (int)Tipo_lancamento.SAIDA)
                        {
                            parcela_cartao.Tipo_parcela  = (int)Tipo_parcela.PAGAR;
                            parcela_cartao.Fornecedor_id = lancamento_financeiro.Cliente_id;
                        }

                        parcela_cartao.Num_documento     = lancamento_financeiro.Num_documento.PadLeft(8 - lancamento_financeiro.Num_documento.Length, '0') + "-" + numero_parcela;
                        parcela_cartao.Parcela_descricao = $"REFERENTE AO LANÇAMENTO FINANCEIRO {lancamento_financeiro.Id} ({plano_conta.Descricao})";
                        parcela_cartao.Numero_cheque     = string.Empty;
                        parcela_cartao.Banco             = string.Empty;
                        parcela_cartao.Agencia           = string.Empty;
                        parcela_cartao.Dias_compensacao  = 0;
                        parcela_cartao.Conta             = string.Empty;

                        if (!parcController.Save(parcela_cartao))
                        {
                            unit.RollBack();
                            return(false);
                        }
                        numero_parcela++;
                    }
                    #endregion

                    #region PRAZO
                    if (forma_pg.Tipo_pagamento == (int)Tipo_pagamento.PRAZO)
                    {
                        DateTime data_base = (forma_pg.Tipo_intervalo == (int)Tipo_intervalo.DATA_BASE
                            ? DateTime.Now.AddMonths(1)
                            : DateTime.Now.AddDays(forma_pg.Intervalo)); //baseando a data para o mes sequente ao atual

                        for (int i = 0; i < forma_pg.Parcelas; i++)
                        {
                            Parcelas parcela_prazo = new Parcelas();

                            parcela_prazo.Pagamento_lancamento_id = pagamento.Id;
                            parcela_prazo.Valor             = (pagamento.Valor / forma_pg.Parcelas);
                            parcela_prazo.Situacao          = (int)Situacao_parcela.EM_ABERTO;
                            parcela_prazo.Data_lancamento   = lancamento_financeiro.Data;
                            parcela_prazo.Parcela_descricao = $"REFERENTE AO LANÇAMENTO FINANCEIRO {lancamento_financeiro.Id} ({plano_conta.Descricao})";
                            parcela_prazo.Num_documento     = lancamento_financeiro.Num_documento.PadLeft(8 - lancamento_financeiro.Num_documento.Length, '0') + "-" + numero_parcela;
                            parcela_prazo.Numero_cheque     = string.Empty;
                            parcela_prazo.Banco             = string.Empty;
                            parcela_prazo.Agencia           = string.Empty;
                            parcela_prazo.Dias_compensacao  = 0;
                            parcela_prazo.Conta             = string.Empty;
                            parcela_prazo.Portador          = lancamento_financeiro.Conta_id;

                            if (forma_pg.Tipo_intervalo == (int)Tipo_intervalo.DATA_BASE)
                            {
                                data_base = new DateTime(data_base.Year, data_base.Month, forma_pg.Dia_base);
                                parcela_prazo.Data_vencimento = data_base;
                                data_base = data_base.AddMonths(1);
                            }

                            if (forma_pg.Tipo_intervalo == (int)Tipo_intervalo.INTERVALO)
                            {
                                parcela_prazo.Data_vencimento = data_base;
                                data_base = data_base.AddDays(forma_pg.Intervalo);
                            }

                            if (lancamento_financeiro.Tipo == (int)Tipo_lancamento.ENTRADA)
                            {
                                parcela_prazo.Tipo_parcela = (int)Tipo_parcela.RECEBER;
                                parcela_prazo.Cliente_id   = lancamento_financeiro.Cliente_id;
                            }

                            if (lancamento_financeiro.Tipo == (int)Tipo_lancamento.SAIDA)
                            {
                                parcela_prazo.Tipo_parcela  = (int)Tipo_parcela.PAGAR;
                                parcela_prazo.Fornecedor_id = lancamento_financeiro.Fornecedor_id;
                            }

                            if (!parcController.Save(parcela_prazo))
                            {
                                unit.RollBack();
                                return(false);
                            }

                            numero_parcela++;
                        }
                        #endregion
                    }
                }

                unit.Commit();
                BStatus.Success("Lançamento financeiro efetuado com sucesso");
                return(true);
            }
            catch (Exception ex)
            {
                unit.RollBack();
                return(false);
            }
        }