FoxPro/Visual FoxPro - modificar

 
Vista:

modificar

Publicado por sebastian (2 intervenciones) el 19/10/2010 21:06:05
tengo un metodo grabar donde inserto y actualizo los articulos

Select GrabaCompNac
*GrabaCompNac
Scan
If stock_disp = 0
val10=arcod
val11=arcodcom
val12=ardes
val13=armarca
val14=cantidad
val15=precio
val16=pvta
val18=Item
val19=arcompra
val20=cantidad2
val21=precio2
val22=pvta2
val23=foliocotizacion
val24=Iif(nacional=.T.,val14,0)
val25=Iif(importado=.T.,val14,0)
val26=iif(con_stock=.f.,0,0)
amx = Iif(modifica, 'M', 'A')
If SQLEXEC(&cConexion.,"EXEC SP_NotaPedidoPendDet ?amx,?foliox,?val10,?val11,?val12,?val13,?val14,?val15,?val16,?val18,?val19,;
?val20,?val21,?val22,?val23,?val24,?val25,?val26") <> 1
Wait Window 'Detalle' nowait
Thisform.Nograba()
Return
ENDIF
Else
val10=arcod
val11=arcodcom
val12=ardes
val13=armarca
val14=cantidad
val30=cantidad-stock_disp
val15=precio
val16=pvta
val18=Item
val19=arcompra
val20=cantidad2
val21=precio2
val22=pvta2
val23=foliocotizacion
val24=Iif(nacional=.T.,val30,0)
val25=Iif(importado=.T.,val30,0)
val26=iif(con_stock=.f.,stock_disp,0)
amx = Iif(modifica, 'M', 'A')
If SQLEXEC(&cConexion.,"EXEC SP_NotaPedidoPendDet ?amx,?foliox,?val10,?val11,?val12,?val13,?val14,?val15,?val16,?val18,?val19,;
?val20,?val21,?val22,?val23,?val24,?val25,?val26") <> 1
Wait Window 'Detalle' Nowait
Thisform.Nograba()
Return
Endif
Endif
ENDSCAN
GO top

el problema es que cuando tengo mas de 1 articulo me remplaza solo un articulo
osea si tengo 3 articulo diferentes me agarra 1 y lo remplazaa por los 3... me queda 3 veces un solo articulo no se si es problema del codigo o del procedimiento del sql

USE [labtec]
GO
/****** Object: StoredProcedure [dbo].[SP_NotaPedidoDet] Script Date: 10/19/2010 16:04:47 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER procedure [dbo].[SP_NotaPedidoDet]
@FlagAM char(1),
@foliox int,
@arcod int,
@arcodcom char(15),
@ardes char(50),
@armarca char(15),
@cantidad float,
@precio float,
@pvta float,
@item int,
@arcompra char(10),
@cantidad_cot float,
@precio_cot float,
@pvta_cot float,
@folioCot int,
@enStock float

AS
if @FlagAM = 'A'
begin
insert into NotaPedidoDet ( FolioNotaPedido,
arcod,
arcodcom,
ardes,
armarca,
cantidad,
arpuni,
total,
item,
arcompra,
cantidad_cot,
arpuni_cot ,
total_cot,
folioHist,
enStock)
values
(@foliox,
@arcod,
@arcodcom,
@ardes,
@armarca,
@cantidad,
@precio,
@pvta,
@item,
@arcompra,
@cantidad ,
@precio,
@pvta,
@FolioCot,
@enStock)

set @foliox=(select max(FolioNotaPedido) from NotaPedidoDet)

update articulo set stock_reserv=@cantidad +stock_reserv where arcod=@arcod
end

if @FlagAM = 'M'
begin
update NotaPedidoDet set Arcod = @arcod ,
Arcodcom = @arcodcom,
Ardes = @ardes,
armarca = @armarca,
Cantidad = @cantidad,
Arpuni = @precio,
total = @pvta,
Item = @item,
Arcompra = @arcompra,
Cantidad_cot = @cantidad ,
Arpuni_cot = @precio,
total_cot = @pvta,
EnStock = @enStock where FolioNotaPedido = @foliox

update articulo set stock_reserv=@cantidad +stock_reserv where arcod=@arcod
end

return @foliox

ahi esta el procedimiento que llamo del programa se supone que el modificar entra en el flagam = m
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