git-svn-id: https://192.168.0.254/svn/Proyectos.AbetoDesign_FactuGES/trunk@182 93f398dd-4eb6-7a46-baf6-13f46f578da2
265 lines
8.9 KiB
ObjectPascal
265 lines
8.9 KiB
ObjectPascal
unit uEditorExtractoMovimientos;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, uEditorBase, ToolWin, ComCtrls, JvExControls, JvComponent,
|
|
JvNavigationPane, uViewDiario, uBizAsientos, 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, uEditorGridBase, JvComponentBase, uViewGridBase,
|
|
uAsientosController, JvExComCtrls, JvStatusBar, uDAInterfaces, uViewEpigrafes,
|
|
uBizDiario, dxGDIPlusClasses, uViewExtractoMovimientos, uIEditorExtractoMovimientos;
|
|
|
|
type
|
|
TfEditorExtractoMovimientos = class(TfEditorGridBase, IEditorExtractoMovimientos)
|
|
frViewExtractoMovimientos1: TfrViewExtractoMovimientos;
|
|
actPuntear: TAction;
|
|
TBXItem38: TTBXItem;
|
|
actCerrarCaja: TAction;
|
|
TBXItem39: TTBXItem;
|
|
TBXSeparatorItem17: TTBXSeparatorItem;
|
|
actSetBancoDePago: TAction;
|
|
TBXItem40: TTBXItem;
|
|
TBXSeparatorItem18: TTBXSeparatorItem;
|
|
procedure FormShow(Sender: TObject);
|
|
procedure actModificarUpdate(Sender: TObject);
|
|
procedure actEliminarUpdate(Sender: TObject);
|
|
procedure actPuntearExecute(Sender: TObject);
|
|
procedure actPuntearUpdate(Sender: TObject);
|
|
procedure actNuevoUpdate(Sender: TObject);
|
|
procedure actCerrarCajaExecute(Sender: TObject);
|
|
procedure actSetBancoDePagoExecute(Sender: TObject);
|
|
|
|
private
|
|
FDiario: IBizDiario;
|
|
FController : IAsientosController;
|
|
|
|
protected
|
|
function GetDiario: IBizDiario;
|
|
procedure SetDiario(const Value: IBizDiario);
|
|
procedure OnExtractoChanged(Sender: TObject);
|
|
|
|
function GetController : IAsientosController; virtual;
|
|
procedure SetController (const Value : IAsientosController); virtual;
|
|
|
|
procedure NuevoInterno; override;
|
|
procedure EliminarInterno; override;
|
|
procedure ModificarInterno; override;
|
|
procedure PrevisualizarInterno; override;
|
|
procedure ImprimirInterno; override;
|
|
|
|
public
|
|
procedure PonerTitulos(const ATitulo: string = ''); override;
|
|
property Diario: IBizDiario read GetDiario write SetDiario;
|
|
property Controller : IAsientosController read GetController write SetController;
|
|
constructor Create(AOwner: TComponent); override;
|
|
destructor Destroy; override;
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses
|
|
uFactuGES_App, uBizEjercicios, uBizApuntes, uSubCuentasController;
|
|
|
|
{$R *.dfm}
|
|
|
|
{
|
|
****************************** TfEditorAsientos *******************************
|
|
}
|
|
procedure TfEditorExtractoMovimientos.FormShow(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
|
|
if not Assigned(ViewGrid) then
|
|
raise Exception.Create('No hay ninguna vista asignada');
|
|
|
|
if not Assigned(Diario) then
|
|
raise Exception.Create('No hay ningún Diario asignado');
|
|
|
|
if (AppFactuGES.UsuarioActivo.ID_PERFIL = CTE_PERFIL_ADMINISTRADOR)
|
|
or (AppFactuGES.UsuarioActivo.ID_PERFIL = CTE_PERFIL_GERENCIA) then
|
|
begin
|
|
actSetBancoDePago.Enabled := True;
|
|
actSetBancoDePago.Visible := True;
|
|
end
|
|
else
|
|
begin
|
|
actSetBancoDePago.Enabled := False;
|
|
actSetBancoDePago.Visible := False;
|
|
end;
|
|
|
|
|
|
//Para que coja el ancho automático
|
|
actAnchoAuto.Execute;
|
|
end;
|
|
|
|
function TfEditorExtractoMovimientos.GetDiario: IBizDiario;
|
|
begin
|
|
Result := FDiario;
|
|
end;
|
|
|
|
procedure TfEditorExtractoMovimientos.ImprimirInterno;
|
|
begin
|
|
inherited;
|
|
end;
|
|
|
|
function TfEditorExtractoMovimientos.GetController: IAsientosController;
|
|
begin
|
|
Result := FController;
|
|
end;
|
|
|
|
procedure TfEditorExtractoMovimientos.ModificarInterno;
|
|
begin
|
|
inherited;
|
|
FController.Ver(FController.Buscar(Diario.ID_ASIENTO));
|
|
actRefrescar.Execute;
|
|
end;
|
|
|
|
procedure TfEditorExtractoMovimientos.NuevoInterno;
|
|
begin
|
|
inherited;
|
|
FController.Ver(FController.Anadir(frViewExtractoMovimientos1.cxGrid.ActiveLevel.Tag));
|
|
actRefrescar.Execute;
|
|
end;
|
|
|
|
procedure TfEditorExtractoMovimientos.OnExtractoChanged(Sender: TObject);
|
|
begin
|
|
Diario := frViewExtractoMovimientos1.Diario;
|
|
end;
|
|
|
|
procedure TfEditorExtractoMovimientos.PonerTitulos(const ATitulo: string);
|
|
var
|
|
FTitulo : String;
|
|
begin
|
|
FTitulo := 'Cajas / Bancos - ' + AppFactuGES.EmpresaActiva.NOMBRE + ' - ' + AppFactuGES.EjercicioActivo.NOMBRE + ' (' + AppFactuGES.EjercicioActivo.ESTADO + ')';
|
|
inherited PonerTitulos(FTitulo);
|
|
end;
|
|
|
|
procedure TfEditorExtractoMovimientos.PrevisualizarInterno;
|
|
begin
|
|
inherited;
|
|
end;
|
|
|
|
procedure TfEditorExtractoMovimientos.SetDiario(const Value: IBizDiario);
|
|
begin
|
|
FDiario := Value;
|
|
if Assigned(FDiario) then
|
|
dsDataTable.DataTable := FDiario.DataTable;
|
|
end;
|
|
|
|
procedure TfEditorExtractoMovimientos.SetController(const Value: IAsientosController);
|
|
begin
|
|
FController := Value;
|
|
if Assigned(FController) and Assigned(ViewGrid) then
|
|
(ViewGrid as IViewExtractoMovimientos).Controller := FController;
|
|
end;
|
|
|
|
destructor TfEditorExtractoMovimientos.Destroy;
|
|
begin
|
|
frViewExtractoMovimientos1.OnExtractoChange := Nil;
|
|
FDiario := Nil;
|
|
inherited;
|
|
end;
|
|
|
|
procedure TfEditorExtractoMovimientos.EliminarInterno;
|
|
begin
|
|
if (Application.MessageBox('¿Está seguro que desea borrar el asiento seleccionado?', 'Atención', MB_YESNO) = IDYES) then
|
|
begin
|
|
inherited;
|
|
if FController.Eliminar(Diario.ID_ASIENTO) then
|
|
actRefrescar.Execute;
|
|
end;
|
|
end;
|
|
|
|
procedure TfEditorExtractoMovimientos.actPuntearExecute(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
FController.Puntear(Diario);
|
|
end;
|
|
|
|
procedure TfEditorExtractoMovimientos.actPuntearUpdate(Sender: TObject);
|
|
begin
|
|
if HayDatos and Assigned(ViewGrid) then
|
|
(Sender as TAction).Enabled := not (dsDataTable.DataTable.State in dsEditModes)
|
|
and not ViewGrid.IsEmpty
|
|
and ViewGrid.esSeleccionCeldaDatos
|
|
else
|
|
(Sender as TAction).Enabled := False;
|
|
|
|
if (Sender as TAction).Enabled then
|
|
(Sender as TAction).Enabled := (AppFactuGES.EjercicioActivo.ESTADO = CTE_ABIERTO);
|
|
end;
|
|
|
|
procedure TfEditorExtractoMovimientos.actSetBancoDePagoExecute(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
|
|
if (frViewExtractoMovimientos1.SubCuentas.Locate('ID', frViewExtractoMovimientos1.cxGrid.ActiveLevel.Tag,[])) then
|
|
begin
|
|
if (frViewExtractoMovimientos1.SubCuentas.REF_CUENTA = inttostr(CTE_CUENTASCAJA)) then
|
|
showmessage('No es posible poner una caja como cuenta de pago para transferencias por defecto')
|
|
else
|
|
begin
|
|
FController.SetBancoPorDefecto(frViewExtractoMovimientos1.SubCuentas.ID_EJERCICIO, frViewExtractoMovimientos1.SubCuentas.ID);
|
|
frViewExtractoMovimientos1.RefrescarSubcuentas(frViewExtractoMovimientos1.SubCuentas.ID);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TfEditorExtractoMovimientos.actCerrarCajaExecute(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
if FController.CerrarCajaBanco(frViewExtractoMovimientos1.cxGrid.ActiveLevel.Tag) then
|
|
actRefrescar.Execute;
|
|
ViewGrid.GotoFirst;
|
|
end;
|
|
|
|
procedure TfEditorExtractoMovimientos.actEliminarUpdate(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
//No se podrá eliminar un asiento si es automático por factura, si el ejercicio esta cerrado o el asiento esta punteado
|
|
if (Sender as TAction).Enabled then
|
|
if Assigned(Diario) then
|
|
(Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount = 1)
|
|
and Diario.ID_FACTURAIsNull
|
|
and Diario.ID_PAGOIsNull
|
|
and (Diario.ESTADO = CTE_ABIERTO)
|
|
and (Diario.PUNTEADO = CTE_NO_PUNTEADO);
|
|
end;
|
|
|
|
procedure TfEditorExtractoMovimientos.actModificarUpdate(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
//No se podrá modificar un asiento si es automático por factura, si el ejercicio esta cerrado o el asiento esta punteado
|
|
if (Sender as TAction).Enabled then
|
|
if Assigned(Diario) then
|
|
(Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount = 1)
|
|
and Diario.ID_FACTURAIsNull
|
|
and Diario.ID_PAGOIsNull
|
|
and (Diario.ESTADO = CTE_ABIERTO)
|
|
and (Diario.PUNTEADO = CTE_NO_PUNTEADO);
|
|
end;
|
|
|
|
procedure TfEditorExtractoMovimientos.actNuevoUpdate(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
if (Sender as TAction).Enabled then
|
|
if Assigned(Diario) then
|
|
(Sender as TAction).Enabled := AppFactuGES.EjercicioActivo.ESTADO = CTE_ABIERTO;
|
|
end;
|
|
|
|
constructor TfEditorExtractoMovimientos.Create(AOwner: TComponent);
|
|
begin
|
|
inherited;
|
|
ViewGrid := frViewExtractoMovimientos1;
|
|
//Se establece este evento porque el control sobre el objeto de negocio recae en las vista ya que cambia
|
|
//en función de la pestaña en la que se encuentre
|
|
frViewExtractoMovimientos1.OnExtractoChange := OnExtractoChanged;
|
|
end;
|
|
|
|
end.
|