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/Source/Modulos/Remesas de cliente/Views/uEditorRemesaCliente.pas
david d53aa1db30 - Mejoras para adaptar el proyecto a funcionar sobre máquina virtual
- Utilizar enlaces externos a librerias de terceros
- Adaptar los scripts de compilación
- Limpieza de ficheros que no son necesarios guardar en el repositorio (dcp, librerias externas, output...)
- Incluir la generación de ficheros de norma 32 en las remesas de cliente.

git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@185 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2007-12-04 11:37:46 +00:00

363 lines
11 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,
cxCustomData,
uViewRemesasCliente, uIEditorRemesaCliente, uRemesasClienteController, JvExComCtrls,
JvStatusBar, dxLayoutLookAndFeels, uViewGridBase, uViewGrid,
uViewRecibosRemesaCliente, uViewTotales, uViewDetallesGenerico;
type
TfEditorRemesaCliente = class(TfEditorDBItem, IEditorRemesaCliente)
dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList;
dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel;
frViewRemesaCliente1: TfrViewRemesaCliente;
frViewTotales1: TfrViewTotales;
frViewRecibosRemesaCliente1: TfrViewRecibosRemesaCliente;
actNorma19: TAction;
TBXSubmenuItem2: TTBXSubmenuItem;
TBXItem7: TTBXItem;
TBXItem33: TTBXItem;
TBXSeparatorItem6: TTBXSeparatorItem;
TBXSubmenuItem3: TTBXSubmenuItem;
actNorma32: TAction;
TBXItem34: TTBXItem;
procedure FormShow(Sender: TObject);
procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction);
procedure actAnadirRecibosExecute(Sender: TObject);
procedure actEliminarReciboExecute(Sender: TObject);
procedure JvFormStorageRestorePlacement(Sender: TObject);
procedure JvFormStorageSavePlacement(Sender: TObject);
procedure frViewRecibosRemesaCliente1cxGridViewDataControllerSummaryAfterSummary(
ASender: TcxDataSummary);
procedure actNorma19Update(Sender: TObject);
procedure actNorma19Execute(Sender: TObject);
procedure actNorma32Execute(Sender: TObject);
procedure actNorma32Update(Sender: TObject);
private
procedure OnRecibosChanged(Sender: TObject);
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 PrevisualizarInterno; override;
procedure ImprimirInterno; override;
procedure CerrarInterno; override;
procedure PonerTitulos(const ATitulo: string = ''); override;
function GetModified: Boolean; override;
public
property RemesaCliente: IBizRemesaCliente read GetRemesaCliente write SetRemesaCliente;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
{$R *.dfm}
uses
uDataTableUtils, cxControls, uDataModuleUsuarios, uDialogUtils, uCustomEditor,
uDataModuleRemesasCliente, uDataModuleBase, uBizFamilias, uFamiliasController,
uBancaElectronicaController;
{
******************************* 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 := frViewRecibosRemesaCliente1.Modified;
Result := bCambiado;
end;
function TfEditorRemesaCliente.GetViewRemesaCliente: IViewRemesaCliente;
begin
Result := FViewRemesaCliente;
end;
procedure TfEditorRemesaCliente.GuardarInterno;
var
bEsNuevo : Boolean;
begin
inherited;
bEsNuevo := False;
ShowHourglassCursor;
frViewRecibosRemesaCliente1.OnViewModified := Nil;
//frViewDetallesFacturaCliente1.SaveGridStatus; // Para guardar estado del grid
// frViewDetallesFacturaCliente1.BeginUpdate; // Para que no se mueva el foco
try
bEsNuevo := FRemesaCliente.EsNuevo;
FController.Guardar(FRemesaCliente);
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;
frViewRecibosRemesaCliente1.Modified := False;
frViewRecibosRemesaCliente1.OnViewModified := OnRecibosChanged;
end;
procedure TfEditorRemesaCliente.ImprimirInterno;
begin
inherited;
FController.Print(FRemesaCliente);
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.OnRecibosChanged(Sender: TObject);
begin
ActualizarEstadoEditor;
end;
procedure TfEditorRemesaCliente.PonerTitulos(const ATitulo: string);
var
FTitulo : String;
begin
FTitulo := ATitulo;
if (FTitulo = '') and Assigned(RemesaCliente) then
begin
if RemesaCliente.EsNuevo then
FTitulo := 'Nueva remesa de cobro'
else
FTitulo := 'Remesa de cobro';
end;
inherited PonerTitulos(FTitulo);
Self.Caption := FTitulo + ' (' + dmUsuarios.EmpresaActual.NOMBRE + ')';
end;
procedure TfEditorRemesaCliente.PrevisualizarInterno;
begin
inherited;
FController.Preview(FRemesaCliente);
end;
procedure TfEditorRemesaCliente.SetRemesaCliente(const Value: IBizRemesaCliente);
begin
FRemesaCliente := Value;
if Assigned(FRemesaCliente) then
begin
dsDataTable.DataTable := FRemesaCliente.DataTable;
frViewRecibosRemesaCliente1.RemesaCliente := FRemesaCliente;
frViewRecibosRemesaCliente1.OnViewModified := OnRecibosChanged;
end
else
begin
dsDataTable.DataTable := Nil;
frViewRecibosRemesaCliente1.RemesaCliente := Nil;
frViewRecibosRemesaCliente1.OnViewModified := Nil;
end;
if Assigned(FViewRemesaCliente) then
FViewRemesaCliente.RemesaCliente := FRemesaCliente;
frViewTotales1.DADataSource.DataTable := dsDataTable.DataTable;
end;
procedure TfEditorRemesaCliente.SetController(const Value: IRemesasClienteController);
begin
FController := Value;
if Assigned(FController) then
begin
(ViewRemesaCliente as IViewRemesaCliente).Controller := (FController as IRemesasClienteController);
frViewRecibosRemesaCliente1.Controller := (FController as IRemesasClienteController);
end;
end;
procedure TfEditorRemesaCliente.SetViewRemesaCliente(const Value: IViewRemesaCliente);
begin
FViewRemesaCliente := Value;
if Assigned(FViewRemesaCliente) and Assigned(RemesaCliente) then
begin
FViewRemesaCliente.RemesaCliente := RemesaCliente;
FViewRemesaCliente.Controller := (FController as IRemesasClienteController);
end;
end;
procedure TfEditorRemesaCliente.FormShow(Sender: TObject);
begin
inherited;
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;
//Falla si lo hacemos por dfm
frViewRecibosRemesaCliente1.cxGridView.OptionsSelection.MultiSelect := False;
end;
procedure TfEditorRemesaCliente.frViewRecibosRemesaCliente1cxGridViewDataControllerSummaryAfterSummary(ASender: TcxDataSummary);
Var
AImporteTotal: Currency;
begin
inherited;
if VarIsNull(ASender.FooterSummaryValues[0]) then
AImporteTotal := 0
else
AImporteTotal := ASender.FooterSummaryValues[0];
if Assigned(RemesaCliente) then
begin
if (RemesaCliente.IMPORTE_TOTAL <> AImporteTotal) then
begin
if not RemesaCliente.DataTable.Editing then
begin
RemesaCliente.Edit;
RemesaCliente.IMPORTE_TOTAL := AImporteTotal;
RemesaCliente.Post;
end;
end;
end;
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.actNorma19Execute(Sender: TObject);
var
ABancaController : IBancaElectronicaController;
begin
inherited;
ABancaController := TBancaElectronicaController.Create;
try
ABancaController.GenerarFicheroNorma19(FRemesaCliente.ID);
finally
ABancaController := NIL;
end;
end;
procedure TfEditorRemesaCliente.actNorma19Update(Sender: TObject);
begin
(Sender as TAction).Enabled := HayDatos and (not FRemesaCliente.EsNuevo);
end;
procedure TfEditorRemesaCliente.actNorma32Execute(Sender: TObject);
var
ABancaController : IBancaElectronicaController;
begin
inherited;
ABancaController := TBancaElectronicaController.Create;
try
ABancaController.GenerarFicheroNorma32(FRemesaCliente.ID);
finally
ABancaController := NIL;
end;
end;
procedure TfEditorRemesaCliente.actNorma32Update(Sender: TObject);
begin
(Sender as TAction).Enabled := HayDatos and (not FRemesaCliente.EsNuevo);
end;
procedure TfEditorRemesaCliente.CerrarInterno;
begin
frViewRecibosRemesaCliente1.OnViewModified := Nil;
inherited;
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.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.