This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
LuisLeon_FactuGES/Source/Modulos/Inventario/Views/uEditorDetallesSinAlbaran.pas

305 lines
8.9 KiB
ObjectPascal
Raw Blame History

unit uEditorDetallesSinAlbaran;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
uCustomEditor, ImgList, PngImageList, StdActns, ActnList, TB2ExtItems, TBXExtItems, TBX, TB2Item,
TB2Dock, TB2Toolbar, JvExControls, JvComponent, JvNavigationPane,
uViewDetallesSinAlbaran, Menus, DB, uDADataTable, ComCtrls, uViewGrid,
uDAScriptingProvider, uDACDSDataTable, JvAppStorage,
JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, uCustomView,
uViewBase, uViewBarraSeleccion, JvComponentBase, uEditorGridBase,
uIEditorDetallesSinAlbaran, uBizInventario, uViewGridBase,
JvExComCtrls, JvStatusBar, uViewGrid2Niveles, JSDialog, uInventarioController,
uBizAlmacenes;
type
TfEditorDetallesSinAlbaran = class(TfEditorGridBase, IEditorDetallesSinAlbaran)
TBXSeparatorItem17: TTBXSeparatorItem;
actExpandir: TAction;
actContraer: TAction;
frViewDetallesSinAlbaran1: TfrViewDetallesSinAlbaran;
TBXItem38: TTBXItem;
actAlbaranar: TAction;
JvNavPanelHeader1: TJvNavPanelHeader;
procedure FormShow(Sender: TObject);
procedure actAlbaranarExecute(Sender: TObject);
private
FAlmacen: IBizAlmacen;
function GetAlmacen: Integer;
procedure SetAlmacen(const Value: Integer);
protected
FDetalles: IBizDetalleSinAlbaran;
FController : IInventarioController;
// function GetArticulo: IBizInventario;
// procedure SetArticulo(const Value: IBizInventario);
function GetDetalles: IBizDetalleSinAlbaran;
procedure SetDetalles(const Value: IBizDetalleSinAlbaran);
{ procedure SetMultiSelect (AValue : Boolean);
function GetMultiSelect : Boolean;
function GetArticulosSeleccionados: IBizDetallesSinAlbaran;
}
function GetController : IInventarioController;
procedure SetController (const Value : IInventarioController);
procedure ImprimirInterno; override;
procedure PrevisualizarInterno; override;
public
property Almacen: Integer read GetAlmacen write SetAlmacen;
property DetallesSinAlbaran: IBizDetalleSinAlbaran read GetDetalles write SetDetalles;
property Controller : IInventarioController read GetController write SetController;
// property ArticulosSeleccionados: IBizDetallesSinAlbaran 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, uBizAlbaranesCliente, uGenerarAlbaranesCliUtils;
{, uDBSelectionList, uDataModulePedidosProveedor,
uBizPedidosProveedor, uBizMontajes, uDataModuleMontajes;
}
{ TfEditorDetallesSinAlbaran }
{
***************************** TfEditorDetallesSinAlbaran *****************************
}
procedure TfEditorDetallesSinAlbaran.actAlbaranarExecute(Sender: TObject);
var
ArticulosSeleccionados: IBizDetalleSinAlbaran;
AlbaranesCliente: IBizAlbaranCliente;
begin
inherited;
try
SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (DetallesSinAlbaran as ISeleccionable).SelectedRecords);
// En SelectedRecords tengo los ID de las filas seleccionadas del grid
ArticulosSeleccionados := (Controller as IInventarioController).ExtraerSeleccionados(DetallesSinAlbaran) as IBizDetalleSinAlbaran;
if (ArticulosSeleccionados.DataTable.RecordCount > 0) then
begin
GenerarAlbaranesCli(ArticulosSeleccionados, AlbaranesCliente, Almacen);
RefrescarInterno;
end
else
ShowWarningMessage('Debe seleccionar los art<72>culos que desea albaranar');
finally
ArticulosSeleccionados:= Nil;
AlbaranesCliente:= Nil;
end;
end;
constructor TfEditorDetallesSinAlbaran.Create(AOwner: TComponent);
begin
inherited;
FAlmacen := Nil;
ViewGrid := frViewDetallesSinAlbaran1;
end;
{
function TfEditorDetallesSinAlbaran.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 TfEditorDetallesSinAlbaran.Destroy;
begin
FDetalles := NIL;
FAlmacen := NIL;
inherited;
end;
procedure TfEditorDetallesSinAlbaran.FormShow(Sender: TObject);
begin
inherited;
if not Assigned(ViewGrid) then
raise Exception.Create('No hay ninguna vista asignada');
if not Assigned(DetallesSinAlbaran) then
raise Exception.Create('No hay ning<6E>n DetallesSinAlbaran asignado');
DetallesSinAlbaran.DataTable.Active := True;
ViewGrid.GotoFirst;
end;
{
function TfEditorDetallesSinAlbaran.GetArticulosSeleccionados: IBizDetallesSinAlbaran;
begin
SeleccionarFilasDesdeGrid((ViewGrid as IViewDetallesSinAlbaran)._FocusedView, (DetallesSinAlbaran as ISeleccionable).SelectedRecords);
// En Presupuestos.SelectedRecords tengo los ID de las filas seleccionadas del grid
Result := Controller.ExtraerSeleccionados(DetallesSinAlbaran);
end;
function TfEditorDetallesSinAlbaran.GetController: IDetallesSinAlbaranController;
begin
Result := FController;
end;
}
{
function TfEditorDetallesSinAlbaran.GetArticulo: IBizInventario;
begin
Result := FArticulo;
end;
}
function TfEditorDetallesSinAlbaran.GetAlmacen: Integer;
begin
if Assigned(FAlmacen) then
Result := FAlmacen.ID
else
Result := -1;
end;
function TfEditorDetallesSinAlbaran.GetController: IInventarioController;
begin
Result := FController;
end;
function TfEditorDetallesSinAlbaran.GetDetalles: IBizDetalleSinAlbaran;
begin
Result := FDetalles;
end;
{
function TfEditorDetallesSinAlbaran.GetMultiSelect: Boolean;
begin
Result := ViewGrid.MultiSelect;
end;
}
procedure TfEditorDetallesSinAlbaran.ImprimirInterno;
begin
inherited;
end;
procedure TfEditorDetallesSinAlbaran.PonerTitulos(const ATitulo: string);
var
FTitulo : String;
begin
FTitulo := 'Detalle de art<72>culos sin albaranar - ' + dmUsuarios.EmpresaActual.NOMBRE;
inherited PonerTitulos(FTitulo);
JvNavPanelHeader1.Caption := 'Almac<61>n de salida: ' + FAlmacen.NOMBRE;
end;
procedure TfEditorDetallesSinAlbaran.PrevisualizarInterno;
begin
inherited;
end;
{
function TfEditorDetallesSinAlbaran.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 IViewDetallesSinAlbaran).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 TfEditorDetallesSinAlbaran.SetController(const Value: IDetallesSinAlbaranController);
begin
FController := Value;
if Assigned(FController) then
begin
if Assigned(ViewGrid) then
(ViewGrid as IViewDetallesSinAlbaran).Almacenes := FController.AlmacenesController.BuscarTodos;
end;
end;
}
{
procedure TfEditorDetallesSinAlbaran.SetArticulo(const Value: IBizInventario);
begin
FArticulo := Value;
if Assigned(FArticulo) then
begin
tbxEditFiltro.Text := FArticulo.REFERENCIA;
end;
end;
}
procedure TfEditorDetallesSinAlbaran.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 TfEditorDetallesSinAlbaran.SetController(const Value: IInventarioController);
begin
FController := Value;
end;
procedure TfEditorDetallesSinAlbaran.SetDetalles(const Value: IBizDetalleSinAlbaran);
begin
FDetalles := Value;
dsDataTable.DataTable := FDetalles.DataTable;
if Assigned(ViewGrid) then
(ViewGrid as IViewDetalleSinAlbaran).Detalles := FDetalles;
end;
{
procedure TfEditorDetallesSinAlbaran.SetMultiSelect(AValue: Boolean);
begin
ViewGrid.MultiSelect := AValue;
end;
}
end.