XBase - Ayuda URGENTE EN XHARBOUR o HARBOUR

 
Vista:

Ayuda URGENTE EN XHARBOUR o HARBOUR

Publicado por Jorge (1 intervención) el 29/07/2010 21:25:30
[COLOR="darkred"]NECESITO DE SU AYUDA AMIGOS:
ESTOY ELABORANDO UN PROGRAMA ... EL DETALLE DEL INCONVENIENTE ES EL SIGUIENTE ...:

TENGO EN STOCK DE ITEMS EN EL MODULO DE VENTAS .... (EJEMPLO ARTICULOS DE FERRETERÍA) DIGAMOS:[/COLOR]

COD. NOMBRE ARTICULO / CANTIDAD / PROVEEDOR. / PRECIO UNI
111 CLAVOS 1´ 100 CLAVITOS 1.00 $
[COLOR="DarkRed"]HASTA AHI BIEN QUE FIGURA COMO QUIERO...
PERO DIGAMOS QUE ESE ARTICULO TIENE VARIOS LOTES DE INGRESO
... LO QUE YO HIZE ES PONER UNA VENTANA DE MODULOS DISPONIBLES Y LA CANTIDAD QUE HABRIA = A CANTIDAD TOTAL QUE MUESTRA EL ITEM ... [/COLOR]
EJEM:
ART CANT LOTE F.VENC
111 10 123456 01/01/2020
111 50 789456 01/02/2020
111 40 789455 01/03/2020

