示例#1
0
        public void InsereRegra(Regra regra)
        {
            MySqlConnection connection = Conecta();
            MySqlCommand    command    = connection.CreateCommand();

            try
            {
                command.CommandText = "insert into tb_regra(id_regra,atribuicao,condicao,parametro,desconto) values(@id_regra,@atribuicao" +
                                      ",@condicao,@parametro,@desconto)";

                command.Parameters.AddWithValue("@id_regra", id);
                command.Parameters.AddWithValue("@atribuicao", regra.Atribuicao);

                command.Parameters.AddWithValue("@condicao", regra.Condicao);
                command.Parameters.AddWithValue("@parametro", regra.Parametro);
                command.Parameters.AddWithValue("@desconto", conversor.toDoubleDB(regra.Desconto.ToString()));

                command.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Regra valor de produto não criada " + ex.Message);
            }
            finally
            {
                if (connection.State == ConnectionState.Open)
                {
                    connection.Close();
                }
            }
        }
示例#2
0
        private Venda AplicaRegraQuantidade(Regra regra)
        {
            venda_aplicada = new Venda();
            string condicao = regra.Condicao;

            if (condicao.Equals("MAIOR OU IGUAL"))
            {
                if (venda.Quantidade_itens >= regra.Parametro)
                {
                    venda_aplicada.Valor_final    = venda.Valor_total - (venda.Valor_total * (regra.Desconto / 100));
                    venda_aplicada.Desconto       = regra.Desconto;
                    venda_aplicada.Regra_aplicada = regra.Id;
                    return(venda_aplicada);
                }
            }
            else if (condicao.Equals("MENOR OU IGUAL"))
            {
                if (venda.Valor_final <= regra.Parametro)
                {
                    venda_aplicada.Valor_final    = venda.Valor_total - (venda.Valor_total * (regra.Desconto / 100));
                    venda_aplicada.Desconto       = regra.Desconto;
                    venda_aplicada.Regra_aplicada = regra.Id;

                    return(venda_aplicada);
                }
            }
            System.Console.Write("APLICANDO REGRA DE QUANTIDADE");

            return(null);
        }
示例#3
0
        private Venda AplicaValorTotal(Regra regra)
        {
            string condicao = regra.Condicao;

            if (condicao.Equals("MAIOR OU IGUAL"))
            {
                if (venda.Valor_total >= regra.Parametro)
                {
                    venda_aplicada.Valor_final = venda.Valor_total - (venda.Valor_total * (regra.Desconto / 100));

                    venda_aplicada.Desconto       = regra.Desconto;
                    venda_aplicada.Regra_aplicada = regra.Id;
                    return(venda_aplicada);
                }
            }
            else if (condicao.Equals("MENOR OU IGUAL"))
            {
                if (venda.Valor_total <= regra.Parametro)
                {
                    venda_aplicada.Valor_final    = venda.Valor_total - (venda.Valor_total * (regra.Desconto / 100));
                    venda_aplicada.Desconto       = regra.Desconto;
                    venda_aplicada.Regra_aplicada = regra.Id;

                    return(venda_aplicada);
                }
            }
            return(null);
        }
示例#4
0
 private Venda AplicaRegraValorDoProduto(Regra regra)
 {
     for (int i = 0; i < itens.Count; i++)
     {
     }
     System.Console.Write("APLICANDO REGRA DE QUANTIDADE");
     return(null);
 }
示例#5
0
        public List <Regra> buscaRegrasExistentes(int id)
        {
            MySqlConnection connection = Conecta();
            MySqlCommand    command    = connection.CreateCommand();
            List <Regra>    regras     = new List <Regra>();

            try
            {
                command.CommandText = "select * from tb_regra where id_regra=" + id;
                var result = command.ExecuteReader();

                while (result.Read())
                {
                    Regra regra = new Regra();
                    regra.Id         = result.GetInt32("id");
                    regra.Id_regra   = result.GetInt32("id_regra");
                    regra.Atribuicao = result.GetString("atribuicao");
                    regra.Condicao   = result.GetString("condicao");
                    regra.Parametro  = result.GetDouble("parametro");
                    regra.Desconto   = result.GetDouble("desconto");

                    regras.Add(regra);
                }

                return(regras);
            }catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                if (connection.State == ConnectionState.Open)
                {
                    connection.Close();
                }
            }

            return(regras);
        }
示例#6
0
        public void regra_desconto()
        {
            if (desconto_produto.Checked)
            {
                Regra regra = new Regra();
                regra.Condicao   = combo_valor.Text;
                regra.Desconto   = conversor.toDouble(txt_desconto_produto.Text);
                regra.Parametro  = conversor.toDouble(txt_valor.Text);
                regra.Atribuicao = "AplicaRegraValorProduto";


                regrasDAO.InsereRegra(regra);
            }
            if (desconto_venda.Checked)
            {
                Regra regra = new Regra();


                regra.Condicao   = combo_total_venda.Text;
                regra.Parametro  = conversor.toDouble(txt_total_venda.Text);
                regra.Desconto   = conversor.toDouble(txt_desconto_total.Text);
                regra.Atribuicao = "AplicaRegraValorTotal";

                regrasDAO.InsereRegra(regra);
            }
            if (desconto_quantidade.Checked)
            {
                Regra regra = new Regra();

                regra.Condicao   = combo_quantidade_produto.Text;
                regra.Parametro  = conversor.ToInt32(txt_quantidade_produto.Text);
                regra.Desconto   = conversor.toDouble(txt_desconto_quantidade.Text);
                regra.Atribuicao = "AplicaRegraQuantidade";

                regrasDAO.InsereRegra(regra);
            }
        }
示例#7
0
        //public Venda AplicaRegras()
        //{

        //}

        public Venda AplicaRegras()
        {
            if (venda.Regra_aplicada != 0)
            {
                return(null);
            }

            string forma_pagamento = pagamento.Forma_pagamento;

            RegrasNegocio regra_negocio = regrasDAO.buscaRegraAtiva(forma_pagamento);

            string tipo_venda = regra_negocio.Tipo_venda;

            if (regra_negocio != null && (tipo_venda.Equals(pagamento.Forma_pagamento) || tipo_venda.Equals("TODAS")))
            {
                if ((forma_pagamento.Equals("CREDITO") || tipo_venda.Equals("TODAS")) && !(pagamento.Quantidade_parcelas >= regra_negocio.Parcela_min && pagamento.Quantidade_parcelas <= regra_negocio.Parcela_max))
                {
                    return(null);
                }

                List <Regra> regrasExistentes = regrasDAO.buscaRegrasExistentes(regra_negocio.Id);

                venda_aplicada = venda;

                for (int i = 0; i < regrasExistentes.Count; i++)
                {
                    Regra regra = regrasExistentes[i];
                    if (regrasExistentes[i].Atribuicao.Equals("VALOR TOTAL"))
                    {
                        venda_aplicada = AplicaValorTotal(regra);

                        if (venda_aplicada == null)
                        {
                            regrasExistentes.RemoveAt(i);
                        }
                        else
                        {
                            return(venda_aplicada);
                        }
                    }
                }
                for (int i = 0; i < regrasExistentes.Count; i++)
                {
                    Regra regra = regrasExistentes[i];
                    if (regrasExistentes[i].Atribuicao.Equals("QUANTIDADE"))
                    {
                        venda_aplicada = AplicaRegraQuantidade(regra);

                        if (venda_aplicada == null)
                        {
                            regrasExistentes.RemoveAt(i);
                        }
                        else
                        {
                            return(venda_aplicada);
                        }
                    }
                }

                /**
                 * if (regrasExistentes[i].Atribuicao.Equals("VALOR DO PRODUTO"))
                 * {
                 *  MessageBox.Show("VALOR PRODUTO");
                 *  venda_aplicada = AplicaRegraValorDoProduto(regra);
                 *  if (venda_aplicada != null || !venda_aplicada.Equals(null) || venda_aplicada.Equals("null")) return venda_aplicada;
                 * }
                 */
            }
            return(null);
        }
示例#8
0
 public AplicaRegraQuantidade(Regra regra)
 {
     MessageBox.Show("APLICANDO REGRA QUANTIDADE");
 }