public DocumentoEntradaService(DataContext db, IConfiguration configuration)
 {
     this.db                  = db;
     this.configuration       = configuration;
     this.connString          = configuration.GetConnectionString("sage_db");
     this.saldoEstoqueService = new SaldoEstoqueService(db, configuration);
     this.contaReceberService = new ContaReceberService(db, configuration);
 }
Exemple #2
0
        private void PagamentoPrazo(PedidoVenda pedido)
        {
            var contaReceberService = new ContaReceberService(db, configuration);

            try
            {
                db.ContaReceberTemp
                .Where(e => e.NumeroCI == pedido.Numero && e.Loja == pedido.Loja && e.RowDeleted != "T")
                .ToList()
                .ForEach(temp => {
                    ContaReceber cr = new ContaReceber
                    {
                        Cliente         = temp.Cliente,
                        DataEmissao     = temp.DataEmissao,
                        DataVencimento  = temp.DataVencimento,
                        Desconto        = 0,
                        FlagEntrada     = temp.FlagEntrada,
                        FlagPgto        = temp.FlagPgto,
                        Juros           = 0,
                        Loja            = temp.Loja,
                        NumeroCI        = temp.NumeroCI,
                        NumeroDocumento = temp.NumeroDocumento,
                        NumeroDuplicata = temp.NumeroDuplicata,
                        NumeroFatura    = string.Empty,
                        TipoVenda       = temp.TipoVenda,
                        ValorDuplicata  = temp.ValorDuplicata,
                        ValorFatura     = temp.ValorFatura
                    };

                    db.ContaReceber.Add(cr);
                    db.SaveChanges();

                    if (cr.FlagEntrada == "S")
                    {
                        contaReceberService.recebimentoTitulo(
                            cr.NumeroDuplicata, (DateTime)cr.DataEmissao, (double)cr.ValorDuplicata, string.Empty, cr.Loja,
                            (double)cr.Juros, (double)cr.Desconto, (short)cr.FlagPgto
                            );
                    }
                });

                ExcluiContaReceberTemp(pedido.Numero, pedido.Loja);
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemple #3
0
        private void PagamentoVista(PedidoVenda pedido)
        {
            try
            {
                ContaReceber cr = new ContaReceber
                {
                    Cliente         = pedido.Cliente,
                    DataEmissao     = pedido.Data,
                    DataVencimento  = (DateTime)pedido.Data,
                    Desconto        = pedido.ValorDesconto,
                    FlagEntrada     = pedido.FlagEntrada,
                    FlagPgto        = StatusContaReceber.PENDENTE,
                    Juros           = Math.Round((double)pedido.ValorAcrescimo, 2),
                    Loja            = pedido.Loja,
                    NumeroCI        = pedido.Numero,
                    NumeroDocumento = pedido.NumeroDocumento,
                    NumeroDuplicata = pedido.Numero + "/0",
                    NumeroFatura    = string.Empty,
                    TipoVenda       = pedido.TipoVenda,
                    ValorDuplicata  = Math.Round((double)pedido.Total, 2),
                    ValorFatura     = Math.Round((double)pedido.Total, 2)
                };

                db.ContaReceber.Add(cr);
                db.SaveChanges();

                var contaReceberService = new ContaReceberService(db, configuration);

                contaReceberService.recebimentoTitulo(
                    cr.NumeroDuplicata, (DateTime)cr.DataEmissao, (double)cr.ValorDuplicata, string.Empty, cr.Loja,
                    (double)cr.Juros, (double)cr.Desconto, (short)cr.FlagPgto
                    );
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #4
0
        private void PagamentoCartao(PedidoVenda pedido)
        {
            try
            {
                var parcelas   = pedido.Parcelas;
                var valorTotal = pedido.Total;
                var parcela    = 1;

                if (pedido.FlagEntrada == "S")
                {
                    parcelas--;
                    valorTotal -= pedido.ValorEntrada;

                    ContaReceber cr = new ContaReceber
                    {
                        Cliente         = pedido.Cliente,
                        DataEmissao     = pedido.Data,
                        DataVencimento  = (DateTime)pedido.Data,
                        Desconto        = 0,
                        FlagEntrada     = pedido.FlagEntrada,
                        FlagPgto        = StatusContaReceber.PAGO,
                        Juros           = 0,
                        Loja            = pedido.Loja,
                        NumeroCI        = pedido.Numero,
                        NumeroDocumento = pedido.NumeroDocumento,
                        NumeroDuplicata = pedido.Numero + "/0",
                        NumeroFatura    = string.Empty,
                        TipoVenda       = TipoVenda.VISTA,
                        ValorDuplicata  = Math.Round((double)pedido.ValorEntrada, 2),
                        ValorFatura     = Math.Round((double)pedido.Total, 2)
                    };

                    db.ContaReceber.Add(cr);
                    db.SaveChanges();

                    var contaReceberService = new ContaReceberService(db, configuration);

                    contaReceberService.recebimentoTitulo(
                        cr.NumeroDuplicata, (DateTime)cr.DataEmissao, (double)cr.ValorDuplicata, string.Empty, cr.Loja,
                        (double)cr.Juros, (double)cr.Desconto, (short)cr.FlagPgto
                        );
                }

                if (parcelas > 0)
                {
                    var valorParcela = valorTotal / parcelas;

                    var plano      = db.Operadoras.Where(e => e.RowId == pedido.OperadoraId && e.RowDeleted != "T").Single();
                    var taxaCartao = plano.Taxa;
                    var clienteId  = plano.Admin;
                    var intervalo  = plano.TipoVencimento;

                    var vencimento    = ((DateTime)pedido.Data).AddDays(intervalo);
                    var valorDesconto = (valorParcela / 100) * taxaCartao;

                    for (; parcela <= parcelas; parcela++)
                    {
                        ContaReceber cr = new ContaReceber
                        {
                            Cliente         = clienteId,
                            DataVencimento  = vencimento,
                            Desconto        = Math.Round((double)valorDesconto, 2),
                            FlagEntrada     = "N",
                            FlagPgto        = StatusContaReceber.PENDENTE,
                            Juros           = 0d,
                            Loja            = pedido.Loja,
                            NumeroCI        = pedido.Numero,
                            NumeroDocumento = pedido.NumeroDocumento,
                            NumeroDuplicata = pedido.Numero + "/" + parcela.ToString(),
                            NumeroFatura    = string.Empty,
                            TipoVenda       = pedido.TipoVenda,
                            ValorDuplicata  = Math.Round((double)valorParcela, 2),
                            ValorFatura     = Math.Round((double)pedido.Total, 2)
                        };

                        db.ContaReceber.Add(cr);

                        vencimento = vencimento.AddDays(intervalo);
                    }

                    db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }