Página 1 de 1

ayuda con algunas lineas

Publicado: Vie Ago 06, 2010 3:38 am
por jorgeluisr_24
estoy empezando a programar en este entorno , me gustarí­a que me echen una manito por favor con esta duda
Tengo en mi programa un stock de productos tal como muestra la figura (1)
el detalle es que tengo varios lotes del mismo producto, para ello se creo
un "submodulo" llamado mantenimiento lotes ,como puede verse en la figura,
el cual aparece despues de poner la cantidad a despachar al cliente ,
ahi en ese modulo sale la cantidad Disgregada en lotes ,el cual es el total
del item .
"Mi problema es este en realidad":
yo tengo que escoger el lote y cantidad que supla lo que pide el cliente , por que sino
no lo desaparece si seria exacto y lo pasa a negativo, en el grafico ven varios lotes
si el cliente me pedí­a 4 en cantidad , ERA el problema por que tenia que
digitar doble vez , primero descargando un lote que cubra una parte (si no cubria el pedido
del cliente con alguno de los lotes)
Lo que deseo ahora , es que eligiendo en el mismo caso del cliente (4 items) , pues eligiendo
cualquiera , me descargue lo que corresponda a la cantidad del lote , y en caso que no lo cubra
complete con el siguiente lote , ahorrandome el tiempo de la doble digitacion , espero puedan entender
lo que deseo hacer y me puedan dar una manito
PS: el grafico creo que explicará mejor mi idea , Gracias ,

ayuda con algunas lineas

Publicado: Lun Ago 16, 2010 3:40 am
por zeasoftware
Lo que tiene sque hacer es un bucle para ir descargando la cantidad deseada contra lo que te queda. asi vas descargando hasta que lo pedido sea cubierto.
Para esto tienes que filtrar los que van quedando distintos de cero.
Esto lo usaba en MSDOS para control de costos, y es parecido a lo que tu buscas, aun no lo paso a Xailer.
#ifdef _CONTROL_COSTOS_
Function DescCantCosto(cCodigo, nCantidad)
Local nVendidos
ArtiCost->( dbScope(cCodigo, cCodigo) )
While ( nCantidad > 0.0 )
ArtiCost->( dbGoBottom() )
If ArtiCost->( EoF() )
Exit
End
ArtiCost->( netRLock() )
If ArtiCost->Existencia - nCantidad < 0.0
nVendidos := ArtiCost->Existencia
Else
nVendidos := nCantidad
End
ArtiCost->(_Field->Existencia -= nVendidos )
ArtiCost->( dbUnLock() )
nCantidad -= nVendidos
End
Return ( Nil )
#endif
Saludos.