This repository has been archived on 2024-12-02. You can view files and clone it, but cannot push or open issues or pull requests.
AlonsoYSal_FactuGES/Modulos/Pedidos a proveedor/Cliente/uViewDestinoPedidoProveedor.pas
2007-06-21 16:02:50 +00:00

156 lines
4.6 KiB
ObjectPascal

unit uViewDestinoPedidoProveedor;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, DB, uDADataTable, cxControls, cxContainer, cxEdit,
cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, cxDBEdit, StdCtrls,
Mask, DBCtrls, ExtCtrls, cxGraphics, cxMemo, ActnList, cxLookupEdit,
cxDBLookupEdit, cxDBLookupComboBox, uBizAlmacenes, uBizPedidosProveedor;
type
IViewDestinoPedidoProveedor = interface(IViewBase)
['{1DD198BD-9F21-47D1-804E-ED3B627C9FA9}']
function GetPedidoProveedor: IBizPedidosProveedor;
procedure SetPedidoProveedor(const Value: IBizPedidosProveedor);
property PedidoProveedor: IBizPedidosProveedor read GetPedidoProveedor
write SetPedidoProveedor;
end;
TfrViewDestinoPedidoProveedor = class(TfrViewBase)
Bevel1: TBevel;
Label5: TLabel;
DADataSource: TDADataSource;
rdxDestino1: TRadioButton;
rdxDestino2: TRadioButton;
memDireccion: TcxDBMemo;
ActionList1: TActionList;
actAlmacen: TAction;
actOtro: TAction;
DADataSource2: TDADataSource;
cbAlmacen: TcxDBLookupComboBox;
procedure actAlmacenExecute(Sender: TObject);
procedure actOtroExecute(Sender: TObject);
procedure cbAlmacenPropertiesEditValueChanged(Sender: TObject);
procedure cbAlmacenPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
private
FAlmacen: IBizAlmacen;
FPedido : IBizPedidosProveedor;
function GetPedidoProveedor: IBizPedidosProveedor;
procedure SetPedidoProveedor(const Value: IBizPedidosProveedor);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property PedidoProveedor: IBizPedidosProveedor read GetPedidoProveedor
write SetPedidoProveedor;
end;
var
frViewDestinoPedidoProveedor: TfrViewDestinoPedidoProveedor;
implementation
{$R *.dfm}
uses
uDataModuleAlmacenes, schAlmacenesClient_Intf;
procedure TfrViewDestinoPedidoProveedor.actAlmacenExecute(Sender: TObject);
begin
cbAlmacen.Enabled := True;
memDireccion.Enabled := False;
end;
procedure TfrViewDestinoPedidoProveedor.actOtroExecute(Sender: TObject);
begin
cbAlmacen.Enabled := False;
memDireccion.Enabled := True;
if Assigned(FPedido) and (FPedido.CODIGOALMACEN <> 0) then
begin
FPedido.Edit;
FPedido.CODIGOALMACEN := 0;
end;
end;
constructor TfrViewDestinoPedidoProveedor.Create(AOwner: TComponent);
begin
inherited;
FAlmacen := dmAlmacenes.GetItems;
DADataSource2.DataTable := FAlmacen.DataTable;
DADataSource2.DataTable.Active := True;
cbAlmacen.ItemIndex := 0;
end;
destructor TfrViewDestinoPedidoProveedor.Destroy;
begin
FAlmacen := Nil;
inherited;
end;
function TfrViewDestinoPedidoProveedor.GetPedidoProveedor: IBizPedidosProveedor;
begin
Result := FPedido;
end;
procedure TfrViewDestinoPedidoProveedor.SetPedidoProveedor(
const Value: IBizPedidosProveedor);
begin
FPedido := Value;
if (FPedido.CODIGOALMACEN = 0) and
(Length(FPedido.DIRECCIONCOMPLETA.Text) = 0) then
// Nuevo pedido
begin
actAlmacen.Checked := True;
actOtro.Checked := False;
end
else begin
if (FPedido.CODIGOALMACEN <> 0) then
begin
actAlmacen.Checked := True;
actOtro.Checked := False;
end
else begin
if (Length(FPedido.DIRECCIONCOMPLETA.Text) <> 0) then
begin
actAlmacen.Checked := False;
actOtro.Checked := True;
actOtro.Execute;
end
end
end;
// Esto al final para que no salten los eventos del cxComboBox
DADataSource.DataTable := FPedido.DataTable;
end;
procedure TfrViewDestinoPedidoProveedor.cbAlmacenPropertiesEditValueChanged(
Sender: TObject);
begin
inherited;
{ if Assigned(FPedido) and (FPedido.CODIGOALMACEN <> FAlmacen.CODIGO) then
begin
FPedido.Edit;
FPedido.DIRECCIONCOMPLETA.Text := FAlmacen.CALLE + #13#10 + FAlmacen.CODIGOPOSTAL + ' ' + FAlmacen.POBLACION
end;}
end;
procedure TfrViewDestinoPedidoProveedor.cbAlmacenPropertiesValidate(
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
begin
inherited;
if Assigned(FPedido) and (FPedido.CODIGOALMACEN <> FAlmacen.CODIGO) then
begin
{ memDireccion.Lines.Clear;
memDireccion.Lines.Add(FAlmacen.CALLE);
memDireccion.Lines.Add(FAlmacen.CODIGOPOSTAL + ' ' + FAlmacen.POBLACION);}
memDireccion.DataBinding.Field.AsString := FAlmacen.CALLE + #13#10 + FAlmacen.CODIGOPOSTAL + ' ' + FAlmacen.POBLACION;
end;
end;
end.