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.
Noviseda_FactuGES2/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.pas
2009-12-16 17:16:54 +00:00

306 lines
9.2 KiB
ObjectPascal

unit uViewDireccionEntregaPedidoProv;
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, cxLabel, cxDBLabel;
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;
TfrViewDireccionEntregaPedidoProv = class(TfrViewBase, IViewDireccionEntregaPedidoProv)
dxLayoutControl1: TdxLayoutControl;
rdxDestino1: TRadioButton;
rdxDestino3: TRadioButton;
cbListaAlmacenes: TcxDBLookupComboBox;
dxLayoutGroup1: TdxLayoutGroup;
dxLayoutItem1: TdxLayoutItem;
dxLayoutControl1Item3: TdxLayoutItem;
dxLayoutControl1Item2: TdxLayoutItem;
ActionList1: TActionList;
actListaAlmacenes: TAction;
actOtro: TAction;
dsPedido: TDADataSource;
dsAlmacenes: TDADataSource;
dxLayoutControl1Item1: TdxLayoutItem;
bModificar: TBitBtn;
txtDireccion: TStaticText;
dxLayoutControl1Item5: TdxLayoutItem;
dxLayoutControl1Item4: TdxLayoutItem;
rdxDestino2: TRadioButton;
dsObras: TDADataSource;
actListaObras: TAction;
Bevel1: TBevel;
dxLayoutControl1Item8: TdxLayoutItem;
edtEntregarA: TcxDBButtonEdit;
dxLayoutControl1Item7: TdxLayoutItem;
dxLayoutControl1Group1: TdxLayoutGroup;
dxLayoutControl1Group2: TdxLayoutGroup;
dxLayoutControl1Group3: TdxLayoutGroup;
lblObra: TLabel;
dxLayoutControl1Item6: TdxLayoutItem;
procedure cbListaAlmacenesPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
procedure bModificarClick(Sender: TObject);
procedure txtDireccionDblClick(Sender: TObject);
procedure edtEntregarAPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure actListaAlmacenesExecute(Sender: TObject);
procedure actOtroExecute(Sender: TObject);
procedure actListaObrasExecute(Sender: TObject);
protected
FAlmacenesController : IAlmacenesController;
FAlmacenes: IBizAlmacen;
FObrasController : IObrasController;
FObra: IBizObra;
FPedido : IBizPedidoProveedor;
FController : IPedidosProveedorController;
function GetPedidoProveedor: IBizPedidoProveedor;
procedure SetPedidoProveedor(const Value: IBizPedidoProveedor);
procedure CambioDireccionAlmacen;
procedure RefrescarControles;
procedure SetReadOnly(Value: Boolean); override;
public
property PedidoProveedor: IBizPedidoProveedor read GetPedidoProveedor write SetPedidoProveedor;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure RecuperarObra;
procedure CambioDireccionObra;
end;
implementation
{$R *.dfm}
uses
uEditorRegistryUtils, uCustomView, uEditorElegirPersonaContactoPedido, uBizInventario;
procedure TfrViewDireccionEntregaPedidoProv.actListaAlmacenesExecute(
Sender: TObject);
begin
actListaAlmacenes.Checked := True;
RefrescarControles;
end;
procedure TfrViewDireccionEntregaPedidoProv.actListaObrasExecute(Sender: TObject);
begin
actListaObras.Checked := True;
RecuperarObra;
CambioDireccionObra;
FController.AsignarIDAlmacen(FPedido, FPedido.ID_OBRA);
end;
procedure TfrViewDireccionEntregaPedidoProv.actOtroExecute(Sender: TObject);
begin
actOtro.Checked := True;
if Assigned(FPedido) then
begin
FController.VerDireccionEntrega(FPedido);
FController.AsignarIDAlmacen(FPedido, Null);
end;
RefrescarControles;
end;
procedure TfrViewDireccionEntregaPedidoProv.bModificarClick(Sender: TObject);
begin
inherited;
actOtro.Execute;
end;
procedure TfrViewDireccionEntregaPedidoProv.CambioDireccionAlmacen;
begin
if Assigned(FPedido) and Assigned(FAlmacenes) then
begin
FPedido.Edit;
FPedido.CALLE := FAlmacenes.CALLE;
FPedido.POBLACION := FAlmacenes.POBLACION;
FPedido.POBLACION := FAlmacenes.POBLACION;
FPedido.PROVINCIA := FAlmacenes.PROVINCIA;
FPedido.CODIGO_POSTAL := FAlmacenes.CODIGO_POSTAL;
RefrescarControles;
end;
end;
procedure TfrViewDireccionEntregaPedidoProv.CambioDireccionObra;
begin
if Assigned(FPedido) and Assigned(FObra) then
begin
FPedido.Edit;
FPedido.CALLE := FObra.CALLE;
FPedido.POBLACION := FObra.POBLACION;
FPedido.POBLACION := FObra.POBLACION;
FPedido.PROVINCIA := FObra.PROVINCIA;
FPedido.CODIGO_POSTAL := FObra.CODIGO_POSTAL;
RefrescarControles;
end;
end;
procedure TfrViewDireccionEntregaPedidoProv.cbListaAlmacenesPropertiesValidate(
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
begin
if Assigned(FPedido) and Assigned(FAlmacenes) and (FPedido.ID_ALMACEN <> FAlmacenes.ID) then
CambioDireccionAlmacen;
end;
constructor TfrViewDireccionEntregaPedidoProv.Create(AOwner: TComponent);
begin
inherited;
FController := TPedidosProveedorController.Create;
FAlmacenesController := TAlmacenesController.Create;
FAlmacenes := FAlmacenesController.BuscarTodos;
FAlmacenes.DataTable.Active := True;
dsAlmacenes.DataTable := FAlmacenes.DataTable;
FObrasController := TObrasController.Create;
FObra := NIL;
end;
destructor TfrViewDireccionEntregaPedidoProv.Destroy;
begin
cbListaAlmacenes.Properties.OnValidate := Nil;
FAlmacenesController := Nil;
FAlmacenes := Nil;
FObrasController := Nil;
FObra := NIL;
FController := NIL;
inherited;
end;
procedure TfrViewDireccionEntregaPedidoProv.edtEntregarAPropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
var
AID_Subcontrata : Integer;
APersonaContacto : String;
begin
inherited;
AID_Subcontrata := -1;
if not FPedido.ID_OBRAIsNull then
begin
RecuperarObra;
if FObrasController.LocalizarEjecucionActiva(FObra.Ejecuciones) then
begin
if not FObra.Ejecuciones.ID_SUBCONTRATAIsNull then
AID_Subcontrata := FObra.Ejecuciones.ID_SUBCONTRATA;
end;
end;
APersonaContacto := FPedido.PERSONA_CONTACTO;
if ElegirPersonaContactoPedido(AID_Subcontrata, APersonaContacto) then
begin
FPedido.Edit;
FPedido.PERSONA_CONTACTO := APersonaContacto;
end;
end;
function TfrViewDireccionEntregaPedidoProv.GetPedidoProveedor: IBizPedidoProveedor;
begin
Result := FPedido;
end;
procedure TfrViewDireccionEntregaPedidoProv.RecuperarObra;
begin
if Assigned(FObra) and (FObra.ID = FPedido.ID_OBRA) then
Exit; // No hace falta volver a recuperarla
FObra := FObrasController.Buscar(FPedido.ID_OBRA);
FObra.Open;
end;
procedure TfrViewDireccionEntregaPedidoProv.RefrescarControles;
begin
txtDireccion.Caption := '';
if Assigned(FPedido) then
begin
if (actOtro.Checked) then
begin
cbListaAlmacenes.Enabled := False;
cbListaAlmacenes.Text := '';
txtDireccion.Enabled := True;
txtDireccion.Caption := FPedido.CALLE;
txtDireccion.Caption := txtDireccion.Caption + #13#10 + FPedido.CODIGO_POSTAL + ' ' + FPedido.POBLACION;
txtDireccion.Caption := txtDireccion.Caption + #13#10 + FPedido.PROVINCIA;
bModificar.Enabled := True;
end
else if (actListaAlmacenes.Checked) then
begin
cbListaAlmacenes.Enabled := True;
cbListaAlmacenes.DroppedDown := True;
txtDireccion.Enabled := False;
bModificar.Enabled := False;
end
else begin
cbListaAlmacenes.Enabled := False;
cbListaAlmacenes.Text := '';
bModificar.Enabled := False;
txtDireccion.Enabled := False;
end;
end;
end;
procedure TfrViewDireccionEntregaPedidoProv.SetPedidoProveedor(
const Value: IBizPedidoProveedor);
begin
cbListaAlmacenes.Properties.OnValidate := NIL;
dsPedido.DataTable := nil;
FPedido := Value;
dsPedido.DataTable := FPedido.DataTable;
cbListaAlmacenes.Properties.OnValidate := cbListaAlmacenesPropertiesValidate;
if (FPedido.EsNuevo) then
CambioDireccionAlmacen
else begin
if (FPedido.ID_ALMACEN > 0) then
if FPedido.TIPO_ALMACEN = CTE_INV_ALMACEN then
actListaAlmacenes.Checked := True
else begin
actListaObras.Checked := True
end
else
actOtro.Checked := True;
end;
RefrescarControles;
end;
procedure TfrViewDireccionEntregaPedidoProv.SetReadOnly(Value: Boolean);
begin
inherited;
if (csLoading in Self.ComponentState) then
Exit;
rdxDestino1.Enabled := not ReadOnly;
rdxDestino2.Enabled := not ReadOnly;
rdxDestino3.Enabled := not ReadOnly;
end;
procedure TfrViewDireccionEntregaPedidoProv.txtDireccionDblClick(
Sender: TObject);
begin
inherited;
actOtro.Execute;
end;
end.