{ =============================================================================== 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 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.