Пример #1
0
        private void Alterar(Restricao restr)
        {
            var strQuery = "";

            strQuery += "UPDATE tblrestricao SET ";
            strQuery += string.Format("idgrestr={0}, codigo='{1}', descricao='{2}', legexec={3} ",
                                      restr.GRestrId, restr.Codigo, restr.Descricao, restr.Legexec);
            strQuery += string.Format("WHERE idrestr={0} ", restr.RestricaoId);

            using (cnx = new ConexaoBD())
                cnx.CommNom(strQuery);
        }
Пример #2
0
        public async Task <IActionResult> Create([Bind("Id,AlunoId,HorarioId")] Restricao restricao)
        {
            if (ModelState.IsValid)
            {
                _context.Add(restricao);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["AlunoId"]   = new SelectList(_context.Alunos, "Id", "CPF", restricao.AlunoId);
            ViewData["HorarioId"] = new SelectList(_context.Horarios, "Id", "Id", restricao.HorarioId);
            return(View(restricao));
        }
Пример #3
0
        private void EscreverValorRHS(Restricao rest)
        {
            if (!_segundaColunaFlag)
            {
                _builder.Append(string.Concat(ESPACO_CURTO, NOME_VETOR_RHS, ESPACO_CURTO, rest.Nome, ESPACO_LONGO, rest.TermoLivre));
            }
            else
            {
                _builder.AppendLine(string.Concat(ESPACO_CURTO, rest.Nome, ESPACO_LONGO, rest.TermoLivre));
            }

            _segundaColunaFlag = !_segundaColunaFlag;
        }
Пример #4
0
        private void Inserir(Restricao restr)
        {
            var strQuery = "";
            int id;
            var lid = new List <Restricao>();

            lid       = ListAll();
            id        = lid[lid.Count - 1].RestricaoId + 1;
            strQuery += "INSERT INTO tblrestricao(idrestr, idgrestr, codigo, descricao, legexec) ";
            strQuery += string.Format("VALUES ({0}, {1}, '{2}', '{3}', {4})", id, restr.GRestrId,
                                      restr.Codigo, restr.Descricao, restr.Legexec);

            using (cnx = new ConexaoBD())
                cnx.CommNom(strQuery);
        }
Пример #5
0
        public bool removerRestricao(int id)
        {
            Restricao restricao = null;

            foreach (Restricao r in Restricoes)
            {
                if (r.RestricaoID == id)
                {
                    restricao = r;
                }
            }
            if (restricao == null)
            {
                return(false);
            }
            return(Restricoes.Remove(restricao));
        }
Пример #6
0
 private Restricao One(DataTable dt, int pos)
 {
     if (dt.Rows.Count > 0)
     {
         var registro = new Restricao()
         {
             RestricaoId = int.Parse(dt.Rows[pos]["idrestr"].ToString()),
             GRestrId    = int.Parse(dt.Rows[pos]["idgrestr"].ToString()),
             Legexec     = int.Parse(dt.Rows[pos]["legexec"].ToString()),
             Codigo      = dt.Rows[pos]["codigo"].ToString(),
             Descricao   = dt.Rows[pos]["descricao"].ToString()
         };
         return(registro);
     }
     else
     {
         return(new Restricao());
     }
 }
Пример #7
0
        public bool Insert(Restricao restricao)
        {
            bool State = false;

            cmd.CommandText = "INSERT INTO T_RESTRICAO(USARIO, INGREDIENTES) VALUES(@USARIO, @INGREDIENTES)";

            cmd.Parameters.AddWithValue("@USARIO", restricao.usuario);
            cmd.Parameters.AddWithValue("@INGREDIENTES", restricao.ingredientes);
            try
            {
                cmd.Connection = connectionFactory.OpenConnection();
                cmd.ExecuteNonQuery();
                connectionFactory.CloseConnection();
                State = true;
            }
            catch (SqlException err)
            {
                MessageBox.Show(err.ToString());
            }
            return(State);
        }
Пример #8
0
        protected void btnResolverSimplex_Click(object sender, EventArgs e)
        {
            simplex = new Simplex();

            if (txtEqBase.Text == "" || hidenRestricoes.Value == "")
            {
                MostraErro();
                return;
            }

            //variaveis gerais
            string[] arrayVariaveis;
            double[] arrayValores;

            //variaveis para função objetiva
            Boolean isMaximizacao = true;

            string[] eqFuncObjetiva = txtEqBase.Text.Trim().Split(' ');

            //variáveis para restrição
            string[]  equacoes = hidenRestricoes.Value.Split('@');
            string[]  eqRestricao;
            ArrayList valores            = new ArrayList();
            ArrayList variaveis          = new ArrayList();
            double    resultadoRestricao = 0.0f;
            string    sinalRestricaoo    = "";
            Boolean   negativo           = false;

            //Resolve a função objetiva
            if (cmbTipoFunc.SelectedValue == "1")
            {
                isMaximizacao = false;
            }
            else
            {
                isMaximizacao = true;
            }

            for (int k = 0; k < eqFuncObjetiva.Length; k++)
            {
                if (eqFuncObjetiva[k] == "-" || eqFuncObjetiva[k] == "+")
                {
                    if (eqFuncObjetiva[k] == "-")
                    {
                        negativo = true;
                    }
                    else
                    {
                        negativo = false;
                    }
                }
                else
                {
                    String[] separadoObjetiva = System.Text.RegularExpressions.Regex.Split(eqFuncObjetiva[k], @"[^\d]");
                    double   valor;

                    //pega o valor
                    if (separadoObjetiva[0] == "")
                    {
                        valor = Convert.ToDouble("1");
                    }
                    else if (double.TryParse(separadoObjetiva[0], out valor))
                    {
                        valor = Convert.ToDouble(separadoObjetiva[0]);
                    }
                    else
                    {
                        valor = Convert.ToDouble(separadoObjetiva[0]);
                    }
                    //verifica se a string anterior foi um sinal negativo, caso seja, o valor é negativado
                    if (negativo)
                    {
                        valores.Add(Convert.ToDouble("-" + valor));
                        negativo = false;
                    }
                    else
                    {
                        valores.Add(valor);
                    }

                    //pega a variável
                    string variavelFuncObjetiva;
                    if (separadoObjetiva[0] == "")
                    {
                        variavelFuncObjetiva = eqFuncObjetiva[k];
                        if (variavelFuncObjetiva != "")
                        {
                            variaveis.Add(variavelFuncObjetiva);
                        }
                    }
                    else
                    {
                        var match = Regex.Match(eqFuncObjetiva[k], @"[^\d]");
                        int indiceValorFuncObjetiva = eqFuncObjetiva[k].IndexOf(match.Value);
                        variavelFuncObjetiva = eqFuncObjetiva[k].Substring(indiceValorFuncObjetiva);
                        if (variavelFuncObjetiva != "")
                        {
                            variaveis.Add(variavelFuncObjetiva);
                        }
                    }
                }
            }
            arrayVariaveis    = variaveis.ToArray(typeof(string)) as string[];
            arrayValores      = valores.ToArray(typeof(double)) as double[];
            funcObjetiva      = new FuncaoObjetiva(arrayValores, arrayVariaveis, isMaximizacao);
            simplex.FObjetiva = funcObjetiva;


            //Resolve as restrições
            for (int i = 0; i < equacoes.Length; i++)
            {
                //limpa os valores e variáveis para reaproveitar pra cada restrição
                valores.Clear();
                variaveis.Clear();
                equacoes[i] = equacoes[i].Trim();
                eqRestricao = equacoes[i].Split(' ');
                for (int j = 0; j < eqRestricao.Length; j++)
                {
                    if (eqRestricao[j] == "-" || eqRestricao[j] == "+")
                    {
                        if (eqRestricao[j] == "-")
                        {
                            negativo = true;
                        }
                        else
                        {
                            negativo = false;
                        }
                    }
                    else if (eqRestricao[j] == "<=" || eqRestricao[j] == ">=" || eqRestricao[j] == "=" ||
                             eqRestricao[j] == "<" || eqRestricao[j] == ">")
                    {
                        sinalRestricaoo = eqRestricao[j];
                    }
                    else if (double.TryParse(eqRestricao[j], out resultadoRestricao))
                    {
                        Console.WriteLine(resultadoRestricao);
                    }
                    else
                    {
                        String[] separado = System.Text.RegularExpressions.Regex.Split(eqRestricao[j], @"[^\d]");
                        double   valor;

                        //pega o valor
                        if (separado[0] == "")
                        {
                            valor = Convert.ToDouble("1");
                        }
                        else if (double.TryParse(separado[0], out valor))
                        {
                            valor = Convert.ToDouble(separado[0]);
                        }
                        else
                        {
                            valor = Convert.ToDouble(separado[0]);
                        }
                        //verifica se a string anterior foi um sinal negativo, caso seja, o valor é negativado
                        if (negativo)
                        {
                            valores.Add(Convert.ToDouble("-" + valor));
                            negativo = false;
                        }
                        else
                        {
                            valores.Add(valor);
                        }

                        //pega a variável
                        if (separado[0] == "")
                        {
                            string variavel = eqRestricao[j];
                            if (variavel != "")
                            {
                                variaveis.Add(variavel);
                            }
                        }
                        else
                        {
                            var    match       = Regex.Match(eqRestricao[j], @"[^\d]");
                            int    indiceValor = eqRestricao[j].IndexOf(match.Value);
                            string variavel    = eqRestricao[j].Substring(indiceValor);
                            if (variavel != "")
                            {
                                variaveis.Add(variavel);
                            }
                        }
                    }
                }
                //pega os valores da equação e monta a restriçao
                arrayVariaveis = variaveis.ToArray(typeof(string)) as string[];
                arrayValores   = valores.ToArray(typeof(double)) as double[];

                restricao = new Restricao(arrayValores, arrayVariaveis, sinalRestricaoo, resultadoRestricao);
                simplex.Restricoes.Add(restricao);
            }

            //Normaliza e monta o quadro
            simplex.Normaliza();
            simplex.MontaQuadro();
            simplex.QuadroSimplex.Iteracao();

            lblResultados.Text = "Resultados: \n\n";
            foreach (KeyValuePair <string, double> entry in simplex.Solucao())
            {
                lblResultados.Text += "variável " + entry.Key + " valendo " + entry.Value + "\n ";
            }
        }
Пример #9
0
        public void AddRestricao(Problema problema)
        {
            Restricao itemNovo = new Restricao();

            problema.Restricoes.Add(itemNovo);
        }
        /// <summary>
        /// TRANSAÇÃO 005
        /// </summary>
        public void Proprietarios()
        {
            var consulta = @"
                  SELECT lo.*
                    FROM dbo.tb_leilao_lotes lo
                    JOIN tb_leilao le ON  le.id = lo.id_leilao
                    JOIN tb_comitentes co ON co.id = le.id_comitente
                   WHERE lo.flag_transacao = 'L'
                     AND co.tipo_importacao = 1 
                     AND le.id_status = (SELECT id FROM tb_leilao_status WHERE sequencia = 1)        
            ";

            var lotes = ConsultaSQL(consulta).ConverterParaLista <Lote>();

#if (DEBUG)
            //lotes = lotes
            //    .Where(p => p.id_leilao == 79).ToList();
#endif

            foreach (var lote in lotes)
            {
                string retorno = string.Empty;

                if (!string.IsNullOrEmpty(lote.placa))
                {
                    retorno = ws_ConsultarVeiculosParaLeilao("ROOT", lote.placa);
                }
                else if (!string.IsNullOrEmpty(lote.chassi))
                {
                    retorno = ws_ConsultarVeiculosParaLeilao("ROOT", lote.chassi);
                }

                if (retorno == "")
                {
                    continue;
                }


                if (!retorno.ToUpper().Contains("ERRO"))
                {
                    var Transacao005 = JsonConvert.DeserializeObject <Transacao005>(retorno);

                    Transacao005.Id_lote = lote.id;

                    if (Transacao005.Retorno.ToUpper() == "OK")
                    {
                        InserirTransacao(new Transacao()
                        {
                            id_lote   = lote.id,
                            retorno   = Transacao005.Retorno,
                            transacao = Transacao005.Transacao
                        });

                        Transacao005.Id = RepositorioGlobal.Proprietario.Inserir(Transacao005);

                        lote.Flag_Transacao = GetProximaTransacao(lote.id);
                        lote.Flag_Agendado  = "N";


                        //PEGAR RESTRIÇÕES
                        var Restricoes    = Transacao005.DescricaoRestricoes.ToList <string>();
                        var SubRestricoes = Transacao005.DescricaoSubRestricoes.ToList <string>();
                        var ObsRestricoes = Transacao005.ObservacaoRestricoes.ToList <string>();

                        for (int i = 0; i < Restricoes.Where(p => p != "").ToList <string>().Count; i++)
                        {
                            lote.id_status_lote = 26;

                            Restricao r = new Restricao()
                            {
                                id_lote       = lote.id,
                                restricao     = Restricoes[i],
                                sub_restricao = SubRestricoes[i],
                                observacoes   = ObsRestricoes[i],
                                origem        = Transacao005.Transacao
                            };

                            RepositorioGlobal.Restricao.Inserir(r);
                        }

                        RepositorioGlobal.Lote.Alterar(lote);

                        Console.WriteLine("PROPRIETÁRIO " + lote.marca_modelo + " PROCESSO " + lote.numero_formulario_grv);

                        continue;
                    }

                    InserirTransacao(new Transacao()
                    {
                        id_lote   = lote.id,
                        retorno   = Transacao005.Retorno,
                        transacao = Transacao005.Transacao
                    });

                    //ALTERAR LOTES DE ACORDO COM A RESTRIÇÃO
                    lote.Flag_Agendado  = "N";
                    lote.Flag_Transacao = "X";

                    RepositorioGlobal.Lote.Alterar(lote);
                }
                else
                {
                }
            }
        }