예제 #1
0
        public static Procedure_MovOrcamentariaInternaRecordType[] Procedure_MovOrcamentariaInterna(string key, string password, string impressora, Programa programa, Estrutura estrutura, List <MovimentacaoReducaoSuplementacao> items)
        {
            var filter = new Procedure_MovOrcamentariaInternaFiltersType();

            if (items.Any())
            {
                filter.inChave      = password;
                filter.inImpressora = impressora;
                filter.inOperador   = key;

                filter.inCFP_1 = programa.Cfp.Substring(0, 2);
                filter.inCFP_2 = programa.Cfp.Substring(2, 3);
                filter.inCFP_3 = programa.Cfp.Substring(5, 4);
                filter.inCFP_4 = programa.Cfp.Substring(9, 4);

                filter.inCFP_5 = estrutura.Fonte.PadRight(4, '0');

                filter.inCED_1 = estrutura.Natureza.Substring(0, 1);
                filter.inCED_2 = estrutura.Natureza.Substring(1, 1);
                filter.inCED_3 = estrutura.Natureza.Substring(2, 1);
                filter.inCED_4 = estrutura.Natureza.Substring(3, 1);
                filter.inCED_5 = estrutura.Natureza.Substring(4, 2);


                for (int i = 0; i < 15; i++)
                {
                    var item = i < items.Count ? items[i] : new MovimentacaoReducaoSuplementacao();

                    MovOrcamentariaInternaFiltersType(i + 1, item, filter);
                }
            }

            return(new WSMovimentacao().Procedure_MovOrcamentariaInterna(filter, new ModelVariablesType(), new EnvironmentVariablesType()));
        }
예제 #2
0
        private static Procedure_MovOrcamentariaInternaFiltersType MovOrcamentariaInternaFiltersType(int posicao, MovimentacaoReducaoSuplementacao item, Procedure_MovOrcamentariaInternaFiltersType filter)
        {
            var totalGeral = item.TotalQ1 + item.TotalQ2 + item.TotalQ3 + item.TotalQ4;

            filter.GetType().GetProperty("inAplicObra_1_Tela" + posicao).SetValue(filter, string.IsNullOrEmpty(item.NrObra) ? string.Empty : item.NrObra.Substring(0, 6));
            filter.GetType().GetProperty("inAplicObra_2_Tela" + posicao).SetValue(filter, string.IsNullOrEmpty(item.NrObra) ? string.Empty : item.NrObra.Substring(6, 1));
            filter.GetType().GetProperty("inDestinoRec_Tela" + posicao).SetValue(filter, string.IsNullOrEmpty(item.DestinoRecurso) ? string.Empty : item.DestinoRecurso);

            filter.GetType().GetProperty("inFLProc_Tela" + posicao).SetValue(filter, string.IsNullOrEmpty(item.FlProc) ? string.Empty : item.FlProc);
            filter.GetType().GetProperty("inCodAssinAUTO_Tela" + posicao).SetValue(filter, string.IsNullOrEmpty(item.CodigoAutorizadoAssinatura) ? string.Empty : item.CodigoAutorizadoAssinatura);
            filter.GetType().GetProperty("inCodAssinEXAM_Tela" + posicao).SetValue(filter, string.IsNullOrEmpty(item.CodigoExaminadoAssinatura) ? string.Empty : item.CodigoExaminadoAssinatura);
            filter.GetType().GetProperty("inCodAssinRESP_Tela" + posicao).SetValue(filter, string.IsNullOrEmpty(item.CodigoResponsavelAssinatura) ? string.Empty : item.CodigoResponsavelAssinatura);
            filter.GetType().GetProperty("inGrupoAssinAUTO_Tela" + posicao).SetValue(filter, item.CodigoAutorizadoGrupo == 0 ? string.Empty : item.CodigoAutorizadoGrupo.ToString());
            filter.GetType().GetProperty("inGrupoAssinEXAM_Tela" + posicao).SetValue(filter, item.CodigoExaminadoGrupo == 0 ? string.Empty : item.CodigoExaminadoGrupo.ToString());
            filter.GetType().GetProperty("inGrupoAssinRESP_Tela" + posicao).SetValue(filter, item.CodigoResponsavelGrupo == 0 ? string.Empty : item.CodigoResponsavelGrupo.ToString());
            filter.GetType().GetProperty("inOrgaoAssinAUTO_Tela" + posicao).SetValue(filter, string.IsNullOrEmpty(item.CodigoAutorizadoOrgao) ? string.Empty : item.CodigoAutorizadoOrgao);
            filter.GetType().GetProperty("inOrgaoAssinEXAM_Tela" + posicao).SetValue(filter, string.IsNullOrEmpty(item.CodigoExaminadoOrgao) ? string.Empty : item.CodigoExaminadoOrgao);
            filter.GetType().GetProperty("inOrgaoAssinRESP_Tela" + posicao).SetValue(filter, string.IsNullOrEmpty(item.CodigoResponsavelOrgao) ? string.Empty : item.CodigoResponsavelOrgao);
            filter.GetType().GetProperty("inOrgao_Tela" + posicao).SetValue(filter, string.IsNullOrEmpty(item.NrOrgao) ? string.Empty : item.NrOrgao);
            filter.GetType().GetProperty("inOrigemRec_Tela" + posicao).SetValue(filter, string.IsNullOrEmpty(item.OrigemRecurso) ? string.Empty : item.OrigemRecurso);
            filter.GetType().GetProperty("inProcesso_Tela" + posicao).SetValue(filter, string.IsNullOrEmpty(item.NrProcesso) ? string.Empty : item.NrProcesso);

            filter.GetType().GetProperty("inTotal_Tela" + posicao).SetValue(filter, totalGeral == 0 ? string.Empty : totalGeral.ToString());
            filter.GetType().GetProperty("inS_R_Tela" + posicao).SetValue(filter, string.IsNullOrEmpty(item.RedSup) ? string.Empty : item.RedSup);
            filter.GetType().GetProperty("inCodEspecificacao_Tela" + posicao).SetValue(filter, string.IsNullOrEmpty(item.EspecDespesa) ? string.Empty : item.EspecDespesa);

            var observacoes = (item.DescEspecDespesa ?? string.Empty).Split(';');

            for (int i = 0; i < 5; i++)
            {
                var prop = filter.GetType().GetProperty("inEspecificacao_" + (i + 1) + "_Tela" + posicao);
                if (prop != null)
                {
                    var obs = i < observacoes.Length ? observacoes[i] : string.Empty;
                    prop.SetValue(filter, obs);
                }
            }


            filter.GetType().GetProperty("inQuota1_Tela" + posicao).SetValue(filter, string.Empty);
            filter.GetType().GetProperty("inQuota2_Tela" + posicao).SetValue(filter, string.Empty);
            filter.GetType().GetProperty("inQuota3_Tela" + posicao).SetValue(filter, string.Empty);
            filter.GetType().GetProperty("inQuota4_Tela" + posicao).SetValue(filter, string.Empty);

            var quarter = DateTime.Now.GetQuarter();

            if (quarter <= 2)
            {
                filter.GetType().GetProperty("inQuota1_Tela" + posicao).SetValue(filter, item.TotalQ1 == 0 ? string.Empty : item.TotalQ1.ToString());
            }

            if (quarter <= 3)
            {
                filter.GetType().GetProperty("inQuota2_Tela" + posicao).SetValue(filter, item.TotalQ2 == 0 ? string.Empty : item.TotalQ2.ToString());
            }

            if (quarter <= 4)
            {
                filter.GetType().GetProperty("inQuota3_Tela" + posicao).SetValue(filter, item.TotalQ3 == 0 ? string.Empty : item.TotalQ3.ToString());
            }

            if (quarter <= 4)
            {
                filter.GetType().GetProperty("inQuota4_Tela" + posicao).SetValue(filter, item.TotalQ4 == 0 ? string.Empty : item.TotalQ4.ToString());
            }

            filter.GetType().GetProperty("inQuota5_Tela" + posicao).SetValue(filter, string.Empty);

            return(filter);
        }