git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@745 0c75b7a4-871f-7646-8a2f-f78d34cc349f
187 lines
4.7 KiB
ObjectPascal
187 lines
4.7 KiB
ObjectPascal
unit uViewObraReserva;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
|
|
Dialogs, uViewBase, uBizPedidosProveedor, cxGraphics, dxLayoutControl, cxMemo,
|
|
cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit,
|
|
cxDBLookupEdit, cxDBLookupComboBox, StdCtrls, cxControls, DB, uDADataTable,
|
|
ActnList, uBizAlmacenes, uAlmacenesController, uPedidosProveedorController,
|
|
Buttons, uDAInterfaces, uBizObras, cxButtonEdit, cxDBEdit, uObrasController,
|
|
ExtCtrls, ImgList, PngImageList;
|
|
|
|
type
|
|
IViewObraReserva = interface(IViewBase)
|
|
['{571462BF-ECF3-47F1-A6F4-2C31175D0B33}']
|
|
end;
|
|
|
|
TfrViewObraReserva = class(TfrViewBase, IViewObraReserva)
|
|
dxLayoutControl1: TdxLayoutControl;
|
|
dxLayoutGroup1: TdxLayoutGroup;
|
|
Label1: TLabel;
|
|
dxLayoutControl1Item1: TdxLayoutItem;
|
|
dxLayoutControl1Item2: TdxLayoutItem;
|
|
Button3: TBitBtn;
|
|
PngImageList: TPngImageList;
|
|
ActionList1: TActionList;
|
|
actVerObra: TAction;
|
|
dxLayoutControl1Item3: TdxLayoutItem;
|
|
cbObraReserva: TcxComboBox;
|
|
dxLayoutControl1Group1: TdxLayoutGroup;
|
|
procedure actVerObraExecute(Sender: TObject);
|
|
procedure actVerObraUpdate(Sender: TObject);
|
|
procedure CustomViewShow(Sender: TObject);
|
|
private
|
|
FObras : TStringList;
|
|
FObrasController: IObrasController;
|
|
function GetObrasController: IObrasController;
|
|
procedure SetObrasController(const Value: IObrasController);
|
|
function GetObras: TStringList;
|
|
procedure SetObras(const Value: TStringList);
|
|
|
|
protected
|
|
procedure SalvarObra;
|
|
procedure SetReadOnly(Value: Boolean); override;
|
|
|
|
public
|
|
property Obras: TStringList read GetObras write SetObras;
|
|
property ObrasController: IObrasController read GetObrasController write SetObrasController;
|
|
destructor Destroy; override;
|
|
procedure ActivarObra(const IDObra:Integer);
|
|
function DarIDObraSeleccionada: String;
|
|
end;
|
|
|
|
implementation
|
|
{$R *.dfm}
|
|
|
|
uses
|
|
Variants, uEditorRegistryUtils, uCustomView, uEditorElegirPersonaContactoPedido,
|
|
uStringsUtils;
|
|
|
|
procedure TfrViewObraReserva.actVerObraExecute(Sender: TObject);
|
|
var
|
|
AObra : IBizObra;
|
|
AID : Variant;
|
|
begin
|
|
inherited;
|
|
AID := DarIDObraSeleccionada;
|
|
AObra := FObrasController.Buscar(AID);
|
|
if Assigned(AObra) then
|
|
try
|
|
FObrasController.Ver(AObra);
|
|
finally
|
|
AObra := NIL;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrViewObraReserva.actVerObraUpdate(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
(Sender as TAction).Enabled := (cbObraReserva.Properties.Items.Count > 0)
|
|
end;
|
|
|
|
procedure TfrViewObraReserva.ActivarObra(const IDObra: Integer);
|
|
var
|
|
i : integer;
|
|
begin
|
|
cbObraReserva.ItemIndex := 0;
|
|
for i := 0 to FObras.Count - 1 do
|
|
begin
|
|
if IntToStr(IDObra) = FObras.Values[FObras.Names[i]] then
|
|
begin
|
|
cbObraReserva.ItemIndex := i;
|
|
Exit;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrViewObraReserva.CustomViewShow(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
cbObraReserva.Enabled := not Self.ReadOnly;
|
|
end;
|
|
|
|
function TfrViewObraReserva.DarIDObraSeleccionada: String;
|
|
begin
|
|
if Assigned(FObras) then
|
|
Result := FObras.Values[cbObraReserva.EditValue]
|
|
else
|
|
Raise Exception.Create('No se ha asignado ninguna lista de ALMACENES');
|
|
end;
|
|
|
|
destructor TfrViewObraReserva.Destroy;
|
|
begin
|
|
FObrasController := Nil;
|
|
FObras := Nil;
|
|
inherited;
|
|
end;
|
|
|
|
function TfrViewObraReserva.GetObras: TStringList;
|
|
begin
|
|
Result := FObras;
|
|
end;
|
|
|
|
function TfrViewObraReserva.GetObrasController: IObrasController;
|
|
begin
|
|
Result := FObrasController;
|
|
end;
|
|
|
|
procedure TfrViewObraReserva.SalvarObra;
|
|
var
|
|
AID : String;
|
|
begin
|
|
{
|
|
// En el item 0 no hay nada
|
|
if (cbObraReserva.ItemIndex > 0) then
|
|
begin
|
|
AID := FListaObras.Values[cbObraReserva.EditValue];
|
|
FPedido.Edit;
|
|
FPedido.ID_OBRA := StrToInt(AID);
|
|
FPedido.NOMBRE_OBRA := cbObraReserva.EditValue;
|
|
end
|
|
else begin
|
|
FPedido.Edit;
|
|
FPedido.ClearField('ID_OBRA');
|
|
FPedido.ClearField('NOMBRE_OBRA');
|
|
end;
|
|
}
|
|
end;
|
|
|
|
procedure TfrViewObraReserva.SetObras(const Value: TStringList);
|
|
var
|
|
i: Integer;
|
|
|
|
begin
|
|
FObras := Value;
|
|
|
|
if Assigned(FObras) then
|
|
with cbObraReserva.Properties.Items do
|
|
begin
|
|
BeginUpdate;
|
|
try
|
|
Clear;
|
|
// Add('');
|
|
for i := 0 to FObras.Count - 1 do
|
|
Add(FObras.Names[i]);
|
|
finally
|
|
EndUpdate;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrViewObraReserva.SetObrasController(const Value: IObrasController);
|
|
begin
|
|
FObrasController := Value;
|
|
end;
|
|
|
|
procedure TfrViewObraReserva.SetReadOnly(Value: Boolean);
|
|
begin
|
|
inherited;
|
|
if (csLoading in Self.ComponentState) then
|
|
Exit;
|
|
cbObraReserva.Enabled := not Self.ReadOnly;
|
|
end;
|
|
|
|
end.
|