This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
LuisLeon_FactuGES/Codigo/Modulos/Remesas de cliente2/Views/uEditorRemesaCliente.pas
2007-06-12 14:12:46 +00:00

277 lines
8.3 KiB
ObjectPascal
Raw Blame History

unit uEditorRemesaCliente;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent,
uViewRemesaCliente, uBizRemesasCliente, JvNavigationPane, ActnList,
uEditorBase, StdActns, TB2Dock, TB2Toolbar, TBX, ImgList, PngImageList,
TB2Item, uEditorItem, DB, uDADataTable, uEditorDBBase, JvFormAutoSize,
uDAScriptingProvider, uDACDSDataTable, StdCtrls, pngimage, ExtCtrls,
TBXDkPanels, JvButton, AppEvnts, uCustomView, uViewBase,
JvAppStorage, JvAppRegistryStorage, JvFormPlacement, JvComponentBase,
uViewRemesasCliente, uIEditorRemesaCliente, uRemesasClienteController, JvExComCtrls,
JvStatusBar, dxLayoutLookAndFeels, uViewGridBase, uViewGrid,
uViewRecibosRemesaCliente;
type
TfEditorRemesaCliente = class(TfEditorDBItem, IEditorRemesaCliente)
dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList;
dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel;
frViewRemesaCliente1: TfrViewRemesaCliente;
pagRecibos: TTabSheet;
frViewRecibosRemesaCliente1: TfrViewRecibosRemesaCliente;
TBXToolbar1: TTBXToolbar;
TBXItem7: TTBXItem;
TBXItem33: TTBXItem;
actAnadirRecibos: TAction;
actEliminarRecibo: TAction;
procedure FormShow(Sender: TObject);
procedure dsDataTableDataChange(Sender: TObject; Field: TField);
procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction);
procedure actAnadirRecibosExecute(Sender: TObject);
procedure actEliminarReciboExecute(Sender: TObject);
procedure JvFormStorageRestorePlacement(Sender: TObject);
procedure JvFormStorageSavePlacement(Sender: TObject);
private
FHayCambios: Boolean;
procedure setHayCambios(const Value: Boolean);
property HayCambios: Boolean read FHayCambios write setHayCambios;
protected
FController : IRemesasClienteController;
FRemesaCliente: IBizRemesaCliente;
FViewRemesaCliente : IViewRemesaCliente;
function GetController : IRemesasClienteController;
procedure SetController (const Value : IRemesasClienteController); virtual;
function GetRemesaCliente: IBizRemesaCliente; virtual;
procedure SetRemesaCliente(const Value: IBizRemesaCliente); virtual;
function GetViewRemesaCliente: IViewRemesaCliente;
procedure SetViewRemesaCliente(const Value: IViewRemesaCliente);
property ViewRemesaCliente: IViewRemesaCliente read GetViewRemesaCliente write SetViewRemesaCliente;
procedure GuardarInterno; override;
procedure EliminarInterno; override;
procedure PonerTitulos(const ATitulo: string = ''); override;
function GetModified: Boolean; override;
procedure ActualizarEstadoEditor; override;
public
property RemesaCliente: IBizRemesaCliente read GetRemesaCliente write SetRemesaCliente;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
{$R *.dfm}
uses
uDataTableUtils, cxControls, uDialogUtils, uCustomEditor,
uDataModuleRemesasCliente, uDataModuleBase, uBizFamilias, uFamiliasController;
{
******************************* TfEditorRemesaCliente *******************************
}
function TfEditorRemesaCliente.GetRemesaCliente: IBizRemesaCliente;
begin
Result := FRemesaCliente;
end;
function TfEditorRemesaCliente.GetController: IRemesasClienteController;
begin
Result := FController;
end;
function TfEditorRemesaCliente.GetModified: Boolean;
var
bCambiado : Boolean;
begin
bCambiado := inherited GetModified;
//Si no hay cambios miramos que no los halla en la lista de recibos
if not bCambiado then
bCambiado := FHayCambios;
Result := bCambiado;
end;
function TfEditorRemesaCliente.GetViewRemesaCliente: IViewRemesaCliente;
begin
Result := FViewRemesaCliente;
end;
procedure TfEditorRemesaCliente.GuardarInterno;
var
bEsNuevo : Boolean;
begin
inherited;
bEsNuevo := False;
ShowHourglassCursor;
//frViewDetallesFacturaCliente1.SaveGridStatus; // Para guardar estado del grid
// frViewDetallesFacturaCliente1.BeginUpdate; // Para que no se mueva el foco
try
bEsNuevo := FRemesaCliente.EsNuevo;
FController.Guardar(FRemesaCliente);
HayCambios := False;
finally
// frViewDetallesFacturaCliente1.EndUpdate;
//frViewDetallesFacturaCliente1.RestoreGridStatus;
HideHourglassCursor;
end;
if bEsNuevo then
ShowInfoMessage('La remesa de cobro se ha dado de alta con el c<>digo ' + FRemesaCliente.REFERENCIA);
Modified := False;
end;
procedure TfEditorRemesaCliente.JvFormStorageRestorePlacement(Sender: TObject);
begin
inherited;
frViewRecibosRemesaCliente1.RestoreFromRegistry(JvAppRegistryStorage.Root);
end;
procedure TfEditorRemesaCliente.JvFormStorageSavePlacement(Sender: TObject);
begin
inherited;
frViewRecibosRemesaCliente1.StoreToRegistry(JvAppRegistryStorage.Root);
end;
procedure TfEditorRemesaCliente.PonerTitulos(const ATitulo: string);
var
FTitulo : String;
begin
if Assigned(RemesaCliente) then
begin
if RemesaCliente.EsNuevo then
FTitulo := 'Nueva remesa de cobro'
else
FTitulo := 'Remesa de cobro';
end;
inherited PonerTitulos(FTitulo);
end;
procedure TfEditorRemesaCliente.SetRemesaCliente(const Value: IBizRemesaCliente);
begin
FRemesaCliente := Value;
dsDataTable.DataTable := FRemesaCliente.DataTable;
if Assigned(FViewRemesaCliente) and Assigned(RemesaCliente) then
begin
FViewRemesaCliente.RemesaCliente := RemesaCliente;
frViewRecibosRemesaCliente1.Recibos := FRemesaCliente.Recibos;
end;
end;
procedure TfEditorRemesaCliente.SetController(const Value: IRemesasClienteController);
begin
FController := Value;
if Assigned(FController) then
(ViewRemesaCliente as IViewRemesaCliente).Controller := (FController as IRemesasClienteController);
end;
procedure TfEditorRemesaCliente.setHayCambios(const Value: Boolean);
begin
FHayCambios := Value;
ActualizarEstadoEditor;
end;
procedure TfEditorRemesaCliente.SetViewRemesaCliente(const Value: IViewRemesaCliente);
begin
FViewRemesaCliente := Value;
if Assigned(FViewRemesaCliente) and Assigned(RemesaCliente) then
FViewRemesaCliente.RemesaCliente := RemesaCliente;
end;
procedure TfEditorRemesaCliente.FormShow(Sender: TObject);
begin
inherited;
HayCambios := False;
if not Assigned(FViewRemesaCliente) then
raise Exception.Create('No hay ninguna vista asignada');
if not Assigned(RemesaCliente) then
raise Exception.Create('No hay ning<6E>n almac<61>n asignado');
RemesaCliente.DataTable.Active := True;
end;
destructor TfEditorRemesaCliente.Destroy;
begin
// Utilizar mejor OnClose;
inherited;
end;
procedure TfEditorRemesaCliente.actAnadirRecibosExecute(Sender: TObject);
begin
inherited;
HayCambios := FController.ElegirRecibosCliente(RemesaCliente) OR HayCambios;
end;
procedure TfEditorRemesaCliente.actEliminarReciboExecute(Sender: TObject);
begin
inherited;
FController.EliminarReciboCliente(RemesaCliente);
HayCambios := True;
end;
procedure TfEditorRemesaCliente.ActualizarEstadoEditor;
begin
inherited;
if not imgStatus.Visible then
begin
if (HayCambios) then
begin
StatusBar.Panels[0].Text := ' Se han producido cambios';
imgStatus.Visible := True;
end
end;
end;
constructor TfEditorRemesaCliente.Create(AOwner: TComponent);
begin
inherited;
pgPaginas.ActivePageIndex := 0;
FViewRemesaCliente := frViewRemesaCliente1;
end;
procedure TfEditorRemesaCliente.CustomEditorClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
dsDataTable.DataTable := NIL;
FViewRemesaCliente := NIL;
FRemesaCliente := NIL;
end;
procedure TfEditorRemesaCliente.dsDataTableDataChange(Sender: TObject;
Field: TField);
begin
inherited;
if Assigned(FRemesaCliente) and (not (FRemesaCliente.DataTable.Fetching) or
not (FRemesaCliente.DataTable.Opening) or not (FRemesaCliente.DataTable.Closing)) then
PonerTitulos;
end;
procedure TfEditorRemesaCliente.EliminarInterno;
begin
if (Application.MessageBox('<27>Desea borrar esta remesa de cobro?', 'Atenci<63>n', MB_YESNO) = IDYES) then
begin
inherited;
if not FController.Eliminar(FRemesaCliente) then
actRefrescar.Execute;
end;
end;
end.