2007-11-28 17:40:31 +00:00
unit uEditorProveedor;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
uEditorContacto, uCustomView, uViewBase, uViewContacto,
uViewProveedor, JvAppStorage, JvAppRegistryStorage, JvComponentBase,
JvFormPlacement, DB, uDADataTable, ImgList, PngImageList, StdActns, ActnList,
ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls,
JvComponent, JvNavigationPane,
uIEditorProveedor, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit,
cxSpinEdit, cxDBEdit, pngimage, TBXStatusBars, JvExComCtrls, JvStatusBar,
dxLayoutLookAndFeels, uViewContactoDatosBancarios, uBizContactos,
uViewProveedorDatosComerciales, uViewDetallesGenerico, uViewDireccionesEntrega,
2008-04-15 14:00:27 +00:00
uDAInterfaces, uViewSubCuentaContacto, StdCtrls, DBCtrls;
2007-11-28 17:40:31 +00:00
type
TfEditorProveedor = class( TfEditorContacto, IEditorProveedor)
frViewProveedor1: TfrViewProveedor;
pagDatosComerciales: TTabSheet;
frViewProveedorDatosComerciales1: TfrViewProveedorDatosComerciales;
pagDirecciones: TTabSheet;
frViewDireccionesEntrega1: TfrViewDireccionesEntrega;
actGruposProveedor: TAction;
2007-12-20 09:26:11 +00:00
PagContabilidad: TTabSheet;
frViewSubCuentaContacto1: TfrViewSubCuentaContacto;
2008-04-15 14:00:27 +00:00
rdTipoSubcuenta: TDBRadioGroup;
2007-11-28 17:40:31 +00:00
procedure actGruposProveedorExecute( Sender: TObject) ;
protected
2008-04-02 10:56:24 +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
{$R *.dfm}
2008-02-29 18:10:08 +00:00
{$INCLUDE ..\..\..\FactuGES.inc}
2007-11-28 17:40:31 +00:00
{ TfEditorProveedor }
uses
2008-04-02 10:56:24 +00:00
uDialogUtils, uGruposProveedorController, uBizGruposProveedor, uProveedoresController;
2007-11-28 17:40:31 +00:00
procedure TfEditorProveedor. actGruposProveedorExecute( Sender: TObject) ;
var
AGruposController : IGruposProveedorController;
AGrupos : IBizGrupoProveedor;
begin
AGruposController : = TGruposProveedorController. Create;
try
AGrupos : = ( AGruposController. BuscarTodos as IBizGrupoProveedor) ;
AGruposController. VerTodos( AGrupos) ;
finally
AGrupos : = NIL ;
AGruposController : = NIL ;
end ;
end ;
constructor TfEditorProveedor. Create( AOwner: TComponent) ;
begin
inherited ;
ViewContacto : = frViewProveedor1;
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 TfEditorProveedor. EliminarInterno;
begin
if ( ShowConfirmMessage( '<27> Desea borrar este proveedor?' , '' ) = IDYES) then
inherited ;
end ;
2008-03-26 18:31:29 +00:00
procedure TfEditorProveedor. 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 proveedores
//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 IBizProveedor) . SubCuentas. RecordCount < > 0 ) then
( Controller as IProveedoresController) . SetTieneSubCuenta( Contacto as IBizProveedor, True )
else
( Controller as IProveedoresController) . SetTieneSubCuenta( Contacto as IBizProveedor, False ) ;
2008-03-26 18:31:29 +00:00
2008-07-24 08:55:09 +00:00
( Contacto as IBizProveedor) . Edit;
2008-04-15 14:00:27 +00:00
( Contacto as IBizProveedor) . ES_ACREEDOR : = StrToInt( rdTipoSubcuenta. Value) ;
2008-04-02 10:56:24 +00:00
//Evitamos que cada vez que se a<> ada un proveedor 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-26 18:31:29 +00:00
if not Contacto. EsNuevo
2008-07-24 08:55:09 +00:00
and ( frViewSubCuentaContacto1. cbIgnorarContabilidad. EditValue = 0 )
and ( ( Contacto as IBizProveedor) . TIENE_SUBCUENTA = 0 ) then
2008-04-02 10:56:24 +00:00
if ( ShowConfirmMessage( 'Confirmaci<63> n de subcuenta' , 'El proveedor no tiene asignada ninguna subcuenta contable.' + #10 #13 + '<27> Desea crear una nueva subcuenta para el proveedor?' ) = IDNO) then
( Controller as IProveedoresController) . SetIgnorarContabilidad( Contacto as IBizProveedor, True ) ;
2008-03-26 18:31:29 +00:00
inherited ;
end ;
2007-11-28 17:40:31 +00:00
procedure TfEditorProveedor. PonerTitulos( const ATitulo: string ) ;
var
FTitulo : String ;
begin
if Assigned( Contacto) then
begin
if Contacto. EsNuevo then
FTitulo : = 'Nuevo proveedor'
else
FTitulo : = 'Proveedor' ;
end ;
inherited PonerTitulos( FTitulo) ;
end ;
procedure TfEditorProveedor. SetContacto( const Value: IBizContacto) ;
begin
inherited ;
if Assigned( Contacto) then
begin
frViewDireccionesEntrega1. dsDetalles. DataTable : = Contacto. Direcciones. DataTable;
2007-12-20 09:26:11 +00:00
frViewProveedorDatosComerciales1. Contacto : = Contacto;
frViewSubCuentaContacto1. Contacto : = Contacto;
2008-04-15 14:00:27 +00:00
if Contacto. EsNuevo then
rdTipoSubcuenta. ItemIndex : = 0 ;
2007-11-28 17:40:31 +00:00
end
else
begin
frViewProveedorDatosComerciales1. Contacto : = NIL ;
2007-12-20 09:26:11 +00:00
frViewDireccionesEntrega1. dsDetalles. DataTable : = NIL ;
frViewSubCuentaContacto1. Contacto : = NIL ;
2007-11-28 17:40:31 +00:00
end ;
end ;
end .