{ =============================================================================== 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 AlbaranesProveedores; 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 TfrAlbaranesProveedores = 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 FCodigoProveedor: String; procedure SetCodigoProveedor(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 CodigoProveedor : String read FCodigoProveedor write SetCodigoProveedor; property TablaAlbaranes; property Entidad; end; var frAlbaranesProveedores: TfrAlbaranesProveedores; implementation {$R *.DFM} uses AlbaranProveedor, BuscarAlbaranProveedor, FacturaCliente, SysFunc, TablaAlbaranesProveedor, BaseDatos, Configuracion, IBCustomDataSet, FacturasClientes, Mensajes, InformeAlbaranProveedor, StrFunc, Constantes, Literales, RdxEmpresaActiva, Correo, TablaProveedores; procedure TfrAlbaranesProveedores.FreeContenido; begin if (Contenido is TRdxFrameAlbaranes) then CodigoAlbaran := (Contenido as TRdxFrameAlbaranes).CodigoAlbaran; inherited FreeContenido; BuscarAlbaran; end; procedure TfrAlbaranesProveedores.bAnadirClick(Sender: TObject); begin inherited; Contenido := TfrAlbaranProveedor.Create(Self); Contenido.Modo := Anadir; end; procedure TfrAlbaranesProveedores.bModificarClick(Sender: TObject); begin CodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString; Contenido := TfrAlbaranProveedor.Create(Self); Contenido.Modo := Modificar; end; procedure TfrAlbaranesProveedores.bConsultarClick(Sender: TObject); begin CodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString; Contenido := TfrAlbaranProveedor.Create(Self); Contenido.Modo := Consultar; end; procedure TfrAlbaranesProveedores.bBuscarClick(Sender: TObject); begin CodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString; Contenido := TfrBuscarAlbaranProveedor.Create(Self); end; procedure TfrAlbaranesProveedores.bEliminarClick(Sender: TObject); begin CodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString; Contenido := TfrAlbaranProveedor.Create(Self); Contenido.Modo := Eliminar; end; procedure TfrAlbaranesProveedores.bImprimirClick(Sender: TObject); var FInformeAlbaran : TInformeAlbaranProveedor; begin CodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString; FCodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString; FInformeAlbaran := TInformeAlbaranProveedor.Create(Self); try FInformeAlbaran.Imprimir(FCodigoAlbaran); finally FInformeAlbaran.Free; end; end; procedure TfrAlbaranesProveedores.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 TfrAlbaranesProveedores.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 TfrAlbaranesProveedores.BuscarAlbaran; begin with TablaAlbaranes do begin DisableControls; Close; ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo; Prepare; Open; dmTablaAlbaranesProveedor.InicializarTablaAlbaranes(@TablaAlbaranes); ActualizarBotones; EnableControls; Locate('CODIGO', CodigoAlbaran, []); end; end; constructor TfrAlbaranesProveedores.Create(AOwner: TComponent); begin inherited Create(AOwner); Entidad := entAlbaranProveedor; 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(dmTablaAlbaranesProveedor.sqlConsultarGridAlbaranes); ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo; Prepare; Open; ActualizarBotones; EnableControls; end; dmTablaAlbaranesProveedor.InicializarTablaAlbaranes(@TablaAlbaranes); dmTablaAlbaranesProveedor.InicializarGridAlbaranes(gridAlbaranes); gridAlbaranes.GotoFirst; cbxAno.Items := dmTablaAlbaranesProveedor.DarListaAnos(EmpresaActiva.Codigo); cbxAno.ItemIndex := 0; end; destructor TfrAlbaranesProveedores.Destroy; begin TablaAlbaranes.Close; TablaAlbaranes.UnPrepare; TablaAlbaranes.Free; inherited; end; procedure TfrAlbaranesProveedores.SetCodigoProveedor(Value: String); begin if FCodigoProveedor = Value then exit; FCodigoProveedor := Value; with TablaAlbaranes do begin DisableControls; Close; SelectSQL.Assign(dmTablaAlbaranesProveedor.sqlConsultarGridAlbaranesPro); ParamByName('CODIGOPROVEEDOR').AsString := FCodigoProveedor; ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo; Prepare; Open; dmTablaAlbaranesProveedor.InicializarTablaAlbaranes(@TablaAlbaranes); ActualizarBotones; EnableControls; Locate('CODIGO', CodigoAlbaran, []); end; end; procedure TfrAlbaranesProveedores.VerModal; begin FCodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString; inherited; end; procedure TfrAlbaranesProveedores.bSalirClick(Sender: TObject); begin CloseFrame; end; procedure TfrAlbaranesProveedores.bSeleccionarClick(Sender: TObject); begin CodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString; CloseFrame; end; procedure TfrAlbaranesProveedores.bCancelarGuardarClick(Sender: TObject); begin FCodigoAlbaran := ''; CloseFrame; end; procedure TfrAlbaranesProveedores.bExportarClick(Sender: TObject); var FInformeAlbaran : TInformeAlbaranProveedor; Fichero : String; begin CodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString; if not DarFicheroExportar(Fichero) then Exit; FCodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString; FInformeAlbaran := TInformeAlbaranProveedor.Create(Self); try FInformeAlbaran.Exportar(FCodigoAlbaran, Fichero); finally FInformeAlbaran.Free; end; end; procedure TfrAlbaranesProveedores.gridAlbaranesRefreshButton(Sender: TObject); begin BuscarAlbaran; end; procedure TfrAlbaranesProveedores.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 TfrAlbaranesProveedores.gridAlbaranesDblClick(Sender: TObject); begin if Modo = Seleccionar then bSeleccionar.Click else bModificar.Click; end; procedure TfrAlbaranesProveedores.bEnviarCorreoClick(Sender: TObject); var FInforme : TInformeAlbaranProveedor; Fichero : String; Datos: TDatosCorreo; CodigoProveedor: String; begin CodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString; CodigoProveedor := TablaAlbaranes.FieldByName('CODIGOPROVEEDOR').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:= TInformeAlbaranProveedor.Create(Self); try FInforme.Exportar(CodigoAlbaran, Fichero); finally FInforme.Free; end; try //Creamos el correo Datos:= TDatosCorreo.Create; Datos.Direcciones.add(dmTablaProveedores.darCorreo(CodigoProveedor)); Datos.Adjuntos.Add(Fichero); enviarCorreo(Datos); finally FreeAndNil(Datos); end; end; end.