{ =============================================================================== 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: 05-12-2002 Versión actual: 1.0.1 Fecha versión actual: 02-02-2004 =============================================================================== Modificaciones: Fecha Comentarios --------------------------------------------------------------------------- 02-02-2004 Se ha eliminado el atributo SERIE (P8 MULTIEMPRESA) Se ha adaptado a los nuevos contadores =============================================================================== } unit FacturasProveedores; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, RdxFrameFacturasProveedor, RdxBotones, ExtCtrls, RdxPaneles, RdxBarras, Grids, DBGrids, RXDBCtrl, Menus, am2000menuitem, RdxFrame, am2000popupmenu, am2000, Db, DBTables, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxEdit, cxDBData, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, cxContainer, cxTextEdit, cxMaskEdit, cxDropDownEdit, StdCtrls, ActnList, RdxEmpresaActiva, am2000utils, cxDataStorage; type TfrFacturasProveedores = class(TRdxFrameFacturasProveedor) BarraFacturas: TRdxBarraSuperior; bAnadir: TRdxBotonMenu; bModificar: TRdxBotonSuperior; bEliminar: TRdxBotonSuperior; bConsultar: TRdxBotonSuperior; pnlCuerpo: TRdxPanel; pnlGridFacturas: TPanel; dsFacturas: TDataSource; brSeleccion: TRdxBarraInferior; bSeleccionar: TRdxBoton; bCancelar: TRdxBoton; brSimple: TRdxBarraInferior; bSalir: TRdxBoton; bSeparador2: TShape; gridFacturas: TcxGrid; gridFacturasDBTableView1: TcxGridDBTableView; gridFacturasLevel1: TcxGridLevel; MenuOpciones: TPopupMenu2000; mnuAnadir: TMenuItem2000; mnuModificar: TMenuItem2000; mnuEliminar: TMenuItem2000; mnuConsultar: TMenuItem2000; pnlExtra: TRdxBarraSuperior; menuAnadir: TPopupMenu2000; Aadirfactura1: TMenuItem2000; Acciones: TActionList; actAnadir: TAction; actModificar: TAction; actEliminar: TAction; actConsultar: TAction; actSeleccionar: TAction; actCancelar: TAction; actAceptar: TAction; MenuItem1: TMenuItem2000; actAnadirAbono: TAction; bPagosPendientes: TRdxBotonSuperior; actFacturasPendientes: TAction; imgSombra: TImage; bRefrescar: TRdxBoton; Panel1: TPanel; eNombre: TLabel; Buscar: TcxTextEdit; bLimpiar: TRdxBoton; bFacturar: TRdxBoton; actCambiarSituacion: TAction; procedure RdxFrameFacturasProveedorShow(Sender: TObject); procedure actAnadirExecute(Sender: TObject); procedure actModificarExecute(Sender: TObject); procedure actEliminarExecute(Sender: TObject); procedure actConsultarExecute(Sender: TObject); procedure actSeleccionarExecute(Sender: TObject); procedure actCancelarExecute(Sender: TObject); procedure actAceptarExecute(Sender: TObject); procedure gridFacturasDBTableView1DblClick(Sender: TObject); procedure gridFacturasDBTableView1CustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure actAnadirAbonoBExecute(Sender: TObject); procedure actAnadirAbonoExecute(Sender: TObject); procedure actFacturasPendientesExecute(Sender: TObject); procedure actRefrescarDatosExecute(Sender: TObject); procedure BuscarPropertiesChange(Sender: TObject); procedure bLimpiarClick(Sender: TObject); procedure actCambiarSituacionExecute(Sender: TObject); private procedure ActualizarBotones; protected procedure BuscarFactura; override; procedure FreeContenido; override; procedure CambiarModo(ModoAnterior, Modo : TRdxModo); override; public constructor Create (AOwner : TComponent); override; destructor Destroy; override; published property TablaFacturasProveedor; property Entidad; end; var frFacturasProveedores: TfrFacturasProveedores; implementation {$R *.DFM} { TfrFacturasProveedores } uses BaseDatos, TablaFacturasProveedor, IBDatabase, CambiarSituacionFacturas, IBCustomDataSet, Mensajes, Entidades, Variants, FacturaProveedor, Constantes, FacturasProveedorPendientes, TablaEmpresas, Configuracion; procedure TfrFacturasProveedores.BuscarFactura; begin with TablaFacturasProveedor do begin DisableControls; Close; Open; dmTablaFacturasProveedor.InicializarTablaFacturas(@TablaFacturasProveedor); ActualizarBotones; EnableControls; if not Locate('CODIGO', CodigoFactura, []) then gridFacturasDBTableView1.Controller.GoToFirst else gridFacturasDBTableView1.Controller.TopRowIndex := gridFacturasDBTableView1.Controller.FocusedRowIndex; end; end; constructor TfrFacturasProveedores.Create(AOwner: TComponent); begin inherited Create(AOwner); Entidad := entFacturaProveedor; ConfigurarFrame(Self, Entidad); BaseDatos := dmBaseDatos.BD; Transaccion := dmBaseDatos.Transaccion; TablaFacturasProveedor := TIBDataSet.Create(Self); dsFacturas.DataSet := TablaFacturasProveedor; with TablaFacturasProveedor do begin Database := BaseDatos; Transaction := Transaccion; SelectSQL.Assign(dmTablaFacturasProveedor.sqlConsultarGridFacturas); ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo; Prepare; Open; ActualizarBotones; end; dmTablaFacturasProveedor.InicializarTablaFacturas(@TablaFacturasProveedor); dmTablaFacturasProveedor.InicializarGridFacturas(gridFacturas); gridFacturasDBTableView1.OnDblClick := gridFacturasDBTableView1DblClick; gridFacturasDBTableView1.Controller.GoToFirst; end; destructor TfrFacturasProveedores.Destroy; begin TablaFacturasProveedor.Close; TablaFacturasProveedor.UnPrepare; TablaFacturasProveedor.Free; inherited; end; procedure TfrFacturasProveedores.FreeContenido; begin if (Contenido is TRdxFrameFacturasProveedor) then CodigoFactura := (Contenido as TRdxFrameFacturasProveedor).CodigoFactura; inherited FreeContenido; // gridFacturas.SetFocus; end; procedure TfrFacturasProveedores.ActualizarBotones; begin if BaseDatos.IsReadOnly then begin actAnadir.Enabled := False; actModificar.Enabled := False; actEliminar.Enabled := False; actConsultar.Enabled := True; actFacturasPendientes.Enabled := True; Exit; end; if TablaFacturasProveedor.RecordCount = 0 then begin actAnadir.Enabled := True; actModificar.Enabled := False; actEliminar.Enabled := False; actConsultar.Enabled := False; actFacturasPendientes.Enabled := False; end else begin actAnadir.Enabled := True; actModificar.Enabled := True; actEliminar.Enabled := True; actConsultar.Enabled := True; actFacturasPendientes.Enabled := True; end; end; procedure TfrFacturasProveedores.RdxFrameFacturasProveedorShow( Sender: TObject); begin gridFacturas.SetFocus end; procedure TfrFacturasProveedores.actAnadirExecute(Sender: TObject); begin Contenido := TfrFacturaProveedor.Create(Self); Contenido.Entidad := entFacturaProveedor; Contenido.Modo := Anadir; end; procedure TfrFacturasProveedores.actModificarExecute(Sender: TObject); begin Contenido := TfrFacturaProveedor.Create(Self); Contenido.Modo := Modificar; end; procedure TfrFacturasProveedores.actEliminarExecute(Sender: TObject); begin Contenido := TfrFacturaProveedor.Create(Self); Contenido.Modo := Eliminar; end; procedure TfrFacturasProveedores.actConsultarExecute(Sender: TObject); begin Contenido := TfrFacturaProveedor.Create(Self); Contenido.Modo := Consultar; end; procedure TfrFacturasProveedores.actSeleccionarExecute(Sender: TObject); begin CodigoFactura := TablaFacturasProveedor.FieldByName('CODIGO').AsString; CloseFrame; end; procedure TfrFacturasProveedores.actCancelarExecute(Sender: TObject); begin FCodigoFactura := NULL; CloseFrame; end; procedure TfrFacturasProveedores.actAceptarExecute(Sender: TObject); begin CloseFrame; end; procedure TfrFacturasProveedores.gridFacturasDBTableView1DblClick( Sender: TObject); begin if Modo = Seleccionar then actSeleccionar.Execute else actModificar.Execute; end; procedure TfrFacturasProveedores.gridFacturasDBTableView1CustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); var IndiceCol : Integer; begin if not AViewInfo.Selected then begin IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName('CLASEFACTURA').Index; if UpperCase(AViewInfo.GridRecord.DisplayTexts[IndiceCol]) = CTE_CF_ABONO then ACanvas.Canvas.Font.Color := $000000CC; end; end; procedure TfrFacturasProveedores.actAnadirAbonoBExecute(Sender: TObject); begin Contenido := TfrFacturaProveedor.Create(Self); Contenido.Entidad := entAbonoProveedor; Contenido.Modo := Anadir; end; procedure TfrFacturasProveedores.actAnadirAbonoExecute(Sender: TObject); begin Contenido := TfrFacturaProveedor.Create(Self); Contenido.Entidad := entAbonoProveedor; Contenido.Modo := Anadir; end; procedure TfrFacturasProveedores.actFacturasPendientesExecute( Sender: TObject); begin Contenido := TfrFacturasProveedorPendientes.Create(Self); end; procedure TfrFacturasProveedores.CambiarModo(ModoAnterior, Modo: TRdxModo); begin inherited; dmTablaFacturasProveedor.InicializarTablaFacturas(@TablaFacturasProveedor); end; procedure TfrFacturasProveedores.actRefrescarDatosExecute(Sender: TObject); begin FCodigoFactura := TablaFacturasProveedor.FieldByName('CODIGO').AsString; BuscarFactura; end; procedure TfrFacturasProveedores.BuscarPropertiesChange(Sender: TObject); begin FiltrarGrid(gridFacturas, Buscar.Text); end; procedure TfrFacturasProveedores.bLimpiarClick(Sender: TObject); begin Buscar.Text := ''; end; procedure TfrFacturasProveedores.actCambiarSituacionExecute(Sender: TObject); var IndiceCol1 : Integer; IndiceSel : Integer; fCambiarSituacionFacturas : TfrCambiarSituacionFacturas; begin fCambiarSituacionFacturas := TfrCambiarSituacionFacturas.Create(Self); fCambiarSituacionFacturas.Entidad := entFacturaProveedor; //Rellenamos la propiedad de la unidad CambiarSituacion con los códigos seleccionados IndiceCol1 := gridFacturasDBTableView1.GetColumnByFieldName('CODIGO').Index; for IndiceSel:=0 to gridFacturasDBTableView1.Controller.SelectedRowCount-1 do fCambiarSituacionFacturas.CodigosFacturas.Append(gridFacturasDBTableView1.Controller.SelectedRows[IndiceSel].Values[IndiceCol1]); try fCambiarSituacionFacturas.ShowModal; finally fCambiarSituacionFacturas.Free; bRefrescar.Click; end; end; end.