private Documento MontaObjetoVPDPreviaEstorno(VPDEstorno vpdPreviaEstorno, DateTime now) { var documentoVPDOriginal = documentoDA.ConsultarTodos().FirstOrDefault(el => el.DocumentoID == vpdPreviaEstorno.DocumentoID); var documento = new Documento(); documento.DocumentoOriginalID = documentoVPDOriginal.DocumentoID; documento.UnidadeGestoraCodigoEmitente = documentoVPDOriginal.UnidadeGestoraCodigoEmitente; documento.UnidadeGestoraDataInicioVigenciaEmitente = documentoVPDOriginal.UnidadeGestoraDataInicioVigenciaEmitente; documento.CredorIdentificacao = documentoVPDOriginal.CredorIdentificacao; documento.DataContabilizacao = vpdPreviaEstorno.DataEmissao; documento.DataEmissao = vpdPreviaEstorno.DataEmissao; documento.DataInclusaoRegistro = now; documento.Situacao = "A"; documento.Estorno = "S"; documento.ValorEstorno = vpdPreviaEstorno.TotalEstorno; documento.DominioIDGrupoDocumentoContabil = dominioDA.RetornaDominioID(DominioCategoriaEnum.GRUPODOCUMENTOCONTABIL, "VPD"); documento.UsuarioInclusaoRegistro = UsuarioLogado.GetFullName(); documento.ValorDocumento = vpdPreviaEstorno.TotalEstorno; documento.TipoDocumentoContabilID = documentoVPDOriginal.TipoDocumentoContabilID; documento.DominioIDGrupoDocumentoContabil = documentoVPDOriginal.DominioIDGrupoDocumentoContabil; documento.Observacao = vpdPreviaEstorno.Justificativa; documento.Justificativa = vpdPreviaEstorno.Justificativa; documento.ItemVariacaoPatrimonialDiminutiva = new List <ItemVariacaoPatrimonialDiminutiva>(); if (vpdPreviaEstorno.TotalEstorno <= 0) { throw new CFP.Util.SPFException("Informe o valor a ser estornado."); } foreach (var i in vpdPreviaEstorno.ListaVPDEstorno.Where(el => el.ValorEstorno > 0)) { var itemVPDOriginal = documentoVPDOriginal.ItemVariacaoPatrimonialDiminutiva.FirstOrDefault(el => el.VariacaoPatrimonialDiminutivaItemID == i.ItemVariacaoPatrimonialDiminutivaID); if (i.ValorEstorno > itemVariacaoPatrimonialDiminutivaDA.RetornaValorAEmpenhar(i.ItemVariacaoPatrimonialDiminutivaID)) { throw new CFP.Util.SPFException("Valor informado no estorno é superior ao valor disponível."); } var itemVPD = new ItemVariacaoPatrimonialDiminutiva(); itemVPD.TipoVPD = "A"; itemVPD.ValorSolicitado = 0; itemVPD.ValorEstorno = i.ValorEstorno; itemVPD.NaturezaDespesaID = itemVPDOriginal.NaturezaDespesaID; itemVPD.FonteRecursoID = itemVPDOriginal.FonteRecursoID; itemVPD.IdentificadorUsoCodigo = itemVPDOriginal.IdentificadorUsoCodigo; documento.ItemVariacaoPatrimonialDiminutiva.Add(itemVPD); } return(documento); }
private Documento MontaObjetoVPDPrevia(VariacaoPatrimonialDiminutivaViewModel instancia, DateTime now) { Documento documento = new Documento(); documento.CredorIdentificacao = instancia.CredorIdentificacao; documento.DataEmissao = instancia.DataEmissao; documento.DataContabilizacao = instancia.DataEmissao; documento.NaturezaDespesaID = instancia.NaturezaDespesaID; documento.Observacao = instancia.Observacao; documento.UnidadeGestoraCodigoEmitente = instancia.UnidadeGestoraCodigo; var unidadeGestora = unidadeGestoraDA.ConsultarTodos().FirstOrDefault(el => el.UnidadeGestoraCodigo == documento.UnidadeGestoraCodigoEmitente); documento.ItemVariacaoPatrimonialDiminutiva = new List <ItemVariacaoPatrimonialDiminutiva>(); foreach (var i in VariacaoPatrimonialDiminutivaGerenciarSessao.Sessao.variacaoPatrimonialDiminutivaVM.ListaItemVPD) { var vpdItem = new ItemVariacaoPatrimonialDiminutiva(); vpdItem.FonteRecursoID = i.FonteRecursoID; vpdItem.NaturezaDespesaID = i.NaturezaDespesaID; vpdItem.ValorSolicitado = i.ValorSolicitado; vpdItem.ValorEstorno = 0; vpdItem.TipoVPD = "A"; vpdItem.IdentificadorUsoCodigo = i.IdentificadorUsoCodigo; documento.ItemVariacaoPatrimonialDiminutiva.Add(vpdItem); } documento.UnidadeGestoraDataInicioVigenciaEmitente = unidadeGestora.UnidadeGestoraDataInicioVigencia; documento.Situacao = "A"; documento.Estorno = "N"; documento.ValorEstorno = 0; documento.DominioIDGrupoDocumentoContabil = dominioDA.RetornaDominioID(DominioCategoriaEnum.GRUPODOCUMENTOCONTABIL, "VPD"); documento.DataContabilizacao = instancia.DataEmissao; documento.DataInclusaoRegistro = now; documento.UsuarioInclusaoRegistro = UsuarioLogado.GetFullName(); documento.ValorDocumento = VariacaoPatrimonialDiminutivaGerenciarSessao.Sessao.variacaoPatrimonialDiminutivaVM.ListaItemVPD.Sum(el => el.ValorSolicitado); return(documento); }