git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@602 0c75b7a4-871f-7646-8a2f-f78d34cc349f
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.
|