Ayuda con Tabla de condiciones if elseif
Publicado: 21 Sep 2016 08:20
buenas noches, tengo ya dos dias de estar intentando hacer funcionar una tabla condicional sin resultado alguno que cumpla lo que ocupo la estructura condicional se basa en esta tabla que me han proporcionado aqui les adjunto las capturas de la tabla condicional



esa es la tabla condicional que debo pasar a script y a coninuacion les dejo como he tratado de hacer funcionar estas tablas
este es el primer codigo que tenia
este código me resulto sin ningún resultado satisfactorio ahora tengo este otro código que casi me funciona pero el detalle con este es de que me recorre todas las condiciones aunque encuentre la que es correcta y me da un resultado erróneo debido a ello.
Aquí les adjunto el apz de lo que tengo hasta el momento
de antemano muchas gracias por su tiempo.






esa es la tabla condicional que debo pasar a script y a coninuacion les dejo como he tratado de hacer funcionar estas tablas
este es el primer codigo que tenia
--------------------TABLA DE DESCUENTOS PRODUCTOS SEGUN ANTIGUEDAD------------
--CATEGORIAS: ROPA DE HOMBRE, ROPA DE MUJER, JEANS, ROPA DE CASA
--[[]]
Dias = tonumber(Label.GetText("LblResultado"));
if Dias > 40 or Dias < 40 then
ComboBox.SetText("ComboDescuento", "0")--descuento que se aplicara al articulo
Precio = Input.GetText("ComboPrecio1")
Por = ComboBox.GetText("ComboDescuento")
Resultado = (Precio*Por)/100
ResultadoF = (Precio-Resultado)
Input.SetText("ComboPrecio1", Math.Round(ResultadoF,0))
elseif Dias > 41 or Dias < 60 then
ComboBox.SetText("ComboDescuento", "30")--descuento que se aplicara al articulo
Precio = Input.GetText("ComboPrecio1")
Por = ComboBox.GetText("ComboDescuento")
Resultado = (Precio*Por)/100
ResultadoF = (Precio-Resultado)
Input.SetText("ComboPrecio1", Math.Round(ResultadoF,0))
elseif Dias > 61 or Dias < 110 then
ComboBox.SetText("ComboDescuento", "50")--descuento que se aplicara al articulo
Precio = Input.GetText("ComboPrecio1")
Por = ComboBox.GetText("ComboDescuento")
Resultado = (Precio*Por)/100
ResultadoF = (Precio-Resultado)
Input.SetText("ComboPrecio1", Math.Round(ResultadoF,0))
elseif Dias > 110 or Dias < 181 then
ComboBox.SetText("ComboDescuento", "70")--descuento que se aplicara al articulo
Precio = Input.GetText("ComboPrecio1")
Por = ComboBox.GetText("ComboDescuento")
Resultado = (Precio*Por)/100
ResultadoF = (Precio-Resultado)
Input.SetText("ComboPrecio1", Math.Round(ResultadoF,0))
--------*********DESCUENTOS EN DINERO*********--------
elseif Dias > 181 or Dias < 187 then
Precio = Input.GetText("ComboPrecio1")
if Precio == "85" or Precio == "85.00" or Precio == "50" or Precio == "50.00" then
Input.SetText("ComboPrecio1", "30.00")
end
elseif Dias > 187 or Dias < 193 then
Precio = Input.GetText("ComboPrecio1")
if Precio == "30" or Precio == "30.00" then
Input.SetText("ComboPrecio1", "20.00")
end
elseif Dias > 193 or Dias < 199 then
Precio = Input.GetText("ComboPrecio1")
if Precio == "20" or Precio == "20.00" then
Input.SetText("ComboPrecio1", "10.00")
end
elseif Dias > 199 or Dias < 206 then
Precio = Input.GetText("ComboPrecio1")
if Precio == "10" or Precio == "10.00" then
Input.SetText("ComboPrecio1", "5.00")
end
elseif Dias > 206 or Dias < 212 then
Precio = Input.GetText("ComboPrecio1")
if Precio == "5" or Precio == "5.00" then
Input.SetText("ComboPrecio1", "3.00")
end
elseif Dias > 212 or Dias < 218 then
Precio = Input.GetText("ComboPrecio1")
if Precio == "3" or Precio == "3.00" then
Input.SetText("ComboPrecio1", "1.00")
end
end
------------FINAL DE TABLA DE DESCUENTOS PRODUCTOS SEGUN ANTIGUEDAD-----------
este código me resulto sin ningún resultado satisfactorio ahora tengo este otro código que casi me funciona pero el detalle con este es de que me recorre todas las condiciones aunque encuentre la que es correcta y me da un resultado erróneo debido a ello.
local Categoria = Label.GetText("LblPresentacion");
if Categoria == "ROPA DE HOMBRE" or Categoria == "ROPA DE MUJER" then
Fecha = tonumber(Label.GetText("LblResultado"));
Valor = tonumber(Input.GetText("ComboPrecio1"));
Continuar = "Aprobado"
if (Valor>29) or (Valor<181) then
if (Fecha>=29) or (Fecha<49) then -- 30 Dias
if Continuar ~= "No Aplica" then
ComboBox.SetText("ComboDescuento", "30")--descuento que se aplicara al articulo
local Precio = tonumber(Input.GetText("ComboPrecio1"))
local Por = tonumber(ComboBox.GetText("ComboDescuento"))
local Resultado = tonumber(Precio*Por)
local ResultadoDescuento = tonumber(Resultado/100)
local ResultadoF = tonumber((Precio-ResultadoDescuento))
Input.SetText("ComboPrecio1", Math.Round(ResultadoF,0))
Continuar = "No Aplica"
Label.SetText("LblDes", "Descuento de 30 dias Ropa de 55 a 180")
Dialog.Message("Resultados 29 dias", Resultado.." - "..ResultadoDescuento.." - "..ResultadoF)
else
Continuar = "Aprobado"
end
end
end
if (Valor>29) or (Valor<181) then
if (Fecha>=49) or (Fecha<79) then -- 50 dias
if Continuar ~= "No Aplica" then
ComboBox.SetText("ComboDescuento", "50")--descuento que se aplicara al articulo
local Precio = tonumber(Input.GetText("ComboPrecio1"))
local Por = tonumber(ComboBox.GetText("ComboDescuento"))
local Resultado = tonumber(Precio*Por)
local ResultadoDescuento = tonumber(Resultado/100)
local ResultadoF = tonumber((Precio-ResultadoDescuento))
Input.SetText("ComboPrecio1", Math.Round(ResultadoF,0))
Continuar = "No Aplica"
Label.SetText("LblDes", "Descuento de 50 dias Ropa de 55 a 180")
Dialog.Message("Resultados 49 dias", Resultado.." - "..ResultadoDescuento.." - "..ResultadoF)
else
Continuar = "Aprobado"
end
end
end
if (Valor>79) or (Valor<200) then
if (Fecha>=85) or (Fecha<181) then -- 50 dias
if Continuar ~= "No Aplica" then
ComboBox.SetText("ComboDescuento", "50")--descuento que se aplicara al articulo
local Precio = tonumber(Input.GetText("ComboPrecio1"))
local Por = tonumber(ComboBox.GetText("ComboDescuento"))
local Resultado = tonumber(Precio*Por)
local ResultadoDescuento = tonumber(Resultado/100)
local ResultadoF = tonumber((Precio-ResultadoDescuento))
Input.SetText("ComboPrecio1", Math.Round(ResultadoF,0))
Continuar = "No Aplica"
Label.SetText("LblDes", "Descuento de 70 dias Ropa de 55 a 180")
Dialog.Message("Resultados 79 dias", Resultado.." - "..ResultadoDescuento.." - "..ResultadoF)
else
Continuar = "Aprobado"
end
end
end
end
Aquí les adjunto el apz de lo que tengo hasta el momento
Código: Seleccionar todo
https://www.dropbox.com/s/7mr27rnkhhp6oo5/Tabla%20de%20Descuentos.apz?dl=0
de antemano muchas gracias por su tiempo.