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

696 lines
22 KiB
ObjectPascal
Raw Normal View History

{
===============================================================================
Copyright (<EFBFBD>) 2001. 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: 01-10-2001
Versi<EFBFBD>n actual: 1.1.1
Fecha versi<EFBFBD>n actual: 07-03-2004
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
09-10-2001 Al pulsar la tecla ESC se activa el bot<EFBFBD>n 'Cancelar'. S<EFBFBD>lo
pasa cuando este frame est<EFBFBD> en una ventana modal.
21-10-2001 Se ha cambiado la etiqueta 'Facturar pedido' por
'Hacer factura'.
05-11-2001 El mensaje de error al devolver un pedido estaba mal.
12-01-2002 A<EFBFBD>adido el cliente final a los pedidos de proveedor.
18-01-2002 Se han coloreado las filas del grid dependiendo de la
situaci<EFBFBD>n de la factura.
22-01-2002 Se permite modificar un pedido parcialmente recibido.
07-04-2002 Se ha adaptado para la transacci<EFBFBD>n <EFBFBD>nica.
04-05-2002 Adaptaci<EFBFBD>n al grid 'TdxDBGrid'.
02-08-2002 Asociar la tecla 'Esc' con el bot<EFBFBD>n 'Aceptar'.
08-04-2003 P263. Agrupar por a<EFBFBD>os los pedidos.
06-03-2004 Al hacer doble click sobre el grid, se pasar<EFBFBD> a modificar el
registro o se seleccionar<EFBFBD>, dependiendo del modo en el que
se encuentre la pantalla.
07-03-2004 p272. Adaptaci<EFBFBD>n a multiempresa.
===============================================================================
}
unit PedidosProveedores;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
RdxFramePedidosProveedor, ComCtrls, RdxBotones, ToolWin, Grids, DBGrids,
RdxPaneles, RdxBarras, Tipos, Db, DBTables, RXDBCtrl, RdxFrame,
ExtCtrls, Ibdatabase, dxCntner, dxTL, dxDBCtrl, dxDBGrid, Menus,
am2000menuitem, am2000popupmenu, am2000, StdCtrls, RdxComboBox, ActnList,
am2000utils;
type
TfrPedidosProveedores = class(TRdxFramePedidosProveedor)
dsPedidos: TDataSource;
BarraPedidos: TRdxBarraSuperior;
bAnadir: TRdxBotonSuperior;
bModificar: TRdxBotonSuperior;
bEliminar: TRdxBotonSuperior;
bConsultar: TRdxBotonSuperior;
bBuscar: TRdxBotonSuperior;
brSeleccion: TRdxBarraInferior;
bSeleccionar: TRdxBoton;
bCancelarGuardar: TRdxBoton;
brSimple: TRdxBarraInferior;
bSalir: TRdxBoton;
pnlCuerpo: TRdxPanel;
pnlExtra: TRdxBarraSuperior;
bEmitir: TRdxBoton;
bRecibir: TRdxBoton;
bCancelar: TRdxBoton;
pnlGridPedidosProveedores: TPanel;
bDevolver: TRdxBoton;
bFacturar: TRdxBoton;
bImprimir: TRdxBoton;
bExportar: TRdxBoton;
gridPedidos: TdxDBGrid;
bListar: TRdxBotonMenu;
menuListar: TPopupMenu2000;
Listadodepedidosdeproveedor1: TMenuItem2000;
ActionList1: TActionList;
actAnadir: TAction;
imgSombra: TImage;
RdxPanel1: TRdxPanel;
Label1: TLabel;
cbxAno: TRdxComboBox;
bEnviarCorreo: TRdxBoton;
procedure bEmitirPedidoClick(Sender: TObject);
procedure bRecibirPedidoClick(Sender: TObject);
procedure bSeleccionarClick(Sender: TObject);
procedure bCancelarGuardarClick(Sender: TObject);
procedure bExportarClick(Sender: TObject);
procedure bCancelarClick(Sender: TObject);
procedure bSalirClick(Sender: TObject);
procedure bDevolverClick(Sender: TObject);
procedure bImprimirClick(Sender: TObject);
procedure bFacturarClick(Sender: TObject);
procedure gridPedidosCustomDrawCell(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; ANode: TdxTreeListNode; AColumn: TdxTreeListColumn;
ASelected, AFocused, ANewItemRow: Boolean; var AText: String;
var AColor: TColor; AFont: TFont; var AAlignment: TAlignment;
var ADone: Boolean);
procedure Listadodepedidosdeproveedor1Click(Sender: TObject);
procedure cbxAnoChange(Sender: TObject);
procedure actAnadirExecute(Sender: TObject);
procedure actModificarExecute(Sender: TObject);
procedure actEliminarExecute(Sender: TObject);
procedure actConsultarExecute(Sender: TObject);
procedure actBuscarExecute(Sender: TObject);
procedure gridPedidosDblClick(Sender: TObject);
procedure bEnviarCorreoClick(Sender: TObject);
private
FCodigoProveedor : string;
procedure CancelarPedido;
procedure SetCodigoProveedor(Value : String);
procedure ActualizarBotones;
protected
procedure BuscarPedido; override;
procedure FreeContenido; override;
procedure VerModal; override;
procedure CambiarModo(ModoAnterior, Modo : TRdxModo); override;
procedure ActualizarBarras; override;
procedure SetContenido (NuevoFrame : TRdxFrame); override;
public
constructor Create (AOwner : TComponent); overload; override;
destructor Destroy; override;
published
property CodigoProveedor : String read FCodigoProveedor write SetCodigoProveedor;
property TablaPedidosProveedor;
property Entidad;
end;
var
frPedidosProveedores: TfrPedidosProveedores;
implementation
{$R *.DFM}
uses
PedidoProveedor, BuscarPedidoProveedor, StrFunc, Configuracion,
BaseDatos, TablaPedidosProveedor, IBCustomDataSet, SysFunc,
RdxFrameAlmacenes, InformePedidoProveedor, Mensajes,
EmitirPedidoProveedor, MovimientoAlmacenes, FacturaProveedor,
ListadoPedidosProv, Constantes, Literales, RdxEmpresaActiva, Correo,
TablaProveedores;
procedure TfrPedidosProveedores.bEmitirPedidoClick(Sender: TObject);
var
SituacionAux : String;
begin
FCodigoPedido := TablaPedidosProveedor.FieldByName('CODIGO').AsString;
SituacionAux := dmTablaPedidosProveedor.DarSituacion(EmpresaActiva.Codigo, CodigoPedido);
if SituacionAux <> 'NO EMITIDO' then
begin
VerMensajeFmt(msgPedidoNoEmitir, [LowerCase(SituacionAux)]);
exit;
end;
CaptionModal := 'Emitir pedido de proveedor';
WidthModal := 425;
HeightModal := 195;
ModoModal := Emitir;
ContenidoModal := TfrEmitirPedidoProveedor.Create(Self);
end;
procedure TfrPedidosProveedores.bRecibirPedidoClick(Sender: TObject);
var
SituacionAux : String;
begin
FCodigoPedido := TablaPedidosProveedor.FieldByName('CODIGO').AsString;
SituacionAux := dmTablaPedidosProveedor.DarSituacion(EmpresaActiva.Codigo, CodigoPedido);
if (SituacionAux <> 'EMITIDO') and
(SituacionAux <> 'PARCIALMENTE RECIBIDO') then
begin
VerMensajeFmt(msgPedidoNoRecibir, [LowerCase(SituacionAux)]);
exit;
end;
EntidadModal := entArticulosAlmacen;
ModoModal := EntradaPedido;
ContenidoModal := TfrMovimientoAlmacenes.Create(Self);
end;
constructor TfrPedidosProveedores.Create (AOwner : TComponent);
begin
inherited Create(AOwner);
Entidad := entPedidoProveedor;
ConfigurarFrame(Self, Self.Entidad);
BaseDatos := dmBaseDatos.BD;
Transaccion := dmBaseDatos.Transaccion;
TablaPedidosProveedor := TIBDataSet.Create(Self);
dsPedidos.DataSet := TablaPedidosProveedor;
with TablaPedidosProveedor do
begin
DisableControls;
Database := BaseDatos;
Transaction := Transaccion;
SelectSQL.Assign(dmTablaPedidosProveedor.sqlConsultarGridPedidos);
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
Prepare;
Open;
ActualizarBotones;
EnableControls;
end;
dmTablaPedidosProveedor.InicializarTablaPedidos(@TablaPedidosProveedor);
dmTablaPedidosProveedor.InicializarGridPedidos(gridPedidos);
gridPedidos.GotoFirst;
cbxAno.Items := dmTablaPedidosProveedor.DarListaAnos(EmpresaActiva.Codigo);
cbxAno.ItemIndex := 0;
end;
destructor TfrPedidosProveedores.Destroy;
begin
TablaPedidosProveedor.Close;
TablaPedidosProveedor.UnPrepare;
TablaPedidosProveedor.Free;
inherited;
end;
procedure TfrPedidosProveedores.BuscarPedido;
begin
with TablaPedidosProveedor do
begin
DisableControls;
Close;
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
Prepare;
Open;
dmTablaPedidosProveedor.InicializarTablaPedidos(@TablaPedidosProveedor);
ActualizarBotones;
EnableControls;
Locate('CODIGO', CodigoPedido, []);
end;
end;
procedure TfrPedidosProveedores.FreeContenido;
begin
if (Contenido is TRdxFramePedidosProveedor) then
CodigoPedido := (Contenido as TRdxFramePedidosProveedor).CodigoPedido;
if (ContenidoModal is TfrEmitirPedidoProveedor) or
(ContenidoModal is TfrMovimientoAlmacenes) or
(ContenidoModal is TfrFacturaProveedor) then
BuscarPedido; // Refrescar la tabla
inherited FreeContenido;
end;
procedure TfrPedidosProveedores.bSeleccionarClick(Sender: TObject);
var
SituacionAux : String;
begin
SituacionAux := UpperCase(TablaPedidosProveedor.FieldByName('SITUACION').AsString);
if Modo = Seleccionar then
begin
if SituacionAux = 'EMITIDO' then
begin
VerMensajeFmt(msgPedidoNoModificar, ['emitido']);
exit;
end;
if SituacionAux = 'PARCIALMENTE RECIBIDO' then
begin
VerMensajeFmt(msgPedidoNoModificar, ['parcialmente recibido']);
exit;
end;
if SituacionAux = 'TOTALMENTE RECIBIDO' then
begin
VerMensajeFmt(msgPedidoNoModificar, ['totalmente recibido']);
exit;
end;
if SituacionAux = 'DEVUELTO' then
begin
VerMensajeFmt(msgPedidoNoModificar, ['devuelto']);
exit;
end;
end;
FCodigoPedido := TablaPedidosProveedor.FieldByName('CODIGO').AsString;
CloseFrame;
end;
procedure TfrPedidosProveedores.bCancelarGuardarClick(Sender: TObject);
begin
FCodigoPedido := NULL;
CloseFrame;
end;
procedure TfrPedidosProveedores.bExportarClick(Sender: TObject);
var
Fichero : String;
FInformePedidoProveedor : TInformePedidoProveedor;
begin
if not DarFicheroExportar(Fichero) then
Exit;
FCodigoPedido := TablaPedidosProveedor.FieldByName('CODIGO').AsString;
FInformePedidoProveedor := TInformePedidoProveedor.Create(Self);
try
FInformePedidoProveedor.Exportar(CodigoPedido, Fichero)
finally
FInformePedidoProveedor.Free;
end;
end;
procedure TfrPedidosProveedores.CancelarPedido;
begin
dmTablaPedidosProveedor.CancelarPedido(EmpresaActiva.Codigo, FCodigoPedido);
BuscarPedido;
end;
procedure TfrPedidosProveedores.bCancelarClick(Sender: TObject);
var
SituacionAux : String;
begin
FCodigoPedido := TablaPedidosProveedor.FieldByName('CODIGO').AsString;
SituacionAux := dmTablaPedidosProveedor.DarSituacion(EmpresaActiva.Codigo, CodigoPedido);
if SituacionAux <> 'EMITIDO' then
begin
VerMensajeFmt(msgPedidoNoCancelar, [LowerCase(SituacionAux)]);
exit;
end;
case VerMensajePreguntaFmt(msgCancelarPedido, [CodigoPedido]) of
IDYES : CancelarPedido;
else
exit;
end;
end;
procedure TfrPedidosProveedores.VerModal;
begin
FCodigoPedido := TablaPedidosProveedor.FieldByName('CODIGO').AsString;
FCodigoProveedor := TablaPedidosProveedor.FieldByName('CODIGOPROVEEDOR').AsString;
if (ContenidoModal is TfrEmitirPedidoProveedor) then
(ContenidoModal as TfrEmitirPedidoProveedor).CodigoPedido := CodigoPedido;
if (ContenidoModal is TfrFacturaProveedor) then
begin
(ContenidoModal as TfrFacturaProveedor).CodigoProveedor := CodigoProveedor;
(ContenidoModal as TfrFacturaProveedor).CodigoPedido := CodigoPedido;
end;
if (ContenidoModal is TfrMovimientoAlmacenes) then
(ContenidoModal as TfrMovimientoAlmacenes).CodigoPedido := CodigoPedido;
inherited;
end;
procedure TfrPedidosProveedores.SetCodigoProveedor(Value: String);
begin
if FCodigoProveedor = Value then
exit;
FCodigoProveedor := Value;
with TablaPedidosProveedor do
begin
DisableControls;
Close;
case Modo of
Facturar : SelectSQL.Assign(dmTablaPedidosProveedor.sqlConsultarGridPedidosFacturar);
else
SelectSQL.Assign(dmTablaPedidosProveedor.sqlConsultarGridPedidosProv);
end;
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
ParamByName('CODIGOPROVEEDOR').AsString := FCodigoProveedor;
Prepare;
Open;
dmTablaPedidosProveedor.InicializarTablaPedidos(@TablaPedidosProveedor);
ActualizarBotones;
EnableControls;
Locate('CODIGO', CodigoPedido, []);
end;
end;
procedure TfrPedidosProveedores.bSalirClick(Sender: TObject);
begin
CloseFrame;
end;
procedure TfrPedidosProveedores.CambiarModo(ModoAnterior, Modo: TRdxModo);
begin
with TablaPedidosProveedor do
begin
Close;
case Modo of
Recibir : SelectSQL.Assign(dmTablaPedidosProveedor.sqlConsultarGridPedidosRecibir);
Devolver : SelectSQL.Assign(dmTablaPedidosProveedor.sqlConsultarGridPedidosDevolver);
Facturar : SelectSQL.Assign(dmTablaPedidosProveedor.sqlConsultarGridPedidosFacturar);
end;
end;
inherited;
end;
procedure TfrPedidosProveedores.ActualizarBarras;
begin
inherited;
case Modo of
Recibir,
Devolver,
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 TfrPedidosProveedores.bDevolverClick(Sender: TObject);
var
SituacionAux : String;
begin
FCodigoPedido := TablaPedidosProveedor.FieldByName('CODIGO').AsString;
SituacionAux := dmTablaPedidosProveedor.DarSituacion(EmpresaActiva.Codigo, CodigoPedido);
if SituacionAux <> 'TOTALMENTE RECIBIDO' then
begin
VerMensajeFmt(msgPedidoNoDevolver, [LowerCase(SituacionAux)]);
exit;
end;
EntidadModal := entArticulosAlmacen;
ModoModal := SalidaDevolucion;
ContenidoModal := TfrMovimientoAlmacenes.Create(Self);
end;
procedure TfrPedidosProveedores.ActualizarBotones;
begin
if BaseDatos.IsReadOnly then
begin
bAnadir.Enabled := False;
bModificar.Enabled := False;
bEliminar.Enabled := False;
bConsultar.Enabled := True;
bBuscar.Enabled := True;
bEmitir.Enabled := False;
bRecibir.Enabled := False;
bDevolver.Enabled := False;
bCancelar.Enabled := False;
bFacturar.Enabled := False;
bExportar.Enabled := True;
bImprimir.Enabled := True;
Exit;
end;
if TablaPedidosProveedor.RecordCount = 0 then
begin
bAnadir.Enabled := True;
bModificar.Enabled := False;
bEliminar.Enabled := False;
bConsultar.Enabled := False;
bBuscar.Enabled := False;
bEmitir.Enabled := False;
bRecibir.Enabled := False;
bDevolver.Enabled := False;
bCancelar.Enabled := False;
bFacturar.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;
bEmitir.Enabled := True;
bRecibir.Enabled := True;
bDevolver.Enabled := True;
bCancelar.Enabled := True;
bFacturar.Enabled := True;
bExportar.Enabled := True;
bImprimir.Enabled := True;
end;
end;
procedure TfrPedidosProveedores.bImprimirClick(Sender: TObject);
var
FInformePedidoProveedor : TInformePedidoProveedor;
begin
FCodigoPedido := TablaPedidosProveedor.FieldByName('CODIGO').AsString;
FInformePedidoProveedor := TInformePedidoProveedor.Create(Self);
try
FInformePedidoProveedor.Imprimir(CodigoPedido)
finally
FInformePedidoProveedor.Free;
end;
end;
procedure TfrPedidosProveedores.bFacturarClick(Sender: TObject);
var
SituacionAux : String;
FacturadoAux : boolean;
begin
FCodigoPedido := TablaPedidosProveedor.FieldByName('CODIGO').AsString;
FCodigoProveedor := TablaPedidosProveedor.FieldByName('CODIGOPROVEEDOR').AsString;
SituacionAux := dmTablaPedidosProveedor.DarSituacion(EmpresaActiva.Codigo, CodigoPedido);
FacturadoAux := dmTablaPedidosProveedor.PedidoFacturado(EmpresaActiva.Codigo, CodigoPedido);
if FacturadoAux then
begin
VerMensajeFmt(msgPedYaFacturado, ['facturado']);
Exit;
end;
if (SituacionAux <> 'TOTALMENTE RECIBIDO') and
(SituacionAux <> 'DEVUELTO') then
begin
VerMensajeFmt(msgPedidoNoFacturar, [LowerCase(SituacionAux)]);
exit;
end;
CaptionModal := 'Hacer factura de pedido a proveedor';
ModoModal := Anadir;
EntidadModal := entFacturaProveedor;
ContenidoModal := TfrFacturaProveedor.Create(Self);
end;
procedure TfrPedidosProveedores.gridPedidosCustomDrawCell(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean;
var AText: String; var AColor: TColor; AFont: TFont;
var AAlignment: TAlignment; var ADone: Boolean);
var
IndiceCol : Integer;
begin
if not ASelected then
begin
IndiceCol := (Sender as TdxDBGrid).ColumnByFieldName('SITUACION').Index;
if UpperCase(ANode.Strings[IndiceCol]) = 'TOTALMENTE RECIBIDO' then
AFont.Color := COLOR_RECIBIDO;
end;
end;
procedure TfrPedidosProveedores.Listadodepedidosdeproveedor1Click(
Sender: TObject);
begin
Contenido := TfrListadoPedidosProv.Create(Self);
end;
procedure TfrPedidosProveedores.cbxAnoChange(Sender: TObject);
begin
if cbxAno.Text = CTE_TODOS then begin
gridPedidos.Filter.Remove(gridPedidos.FindColumnByFieldName(CTE_ANO));
gridPedidos.Filter.Clear;
end
else begin
gridPedidos.Filter.Clear;
gridPedidos.Filter.Add(gridPedidos.FindColumnByFieldName(CTE_ANO), cbxAno.Text, cbxAno.Text);
end;
gridPedidos.SetFocus;
gridPedidos.GotoFirst;
//Falta seleccionar tupla
end;
procedure TfrPedidosProveedores.actAnadirExecute(Sender: TObject);
begin
Contenido := TfrPedidoProveedor.Create(Self);
Contenido.Modo := Anadir;
Contenido.Visible := True;
end;
procedure TfrPedidosProveedores.actModificarExecute(Sender: TObject);
var
SituacionAux : String;
FacturadoAux : Boolean;
begin
CodigoPedido := TablaPedidosProveedor.FieldByName('CODIGO').AsString;
SituacionAux := dmTablaPedidosProveedor.DarSituacion(EmpresaActiva.Codigo, CodigoPedido);
FacturadoAux := dmTablaPedidosProveedor.PedidoFacturado(EmpresaActiva.Codigo, CodigoPedido);
if FacturadoAux then
begin
VerMensajeFmt(msgPedidoNoModificar, ['facturado']);
Exit;
end;
if (SituacionAux = 'TOTALMENTE RECIBIDO') then
begin
VerMensajeFmt(msgPedidoNoModificar, ['totalmente recibido']);
Exit;
end;
Contenido := TfrPedidoProveedor.Create(Self);
Contenido.Modo := Modificar;
Contenido.Visible := True;
end;
procedure TfrPedidosProveedores.actEliminarExecute(Sender: TObject);
var
SituacionAux : String;
FacturadoAux : boolean;
begin
CodigoPedido := TablaPedidosProveedor.FieldByName('CODIGO').AsString;
SituacionAux := dmTablaPedidosProveedor.DarSituacion(EmpresaActiva.Codigo, CodigoPedido);
FacturadoAux := dmTablaPedidosProveedor.PedidoFacturado(EmpresaActiva.Codigo, CodigoPedido);
if FacturadoAux then
begin
VerMensajeFmt(msgPedidoNoEliminar, ['facturado']);
Exit;
end;
if SituacionAux <> 'NO EMITIDO' then
begin
VerMensajeFmt(msgPedidoNoEliminar, [LowerCase(SituacionAux)]);
exit;
end;
Contenido := TfrPedidoProveedor.Create(Self);
Contenido.Modo := Eliminar;
Contenido.Visible := True;
end;
procedure TfrPedidosProveedores.actConsultarExecute(Sender: TObject);
begin
CodigoPedido := TablaPedidosProveedor.FieldByName('CODIGO').AsString;
Contenido := TfrPedidoProveedor.Create(Self);
Contenido.Modo := Consultar;
Contenido.Visible := True;
end;
procedure TfrPedidosProveedores.actBuscarExecute(Sender: TObject);
begin
CodigoPedido := TablaPedidosProveedor.FieldByName('CODIGO').AsString;
Contenido := TfrBuscarPedidoProveedor.Create(Self);
end;
procedure TfrPedidosProveedores.gridPedidosDblClick(Sender: TObject);
begin
if Modo in [Devolver, Recibir, Seleccionar] then
bSeleccionar.Click
else
bModificar.Click;
end;
procedure TfrPedidosProveedores.SetContenido(NuevoFrame: TRdxFrame);
begin
inherited;
FCodigoProveedor := TablaPedidosProveedor.FieldByName('CODIGOPROVEEDOR').AsString;
if (Contenido is TfrListadoPedidosProv) then
(Contenido as TfrListadoPedidosProv).CodigoProveedor := FCodigoProveedor;
end;
procedure TfrPedidosProveedores.bEnviarCorreoClick(Sender: TObject);
var
FInforme : TInformePedidoProveedor;
Fichero : String;
Datos: TDatosCorreo;
CodigoProveedor: String;
begin
FCodigoPedido := TablaPedidosProveedor.FieldByName('CODIGO').AsString;
CodigoProveedor := TablaPedidosProveedor.FieldByName('CODIGOPROVEEDOR').AsString;
Datos:= Nil;
Fichero := CodigoPedido;
Fichero := DarRutaTemporal + StringReplace(Fichero, CTE_SEPSERIADO, CTE_SEPSERIADO2, [rfReplaceAll, rfIgnoreCase]);
Fichero := Fichero + CTE_DOC;
//Generamos el fichero para luego adjuntaro al correo
FInforme:= TInformePedidoProveedor.Create(Self);
try
FInforme.Exportar(FCodigoPedido, 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.