{ =============================================================================== Copyright (©) 2001. 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: 04-10-2004 Versión actual: 1.0.0 Fecha versión actual: 04-10-2004 =============================================================================== Modificaciones: Fecha Comentarios --------------------------------------------------------------------------- =============================================================================== } unit AlbaranesInstaladores; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, RdxFrameAlbaranes, Grids, DBGrids, ComCtrls, RdxBotones, ToolWin, ExtCtrls, Tipos, Menus, am2000menuitem, am2000popupmenu, am2000, Db, DBTables, RdxPaneles, RdxBarras, RXDBCtrl, dxCntner, dxTL, dxDBCtrl, dxDBGrid, StdCtrls, RdxComboBox, pngimage; type TfrAlbaranesInstaladores = class(TRdxFrameAlbaranes) dsAlbaranes: TDataSource; BarraAlbaranes: TRdxBarraSuperior; bAnadir: TRdxBotonSuperior; bModificar: TRdxBotonSuperior; bEliminar: TRdxBotonSuperior; bConsultar: TRdxBotonSuperior; bBuscar: TRdxBotonSuperior; pnlCuerpo: TRdxPanel; pnlGridAlbaranesCliente: TPanel; pnlExtra: TRdxBarraSuperior; bImprimir: TRdxBoton; bExportar: TRdxBoton; brSeleccion: TRdxBarraInferior; bSeleccionar: TRdxBoton; bCancelarGuardar: TRdxBoton; brSimple: TRdxBarraInferior; bSalir: TRdxBoton; gridAlbaranes: TdxDBGrid; imgSombra: TImage; RdxPanel1: TRdxPanel; Label1: TLabel; cbxAno: TRdxComboBox; bEnviarCorreo: TRdxBoton; procedure bAnadirClick(Sender: TObject); procedure bModificarClick(Sender: TObject); procedure bConsultarClick(Sender: TObject); procedure bBuscarClick(Sender: TObject); procedure bEliminarClick(Sender: TObject); procedure bImprimirClick(Sender: TObject); procedure bSalirClick(Sender: TObject); procedure bSeleccionarClick(Sender: TObject); procedure bCancelarGuardarClick(Sender: TObject); procedure bExportarClick(Sender: TObject); procedure gridAlbaranesRefreshButton(Sender: TObject); procedure cbxAnoChange(Sender: TObject); procedure gridAlbaranesDblClick(Sender: TObject); procedure bEnviarCorreoClick(Sender: TObject); private FCodigoInstalador: String; procedure SetCodigoInstalador(Value : String); procedure ActualizarBotones; protected procedure BuscarAlbaran; override; procedure FreeContenido; override; procedure VerModal; override; procedure ActualizarBarras; override; public constructor Create (AOwner : TComponent); override; destructor Destroy; override; published property CodigoInstalador : String read FCodigoInstalador write SetCodigoInstalador; property TablaAlbaranes; property Entidad; end; var frAlbaranesInstaladores: TfrAlbaranesInstaladores; implementation {$R *.DFM} uses AlbaranInstalador, BuscarAlbaranInstalador, FacturaCliente, SysFunc, TablaAlbaranesInstalador, BaseDatos, Configuracion, IBCustomDataSet, FacturasClientes, Mensajes, InformeAlbaranInstalador, StrFunc, Constantes, Literales, RdxEmpresaActiva, Correo; procedure TfrAlbaranesInstaladores.FreeContenido; begin if (Contenido is TRdxFrameAlbaranes) then CodigoAlbaran := (Contenido as TRdxFrameAlbaranes).CodigoAlbaran; inherited FreeContenido; BuscarAlbaran; end; procedure TfrAlbaranesInstaladores.bAnadirClick(Sender: TObject); begin inherited; Contenido := TfrAlbaranInstalador.Create(Self); Contenido.Modo := Anadir; end; procedure TfrAlbaranesInstaladores.bModificarClick(Sender: TObject); begin CodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString; Contenido := TfrAlbaranInstalador.Create(Self); Contenido.Modo := Modificar; end; procedure TfrAlbaranesInstaladores.bConsultarClick(Sender: TObject); begin CodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString; Contenido := TfrAlbaranInstalador.Create(Self); Contenido.Modo := Consultar; end; procedure TfrAlbaranesInstaladores.bBuscarClick(Sender: TObject); begin CodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString; Contenido := TfrBuscarAlbaranInstalador.Create(Self); Contenido.Entidad := Self.Entidad; end; procedure TfrAlbaranesInstaladores.bEliminarClick(Sender: TObject); begin CodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString; Contenido := TfrAlbaranInstalador.Create(Self); Contenido.Modo := Eliminar; end; procedure TfrAlbaranesInstaladores.bImprimirClick(Sender: TObject); var FInformeAlbaran : TInformeAlbaranInstalador; begin CodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString; FCodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString; FInformeAlbaran := TInformeAlbaranInstalador.Create(Self); try FInformeAlbaran.Imprimir(FCodigoAlbaran); finally FInformeAlbaran.Free; end; end; procedure TfrAlbaranesInstaladores.ActualizarBarras; begin inherited; case Modo of Facturar : begin if BarraSeleccion <> NIL then BarraSeleccion.Visible := True; if BarraSalir <> NIL then BarraSalir.Visible := False; if BarraOperacion <> NIL then BarraOperacion.Visible := False; end; end; end; procedure TfrAlbaranesInstaladores.ActualizarBotones; begin if BaseDatos.IsReadOnly then begin bAnadir.Enabled := False; bModificar.Enabled := False; bEliminar.Enabled := False; bConsultar.Enabled := True; bBuscar.Enabled := True; bExportar.Enabled := True; bImprimir.Enabled := True; Exit; end; if TablaAlbaranes.RecordCount = 0 then begin bAnadir.Enabled := True; bModificar.Enabled := False; bEliminar.Enabled := False; bConsultar.Enabled := False; bBuscar.Enabled := False; bExportar.Enabled := False; bImprimir.Enabled := False; end else begin bAnadir.Enabled := True; bModificar.Enabled := True; bEliminar.Enabled := True; bConsultar.Enabled := True; bBuscar.Enabled := True; bExportar.Enabled := True; bImprimir.Enabled := True; end; end; procedure TfrAlbaranesInstaladores.BuscarAlbaran; begin with TablaAlbaranes do begin DisableControls; Close; ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo; Prepare; Open; dmTablaAlbaranesInstalador.InicializarTablaAlbaranes(@TablaAlbaranes); ActualizarBotones; EnableControls; Locate('CODIGO', CodigoAlbaran, []); end; end; constructor TfrAlbaranesInstaladores.Create(AOwner: TComponent); begin inherited Create(AOwner); Entidad := entAlbaranInstalador; ConfigurarFrame(Self, Self.Entidad); BaseDatos := dmBaseDatos.BD; Transaccion := dmBaseDatos.Transaccion; TablaAlbaranes := TIBDataSet.Create(Self); dsAlbaranes.DataSet := TablaAlbaranes; with TablaAlbaranes do begin DisableControls; Database := BaseDatos; Transaction := Transaccion; SelectSQL.Assign(dmTablaAlbaranesInstalador.sqlConsultarGridAlbaranes); ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo; Prepare; Open; ActualizarBotones; EnableControls; end; dmTablaAlbaranesInstalador.InicializarTablaAlbaranes(@TablaAlbaranes); dmTablaAlbaranesInstalador.InicializarGridAlbaranes(gridAlbaranes); gridAlbaranes.GotoFirst; cbxAno.Items := dmTablaAlbaranesInstalador.DarListaAnos(EmpresaActiva.Codigo); cbxAno.ItemIndex := 0; end; destructor TfrAlbaranesInstaladores.Destroy; begin TablaAlbaranes.Close; TablaAlbaranes.UnPrepare; TablaAlbaranes.Free; inherited; end; procedure TfrAlbaranesInstaladores.SetCodigoInstalador(Value: String); begin if FCodigoInstalador = Value then exit; FCodigoInstalador := Value; with TablaAlbaranes do begin DisableControls; Close; SelectSQL.Assign(dmTablaAlbaranesInstalador.sqlConsultarGridAlbaranesIns); ParamByName('CODIGOINSTALADOR').AsString := FCodigoInstalador; ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo; Prepare; Open; dmTablaAlbaranesInstalador.InicializarTablaAlbaranes(@TablaAlbaranes); ActualizarBotones; EnableControls; Locate('CODIGO', CodigoAlbaran, []); end; end; procedure TfrAlbaranesInstaladores.VerModal; begin FCodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString; inherited; end; procedure TfrAlbaranesInstaladores.bSalirClick(Sender: TObject); begin CloseFrame; end; procedure TfrAlbaranesInstaladores.bSeleccionarClick(Sender: TObject); begin CodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString; CloseFrame; end; procedure TfrAlbaranesInstaladores.bCancelarGuardarClick(Sender: TObject); begin FCodigoAlbaran := ''; CloseFrame; end; procedure TfrAlbaranesInstaladores.bExportarClick(Sender: TObject); var FInformeAlbaran : TInformeAlbaranInstalador; Fichero : String; begin CodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString; if not DarFicheroExportar(Fichero) then Exit; FCodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString; FInformeAlbaran := TInformeAlbaranInstalador.Create(Self); try FInformeAlbaran.Exportar(FCodigoAlbaran, Fichero); finally FInformeAlbaran.Free; end; end; procedure TfrAlbaranesInstaladores.gridAlbaranesRefreshButton(Sender: TObject); begin BuscarAlbaran; end; procedure TfrAlbaranesInstaladores.cbxAnoChange(Sender: TObject); begin if cbxAno.Text = CTE_TODOS then begin gridAlbaranes.Filter.Remove(gridAlbaranes.FindColumnByFieldName(CTE_ANO)); gridAlbaranes.Filter.Clear; end else begin gridAlbaranes.Filter.Clear; gridAlbaranes.Filter.Add(gridAlbaranes.FindColumnByFieldName(CTE_ANO), cbxAno.Text, cbxAno.Text); end; gridAlbaranes.SetFocus; gridAlbaranes.GotoFirst; //Falta seleccionar tupla end; procedure TfrAlbaranesInstaladores.gridAlbaranesDblClick(Sender: TObject); begin if Modo = Seleccionar then bSeleccionar.Click else bModificar.Click; end; procedure TfrAlbaranesInstaladores.bEnviarCorreoClick(Sender: TObject); var FInforme : TInformeAlbaranInstalador; Fichero : String; Datos: TDatosCorreo; begin CodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString; Datos:= Nil; Fichero := CodigoAlbaran; Fichero := DarRutaTemporal + StringReplace(Fichero, CTE_SEPSERIADO, CTE_SEPSERIADO2, [rfReplaceAll, rfIgnoreCase]); Fichero := Fichero + CTE_DOC; //Generamos el fichero para luego adjuntaro al correo FInforme:= TInformeAlbaranInstalador.Create(Self); try FInforme.Exportar(CodigoAlbaran, Fichero); finally FInforme.Free; end; try //Creamos el correo Datos:= TDatosCorreo.Create; Datos.Adjuntos.Add(Fichero); enviarCorreo(Datos); finally FreeAndNil(Datos); end; end; end.