git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@741 0c75b7a4-871f-7646-8a2f-f78d34cc349f
194 lines
5.3 KiB
ObjectPascal
194 lines
5.3 KiB
ObjectPascal
unit uViewObraReserva;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, 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, uObrasController, cxButtonEdit, cxDBEdit,
|
|
ExtCtrls, ImgList, PngImageList;
|
|
|
|
type
|
|
IViewDireccionEntregaPedidoProv = interface(IViewBase)
|
|
['{7467855C-066F-4A60-B88F-2837C8050B1E}']
|
|
function GetPedidoProveedor: IBizPedidoProveedor;
|
|
procedure SetPedidoProveedor(const Value: IBizPedidoProveedor);
|
|
property PedidoProveedor: IBizPedidoProveedor read GetPedidoProveedor write SetPedidoProveedor;
|
|
end;
|
|
|
|
TfrViewObraReserva = class(TfrViewBase, IViewDireccionEntregaPedidoProv)
|
|
dxLayoutControl1: TdxLayoutControl;
|
|
dxLayoutGroup1: TdxLayoutGroup;
|
|
dsPedido: TDADataSource;
|
|
Label1: TLabel;
|
|
dxLayoutControl1Item1: TdxLayoutItem;
|
|
dxLayoutControl1Item2: TdxLayoutItem;
|
|
Button3: TBitBtn;
|
|
PngImageList: TPngImageList;
|
|
ActionList1: TActionList;
|
|
actVerObra: TAction;
|
|
cbObraReserva: TComboBox;
|
|
dxLayoutControl1Item5: TdxLayoutItem;
|
|
dxLayoutControl1Group1: TdxLayoutGroup;
|
|
procedure actVerObraExecute(Sender: TObject);
|
|
procedure actVerObraUpdate(Sender: TObject);
|
|
procedure cbObraReservaChange(Sender: TObject);
|
|
procedure CustomViewShow(Sender: TObject);
|
|
protected
|
|
FObrasController : IObrasController;
|
|
FListaObras : TStringList;
|
|
//FObras: IBizObra;
|
|
FPedido : IBizPedidoProveedor;
|
|
FController : IPedidosProveedorController;
|
|
function GetPedidoProveedor: IBizPedidoProveedor;
|
|
procedure SetPedidoProveedor(const Value: IBizPedidoProveedor);
|
|
procedure CargarObra;
|
|
procedure SalvarObra;
|
|
procedure SetReadOnly(Value: Boolean); override;
|
|
public
|
|
property PedidoProveedor: IBizPedidoProveedor read GetPedidoProveedor write SetPedidoProveedor;
|
|
constructor Create(AOwner: TComponent); override;
|
|
destructor Destroy; override;
|
|
end;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
uses
|
|
uEditorRegistryUtils, uCustomView, uEditorElegirPersonaContactoPedido,
|
|
uStringsUtils;
|
|
|
|
procedure TfrViewObraReserva.actVerObraExecute(Sender: TObject);
|
|
var
|
|
AObra : IBizObra;
|
|
AID : Integer;
|
|
begin
|
|
inherited;
|
|
AID := StrToInt(FListaObras.Values[FListaObras.Names[cbObraReserva.ItemIndex-1]]);
|
|
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 := Assigned(FListaObras) and
|
|
(not EsCadenaVacia(cbObraReserva.Text));
|
|
end;
|
|
|
|
procedure TfrViewObraReserva.CargarObra;
|
|
var
|
|
i : integer;
|
|
begin
|
|
cbObraReserva.ItemIndex := 0;
|
|
|
|
if not FPedido.Active then
|
|
FPedido.Open;
|
|
|
|
if not FPedido.ID_OBRAIsNull then
|
|
begin
|
|
for i := 0 to FListaObras.Count - 1 do
|
|
begin
|
|
if IntToStr(FPedido.ID_OBRA) = FListaObras.Values[FListaObras.Names[i]] then
|
|
begin
|
|
cbObraReserva.ItemIndex := i + 1;
|
|
Exit;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrViewObraReserva.cbObraReservaChange(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
SalvarObra;
|
|
end;
|
|
|
|
constructor TfrViewObraReserva.Create(AOwner: TComponent);
|
|
var
|
|
i: Integer;
|
|
begin
|
|
inherited;
|
|
FController := TPedidosProveedorController.Create;
|
|
FObrasController := TObrasController.Create;
|
|
FListaObras := FObrasController.DarListaObras;
|
|
|
|
cbObraReserva.Items.BeginUpdate;
|
|
try
|
|
cbObraReserva.Items.Add(''); // Para poder indicar sin obra
|
|
for i := 0 to FListaObras.Count - 1 do
|
|
cbObraReserva.Items.Add(FListaObras.Names[i]);
|
|
finally
|
|
cbObraReserva.Items.EndUpdate;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrViewObraReserva.CustomViewShow(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
cbObraReserva.Enabled := not Self.ReadOnly;
|
|
end;
|
|
|
|
destructor TfrViewObraReserva.Destroy;
|
|
begin
|
|
FObrasController := Nil;
|
|
FController := NIL;
|
|
|
|
FreeANDNIL(FListaObras);
|
|
inherited;
|
|
end;
|
|
|
|
function TfrViewObraReserva.GetPedidoProveedor: IBizPedidoProveedor;
|
|
begin
|
|
Result := FPedido;
|
|
end;
|
|
|
|
procedure TfrViewObraReserva.SalvarObra;
|
|
var
|
|
AID : String;
|
|
begin
|
|
// En el item 0 no hay nada
|
|
if (cbObraReserva.ItemIndex > 0) then
|
|
begin
|
|
AID := FListaObras.Values[FListaObras.Names[cbObraReserva.ItemIndex-1]];
|
|
FPedido.Edit;
|
|
FPedido.ID_OBRA := StrToInt(AID);
|
|
FPedido.NOMBRE_OBRA := FListaObras.Names[cbObraReserva.ItemIndex-1];
|
|
end
|
|
else begin
|
|
FPedido.Edit;
|
|
FPedido.ClearField('ID_OBRA');
|
|
FPedido.ClearField('NOMBRE_OBRA');
|
|
end;
|
|
end;
|
|
|
|
procedure TfrViewObraReserva.SetPedidoProveedor(
|
|
const Value: IBizPedidoProveedor);
|
|
begin
|
|
dsPedido.DataTable := nil;
|
|
|
|
FPedido := Value;
|
|
dsPedido.DataTable := FPedido.DataTable;
|
|
CargarObra;
|
|
end;
|
|
|
|
|
|
procedure TfrViewObraReserva.SetReadOnly(Value: Boolean);
|
|
begin
|
|
inherited;
|
|
if (csLoading in Self.ComponentState) then
|
|
Exit;
|
|
cbObraReserva.Enabled := not Self.ReadOnly;
|
|
end;
|
|
|
|
end.
|