diff --git a/Source/Modulos/Inventario/Controller/uInventarioController.pas b/Source/Modulos/Inventario/Controller/uInventarioController.pas index 8d127067..6457b0a2 100644 --- a/Source/Modulos/Inventario/Controller/uInventarioController.pas +++ b/Source/Modulos/Inventario/Controller/uInventarioController.pas @@ -39,7 +39,8 @@ type procedure SalidaArticulosLibre(AInventario: IBizInventario; Const CodigoAlmacenOrigen: Integer); procedure TrasladarArticulosLibre(AInventario: IBizInventario; Const CodigoAlmacenOrigen: Integer; Const CodigoAlmacenDestino: Integer); procedure ReservarArticulosLibre(AInventario: IBizInventario; Const CodigoAlmacenOrigen: Integer; Const CodigoAlmacenDestino: Integer); - procedure CancelarReservas(AReservas: IBizDetalleReservas); + procedure CancelarReservas(AReservas: IBizDetalleReservas); + procedure TrasladarReservas(AReservas: IBizDetalleReservas); function EntradaPedido(AInventario: IBizInventario; APedido: IBizPedidoProveedor; ADetalles: IDAStronglyTypedDataTable; var ADetallesFinal: IBizInventario): Boolean; function SalidaAlbaran(AInventario: IBizInventario; Const CodigoAlmacenOrigen: Integer; ADetalles: IDAStronglyTypedDataTable): Boolean; @@ -130,6 +131,7 @@ type procedure TrasladarArticulosLibre(AInventario: IBizInventario; Const CodigoAlmacenOrigen: Integer; Const CodigoAlmacenDestino: Integer); procedure ReservarArticulosLibre(AInventario: IBizInventario; Const CodigoAlmacenOrigen: Integer; Const CodigoAlmacenDestino: Integer); procedure CancelarReservas(AReservas: IBizDetalleReservas); + procedure TrasladarReservas(AReservas: IBizDetalleReservas); function EntradaPedido(AInventario: IBizInventario; APedido: IBizPedidoProveedor; ADetalles: IDAStronglyTypedDataTable; var ADetallesFinal: IBizInventario): Boolean; function SalidaAlbaran(AInventario: IBizInventario; Const CodigoAlmacenOrigen: Integer; ADetalles: IDAStronglyTypedDataTable): Boolean; @@ -193,6 +195,8 @@ begin end; function TInventarioController.Buscar(const ID_ALMACEN: Integer): IBizInventario; +var + Condicion: TDAWhereExpression; begin Result := (FDataModule as IDataModuleInventario).GetItems(ID_ALMACEN); FiltrarEmpresa(Result); @@ -264,9 +268,8 @@ begin try AReservas.DataTable.ClearRows; AReservas.DataTable.ApplyUpdates; - HideHourglassCursor; finally -// + HideHourglassCursor; end; end; @@ -930,6 +933,46 @@ begin end; end; +procedure TInventarioController.TrasladarReservas(AReservas: IBizDetalleReservas); +var + AArticulo: IBizInventario; +begin + ShowHourglassCursor; + try + with AReservas.DataTable do + begin + first; + while not eof do + begin + //Preparamos el articulo a trasladar con la cantidad correspondiente + AArticulo := Buscar(ID_NULO); + AArticulo.DataTable.Active := True; +// DesconectarTabla(AArticulo.DataTable); + AArticulo.Edit; + AArticulo.ID_ALMACEN := AReservas.ID_ALMACEN; + AArticulo.ID_ARTICULO := AReservas.ID_ARTICULO; + AArticulo.CANTIDAD := AReservas.CANTIDAD; + AArticulo.Post; +// ConectarTabla(AArticulo.DataTable); + + //Se queda en la clase de negocio para así todos y cada uno de los artículos que + //se agreguen se asigne automáticamente el codigo de almacen destino en OnNewRecord + AArticulo.TipoMovimiento := tTraslado; + AArticulo.IDAlmacenOrigen := AReservas.ID_ALMACEN; + AArticulo.IDAlmacenDestino := AReservas.ID_ALMACEN_RESERVA; + + GuardarMovimientos(AArticulo, AReservas.FECHA_RESERVA, 'Traslado de material por la reserva: ' + AReservas.CAUSA_RESERVA); +// showmessage('trasladar: ' + IntToStr(AReservas.ID_ARTICULO) + ',' + IntToStr(AReservas.ID_ALMACEN) + ',' + IntToStr(AReservas.ID_ALMACEN_RESERVA)); + next; + end; + end; + //Eliminamos los registro de reserva relacionados en la tabla de movimientos + CancelarReservas(AReservas); + finally + HideHourglassCursor; + end; +end; + { function TInventarioController.Trasladar: Boolean; begin diff --git a/Source/Modulos/Inventario/Views/uEditorDetalleReservas.dfm b/Source/Modulos/Inventario/Views/uEditorDetalleReservas.dfm index b533ed45..c6abfd12 100644 --- a/Source/Modulos/Inventario/Views/uEditorDetalleReservas.dfm +++ b/Source/Modulos/Inventario/Views/uEditorDetalleReservas.dfm @@ -174,8 +174,6 @@ inherited fEditorDetalleReservas: TfEditorDetalleReservas StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitWidth = 273 - Width = 273 end inherited edtFechaIniFiltro: TcxDateEdit Style.LookAndFeel.SkinName = '' diff --git a/Source/Modulos/Inventario/Views/uEditorDetalleReservas.pas b/Source/Modulos/Inventario/Views/uEditorDetalleReservas.pas index 6749f58e..1ba4ca64 100644 --- a/Source/Modulos/Inventario/Views/uEditorDetalleReservas.pas +++ b/Source/Modulos/Inventario/Views/uEditorDetalleReservas.pas @@ -110,11 +110,28 @@ begin end; end; -procedure TfEditorDetalleReservas.actTrasladarReservadosExecute( - Sender: TObject); +procedure TfEditorDetalleReservas.actTrasladarReservadosExecute(Sender: TObject); +var + ReservasSeleccionadas: IBizDetalleReservas; + begin inherited; -// + try + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (DetalleReservas as ISeleccionable).SelectedRecords); + // En SelectedRecords tengo los ID de las filas seleccionadas del grid + ReservasSeleccionadas := (Controller as IInventarioController).ExtraerSeleccionados(DetalleReservas) as IBizDetalleReservas; + + if (ReservasSeleccionadas.DataTable.RecordCount > 0) then + begin + FController.TrasladarReservas(ReservasSeleccionadas); + RefrescarInterno; + end + else + ShowWarningMessage('Debe seleccionar las reservas que desea trasladar'); + + finally + ReservasSeleccionadas:= Nil; + end; end; constructor TfEditorDetalleReservas.Create(AOwner: TComponent); diff --git a/Source/Modulos/Inventario/Views/uEditorInventario.pas b/Source/Modulos/Inventario/Views/uEditorInventario.pas index 322ced42..c79efd64 100644 --- a/Source/Modulos/Inventario/Views/uEditorInventario.pas +++ b/Source/Modulos/Inventario/Views/uEditorInventario.pas @@ -172,6 +172,7 @@ procedure TfEditorInventario.actReservadosExecute(Sender: TObject); begin inherited; FController.VerReservas(Inventario); + RefrescarInterno; end; procedure TfEditorInventario.actReservadosUpdate(Sender: TObject);