240 lines
7.2 KiB
ObjectPascal
240 lines
7.2 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;
|
|||
|
|
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,
|
|||
|
|
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
|
|||
|
|
FController.Print(AComisiones, AllItems);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfEditorComisiones.GetController: IComisionesController;
|
|||
|
|
begin
|
|||
|
|
Result := FController;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorComisiones.ModificarInterno;
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
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
|
|||
|
|
FController.Preview(AComisiones, AllItems);
|
|||
|
|
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;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
end.
|
|||
|
|
|
|||
|
|
|