SQL - Actualizar Datos de un Recetario Kardex

 
Vista:

Actualizar Datos de un Recetario Kardex

Publicado por JamilRamir (1 intervención) el 01/09/2016 20:48:18
Hola tengo el siguiente problema tengo un sistema de Restaurante que estoy finalizandolo, en la parte del Kardex la deducion de los productos(Bebidas) me los hace bien no tengo problema, pero tengo una tabla llamada Recetario el cual me guarda el plato y sus ingredientes.

TABLA INGREDIENTE
idingrediente, stock .....

TABLA PLATO
idplato, stock ......

TABLA RECETARIO
idreceta, idplato, idingrediente, cantidad

Un plato puede tener X numero de ingredientes en el Recetario, lo que deseo es que a la hora de pedir el plato me dedusca los ingredientes (cantidad) del stock de la tabla Ingrediente y de Plato, todo esto a nivel SQL

A continuacion pongo mi consulta la cual me fuciona bien cuando es un Producto en esto me refieron a unidades como X Coca o X Cervezas, necesito algo para el Recetario se que es un ciclo pero no se como y ya he intentado mucho, les agradeceria cualqueir ayuda. Comprendo que el Procedimiento siguiente se utilizara dentro del Ciclo del Recetario ya que una vez pedido el plato de deduciran los X ingredientes del mismo.

Ejemplo un Plato de Filete de Pollo sus ingredientes son Pollo 6 onzas, arroz 2 onzas, papas 1 unidad, si ocupo el mismo procediemito cambiando las tablas puedo deducir el Stock de plato pero no sus ingredientes segun recetario??

*******************************************************************************
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
ALTER procedure [dbo].[spr_InsertarKardex]
(  @idProducto int, @descripcion varchar(200), @fechak date, @entrada int, 	@salida int )
as
declare @stocka int;
declare @stockac int;
 
--Obtiene stock anterior y stock actual
 
select @stocka=tbProducto.stock from tbProducto where tbProducto.idProducto = @idProducto;
set @stockac = @stocka + @entrada - @salida;
 
begin try
begin transaction Kardex
 
--Inserta registro en tabla Kardex
 
insert into tbKardex(idProducto,descripcion,fechak,stockanterior,entrada,salida,stockactual)
values(@idProducto,@descripcion, @fechak,@stocka,@entrada,@salida,@stockac);
 
--Actualiza el stock en la tabla Producto
 
if(@entrada>0)
begin
	update tbProducto
	set
	stock = stock+@entrada
	where idProducto = @idProducto;
end
else
begin
	update tbProducto
	set
	stock = stock-@salida
	where idProducto = @idProducto;
end
commit transaction Kardex
end try
begin catch
rollback transaction Kardex
end catch
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