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/Proveedores.pas
2007-06-21 15:47:20 +00:00

391 lines
12 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.0.5
Fecha versión actual: 23-11-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.
07-04-2002 Se ha adaptado para la transacción única.
06-05-2002 Adaptación al grid 'TdxDBGrid'.
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.
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.