[COLOR="darkred"]COMO PUEDEN VER .... UNO ESCOGIA EL LOTE CORRESPONDIENTE ACORDE EL CLIENTE PEDIA LA CANTIDAD (Y ESTE NO SOBREPASE LO QUE HABIA EN EL LOTE , POR QUE SINO PASABA A NEGATIVO ,((AHI ENTRA EL MEOLLO DE MI PROBLEMA)).[/COLOR]

AHORA ME PIDIERON QUE IGUAL PRESENTE LA MISMA OPCION PERO CON LA VARIACION DE QUE "SI VENDO UNA CANTIDAD SUPERIOR A LO QUE ESCOGÍ , PUES ME DESCARGUE AUTOMATICAMENTE DEL SIGUIENTE LO RESTANTE QUE CUBRA EL REQUERIMIENTO ASIMISMO IMPRIMIERA DESPLEGADO EN DOS

POR EJEMP:

PIDEN 5 CANT. DEL ITEM MENCIONADO DEL EJEMPL.

UNO ESCOGIA CUALQUIERA DE LOS 3 PORQUE CUBRE EL REQUERIMIENTO

AHORA , PIDEN 70 , QUE TENIA QUE HACER ANTES ... ESCRIBIR EL PRODUCTO ... NO CUBRIA NINGUNO DE LOS 3 , ENTONCES VOLVER A DIGITAR PERO AHORA 50 Y ESCOGER EL DE 50 , LUEGO VOLVER A DIGITAR Y ESCOGER EL DE 40 .... ASI CUBRIA MI REQUERIMIENTO , LO QUE QUIERO AHORA ES QUE A PESAR QUE EL PRIMERO NI SEGUNDO Y TERCERO CUBREN .... SE DESCAGUEN SECUENCIALMENTE ... ME DEJO ENTENDER ESPERO ...

YO DIGITO :
CLAVOS 1` => VEO 100 SI CUBRE NECESIDAD CLIENTE=> ESCOGO AL AZAR CUALQUIERA , Y CON SOLO DIGITAR ESA VEZ Y PONER ....LOS 70 , SE DESCARGUE DE ESE MODULO ESPECIAL , SECUENCIALMENTE PUES ... LOS 10 , LOS 50 Y 10 DEL TERCERO.

ASIMISMO EN LA IMPRESION DE DOCUMENTOS , PUES , ME SALGA SE UNA SOLA VEZ ASI:

[COLOR="Navy"]CASO 1 (LO QUE HACIA) LA IMPRESION :[/COLOR]

cant aRTI LOTE pRECIO
50 CLAVOS 1 ´ 789456 xxxxxX (PRIMERA DIGITACION)
20 CLAVOS 1´ 789455 xxxxxxxx (SEGUNDA DIGITACION POR QUE NO CUBRIA)

ENTONCES ASI SALIA LA IMPRESION Y QUEDABA PARA LA PROXIMA VENTA EN EL MODULO DE VENTAS Y CONSULTA DE LOTES RESPECTIVAMENTE:

COD. NOMBRE ARTICULO / CANTIDAD / PROVEEDOR. / PRECIO UNI
111 CLAVOS 1´ 30 CLAVITOS 1.00 $

ART CANT LOTE F.VENC
111 10 123456 01/01/2020
111 20 789455 01/03/2020

AHORA LO QUE QUIERO HACER QUE SEA ASI ...

EN LA IMPRESION DE DOCUMENTOS , PUES , ME SALGA SE UNA SOLA VEZ ASI:

ME PASO DE LARGO SOLO DIGITO UNA SOLA VEZ EL PRODUCTO ... I ME PASO DE LARGO ESCOGO EL PRIMERO ... (CANT =10) Y SIGO VENDIENDO...

ART CANT LOTE F.VENC
111 10 123456 01/01/2020
111 50 789456 01/02/2020
111 40 789455 01/03/2020

[COLOR="Navy"]CASO 1 (LO QUE HARA) LA IMPRESION :[/COLOR]

cant aRTI LOTE pRECIO
10 CLAVOS 1 ´ 123456 xxxxxX
50 CLAVOS 1´ 789456 xxxxxxxx
10 CLAVOS 1´ 789455 xxxxxxxx

ya no digite DOS O N VECES PARA CUBRIR LA NECESIDAD DEL CLIENTE
.................................................................................................
Y PUES PARA LA PROXIMA VENTA Y CONSULTE EL MISMO PRODUCTO DEBERIA QUEDAR ASI ....

COD. NOMBRE ARTICULO / CANTIDAD / PROVEEDOR. / PRECIO UNI
111 CLAVOS 1´ 30 CLAVITOS 1.00 $

ART CANT LOTE F.VENC
111 30 789455 01/03/2020

DISCULPEN QUE SEA TAN LARGA LA EXPLICACION , PERO ESPERO HABER SIDO LO MAS DIDACTICO POSIBLE ... ASI PUEDAN DARME UNA MANITO , SE AGRADECE DE CORAZON ;)

JORGE.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Control de ventas de lotes para cubrir cantidad requerida

Publicado por Alejandro (13 intervenciones) el 17/07/2023 16:42:15
Para lograr el control de ventas de lotes y cubrir la cantidad requerida sin tener que ingresarla múltiples veces, puedes seguir estos pasos:

1. Almacenar los datos de los lotes en una tabla o arreglo: En lugar de tener solo una variable para almacenar la cantidad total del artículo, crea una tabla o arreglo donde puedas almacenar la información de los diferentes lotes, incluyendo el lote, la cantidad disponible y la fecha de vencimiento. Por ejemplo:

1
CREATE TABLE LOTES (ARTICULO C(10), LOTE C(10), CANTIDAD N(10), F_VENC D)

2. Obtener la cantidad requerida del cliente: Solicita al cliente la cantidad requerida del artículo.

3. Recorrer los lotes disponibles: Recorre los lotes disponibles y selecciona el primer lote que pueda cubrir parcial o completamente la cantidad requerida. Por ejemplo:

1
2
3
4
5
6
7
8
9
10
SELECT LOTES
INDEX ON CANTIDAD TO CANTIDAD
LOCATE FOR CANTIDAD >= nCantidadRequerida
IF FOUND()
   // Lote encontrado, actualiza la cantidad
   REPLACE CANTIDAD WITH CANTIDAD - nCantidadRequerida
ELSE
   // No se encontró ningún lote con suficiente cantidad
   // Realiza las acciones necesarias para manejar esta situación
ENDIF

4. Generar la impresión del documento: Después de seleccionar los lotes, puedes generar la impresión del documento utilizando la información de los lotes seleccionados.

5. Actualizar la tabla de lotes: Después de la venta, actualiza la tabla de lotes para reflejar la nueva cantidad disponible de cada lote.

Es importante tener en cuenta que estos pasos son una guía general y deberás adaptarlos a tu estructura de datos y flujo de trabajo específicos. Además, considera implementar mecanismos de validación y control para garantizar que la cantidad requerida no supere la cantidad disponible en los lotes.

Recuerda que en Xbase++ tienes diversas opciones para trabajar con tablas, como el lenguaje DBF y la biblioteca DBFCDX. También puedes utilizar funciones y comandos para recorrer registros, realizar operaciones de actualización y generar la impresión del documento según tus necesidades específicas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar