git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@1016 0c75b7a4-871f-7646-8a2f-f78d34cc349f
190 lines
5.1 KiB
ObjectPascal
190 lines
5.1 KiB
ObjectPascal
unit uViewAlmacen;
|
||
|
||
interface
|
||
|
||
uses
|
||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||
Dialogs, uViewBase, ExtCtrls, StdCtrls, Buttons, DB, uDADataTable,
|
||
DBCtrls, Grids, DBGrids, uBizAlmacenes, Mask, ComCtrls, uCustomView,
|
||
JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit,
|
||
cxDBEdit, dxLayoutControl, uDAInterfaces, cxGraphics, cxMaskEdit, cxDropDownEdit;
|
||
|
||
type
|
||
IViewAlmacen = interface(IViewBase)
|
||
['{F44F8AEF-CB9C-44D5-93DA-53D6AB6A2D29}']
|
||
function GetAlmacen: IBizAlmacen;
|
||
procedure SetAlmacen(const Value: IBizAlmacen);
|
||
property Almacen: IBizAlmacen read GetAlmacen write SetAlmacen;
|
||
end;
|
||
|
||
TfrViewAlmacen = class(TfrViewBase, IViewAlmacen)
|
||
DADataSource: TDADataSource;
|
||
ePersonaContacto: TcxDBTextEdit;
|
||
eTlfTelefono: TcxDBTextEdit;
|
||
eTlfMovil: TcxDBTextEdit;
|
||
eFax: TcxDBTextEdit;
|
||
dxLayoutControlAlmacenGroup_Root: TdxLayoutGroup;
|
||
dxLayoutControlAlmacen: TdxLayoutControl;
|
||
dxLayoutControlAlmacenGroup1: TdxLayoutGroup;
|
||
dxLayoutControlAlmacenItem3: TdxLayoutItem;
|
||
eNombre: TcxDBTextEdit;
|
||
dxLayoutControlAlmacenItem4: TdxLayoutItem;
|
||
dxLayoutControlAlmacenGroup2: TdxLayoutGroup;
|
||
dxLayoutControlAlmacenItem1: TdxLayoutItem;
|
||
dxLayoutControlAlmacenItem5: TdxLayoutItem;
|
||
dxLayoutControlAlmacenItem6: TdxLayoutItem;
|
||
dxLayoutControlAlmacenGroup3: TdxLayoutGroup;
|
||
dxLayoutControlAlmacenGroup4: TdxLayoutGroup;
|
||
dxLayoutControlAlmacenItem10: TdxLayoutItem;
|
||
eCalle: TcxDBTextEdit;
|
||
dxLayoutControlAlmacenItem2: TdxLayoutItem;
|
||
cbPoblacion: TcxDBComboBox;
|
||
dxLayoutControlAlmacenItem7: TdxLayoutItem;
|
||
eCodigoPostal: TcxDBTextEdit;
|
||
dxLayoutControlAlmacenItem9: TdxLayoutItem;
|
||
cbProvincia: TcxDBComboBox;
|
||
dxLayoutControlAlmacenGroup6: TdxLayoutGroup;
|
||
procedure cbProvinciaPropertiesInitPopup(Sender: TObject);
|
||
procedure cbPoblacionPropertiesInitPopup(Sender: TObject);
|
||
protected
|
||
FAlmacen: IBizAlmacen;
|
||
FProvincias : TStringList;
|
||
FIDProvincia : Integer; //Almacenar<61> la provincia que hay seleccionada para no cargar las poblaciones si no es necesario
|
||
FPoblaciones : TStringList;
|
||
procedure CargarProvincias;
|
||
procedure CargarPoblaciones;
|
||
function GetAlmacen: IBizAlmacen;
|
||
procedure SetAlmacen(const Value: IBizAlmacen);
|
||
public
|
||
constructor Create(AOwner : TComponent); override;
|
||
destructor Destroy;
|
||
property Almacen: IBizAlmacen read GetAlmacen write SetAlmacen;
|
||
end;
|
||
|
||
implementation
|
||
|
||
uses
|
||
uDataModuleAlmacenes, uProvinciasPoblacionesController, uStringsUtils;
|
||
|
||
|
||
{$R *.dfm}
|
||
|
||
{ TfrViewAlmacenes }
|
||
|
||
{
|
||
******************************* TfrViewAlmacenes ********************************
|
||
}
|
||
|
||
procedure TfrViewAlmacen.CargarPoblaciones;
|
||
var
|
||
i : integer;
|
||
|
||
begin
|
||
if (FIDProvincia <> StrToInt(FProvincias.Values[cbProvincia.Text])) then
|
||
Begin
|
||
FIDProvincia := StrToInt(FProvincias.Values[cbProvincia.Text]);
|
||
|
||
with TProvinciasPoblacionesController.Create do
|
||
try
|
||
FPoblaciones := DarListaPoblaciones(FIDProvincia);
|
||
|
||
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;
|
||
end;
|
||
|
||
procedure TfrViewAlmacen.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 TfrViewAlmacen.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 TfrViewAlmacen.cbProvinciaPropertiesInitPopup(Sender: TObject);
|
||
begin
|
||
ShowHourglassCursor;
|
||
try
|
||
if not Assigned(FProvincias) then
|
||
CargarProvincias;
|
||
finally
|
||
HideHourglassCursor;
|
||
end;
|
||
end;
|
||
|
||
constructor TfrViewAlmacen.Create(AOwner: TComponent);
|
||
begin
|
||
inherited;
|
||
FIDProvincia := 0;
|
||
FProvincias := NIL;
|
||
FPoblaciones := NIL;
|
||
end;
|
||
|
||
destructor TfrViewAlmacen.Destroy;
|
||
begin
|
||
if Assigned(FProvincias) then
|
||
FreeANDNIL(FProvincias);
|
||
|
||
if Assigned(FPoblaciones) then
|
||
FreeANDNIL(FPoblaciones);
|
||
end;
|
||
|
||
function TfrViewAlmacen.GetAlmacen: IBizAlmacen;
|
||
begin
|
||
Result := FAlmacen;
|
||
end;
|
||
|
||
procedure TfrViewAlmacen.SetAlmacen(const Value: IBizAlmacen);
|
||
begin
|
||
FAlmacen := Value;
|
||
if Assigned(FAlmacen) then
|
||
DADataSource.DataTable := FAlmacen.DataTable
|
||
else
|
||
DADataSource.DataTable := NIL;
|
||
end;
|
||
|
||
end.
|
||
|