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/Proveedores/PagosProveedores.pas
2007-06-26 08:08:27 +00:00

355 lines
11 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 PagosProveedores;
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
TfrPagosProveedores = class(TRdxFramePagos)
dsPagosProveedores: TDataSource;
brSeleccion: TRdxBarraInferior;
bSeleccionar: TRdxBoton;
bCancelar: TRdxBoton;
BarraPagosProveedores: TRdxBarraSuperior;
MenuOpciones: TPopupMenu2000;
mnuOpPagoA: TMenuItem2000;
mnuEliminar: TMenuItem2000;
gridPagosProveedoresDBTableView1: TcxGridDBTableView;
gridPagosProveedoresLevel1: TcxGridLevel;
gridPagosProveedores: TcxGrid;
mnuConsultar: TMenuItem2000;
pnlCuerpo: TPanel;
Acciones: TActionList;
actAnadirPago: TAction;
actEliminar: TAction;
actConsultar: TAction;
actSeleccionar: TAction;
actCancelar: TAction;
pnlCuerpo2: TRdxPanel;
pnlExtra: TRdxBarraSuperior;
bAnadir: TRdxBotonMenu;
bSeparador1: TShape;
mnuOpPagoB: TMenuItem2000;
menuAnadir: TPopupMenu2000;
mnuPagoA: TMenuItem2000;
bModificar: TRdxBotonSuperior;
bEliminar: TRdxBotonSuperior;
bConsultar: TRdxBotonSuperior;
actAnadirAbono: TAction;
actModificar: TAction;
mnuAbonoA: TMenuItem2000;
mnuAnadir: TMenuItem2000;
mnuOpAbonoA: TMenuItem2000;
OpSep: TMenuItem2000;
mnuOpAbonoB: TMenuItem2000;
mnuModificar: TMenuItem2000;
imgSombra: TImage;
bRefrescar: TRdxBoton;
Panel1: TPanel;
eNombre: TLabel;
Buscar: TcxTextEdit;
bLimpiar: TRdxBoton;
procedure actAnadirPagoExecute(Sender: TObject);
procedure actAnadirAbonoExecute(Sender: TObject);
procedure actAnadirPagoBExecute(Sender: TObject);
procedure actAnadirAbonoBExecute(Sender: TObject);
procedure actModificarExecute(Sender: TObject);
procedure actEliminarExecute(Sender: TObject);
procedure actConsultarExecute(Sender: TObject);
procedure actSeleccionarExecute(Sender: TObject);
procedure actCancelarExecute(Sender: TObject);
procedure bLimpiarClick(Sender: TObject);
procedure RdxFramePagosProveedoresShow(Sender: TObject);
procedure gridPagosProveedoresDBTableView1DblClick(Sender: TObject);
procedure cxLookupComboBox1PropertiesEditValueChanged(Sender: TObject);
procedure gridPagosProveedoresDBTableView1CustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
procedure actRefrescarDatosExecute(Sender: TObject);
procedure BuscarPropertiesChange(Sender: TObject);
private
procedure ActualizarBotones;
protected
procedure BuscarPago; override;
procedure FreeContenido; override;
public
constructor Create (AOwner : TComponent); override;
destructor Destroy; override;
published
end;
var
frPagosProveedores: TfrPagosProveedores;
implementation
{$R *.DFM}
uses
Constantes, IBCustomDataSet, BaseDatos, Entidades, PagoProveedor, Variants,
TablaPagosCliente, Mensajes, Literales, TablaPagosProveedor,
TablaEmpresas;
////////////////////////////////////////////////////////////////////////////////
// PRIVATE
////////////////////////////////////////////////////////////////////////////////
procedure TfrPagosProveedores.ActualizarBotones;
begin
if BaseDatos.IsReadOnly then
begin
actAnadirPago.Enabled := False;
actAnadirAbono.Enabled := False;
actModificar.Enabled := False;
actEliminar.Enabled := False;
actConsultar.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;
end
else begin
actAnadirPago.Enabled := True;
actAnadirAbono.Enabled := True;
actModificar.Enabled := True;
actEliminar.Enabled := True;
actConsultar.Enabled := True;
end;
end;
////////////////////////////////////////////////////////////////////////////////
// PROTECTED
////////////////////////////////////////////////////////////////////////////////
procedure TfrPagosProveedores.BuscarPago;
begin
with TablaPagos do
begin
DisableControls;
Close;
Open;
dmTablaPagosProveedor.InicializarTablaPagosProveedores(@TablaPagos);
ActualizarBotones;
EnableControls;
if not Locate('CODIGO', CodigoPago, []) then
gridPagosProveedoresDBTableView1.Controller.GoToFirst
else
gridPagosProveedoresDBTableView1.Controller.TopRowIndex := gridPagosProveedoresDBTableView1.Controller.FocusedRowIndex;
end;
end;
procedure TfrPagosProveedores.FreeContenido;
begin
if (Contenido is TRdxFramePagos) then
begin
CodigoPago := (Contenido as TRdxFramePagos).CodigoPago;
end;
inherited FreeContenido;
//gridPagosProveedores.SetFocus;
end;
////////////////////////////////////////////////////////////////////////////////
// PUBLIC
////////////////////////////////////////////////////////////////////////////////
constructor TfrPagosProveedores.Create (AOwner : TComponent);
begin
inherited Create(AOwner);
Entidad := entPagoProveedor;
BaseDatos := dmBaseDatos.BD;
Transaccion := dmBaseDatos.Transaccion;
TablaPagos := TIBDataSet.Create(Self);
dsPagosProveedores.DataSet := TablaPagos;
with TablaPagos do
begin
DisableControls;
Database := BaseDatos;
Transaction := Transaccion;
SelectSQL.Assign(dmTablaPagosProveedor.sqlGrid);
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
Prepare;
Open;
ActualizarBotones;
EnableControls;
end;
dmTablaPagosProveedor.InicializarGridPagosProveedores(gridPagosProveedoresDBTableView1);
dmTablaPagosProveedor.InicializarTablaPagosProveedores(@TablaPagos);
gridPagosProveedoresDBTableView1.OnDblClick := gridPagosProveedoresDBTableView1DblClick;
end;
destructor TfrPagosProveedores.Destroy;
begin
TablaPagos.Close;
TablaPagos.Unprepare;
TablaPagos.Free;
inherited;
end;
procedure TfrPagosProveedores.actAnadirPagoExecute(Sender: TObject);
begin
if (Contenido <> Nil) and (Contenido.Modo = Anadir) then
exit;
Contenido := TfrPagoProveedor.Create(Self);
Contenido.Entidad := entPagoProveedor;
Contenido.Modo := Anadir;
end;
procedure TfrPagosProveedores.actAnadirAbonoExecute(Sender: TObject);
begin
if (Contenido <> Nil) and (Contenido.Modo = Anadir) then
exit;
Contenido := TfrPagoProveedor.Create(Self);
Contenido.Entidad := entAbonoProveedor;
Contenido.Modo := Anadir;
end;
procedure TfrPagosProveedores.actAnadirPagoBExecute(Sender: TObject);
begin
if (Contenido <> Nil) and (Contenido.Modo = Anadir) then
exit;
Contenido := TfrPagoProveedor.Create(Self);
Contenido.Entidad := entPagoProveedor;
Contenido.Modo := Anadir;
end;
procedure TfrPagosProveedores.actAnadirAbonoBExecute(Sender: TObject);
begin
if (Contenido <> Nil) and (Contenido.Modo = Anadir) then
exit;
Contenido := TfrPagoProveedor.Create(Self);
Contenido.Entidad := entAbonoProveedor;
Contenido.Modo := Anadir;
end;
procedure TfrPagosProveedores.actModificarExecute(Sender: TObject);
begin
Contenido := TfrPagoProveedor.Create(Self);
Contenido.Modo := Modificar;
end;
procedure TfrPagosProveedores.actEliminarExecute(Sender: TObject);
begin
Contenido := TfrPagoProveedor.Create(Self);
Contenido.Modo := Eliminar;
end;
procedure TfrPagosProveedores.actConsultarExecute(Sender: TObject);
begin
Contenido := TfrPagoProveedor.Create(Self);
Contenido.Modo := Consultar;
end;
procedure TfrPagosProveedores.actSeleccionarExecute(Sender: TObject);
begin
if TablaPagos.RecordCount = 0 then
begin
VerMensaje(msgCliNoExistePag);
exit;
end;
CodigoPago := TablaPagos.FieldByName('CODIGO').AsString;
CloseFrame;
end;
procedure TfrPagosProveedores.actCancelarExecute(Sender: TObject);
begin
CodigoPago := NULL;
CloseFrame;
end;
procedure TfrPagosProveedores.bLimpiarClick(Sender: TObject);
begin
Buscar.Text := '';
end;
procedure TfrPagosProveedores.RdxFramePagosProveedoresShow(Sender: TObject);
begin
Buscar.SetFocus
end;
procedure TfrPagosProveedores.gridPagosProveedoresDBTableView1DblClick(Sender: TObject);
begin
if Modo = Seleccionar then
actSeleccionar.Execute
else
actModificar.Execute;
end;
procedure TfrPagosProveedores.cxLookupComboBox1PropertiesEditValueChanged(Sender: TObject);
begin
TablaPagos.Locate('CODIGO', (Sender as TcxLookupComboBox).EditValue, [loCaseInsensitive]);
end;
procedure TfrPagosProveedores.gridPagosProveedoresDBTableView1CustomDrawCell(
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 TfrPagosProveedores.actRefrescarDatosExecute(Sender: TObject);
begin
FCodigoPago := TablaPagos.FieldByName('CODIGO').AsString;
BuscarPago;
end;
procedure TfrPagosProveedores.BuscarPropertiesChange(Sender: TObject);
begin
FiltrarGrid(gridPagosProveedores, Buscar.Text);
end;
end.