Clarion - Borrar PADRE?

 
Vista:

Borrar PADRE?

Publicado por Martín M. (12 intervenciones) el 13/04/2011 05:23:15
que tal amigos tengo el siguiente problema:
hice una tabla de remitos y detalleremito que al ingresarse en una venta va actualizandose el stock y el saldo del cliente, hasta ahi todo barbaro.
quiero saber como hacer por ejemplo, si borro el registro padre de REMITOS que contiene los detalles, como hacer para que actualiza los stocks y los montos de cada producto, por ejemplo:

ANTES DEL BORRADO:
-------------------------------------------------------------------------------
SALDOCLIENTE: 500

ARCHIVO REMITO
REMITO FECHA TOTAL
001 01/01/01 100

ARCHIVO DETALLEREMITO
REMITO PRODUCTO CANT PRECIO TOTAL
001 001 1 50 50
001 002 5 10 50
-------------------------------------------------------------------------------

SI ELIJO EL CAMPO PARA ELIMINAR EL PADRE (REMITO) QUISIERA QUE LUEGO DE HABERLO BORRADO TODO LO MODIFICADO VUELVA AL ESTADO CORRECTO QUE SERÍA EL SIGUIENTE:

PRODUCTO 001 = SUMAR 1 UNIDAD
PRODUCTO 002 = SUMAR 5 UNIDADES
SALDOCLIENTE = RESTAR 100

He podido lograrlo si me situo en cada campo del DETALLEREMITO y los voy borrando uno por uno, pero cuando quiero borrar el registro padre no se como hacer para que antes de borrarlo vaya accediendo a cada uno de sus relaciones y seleccione cada item para sumarle el stock que se borró y luego modificar el estado de saldo del cliente.

AGRADECERÍA MUCHISIMO UNA PRONTA RESPUESTA!
Desde ya muchas gracias!
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
sin imagen de perfil

Borrar PADRE?

Publicado por Marcelo Madelon (572 intervenciones) el 18/04/2011 13:31:46
Martin.


En el botón Cancel prioridad 4499
leo el detalle del remito y hago las devoluciones al stock

CLEAR(RE2:Record)
RE2:NumeroRemito = RE1:NumeroRemito
SET(RE2:KeyNumeroRemito,RE2:KeyNumeroRemito) ! Se posiciona
LOOP UNTIL Access:Detalle.Next() or RE2:NumeroRemito <> RE1:NumeroRemito ! Lee secuencialmente hasta que encuentre
! un registro de otro remito
AST:ID_Producto = RE2:ID_Producto
IF Access:ASTOC001.Fetch(AS1:KeyCodcpr) !Lee
MESSAGE('No Encuentra Registro en ASTOC001','Mensaje del Sistema',ICON:Exclamation) ! Nunca encontrara uno que no
END ! Exista por que cuando cargaste
AST:Existencia += RE2:Cantidad ! el detalle ahi lo verificaste
IF Access:ASTOC001.Update() ! Actualiza
MESSAGE('No Regraba ASTOC001','Mensaje del Sistema',ICON:Exclamation) ! Nunca va a pasar que no puede actualizar
END ! por que arriba lo pudo leer
END

Avisame si te sirvio. Saludos desde Venado Tuerto
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