Ver Mensaje Individual
  #7 (permalink)  
Antiguo 04/09/2012, 08:23
Avatar de Jamsito
Jamsito
 
Fecha de Ingreso: agosto-2012
Mensajes: 28
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Problema con Store Procedure VB2010 express

-----------------------------------------------------------------------------------------------------------
----------------------------ZONA DEL PROBLEMA---------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------


If @estado <> 'E'
Begin
-- Si no estamos actualiando los costos para tipo de ingreso con costo que NO manejan costo generamos detalle
-- ----------------------------------------------------------------------------------------------------------

End -- Si no estamos actualiando los costos ...
Else
Begin
-- Registramos los costos en el movimiento generado anteriormente
-- --------------------------------------------------------------
Update MOV_INVENTARIO_DET
Set COSTO_UNITARIO_MOV_I = @COST_UNIT_COMPRAS
, COSTO_UNITAR_ALTERNO = @COSTO_ALTERNO_ANT
Where CODIGO_MOV_INVEN = @TIPO_MOV_INVENTARIO
And NUMERO_MOVIMIENTO = @NUMERO_MOV_INVENTARIO
And PRODUCT0 = @PRODUCT0
And CODIGO_UNIDAD_VENTA = @CODIGO_UNIDAD_VENTA
And CODIGO_BODEGA = @CODIGO_BODEGA
And CODIGO_DE_UBICACION = @CODIGO_DE_UBICACION
And CODIGO_DE_LOTE = @CODIGO_DE_LOTE

If @@error <> 0
Begin
Close c_COMPRAS_DET2
deallocate cursor c_COMPRAS_DET2
Exec SPCMSG 'R',@id,'INSERT MOV_INVENTARIO_DET 2'
Exec SPCROLLBACKTRAN
Return 1
End
End -- Si registramos costos...


-----------------------------------------------------------------------------------------------------------
----------------------------ZONA DEL PROBLEMA---------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------


Exec @ok = sp_Cambio_costo_lote
@PRODUCT0 = @PRODUCT0
, @CODIGO_BODEGA = @CODIGO_BODEGA
, @CODIGO_DE_UBICACION = @CODIGO_DE_UBICACION
, @CODIGO_DE_LOTE = @CODIGO_DE_LOTE
, @FECHA_ANALISIS = @FECHA_COMPRA

If @ok <> 0
Begin
Close c_COMPRAS_DET2
Deallocate cursor c_COMPRAS_DET2
Exec SPCMSG 'R',@id,'Al analizar cambio de costo'
Exec SPCROLLBACKTRAN
Return 1
End

Fetch c_COMPRAS_DET2 Into @PRODUCT0, @CODIGO_UNIDAD_VENTA, @CODIGO_BODEGA, @CODIGO_DE_UBICACION, @CODIGO_DE_LOTE, @CANTIDAD_A_INGRESAR
, @CANTIDAD_UNIDAD_VTA
, @PESO_MOVIMIENTO
, @COST_UNIT_COMPRAS

End -- Ciclo de productos para existencias y movimientos de inventario

Close c_COMPRAS_DET2
Deallocate cursor c_COMPRAS_DET2

-- Modificamos el estado de la compra ( despues de procesar todos los detalles )
-- -----------------------------------------------------------------------------
If @MANEJO_COSTOS = 'S'
Select @tocaestado = 'A' -- Si es ingreso normal asignamos ACTUALIZADA
Else
If @estado = 'P' -- Si el ingreso no maneja costos
Select @tocaestado = 'E' -- Esta pendiente, asignamos EXISTENCIAS ACTUALIZADAS
Else
Select @tocaestado = 'A' -- Esta con existencias actualizadas, asignamos ACTUALIZADA

If @estado = 'P' -- Solo la primera o única ejecucion obtenemos datos de auditoria
Select @USUARIO_ACTUALIZA = @USUARIO
, @FECHA_ACTUALIZACION = @FECHA_SIS

Update COMPRAS_ENC
Set ESTADO_COMPRA = @tocaestado -- Analizado en bloque anterior
, USUARIO_ACTUALIZA = @USUARIO_ACTUALIZA -- Puede ser el del sistema o el que actualizo primera vez
, FECHA_ACTUALIZACION = @FECHA_ACTUALIZACION -- Puede ser el del sistema o cuando se actualizo primera vez
, CODIGO_MOV_INVEN = @TIPO_MOV_INVENTARIO -- Siempre es el mismo
, NUMERO_MOVIMIENTO = @NUMERO_MOV_INVENTARIO -- Siempre es el mismo
Where @codigo_tipo_compra = CODIGO_TIPO_COMPRA
and @codigo_compra = CODIGO_DE_COMPRA

If @@error <> 0
Begin
Exec SPCMSG 'R',@id,'No se pudo registrar DATOS DE AUDITORIA Y MOVIMIENTO DE INVENTARIO en el ingreso con costo'
Exec SPCROLLBACKTRAN
Return 1
End

-- Contabilizacion del ingreso con costo si no envian tipo de movimiento a generar
-- -------------------------------------------------------------------------------
If @MOV_INVENTARIO_AUX = null
Begin
Exec @ok = PARTIDA_CONTABLE_ING_COSTO
@CODIGO_TIPO_COMPRA = @codigo_tipo_compra
, @CODIGO_DE_COMPRA = @codigo_compra
, @CONTRAPARTIDA = 0

If @ok <> 0
Begin
Exec SPCMSG 'R',@id,'No se puede contabilizar el ingreso con costo'
Exec SPCROLLBACKTRAN
Return 1
End
End

-- Si todo OK
-- ----------
Commit Transaction