Vfp problema venta agua purificada

Quien puede ayudarme con la siguiente situación con un programa que estoy creando en vfp9
una empresa de agua purificada a domicilio
el problema es el siguiente:
Como ejemplo supongamos que un cliente llamo y solicito 10 botellones con agua se envía al motorista donde el cliente y resulta lo siguiente que el motorista regresa de donde el cliente con lo siguiente el cliente solo pago al contado 5 botellones con agua por lo tanto este cliente pago en efectivo una parte y la otra parte a crédito además este cliente solo entrego 8 botellones vacíos por lo tanto tambio queda con 2 botellones prestados.

He allí el problema como hago para que un formulario de venta se refleje lo anterior.

Y que además supongamos que este cliente 2 días después paga los 5 botellones con agua y devuelve los 2 botellones prestados por lo tanto como hago para jalar la información anterior de ese cliente e ingresar que pago en tal fecha la cantidad tal y al mismo tiempo devolvió los botellones prestados y que quede reflado todo esos movimientos.

Aclaro que todos estos movimientos afectan el inventario de los botellones que seria :

Botellones llenos ------- por cantidad
botellones vacíos------- por cantidad

2 Respuestas

Respuesta
1

Este es mi correo: [email protected]  muchas gracias se los agradeceria

Respuesta
1

Por un lado tienes una tabla en donde registras cantidades de botellones, llamemosle a la tabla del mismo modo, es decir BOTELLONES

En ésta tabla tendrás 2 campos (siempre a modo ejemplo):

Estado c(10), Cantidad n(5,0)

En donde el campo Estado será llenos, vacíos o fuera de la empresa (en poder del cliente o del repartidor) y en otro campo será cantidad existente y usaras ésta tabla a modo de stock.; se vería algo así:

Tabla: BOTELLONES
---------------------
Estado Cantidad
Llenos 700
Vacios 250
Fuera 123

En otra tabla tendrás los Clientes:

Tabla: CLIENTES
-------------------
Codclte Cliente
A0001 Fdez Miguel
A0002 Mnez Rodolfo
A0003 Gomez Arnaldo
...

Creas una nueva tabla de Repartos:

Tabla: REPARTOS
------------------------
Codclte Cliente Botell Devuelve Faltan Importe Pago Saldo
A0003 Gomez Arnaldo 10 8 2 75 50 25

entonces en un simple registro ingresas el nombre del Cliente con su código para que sirva de relación para otros procesos futuros, Cantidad de botellones entregados, cantidad devueltos y cuantos faltan, además cuanto es el importe, cuanto paga y su saldo...

Cuando terminas de guardar el registro haces que el valor del campo Botell se descuente de la cantidad de botellones Llenos; el valor del campo devuelve se sume a botellones vacíos y el valor del campo Faltan se sume al valor de botellones faltantes.

Gracias por contestar

Me parece excelente la tabla botellones lo tengo como productos, clientes, en la de reparto es es como se llenaría en base cuando se factura porque ahí es donde estaría el problema tendría que estar ligada la tabla reparto y si además de eso el cliente paga efectivo y la otra parte crédito y si además se le presto envase.

Yo he pensado hacer 2 formularios o más para facturar uno de contado y otro de crédito he estado tratando de armar el rompecabeza

[email protected]

No necesitas 2 formulario para hacerlo, podrías usar un botón desplegable en donde seleccionaras Cuenta Corriente o Contado

A tu tabla, la que sea le agregas el valor de éste campo y el proceso que corresponda y estaría más simplificado.

¡Gracias!  estare probando lo que me mencionas si tienes algun ejemplo medio sencillo de lo ultimo que me mencionas seria mucho mejor para darme una mejor orientacion de lo antes mencionado y muchisimas gracias por tus respuestas

Simplemente un desplegable o botón de radio que indique la forma de pago, que al guardar la información, por ejemplo de pagos en cuenta corriente se guarden en otra tabla de Cuentas Corrientes por ejemplo en donde tendrás totales de deuda, nombre de cliente, etc.; en cambio si fuese Contado no hace ésto.

¡Gracias! si asi lo implementare, me gustaria hacerte una consulta con respecto a la misma aplicacion para mayor seguridad de la direccion de un cliente decidi hacer lo siguiente:

hay una tabla que se llama departamentos(ya tiene tabla y su formulario y completa con sus respectivos datos) pero por cada departamento hay x cantidad de municipios( al igual que la anterior ya tiene ingresado los datos que se necesitan y relacionada con la tabla departamentos por un campo iddep(campo numerico incremental) pero por cada municipio hay x cantidad de aldeas,caserios, barrios, colonias etc, que seria la tercera tabla llamada localidad(falta crearla) que relacionare con la tabla municipios por un campo idmun(campo numerico incremental) .. la duda que me ha surgido o locura es que en la tabla localidad volver a incluir el campo iddep la logica dice que no porque ya esta relacionada la tabla departamento con municipio y municipio con localidad pero me salto la duda ya que esta ultima tabla localidad el usuario es a la unica de las tres que podra agregar registros y temo que se pueda confundir al seleccionar el municipio correcto que le corresponda ya sea al caserio,aldea etc.. o se me vino otra idea la mas acertada a mi entender de implementar en el formlocalidad dos combos cascada uno para seleccionar el departamento correcto y al selecionarlo que el siguiente combo me muestre solo los municipios que le correspondan al departamento seleccionado pero que al guardar no guarde en el form

El dato seleccionado del combo departamen solo el idloc, idmun(cbomun), nombrelocalidad

No se si seria una buena esa ultima según tu criterio y para terminar como agregaría o tendría el mismo problema para la tabla clientes que serian estos campos: idcli, nombre, idloc(o el nombre de la localidad que sugieres), teléfono... pero también me da temor que no elijan el correcto idloc que le correspondería al cliente por lo tanto quedaría incorrecta la dirección del cliente al momento de ingresar los nuevos clientes.--- Que me sugieres para que el usuario no cometa algún error en estos casos y esta es mi ultima interrogante y gracias por tu tiempo.

Por el tema de los combos uno debe depender del otro, es como dices, cuando seleccionas uno en el otro se muestren datos relativos al primero y así sucesivamente... no debes dejar que el usuario pueda cometer errores al ingresar la información, hacerlo como se suele decir a prueba de bombas...

Todas tus ideas son buenas y no te preocupes de agregar más campos que podrías o no ocupar, que a medida que crezca tu sistema siempre terminarás dándole uso.

En nuestros sistemas cuando vamos a llevar información de una tabla a otra por ejemplo esa de clientes que mencionas llevando datos de localidad/municipio, etc; llevaría tanto los ID como los nombres completos.

Por otro lado si los usuarios ingresan mal los datos al sistema, "es harina de otro costal", eso no podrás evitarlo y hace a la responsabilidad del administrador; siempre cometerán errores y será exponencialmente de acuerdo a la cantidad de usuarios.

Gracias por tu respuesta

Si y me gustaría saber que código se necesita para enlazar dos combos que al seleccionar un registro del primero me muestre la relación del registro en el segundo en que parte del segundo iría el código.

Para que el combo me muestre los datos en cada uno tengo lo siguiente

combo1

Init

LOCAL iddep
select * from departamentos into cursor temporal
thisform.cboiddep.rowsourcetype = 6
Thisform.cboiddep.RowSource = "temporal.iddep,codigo,departamento"
thisform.cboiddep.ColumnWidths="20,50,150"
thisform.cboiddep.boundcolumn=1
iddep = thisform.cboiddep.value
&& si el dato es numérico

combo2

init

LOCAL idmun
select * from municipios into cursor temporal
thisform.cboiddep.rowsourcetype = 6
Thisform.cboiddep.RowSource = "temporal.idmun,iddep,municipio"
thisform.cboiddep.ColumnWidths="20,20,190"
thisform.cboiddep.boundcolumn=1
iddep = thisform.cboiddep.value
&& si el dato es numérico

Esto me funciona bien solo me falta es como enlazar los dos combos

Perdona la demora en responder pero es que he estado muy ocupado..

¿Por qué a las 2 tablas cursor la llamas temporal?, deberías diferecnairlas Temporal1 y Temporal2 por ejemplo.

Decirte que lo que haría yo sería dejar el combo 2 sin datos hasta que el combo 1 se seleccionase; entonces solo deberías hacer un solo cambio...

select * from municipios into cursor temporal where temporal1.idmun=municipios.idmun

Aquí te aseguras que se muestre solo el quivalente a la selección hecha anteriormente del departamento.

¡Gracias! Sabes si se puede que un text con format moneda y value 0.00 el carácter de la moneda aparezca al inicio del text y el monto al final y que al recibir el enfoque que de en blanco ese text y después de perder el enfoque quede como mencione antes es un formulario sin ninguna tabla solo para hacer unos cálculos vfp9 muchas gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas