/// <summary> /// Atualiza Situacao dos pagamentos da entrada para quitado quando todas as contas estão quitadas /// </summary> /// <param name="_contaE"></param> private void AtualizaSituacaoPagamentosEntrada(ContaE _contaE) { var query = from entrada in saceContext.EntradaSet where entrada.codEntrada == _contaE.codEntrada select entrada; EntradaE _entradaE = query.ToList().ElementAtOrDefault(0); if (_entradaE != null) { if (!_contaE.codEntrada.Equals(Global.ENTRADA_PADRAO)) { var query2 = from conta in saceContext.ContaSet where conta.codSituacao.Equals(SituacaoConta.SITUACAO_ABERTA) && conta.codEntrada == _contaE.codEntrada select conta; if (query2.Count() == 0) { _entradaE.codSituacaoPagamentos = SituacaoPagamentos.QUITADA; } else { _entradaE.codSituacaoPagamentos = SituacaoPagamentos.LANCADOS; } } } saceContext.SaveChanges(); }
/// <summary> /// Inserir uma nova entrada /// </summary> /// <param name="entrada"></param> /// <returns></returns> public Int64 Inserir(Entrada entrada) { try { var repEntrada = new RepositorioGenerico <EntradaE>(); EntradaE _entradaE = new EntradaE(); if ((entrada.TotalBaseSubstituicao > 0) && (entrada.TotalProdutosST <= 0)) { throw new NegocioException("Quando a entrada possui valor de substituição tributária é necessário informar o valor Total dos Produtos Substituição Tributária"); } else if ((entrada.TotalProdutos - entrada.Desconto) > entrada.TotalNota) { throw new NegocioException("O valor Total dos Produtos não pode ser maior que o valor total da Nota menos o desconto."); } //margem de erro de 0.05 centavos por conta de problemas de distribuição de valores else if ((entrada.TotalProdutosST) > (entrada.TotalProdutos + new Decimal(0.05))) { throw new NegocioException("O valor Total dos Protudos ST não pode ser maior que o valor Total dos Produtos."); } Atribuir(entrada, _entradaE); repEntrada.Inserir(_entradaE); repEntrada.SaveChanges(); return(_entradaE.codEntrada); } catch (Exception e) { throw new DadosException("Entrada", e.Message, e); } }
/// <summary> /// Atribui os dados da entidade para entidade persistente /// </summary> /// <param name="entrada"></param> /// <param name="_entradaE"></param> private static void Atribuir(Entrada entrada, EntradaE _entradaE) { _entradaE.codEmpresaFrete = entrada.CodEmpresaFrete; _entradaE.codFornecedor = entrada.CodFornecedor; _entradaE.codSituacaoPagamentos = entrada.CodSituacaoPagamentos; _entradaE.codTipoEntrada = entrada.CodTipoEntrada; _entradaE.dataEmissao = entrada.DataEmissao; _entradaE.dataEntrada = entrada.DataEntrada; _entradaE.desconto = entrada.Desconto; _entradaE.fretePagoEmitente = entrada.FretePagoEmitente; _entradaE.numeroNotaFiscal = entrada.NumeroNotaFiscal; _entradaE.outrasDespesas = entrada.OutrasDespesas; _entradaE.totalBaseCalculo = entrada.TotalBaseCalculo; _entradaE.totalBaseSubstituicao = entrada.TotalBaseSubstituicao; _entradaE.totalICMS = entrada.TotalICMS; _entradaE.totalIPI = entrada.TotalIPI; _entradaE.totalNota = entrada.TotalNota; _entradaE.totalProdutos = entrada.TotalProdutos; _entradaE.totalProdutosST = entrada.TotalProdutosST; _entradaE.totalSubstituicao = entrada.TotalSubstituicao; _entradaE.valorFrete = entrada.ValorFrete; _entradaE.valorSeguro = entrada.ValorSeguro; _entradaE.serie = entrada.Serie; _entradaE.chave = entrada.Chave != null ? entrada.Chave : ""; }
/// <summary> /// Atualizar dados da entrada /// </summary> /// <param name="entrada"></param> public void Atualizar(Entrada entrada, SaceEntities saceContext) { try { if ((entrada.TotalBaseSubstituicao > 0) && (entrada.TotalProdutosST <= 0)) { throw new NegocioException("Quando a entrada possui valor de substituição tributária é necessário informar o valor Total dos Produtos Substituição Tributária"); } var query = from entradaSet in saceContext.EntradaSet where entradaSet.codEntrada == entrada.CodEntrada select entradaSet; EntradaE _entradaE = query.ToList().ElementAtOrDefault(0); Atribuir(entrada, _entradaE); saceContext.SaveChanges(); } catch (Exception e) { throw new DadosException("Entrada", e.Message, e); } }
/// <summary> /// Atualiza Situacao dos pagamentos da entrada para quitado quando todas as contas estão quitadas /// </summary> /// <param name="_contaE"></param> private void AtualizaSituacaoPagamentosEntrada(ContaE _contaE) { var query = from entrada in saceContext.EntradaSet where entrada.codEntrada == _contaE.codEntrada select entrada; EntradaE _entradaE = query.ToList().ElementAtOrDefault(0); if (_entradaE != null) { if (!_contaE.codEntrada.Equals(Global.ENTRADA_PADRAO)) { if (GerenciadorConta.GetInstance(saceContext).ObterPorSituacaoEntrada(SituacaoConta.SITUACAO_ABERTA, (long)_contaE.codEntrada).ToList().Count == 0) { _entradaE.codSituacaoPagamentos = SituacaoPagamentos.QUITADA; } else { _entradaE.codSituacaoPagamentos = SituacaoPagamentos.LANCADOS; } } } saceContext.SaveChanges(); }