AlonsoYSal_FactuGES2/Source/Modulos/Formas de pago/Views/uEditorFormaPago.pas

253 lines
8.2 KiB
ObjectPascal

{
===============================================================================
Copyright (©) 2006. Rodax Software.
===============================================================================
Los contenidos de este fichero son propiedad de Rodax Software titular del
copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
bajo el que se suministra.
-----------------------------------------------------------------------------
Web: www.rodax-software.com
===============================================================================
Fecha primera versión: 22-05-2006
Versión actual: 1.0.0
Fecha versión actual: 22-05-2006
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
===============================================================================
}
unit uEditorFormaPago;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Grids, DBGrids, StdCtrls, Mask, DBCtrls, DB,
uBizFormasPago, uBizFormasPagoPlazos,
uFormasPagoController, uFormasPagoPlazosController,
uDADataTable, uIEditorFormaPago, ActnList, ExtCtrls, JvExControls,
JvComponent, JvEnterTab, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, cxDBData, cxSpinEdit, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxGridLevel, cxClasses, cxControls,
cxGridCustomView, cxGrid, uDAInterfaces, dxLayoutControl, dblookup,
cxRadioGroup, cxContainer, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit,
cxDBLookupEdit, cxDBLookupComboBox, uBizSubCuentas, uSubCuentasController,
cxCheckBox, cxDBEdit;
type
TfEditorFormaPago = class(TForm, IEditorFormaPago)
ActionList1: TActionList;
dsFormaPago: TDADataSource;
actAnadir: TAction;
actEliminar: TAction;
actAceptar: TAction;
actCancelar: TAction;
actCerrar: TAction;
actModificar: TAction;
dsPlazos: TDADataSource;
JvEnterAsTab1: TJvEnterAsTab;
dxLayoutControl1Group_Root: TdxLayoutGroup;
dxLayoutControl1: TdxLayoutControl;
dxLayoutControl1Item1: TdxLayoutItem;
eReferencia: TDBEdit;
dxLayoutControl1Item3: TdxLayoutItem;
ListaFormasPago: TcxGrid;
ListaFormasPagoDBTableView1: TcxGridDBTableView;
ListaFormasPagoDBTableView1NUM_DIAS: TcxGridDBColumn;
ListaFormasPagoDBTableView1PORCENTAJE: TcxGridDBColumn;
ListaFormasPagoLevel1: TcxGridLevel;
dxLayoutControl1Group3: TdxLayoutGroup;
dxLayoutControl1Item4: TdxLayoutItem;
bAnadir: TButton;
panelPlazosDePago: TdxLayoutGroup;
dxLayoutControl1Item5: TdxLayoutItem;
bEliminar: TButton;
dxLayoutControl1Group1: TdxLayoutGroup;
dxLayoutControl1Item6: TdxLayoutItem;
bAceptar: TButton;
dxLayoutControl1Item7: TdxLayoutItem;
bCancelar: TButton;
dxLayoutControl1Item8: TdxLayoutItem;
Bevel4: TBevel;
dxLayoutControl1Group2: TdxLayoutGroup;
dxLayoutControl1Group5: TdxLayoutGroup;
dxLayoutControl1Item9: TdxLayoutItem;
Bevel2: TBevel;
rdPagoPlazos: TcxRadioButton;
dxLayoutControl1Item10: TdxLayoutItem;
dxLayoutControl1Item11: TdxLayoutItem;
rdPagoVencimiento: TcxRadioButton;
dsSubcuentas: TDADataSource;
dxLayoutControl1Item12: TdxLayoutItem;
cbSubcuenta: TcxDBLookupComboBox;
cxDBCheckBox1: TcxDBCheckBox;
checkIgnorarContabilidad: TdxLayoutItem;
panelVencimiento: TdxLayoutGroup;
dxLayoutControl1Item2: TdxLayoutItem;
eDescripcion: TDBMemo;
procedure FormShow(Sender: TObject);
procedure actAnadirExecute(Sender: TObject);
procedure actEliminarExecute(Sender: TObject);
procedure actAceptarExecute(Sender: TObject);
procedure actCancelarExecute(Sender: TObject);
procedure actCerrarExecute(Sender: TObject);
procedure actAnadirUpdate(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject);
procedure rdPagoPlazosClick(Sender: TObject);
protected
FFormaPago: IBizFormaPago;
FPlazos : IBizFormaPagoPlazos;
FSubCuentas: IBizSubCuenta;
FSubCuentasController: TSubCuentasController;
FController : IFormasPagoController;
FPlazosController: IFormasPagoPlazosController;
function GetFormaPago: IBizFormaPago;
procedure SetFormaPago(const Value: IBizFormaPago);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property FormaPago: IBizFormaPago read GetFormaPago write SetFormaPago;
end;
implementation
{$R *.dfm}
{ TfEditorFormasPago }
uses
Dialogs, uDialogUtils, uDataModuleFormasPago;
function TfEditorFormaPago.GetFormaPago: IBizFormaPago;
begin
Result := FFormaPago;
end;
procedure TfEditorFormaPago.rdPagoPlazosClick(Sender: TObject);
begin
if rdPagoPlazos.Checked then
begin
panelPlazosDePago.Enabled := True;
panelVencimiento.Enabled := False;
end
else
begin
panelPlazosDePago.Enabled := False;
panelVencimiento.Enabled := True;
end
end;
procedure TfEditorFormaPago.SetFormaPago(const Value: IBizFormaPago);
begin
FFormaPago := Value;
if Assigned(FFormaPago) then
begin
FPlazos := FFormaPago.Plazos;
dsFormaPago.DataTable := FFormaPago.DataTable;
dsPlazos.DataTable := FPlazos.DataTable;
dsFormaPago.DataTable.Open;
dsPlazos.DataTable.Open;
end
else begin
dsFormaPago.DataTable := NIL;
dsPlazos.DataTable := NIL;
end;
end;
procedure TfEditorFormaPago.actAnadirExecute(Sender: TObject);
begin
if Assigned(FFormaPago) and (FFormaPago.State = dsInsert) then
FController.Guardar(FFormaPago);
FPlazos.Append;
end;
procedure TfEditorFormaPago.actEliminarExecute(Sender: TObject);
begin
FPlazos.Delete;
end;
procedure TfEditorFormaPago.actEliminarUpdate(Sender: TObject);
begin
(Sender as TAction).Enabled := Assigned(FPlazos) and
FPlazos.DataTable.Active and
(FPlazos.DataTable.RecordCount > 0);
end;
constructor TfEditorFormaPago.Create(AOwner: TComponent);
begin
inherited;
FController := TFormasPagoController.Create;
FPlazosController := TFormasPagoPlazosController.Create;
FSubCuentasController := TSubCuentasController.Create;
FSubCuentas := FSubCuentasController.BuscarCajasBancos;
dsSubcuentas.DataTable := FSubCuentas.DataTable;
end;
destructor TfEditorFormaPago.Destroy;
begin
dsSubcuentas.DataTable := Nil;
FFormaPago := NIL;
FSubCuentas := NIL;
FSubCuentasController := NIL;
FPlazosController := NIL;
FController := NIL;
inherited;
end;
procedure TfEditorFormaPago.actAceptarExecute(Sender: TObject);
begin
if (ListaFormasPago.ActiveView.DataController.RecordCount = 0) then
if (ShowConfirmMessage('Forma de pago sin plazos', 'No ha indicado plazos de pago para esta forma de pago por lo tanto no se podrán generarar los recibos correspondientes.' + #10#13 + '¿Desea continuar guardando la forma de pago?') = IDNO) then
Exit;
if FController.Guardar(FFormaPago) then
actCerrar.Execute;
end;
procedure TfEditorFormaPago.actCancelarExecute(Sender: TObject);
begin
FController.DescartarCambios(FFormaPago);
actCerrar.Execute;
end;
procedure TfEditorFormaPago.actCerrarExecute(Sender: TObject);
begin
Close;
end;
procedure TfEditorFormaPago.actAnadirUpdate(Sender: TObject);
begin
(Sender as TAction).Enabled := Assigned(FPlazos) and
FPlazos.DataTable.Active;
end;
procedure TfEditorFormaPago.FormShow(Sender: TObject);
begin
rdPagoVencimiento.Checked := True;
if not FSubCuentas.DataTable.Active then
FSubCuentas.DataTable.Active := True;
if not FFormaPago.DataTable.Active then
FFormaPago.DataTable.Active := True;
if FFormaPago.EsNuevo then
Self.Caption := 'Nueva forma de pago'
else
begin
Self.Caption := 'Modificar forma de pago';
if (FFormaPago.Plazos.RecordCount > 0) then
rdPagoPlazos.Checked := True;
end;
end;
end.