Página 1 de 1

Ayuda con Tabla de condiciones if elseif

Publicado: 21 Sep 2016 08:20
por Agotaras123
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

Imagen Imagen
Imagen Imagen
Imagen Imagen

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.

Re: Ayuda con Tabla de condiciones if elseif

Publicado: 21 Sep 2016 17:10
por abood1987
look at this example 1 :

if (Valor>29) and (Valor<181) then


the result bettween : 30 or 31 or 32 or .................to 180 jast Only

look at this example 2 :

if (Valor>29) or (Valor<181) then


the result bettween : 180 and lees than 180 Because the condition or

then the right way is example 1


If you understand the above, and you have applied in all the conditions in your project, then output will be true :friends:

Re: Ayuda con Tabla de condiciones if elseif

Publicado: 21 Sep 2016 17:24
por Agotaras123
Gracias Abood1987 sos un genio jajajaj mmuchas gracias hoy si me funciona perfectamente aqui dejo el script

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 = "Aplica"

	
		if (Valor>29) or (Valor<181) then
			if (Fecha>=29) and (Fecha<49) then -- 30 Dias
				if Continuar == "Aplica" then
				Continuar = "No Aplica"
				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 = "No Aplica"
			end	
		end
		end		
		
		
		
		if (Valor>29) or (Valor<181) then
			if (Fecha>=49) and (Fecha<79) then -- 50 dias
				if Continuar == "Aplica" then
				Continuar = "No Aplica"
				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 = "No Aplica"
			end	
		end
		end		
	
	

if (Valor>79) or (Valor<200) then
			if (Fecha>=85) and (Fecha<181) then -- 50 dias
				if Continuar == "Aplica" then
				Continuar = "No Aplica"
				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 = "No Aplica"
			end	
		end
		end		
	
	



	
	

end



bueno solo lo he probado con esta parte del código lo probare con el resto y luego comento y publico los resultados.

Re: Ayuda con Tabla de condiciones if elseif

Publicado: 21 Sep 2016 18:57
por abood1987
Agotaras123 escribió:Gracias Abood1987 sos un genio jajajaj mmuchas gracias hoy si me funciona perfectamente aqui dejo el script

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 = "Aplica"

	
		if (Valor>29) or (Valor<181) then
			if (Fecha>=29) and (Fecha<49) then -- 30 Dias
				if Continuar == "Aplica" then
				Continuar = "No Aplica"
				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 = "No Aplica"
			end	
		end
		end		
		
		
		
		if (Valor>29) or (Valor<181) then
			if (Fecha>=49) and (Fecha<79) then -- 50 dias
				if Continuar == "Aplica" then
				Continuar = "No Aplica"
				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 = "No Aplica"
			end	
		end
		end		
	
	

if (Valor>79) or (Valor<200) then
			if (Fecha>=85) and (Fecha<181) then -- 50 dias
				if Continuar == "Aplica" then
				Continuar = "No Aplica"
				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 = "No Aplica"
			end	
		end
		end		
	
	



	
	

end



bueno solo lo he probado con esta parte del código lo probare con el resto y luego comento y publico los resultados.

Imagen No the Right Way is :

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 = "Aplica"

        
                if (Valor>29) and (Valor<181) then
                        if (Fecha>=29) and (Fecha<49) then -- 30 Dias
                                if Continuar == "Aplica" then
                                Continuar = "No Aplica"
                                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 = "No Aplica"
                        end     
                end
                end             
                
                
                
                if (Valor>29) and (Valor<181) then
                        if (Fecha>=49) and (Fecha<79) then -- 50 dias
                                if Continuar == "Aplica" then
                                Continuar = "No Aplica"
                                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 = "No Aplica"
                        end     
                end
                end             
        
        

if (Valor>79) and (Valor<200) then
                        if (Fecha>=85) and (Fecha<181) then -- 50 dias
                                if Continuar == "Aplica" then
                                Continuar = "No Aplica"
                                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 = "No Aplica"
                        end     
                end
                end             
        
        



        
        

end


Change all conditions which contains Or to be and