Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PROCEDURE Comprar(VAR DatosUsuario:tUsuario;VAR DatosProducto:tproducto;VAR DatosVenta);{se toma al usuario correcto,pero se siguen usando la forma mas amplia de productos y ventas}
- BEGIN
- {Ahora mostramos todos los productos que la maquina puede ofrecer al usuario }
- writeln (' ');
- Mostrar_Productos_Disponibles (TablaProductos);
- { Ahora se pide al usuario el nombre del producto que quiere comprar }
- EncProducto := FALSE;
- REPEAT
- writeln ('Teclee el nombre del producto a comprar:');
- readln (NomProdAComprar);
- Localizar_Producto (NomProdAComprar, TablaProductos,DatosProducto,EncProducto);
- IF NOT EncProducto THEN
- BEGIN
- writeln ('No hay ning?n producto con ese nombre');
- END
- UNTIL
- EncProducto;
- { Ya se ha encontrado el producto }
- writeln ('Compraras ', DatosProducto.nombre, ' ', DatosProducto.marca, ' ');
- { Se comprueba si el usuario tiene saldo }
- IF DatosUsuario.saldo >= DatosProducto.precio THEN
- BEGIN
- writeln ('Se te descontar? del saldo de tu tarjeta ', DatosProducto.precio:5:2);
- { Se actualiza el saldo de la tarjeta del usuario }
- DatosUsuario.saldo := DatosUsuario.saldo - DatosProducto.precio;
- { Ahora se llama al PROC que actualiza el array con el nuevo saldo }
- Actualizar_Saldo_Usuario (DatosUsuario, TablaUsuarios);
- { Se resta 1 al stock del producto }
- DatosProducto.stock := DatosProducto.stock - 1;
- { Ahora se llama al PROC que actualiza el array con el nuevo stock }
- Actualizar_Stock (DatosProducto, TablaProductos);
- { Ahora se llama al PROC que actualiza el array de Ventas con la nueva venta realizada }
- Acumular_Venta (DatosUsuario, DatosProducto, TablaVentas);
- END
- ELSE
- BEGIN
- writeln (' No tiene saldo para dicha compra ');
- END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement