/// <summary>
        ///    A ser usado com a resposta de output da transacao
        /// </summary>
        /// <param name="lm31"></param>
        internal void selectprodutosLM31(LM31_CatalogoProdutoML lm31)
        {
            //Risco Financeiro
            if (lm31.produtosF.Count() > 0)
            {
                foreach (var a in lm31.produtosF)
                {
                    int cod = Convert.ToInt32(a.familia);
                    ArvoreFamiliaProdutos codfam = ArvoreFamiliaProdutos.SearchFamiliaProduto(Constantes.tipologiaRisco.RF).FirstOrDefault(x => x.codfamiliaProduto == cod);

                    TreeNode todosF = trtipologiaProdutosRFTree.Nodes[0];
                    foreach (TreeNode tr in todosF.ChildNodes)
                    {
                        if (tr.Text.Replace("-", "").ToUpper().Trim() == codfam.familiaProduto.ToUpper())
                        {
                            tr.Checked = true;
                            break;
                        }
                    }
                }
            }
            //Risco Comercial
            if (lm31.produtosC.Count() > 0)
            {
                foreach (var a in lm31.produtosC)
                {
                    int cod = Convert.ToInt32(a.familia);
                    ArvoreFamiliaProdutos codfam = ArvoreFamiliaProdutos.SearchFamiliaProduto(Constantes.tipologiaRisco.RC).FirstOrDefault(x => x.codfamiliaProduto == cod);

                    TreeNode todosC = trtipologiaProdutosRCTree.Nodes[0];
                    foreach (TreeNode tr in todosC.ChildNodes)
                    {
                        if (tr.Text.Replace("-", "").ToUpper().Trim() == codfam.familiaProduto.ToUpper())
                        {
                            tr.Checked = true;
                            break;
                        }
                    }
                }
            }
            //Risco Assinatura
            if (lm31.produtosA.Count() > 0)
            {
                foreach (var a in lm31.produtosA)
                {
                    int cod = Convert.ToInt32(a.familia);
                    ArvoreFamiliaProdutos codfam = ArvoreFamiliaProdutos.SearchFamiliaProduto(Constantes.tipologiaRisco.RA).FirstOrDefault(x => x.codfamiliaProduto == cod);

                    TreeNode todosA = trtipologiaProdutosRATree.Nodes[0];
                    foreach (TreeNode tr in todosA.ChildNodes)
                    {
                        if (tr.Text.Replace("-", "").ToUpper().Trim() == codfam.familiaProduto.ToUpper())
                        {
                            tr.Checked = true;
                            break;
                        }
                    }
                }
            }
        }
        protected void btnEdit_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                int nprodutoml;
                Int32.TryParse(txtNumeroMinimoProdutos.Text, out nprodutoml);
                if (validaNProdutosCredito(nprodutoml))
                {
                    LM31_CatalogoProdutoML lm31 = new LM31_CatalogoProdutoML();
                    Helper.CopyPropertiesTo(this, lm31);

                    getprodutostoLM31(lm31);
                    //Chamar ML01 - M
                    ABUtil.ABCommandArgs abargs = Session["ABCommandArgs"] as ABUtil.ABCommandArgs;
                    MensagemOutput <LM31_CatalogoProdutoML> response = bl.LM31Request(lm31, abargs, "M", false);

                    if (response.ResultResult != null && response.ResultResult.ProductCode != null)
                    {
                        lberror.Text      = Constantes.Mensagens.LM31CatalogoModificado;
                        lberror.Visible   = true;
                        lberror.ForeColor = System.Drawing.Color.Green;

                        txtEstado.Text = ML_Objectos.GetEstadosDoCatalogo().FirstOrDefault(x => x.Code == response.ResultResult.Estado).Description;
                        Helper.SetEnableControler(this, false);
                    }
                    else
                    {
                        lberror.Text      = TAT2.GetMsgErroTATDescription(response.erro.ToString(), abargs) == "" ? response.erro.ToString() : TAT2.GetMsgErroTATDescription(response.erro.ToString(), abargs);
                        lberror.Visible   = true;
                        lberror.ForeColor = System.Drawing.Color.Red;
                    }
                }
            }
        }
        internal bool validaNSubProdutosCredito(LM31_CatalogoProdutoML lm31)
        {
            bool nsubprodutosValid = true;

            //de acordo com a Area de arquitectura
            decimal countSel = lm31.produtosF.Count();
            //if (countSel > 60)
            //{
            //    lberror.Text = Constantes.Mensagens.NMinimoProdutosRiscoF;
            //    lberror.Visible = true;
            //    lberror.ForeColor = System.Drawing.Color.Red;

            //    nsubprodutosValid = false;
            //}
            decimal countSel2 = lm31.produtosC.Count();
            //if (countSel2 > 20)
            //{
            //    lberror.Text = Constantes.Mensagens.NMinimoProdutosRiscoC;
            //    lberror.Visible = true;
            //    lberror.ForeColor = System.Drawing.Color.Red;

            //    nsubprodutosValid = false;
            //}
            decimal countSel3 = lm31.produtosA.Count();

            //if (countSel3 > 20)
            //{
            //    lberror.Text = Constantes.Mensagens.NMinimoProdutosRiscoAs;
            //    lberror.Visible = true;
            //    lberror.ForeColor = System.Drawing.Color.Red;

            //    nsubprodutosValid = false;
            //}

            if (countSel + countSel2 + countSel3 > 100)
            {
                lberror.Text      = Constantes.Mensagens.NMinimoProdutosCredito;
                lberror.Visible   = true;
                lberror.ForeColor = System.Drawing.Color.Red;
            }

            return(nsubprodutosValid);
        }
        /// <summary>
        /// A ser usado como input na transacao
        /// </summary>
        /// <param name="lm31"></param>
        internal void getprodutostoLM31(LM31_CatalogoProdutoML lm31)
        {
            lm31.produtosF = new List <LM31_CatalogoProdutoML.ProdutoRisco>();
            lm31.produtosC = new List <LM31_CatalogoProdutoML.ProdutoRisco>();
            lm31.produtosA = new List <LM31_CatalogoProdutoML.ProdutoRisco>();



            //Risco Financeiro
            TreeNode todosF = trtipologiaProdutosRFTree.Nodes[0];

            foreach (TreeNode tr in todosF.ChildNodes)
            {
                foreach (TreeNode trch in tr.ChildNodes)
                {
                    if (trch.Checked)
                    {
                        lm31.tipologiaRiscoF = "F";
                        lm31.produtosF.Add
                        (
                            new LM31_CatalogoProdutoML.ProdutoRisco
                        {
                            produto    = trch.Text.Split('-')[0].Length >= 2 ? trch.Text.Split('-')[0].Substring(0, 2) : "",
                            subproduto = trch.Text.Split('-')[0].Length >= 2 ? trch.Text.Split('-')[0].Substring(2, 2) : "",
                            familia    = ArvoreFamiliaProdutos.SearchFamiliaProduto(Constantes.tipologiaRisco.RF).FirstOrDefault(x => x.familiaProduto == tr.Text.Replace("-", "").Trim()).codfamiliaProduto.ToString(),     //trch.Text.Split('-')[1].Replace("-", ""),
                            tipologia  = "F"
                        }
                        );
                    }
                }
            }
            //Risco Comercial
            TreeNode todosC = trtipologiaProdutosRCTree.Nodes[0];

            foreach (TreeNode tr in todosC.ChildNodes)
            {
                foreach (TreeNode trch in tr.ChildNodes)
                {
                    if (trch.Checked)
                    {
                        lm31.tipologiaRiscoC = "C";
                        lm31.produtosC.Add
                        (
                            new LM31_CatalogoProdutoML.ProdutoRisco
                        {
                            produto    = trch.Text.Split('-')[0].Length >= 2 ? trch.Text.Split('-')[0].Substring(0, 2) : "",
                            subproduto = trch.Text.Split('-')[0].Length >= 2 ? trch.Text.Split('-')[0].Substring(2, 2) : "",
                            familia    = ArvoreFamiliaProdutos.SearchFamiliaProduto(Constantes.tipologiaRisco.RC).FirstOrDefault(x => x.familiaProduto == tr.Text.Replace("-", "").Trim()).codfamiliaProduto.ToString(),
                            tipologia  = "C"
                        }
                        );
                    }
                }
            }
            //Risco Assinatura
            TreeNode todosA = trtipologiaProdutosRATree.Nodes[0];

            foreach (TreeNode tr in todosA.ChildNodes)
            {
                foreach (TreeNode trch in tr.ChildNodes)
                {
                    if (trch.Checked)
                    {
                        lm31.tipologiaRiscoA = "A";
                        lm31.produtosA.Add
                        (
                            new LM31_CatalogoProdutoML.ProdutoRisco
                        {
                            produto    = trch.Text.Split('-')[0].Length >= 2 ? trch.Text.Split('-')[0].Substring(0, 2) : "",
                            subproduto = trch.Text.Split('-')[0].Length >= 2 ? trch.Text.Split('-')[0].Substring(2, 2) : "",
                            familia    = ArvoreFamiliaProdutos.SearchFamiliaProduto(Constantes.tipologiaRisco.RA).FirstOrDefault(x => x.familiaProduto == tr.Text.Replace("-", "").Trim()).codfamiliaProduto.ToString(),
                            tipologia  = "A"
                        }
                        );
                    }
                }
            }
        }
        protected void btnConsultar_Click(object sender, EventArgs e)
        {
            string op = Request.QueryString["OP"] ?? "FF";

            if (op != "FF")
            {
                LM31_CatalogoProdutoML lm31 = new LM31_CatalogoProdutoML();
                Helper.CopyPropertiesTo(this, lm31);

                //Modo Criar:
                //IF: Resposta com produto Já Parameterizado e Ativo-> Alertar utilizador
                //Else: Abrir campos e desabilitar os campos chave de consulta
                //Familias devem estar fechados na Modificacao

                Helper.SetEnableControler(camposChave, false);

                #region arvore de produto de risco
                makeTreeView2(Constantes.tipologiaRisco.RF, trtipologiaProdutosRFTree);
                makeTreeView2(Constantes.tipologiaRisco.RA, trtipologiaProdutosRATree);
                makeTreeView2(Constantes.tipologiaRisco.RC, trtipologiaProdutosRCTree);

                trtipologiaProdutosRFTree.ShowExpandCollapse = true;
                //trtipologiaProdutosRFTree.ExpandAll();
                trtipologiaProdutosRFTree.NodeWrap = true;

                trtipologiaProdutosRCTree.ShowExpandCollapse = true;
                //trtipologiaProdutosRCTree.CollapseAll();
                trtipologiaProdutosRCTree.NodeWrap = true;

                trtipologiaProdutosRATree.ShowExpandCollapse = true;
                //trtipologiaProdutosRATree.CollapseAll();
                trtipologiaProdutosRATree.NodeWrap = true;
                #endregion

                switch (op.ToUpper())
                {
                case "C":

                    //Chamar ML01 - V
                    ABUtil.ABCommandArgs abargs = Session["ABCommandArgs"] as ABUtil.ABCommandArgs;
                    MensagemOutput <LM31_CatalogoProdutoML> response = bl.LM31Request(lm31, abargs, "C", true);

                    //Sucesso
                    if (response.ResultResult != null && response.ResultResult.ProductCode != null)
                    {
                        Helper.AddRemoveHidden(false, divdpConsulta);
                        Helper.AddRemoveHidden(false, dvtitleAcordionRenovacao);
                        Helper.AddRemoveHidden(false, dvtitleAcordionRFinanceiro);
                        Helper.AddRemoveHidden(false, dvtitleAcordionRAssinatura);
                        Helper.AddRemoveHidden(false, dvtitleAcordionRComercial);
                        Helper.AddRemoveHidden(false, divPeriocidadeCobranca);
                        Helper.AddRemoveHidden(false, acoes_ml01);
                        Helper.AddRemoveHidden(false, hr);
                        Helper.AddRemoveHidden(false, hr1);

                        btnCriar.Visible = true;
                    }
                    //Insucesso
                    else
                    {
                        lberror.Text = TAT2.GetMsgErroTATDescription(response.erro.ToString(), abargs);
                        if (String.IsNullOrEmpty(lberror.Text))
                        {
                            lberror.Text = response.mensagem;
                        }
                        lberror.Visible   = true;
                        lberror.ForeColor = System.Drawing.Color.Red;
                    }

                    break;

                case "M":

                    //Chamar ML01 - V
                    abargs   = Session["ABCommandArgs"] as ABUtil.ABCommandArgs;
                    response = bl.LM31Request(lm31, abargs, "M", true);

                    //Sucesso
                    if (response.ResultResult != null && response.ResultResult.ProductCode != null)
                    {
                        txtDataInicioComercializacao.Enabled = false;
                        Helper.AddRemoveHidden(false, divdpConsulta);
                        Helper.AddRemoveHidden(false, dvtitleAcordionRenovacao);
                        Helper.SetEnableControler(divRiscoFinanceiro, false);
                        Helper.AddRemoveHidden(false, dvtitleAcordionRFinanceiro);
                        Helper.SetEnableControler(divRiscoAssinatura, false);
                        Helper.AddRemoveHidden(false, dvtitleAcordionRAssinatura);
                        Helper.SetEnableControler(divRiscoComercial, false);
                        Helper.AddRemoveHidden(false, dvtitleAcordionRComercial);
                        Helper.AddRemoveHidden(false, divPeriocidadeCobranca);
                        Helper.AddRemoveHidden(false, acoes_ml01);
                        Helper.AddRemoveHidden(false, hr);
                        Helper.AddRemoveHidden(false, hr1);

                        Helper.CopyObjectToControls(this, response.ResultResult);
                        selectprodutosLM31(response.ResultResult);

                        btnEdit.Visible = true;
                    }
                    //Insucesso
                    else
                    {
                        lberror.Text = TAT2.GetMsgErroTATDescription(response.erro.ToString(), abargs);
                        if (String.IsNullOrEmpty(lberror.Text))
                        {
                            lberror.Text = response.mensagem;
                        }
                        lberror.Visible   = true;
                        lberror.ForeColor = System.Drawing.Color.Red;
                    }
                    break;


                case "V":
                    //Chamar ML01 - V
                    abargs   = Session["ABCommandArgs"] as ABUtil.ABCommandArgs;
                    response = bl.LM31Request(lm31, abargs, "V", true);

                    //Sucesso
                    if (response.ResultResult != null && response.ResultResult.ProductCode != null)
                    {
                        Helper.AddRemoveHidden(false, divdpConsulta);
                        Helper.SetEnableControler(divdpConsulta, false);
                        Helper.AddRemoveHidden(false, dvtitleAcordionRenovacao);
                        Helper.SetEnableControler(divRenovacao, false);
                        Helper.AddRemoveHidden(false, dvtitleAcordionRFinanceiro);
                        Helper.SetEnableControler(divRiscoFinanceiro, false);
                        Helper.AddRemoveHidden(false, dvtitleAcordionRAssinatura);
                        Helper.SetEnableControler(divRiscoAssinatura, false);
                        Helper.AddRemoveHidden(false, dvtitleAcordionRComercial);
                        Helper.SetEnableControler(divRiscoComercial, false);
                        Helper.AddRemoveHidden(false, divPeriocidadeCobranca);
                        Helper.SetEnableControler(divPeriocidadeCobranca, false);
                        Helper.AddRemoveHidden(true, acoes_ml01);     //manter acoes escondidas
                        Helper.AddRemoveHidden(true, hr);
                        Helper.AddRemoveHidden(true, hr1);

                        Helper.CopyObjectToControls(this, response.ResultResult);
                        selectprodutosLM31(response.ResultResult);
                    }
                    //Insucesso
                    else
                    {
                        lberror.Text = TAT2.GetMsgErroTATDescription(response.erro.ToString(), abargs);
                        if (String.IsNullOrEmpty(lberror.Text))
                        {
                            lberror.Text = response.mensagem;
                        }
                        lberror.Visible   = true;
                        lberror.ForeColor = System.Drawing.Color.Red;
                    }
                    break;
                }
            }
        }
        protected void listViewProdutos(List <ArvoreFamiliaProdutos> lstF, string tipologia, ListView lst, LM31_CatalogoProdutoML LM31, bool mudaCG)
        {
            List <itemTreeProduto> _lst = new List <itemTreeProduto>();

            //Selecionar familia produtos
            IEnumerable <string> familiaprodutos = Enumerable.Empty <string>();

            if (tipologia == Constantes.tipologiaRisco.RF)
            {
                if (LM31.produtosF != null && LM31.produtosF.Count > 0)
                {
                    familiaprodutos = LM31.produtosF.Select(x => x.familia).Distinct();
                }
            }
            if (tipologia == Constantes.tipologiaRisco.RA)
            {
                if (LM31.produtosA != null && LM31.produtosA.Count > 0)
                {
                    familiaprodutos = LM31.produtosA.Select(x => x.familia).Distinct();
                }
            }
            if (tipologia == Constantes.tipologiaRisco.RC)
            {
                if (LM31.produtosC != null && LM31.produtosC.Count > 0)
                {
                    familiaprodutos = LM31.produtosC.Select(x => x.familia).Distinct();
                }
            }
            //Adicionar item à lista
            foreach (var row in familiaprodutos)
            {
                itemTreeProduto item = new itemTreeProduto();

                item.produto = row;
                //Selecciona
                item.isGeral  = true;
                item.cGEnable = mudaCG;
                item.cPEnable = false; //fecha seleccao as condicoes particulares

                _lst.Add(item);

                //Procura subprodutos da familia
                var dtSubProdutos = LM31.produtosA.FindAll(x => x.familia == row);
                if (dtSubProdutos.Count < 1)
                {
                    dtSubProdutos = LM31.produtosF.FindAll(x => x.familia == row);
                }
                if (dtSubProdutos.Count < 1)
                {
                    dtSubProdutos = LM31.produtosC.FindAll(x => x.familia == row);
                }

                //nivel 2
                for (int i = 0; i < dtSubProdutos.Count; i++)
                {
                    itemTreeProduto subitem = new itemTreeProduto();

                    subitem.subproduto = dtSubProdutos[i].produto.ToString() + dtSubProdutos[i].subproduto.ToString() +
                                         " - " + dtSubProdutos[i].descritivo.ToString(); //(codigo + descritivo)

                    subitem.isParticular = false;
                    subitem.isGeral      = false;

                    subitem.cGEnable = false; //fecha seleccao as condicoes gerais
                    subitem.cPEnable = true;  //abre seleccao as condicoes particulares

                    _lst.Add(subitem);
                }
            }

            lst.DataSource = _lst;
            lst.DataBind();
        }
Beispiel #7
0
        public BCDWSProxy.LM31Transaction LM31Request(ABUtil.ABCommandArgs AbArgs, LM31_CatalogoProdutoML _lm31, string accao, bool pedido)
        {
            BCDWSProxy.LM31Transaction response = new BCDWSProxy.LM31Transaction();

            LM31.BarclaysBankAccountSettings = new BCDWSProxy.BarclaysBankAccountSettings();
            LM31.BarclaysBankAccountSettings.ApplicationID = ConfigurationManager.AppSettings["ApplicationID"];
            LM31.BarclaysBankAccountSettings.UserRequester = AbArgs.USERNT;
            LM31.BarclaysBankAccountSettings.ClientName    = AbArgs.SN_HOSTNAME;

            LM31.input              = new BCDWSProxy.LM31Input();
            LM31.input.caccao       = accao;
            LM31.input.pedido_dados = pedido;
            LM31.input.cprodutoml   = _lm31.ProductCode;
            LM31.input.csubprodml   = _lm31.SubProdutoCode;
            //LM31.input.C = _lm31.SubProductDescription;
            LM31.input.dtinicomer = _lm31.DataInicioComercializacao.ToString("yyyy-MM-dd");
            LM31.input.dtfimcomer = _lm31.DataFimComercializacao.ToString("yyyy-MM-dd");;
            LM31.input.qprzminml  = _lm31.PrazoMinimo;
            LM31.input.qprzmaxml  = _lm31.PrazoMaximo;
            LM31.input.qminprod   = _lm31.NumeroMinimoProdutos;
            LM31.input.mlimminml  = _lm31.LimiteMinimoCredito;
            LM31.input.mlimmaxml  = _lm31.LimiteMaximoCredito;
            LM31.input.iestado    = _lm31.Estado != null?ML_Objectos.GetEstadosDoCatalogo().FirstOrDefault(x => x.Description.ToUpper() == _lm31.Estado.ToUpper()).Code : "";

            LM31.input.qdiaincum = _lm31.NDiasIncumprimento;
            LM31.input.irenovac  = _lm31.IndRenovacao != null?_lm31.IndRenovacao.ToString() : "N";

            LM31.input.qperigest  = Convert.ToInt32(_lm31.PeriocidadeCobranca);
            LM31.input.qprzrenov  = _lm31.PrazoRenovacao;
            LM31.input.qdiapaviso = _lm31.NDiasPreAviso;
            LM31.input.dtversao   = _lm31.DataVersao.ToString("yyyy-MM-dd");
            LM31.input.qperirnov  = Convert.ToInt32(_lm31.PeriocidadeCobComiRenovacao);

            List <BCDWSProxy.LM31Row1> lstRow1 = new List <BCDWSProxy.LM31Row1>();

            if (_lm31.produtosF != null)
            {
                foreach (var f in _lm31.produtosF)
                {
                    BCDWSProxy.LM31Row1 _row1 = new BCDWSProxy.LM31Row1();
                    _row1.caccao        = accao;
                    _row1.pedido_dados  = false;
                    _row1.l_cproduto_l  = f.produto;
                    _row1.l_tiporisco_l = f.tipologia;
                    _row1.l_famiprod_l  = f.familia.PadLeft(3, '0');
                    _row1.l_csubprod_l  = f.subproduto;

                    lstRow1.Add(_row1);
                }
            }

            if (_lm31.produtosA != null)
            {
                foreach (var a in _lm31.produtosA)
                {
                    BCDWSProxy.LM31Row1 _row1 = new BCDWSProxy.LM31Row1();
                    _row1.caccao        = accao;
                    _row1.pedido_dados  = false;
                    _row1.l_cproduto_l  = a.produto;
                    _row1.l_tiporisco_l = a.tipologia;
                    _row1.l_famiprod_l  = a.familia.PadLeft(3, '0');
                    _row1.l_csubprod_l  = a.subproduto;

                    lstRow1.Add(_row1);
                }
            }

            if (_lm31.produtosC != null)
            {
                foreach (var c in _lm31.produtosC)
                {
                    BCDWSProxy.LM31Row1 _row1 = new BCDWSProxy.LM31Row1();
                    _row1.caccao        = accao;
                    _row1.pedido_dados  = false;
                    _row1.l_cproduto_l  = c.produto;
                    _row1.l_tiporisco_l = c.tipologia;
                    _row1.l_famiprod_l  = c.familia.PadLeft(3, '0');
                    _row1.l_csubprod_l  = c.subproduto;

                    lstRow1.Add(_row1);
                }
            }

            LM31.input.Row1 = lstRow1.ToArray();
            BCDWSProxy.BarclaysBTSSoapClient client = new BCDWSProxy.BarclaysBTSSoapClient();
            bool bRetry = false;

            atempt = 0;
            do
            {
                try
                {
                    WriteLog.Log(System.Diagnostics.TraceLevel.Verbose, MultilinhasObjects.LogTypeName.WsSoapRequest, LM31.input.SerializeToString(), AbArgs.USERNT, AbArgs.SN_HOSTNAME);

                    response = client.LM31CATALOGOML(LM31.BarclaysBankAccountSettings, LM31.input);
                    string sresponse = response.SerializeToString();

                    WriteLog.Log(System.Diagnostics.TraceLevel.Error, LogTypeName.WsSoapRequest, sresponse, AbArgs.USERNT, AbArgs.SN_HOSTNAME);
                    atempt++;
                }
                catch (Exception ex)
                {
                    WriteLog.Log(System.Diagnostics.TraceLevel.Verbose, LogTypeName.WsSoapResponse, ex, AbArgs.USERNT, AbArgs.SN_HOSTNAME);
                    response.Erro = new BCDWSProxy.TransactionError();
                    response.Erro.MensagemErro = tratamentoExcepcoes(ex, AbArgs, out bRetry);
                }
            } while (bRetry && atempt <= 1);

            return(response);
        }
Beispiel #8
0
        public MensagemOutput <LM31_CatalogoProdutoML> LM31Request(LM31_CatalogoProdutoML _lm31, ABUtil.ABCommandArgs abargs, string accao, bool pedido)
        {
            MensagemOutput <LM31_CatalogoProdutoML> msgOut = new MensagemOutput <LM31_CatalogoProdutoML>();

            MultilinhasDataLayer.BCDWSProxy.LM31Transaction response = dl.LM31Request(abargs, _lm31, accao, pedido);

            msgOut.erro     = response.Erro != null ? response.Erro.CodigoErro : 999;
            msgOut.mensagem = response.Erro != null ? response.Erro.MensagemErro : "";



            if (response.output != null)
            {
                LM31_CatalogoProdutoML obj = new LM31_CatalogoProdutoML();

                DateTime dtfimcomer;
                DateTime.TryParseExact(response.output.dtfimcomer, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out dtfimcomer);
                obj.DataFimComercializacao = dtfimcomer;

                DateTime dtinicomer;
                DateTime.TryParseExact(response.output.dtinicomer, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out dtinicomer);
                obj.DataInicioComercializacao = dtinicomer;

                obj.Estado               = response.output.iestado;
                obj.IndRenovacao         = response.output.irenovac;
                obj.LimiteMaximoCredito  = response.output.mlimmaxml;
                obj.LimiteMinimoCredito  = response.output.mlimminml;
                obj.NDiasIncumprimento   = Convert.ToInt32(response.output.qdiaincum);
                obj.NDiasPreAviso        = Convert.ToInt32(response.output.qdiapaviso);
                obj.NumeroMinimoProdutos = Convert.ToInt32(response.output.qminprod);
                obj.PeriocidadeCobranca  = response.output.qperigest.ToString();
                obj.PrazoMaximo          = Convert.ToInt32(response.output.qprzmaxml);
                obj.PrazoMinimo          = Convert.ToInt32(response.output.qprzminml);
                obj.PrazoRenovacao       = Convert.ToInt32(response.output.qprzrenov);
                obj.ProductCode          = response.output.cprodutoml;
                obj.SubProdutoCode       = response.output.csubprodml;

                DateTime dtversao;
                DateTime.TryParseExact(response.output.dtversao, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out dtversao);
                obj.DataVersao = dtversao;
                //obj.SubProductDescription = response.output.cdescprd; TO DO IR A TAT

                obj.produtosA = new List <LM31_CatalogoProdutoML.ProdutoRisco>();
                obj.produtosC = new List <LM31_CatalogoProdutoML.ProdutoRisco>();
                obj.produtosF = new List <LM31_CatalogoProdutoML.ProdutoRisco>();
                foreach (var a in response.row1)
                {
                    if (a.l_cproduto_l != null && a.l_csubprod_l != "" && a.l_tiporisco_l == "A")
                    {
                        obj.produtosA.Add(new LM31_CatalogoProdutoML.ProdutoRisco
                        {
                            descritivo = a.l_csubprod_l, //TO DO ir a tat buscar descritivo
                            familia    = a.l_famiprod_l,
                            produto    = a.l_cproduto_l,
                            subproduto = a.l_csubprod_l,
                            tipologia  = a.l_tiporisco_l
                        });
                    }
                    if (a.l_cproduto_l != null && a.l_csubprod_l != "" && a.l_tiporisco_l == "C")
                    {
                        obj.produtosC.Add(new LM31_CatalogoProdutoML.ProdutoRisco
                        {
                            descritivo = a.l_csubprod_l, //TO DO ir a tat buscar descritivo
                            familia    = a.l_famiprod_l,
                            produto    = a.l_cproduto_l,
                            subproduto = a.l_csubprod_l,
                            tipologia  = a.l_tiporisco_l
                        });
                    }
                    if (a.l_cproduto_l != null && a.l_csubprod_l != "" && a.l_tiporisco_l == "F")
                    {
                        obj.produtosF.Add(new LM31_CatalogoProdutoML.ProdutoRisco
                        {
                            descritivo = a.l_csubprod_l, //TO DO ir a tat buscar descritivo
                            familia    = a.l_famiprod_l,
                            produto    = a.l_cproduto_l,
                            subproduto = a.l_csubprod_l,
                            tipologia  = a.l_tiporisco_l
                        });
                    }
                }

                obj.tipologiaRiscoA = obj.produtosA.Count() > 0 ? "A" : "";
                obj.tipologiaRiscoF = obj.produtosF.Count() > 0 ? "F" : "";
                obj.tipologiaRiscoC = obj.produtosC.Count() > 0 ? "C" : "";

                msgOut.ResultResult = obj;
            }


            return(msgOut);
        }