git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@236 c93665c3-c93d-084d-9b98-7d5f4a9c3376
306 lines
8.9 KiB
ObjectPascal
306 lines
8.9 KiB
ObjectPascal
unit uEditorDetallesSinRecibir;
|
||
|
||
interface
|
||
|
||
uses
|
||
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
||
uCustomEditor, ImgList, PngImageList, StdActns, ActnList, TB2ExtItems, TBXExtItems, TBX, TB2Item,
|
||
TB2Dock, TB2Toolbar, JvExControls, JvComponent, JvNavigationPane,
|
||
uViewDetallesSinRecibir, Menus, DB, uDADataTable, ComCtrls, uViewGrid,
|
||
uDAScriptingProvider, uDACDSDataTable, JvAppStorage,
|
||
JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, uCustomView,
|
||
uViewBase, uViewBarraSeleccion, JvComponentBase, uEditorGridBase,
|
||
uIEditorDetallesSinRecibir, uBizInventario, uViewGridBase,
|
||
JvExComCtrls, JvStatusBar, uViewGrid2Niveles, JSDialog, uInventarioController,
|
||
uBizAlmacenes;
|
||
|
||
type
|
||
|
||
TfEditorDetallesSinRecibir = class(TfEditorGridBase, IEditorDetallesSinRecibir)
|
||
TBXSeparatorItem17: TTBXSeparatorItem;
|
||
actExpandir: TAction;
|
||
actContraer: TAction;
|
||
frViewDetallesSinRecibir1: TfrViewDetallesSinRecibir;
|
||
TBXItem38: TTBXItem;
|
||
actRecibir: TAction;
|
||
JvNavPanelHeader1: TJvNavPanelHeader;
|
||
|
||
procedure FormShow(Sender: TObject);
|
||
procedure actRecibirExecute(Sender: TObject);
|
||
|
||
private
|
||
FAlmacen: IBizAlmacen;
|
||
function GetAlmacen: Integer;
|
||
procedure SetAlmacen(const Value: Integer);
|
||
|
||
protected
|
||
// FArticulo: IBizInventario;
|
||
FDetalles: IBizDetalleSinRecibir;
|
||
FController : IInventarioController;
|
||
|
||
// function GetArticulo: IBizInventario;
|
||
// procedure SetArticulo(const Value: IBizInventario);
|
||
function GetDetalles: IBizDetalleSinRecibir;
|
||
procedure SetDetalles(const Value: IBizDetalleSinRecibir);
|
||
|
||
{ procedure SetMultiSelect (AValue : Boolean);
|
||
function GetMultiSelect : Boolean;
|
||
function GetArticulosSeleccionados: IBizDetallesSinRecibir;
|
||
}
|
||
function GetController : IInventarioController;
|
||
procedure SetController (const Value : IInventarioController);
|
||
|
||
procedure ImprimirInterno; override;
|
||
procedure PrevisualizarInterno; override;
|
||
|
||
public
|
||
property Almacen: Integer read GetAlmacen write SetAlmacen;
|
||
property DetallesSinRecibir: IBizDetalleSinRecibir read GetDetalles write SetDetalles;
|
||
property Controller : IInventarioController read GetController write SetController;
|
||
|
||
// property ArticulosSeleccionados: IBizDetallesSinRecibir read GetArticulosSeleccionados;
|
||
// property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect;
|
||
|
||
constructor Create(AOwner: TComponent); override;
|
||
destructor Destroy; override;
|
||
procedure PonerTitulos(const ATitulo: string = ''); override;
|
||
end;
|
||
|
||
implementation
|
||
{$R *.DFM}
|
||
|
||
uses
|
||
cxControls, uGridUtils, uDataModuleInventario, uDataModuleUsuarios,
|
||
uEditorBase, uDBSelectionListUtils, cxGridDBTableView, cxGridCustomTableView,
|
||
uAlmacenesController, uGenerarAlbaranesProvUtils,
|
||
schInventarioClient_Intf, uDialogUtils, uBizAlbaranesProveedor;
|
||
|
||
{, uDBSelectionList, uDataModulePedidosProveedor,
|
||
uBizPedidosProveedor, uBizMontajes, uDataModuleMontajes;
|
||
}
|
||
|
||
|
||
{ TfEditorDetallesSinRecibir }
|
||
|
||
{
|
||
***************************** TfEditorDetallesSinRecibir *****************************
|
||
}
|
||
procedure TfEditorDetallesSinRecibir.actRecibirExecute(Sender: TObject);
|
||
var
|
||
ArticulosSeleccionados: IBizDetalleSinRecibir;
|
||
AlbaranesProveedor: IBizAlbaranProveedor;
|
||
|
||
begin
|
||
inherited;
|
||
try
|
||
SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (DetallesSinRecibir as ISeleccionable).SelectedRecords);
|
||
// En SelectedRecords tengo los ID de las filas seleccionadas del grid
|
||
ArticulosSeleccionados := (Controller as IInventarioController).ExtraerSeleccionados(DetallesSinRecibir) as IBizDetalleSinRecibir;
|
||
|
||
if (ArticulosSeleccionados.DataTable.RecordCount > 0) then
|
||
begin
|
||
GenerarAlbaranesProv(ArticulosSeleccionados, AlbaranesProveedor, Almacen);
|
||
RefrescarInterno;
|
||
end
|
||
else
|
||
ShowWarningMessage('Debe seleccionar los art<72>culos que desea recibir');
|
||
|
||
finally
|
||
ArticulosSeleccionados:= Nil;
|
||
AlbaranesProveedor:= Nil;
|
||
end;
|
||
end;
|
||
|
||
constructor TfEditorDetallesSinRecibir.Create(AOwner: TComponent);
|
||
begin
|
||
inherited;
|
||
FAlmacen := Nil;
|
||
ViewGrid := frViewDetallesSinRecibir1;
|
||
end;
|
||
|
||
{
|
||
function TfEditorDetallesSinRecibir.DarIDAlmacenSeleccionado(Descripcion: String): Integer;
|
||
var
|
||
AAlmacenes : IBizAlmacen;
|
||
AAlmacenesController : IAlmacenesController;
|
||
Respuesta : integer;
|
||
begin
|
||
if (ViewGrid._Grid.ActiveLevel.Tag = -1) then
|
||
Result := SeleccionarAlmacen(Descripcion)
|
||
else
|
||
Result := ViewGrid._Grid.ActiveLevel.Tag;
|
||
end;
|
||
}
|
||
|
||
destructor TfEditorDetallesSinRecibir.Destroy;
|
||
begin
|
||
FDetalles := NIL;
|
||
FAlmacen := NIL;
|
||
inherited;
|
||
end;
|
||
|
||
procedure TfEditorDetallesSinRecibir.FormShow(Sender: TObject);
|
||
begin
|
||
inherited;
|
||
|
||
if not Assigned(ViewGrid) then
|
||
raise Exception.Create('No hay ninguna vista asignada');
|
||
|
||
if not Assigned(DetallesSinRecibir) then
|
||
raise Exception.Create('No hay ning<6E>n DetallesSinRecibir asignado');
|
||
|
||
DetallesSinRecibir.DataTable.Active := True;
|
||
ViewGrid.GotoFirst;
|
||
end;
|
||
{
|
||
function TfEditorDetallesSinRecibir.GetArticulosSeleccionados: IBizDetallesSinRecibir;
|
||
begin
|
||
SeleccionarFilasDesdeGrid((ViewGrid as IViewDetallesSinRecibir)._FocusedView, (DetallesSinRecibir as ISeleccionable).SelectedRecords);
|
||
// En Presupuestos.SelectedRecords tengo los ID de las filas seleccionadas del grid
|
||
Result := Controller.ExtraerSeleccionados(DetallesSinRecibir);
|
||
end;
|
||
|
||
function TfEditorDetallesSinRecibir.GetController: IDetallesSinRecibirController;
|
||
begin
|
||
Result := FController;
|
||
end;
|
||
}
|
||
{
|
||
function TfEditorDetallesSinRecibir.GetArticulo: IBizInventario;
|
||
begin
|
||
Result := FArticulo;
|
||
end;
|
||
}
|
||
|
||
function TfEditorDetallesSinRecibir.GetAlmacen: Integer;
|
||
begin
|
||
if Assigned(FAlmacen) then
|
||
Result := FAlmacen.ID
|
||
else
|
||
Result := -1;
|
||
end;
|
||
|
||
function TfEditorDetallesSinRecibir.GetController: IInventarioController;
|
||
begin
|
||
Result := FController;
|
||
end;
|
||
|
||
function TfEditorDetallesSinRecibir.GetDetalles: IBizDetalleSinRecibir;
|
||
begin
|
||
Result := FDetalles;
|
||
end;
|
||
{
|
||
function TfEditorDetallesSinRecibir.GetMultiSelect: Boolean;
|
||
begin
|
||
Result := ViewGrid.MultiSelect;
|
||
end;
|
||
}
|
||
procedure TfEditorDetallesSinRecibir.ImprimirInterno;
|
||
begin
|
||
inherited;
|
||
end;
|
||
|
||
procedure TfEditorDetallesSinRecibir.PonerTitulos(const ATitulo: string);
|
||
var
|
||
FTitulo : String;
|
||
begin
|
||
FTitulo := 'Detalle de art<72>culos sin recibir - ' + dmUsuarios.EmpresaActual.NOMBRE;
|
||
inherited PonerTitulos(FTitulo);
|
||
JvNavPanelHeader1.Caption := 'Almac<61>n de entrada: ' + FAlmacen.NOMBRE;
|
||
end;
|
||
|
||
procedure TfEditorDetallesSinRecibir.PrevisualizarInterno;
|
||
begin
|
||
inherited;
|
||
end;
|
||
{
|
||
function TfEditorDetallesSinRecibir.SeleccionarAlmacen(Descripcion: String): Integer;
|
||
var
|
||
AAlmacenes : IBizAlmacen;
|
||
Respuesta : integer;
|
||
begin
|
||
Result := -1;
|
||
{
|
||
JsElegirAlmacenDialog.Instruction.Text := Descripcion;
|
||
with JsElegirAlmacenDialog.RadioButtons do
|
||
begin
|
||
Clear;
|
||
AAlmacenes := (ViewGrid as IViewDetallesSinRecibir).Almacenes;
|
||
AAlmacenes.First;
|
||
while not AAlmacenes.EOF do
|
||
begin
|
||
with Add do
|
||
begin
|
||
Caption := AAlmacenes.NOMBRE;
|
||
Value := 1000 + AAlmacenes.ID;
|
||
end;
|
||
//Asi sabemos que solo va a intentar chequear el primero si hemos a<>adido al menos un item
|
||
Items[0].Checked := True;
|
||
AAlmacenes.Next;
|
||
end;
|
||
end;
|
||
|
||
//Sacar la pantalla de selecci<63>n y devolver el almac<61>n seleccionado.
|
||
Respuesta := JsElegirAlmacenDialog.Execute;
|
||
if Respuesta <> IDCANCEL then
|
||
Result := JsElegirAlmacenDialog.RadioResult - 1000;
|
||
end;
|
||
}
|
||
{
|
||
procedure TfEditorDetallesSinRecibir.SetController(const Value: IDetallesSinRecibirController);
|
||
begin
|
||
FController := Value;
|
||
|
||
if Assigned(FController) then
|
||
begin
|
||
if Assigned(ViewGrid) then
|
||
(ViewGrid as IViewDetallesSinRecibir).Almacenes := FController.AlmacenesController.BuscarTodos;
|
||
end;
|
||
end;
|
||
}
|
||
{
|
||
procedure TfEditorDetallesSinRecibir.SetArticulo(const Value: IBizInventario);
|
||
begin
|
||
FArticulo := Value;
|
||
if Assigned(FArticulo) then
|
||
begin
|
||
tbxEditFiltro.Text := FArticulo.REFERENCIA;
|
||
end;
|
||
end;
|
||
}
|
||
procedure TfEditorDetallesSinRecibir.SetAlmacen(const Value: Integer);
|
||
var
|
||
AAlmacenesController : IAlmacenesController;
|
||
begin
|
||
AAlmacenesController := TAlmacenesController.Create;
|
||
try
|
||
FAlmacen := AAlmacenesController.Buscar(Value);
|
||
FAlmacen.DataTable.Active := True;
|
||
finally
|
||
AAlmacenesController := NIL;
|
||
end;
|
||
end;
|
||
|
||
procedure TfEditorDetallesSinRecibir.SetController(const Value: IInventarioController);
|
||
begin
|
||
FController := Value;
|
||
end;
|
||
|
||
procedure TfEditorDetallesSinRecibir.SetDetalles(const Value: IBizDetalleSinRecibir);
|
||
begin
|
||
FDetalles := Value;
|
||
dsDataTable.DataTable := FDetalles.DataTable;
|
||
|
||
if Assigned(ViewGrid) then
|
||
(ViewGrid as IViewDetalleSinRecibir).Detalles := FDetalles;
|
||
end;
|
||
|
||
{
|
||
procedure TfEditorDetallesSinRecibir.SetMultiSelect(AValue: Boolean);
|
||
begin
|
||
ViewGrid.MultiSelect := AValue;
|
||
end;
|
||
}
|
||
end.
|
||
|