FactuGES2/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.pas
david 25143fb973 - Tarea #1436 -> Al exportar a PDF cambiar el nombre del fichero
- Mejorada la ventana de elegir email al enviar un documento
- Más espacio para los conceptos en el informe de pedido a Proveedor
- La persona de contacto y el tlf de contacto pasa a ser el vendedor en el pedido a proveedor.

git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES2/trunk@645 f4e31baf-9722-1c47-927c-6f952f962d4b
2016-07-22 17:05:20 +00:00

321 lines
10 KiB
ObjectPascal
Raw Blame History

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, uClientesController, uDireccionesContactoController,
uBizDireccionesContacto, uBizContratosCliente, uContratosClienteController;
type
IViewDireccionEntregaPedidoProv = interface(IViewBase)
['{7467855C-066F-4A60-B88F-2837C8050B1E}']
function GetPedidoProveedor: IBizPedidoProveedor;
procedure SetPedidoProveedor(const Value: IBizPedidoProveedor);
property PedidoProveedor: IBizPedidoProveedor read GetPedidoProveedor write SetPedidoProveedor;
procedure RefrescarDireccion;
end;
TfrViewDireccionEntregaPedidoProv = class(TfrViewBase, IViewDireccionEntregaPedidoProv)
dxLayoutControl1: TdxLayoutControl;
rdxDestino1: TRadioButton;
rdxDestino2: TRadioButton;
cbLista: TcxDBLookupComboBox;
dxLayoutGroup1: TdxLayoutGroup;
dxLayoutItem1: TdxLayoutItem;
dxLayoutControl1Item3: TdxLayoutItem;
dxLayoutControl1Item2: TdxLayoutItem;
ActionList1: TActionList;
actLista: TAction;
actOtro: TAction;
dsPedido: TDADataSource;
dsAlmacenes: TDADataSource;
dxLayoutControl1Item1: TdxLayoutItem;
bModificar: TBitBtn;
txtDireccion: TStaticText;
dxLayoutControl1Item5: TdxLayoutItem;
dxLayoutControl1Item4: TdxLayoutItem;
rdxDestinoCliente: TRadioButton;
dxLayoutControl1Item6: TdxLayoutItem;
cbListaDireccionesCliente: TcxDBLookupComboBox;
dsDireccionesCliente: TDADataSource;
actListaCliente: TAction;
procedure actListaExecute(Sender: TObject);
procedure actOtroExecute(Sender: TObject);
procedure cbListaPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
procedure cbListaDireccionesClientePropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
procedure bModificarClick(Sender: TObject);
procedure txtDireccionDblClick(Sender: TObject);
procedure actListaClienteExecute(Sender: TObject);
protected
FAlmacenesController : IAlmacenesController;
FAlmacenes: IBizAlmacen;
FClientesController: IClientesController;
FDireccionesCliente : IBizDireccionesContacto;
FPedido : IBizPedidoProveedor;
FController : IPedidosProveedorController;
function GetPedidoProveedor: IBizPedidoProveedor;
procedure SetPedidoProveedor(const Value: IBizPedidoProveedor);
procedure CambioDireccionAlmacen;
procedure CambioDireccionCliente;
procedure RecuperarClienteAsociado;
procedure SetReadOnly(Value: Boolean); override;
public
property PedidoProveedor: IBizPedidoProveedor read GetPedidoProveedor write SetPedidoProveedor;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure RefrescarDireccion;
end;
implementation
{$R *.dfm}
uses
uEditorRegistryUtils, uCustomView, uStringsUtils, uFactuGES_App;
procedure TfrViewDireccionEntregaPedidoProv.actListaClienteExecute(
Sender: TObject);
begin
inherited;
actListaCliente.Checked := True;
RefrescarDireccion;
end;
procedure TfrViewDireccionEntregaPedidoProv.actListaExecute(Sender: TObject);
begin
actLista.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;
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.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.CambioDireccionCliente;
begin
if Assigned(FPedido) and Assigned(FDireccionesCliente) then
begin
FPedido.Edit;
FPedido.CALLE := FDireccionesCliente.CALLE;
FPedido.POBLACION := FDireccionesCliente.POBLACION;
FPedido.POBLACION := FDireccionesCliente.POBLACION;
FPedido.PROVINCIA := FDireccionesCliente.PROVINCIA;
FPedido.CODIGO_POSTAL := FDireccionesCliente.CODIGO_POSTAL;
RefrescarDireccion;
end;
end;
procedure TfrViewDireccionEntregaPedidoProv.cbListaDireccionesClientePropertiesValidate(
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
begin
if Assigned(FPedido) and Assigned(FDireccionesCliente)
and (FPedido.ID_DIRECCION_CLIENTE <> FDireccionesCliente.ID) then
CambioDireccionCliente;
end;
procedure TfrViewDireccionEntregaPedidoProv.cbListaPropertiesValidate(
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;
FDireccionesCliente := NIL;
dsDireccionesCliente.DataTable := NIL;
end;
destructor TfrViewDireccionEntregaPedidoProv.Destroy;
begin
cbListaDireccionesCliente.Properties.OnValidate := Nil;
cbLista.Properties.OnValidate := Nil;
FDireccionesCliente := NIL;
dsDireccionesCliente.DataTable := NIL;
FAlmacenesController := Nil;
FAlmacenes := Nil;
FController := NIL;
inherited;
end;
function TfrViewDireccionEntregaPedidoProv.GetPedidoProveedor: IBizPedidoProveedor;
begin
Result := FPedido;
end;
procedure TfrViewDireccionEntregaPedidoProv.RecuperarClienteAsociado;
var
AContratoController : IContratosClienteController;
AContrato : IBizContratoCliente;
begin
FDireccionesCliente := NIL;
dsDireccionesCliente.DataTable := NIL;
if (FPedido.ID_CONTRATO_CLIENTE > 0) then
begin
AContratoController := TContratosClienteController.Create;
try
AContrato := AContratoController.Buscar(FPedido.ID_CONTRATO_CLIENTE);
if Assigned(AContrato) then
begin
AContrato.DataTable.Active := True;
AContratoController.RecuperarCliente(AContrato);
FDireccionesCliente := AContrato._Cliente.Direcciones;
end;
finally
AContratoController := NIL;
AContrato := NIL;
end;
end
end;
procedure TfrViewDireccionEntregaPedidoProv.RefrescarDireccion;
begin
txtDireccion.Caption := '';
if Assigned(FPedido) then
begin
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;
txtDireccion.Caption := txtDireccion.Caption + #13#10 + 'Persona contacto: ' + FPedido.PERSONA_CONTACTO;
txtDireccion.Caption := txtDireccion.Caption + #13#10 + 'Tel<65>fono: ' + FPedido.TELEFONO;
if (actOtro.Checked) then
begin
txtDireccion.Enabled := True;
bModificar.Enabled := True;
cbLista.Enabled := False;
cbLista.Text := '';
cbListaDireccionesCliente.Enabled := False;
cbListaDireccionesCliente.Text := '';
end
else begin
if (actListaCliente.Checked) then
begin
cbListaDireccionesCliente.Enabled := True;
cbListaDireccionesCliente.DroppedDown := True;
cbLista.Enabled := False;
cbLista.Text := '';
txtDireccion.Enabled := False;
bModificar.Enabled := False;
end
else begin
cbLista.Enabled := True;
cbLista.DroppedDown := True;
cbListaDireccionesCliente.Enabled := False;
cbListaDireccionesCliente.Text := '';
txtDireccion.Enabled := False;
bModificar.Enabled := False;
end;
end;
end;
end;
procedure TfrViewDireccionEntregaPedidoProv.SetPedidoProveedor(
const Value: IBizPedidoProveedor);
begin
cbLista.Properties.OnValidate := NIL;
cbListaDireccionesCliente.Properties.OnValidate := NIL;
dsPedido.DataTable := nil;
FPedido := Value;
dsPedido.DataTable := FPedido.DataTable;
cbLista.Properties.OnValidate := cbListaPropertiesValidate;
RecuperarClienteAsociado;
if Assigned(FDireccionesCliente) then
begin
dsDireccionesCliente.DataTable := FDireccionesCliente.DataTable;
cbListaDireccionesCliente.Properties.OnValidate := cbListaDireccionesClientePropertiesValidate;
end;
if (FPedido.ID_ALMACEN < 1) then
actOtro.Checked := True
else
CambioDireccionAlmacen;
RefrescarDireccion;
end;
procedure TfrViewDireccionEntregaPedidoProv.SetReadOnly(Value: Boolean);
begin
inherited;
if ReadOnly then
begin
rdxDestino1.Enabled := False;
rdxDestinoCliente.Enabled := False;
rdxDestino2.Enabled := False;
end;
end;
procedure TfrViewDireccionEntregaPedidoProv.txtDireccionDblClick(
Sender: TObject);
begin
inherited;
actOtro.Execute;
end;
end.