Tecsitel_FactuGES2/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.pas
david 72e18c7cdf Pedidos a proveedor:
- Añadir selección de persona que recibirá el pedido a partir de los empleados o personal de la subcontrata.
 - Adaptación de los informes.

git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@353 0c75b7a4-871f-7646-8a2f-f78d34cc349f
2008-03-25 17:02:07 +00:00

313 lines
9.5 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;
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;
rdxDestino2: 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;
RadioButton1: TRadioButton;
dxLayoutControl1Item6: TdxLayoutItem;
cbListaObras: TcxDBLookupComboBox;
dsObras: TDADataSource;
actListaObras: TAction;
Bevel1: TBevel;
dxLayoutControl1Item8: TdxLayoutItem;
edtEntregarA: TcxDBButtonEdit;
dxLayoutControl1Item7: TdxLayoutItem;
procedure actListaAlmacenesExecute(Sender: TObject);
procedure actOtroExecute(Sender: TObject);
procedure cbListaAlmacenesPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
procedure cbListaObrasPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
procedure bModificarClick(Sender: TObject);
procedure txtDireccionDblClick(Sender: TObject);
procedure actListaObrasExecute(Sender: TObject);
procedure edtEntregarAPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
protected
FAlmacenesController : IAlmacenesController;
FAlmacenes: IBizAlmacen;
FObrasController : IObrasController;
FObras: IBizObra;
FPedido : IBizPedidoProveedor;
FController : IPedidosProveedorController;
function GetPedidoProveedor: IBizPedidoProveedor;
procedure SetPedidoProveedor(const Value: IBizPedidoProveedor);
procedure CambioDireccionAlmacen;
procedure CambioDireccionObra;
procedure RefrescarDireccion;
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;
procedure TfrViewDireccionEntregaPedidoProv.actListaAlmacenesExecute(Sender: TObject);
begin
actListaAlmacenes.Checked := True;
RefrescarDireccion;
end;
procedure TfrViewDireccionEntregaPedidoProv.actListaObrasExecute(
Sender: TObject);
begin
actListaObras.Checked := True;
RefrescarDireccion;
end;
procedure TfrViewDireccionEntregaPedidoProv.actOtroExecute(Sender: TObject);
begin
actOtro.Checked := True;
// txtDireccion.Enabled := True;
if Assigned(FPedido) then
begin
FController.VerDireccionEntrega(FPedido);
if (FPedido.ID_ALMACEN > 0) then
begin
FPedido.Edit;
FPedido.ID_ALMACEN := 0;
end;
if (FPedido.ID_OBRA > 0) then
begin
FPedido.Edit;
FPedido.ID_OBRA := 0;
end;
end;
RefrescarDireccion;
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.ID_OBRA := 0;
FPedido.CALLE := FAlmacenes.CALLE;
FPedido.POBLACION := FAlmacenes.POBLACION;
FPedido.POBLACION := FAlmacenes.POBLACION;
FPedido.PROVINCIA := FAlmacenes.PROVINCIA;
FPedido.CODIGO_POSTAL := FAlmacenes.CODIGO_POSTAL;
RefrescarDireccion;
end;
end;
procedure TfrViewDireccionEntregaPedidoProv.CambioDireccionObra;
begin
if Assigned(FPedido) and Assigned(FObras) then
begin
FPedido.Edit;
FPedido.ID_ALMACEN := 0;
FPedido.CALLE := FObras.CALLE;
FPedido.POBLACION := FObras.POBLACION;
FPedido.POBLACION := FObras.POBLACION;
FPedido.PROVINCIA := FObras.PROVINCIA;
FPedido.CODIGO_POSTAL := FObras.CODIGO_POSTAL;
RefrescarDireccion;
end;
end;
procedure TfrViewDireccionEntregaPedidoProv.cbListaObrasPropertiesValidate(
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
begin
if Assigned(FPedido) and Assigned(FObras) and (FPedido.ID_OBRA <> FObras.ID) then
CambioDireccionObra;
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;
FObras := FObrasController.BuscarTodos;
FObras.DataTable.Active := True;
dsObras.DataTable := FObras.DataTable;
end;
destructor TfrViewDireccionEntregaPedidoProv.Destroy;
begin
cbListaObras.Properties.OnValidate := Nil;
cbListaAlmacenes.Properties.OnValidate := Nil;
FAlmacenesController := Nil;
FAlmacenes := Nil;
FObrasController := Nil;
FObras := Nil;
FController := NIL;
inherited;
end;
procedure TfrViewDireccionEntregaPedidoProv.edtEntregarAPropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
var
AID_Subcontrata : Integer;
APersonaContacto : String;
begin
inherited;
AID_Subcontrata := -1;
if actListaObras.Checked then
AID_Subcontrata := FObras.ID_SUBCONTRATA;
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.RefrescarDireccion;
begin
txtDireccion.Caption := '';
if Assigned(FPedido) then
begin
if (actOtro.Checked) then
begin
cbListaAlmacenes.Enabled := False;
cbListaAlmacenes.Text := '';
cbListaObras.Enabled := False;
cbListaObras.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
txtDireccion.Enabled := False;
cbListaObras.Enabled := False;
cbListaObras.Text := '';
cbListaAlmacenes.Enabled := True;
cbListaAlmacenes.DroppedDown := True;
bModificar.Enabled := False;
end
else begin
txtDireccion.Enabled := False;
cbListaAlmacenes.Enabled := False;
cbListaAlmacenes.Text := '';
cbListaObras.Enabled := True;
cbListaObras.DroppedDown := True;
bModificar.Enabled := False;
end;
end;
end;
procedure TfrViewDireccionEntregaPedidoProv.SetPedidoProveedor(
const Value: IBizPedidoProveedor);
begin
cbListaAlmacenes.Properties.OnValidate := NIL;
cbListaObras.Properties.OnValidate := NIL;
dsPedido.DataTable := nil;
FPedido := Value;
dsPedido.DataTable := FPedido.DataTable;
cbListaAlmacenes.Properties.OnValidate := cbListaAlmacenesPropertiesValidate;
cbListaObras.Properties.OnValidate := cbListaObrasPropertiesValidate;
if (FPedido.EsNuevo) then
CambioDireccionAlmacen
else begin
if (FPedido.ID_ALMACEN >= 1) then
actListaAlmacenes.Checked := True
else if (FPedido.ID_OBRA >= 1) then
actListaObras.Checked := True
else
actOtro.Checked := True;
end;
RefrescarDireccion;
end;
procedure TfrViewDireccionEntregaPedidoProv.SetReadOnly(Value: Boolean);
begin
inherited;
if ReadOnly then
begin
rdxDestino1.Enabled := False;
rdxDestino2.Enabled := False;
end;
end;
procedure TfrViewDireccionEntregaPedidoProv.txtDireccionDblClick(
Sender: TObject);
begin
inherited;
actOtro.Execute;
end;
end.