This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
Miguelo_FactuGES/Proveedores/PagosProveedores.pas

355 lines
11 KiB
ObjectPascal
Raw Normal View History

{
===============================================================================
Copyright (<EFBFBD>) 2002. Rodax Software.
===============================================================================
Los contenidos de este fichero son propiedad de Rodax Software titular del
copyright. Este fichero s<EFBFBD>lo podr<EFBFBD> ser copiado, distribuido y utilizado,
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
acuerdo con los t<EFBFBD>rminos y condiciones establecidas en el acuerdo/contrato
bajo el que se suministra.
-----------------------------------------------------------------------------
Web: www.rodax-software.com
===============================================================================
Fecha primera versi<EFBFBD>n: 03-11-2002
Versi<EFBFBD>n actual: 1.0.1
Fecha versi<EFBFBD>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
gridPagosProveedores.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.