Tecsitel_FactuGES2/Source/Modulos/Albaranes de cliente/Views/uViewDatosYSeleccionClienteAlbaran.pas

182 lines
5.5 KiB
ObjectPascal
Raw Blame History

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.