290 lines
8.9 KiB
ObjectPascal
290 lines
8.9 KiB
ObjectPascal
|
|
unit uEditorArticulosAlmacen;
|
|||
|
|
|
|||
|
|
interface
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|||
|
|
uCustomEditor, uEditorGrid, uBizArticulos, ImgList,
|
|||
|
|
PngImageList, StdActns, ActnList, TB2ExtItems, TBXExtItems, TBX, TB2Item,
|
|||
|
|
TB2Dock, TB2Toolbar, JvExControls, JvComponent, JvNavigationPane,
|
|||
|
|
uViewArticulosAlmacen, Menus, DB, uDADataTable, ComCtrls, uViewGrid,
|
|||
|
|
uDAScriptingProvider, uDACDSDataTable, JvAppStorage,
|
|||
|
|
JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, uCustomView,
|
|||
|
|
uViewBase, uViewBarraSeleccion, JvComponentBase;
|
|||
|
|
|
|||
|
|
type
|
|||
|
|
IEditorArticulosAlmacen = interface(IEditorGrid)
|
|||
|
|
['{24939779-BF07-43C4-AA66-FD59CD2A0692}']
|
|||
|
|
function GetArticulosAlmacen: IBizArticulosAlmacen;
|
|||
|
|
procedure SetArticulosAlmacen(const Value: IBizArticulosAlmacen);
|
|||
|
|
property ArticulosAlmacen: IBizArticulosAlmacen read GetArticulosAlmacen write
|
|||
|
|
SetArticulosAlmacen;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
TfEditorArticulosAlmacen = class(TfEditorGrid, IEditorArticulosAlmacen)
|
|||
|
|
actRecibirPedido: TAction;
|
|||
|
|
actTrasladar: TAction;
|
|||
|
|
actReservar: TAction;
|
|||
|
|
actLiberar: TAction;
|
|||
|
|
TBXSeparatorItem16: TTBXSeparatorItem;
|
|||
|
|
TBXSeparatorItem17: TTBXSeparatorItem;
|
|||
|
|
rasladar1: TMenuItem;
|
|||
|
|
Liberar1: TMenuItem;
|
|||
|
|
Reservar1: TMenuItem;
|
|||
|
|
frViewBarraSeleccion: TfrViewBarraSeleccion;
|
|||
|
|
procedure actEliminarExecute(Sender: TObject);
|
|||
|
|
procedure actModificarExecute(Sender: TObject);
|
|||
|
|
procedure actNuevoExecute(Sender: TObject);
|
|||
|
|
procedure frViewBarraSeleccionactSeleccionarExecute(Sender: TObject);
|
|||
|
|
procedure frViewBarraSeleccionbCancelarClick(Sender: TObject);
|
|||
|
|
procedure actRecibirPedidoExecute(Sender: TObject);
|
|||
|
|
procedure actTrasladarExecute(Sender: TObject);
|
|||
|
|
procedure actReservarExecute(Sender: TObject);
|
|||
|
|
procedure actLiberarExecute(Sender: TObject);
|
|||
|
|
procedure actTrasladarUpdate(Sender: TObject);
|
|||
|
|
procedure actReservarUpdate(Sender: TObject);
|
|||
|
|
procedure actLiberarUpdate(Sender: TObject);
|
|||
|
|
procedure frViewBarraSeleccionactCancelarExecute(Sender: TObject);
|
|||
|
|
private
|
|||
|
|
FArticulosAlmacen: IBizArticulosAlmacen;
|
|||
|
|
protected
|
|||
|
|
function GetArticulosAlmacen: IBizArticulosAlmacen;
|
|||
|
|
function GetSelectionBarVisible: Boolean;
|
|||
|
|
procedure SetArticulosAlmacen(const Value: IBizArticulosAlmacen);
|
|||
|
|
procedure SetSelectionBarVisible(const Value: Boolean);
|
|||
|
|
procedure SetViewGrid(const Value: IViewGrid); override;
|
|||
|
|
public
|
|||
|
|
constructor Create(AOwner: TComponent); override;
|
|||
|
|
destructor Destroy; override;
|
|||
|
|
property ArticulosAlmacen: IBizArticulosAlmacen read GetArticulosAlmacen write
|
|||
|
|
SetArticulosAlmacen;
|
|||
|
|
property SelectionBarVisible: Boolean read GetSelectionBarVisible write
|
|||
|
|
SetSelectionBarVisible;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
var
|
|||
|
|
fEditorArticulosAlmacen : TfEditorArticulosAlmacen;
|
|||
|
|
|
|||
|
|
implementation
|
|||
|
|
|
|||
|
|
uses uDataModuleArticulos, uEditorUtils, uDBSelectionList, uDataModulePedidosProveedor,
|
|||
|
|
uBizPedidosProveedor, uBizMontajes, uDataModuleMontajes;
|
|||
|
|
|
|||
|
|
{$R *.DFM}
|
|||
|
|
|
|||
|
|
function ShowEditorArticulosAlmacen (ABizObject : TDADataTableRules) : TModalResult;
|
|||
|
|
var
|
|||
|
|
AEditor: TfEditorArticulosAlmacen;
|
|||
|
|
begin
|
|||
|
|
AEditor := TfEditorArticulosAlmacen.Create(Application);
|
|||
|
|
try
|
|||
|
|
AEditor.ArticulosAlmacen := (ABizObject as IBizArticulosAlmacen);
|
|||
|
|
Result := AEditor.ShowModal;
|
|||
|
|
finally
|
|||
|
|
AEditor.Release;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function ShowSelectEditorArticulosAlmacen (ABizObject : TDADataTableRules) : TModalResult;
|
|||
|
|
var
|
|||
|
|
AEditor: TfEditorArticulosAlmacen;
|
|||
|
|
begin
|
|||
|
|
AEditor := TfEditorArticulosAlmacen.Create(Application);
|
|||
|
|
try
|
|||
|
|
AEditor.ArticulosAlmacen := (ABizObject as IBizArticulosAlmacen);
|
|||
|
|
AEditor.SelectionBarVisible := True;
|
|||
|
|
Result := AEditor.ShowModal;
|
|||
|
|
finally
|
|||
|
|
AEditor.Release;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
{ TfEditorArticulosAlmacen }
|
|||
|
|
|
|||
|
|
{
|
|||
|
|
***************************** TfEditorArticulosAlmacen *****************************
|
|||
|
|
}
|
|||
|
|
constructor TfEditorArticulosAlmacen.Create(AOwner: TComponent);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
ViewGrid := CreateView(TfrViewArticulosAlmacen) as IViewArticulosAlmacen;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
destructor TfEditorArticulosAlmacen.Destroy;
|
|||
|
|
begin
|
|||
|
|
FArticulosAlmacen := NIL;
|
|||
|
|
inherited;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorArticulosAlmacen.actEliminarExecute(Sender: TObject);
|
|||
|
|
var
|
|||
|
|
aAux : ISelectedRowList;
|
|||
|
|
aPregunta : String;
|
|||
|
|
begin
|
|||
|
|
aPregunta := '<27>Desea realizar la salida del almac<61>n de este art<72>culo?';
|
|||
|
|
if Supports(ArticulosAlmacen, ISelectedRowList, aAux) then
|
|||
|
|
if (aAux.SelectedRows.Count > 1) then
|
|||
|
|
aPregunta := '<27>Desea realizar la salida del almac<61>n de los art<72>culos que ha seleccionado?';
|
|||
|
|
|
|||
|
|
if (Application.MessageBox(PAnsiChar(aPregunta), 'Confirmaci<63>n', MB_YESNO) = IDYES) then
|
|||
|
|
begin
|
|||
|
|
//inherited;
|
|||
|
|
ArticulosAlmacen.Eliminar;
|
|||
|
|
ViewGrid.RefreshGrid;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorArticulosAlmacen.actModificarExecute(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
// inherited;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorArticulosAlmacen.actNuevoExecute(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
ArticulosAlmacen.RecibirArticulos(ViewGrid.Grid.ActiveLevel.Tag);
|
|||
|
|
ViewGrid.RefreshGrid;
|
|||
|
|
ViewGrid.SyncFocusedRecordsFromDataSet;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorArticulosAlmacen.frViewBarraSeleccionactSeleccionarExecute(
|
|||
|
|
Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
ViewGrid.SyncFocusedRecordsFromGrid;
|
|||
|
|
ModalResult := mrOK;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorArticulosAlmacen.frViewBarraSeleccionbCancelarClick(Sender:
|
|||
|
|
TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
frViewBarraSeleccion.actCancelarExecute(Sender);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfEditorArticulosAlmacen.GetArticulosAlmacen: IBizArticulosAlmacen;
|
|||
|
|
begin
|
|||
|
|
Result := FArticulosAlmacen;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfEditorArticulosAlmacen.GetSelectionBarVisible: Boolean;
|
|||
|
|
begin
|
|||
|
|
Result := frViewBarraSeleccion.Visible
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorArticulosAlmacen.SetArticulosAlmacen(const Value: IBizArticulosAlmacen);
|
|||
|
|
begin
|
|||
|
|
FArticulosAlmacen := Value;
|
|||
|
|
dsDataTable.DataTable := FArticulosAlmacen.DataTable;
|
|||
|
|
if Assigned(ViewGrid) then
|
|||
|
|
(ViewGrid as IViewArticulosAlmacen).ArticulosAlmacen := ArticulosAlmacen;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorArticulosAlmacen.SetSelectionBarVisible(const Value: Boolean);
|
|||
|
|
begin
|
|||
|
|
frViewBarraSeleccion.Visible := True;
|
|||
|
|
ViewGrid.OnDblClick := frViewBarraSeleccion.actSeleccionar.OnExecute;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorArticulosAlmacen.SetViewGrid(const Value: IViewGrid);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
if Assigned(ViewGrid) and Assigned(ArticulosAlmacen) then
|
|||
|
|
(ViewGrid as IViewArticulosAlmacen).ArticulosAlmacen := ArticulosAlmacen;
|
|||
|
|
|
|||
|
|
ViewGrid.OnDblClick := Nil;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorArticulosAlmacen.actRecibirPedidoExecute(Sender: TObject);
|
|||
|
|
var
|
|||
|
|
APedido: IBizPedidosProveedor;
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
APedido := dmPedidos.GetItemsPendientesRecepcion;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
if APedido.ShowForSelect = mrOK then
|
|||
|
|
begin
|
|||
|
|
ArticulosAlmacen.RecibirArticulos(APedido, ViewGrid.Grid.ActiveLevel.Tag);
|
|||
|
|
end;
|
|||
|
|
finally
|
|||
|
|
APedido := NIL;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorArticulosAlmacen.actTrasladarExecute(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
ArticulosAlmacen.Trasladar;
|
|||
|
|
ViewGrid.RefreshGrid;
|
|||
|
|
ViewGrid.SyncFocusedRecordsFromDataSet;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorArticulosAlmacen.actReservarExecute(Sender: TObject);
|
|||
|
|
var
|
|||
|
|
AMontaje: IBizMontaje;
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
AMontaje := dmMontajes.GetItemsPendientes(sitPendientes);
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
if AMontaje.ShowForSelect = mrOK then
|
|||
|
|
begin
|
|||
|
|
ArticulosAlmacen.Reservar(AMontaje);
|
|||
|
|
ViewGrid.RefreshGrid;
|
|||
|
|
ViewGrid.SyncFocusedRecordsFromDataSet;
|
|||
|
|
end;
|
|||
|
|
finally
|
|||
|
|
AMontaje := NIL;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorArticulosAlmacen.actLiberarExecute(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if (MessageDlg('<27>Est<73> seguro que desea liberar los art<72>culos seleccionados?', mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
|
|||
|
|
ArticulosAlmacen.Liberar;
|
|||
|
|
ViewGrid.RefreshGrid;
|
|||
|
|
ViewGrid.SyncFocusedRecordsFromDataSet;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorArticulosAlmacen.actTrasladarUpdate(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
if Assigned(dsDataTable.DataTable) then
|
|||
|
|
(Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty)
|
|||
|
|
else
|
|||
|
|
(Sender as TAction).Enabled := False;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorArticulosAlmacen.actReservarUpdate(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
if Assigned(dsDataTable.DataTable) then
|
|||
|
|
(Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty)
|
|||
|
|
else
|
|||
|
|
(Sender as TAction).Enabled := False;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorArticulosAlmacen.actLiberarUpdate(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
if Assigned(dsDataTable.DataTable) then
|
|||
|
|
(Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty)
|
|||
|
|
else
|
|||
|
|
(Sender as TAction).Enabled := False;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorArticulosAlmacen.frViewBarraSeleccionactCancelarExecute(
|
|||
|
|
Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
frViewBarraSeleccion.actCancelarExecute(Sender);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
initialization
|
|||
|
|
RegisterEditor(IBizArticulosAlmacen, ShowEditorArticulosAlmacen, etItems);
|
|||
|
|
RegisterEditor(IBizArticulosAlmacen, ShowSelectEditorArticulosAlmacen, etSelectItems);
|
|||
|
|
|
|||
|
|
finalization
|
|||
|
|
|
|||
|
|
end.
|
|||
|
|
|