Tecsitel_FactuGES2/Source/Modulos/Albaranes de proveedor/Views/uEditorDireccionEntregaAlbaranProveedor.pas

203 lines
5.7 KiB
ObjectPascal

unit uEditorDireccionEntregaAlbaranProveedor;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls, Mask, DBCtrls, DB, uDADataTable,
cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit,
uIEditorDireccionEntregaAlbaranProveedor, uBizAlbaranesProveedor,
uDAInterfaces, cxGraphics, dxSkinsCore, dxSkinBlue, dxSkinCaramel,
dxSkinCoffee, dxSkinGlassOceans, dxSkiniMaginary, dxSkinLilian,
dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMoneyTwins,
dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green,
dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinSilver, dxSkinStardust,
dxSkinsDefaultPainters, dxSkinValentine, dxSkinXmas2008Blue, cxMaskEdit,
cxDropDownEdit;
type
TfEditorDireccionEntregaAlbaranProveedor = class(TForm, IEditorDireccionEntregaAlbaranProveedor)
OKBtn: TButton;
CancelBtn: TButton;
Bevel1: TBevel;
eDireccion: TDBEdit;
eCodigoPostal: TDBEdit;
Label1: TLabel;
Label4: TLabel;
dsDireccion: TDADataSource;
Label6: TLabel;
ePersonaContacto: TDBEdit;
Label7: TLabel;
eTelefono: TDBEdit;
Label3: TLabel;
cbProvincia: TcxDBComboBox;
Label2: TLabel;
cbPoblacion: TcxDBComboBox;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure cbProvinciaPropertiesInitPopup(Sender: TObject);
procedure cbPoblacionPropertiesInitPopup(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
pDireccion: String;
pPoblacion: String;
pProvincia: String;
pCodigoPostal: String;
pPersonaContacto: String;
pTelefono: String;
FProvincias : TStringList;
FPoblaciones : TStringList;
FAlbaran : IBizAlbaranProveedor;
function GetAlbaran: IBizAlbaranProveedor;
procedure SetAlbaran(const Value: IBizAlbaranProveedor);
procedure CargarProvincias;
procedure CargarPoblaciones;
public
property Albaran: IBizAlbaranProveedor read GetAlbaran write SetAlbaran;
end;
implementation
{$R *.dfm}
uses
uProvinciasPoblacionesController, uStringsUtils;
{ TfEditorDireccionEntrega }
procedure TfEditorDireccionEntregaAlbaranProveedor.CargarPoblaciones;
var
i : integer;
AID : Integer;
begin
AID := StrToInt(FProvincias.Values[cbProvincia.Text]);
with TProvinciasPoblacionesController.Create do
try
FPoblaciones := DarListaPoblaciones(AID);
with cbPoblacion.Properties.Items do
begin
BeginUpdate;
try
Clear;
for i := 0 to FPoblaciones.Count - 1 do
Add(FPoblaciones.Names[i]);
finally
EndUpdate;
end;
end;
finally
Free;
end;
end;
procedure TfEditorDireccionEntregaAlbaranProveedor.CargarProvincias;
var
i : integer;
begin
with TProvinciasPoblacionesController.Create do
try
FProvincias := DarListaProvincias;
with cbProvincia.Properties.Items do
begin
BeginUpdate;
try
Clear;
for i := 0 to FProvincias.Count - 1 do
Add(FProvincias.Names[i]);
finally
EndUpdate;
end;
end;
finally
Free;
end;
end;
procedure TfEditorDireccionEntregaAlbaranProveedor.cbPoblacionPropertiesInitPopup(
Sender: TObject);
begin
ShowHourglassCursor;
try
FreeANDNIL(FPoblaciones);
if not Assigned(FProvincias) then
CargarProvincias;
if not EsCadenaVacia(cbProvincia.Text) and
(FProvincias.IndexOfName(cbProvincia.Text) <> -1) then
CargarPoblaciones
finally
HideHourglassCursor;
end;
end;
procedure TfEditorDireccionEntregaAlbaranProveedor.cbProvinciaPropertiesInitPopup(
Sender: TObject);
begin
ShowHourglassCursor;
try
if not Assigned(FProvincias) then
CargarProvincias;
finally
HideHourglassCursor;
end;
end;
procedure TfEditorDireccionEntregaAlbaranProveedor.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//En el caso de cancelar se recuperan los valores iniciales
if (Self.ModalResult <> mrOk) and (dsDireccion.DataTable.State in dsEditModes) then
begin
eDireccion.Field.Value := pDireccion;
cbPoblacion.DataBinding.Field.Value := pPoblacion;
cbProvincia.DataBinding.Field.Value := pProvincia;
eCodigoPostal.Field.Value := pCodigoPostal;
ePersonaContacto.Field.Value := pPersonaContacto;
eTelefono.Field.Value := pTelefono;
end;
end;
procedure TfEditorDireccionEntregaAlbaranProveedor.FormCreate(Sender: TObject);
begin
FProvincias := NIL;
FPoblaciones := NIL;
end;
procedure TfEditorDireccionEntregaAlbaranProveedor.FormDestroy(Sender: TObject);
begin
if Assigned(FProvincias) then
FreeANDNIL(FProvincias);
if Assigned(FPoblaciones) then
FreeANDNIL(FPoblaciones);
end;
procedure TfEditorDireccionEntregaAlbaranProveedor.FormShow(Sender: TObject);
begin
//Guardamos los valores iniciales por si al final el usuario cancela
pDireccion := eDireccion.Text;
pPoblacion := cbPoblacion.Text;
pProvincia := cbProvincia.Text;
pCodigoPostal := eCodigoPostal.Text;
pPersonaContacto := ePersonaContacto.Text;
pTelefono := eTelefono.Text;
end;
function TfEditorDireccionEntregaAlbaranProveedor.GetAlbaran: IBizAlbaranProveedor;
begin
Result := FAlbaran;
end;
procedure TfEditorDireccionEntregaAlbaranProveedor.SetAlbaran(
const Value: IBizAlbaranProveedor);
begin
FAlbaran := Value;
if Assigned(FAlbaran) then
dsDireccion.DataTable := FAlbaran.DataTable
else
dsDireccion.DataTable := NIL;
end;
end.