2007-11-28 17:40:31 +00:00
unit uEditorCliente;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
uEditorContacto, ImgList, PngImageList, StdActns, ActnList, TBX,
TB2Item, TB2Dock, TB2Toolbar, ComCtrls, JvExControls, JvComponent,
JvNavigationPane, uViewCliente, uBizContactos, DB, uDADataTable,
JvFormAutoSize, uDAScriptingProvider, uDACDSDataTable, uCustomView,
uViewBase, JvAppStorage, JvAppRegistryStorage,
JvFormPlacement, ExtCtrls, pngimage, JvComponentBase, uViewContacto, StdCtrls,
2008-05-23 14:55:02 +00:00
uIEditorCliente, TBXStatusBars, JvExComCtrls, JvStatusBar,
2007-11-28 17:40:31 +00:00
uViewDireccionesEntrega, uViewDetallesGenerico, uViewClienteDescuentos,
uViewContactoDatosBancarios, dxLayoutLookAndFeels,
2007-12-20 09:26:11 +00:00
uViewClienteDatosComerciales, uDAInterfaces, uViewSubCuentaContacto;
2007-11-28 17:40:31 +00:00
type
TfEditorCliente = class( TfEditorContacto, IEditorCliente)
frViewCliente1: TfrViewCliente;
pagDirecciones: TTabSheet;
frViewDireccionesEntrega1: TfrViewDireccionesEntrega;
actGruposCliente: TAction;
TBXItem7: TTBXItem;
pagDescuentos: TTabSheet;
frViewClienteDescuentos1: TfrViewClienteDescuentos;
pagDatosComerciales: TTabSheet;
frViewClienteDatosComerciales1: TfrViewClienteDatosComerciales;
2007-12-20 09:26:11 +00:00
pagContabilidad: TTabSheet;
frViewSubCuentaContacto1: TfrViewSubCuentaContacto;
2007-11-28 17:40:31 +00:00
procedure FormShow( Sender: TObject) ;
procedure actGruposClienteExecute( Sender: TObject) ;
protected
2008-03-19 16:51:25 +00:00
procedure GuardarInterno; override ;
2007-11-28 17:40:31 +00:00
procedure EliminarInterno; override ;
procedure SetContacto( const Value: IBizContacto) ; override ;
public
constructor Create( AOwner: TComponent) ; override ;
procedure PonerTitulos( const ATitulo: string = '' ) ; override ;
end ;
implementation
2008-02-29 18:10:08 +00:00
{$R *.dfm}
{$INCLUDE ..\..\..\FactuGES.inc}
2007-11-28 17:40:31 +00:00
uses
2008-03-19 16:51:25 +00:00
uEditorItem, uEditorBase, uDataModuleUsuarios, uEditorDBItem, cxDBEdit,
2008-04-02 10:56:24 +00:00
uGruposClienteController, uBizGruposCliente, uEditorDBBase, uDialogUtils,
uClientesController;
2007-11-28 17:40:31 +00:00
procedure TfEditorCliente. actGruposClienteExecute( Sender: TObject) ;
var
AGruposController : IGruposClienteController;
AGrupos : IBizGrupoCliente;
begin
AGruposController : = TGruposClienteController. Create;
try
AGrupos : = ( AGruposController. BuscarTodos as IBizGrupoCliente) ;
AGruposController. VerTodos( AGrupos) ;
finally
AGrupos : = NIL ;
AGruposController : = NIL ;
end ;
end ;
constructor TfEditorCliente. Create( AOwner: TComponent) ;
begin
inherited ;
ViewContacto : = frViewCliente1;
2008-02-29 18:10:08 +00:00
{$IFDEF CONTABILIDAD}
pagContabilidad. TabVisible : = true ;
{$ELSE}
pagContabilidad. TabVisible : = false ;
{$ENDIF}
2007-11-28 17:40:31 +00:00
end ;
procedure TfEditorCliente. EliminarInterno;
begin
if ( ShowConfirmMessage( '<27> Desea borrar este cliente?' , '' ) = IDYES) then
inherited ;
end ;
procedure TfEditorCliente. FormShow( Sender: TObject) ;
begin
inherited ;
pgPaginas. ActivePageIndex : = 0 ;
2008-02-29 18:10:08 +00:00
2007-11-28 17:40:31 +00:00
end ;
2008-03-19 16:51:25 +00:00
procedure TfEditorCliente. GuardarInterno;
begin
2008-04-02 10:56:24 +00:00
//Si tiene al menos una subcuenta asociada se pone el flag el cliente a 1, asi podremos poner un icono en la lista de clientes
//que tengan subcuenta asociada, y comprobar si al modificar no tene ya seleccionada una subcuenta en tal caso la crearemos si el
//usuario lo desea.
if ( ( Contacto as IBizCliente) . SubCuentas. RecordCount < > 0 ) then
( Controller as IClientesController) . SetTieneSubCuenta( Contacto as IBizCliente, True )
else
( Controller as IClientesController) . SetTieneSubCuenta( Contacto as IBizCliente, False ) ;
//Evitamos que cada vez que se a<> ada un cliente te pregunta por defecto se crea y punto.
//Otro caso es al modificar que si que hay que preguntar por si acaso desea asignar el manualmente una subcuenta existente
2008-03-19 16:51:25 +00:00
if not Contacto. EsNuevo
2008-07-24 08:55:09 +00:00
and ( frViewSubCuentaContacto1. cbIgnorarContabilidad. EditValue = 0 )
and ( ( Contacto as IBizCliente) . TIENE_SUBCUENTA = 0 ) then
2008-04-02 10:56:24 +00:00
if ( ShowConfirmMessage( 'Confirmaci<63> n de subcuenta' , 'El cliente no tiene asignada ninguna subcuenta contable.' + #10 #13 + '<27> Desea crear una nueva subcuenta para el cliente?' ) = IDNO) then
( Controller as IClientesController) . SetIgnorarContabilidad( Contacto as IBizCliente, True ) ;
2008-03-19 16:51:25 +00:00
inherited ;
end ;
2007-11-28 17:40:31 +00:00
procedure TfEditorCliente. PonerTitulos( const ATitulo: string ) ;
var
FTitulo : String ;
begin
if Assigned( Contacto) then
begin
if Contacto. EsNuevo then
FTitulo : = 'Nuevo cliente'
else
FTitulo : = 'Cliente' ;
end ;
inherited PonerTitulos( FTitulo) ;
if ( Contacto as IBizCliente) . BLOQUEADO = 1 then
JvNavPanelHeader. Caption : = JvNavPanelHeader. Caption + ' (Bloqueado)' ;
end ;
procedure TfEditorCliente. SetContacto( const Value: IBizContacto) ;
begin
inherited ;
if Assigned( Contacto) then
begin
frViewDireccionesEntrega1. dsDetalles. DataTable : = Contacto. Direcciones. DataTable;
frViewClienteDescuentos1. dsDetalles. DataTable : = ( Contacto as IBizCliente) . Descuentos. DataTable;
frViewClienteDatosComerciales1. Contacto : = Contacto;
2007-12-20 09:26:11 +00:00
frViewSubCuentaContacto1. Contacto : = Contacto;
2007-11-28 17:40:31 +00:00
end
else begin
frViewDireccionesEntrega1. dsDetalles. DataTable : = NIL ;
frViewClienteDescuentos1. dsDetalles. DataTable : = NIL ;
frViewClienteDatosComerciales1. Contacto : = NIL ;
2007-12-20 09:26:11 +00:00
frViewSubCuentaContacto1. Contacto : = NIL ;
2007-11-28 17:40:31 +00:00
end ;
end ;
end .