AbetoDesign_FactuGES2/Source/Modulos/Comisiones/Views/uEditorComisiones.pas

253 lines
7.9 KiB
ObjectPascal
Raw Blame History

unit uEditorComisiones;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorBase, ToolWin, ComCtrls, JvExControls, JvComponent,
JvNavigationPane, uViewComisiones, uBizComisiones, ActnList, DBActns, uViewGrid,
Menus, uDataModuleBase, ImgList, PngImageList, TB2Dock, TB2Toolbar, TBX,
TB2Item, StdActns, TB2ExtItems, TBXExtItems, TB2MRU, DB, uDADataTable,
JvFormAutoSize, uDAScriptingProvider, uDACDSDataTable, JvAppStorage,
JvAppRegistryStorage, JvFormPlacement, ExtCtrls, uCustomView, uViewBase,
uViewBarraSeleccion, pngimage, uIEditorComisiones, uEditorGridBase,
JvComponentBase, uViewGridBase, uComisionesController, JvExComCtrls,
JvStatusBar, uDAInterfaces, JSDialog;
type
TfEditorComisiones = class(TfEditorGridBase, IEditorComisiones)
N4: TMenuItem;
Volcaradisco1: TMenuItem;
TBXSubmenuItem2: TTBXSubmenuItem;
TBXItem38: TTBXItem;
JsPrevisualizarDialog: TJSDialog;
JsImprimirDialog: TJSDialog;
frViewComisiones1: TfrViewComisiones;
procedure FormShow(Sender: TObject);
private
FComisiones: IBizComisiones;
FController : IComisionesController;
protected
function GetComisiones: IBizComisiones;
procedure SetComisiones(const Value: IBizComisiones);
function GetController : IComisionesController; virtual;
procedure SetController (const Value : IComisionesController); virtual;
procedure NuevoInterno; override;
procedure EliminarInterno; override;
procedure ModificarInterno; override;
procedure PrevisualizarInterno; override;
procedure ImprimirInterno; override;
//Si queremos crear otra vista para el editor heredado solo tendriamos que
//sobreescribir este metodo
procedure AsignarVista; virtual;
public
procedure PonerTitulos(const ATitulo: string = ''); override;
property Comisiones: IBizComisiones read GetComisiones write SetComisiones;
property Controller : IComisionesController read GetController write SetController;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
uses
uCustomEditor, uDataModuleComisiones, uDataModuleUsuarios, uGridUtils,
//uEditorRemesaCliente,
uFactuGES_App,
uEditorDBBase, cxGrid, cxGridCustomTableView, uDBSelectionListUtils;
{$R *.dfm}
{
****************************** TfEditorComisiones *******************************
}
procedure TfEditorComisiones.FormShow(Sender: TObject);
begin
inherited;
if not Assigned(ViewGrid) then
raise Exception.Create('No hay ninguna vista asignada');
if not Assigned(Comisiones) then
raise Exception.Create('No hay ning<6E>n RemesaCliente asignado');
Comisiones.DataTable.Active := True;
ViewGrid.GotoFirst;
//Para que coja el ancho autom<6F>tico
actAnchoAuto.Execute;
end;
function TfEditorComisiones.GetComisiones: IBizComisiones;
begin
Result := FComisiones;
end;
procedure TfEditorComisiones.ImprimirInterno;
var
Respuesta : Integer;
AComisiones: IBizComisiones;
AllItems: Boolean;
begin
AComisiones := Nil;
AllItems := False;
if MultiSelect and Assigned(ViewGrid) then
AllItems := (ViewGrid.NumSeleccionados > 1);
//Si esta agrupado solo podr<64> imprimir la lista de elementos visibles
if not ViewGrid.esSeleccionCeldaDatos then
inherited
else
begin
Respuesta := JsImprimirDialog.Execute;
if Respuesta <> IDCANCEL then
begin
case JsImprimirDialog.CustomButtonResult of
200 : begin // Lista de elementos visibles
inherited;
end;
100 : begin // Elemento Seleccionado
if AllItems then
begin
SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Comisiones as ISeleccionable).SelectedRecords);
AComisiones := (Controller as IComisionesController).ExtraerSeleccionados(Comisiones) as IBizComisiones;
end
else
AComisiones := Comisiones;
if Assigned(AComisiones) then
if (Application.MessageBox('<27>Desea imprimir la liquidaci<63>n de comisiones sin desglosar?', 'Atenci<63>n', MB_YESNO) = IDYES) then
FController.Print(AComisiones, AllItems, False)
else
FController.Print(AComisiones, AllItems, True);
end;
end;
end;
end;
end;
function TfEditorComisiones.GetController: IComisionesController;
begin
Result := FController;
end;
procedure TfEditorComisiones.ModificarInterno;
var
AComision: IBizComisiones;
begin
inherited;
// AComision := FController.Buscar(Comisiones.ID);
FController.Ver(Comisiones);
end;
procedure TfEditorComisiones.NuevoInterno;
begin
inherited;
FController.Anadir(Comisiones);
FController.Ver(Comisiones);
end;
procedure TfEditorComisiones.PonerTitulos(const ATitulo: string);
var
FTitulo : String;
begin
FTitulo := 'Lista de liquidaciones de comisiones - ' + AppFactuGES.EmpresaActiva.NOMBRE;
inherited PonerTitulos(FTitulo);
end;
procedure TfEditorComisiones.PrevisualizarInterno;
var
Respuesta : Integer;
AComisiones: IBizComisiones;
AllItems: Boolean;
begin
AComisiones := Nil;
AllItems := False;
if MultiSelect and Assigned(ViewGrid) then
AllItems := (ViewGrid.NumSeleccionados > 1);
//Si esta agrupado solo podr<64> imprimir la lista de elementos visibles
if not ViewGrid.esSeleccionCeldaDatos then
inherited
else
begin
Respuesta := JsPrevisualizarDialog.Execute;
if Respuesta <> IDCANCEL then
begin
case JsPrevisualizarDialog.CustomButtonResult of
200 : begin // Lista de elementos visibles
inherited;
end;
100 : begin // Elemento Seleccionado
if AllItems then
begin
SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Comisiones as ISeleccionable).SelectedRecords);
AComisiones := (Controller as IComisionesController).ExtraerSeleccionados(Comisiones) as IBizComisiones;
end
else
AComisiones := Comisiones;
if Assigned(AComisiones) then
if (Application.MessageBox('<27>Desea previsualizar la liquidaci<63>n de comisiones sin desglosar?', 'Atenci<63>n', MB_YESNO) = IDYES) then
FController.Preview(AComisiones, AllItems, False)
else
FController.Preview(AComisiones, AllItems, True);
end;
end;
end;
end;
end;
procedure TfEditorComisiones.SetComisiones(const Value: IBizComisiones);
begin
FComisiones := Value;
dsDataTable.DataTable := FComisiones.DataTable;
if Assigned(ViewGrid) then
(ViewGrid as IViewComisiones).Comisiones := Comisiones;
end;
procedure TfEditorComisiones.SetController(const Value: IComisionesController);
begin
FController := Value;
end;
destructor TfEditorComisiones.Destroy;
begin
FComisiones := NIL;
FController := NIl;
inherited;
end;
procedure TfEditorComisiones.EliminarInterno;
begin
if (Application.MessageBox('<27>Desea borrar esta liquidaci<63>n de comisiones?', 'Atenci<63>n', MB_YESNO) = IDYES) then
begin
inherited;
//Para que en el caso de no poderse realizar la operaci<63>n se refresquen
//los datos y no nos permita eliminar un registro a la segunda
if not FController.Eliminar(Comisiones) then
actRefrescar.Execute;
end;
end;
procedure TfEditorComisiones.AsignarVista;
begin
ViewGrid := CreateView(TfrViewComisiones) as IViewComisiones;
end;
constructor TfEditorComisiones.Create(AOwner: TComponent);
begin
inherited;
//AsignarVista;
ViewGrid := frViewComisiones1;
end;
end.