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