253 lines
7.9 KiB
ObjectPascal
253 lines
7.9 KiB
ObjectPascal
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.
|
||
|
||
|