{
===============================================================================
  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: 01-10-2001
  Versión actual: 1.1.1
  Fecha versión actual: 07-03-2004
===============================================================================
  Modificaciones:

    Fecha         Comentarios
    ---------------------------------------------------------------------------
    09-10-2001    Al pulsar la tecla ESC se activa el botón 'Cancelar'. Sólo
                  pasa cuando este frame está 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ñadido el cliente final a los pedidos de proveedor.

    18-01-2002    Se han coloreado las filas del grid dependiendo de la
                  situación de la factura.

    22-01-2002    Se permite modificar un pedido parcialmente recibido.

    07-04-2002    Se ha adaptado para la transacción única.

    04-05-2002    Adaptación al grid 'TdxDBGrid'.

    02-08-2002    Asociar la tecla 'Esc' con el botón 'Aceptar'.

    08-04-2003    P263. Agrupar por años los pedidos.

    06-03-2004    Al hacer doble click sobre el grid, se pasará a modificar el
                  registro o se seleccionará, dependiendo del modo en el que
                  se encuentre la pantalla.

    07-03-2004    p272. Adaptació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, Menus,
  am2000menuitem, am2000popupmenu, am2000, StdCtrls, RdxComboBox, ActnList,
  am2000utils, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
  cxDataStorage, cxEdit, cxDBData, cxGridLevel, cxClasses, cxControls,
  cxGridCustomView, cxGridCustomTableView, cxGridTableView,
  cxGridDBTableView, cxGrid;

type
  TfrPedidosProveedores = class(TRdxFramePedidosProveedor)
    dsPedidos: TDataSource;
    BarraPedidos: TRdxBarraSuperior;
    bAnadir: TRdxBotonSuperior;
    bModificar: TRdxBotonSuperior;
    bEliminar: TRdxBotonSuperior;
    bConsultar: 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;
    bImprimir2: TRdxBoton;
    bExportar: TRdxBoton;
    gridPedidos: TcxGrid;
    bListar: TRdxBotonMenu;
    menuListar: TPopupMenu2000;
    Listadodepedidosdeproveedor1: TMenuItem2000;
    ActionList1: TActionList;
    actAnadir: TAction;
    imgSombra: TImage;
    RdxPanel1: TRdxPanel;
    Label1: TLabel;
    cbxAno: TRdxComboBox;
    gridPedidosView: TcxGridDBTableView;
    bImprimir: TRdxBotonSuperior;
    bSeparador1: TShape;
    actImprimir: TAction;
    RdxBoton1: TRdxBoton;
    Shape1: TShape;
    actRefrescarDatos: TAction;
    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 bImprimir2Click(Sender: TObject);
    procedure bFacturarClick(Sender: TObject);
    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 gridPedidosDblClick(Sender: TObject);
    procedure bEnviarCorreoClick(Sender: TObject);
    procedure gridPedidosViewCustomDrawCell(Sender: TcxCustomGridTableView;
      ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
      var ADone: Boolean);
    procedure actImprimirExecute(Sender: TObject);
    procedure actRefrescarDatosExecute(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, StrFunc, Configuracion,
  BaseDatos, TablaPedidosProveedor, IBCustomDataSet, SysFunc,
  RdxFrameAlmacenes, InformePedidoProveedor, Mensajes,
  EmitirPedidoProveedor, MovimientoAlmacenes, FacturaProveedor,
  ListadoPedidosProv, Constantes, Literales, RdxEmpresaActiva, 
  TablaProveedores, Entidades, Variants, ImprimirPedidosProveedor;

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);
  gridPedidosView.Controller.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 : TdmInformePedidoProveedor;}
begin
{  if not DarFicheroExportar(Fichero) then
    Exit;
  FCodigoPedido := TablaPedidosProveedor.FieldByName('CODIGO').AsString;
  FInformePedidoProveedor := TdmInformePedidoProveedor.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;

// REVISAR
{  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;
    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;
    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;
    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.bImprimir2Click(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.Listadodepedidosdeproveedor1Click(
  Sender: TObject);
begin
  Contenido := TfrListadoPedidosProv.Create(Self);
end;

procedure TfrPedidosProveedores.cbxAnoChange(Sender: TObject);
begin
  // !!! REVISAR !!!
{  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.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 TfrImprimirPedidosProveedor) then
    (Contenido as TfrImprimirPedidosProveedor).CodigoPedido := FCodigoPedido;

  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;

procedure TfrPedidosProveedores.gridPedidosViewCustomDrawCell(
  Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
  IndiceCol : Integer;
begin
  if not AViewInfo.Selected then
  begin
    IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName('SITUACION').Index;
    if UpperCase(AViewInfo.GridRecord.DisplayTexts[IndiceCol]) = 'TOTALMENTE RECIBIDO' then
      ACanvas.Canvas.Font.Color := clNavy;
  end;
end;

procedure TfrPedidosProveedores.actImprimirExecute(Sender: TObject);
begin
  Contenido := TfrImprimirPedidosProveedor.Create(Self);
  Contenido.Modo := Imprimir;
end;

procedure TfrPedidosProveedores.actRefrescarDatosExecute(Sender: TObject);
begin
  FCodigoPedido := TablaPedidosProveedor.FieldByName('CODIGO').AsString;
  BuscarPedido;
end;

end.
