2007-11-16 20:58:56 +00:00
unit uViewDireccionEntregaAlbaranProv;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, uBizAlbaranesProveedor, cxGraphics, dxLayoutControl, cxMemo,
cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit,
cxDBLookupEdit, cxDBLookupComboBox, StdCtrls, cxControls, DB, uDADataTable,
ActnList, uBizAlmacenes, uAlmacenesController, uAlbaranesProveedorController,
2008-08-27 16:48:20 +00:00
Buttons, uDAInterfaces, uBizObras, uObrasController;
2007-11-16 20:58:56 +00:00
type
IViewDireccionEntregaAlbaranProv = interface( IViewBase)
[ '{20124A28-C343-4A70-8016-06DDF92C75E7}' ]
function GetAlbaranProveedor: IBizAlbaranProveedor;
procedure SetAlbaranProveedor( const Value: IBizAlbaranProveedor) ;
property AlbaranProveedor: IBizAlbaranProveedor read GetAlbaranProveedor write SetAlbaranProveedor;
end ;
TfrViewDireccionEntregaAlbaranProv = class( TfrViewBase, IViewDireccionEntregaAlbaranProv)
dxLayoutControl1: TdxLayoutControl;
rdxDestino1: TRadioButton;
rdxDestino2: TRadioButton;
cbLista: TcxDBLookupComboBox;
dxLayoutGroup1: TdxLayoutGroup;
dxLayoutItem1: TdxLayoutItem;
dxLayoutControl1Item3: TdxLayoutItem;
dxLayoutControl1Item2: TdxLayoutItem;
ActionList1: TActionList;
actLista: TAction;
actOtro: TAction;
dsAlbaran: TDADataSource;
dsAlmacenes: TDADataSource;
dxLayoutControl1Item1: TdxLayoutItem;
bModificar: TBitBtn;
dxLayoutControl1Item4: TdxLayoutItem;
txtDireccion: TStaticText;
2008-07-31 15:42:04 +00:00
dxLayoutControl1Item5: TdxLayoutItem;
cbListaObras: TcxDBLookupComboBox;
dxLayoutControl1Item6: TdxLayoutItem;
RadioButton1: TRadioButton;
dsObras: TDADataSource;
actListaObras: TAction;
2007-11-16 20:58:56 +00:00
procedure actListaExecute( Sender: TObject) ;
procedure actOtroExecute( Sender: TObject) ;
procedure cbListaPropertiesValidate( Sender: TObject; var DisplayValue: Variant ; var ErrorText: TCaption; var Error: Boolean ) ;
procedure bModificarClick( Sender: TObject) ;
procedure txtDireccionDblClick( Sender: TObject) ;
2008-07-31 15:42:04 +00:00
procedure cbListaObrasPropertiesValidate( Sender: TObject;
var DisplayValue: Variant ; var ErrorText: TCaption; var Error: Boolean ) ;
procedure actListaObrasExecute( Sender: TObject) ;
2007-11-16 20:58:56 +00:00
protected
FAlmacenesController : IAlmacenesController;
FAlmacenes: IBizAlmacen;
2008-07-31 15:42:04 +00:00
FObrasController : IObrasController;
FObras: IBizObra;
2007-11-16 20:58:56 +00:00
FAlbaran : IBizAlbaranProveedor;
FController : IAlbaranesProveedorController;
function GetAlbaranProveedor: IBizAlbaranProveedor;
procedure SetAlbaranProveedor( const Value: IBizAlbaranProveedor) ;
procedure CambioDireccionAlmacen;
2008-07-31 15:42:04 +00:00
procedure CambioDireccionObra;
2007-11-16 20:58:56 +00:00
procedure RefrescarDireccion;
procedure SetReadOnly( Value: Boolean ) ; override ;
public
property AlbaranProveedor: IBizAlbaranProveedor read GetAlbaranProveedor write SetAlbaranProveedor;
constructor Create( AOwner: TComponent) ; override ;
destructor Destroy; override ;
end ;
implementation
{$R *.dfm}
uses
2008-08-26 11:11:43 +00:00
uEditorRegistryUtils, uCustomView, uBizInventario;
2007-11-16 20:58:56 +00:00
procedure TfrViewDireccionEntregaAlbaranProv. actListaExecute( Sender: TObject) ;
begin
actLista. Checked : = True ;
RefrescarDireccion;
end ;
2008-07-31 15:42:04 +00:00
procedure TfrViewDireccionEntregaAlbaranProv. actListaObrasExecute( Sender: TObject) ;
begin
actListaObras. Checked : = True ;
RefrescarDireccion;
end ;
2007-11-16 20:58:56 +00:00
procedure TfrViewDireccionEntregaAlbaranProv. actOtroExecute( Sender: TObject) ;
begin
actOtro. Checked : = True ;
// memDireccion.Enabled := True;
if Assigned( FAlbaran) then
begin
FController. VerDireccionEntrega( FAlbaran) ;
if ( FAlbaran. ID_ALMACEN > 0 ) then
begin
FAlbaran. Edit;
FAlbaran. ID_ALMACEN : = 0 ;
end ;
end ;
RefrescarDireccion;
end ;
procedure TfrViewDireccionEntregaAlbaranProv. bModificarClick( Sender: TObject) ;
begin
inherited ;
actOtro. Execute;
end ;
procedure TfrViewDireccionEntregaAlbaranProv. CambioDireccionAlmacen;
begin
if Assigned( FAlbaran)
and Assigned( FAlmacenes) then
begin
FAlbaran. Edit;
FAlbaran. CALLE : = FAlmacenes. CALLE;
FAlbaran. POBLACION : = FAlmacenes. POBLACION;
FAlbaran. POBLACION : = FAlmacenes. POBLACION;
FAlbaran. PROVINCIA : = FAlmacenes. PROVINCIA;
FAlbaran. CODIGO_POSTAL : = FAlmacenes. CODIGO_POSTAL;
FAlbaran. PERSONA_CONTACTO : = FAlmacenes. PERSONA_CONTACTO;
FAlbaran. TELEFONO : = FAlmacenes. TELEFONO;
RefrescarDireccion;
end ;
end ;
2008-07-31 15:42:04 +00:00
procedure TfrViewDireccionEntregaAlbaranProv. CambioDireccionObra;
begin
if Assigned( FAlbaran) and Assigned( FObras) then
begin
FAlbaran. Edit;
FAlbaran. CALLE : = FObras. CALLE;
FAlbaran. POBLACION : = FObras. POBLACION;
FAlbaran. POBLACION : = FObras. POBLACION;
FAlbaran. PROVINCIA : = FObras. PROVINCIA;
FAlbaran. CODIGO_POSTAL : = FObras. CODIGO_POSTAL;
RefrescarDireccion;
end ;
end ;
procedure TfrViewDireccionEntregaAlbaranProv. cbListaObrasPropertiesValidate(
Sender: TObject; var DisplayValue: Variant ; var ErrorText: TCaption;
var Error: Boolean ) ;
begin
inherited ;
if Assigned( FAlbaran) and Assigned( FObras) and ( FAlbaran. ID_ALMACEN < > FObras. ID) then
CambioDireccionObra;
end ;
2007-11-16 20:58:56 +00:00
procedure TfrViewDireccionEntregaAlbaranProv. cbListaPropertiesValidate(
Sender: TObject; var DisplayValue: Variant ; var ErrorText: TCaption;
var Error: Boolean ) ;
begin
if Assigned( FAlbaran) and Assigned( FAlmacenes)
and ( FAlbaran. ID_ALMACEN < > FAlmacenes. ID) then
CambioDireccionAlmacen;
end ;
constructor TfrViewDireccionEntregaAlbaranProv. Create( AOwner: TComponent) ;
begin
inherited ;
FController : = TAlbaranesProveedorController. Create;
FAlmacenesController : = TAlmacenesController. Create;
FAlmacenes : = FAlmacenesController. BuscarTodos;
FAlmacenes. DataTable. Active : = True ;
dsAlmacenes. DataTable : = FAlmacenes. DataTable;
2008-07-31 15:42:04 +00:00
FObrasController : = TObrasController. Create;
FObras : = FObrasController. BuscarTodos;
FObras. DataTable. Active : = True ;
dsObras. DataTable : = FObras. DataTable;
2007-11-16 20:58:56 +00:00
end ;
destructor TfrViewDireccionEntregaAlbaranProv. Destroy;
begin
2008-07-31 15:42:04 +00:00
cbListaObras. Properties. OnValidate : = Nil ;
2007-11-16 20:58:56 +00:00
cbLista. Properties. OnValidate : = Nil ;
2008-07-31 15:42:04 +00:00
2007-11-16 20:58:56 +00:00
FAlmacenesController : = Nil ;
FAlmacenes : = Nil ;
2008-07-31 15:42:04 +00:00
FObrasController : = Nil ;
FObras : = Nil ;
2007-11-16 20:58:56 +00:00
FController : = NIL ;
inherited ;
end ;
function TfrViewDireccionEntregaAlbaranProv. GetAlbaranProveedor: IBizAlbaranProveedor;
begin
Result : = FAlbaran;
end ;
procedure TfrViewDireccionEntregaAlbaranProv. RefrescarDireccion;
begin
txtDireccion. Caption : = '' ;
if Assigned( FAlbaran) then
begin
if ( actOtro. Checked) then
begin
cbLista. Enabled : = False ;
cbLista. Text : = '' ;
2008-07-31 15:42:04 +00:00
cbListaObras. Enabled : = False ;
cbListaObras. Text : = '' ;
2007-11-16 20:58:56 +00:00
txtDireccion. Enabled : = True ;
txtDireccion. Caption : = FAlbaran. CALLE;
txtDireccion. Caption : = txtDireccion. Caption + #13 #10 + FAlbaran. CODIGO_POSTAL + ' ' + FAlbaran. POBLACION;
txtDireccion. Caption : = txtDireccion. Caption + #13 #10 + FAlbaran. PROVINCIA;
bModificar. Enabled : = True ;
end
2008-07-31 15:42:04 +00:00
else if ( actLista. Checked) then
begin
2007-11-16 20:58:56 +00:00
txtDireccion. Enabled : = False ;
2008-07-31 15:42:04 +00:00
cbListaObras. Enabled : = False ;
cbListaObras. Text : = '' ;
2007-11-16 20:58:56 +00:00
cbLista. Enabled : = True ;
cbLista. DroppedDown : = True ;
2008-07-31 15:42:04 +00:00
bModificar. Enabled : = False ;
end
else begin
txtDireccion. Enabled : = False ;
cbLista. Enabled : = False ;
cbLista. Text : = '' ;
cbListaObras. Enabled : = True ;
cbListaObras. DroppedDown : = True ;
bModificar. Enabled : = False ;
2007-11-16 20:58:56 +00:00
end ;
end ;
end ;
procedure TfrViewDireccionEntregaAlbaranProv. SetAlbaranProveedor( const Value: IBizAlbaranProveedor) ;
begin
cbLista. Properties. OnValidate : = NIL ;
2008-07-31 15:42:04 +00:00
cbListaObras. Properties. OnValidate : = NIL ;
2007-11-16 20:58:56 +00:00
dsAlbaran. DataTable : = nil ;
FAlbaran : = Value;
if Assigned( FAlbaran) then
begin
dsAlbaran. DataTable : = FAlbaran. DataTable;
cbLista. Properties. OnValidate : = cbListaPropertiesValidate;
2008-07-31 15:42:04 +00:00
cbListaObras. Properties. OnValidate : = cbListaPropertiesValidate;
2007-11-16 20:58:56 +00:00
{ Para poder inicializar con el almac<EFBFBD> n por defecto en el caso de un
2008-08-26 10:00:03 +00:00
albar<EFBFBD> n nuevo, antes hay que comprobar que la direcci<EFBFBD> n alternativa
2007-11-16 20:58:56 +00:00
est<EFBFBD> vacia porque puede ser que el albar<EFBFBD> n se haya generado
autom<EFBFBD> ticamente a partir de un pedido a proveedor con una direcci<EFBFBD> n
que no es un almac<EFBFBD> n.
}
if ( FAlbaran. EsNuevo) and
( ( Length( FAlbaran. CALLE) = 0 ) and
( Length( FAlbaran. CODIGO_POSTAL) = 0 ) and
( Length( FAlbaran. POBLACION) = 0 ) and
( Length( FAlbaran. PROVINCIA) = 0 ) ) then
2008-08-04 12:01:22 +00:00
if FAlbaran. TIPO_ALMACEN = CTE_INV_ALMACEN then
CambioDireccionAlmacen
else
CambioDireccionObra;
if ( FAlbaran. ID_ALMACEN > 0 ) then
begin
if FAlbaran. TIPO_ALMACEN = CTE_INV_ALMACEN then
begin
actLista. Checked : = True ;
cbLista. EditValue : = FAlbaran. ID_ALMACEN; //No quitar, si no lo asignamos asi cuando el objeto albaran viene creado a partir de un pedido no coge bien el almacen
end
else
begin
actListaObras. Checked : = True ;
cbListaObras. EditValue : = FAlbaran. ID_ALMACEN; //No quitar, si no lo asignamos asi cuando el objeto albaran viene creado a partir de un pedido no coge bien el almacen
end ;
end
else
if not ( FAlbaran. EsNuevo) then
actOtro. Checked : = True ;
2007-11-16 20:58:56 +00:00
RefrescarDireccion;
end ;
end ;
procedure TfrViewDireccionEntregaAlbaranProv. SetReadOnly( Value: Boolean ) ;
begin
inherited ;
2008-09-23 15:28:46 +00:00
if ( csLoading in Self. ComponentState) then
Exit;
rdxDestino1. Enabled : = not ReadOnly ;
rdxDestino2. Enabled : = not ReadOnly ;
RadioButton1. Enabled : = not ReadOnly ;
2007-11-16 20:58:56 +00:00
end ;
procedure TfrViewDireccionEntregaAlbaranProv. txtDireccionDblClick( Sender: TObject) ;
begin
inherited ;
actOtro. Execute;
end ;
end .