git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES/trunk@4 b68bf8ae-e977-074f-a058-3cfd71dd8f45
696 lines
22 KiB
ObjectPascal
696 lines
22 KiB
ObjectPascal
{
|
|
===============================================================================
|
|
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, 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.
|