- 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
313 lines
9.5 KiB
ObjectPascal
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.
|