git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES/trunk@4 3f40d355-893c-4141-8e64-b1d9be72e7e7
394 lines
12 KiB
ObjectPascal
394 lines
12 KiB
ObjectPascal
{
|
|
===============================================================================
|
|
Copyright (©) 2002. 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: 03-11-2002
|
|
Versión actual: 1.0.1
|
|
Fecha versión actual: 16-04-2003
|
|
===============================================================================
|
|
Modificaciones:
|
|
|
|
Fecha Comentarios
|
|
---------------------------------------------------------------------------
|
|
16-04-2003 Los abonos se han puesto de color rojo oscuro.
|
|
===============================================================================
|
|
}
|
|
|
|
unit PagosClientes;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
Grids, DBGrids, ComCtrls, RdxBotones, ToolWin, ExtCtrls,
|
|
Menus, am2000menuitem, am2000popupmenu, am2000, Db, DBTables,
|
|
RXDBCtrl, RdxPaneles, RdxBarras, TablaClientes,
|
|
RdxDBFrame, RdxFramePagos, RdxFrame, cxStyles, cxCustomData, cxGraphics,
|
|
cxFilter, cxData, cxEdit, cxDBData, cxGridTableView,
|
|
cxGridCustomTableView, cxGridDBTableView, cxGridLevel, cxClasses, cxControls,
|
|
cxGridCustomView, cxGrid, Configuracion, StdCtrls, Buttons,
|
|
AdvPanel, cxContainer, cxTextEdit,
|
|
cxMaskEdit, cxDropDownEdit, cxLookupEdit, cxDBLookupEdit,
|
|
cxDBLookupComboBox, ActnList,
|
|
|
|
RdxEmpresaActiva, am2000utils, cxDataStorage;
|
|
|
|
type
|
|
TfrPagosClientes = class(TRdxFramePagos)
|
|
dsPagosClientes: TDataSource;
|
|
brSeleccion: TRdxBarraInferior;
|
|
bSeleccionar: TRdxBoton;
|
|
bCancelar: TRdxBoton;
|
|
BarraPagosClientes: TRdxBarraSuperior;
|
|
MenuOpciones: TPopupMenu2000;
|
|
mnuOpPagoA: TMenuItem2000;
|
|
mnuEliminar: TMenuItem2000;
|
|
gridPagosClientesDBTableView1: TcxGridDBTableView;
|
|
gridPagosClientesLevel1: TcxGridLevel;
|
|
gridPagosClientes: TcxGrid;
|
|
mnuConsultar: TMenuItem2000;
|
|
pnlCuerpo: TPanel;
|
|
pnlSeparador: TPanel;
|
|
Acciones: TActionList;
|
|
actAnadirPago: TAction;
|
|
actEliminar: TAction;
|
|
actConsultar: TAction;
|
|
actSeleccionar: TAction;
|
|
actCancelar: TAction;
|
|
pnlCuerpo2: TRdxPanel;
|
|
pnlExtra: TRdxBarraSuperior;
|
|
bAnadir: TRdxBotonMenu;
|
|
menuAnadir: TPopupMenu2000;
|
|
mnuPagoA: TMenuItem2000;
|
|
mnuOpPagoB: TMenuItem2000;
|
|
actImprimir: TAction;
|
|
mnuImprimir: TMenuItem2000;
|
|
bModificar: TRdxBotonSuperior;
|
|
bConsultar: TRdxBotonSuperior;
|
|
bEliminar: TRdxBotonSuperior;
|
|
bSeparador1: TShape;
|
|
bImprimir: TRdxBotonSuperior;
|
|
actModificar: TAction;
|
|
mnuAbonoA: TMenuItem2000;
|
|
mnuAnadir: TMenuItem2000;
|
|
mnuOpAbonoA: TMenuItem2000;
|
|
mnuOpAbonoB: TMenuItem2000;
|
|
mnuOpSep: TMenuItem2000;
|
|
mnuOpSep2: TMenuItem2000;
|
|
actAnadirAbono: TAction;
|
|
mnuModificar: TMenuItem2000;
|
|
imgSombra: TImage;
|
|
bRefrescar: TRdxBoton;
|
|
Shape1: TShape;
|
|
RdxBotonSuperior1: TRdxBotonSuperior;
|
|
actConsultarCobros: TAction;
|
|
Panel1: TPanel;
|
|
Label1: TLabel;
|
|
Buscar: TcxTextEdit;
|
|
RdxBoton1: TRdxBoton;
|
|
procedure actAnadirPagoExecute(Sender: TObject);
|
|
procedure actAnadirAbonoExecute(Sender: TObject);
|
|
procedure actAnadirPagoBExecute(Sender: TObject);
|
|
procedure actAnadirAbonoBExecute(Sender: TObject);
|
|
procedure actModificarExecute(Sender: TObject);
|
|
procedure actConsultarExecute(Sender: TObject);
|
|
procedure actEliminarExecute(Sender: TObject);
|
|
procedure actImprimirExecute(Sender: TObject);
|
|
procedure actSeleccionarExecute(Sender: TObject);
|
|
procedure actCancelarExecute(Sender: TObject);
|
|
procedure bLimpiarClick(Sender: TObject);
|
|
procedure RdxFramePagosClientesShow(Sender: TObject);
|
|
procedure gridPagosClientesDBTableView1DblClick(Sender: TObject);
|
|
procedure cxLookupComboBox1PropertiesEditValueChanged(Sender: TObject);
|
|
procedure gridPagosClientesDBTableView1CustomDrawCell(
|
|
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
|
|
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
|
|
procedure actRefrescarDatosExecute(Sender: TObject);
|
|
procedure actConsultarCobrosExecute(Sender: TObject);
|
|
procedure BuscarPropertiesChange(Sender: TObject);
|
|
|
|
private
|
|
procedure ActualizarBotones;
|
|
protected
|
|
procedure BuscarPago; override;
|
|
procedure FreeContenido; override;
|
|
procedure SetContenido (NuevoFrame : TRdxFrame); override;
|
|
public
|
|
constructor Create (AOwner : TComponent); override;
|
|
destructor Destroy; override;
|
|
published
|
|
end;
|
|
|
|
var
|
|
frPagosClientes: TfrPagosClientes;
|
|
|
|
implementation
|
|
{$R *.DFM}
|
|
uses
|
|
Constantes, IBCustomDataSet, BaseDatos, Entidades, PagoCliente, Variants,
|
|
TablaPagosCliente, Mensajes, Literales, ImprimirPagoCliente,
|
|
TablaEmpresas, ListadoPagosCliente;
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// PRIVATE
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
procedure TfrPagosClientes.ActualizarBotones;
|
|
begin
|
|
if BaseDatos.IsReadOnly then
|
|
begin
|
|
actAnadirPago.Enabled := False;
|
|
actAnadirAbono.Enabled := False;
|
|
actModificar.Enabled := False;
|
|
actEliminar.Enabled := False;
|
|
actConsultar.Enabled := True;
|
|
actImprimir.Enabled := True;
|
|
actConsultarCobros.Enabled := True;
|
|
Exit;
|
|
end;
|
|
|
|
if TablaPagos.RecordCount = 0 then
|
|
begin
|
|
actAnadirPago.Enabled := True;
|
|
actAnadirAbono.Enabled := True;
|
|
actModificar.Enabled := False;
|
|
actEliminar.Enabled := False;
|
|
actConsultar.Enabled := False;
|
|
actImprimir.Enabled := False;
|
|
actConsultarCobros.Enabled := False;
|
|
end
|
|
else begin
|
|
actAnadirPago.Enabled := True;
|
|
actAnadirAbono.Enabled := True;
|
|
actModificar.Enabled := True;
|
|
actEliminar.Enabled := True;
|
|
actConsultar.Enabled := True;
|
|
actImprimir.Enabled := True;
|
|
actConsultarCobros.Enabled := True;
|
|
end;
|
|
end;
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// PROTECTED
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
procedure TfrPagosClientes.BuscarPago;
|
|
begin
|
|
with TablaPagos do
|
|
begin
|
|
DisableControls;
|
|
Close;
|
|
Open;
|
|
dmTablaPagosCliente.InicializarTablaPagosClientes(@TablaPagos);
|
|
ActualizarBotones;
|
|
|
|
EnableControls;
|
|
if not Locate('CODIGO', CodigoPago, []) then
|
|
gridPagosClientesDBTableView1.Controller.GoToFirst
|
|
else
|
|
gridPagosClientesDBTableView1.Controller.TopRowIndex := gridPagosClientesDBTableView1.Controller.FocusedRowIndex;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrPagosClientes.FreeContenido;
|
|
begin
|
|
if (Contenido is TRdxFramePagos) then begin
|
|
CodigoPago := (Contenido as TRdxFramePagos).CodigoPago;
|
|
end;
|
|
inherited FreeContenido;
|
|
//gridPagosClientes.SetFocus;
|
|
end;
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// PUBLIC
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
constructor TfrPagosClientes.Create (AOwner : TComponent);
|
|
begin
|
|
inherited Create(AOwner);
|
|
Entidad := entCobroCliente;
|
|
|
|
BaseDatos := dmBaseDatos.BD;
|
|
Transaccion := dmBaseDatos.Transaccion;
|
|
TablaPagos := TIBDataSet.Create(Self);
|
|
dsPagosClientes.DataSet := TablaPagos;
|
|
|
|
with TablaPagos do
|
|
begin
|
|
DisableControls;
|
|
Database := BaseDatos;
|
|
Transaction := Transaccion;
|
|
SelectSQL.Assign(dmTablaPagosCliente.sqlGrid);
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|
Prepare;
|
|
Open;
|
|
ActualizarBotones;
|
|
EnableControls;
|
|
end;
|
|
|
|
dmTablaPagosCliente.InicializarGridPagosClientes(gridPagosClientesDBTableView1);
|
|
dmTablaPagosCliente.InicializarTablaPagosClientes(@TablaPagos);
|
|
gridPagosClientesDBTableView1.OnDblClick := gridPagosClientesDBTableView1DblClick;
|
|
gridPagosClientesDBTableView1.Controller.GoToFirst;
|
|
end;
|
|
|
|
destructor TfrPagosClientes.Destroy;
|
|
begin
|
|
TablaPagos.Close;
|
|
TablaPagos.Unprepare;
|
|
TablaPagos.Free;
|
|
inherited;
|
|
end;
|
|
|
|
procedure TfrPagosClientes.actAnadirPagoExecute(Sender: TObject);
|
|
begin
|
|
if (Contenido <> Nil) and (Contenido.Modo = Anadir) then
|
|
exit;
|
|
|
|
Contenido := TfrPagoCliente.Create(Self);
|
|
Contenido.Entidad := entCobroCliente;
|
|
Contenido.Modo := Anadir;
|
|
end;
|
|
|
|
procedure TfrPagosClientes.actAnadirAbonoExecute(Sender: TObject);
|
|
begin
|
|
if (Contenido <> Nil) and (Contenido.Modo = Anadir) then
|
|
exit;
|
|
|
|
Contenido := TfrPagoCliente.Create(Self);
|
|
Contenido.Entidad := entAbonoCliente;
|
|
Contenido.Modo := Anadir;
|
|
end;
|
|
|
|
procedure TfrPagosClientes.actAnadirPagoBExecute(Sender: TObject);
|
|
begin
|
|
if (Contenido <> Nil) and (Contenido.Modo = Anadir) then
|
|
exit;
|
|
|
|
Contenido := TfrPagoCliente.Create(Self);
|
|
Contenido.Entidad := entCobroCliente;
|
|
Contenido.Modo := Anadir;
|
|
end;
|
|
|
|
procedure TfrPagosClientes.actAnadirAbonoBExecute(Sender: TObject);
|
|
begin
|
|
if (Contenido <> Nil) and (Contenido.Modo = Anadir) then
|
|
exit;
|
|
|
|
Contenido := TfrPagoCliente.Create(Self);
|
|
Contenido.Entidad := entAbonoCliente;
|
|
Contenido.Modo := Anadir;
|
|
end;
|
|
|
|
procedure TfrPagosClientes.actModificarExecute(Sender: TObject);
|
|
begin
|
|
Contenido := TfrPagoCliente.Create(Self);
|
|
Contenido.Modo := Modificar;
|
|
end;
|
|
|
|
procedure TfrPagosClientes.actConsultarExecute(Sender: TObject);
|
|
begin
|
|
Contenido := TfrPagoCliente.Create(Self);
|
|
Contenido.Modo := Consultar;
|
|
end;
|
|
|
|
procedure TfrPagosClientes.actEliminarExecute(Sender: TObject);
|
|
begin
|
|
Contenido := TfrPagoCliente.Create(Self);
|
|
Contenido.Modo := Eliminar;
|
|
end;
|
|
|
|
procedure TfrPagosClientes.actImprimirExecute(Sender: TObject);
|
|
begin
|
|
Contenido := TfrImprimirPagoCliente.Create(Self);
|
|
Contenido.Modo := Imprimir;
|
|
(Contenido as TfrImprimirPagoCliente).codigoPago := TablaPagos.fieldbyname('CODIGO').AsString;
|
|
end;
|
|
|
|
procedure TfrPagosClientes.actSeleccionarExecute(Sender: TObject);
|
|
begin
|
|
if TablaPagos.RecordCount = 0 then
|
|
begin
|
|
VerMensaje(msgCliNoExistePag);
|
|
exit;
|
|
end;
|
|
|
|
CodigoPago := TablaPagos.FieldByName('CODIGO').AsString;
|
|
CloseFrame;
|
|
end;
|
|
|
|
procedure TfrPagosClientes.actCancelarExecute(Sender: TObject);
|
|
begin
|
|
CodigoPago := NULL;
|
|
CloseFrame;
|
|
end;
|
|
|
|
procedure TfrPagosClientes.RdxFramePagosClientesShow(Sender: TObject);
|
|
begin
|
|
Buscar.SetFocus
|
|
end;
|
|
|
|
procedure TfrPagosClientes.gridPagosClientesDBTableView1DblClick(Sender: TObject);
|
|
begin
|
|
if Modo = Seleccionar then
|
|
actSeleccionar.Execute
|
|
else
|
|
actModificar.Execute;
|
|
end;
|
|
|
|
procedure TfrPagosClientes.cxLookupComboBox1PropertiesEditValueChanged(Sender: TObject);
|
|
begin
|
|
TablaPagos.Locate('CODIGO', (Sender as TcxLookupComboBox).EditValue, [loCaseInsensitive]);
|
|
end;
|
|
|
|
procedure TfrPagosClientes.gridPagosClientesDBTableView1CustomDrawCell(
|
|
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
|
|
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
|
|
var
|
|
IndiceCol : Integer;
|
|
begin
|
|
if not AViewInfo.Selected then
|
|
begin
|
|
IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName('TIPOPAGO').Index;
|
|
if AViewInfo.GridRecord.DisplayTexts[IndiceCol] = CTE_ABONO then
|
|
ACanvas.Canvas.Font.Color := $000000CC;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrPagosClientes.actRefrescarDatosExecute(Sender: TObject);
|
|
begin
|
|
FCodigoPago := TablaPagos.FieldByName('CODIGO').AsString;
|
|
BuscarPago;
|
|
end;
|
|
|
|
procedure TfrPagosClientes.actConsultarCobrosExecute(Sender: TObject);
|
|
begin
|
|
Contenido := TfrListadoPagosCliente.Create(Self);
|
|
Contenido.Modo := Consultar;
|
|
(Contenido as TfrListadoPagosCliente).activarFacturasCobrosCliente;
|
|
end;
|
|
|
|
procedure TfrPagosClientes.SetContenido(NuevoFrame: TRdxFrame);
|
|
begin
|
|
inherited;
|
|
if (Contenido is TfrListadoPagosCliente) then
|
|
(Contenido as TfrListadoPagosCliente).CodigoCliente := TablaPagos.FieldByName('CODIGOCLIENTE').AsVariant;
|
|
end;
|
|
|
|
procedure TfrPagosClientes.bLimpiarClick(Sender: TObject);
|
|
begin
|
|
Buscar.Text := '';
|
|
end;
|
|
|
|
procedure TfrPagosClientes.BuscarPropertiesChange(Sender: TObject);
|
|
begin
|
|
FiltrarGrid(gridPagosClientes, Buscar.Text);
|
|
end;
|
|
|
|
end.
|