public string InserirNotaCreditoSiafem(string login, string senha, ref MovimentacaoNotaDeCredito objModel, string unidadeGestora) { try { var dtoSiafdoc = new DocumentoNotaDeCredito { NotaDeCredito = objModel, Programa = _programa.Fetch(new Programa { Codigo = objModel.IdPrograma }).FirstOrDefault(), Estutura = _estutura.Fetch(new Estrutura { Codigo = objModel.IdEstrutura }).FirstOrDefault() }; var siafdoc = GerarSiafdocNotaDeCredito(dtoSiafdoc, objModel); var response = _siafem.InserirInserirMovimentacaoOrcamentaria(login, senha, unidadeGestora, siafdoc).ToXml("SIAFEM"); return(ReturnMessageWithStatusForSiafemServiceNC(response)); } catch (Exception e) { HttpContext.Current.Session["xml"] = HttpContext.Current.Session["xmlSiafem"]; HttpContext.Current.Session["xmlSiafem"] = ""; throw new SidsException(e.Message); } }
private static IEnumerable <string> FetchObservationsNc(DocumentoNotaDeCredito document) { return(new List <string> { document.NotaDeCredito.Observacao?.NormalizeForService(), document.NotaDeCredito.Observacao2?.NormalizeForService(), document.NotaDeCredito.Observacao3?.NormalizeForService() }); }
private static SIAFDOC GerarSiafdocNotaDeCredito(DocumentoNotaDeCredito dtoSiafdoc, MovimentacaoNotaDeCredito mov) { var siafDoc = new SIAFDOC { cdMsg = "SIAFNC001", SiafemDocNC = new SiafemDocNC() }; var doc = new documentoNC { DataEmissao = DateTime.Now.ToString("ddMMMyyyy").ToUpper(), //data atual UGEmitente = dtoSiafdoc.NotaDeCredito.UnidadeGestoraEmitente, GestaoEmitente = dtoSiafdoc.NotaDeCredito.GestaoEmitente, UGFavorecida = dtoSiafdoc.NotaDeCredito.UnidadeGestoraFavorecida, GestaoFavorecida = dtoSiafdoc.NotaDeCredito.GestaoFavorecida, Evento = dtoSiafdoc.NotaDeCredito.EventoNC }; var celula = new SiafemDocCelula { Repeticao = new Model.ValueObject.Service.Siafem.Movimentacao.Repeticao { desc = new des2 { Id = "1", UO = dtoSiafdoc.NotaDeCredito.Uo, PT = dtoSiafdoc.Programa.Cfp.PadRight(17, '0'), Fonte = mov.FonteRecurso, NaturezaDespesa = dtoSiafdoc.Estutura.Natureza, UGO = dtoSiafdoc.NotaDeCredito.Ugo, PlanoInterno = string.IsNullOrEmpty(dtoSiafdoc.NotaDeCredito.PlanoInterno) ? string.Empty : dtoSiafdoc.NotaDeCredito.PlanoInterno, Valor = ((int)(dtoSiafdoc.NotaDeCredito.Valor * 100)).ToString() } } }; var observacao = new Model.ValueObject.Service.Siafem.Movimentacao.Observacao { Repeticao = new Model.ValueObject.Service.Siafem.Movimentacao.Repeticao { obs = FetchObservationsNc(dtoSiafdoc) .Where(w => !string.IsNullOrWhiteSpace(w)).Select(s => new Model.ValueObject.Service.Siafem.Movimentacao.obs { Id = s, Observacao = string.IsNullOrWhiteSpace(s) ? string.Empty : s }).ToList() } }; siafDoc.SiafemDocNC.documento = doc; siafDoc.SiafemDocNC.celula = celula; siafDoc.SiafemDocNC.observacao = observacao; return(siafDoc); }