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/Clientes.pas

330 lines
9.7 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.0
Fecha versión actual: 03-11-2002
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
===============================================================================
}
unit Clientes;
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, RdxFrameClientes, 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, am2000utils, cxDataStorage, cxDBEdit;
type
TfrClientes = class(TRdxFrameClientes)
dsClientes: TDataSource;
brSeleccion: TRdxBarraInferior;
bSeleccionar: TRdxBoton;
bCancelar: TRdxBoton;
BarraClientes: TRdxBarraSuperior;
bAnadir: TRdxBotonSuperior;
bModificar: TRdxBotonSuperior;
bEliminar: TRdxBotonSuperior;
bConsultar: TRdxBotonSuperior;
MenuOpciones: TPopupMenu2000;
mnuAnadir: TMenuItem2000;
mnuModificar: TMenuItem2000;
mnuEliminar: TMenuItem2000;
gridClientesDBTableView1: TcxGridDBTableView;
gridClientesLevel1: TcxGridLevel;
gridClientes: TcxGrid;
mnuConsultar: TMenuItem2000;
bSeparador1: TShape;
pnlCuerpo: TPanel;
pnlSeparador: TPanel;
Acciones: TActionList;
actAnadir: TAction;
actModificar: TAction;
actEliminar: TAction;
actConsultar: TAction;
actSeleccionar: TAction;
actCancelar: TAction;
bImprimir: TRdxBotonSuperior;
actImprimir: TAction;
imgSombra: TImage;
pnlExtra: TRdxBarraSuperior;
pnlCuerpo2: TRdxPanel;
bRefrescar: TRdxBoton;
Shape1: TShape;
RdxBotonSuperior1: TRdxBotonSuperior;
actConsultarCobros: TAction;
Panel1: TPanel;
Buscar: TcxTextEdit;
bLimpiar: TRdxBoton;
eNombre: TLabel;
RdxBotonSuperior2: TRdxBotonSuperior;
Shape2: TShape;
actEtiquetas: TAction;
procedure RdxFrameClientesShow(Sender: TObject);
procedure cxLookupComboBox1PropertiesEditValueChanged(Sender: TObject);
procedure actAnadirExecute(Sender: TObject);
procedure actModificarExecute(Sender: TObject);
procedure actEliminarExecute(Sender: TObject);
procedure actConsultarExecute(Sender: TObject);
procedure gridClientesDBTableView1DblClick(Sender: TObject);
procedure actSeleccionarExecute(Sender: TObject);
procedure actCancelarExecute(Sender: TObject);
procedure actImprimirExecute(Sender: TObject);
procedure actRefrescarDatosExecute(Sender: TObject);
procedure actConsultarCobrosExecute(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure bLimpiarClick(Sender: TObject);
procedure actEtiquetasExecute(Sender: TObject);
private
procedure ActualizarBotones;
protected
procedure BuscarCliente; override;
procedure FreeContenido; override;
procedure SetContenido (NuevoFrame : TRdxFrame); override;
public
constructor Create (AOwner : TComponent); override;
destructor Destroy; override;
published
property TablaClientes;
property Entidad;
end;
var
frClientes: TfrClientes;
implementation
{$R *.DFM}
uses
IBCustomDataSet, BaseDatos, Entidades, Cliente, Variants, ListadoClientes, EtiquetasClientes,
ListadoPagosCliente, TablaFacturasCliente, TablaPagosCliente, Mensajes, Literales;
constructor TfrClientes.Create (AOwner : TComponent);
begin
inherited Create(AOwner);
Entidad := entCliente;
BaseDatos := dmBaseDatos.BD;
Transaccion := dmBaseDatos.Transaccion;
TablaClientes := TIBDataSet.Create(Self);
dsClientes.DataSet := TablaClientes;
with TablaClientes do
begin
//DisableControls;
Database := BaseDatos;
Transaction := Transaccion;
SelectSQL.Assign(dmTablaClientes.sqlGrid);
Prepare;
Open;
ActualizarBotones;
//EnableControls;
end;
dmTablaClientes.InicializarGridClientes(gridClientesDBTableView1);
gridClientesDBTableView1.OnDblClick := gridClientesDBTableView1DblClick;
gridClientesDBTableView1.Controller.GoToFirst;
end;
procedure TfrClientes.BuscarCliente;
var
i: Integer;
begin
with TablaClientes do
begin
DisableControls;
Close;
Open;
ActualizarBotones;
EnableControls;
if not Locate('CODIGO', CodigoCliente, []) then
gridClientesDBTableView1.Controller.GoToFirst
else
gridClientesDBTableView1.Controller.TopRowIndex := gridClientesDBTableView1.Controller.FocusedRowIndex;
end;
end;
destructor TfrClientes.Destroy;
begin
TablaClientes.Close;
TablaClientes.Unprepare;
TablaClientes.Free;
inherited;
end;
procedure TfrClientes.FreeContenido;
begin
if (Contenido is TRdxFrameClientes) then
CodigoCliente := (Contenido as TRdxFrameClientes).CodigoCliente;
if (Contenido is TfrListadoPagosCliente) then
CodigoCliente := (Contenido as TfrListadoPagosCliente).CodigoCliente;
inherited FreeContenido;
//gridClientes.SetFocus;
end;
procedure TfrClientes.ActualizarBotones;
begin
if BaseDatos.IsReadOnly then
begin
actAnadir.Enabled := False;
actModificar.Enabled := False;
actEliminar.Enabled := False;
actConsultar.Enabled := True;
actImprimir.Enabled := True;
actConsultarCobros.Enabled := True;
Exit;
end;
if TablaClientes.RecordCount = 0 then
begin
actAnadir.Enabled := True;
actModificar.Enabled := False;
actEliminar.Enabled := False;
actConsultar.Enabled := False;
actImprimir.Enabled := False;
actConsultarCobros.Enabled := False;
end
else begin
actAnadir.Enabled := True;
actModificar.Enabled := True;
actEliminar.Enabled := True;
actConsultar.Enabled := True;
actImprimir.Enabled := True;
actConsultarCobros.Enabled := True;
end;
end;
procedure TfrClientes.RdxFrameClientesShow(Sender: TObject);
begin
Buscar.SetFocus
end;
procedure TfrClientes.cxLookupComboBox1PropertiesEditValueChanged(
Sender: TObject);
begin
TablaClientes.Locate('CODIGO', (Sender as TcxLookupComboBox).EditValue, [loCaseInsensitive]);
end;
procedure TfrClientes.actAnadirExecute(Sender: TObject);
begin
Contenido := TfrCliente.Create(Self);
Contenido.Modo := Anadir;
end;
procedure TfrClientes.actModificarExecute(Sender: TObject);
begin
Contenido := TfrCliente.Create(Self);
Contenido.Modo := Modificar;
end;
procedure TfrClientes.actEliminarExecute(Sender: TObject);
begin
Contenido := TfrCliente.Create(Self);
Contenido.Modo := Eliminar;
end;
procedure TfrClientes.actConsultarExecute(Sender: TObject);
begin
Contenido := TfrCliente.Create(Self);
Contenido.Modo := Consultar;
end;
procedure TfrClientes.gridClientesDBTableView1DblClick(Sender: TObject);
begin
if Modo = Seleccionar then
actSeleccionar.Execute
else
actModificar.Execute;
end;
procedure TfrClientes.actSeleccionarExecute(Sender: TObject);
begin
CodigoCliente := TablaClientes.FieldByName('CODIGO').AsString;
CloseFrame;
end;
procedure TfrClientes.actCancelarExecute(Sender: TObject);
begin
FCodigoCliente := NULL;
CloseFrame;
end;
procedure TfrClientes.actImprimirExecute(Sender: TObject);
begin
Contenido := TfrListadoClientes.Create(Self);
Contenido.Modo := Imprimir;
end;
procedure TfrClientes.actRefrescarDatosExecute(Sender: TObject);
begin
FCodigoCliente := TablaClientes.FieldByName('CODIGO').AsString;
BuscarCliente;
end;
procedure TfrClientes.actConsultarCobrosExecute(Sender: TObject);
var
lCodigo : Variant;
begin
lCodigo := TablaClientes.FieldByName('CODIGO').AsVariant;
if dmTablaFacturasCliente.ExisteFacturaConCliente(lCodigo)
or dmTablaPagosCliente.ExistePagoConCliente(lCodigo) then
begin
Contenido := TfrListadoPagosCliente.Create(Self);
Contenido.Modo := Consultar;
(Contenido as TfrListadoPagosCliente).activarFacturasCobrosCliente;
end
else
VerMensajeFmt(msgCliCliNoFacPag, [lCodigo]);
end;
procedure TfrClientes.SetContenido(NuevoFrame: TRdxFrame);
begin
inherited;
if (Contenido is TfrListadoPagosCliente) then
(Contenido as TfrListadoPagosCliente).CodigoCliente := CodigoCliente;
end;
procedure TfrClientes.Edit1Change(Sender: TObject);
begin
FiltrarGrid(gridClientes, Buscar.Text);
end;
procedure TfrClientes.bLimpiarClick(Sender: TObject);
begin
Buscar.Text := '';
end;
procedure TfrClientes.actEtiquetasExecute(Sender: TObject);
begin
Contenido := TfrEtiquetasClientes.Create(Self);
Contenido.Modo := Imprimir;
end;
end.