182 lines
5.5 KiB
ObjectPascal
182 lines
5.5 KiB
ObjectPascal
|
|
unit uViewDatosYSeleccionClienteAlbaran;
|
|||
|
|
|
|||
|
|
interface
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|||
|
|
Dialogs, uViewDatosYSeleccionClienteBase, ImgList, PngImageList, ActnList, DB,
|
|||
|
|
uDAInterfaces, uDADataTable, dxLayoutControl, StdCtrls, Buttons, cxControls,
|
|||
|
|
cxTextEdit, cxContainer, cxEdit, cxDBEdit, ExtCtrls, cxMemo,
|
|||
|
|
uBizAlbaranesCliente;
|
|||
|
|
|
|||
|
|
type
|
|||
|
|
IViewDatosYSeleccionClienteAlbaran = interface(IViewDatosYSeleccionClienteBase)
|
|||
|
|
['{41EA09A7-F21A-4D89-AC60-559CB6B430C9}']
|
|||
|
|
function GetAlbaranCliente: IBizAlbaranCliente;
|
|||
|
|
procedure SetAlbaranCliente(const Value: IBizAlbaranCliente);
|
|||
|
|
property AlbaranCliente: IBizAlbaranCliente read GetAlbaranCliente write SetAlbaranCliente;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
|
|||
|
|
TfrViewDatosYSeleccionClienteAlbaran = class(TfrViewDatosYSeleccionClienteBase, IViewDatosYSeleccionClienteAlbaran)
|
|||
|
|
dxLayoutControl1Item1: TdxLayoutItem;
|
|||
|
|
edtlNombre: TcxDBTextEdit;
|
|||
|
|
dxLayoutControl1Item3: TdxLayoutItem;
|
|||
|
|
bElegirDireccion: TButton;
|
|||
|
|
dxLayoutControl1Item4: TdxLayoutItem;
|
|||
|
|
edtPersonaContacto: TcxDBTextEdit;
|
|||
|
|
dxLayoutControl1Item5: TdxLayoutItem;
|
|||
|
|
bElegirPersonaContacto: TButton;
|
|||
|
|
dxLayoutControl1Group2: TdxLayoutGroup;
|
|||
|
|
dxLayoutControl1Item6: TdxLayoutItem;
|
|||
|
|
memDireccion: TcxMemo;
|
|||
|
|
dxLayoutControl1Group4: TdxLayoutGroup;
|
|||
|
|
dsAlbaran: TDADataSource;
|
|||
|
|
protected
|
|||
|
|
FAlbaran : IBizAlbaranCliente;
|
|||
|
|
function GetAlbaranCliente: IBizAlbaranCliente;
|
|||
|
|
procedure SetAlbaranCliente(const Value: IBizAlbaranCliente);
|
|||
|
|
|
|||
|
|
procedure EscribirTextoDireccion;
|
|||
|
|
procedure RefrescarDireccion;
|
|||
|
|
public
|
|||
|
|
procedure ElegirCliente; override;
|
|||
|
|
procedure ElegirDireccionCliente; override;
|
|||
|
|
procedure ElegirPersonaContacto; override;
|
|||
|
|
procedure AnadirNuevoCliente; override;
|
|||
|
|
property AlbaranCliente: IBizAlbaranCliente read GetAlbaranCliente write SetAlbaranCliente;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
implementation
|
|||
|
|
|
|||
|
|
{$R *.dfm}
|
|||
|
|
|
|||
|
|
{ TfrViewDatosYSeleccionClienteAlbaran }
|
|||
|
|
|
|||
|
|
procedure TfrViewDatosYSeleccionClienteAlbaran.AnadirNuevoCliente;
|
|||
|
|
begin
|
|||
|
|
if Assigned(FAlbaran) and Assigned(FCliente) and
|
|||
|
|
Assigned (FAlbaran.Detalles) and (FAlbaran.Detalles.RecordCount > 0) then
|
|||
|
|
begin
|
|||
|
|
if (Application.MessageBox('Los descuentos de los art<72>culos del albar<61>n ser<65>n actualizados con los del nuevo cliente seleccionado, <20>Desea continuar?', 'Atenci<63>n', MB_YESNO) = IDNO) then
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
inherited;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewDatosYSeleccionClienteAlbaran.ElegirCliente;
|
|||
|
|
begin
|
|||
|
|
if Assigned(FAlbaran) and Assigned(FCliente) and
|
|||
|
|
Assigned (FAlbaran.Detalles) and (FAlbaran.Detalles.RecordCount > 0) then
|
|||
|
|
begin
|
|||
|
|
if (Application.MessageBox('Los descuentos de los art<72>culos del albar<61>n ser<65>n actualizados con los del nuevo cliente seleccionado, <20>Desea continuar?', 'Atenci<63>n', MB_YESNO) = IDNO) then
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
inherited;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewDatosYSeleccionClienteAlbaran.ElegirDireccionCliente;
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
|
|||
|
|
if Assigned(FDireccion) then
|
|||
|
|
begin
|
|||
|
|
FAlbaran.Edit;
|
|||
|
|
|
|||
|
|
if FDireccion.IDIsNull then
|
|||
|
|
begin
|
|||
|
|
FAlbaran.ClearField('ID_DIRECCION');
|
|||
|
|
FAlbaran.ClearField('IMPORTE_PORTE');
|
|||
|
|
FAlbaran.ClearField('CALLE');
|
|||
|
|
FAlbaran.ClearField('POBLACION');
|
|||
|
|
FAlbaran.ClearField('PROVINCIA');
|
|||
|
|
FAlbaran.ClearField('CODIGO_POSTAL');
|
|||
|
|
FAlbaran.ClearField('TELEFONO');
|
|||
|
|
end
|
|||
|
|
else begin
|
|||
|
|
FAlbaran.ID_DIRECCION := FDireccion.ID;
|
|||
|
|
FAlbaran.CALLE := FDireccion.CALLE;
|
|||
|
|
FAlbaran.POBLACION := FDireccion.POBLACION;
|
|||
|
|
FAlbaran.PROVINCIA := FDireccion.PROVINCIA;
|
|||
|
|
FAlbaran.CODIGO_POSTAL := FDireccion.CODIGO_POSTAL;
|
|||
|
|
FAlbaran.TELEFONO := FDireccion.TELEFONO;
|
|||
|
|
FAlbaran.IMPORTE_PORTE := FDireccion.PORTE;
|
|||
|
|
FAlbaran.PERSONA_CONTACTO := FDireccion.PERSONA_CONTACTO;
|
|||
|
|
end;
|
|||
|
|
EscribirTextoDireccion;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewDatosYSeleccionClienteAlbaran.ElegirPersonaContacto;
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
if Assigned(FPersonaContacto) then
|
|||
|
|
begin
|
|||
|
|
FAlbaran.Edit;
|
|||
|
|
FAlbaran.PERSONA_CONTACTO := FPersonaContacto.NOMBRE;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewDatosYSeleccionClienteAlbaran.EscribirTextoDireccion;
|
|||
|
|
var
|
|||
|
|
ACadena : String;
|
|||
|
|
begin
|
|||
|
|
ACadena := '';
|
|||
|
|
|
|||
|
|
if Assigned(FDireccion) then
|
|||
|
|
ACadena := Format('%s %s %s %s',
|
|||
|
|
[FDireccion.CALLE, FDireccion.POBLACION,
|
|||
|
|
FDireccion.CODIGO_POSTAL, FDireccion.PROVINCIA]);
|
|||
|
|
|
|||
|
|
memDireccion.Lines.Clear;
|
|||
|
|
memDireccion.Lines.Text := ACadena;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
|
|||
|
|
function TfrViewDatosYSeleccionClienteAlbaran.GetAlbaranCliente: IBizAlbaranCliente;
|
|||
|
|
begin
|
|||
|
|
Result := FAlbaran;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
|
|||
|
|
procedure TfrViewDatosYSeleccionClienteAlbaran.RefrescarDireccion;
|
|||
|
|
begin
|
|||
|
|
FDireccion := FDireccionesController.Nuevo;
|
|||
|
|
|
|||
|
|
if (not FAlbaran.ID_DIRECCIONIsNull) and
|
|||
|
|
(FDireccionesController.Localizar(FCliente.Direcciones, FAlbaran.ID_DIRECCION)) then
|
|||
|
|
FDireccionesController.CopiarDireccion(FCliente.Direcciones, FDireccion)
|
|||
|
|
else
|
|||
|
|
FDireccionesController.CopiarDireccionFiscal(FCliente, FDireccion);
|
|||
|
|
|
|||
|
|
EscribirTextoDireccion;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewDatosYSeleccionClienteAlbaran.SetAlbaranCliente(
|
|||
|
|
const Value: IBizAlbaranCliente);
|
|||
|
|
begin
|
|||
|
|
FAlbaran := Value;
|
|||
|
|
if Assigned(FAlbaran) then
|
|||
|
|
begin
|
|||
|
|
dsAlbaran.DataTable := FAlbaran.DataTable;
|
|||
|
|
|
|||
|
|
FCliente := FAlbaran.Cliente;
|
|||
|
|
dsCliente.DataTable := FCliente.DataTable;
|
|||
|
|
|
|||
|
|
if not FCliente.DataTable.Active then
|
|||
|
|
FCliente.DataTable.Active := True;
|
|||
|
|
|
|||
|
|
RefrescarDireccion;
|
|||
|
|
end
|
|||
|
|
else begin
|
|||
|
|
dsAlbaran.DataTable := NIL;
|
|||
|
|
FCliente := NIL;
|
|||
|
|
FDireccion := NIL;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
end.
|