Tecsitel_FactuGES2/Source/Modulos/Remesas de proveedor/Views/uEditorRemesaProveedor.pas

349 lines
11 KiB
ObjectPascal
Raw Blame History

unit uEditorRemesaProveedor;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent,
uBizRemesasProveedor, 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,
uViewRemesasProveedor, uIEditorRemesaProveedor, uRemesasProveedorController, JvExComCtrls,
JvStatusBar, dxLayoutLookAndFeels, uViewGridBase, uViewGrid,
uViewRecibosRemesaProveedor, uViewTotales, uViewDetallesGenerico,
uViewRemesaProveedor, uDAInterfaces, cxControls, cxContainer, cxEdit, cxLabel;
type
TfEditorRemesaProveedor = class(TfEditorDBItem, IEditorRemesaProveedor)
dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList;
dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel;
frViewTotales1: TfrViewTotales;
actVolcarDisco: TAction;
TBXSubmenuItem2: TTBXSubmenuItem;
TBXItem7: TTBXItem;
TBXItem33: TTBXItem;
TBXSeparatorItem6: TTBXSeparatorItem;
frViewRecibosRemesaProveedor1: TfrViewRecibosRemesaProveedor;
frViewRemesaProveedor1: TfrViewRemesaProveedor;
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 frViewRecibosRemesaProveedor1cxGridViewDataControllerSummaryAfterSummary(
ASender: TcxDataSummary);
procedure actVolcarDiscoUpdate(Sender: TObject);
procedure actVolcarDiscoExecute(Sender: TObject);
private
procedure OnRecibosChanged(Sender: TObject);
protected
FController : IRemesasProveedorController;
FRemesaProveedor: IBizRemesaProveedor;
FViewRemesaProveedor : IViewRemesaProveedor;
function GetController : IRemesasProveedorController;
procedure SetController (const Value : IRemesasProveedorController); virtual;
function GetRemesaProveedor: IBizRemesaProveedor; virtual;
procedure SetRemesaProveedor(const Value: IBizRemesaProveedor); virtual;
function GetViewRemesaProveedor: IViewRemesaProveedor;
procedure SetViewRemesaProveedor(const Value: IViewRemesaProveedor);
property ViewRemesaProveedor: IViewRemesaProveedor read GetViewRemesaProveedor write SetViewRemesaProveedor;
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;
function PuedoImprimir: Boolean; override;
public
property RemesaProveedor: IBizRemesaProveedor read GetRemesaProveedor write SetRemesaProveedor;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
{$R *.dfm}
uses
uDataTableUtils, uDataModuleUsuarios, uDialogUtils, uCustomEditor,
uDataModuleRemesasProveedor, uDataModuleBase, uBizFamilias, uFamiliasController,
uFactuGES_App;
// uBancaElectronicaController;
{
******************************* TfEditorRemesaProveedor *******************************
}
function TfEditorRemesaProveedor.GetRemesaProveedor: IBizRemesaProveedor;
begin
Result := FRemesaProveedor;
end;
function TfEditorRemesaProveedor.GetController: IRemesasProveedorController;
begin
Result := FController;
end;
function TfEditorRemesaProveedor.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 := frViewRecibosRemesaProveedor1.Modified;
Result := bCambiado;
end;
function TfEditorRemesaProveedor.PuedoImprimir: Boolean;
begin
Result := inherited PuedoImprimir and (not RemesaProveedor.Recibos.IDIsNull);
end;
function TfEditorRemesaProveedor.GetViewRemesaProveedor: IViewRemesaProveedor;
begin
Result := FViewRemesaProveedor;
end;
procedure TfEditorRemesaProveedor.GuardarInterno;
var
bEsNuevo : Boolean;
begin
inherited;
ShowHourglassCursor;
frViewRecibosRemesaProveedor1.OnViewModified := Nil;
//frViewDetallesFacturaProveedor1.SaveGridStatus; // Para guardar estado del grid
// frViewDetallesFacturaProveedor1.BeginUpdate; // Para que no se mueva el foco
try
bEsNuevo := FRemesaProveedor.EsNuevo;
FController.Guardar(FRemesaProveedor);
finally
// frViewDetallesFacturaProveedor1.EndUpdate;
// frViewDetallesFacturaProveedor1.RestoreGridStatus;
HideHourglassCursor;
end;
if bEsNuevo then
ShowInfoMessage('La remesa de pago se ha dado de alta con el c<>digo ' + FRemesaProveedor.REFERENCIA);
Modified := False;
frViewRecibosRemesaProveedor1.Modified := False;
frViewRecibosRemesaProveedor1.OnViewModified := OnRecibosChanged;
end;
procedure TfEditorRemesaProveedor.ImprimirInterno;
begin
inherited;
FController.Print(FRemesaProveedor);
end;
procedure TfEditorRemesaProveedor.JvFormStorageRestorePlacement(Sender: TObject);
begin
inherited;
//frViewRecibosRemesaProveedor1.RestoreFromRegistry(JvAppRegistryStorage.Root);
end;
procedure TfEditorRemesaProveedor.JvFormStorageSavePlacement(Sender: TObject);
begin
inherited;
//frViewRecibosRemesaProveedor1.StoreToRegistry(JvAppRegistryStorage.Root);
end;
procedure TfEditorRemesaProveedor.OnRecibosChanged(Sender: TObject);
begin
ActualizarEstadoEditor;
end;
procedure TfEditorRemesaProveedor.PonerTitulos(const ATitulo: string);
var
FTitulo : String;
begin
FTitulo := ATitulo;
if (FTitulo = '') and Assigned(RemesaProveedor) then
begin
if RemesaProveedor.EsNuevo then
FTitulo := 'Nueva remesa de pago'
else
FTitulo := 'Remesa de pago';
end;
inherited PonerTitulos(FTitulo);
Self.Caption := FTitulo + ' (' + AppFactuGES.EmpresaActiva.NOMBRE + ')';
end;
procedure TfEditorRemesaProveedor.PrevisualizarInterno;
begin
inherited;
FController.Preview(FRemesaProveedor);
end;
procedure TfEditorRemesaProveedor.SetRemesaProveedor(const Value: IBizRemesaProveedor);
begin
FRemesaProveedor := Value;
if Assigned(FRemesaProveedor) then
begin
dsDataTable.DataTable := FRemesaProveedor.DataTable;
frViewRecibosRemesaProveedor1.RemesaProveedor := FRemesaProveedor;
frViewRecibosRemesaProveedor1.OnViewModified := OnRecibosChanged;
end
else
begin
dsDataTable.DataTable := Nil;
frViewRecibosRemesaProveedor1.RemesaProveedor := Nil;
frViewRecibosRemesaProveedor1.OnViewModified := Nil;
end;
if Assigned(FViewRemesaProveedor) then
FViewRemesaProveedor.RemesaProveedor := FRemesaProveedor;
frViewTotales1.DADataSource.DataTable := dsDataTable.DataTable;
end;
procedure TfEditorRemesaProveedor.SetController(const Value: IRemesasProveedorController);
begin
FController := Value;
if Assigned(FController) then
begin
(ViewRemesaProveedor as IViewRemesaProveedor).Controller := (FController as IRemesasProveedorController);
frViewRecibosRemesaProveedor1.Controller := (FController as IRemesasProveedorController);
end;
end;
procedure TfEditorRemesaProveedor.SetViewRemesaProveedor(const Value: IViewRemesaProveedor);
begin
FViewRemesaProveedor := Value;
if Assigned(FViewRemesaProveedor) and Assigned(RemesaProveedor) then
begin
FViewRemesaProveedor.RemesaProveedor := RemesaProveedor;
FViewRemesaProveedor.Controller := (FController as IRemesasProveedorController);
end;
end;
procedure TfEditorRemesaProveedor.FormShow(Sender: TObject);
begin
inherited;
if not Assigned(FViewRemesaProveedor) then
raise Exception.Create('No hay ninguna vista asignada');
if not Assigned(RemesaProveedor) then
raise Exception.Create('No hay ning<6E>n almac<61>n asignado');
RemesaProveedor.DataTable.Active := True;
//Falla si lo hacemos por dfm
frViewRecibosRemesaProveedor1.cxGridView.OptionsSelection.MultiSelect := False;
end;
procedure TfEditorRemesaProveedor.frViewRecibosRemesaProveedor1cxGridViewDataControllerSummaryAfterSummary(ASender: TcxDataSummary);
Var
AImporteTotal: Currency;
begin
inherited;
if VarIsNull(ASender.FooterSummaryValues[0]) then
AImporteTotal := 0
else
AImporteTotal := ASender.FooterSummaryValues[0];
if Assigned(RemesaProveedor) then
begin
if (RemesaProveedor.IMPORTE_TOTAL <> AImporteTotal) then
begin
if not RemesaProveedor.DataTable.Editing then
begin
RemesaProveedor.Edit;
RemesaProveedor.IMPORTE_TOTAL := AImporteTotal;
RemesaProveedor.Post;
end;
end;
end;
end;
destructor TfEditorRemesaProveedor.Destroy;
begin
// Utilizar mejor OnClose;
inherited;
end;
procedure TfEditorRemesaProveedor.actAnadirRecibosExecute(Sender: TObject);
begin
inherited;
// HayCambios := FController.ElegirRecibosProveedor(RemesaProveedor) OR HayCambios;
end;
procedure TfEditorRemesaProveedor.actEliminarReciboExecute(Sender: TObject);
begin
inherited;
// FController.EliminarReciboProveedor(RemesaProveedor);
// HayCambios := True;
end;
procedure TfEditorRemesaProveedor.actVolcarDiscoExecute(Sender: TObject);
//var
// ABancaController : IBancaElectronicaController;
begin
{
inherited;
ABancaController := TBancaElectronicaController.Create;
try
ABancaController.GenerarFicheroNorma19(FRemesaProveedor.ID);
finally
ABancaController := NIL;
end;
}
end;
procedure TfEditorRemesaProveedor.actVolcarDiscoUpdate(Sender: TObject);
begin
// (Sender as TAction).Enabled := HayDatos and (not FRemesaProveedor.EsNuevo);
end;
procedure TfEditorRemesaProveedor.CerrarInterno;
begin
frViewRecibosRemesaProveedor1.OnViewModified := Nil;
inherited;
end;
constructor TfEditorRemesaProveedor.Create(AOwner: TComponent);
begin
inherited;
pgPaginas.ActivePageIndex := 0;
FViewRemesaProveedor := frViewRemesaProveedor1;
end;
procedure TfEditorRemesaProveedor.CustomEditorClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
dsDataTable.DataTable := NIL;
FViewRemesaProveedor := NIL;
FRemesaProveedor := NIL;
end;
procedure TfEditorRemesaProveedor.EliminarInterno;
begin
if (Application.MessageBox('<27>Desea borrar esta remesa de pago?', 'Atenci<63>n', MB_YESNO) = IDYES) then
begin
inherited;
if not FController.Eliminar(FRemesaProveedor) then
actRefrescar.Execute;
end;
end;
end.