This repository has been archived on 2024-12-02. You can view files and clone it, but cannot push or open issues or pull requests.
FactuGES/Clientes/PagosClientes.pas
2007-06-26 08:08:27 +00:00

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.