391 lines
12 KiB
ObjectPascal
391 lines
12 KiB
ObjectPascal
|
|
{
|
|||
|
|
===============================================================================
|
|||
|
|
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.0.5
|
|||
|
|
Fecha versi<EFBFBD>n actual: 23-11-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.
|
|||
|
|
|
|||
|
|
07-04-2002 Se ha adaptado para la transacci<EFBFBD>n <EFBFBD>nica.
|
|||
|
|
|
|||
|
|
06-05-2002 Adaptaci<EFBFBD>n al grid 'TdxDBGrid'.
|
|||
|
|
|
|||
|
|
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.
|
|||
|
|
|
|||
|
|
23-11-2004 p297. Solo sacar etiquetas de los clientes/proveedores etiquetados.
|
|||
|
|
===============================================================================
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
unit Proveedores;
|
|||
|
|
|
|||
|
|
interface
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
Dialogs, Menus, am2000menuitem, am2000popupmenu, am2000, Db, RdxBarras,
|
|||
|
|
Grids, DBGrids, RXDBCtrl, ExtCtrls, RdxBotones, Classes, Graphics,
|
|||
|
|
Controls, RdxPaneles, RdxFrameProveedores, IBEvents, dxCntner, dxTL,
|
|||
|
|
dxDBCtrl, dxDBGrid, am2000utils, Windows, dxGrClms;
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
type
|
|||
|
|
TfrProveedores = class(TRdxFrameProveedores)
|
|||
|
|
BarraProveedores: TRdxBarraSuperior;
|
|||
|
|
bAnadir: TRdxBotonSuperior;
|
|||
|
|
bModificar: TRdxBotonSuperior;
|
|||
|
|
bEliminar: TRdxBotonSuperior;
|
|||
|
|
bConsultar: TRdxBotonSuperior;
|
|||
|
|
bBuscar: TRdxBotonSuperior;
|
|||
|
|
bDocumentos: TRdxBotonMenu;
|
|||
|
|
dsProveedores: TDataSource;
|
|||
|
|
menuDocumentos: TPopupMenu2000;
|
|||
|
|
Presupuestos1: TMenuItem2000;
|
|||
|
|
N1: TMenuItem2000;
|
|||
|
|
Facturas1: TMenuItem2000;
|
|||
|
|
menuListar: TPopupMenu2000;
|
|||
|
|
bListadoEtiquetas: TMenuItem2000;
|
|||
|
|
bListar: TRdxBotonMenu;
|
|||
|
|
MenuItem1: TMenuItem2000;
|
|||
|
|
imgSombra: TImage;
|
|||
|
|
pnlContenido: TRdxPanel;
|
|||
|
|
PanelPrincipal: TPanel;
|
|||
|
|
gridProveedores: TdxDBGrid;
|
|||
|
|
brSeleccion: TRdxBarraInferior;
|
|||
|
|
bSeleccionar: TRdxBoton;
|
|||
|
|
bCancelarGuardar: TRdxBoton;
|
|||
|
|
pnlExtra: TRdxBarraSuperior;
|
|||
|
|
bEtiquetar: TRdxBoton;
|
|||
|
|
procedure bAnadirClick(Sender: TObject);
|
|||
|
|
procedure bModificarClick(Sender: TObject);
|
|||
|
|
procedure bEliminarClick(Sender: TObject);
|
|||
|
|
procedure bConsultarClick(Sender: TObject);
|
|||
|
|
procedure bBuscarClick(Sender: TObject);
|
|||
|
|
procedure bSeleccionarClick(Sender: TObject);
|
|||
|
|
procedure bCancelarGuardarClick(Sender: TObject);
|
|||
|
|
procedure Presupuestos1Click(Sender: TObject);
|
|||
|
|
procedure Facturas1Click(Sender: TObject);
|
|||
|
|
procedure gridProveedoresRefreshButton(Sender: TObject);
|
|||
|
|
procedure bListadoEtiquetasClick(Sender: TObject);
|
|||
|
|
procedure MenuItem1Click(Sender: TObject);
|
|||
|
|
procedure gridProveedoresDblClick(Sender: TObject);
|
|||
|
|
procedure bEtiquetarClick(Sender: TObject);
|
|||
|
|
procedure gridProveedoresCustomDrawCell(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);
|
|||
|
|
private
|
|||
|
|
FEtiquetados: Boolean;
|
|||
|
|
procedure ActualizarBotones;
|
|||
|
|
procedure SetEtiquetados(const Value: Boolean);
|
|||
|
|
protected
|
|||
|
|
procedure BuscarProveedor; override;
|
|||
|
|
procedure FreeContenido; override;
|
|||
|
|
procedure VerModal; override;
|
|||
|
|
public
|
|||
|
|
property SoloEtiquetados : Boolean read FEtiquetados write SetEtiquetados;
|
|||
|
|
constructor Create (AOwner : TComponent); override;
|
|||
|
|
destructor Destroy; override;
|
|||
|
|
published
|
|||
|
|
property TablaProveedores;
|
|||
|
|
property Entidad;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
var
|
|||
|
|
frProveedores: TfrProveedores;
|
|||
|
|
|
|||
|
|
implementation
|
|||
|
|
|
|||
|
|
{$R *.DFM}
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
Proveedor, IBDatabase, Configuracion,
|
|||
|
|
BuscarProveedor, Tipos, TablaProveedores, PedidosProveedores,
|
|||
|
|
BaseDatos, IBCustomDataSet, Sysutils, FacturasProveedores,
|
|||
|
|
GenerarEtiquetasProveedores, ListarProveedores, Constantes, strFunc;
|
|||
|
|
|
|||
|
|
constructor TfrProveedores.Create (AOwner : TComponent);
|
|||
|
|
begin
|
|||
|
|
inherited Create(AOwner);
|
|||
|
|
Entidad := entProveedor;
|
|||
|
|
ConfigurarFrame(Self, Self.Entidad);
|
|||
|
|
|
|||
|
|
BaseDatos := dmBaseDatos.BD;
|
|||
|
|
Transaccion := dmBaseDatos.Transaccion;
|
|||
|
|
TablaProveedores := TIBDataSet.Create(Self);
|
|||
|
|
dsProveedores.DataSet := TablaProveedores;
|
|||
|
|
|
|||
|
|
with TablaProveedores do
|
|||
|
|
begin
|
|||
|
|
DisableControls;
|
|||
|
|
Database := BaseDatos;
|
|||
|
|
Transaction := Transaccion;
|
|||
|
|
SelectSQL.Assign(dmTablaProveedores.sqlGrid);
|
|||
|
|
Prepare;
|
|||
|
|
Open;
|
|||
|
|
EnableControls;
|
|||
|
|
ActualizarBotones;
|
|||
|
|
end;
|
|||
|
|
dmTablaProveedores.InicializarGridProveedores(gridProveedores);
|
|||
|
|
with (gridProveedores.ColumnByFieldName('ETIQUETADO') as TdxDBGridImageColumn) do
|
|||
|
|
begin
|
|||
|
|
Images := dmConfiguracion.ilEtiquetado;
|
|||
|
|
ImageIndexes.Add('0');
|
|||
|
|
ImageIndexes.Add('1');
|
|||
|
|
Values.Add('1');
|
|||
|
|
Values.Add('0');
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
destructor TfrProveedores.Destroy;
|
|||
|
|
begin
|
|||
|
|
with TablaProveedores do
|
|||
|
|
begin
|
|||
|
|
Close;
|
|||
|
|
UnPrepare;
|
|||
|
|
Free;
|
|||
|
|
end;
|
|||
|
|
inherited;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrProveedores.bAnadirClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
Contenido := TfrProveedor.Create(Self);
|
|||
|
|
Contenido.Modo := Anadir;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrProveedores.bModificarClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
CodigoProveedor := TablaProveedores.FieldByName('CODIGO').AsString;
|
|||
|
|
Contenido := TfrProveedor.Create(Self);
|
|||
|
|
Contenido.Modo := Modificar;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrProveedores.bEliminarClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
CodigoProveedor := TablaProveedores.FieldByName('CODIGO').AsString;
|
|||
|
|
Contenido := TfrProveedor.Create(Self);
|
|||
|
|
Contenido.Modo := Eliminar;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrProveedores.bConsultarClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
CodigoProveedor := TablaProveedores.FieldByName('CODIGO').AsString;
|
|||
|
|
Contenido := TfrProveedor.Create(Self);
|
|||
|
|
Contenido.Modo := Consultar;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrProveedores.bBuscarClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
CodigoProveedor := TablaProveedores.FieldByName('CODIGO').AsString;
|
|||
|
|
Contenido := TfrBuscarProveedor.Create(Self);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrProveedores.bSeleccionarClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
CodigoProveedor := TablaProveedores.FieldByName('CODIGO').AsString;
|
|||
|
|
CloseFrame;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrProveedores.bCancelarGuardarClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
CodigoProveedor := NULL;
|
|||
|
|
CloseFrame;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrProveedores.BuscarProveedor;
|
|||
|
|
begin
|
|||
|
|
with TablaProveedores do
|
|||
|
|
begin
|
|||
|
|
DisableControls;
|
|||
|
|
Close;
|
|||
|
|
Open;
|
|||
|
|
ActualizarBotones;
|
|||
|
|
EnableControls;
|
|||
|
|
Locate('CODIGO', CodigoProveedor, []);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrProveedores.FreeContenido;
|
|||
|
|
begin
|
|||
|
|
if (Contenido is TRdxFrameProveedores) then
|
|||
|
|
CodigoProveedor := (Contenido as TRdxFrameProveedores).CodigoProveedor;
|
|||
|
|
inherited;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrProveedores.Presupuestos1Click(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
CodigoProveedor := TablaProveedores.FieldByName('CODIGO').AsString;
|
|||
|
|
CaptionModal := Format('Lista de pedidos al proveedor %s', [TablaProveedores.FieldByName('NOMBRE').AsString]);
|
|||
|
|
WidthModal := 815;
|
|||
|
|
HeightModal := 600;
|
|||
|
|
ModoModal := Consultar;
|
|||
|
|
ContenidoModal := TfrPedidosProveedores.Create(Self);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrProveedores.VerModal;
|
|||
|
|
begin
|
|||
|
|
CodigoProveedor := TablaProveedores.FieldByName('CODIGO').AsString;
|
|||
|
|
if (ContenidoModal is TfrPedidosProveedores) then
|
|||
|
|
(ContenidoModal as TfrPedidosProveedores).CodigoProveedor := CodigoProveedor;
|
|||
|
|
|
|||
|
|
if (ContenidoModal is TfrFacturasProveedores) then
|
|||
|
|
(ContenidoModal as TfrFacturasProveedores).CodigoProveedor := CodigoProveedor;
|
|||
|
|
|
|||
|
|
inherited;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrProveedores.Facturas1Click(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
CodigoProveedor := TablaProveedores.FieldByName('CODIGO').AsString;
|
|||
|
|
CaptionModal := Format('Lista de facturas del proveedor %s', [TablaProveedores.FieldByName('NOMBRE').AsString]);
|
|||
|
|
WidthModal := 815;
|
|||
|
|
HeightModal := 600;
|
|||
|
|
ModoModal := Consultar;
|
|||
|
|
ContenidoModal := TfrFacturasProveedores.Create(Self);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrProveedores.ActualizarBotones;
|
|||
|
|
begin
|
|||
|
|
if BaseDatos.IsReadOnly then
|
|||
|
|
begin
|
|||
|
|
bAnadir.Enabled := False;
|
|||
|
|
bModificar.Enabled := False;
|
|||
|
|
bEliminar.Enabled := False;
|
|||
|
|
bConsultar.Enabled := True;
|
|||
|
|
bDocumentos.Enabled := True;
|
|||
|
|
bBuscar.Enabled := True;
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
if TablaProveedores.RecordCount = 0 then
|
|||
|
|
begin
|
|||
|
|
bAnadir.Enabled := True;
|
|||
|
|
bModificar.Enabled := False;
|
|||
|
|
bEliminar.Enabled := False;
|
|||
|
|
bConsultar.Enabled := False;
|
|||
|
|
bDocumentos.Enabled := False;
|
|||
|
|
bBuscar.Enabled := False;
|
|||
|
|
end
|
|||
|
|
else begin
|
|||
|
|
bAnadir.Enabled := True;
|
|||
|
|
bModificar.Enabled := True;
|
|||
|
|
bEliminar.Enabled := True;
|
|||
|
|
bConsultar.Enabled := True;
|
|||
|
|
bDocumentos.Enabled := True;
|
|||
|
|
bBuscar.Enabled := True;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrProveedores.gridProveedoresRefreshButton(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
BuscarProveedor;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrProveedores.bListadoEtiquetasClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
CaptionModal := 'Generar etiquetas de proveedor';
|
|||
|
|
WidthModal := 515;
|
|||
|
|
HeightModal := 200;
|
|||
|
|
ModoModal := Listar;
|
|||
|
|
EntidadModal := entProveedor;
|
|||
|
|
ContenidoModal := TfrGenerarEtiquetasProveedores.Create(Self);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrProveedores.MenuItem1Click(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
Contenido := TfrListarProveedores.Create(Self);
|
|||
|
|
Contenido.Modo := Listar;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrProveedores.gridProveedoresDblClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if Modo = Seleccionar then
|
|||
|
|
bSeleccionar.Click
|
|||
|
|
else
|
|||
|
|
bModificar.Click;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrProveedores.bEtiquetarClick(Sender: TObject);
|
|||
|
|
var
|
|||
|
|
IndiceCol1 : Integer;
|
|||
|
|
IndiceCol2 : Integer;
|
|||
|
|
IndiceSel : Integer;
|
|||
|
|
CodProveedores0 : TStringList;
|
|||
|
|
CodProveedores1 : TStringList;
|
|||
|
|
|
|||
|
|
begin
|
|||
|
|
IndiceCol1 := gridProveedores.ColumnByFieldName('CODIGO').Index;
|
|||
|
|
IndiceCol2 := gridProveedores.ColumnByFieldName('ETIQUETADO').Index;
|
|||
|
|
|
|||
|
|
CodProveedores0 := TStringList.Create;
|
|||
|
|
CodProveedores1 := TStringList.Create;
|
|||
|
|
|
|||
|
|
for IndiceSel:=0 to gridProveedores.SelectedCount-1 do
|
|||
|
|
begin
|
|||
|
|
if StrToInt(gridProveedores.SelectedNodes[IndiceSel].Strings[IndiceCol2]) = CTE_NOETIQUETAR then
|
|||
|
|
CodProveedores0.Append(gridProveedores.SelectedNodes[IndiceSel].Strings[IndiceCol1])
|
|||
|
|
else
|
|||
|
|
CodProveedores1.Append(gridProveedores.SelectedNodes[IndiceSel].Strings[IndiceCol1]);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
//Asignamos su nuevo valor a los proveedores elegidos
|
|||
|
|
dmTablaProveedores.etiquetarProveedores(codProveedores0, CTE_NOETIQUETAR);
|
|||
|
|
dmTablaProveedores.etiquetarProveedores(codProveedores1, CTE_ETIQUETAR);
|
|||
|
|
commit;
|
|||
|
|
|
|||
|
|
codProveedores0.Free;
|
|||
|
|
codProveedores1.Free;
|
|||
|
|
|
|||
|
|
//Refrescamos
|
|||
|
|
CodigoProveedor := gridProveedores.FocusedNode.Strings[IndiceCol1];
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrProveedores.gridProveedoresCustomDrawCell(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('ETIQUETADO').Index;
|
|||
|
|
if StrToInt(ANode.Strings[IndiceCol]) = CTE_ETIQUETAR then
|
|||
|
|
AFont.Color := COLOR_ETIQUETADO
|
|||
|
|
else
|
|||
|
|
AFont.Color := COLOR_NOETIQUETADO;
|
|||
|
|
end;}
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrProveedores.SetEtiquetados(const Value: Boolean);
|
|||
|
|
var
|
|||
|
|
valor : variant;
|
|||
|
|
begin
|
|||
|
|
valor := 1;
|
|||
|
|
FEtiquetados := Value;
|
|||
|
|
if FEtiquetados then
|
|||
|
|
gridProveedores.Filter.Add(gridProveedores.FindColumnByFieldName('ETIQUETADO'), valor, valor);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
end.
|