ayuda ??

Post Reply
tomafa
Posts: 111
Joined: Sun Aug 13, 2006 7:28 pm
Location: ....
Contact:

ayuda ??

Post by tomafa »

amigos como han estado, tengo la siguiente problema estoy teminando un punto de venta, pero mi problema es que el usuario quiere manejar promosiones en sus productos, he tratado de hacer un algoritmo para poder aplicar la promosion si alguien tiene una ide bien venida,


ejemplo: tengo un producto que cuesta 20 pesos, le aplico una promocion de 3 productos por 35 pesos, el sistema me tiene que hacer la operacion, pero si eligo dos me tiene que hacer la suma normal, espero que me halla explicado

Saludos
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Post by karinha »

Una sugerencia:

Un Campo donde pregunta se el produto esta en promosion.

En tu cadastro de produtos, crea 4 precios:

Precio 1 -> Normal
Precio 2 -> Otra alternativa
Precio 3 -> Otra Alternativa
Precio 4 -> En promosion.

Crea Una Fecha para controlar la fecha maxima de la promosion.
Y avisa al usuario cuando terminar la promosion.

Saludos.
João Santos - São Paulo - Brasil
tomafa
Posts: 111
Joined: Sun Aug 13, 2006 7:28 pm
Location: ....
Contact:

Post by tomafa »

gracias por tu respuesta pero necesito resolverlo en codigo


por ejemplo uso un ciclo for

xpromocion = 3 (3 productos)

for a:=1 to xpromocion

esta es la parte que no me sale, como puedo hacer la operacion en donde evalue si tengo 4 productos que me cobre 3 en promocion y uno en precio normal y asi sicesivamente, si tengo 2 productos que me cobre los 2 en precio normal y si tengo 7 deben entrar 6 productos en promocion y uno en precio normal y haci sicesivamente .

gracias


end for
User avatar
Daniel Garcia-Gil
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita
Contact:

Post by Daniel Garcia-Gil »

intenta esto...

nCantidad_Promocion = int( nCantidad_Productos / 3 )
nCantidad_No_Promocion = nCantidad_Prodictos%3

si hay 10 productos

nCantidad_Promocion = Int( 10 / 3 ) => 3 Promiciones
nCantidad_No_Promocion = 10%3 => 1

esto quiere decir que vas a tener 3 promosiones cada promosion de 3 articulos que hacen 9 articulos + 1 de no promosion son 10
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
tomafa
Posts: 111
Joined: Sun Aug 13, 2006 7:28 pm
Location: ....
Contact:

Post by tomafa »

gracias mcfox por tu propuesta, pero no me da el resultado,


a lo mejor no me explique bien,

tengo un articulo en donde tiene promocion se que 3 unidades estan en promocion, entonces supongamos que estas vendiendo el articulo x en donde se llevan 10 unidades en donde este producto tiene promocion, es decir en este ejemplo vendo 9 en una promocion de 3 unidades, supongamos que la promocion es de 20 por 3 unidades.

1 unidada vale 15 pesos
3 unidades vales 20 pesos promocion

si me llevo 10 articulos estaria asi el ejemplo

3 = 20 que seria 9 por 60 + 15
esto es lo que quiero hacer no me sale el algoritmo me falla en algo,
me hace en principio las operaciones bien cuando es de 2 articulos la promocion pero cuando pongo mas es cuando se dispara en las cantidades o no me hace bien las operaciones

de ante mano muchas gracias
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Post by Armando »

Tomafa:

Debes conocer 4 cosas:
1.- Cuando el artículo esta en promoción
2.- Cual es el precio de la promoción, $20 según tu ejemplo
3.- Cuantas piezas forman la promoción, 3 piezas según tu ejemplo
4.- Cual es el precio por cada pieza cuando no entra en promoción, $15 según tu ejemplo.

Entonces si vendes 10 piezas del artículo en promoción debes hacer lo siguiente:

Divides las piezas vendidas entre el número de piezas que forman la promoicón, es decir 10 / 3, digamos así:

nPromo := INT(10 / 3), el resultado sera 3
luego obtienes el importe de las tres promociones

nImporte := ROUND(nPromo * 20,2) esto te dará $ 60

Despues debes determinar cuantas piezas van a cobrarse fuera de promoción esto lo obtienes así

nPzsSin := 10 - nPromo * 3, el resultado te debe dar 1 pieza

Finalmente el importe de la o las piezas sin promoción lo sumas al importe de las promociones

nImporte += ROUND(nPzsSin * 15,2)

nImporte debe valer $75 ($60 de las tres promociones + $15 de una pieza a precio de no promoción.)

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
tomafa
Posts: 111
Joined: Sun Aug 13, 2006 7:28 pm
Location: ....
Contact:

Post by tomafa »

Armando :


gracias por tu apoyo probe la logica que publicaste y me funciono esta a la perfeccion


y gracias a todos

saludos
tomafa
Posts: 111
Joined: Sun Aug 13, 2006 7:28 pm
Location: ....
Contact:

Post by tomafa »

ARMANDO :

saludos

tuve un problema en el punto

Despues debes determinar cuantas piezas van a cobrarse fuera de promoción esto lo obtienes así

nPzsSin := 10 - nPromo * 3, el resultado te debe dar 1 pieza

en este punto tuve el problema no me regresa las piezas sin promocion estoy haciendo algo mal

gracias
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Post by Armando »

Tomafa:

Con que valores no te devuelve lo correcto ?

o intentalo así para forzar que primero haga la multiplicación

nPzsSin := 10 - (nPromo * 3), el resultado te debe dar 1 pieza

Tambien recuerda sustituir las constantes 10 y 3 por las variables que las contienen. ejemplo

nPzsSin := nPzsVta - (nPromo * nPzsPro) en donde

nPzsVta es igual a las piezas a vender, 10 y
nPzsPro es igual a las piezas de la promoción, 3

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Daniel Garcia-Gil
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita
Contact:

Post by Daniel Garcia-Gil »

parece que no me entediste con la explicacion... aqui te deje un ejemplo...
lo puedes descargar tambien

Code: Select all

#include "fivewin.ch"

function main()

local oDlg, oSay

local nPrecio_Unitario			:= 	0
local nPrecio_Promo					:= 	0
local nArticulos_Por_Promo	:= 	0
local nArticulos_Venta			:= 	0
local nTotal_Pagar					:=  0



	define dialog oDlg Title "Ejemplo Articulos Promocion" size 400, 250
	
	@ 1,1 say "Precio Unitario :"
	@ 2,1 say "Articulos Por Promocion :"
	@ 3,1 say "Precio Total de la Promocion:"
	@ 4,1 say "Cantidad de Articulos a vender:"
	@ 5,1 say "Total a Pagar:"
	@ 5,1 button "Calcula" action( nTotal_Pagar:= Calcular(nPrecio_Promo, nPrecio_Unitario, nArticulos_Por_Promo, nArticulos_Venta),;
																 oSay:refresh())
	
	@ 1,7 get nPrecio_Unitario picture "999,999,999.99" right
	@ 2.5,8 get nArticulos_Por_Promo picture "999" right
	@ 3.5,10 get nPrecio_Promo picture "999,999,999.99" right
	@ 4.5,10 get nArticulos_Venta picture "999" right

	@ 5,10 say oSay var nTotal_Pagar picture "999,999,999.99" update
	

	activate dialog oDlg centered
	
return 

static function Calcular(nPrecio_Promo, nPrecio_Unitario, nArticulos_Por_Promo, nArticulos_Venta)

local nCantidad_Promocion 
local nCantidad_No_Promocion 
local nTotal

nCantidad_Promocion 		= int( nArticulos_Venta / nArticulos_Por_Promo )
nCantidad_No_Promocion 	= nArticulos_Venta % nArticulos_Por_Promo

nTotal 	= ( nCantidad_Promocion * nPrecio_Promo ) + ( nCantidad_No_Promocion * nPrecio_Unitario )

return nTotal
http://rapidshare.com/files/168433102/test01.rar

aqui tienes una imagen con las datos que tu mismo has suministrado
Image
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
User avatar
MauroArevalo
Posts: 98
Joined: Thu Jan 19, 2006 11:47 pm
Location: Bogota DC. Colombia
Contact:

Post by MauroArevalo »

Disculpen pero no aguante:

Creo que el problema es mucha más de fondo que hacer el algoritmo y luego formularlo en código.

El control de los inventarios tiene como principio básico controlar las cantidades en existencia, rotación, etc.. Agregado a este control se debe manejar los costos del inventario.

Dentro de esta parte tenemos Sistemas de Inventarios y sus métodos de valuación, dentro de los métodos de valuación podemos tener los siguientes:

1. Costo Promedio

2. UEPS (Ultimas en Entrar, primeras en Salir) referidas a las unidades.

3. PEPS (Primeras en entrar, primeras en Salir) referidas a las unidades.

4. Identificación especifica.

Resumiendo, dependiendo del método de valuación de tu sistema de punto de venta debes buscar la forma de controlar los productos que salen en promoción porque te afecta directamente el porcentaje (%) de margen de utilidad, el costo de ventas y el costo del inventario.

Este tema es mucho más complejo si se le suma devoluciones, descuentos, daños, etc., ni que decir de las exigencias fiscales y tributarias (que es propia de cada país).

Vuelvo y pido disculpas si me salí del tema, aunque creo que no…me pico el bichito de mi otra profesión (Contador Público)

Saludos cordiales,
Edgar Mauricio Arévalo Mogollón.
Bogotá DC. Colombia
FWH 19.06 xHarbour 1.2.1, Pelles C, Fivedit, Borland 7.30
http://www.hymplus.com
Tratando de retomar la programación....
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Post by Armando »

Mauro:

Llevas mucha razón y no te quito un ápice, sin embargo lo que yo entendí en el post es ayuda sobre el algoritmo para calcular los importes que se deben cobrar cuando hay promoción y cuando no la hay, lo demas lo doy por descontado.

Saludos amigo.
Last edited by Armando on Sat Nov 29, 2008 7:41 pm, edited 1 time in total.
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Daniel Garcia-Gil
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita
Contact:

Post by Daniel Garcia-Gil »

Armando... te has adelantado a un post que me disponia es publicar, escribia algo muy similar, pero es bueno saber que Mauro Arevalo es contador :D
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Vital
Posts: 58
Joined: Mon Nov 06, 2006 6:56 am

Post by Vital »

Mira, yo lo que hago en una tienda de tines y playeras, tenemos varias formas de promociones, 1.- 3 por $ 20.00 2.- Paga 3 y llevate 4 3.- Descuento al precio por % 4.- Decuento al precio por importe 5.- Precio por Docena

En cada venta que se hace se revisa si es que tiene promo y que tipo de promo, y la venta se va ordenando por articulo, para que cuando se hace la venta se valla contando el producto y se puebla aplicar la promocion. En la promocion de 3 por $20.00, la promocion se aplica al precio del tercer producto, el 1ro y 2do son con precio normal y el 3ro le aplica la promo.

Saludos, cualquier duda a mi correo
tomafa
Posts: 111
Joined: Sun Aug 13, 2006 7:28 pm
Location: ....
Contact:

Post by tomafa »

mcfox

y a todos me parecio interesante cada una de las opiniones estoy probando el codigo y en verdad me funciono,

y gracias a todos por sus aportaciones

gracias y estoy a sus ordenes,

a veces con este tipo de problemas estoy, no se como decirlo pero agradensco el apoyo de todos, creo que podemos apoyarnos, en verdad nunca pense que me ayudaran y creo que recibi más, es valiso contar con cada uno de ustedes

gracias
Post Reply