git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES/trunk@4 b68bf8ae-e977-074f-a058-3cfd71dd8f45
483 lines
15 KiB
ObjectPascal
483 lines
15 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: 04-10-2004
|
|
Versión actual: 1.0.0
|
|
Fecha versión actual: 04-10-2004
|
|
===============================================================================
|
|
Modificaciones:
|
|
|
|
Fecha Comentarios
|
|
---------------------------------------------------------------------------
|
|
===============================================================================
|
|
}
|
|
|
|
unit TablaAlbaranesInstalador;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
BaseDatos, Ibdatabase, dxDBGrid, Contadores;
|
|
|
|
type
|
|
TDatosAlbaranInstalador = class(TPersistent)
|
|
public
|
|
CodigoEmpresa : integer;
|
|
Codigo : string;
|
|
FechaAlta : string;
|
|
Usuario : string;
|
|
CodigoInstalador : string;
|
|
Nombre : string;
|
|
Telefono : string;
|
|
Descripcion : string;
|
|
end;
|
|
|
|
TdmTablaAlbaranesInstalador = class(TDataModule)
|
|
private
|
|
procedure IniciarSQLAlbaran;
|
|
procedure IniciarSQLDetalles;
|
|
procedure IniciarSQLGrids;
|
|
public
|
|
sqlInsertarAlbaran : TStrings;
|
|
sqlModificarAlbaran : TStrings;
|
|
sqlConsultarAlbaran : TStrings;
|
|
sqlEliminarAlbaran : TStrings;
|
|
sqlConsultarGridAlbaranes : TStrings;
|
|
sqlConsultarGridAlbaranesIns : TStrings;
|
|
sqlInsertarDetalles : TStrings;
|
|
sqlModificarDetalles : TStrings;
|
|
sqlConsultarDetalles : TStrings;
|
|
sqlEliminarDetalles : TStrings;
|
|
sqlConsultarGridDetalles : TStrings;
|
|
|
|
//Metodos que llamaran a contador
|
|
function DarNuevoCodigo : String;
|
|
function IncrementarCodigo: boolean;
|
|
function InsertarContador: boolean;
|
|
function ValidarCodigo(Codigo : String) : Boolean;
|
|
function FormatearCodigo(Codigo : String) : String;
|
|
|
|
function DarDatosAlbaran(Albaran : TDatosAlbaranInstalador): Boolean;
|
|
function ExisteCodigo(CodigoEmpresa: Integer; Codigo : String) : Boolean;
|
|
procedure InicializarGridDetalles(var Grid: TdxDBGrid);
|
|
procedure InicializarGridAlbaranes(var Grid: TdxDBGrid);
|
|
procedure InicializarTablaAlbaranes(Tabla: TPTabla);
|
|
constructor Create (AOwner : TComponent); override;
|
|
destructor Destroy; override;
|
|
function DarListaAnos(CodigoEmpresa: Integer): TStringList;
|
|
end;
|
|
|
|
var
|
|
dmTablaAlbaranesInstalador: TdmTablaAlbaranesInstalador;
|
|
|
|
implementation
|
|
|
|
{$R *.DFM}
|
|
|
|
uses
|
|
IBSQL, Mensajes, StrFunc, IB, DB, Excepciones,
|
|
TablaUnidadesMedida, dxDBCtrl, dxDBTLCL, IBCustomDataSet, dxTL, Constantes,
|
|
Literales, RdxGestorContadores;
|
|
|
|
{ TdmTablaAlbaranesCliente }
|
|
|
|
constructor TdmTablaAlbaranesInstalador.Create(AOwner: TComponent);
|
|
begin
|
|
inherited;
|
|
{ Cabecera }
|
|
sqlInsertarAlbaran := TStringList.Create;
|
|
sqlModificarAlbaran := TStringList.Create;
|
|
sqlConsultarAlbaran := TStringList.Create;
|
|
sqlEliminarAlbaran := TStringList.Create;
|
|
|
|
{ Detalles }
|
|
sqlInsertarDetalles := TStringList.Create;
|
|
sqlModificarDetalles := TStringList.Create;
|
|
sqlConsultarDetalles := TStringList.Create;
|
|
sqlEliminarDetalles := TStringList.Create;
|
|
sqlConsultarGridDetalles := TStringList.Create;
|
|
|
|
{ Grids }
|
|
sqlConsultarGridAlbaranes := TStringList.Create;
|
|
sqlConsultarGridAlbaranesIns := TStringList.Create;
|
|
|
|
IniciarSQLAlbaran;
|
|
IniciarSQLDetalles;
|
|
IniciarSQLGrids;
|
|
end;
|
|
|
|
destructor TdmTablaAlbaranesInstalador.Destroy;
|
|
begin
|
|
{ Cabecera }
|
|
sqlInsertarAlbaran.Free;
|
|
sqlModificarAlbaran.Free;
|
|
sqlConsultarAlbaran.Free;
|
|
sqlEliminarAlbaran.Free;
|
|
|
|
{ Detalles }
|
|
sqlInsertarDetalles.Free;
|
|
sqlModificarDetalles.Free;
|
|
sqlConsultarDetalles.Free;
|
|
sqlEliminarDetalles.Free;
|
|
sqlConsultarGridDetalles.Free;
|
|
|
|
{ Grids }
|
|
sqlConsultarGridAlbaranes.Free;
|
|
sqlConsultarGridAlbaranesIns.Free;
|
|
inherited;
|
|
end;
|
|
|
|
function TdmTablaAlbaranesInstalador.DarDatosAlbaran(
|
|
Albaran: TDatosAlbaranInstalador): Boolean;
|
|
var
|
|
oSQL : TIBSQL;
|
|
begin
|
|
Result := False;
|
|
if EsCadenaVacia(Albaran.Codigo) then
|
|
Exit;
|
|
|
|
oSQL := TIBSQL.Create(Self);
|
|
with oSQL do
|
|
begin
|
|
Database := dmBaseDatos.BD;
|
|
Transaction := dmBaseDatos.Transaccion;
|
|
SQL.Add('select * from ALBARANESINSTALADOR ');
|
|
SQL.Add('where (CODIGO = :CODIGO) and (CODIGOEMPRESA = :CODIGOEMPRESA)');
|
|
ParamByName('CODIGOEMPRESA').AsInteger := Albaran.CodigoEmpresa;
|
|
ParamByName('CODIGO').AsString := Albaran.Codigo;
|
|
try
|
|
Prepare;
|
|
ExecQuery;
|
|
//Compruebo que el codigo de albarán existe. Si no existe, devuelvo false
|
|
if (RecordCount > 0) then
|
|
begin
|
|
with Albaran do
|
|
begin
|
|
FechaAlta := FieldByName('FECHAALTA').AsString;
|
|
Usuario:= FieldByName('USUARIO').AsString;
|
|
CodigoInstalador := FieldByName('CODIGOINSTALADOR').AsString;
|
|
Nombre := FieldByName('NOMBRE').AsString;
|
|
Telefono := FieldByName('TELEFONO').AsString;
|
|
Descripcion := FieldByName('DESCRIPCION').AsString;
|
|
Result := True;
|
|
end;
|
|
end;
|
|
finally
|
|
Close;
|
|
Transaction := NIL;
|
|
Free;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
function TdmTablaAlbaranesInstalador.DarNuevoCodigo: String;
|
|
begin
|
|
Result := GestorContadores.DarNuevoCodigo(contAlbaranesInstalador);
|
|
end;
|
|
|
|
function TdmTablaAlbaranesInstalador.ExisteCodigo(CodigoEmpresa: Integer; Codigo: String): Boolean;
|
|
var
|
|
oSQL : TIBSQL;
|
|
Contador : String;
|
|
begin
|
|
Result := False;
|
|
oSQL := TIBSQL.Create(Self);
|
|
oSQL.Database := dmBaseDatos.BD;
|
|
oSQL.Transaction := dmBaseDatos.Transaccion;
|
|
oSQL.SQL.Add('select CODIGO ');
|
|
oSQL.SQL.Add('from ALBARANESPROVEEDOR ');
|
|
oSQL.SQL.Add('where (CODIGO = :CODIGO) and (CODIGOEMPRESA = :CODIGOEMPRESA)');
|
|
|
|
try
|
|
with oSQL do
|
|
begin
|
|
ParamByName('CODIGOEMPRESA').AsInteger := CodigoEmpresa;
|
|
ParamByName('CODIGO').AsString := Codigo;
|
|
Prepare;
|
|
ExecQuery;
|
|
Contador := Fields[0].AsString;
|
|
Result := (Codigo = Contador);
|
|
end;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
oSQL.Close;
|
|
oSQL.Transaction := NIL;
|
|
oSQL.Free;
|
|
end;
|
|
|
|
function TdmTablaAlbaranesInstalador.FormatearCodigo(Codigo: String): String;
|
|
begin
|
|
Result := GestorContadores.FormatearCodigo(contAlbaranesInstalador, Codigo);
|
|
end;
|
|
|
|
function TdmTablaAlbaranesInstalador.IncrementarCodigo: boolean;
|
|
begin
|
|
Result := GestorContadores.IncrementarValor(contAlbaranesInstalador);
|
|
end;
|
|
|
|
procedure TdmTablaAlbaranesInstalador.InicializarGridAlbaranes(var Grid: TdxDBGrid);
|
|
var
|
|
Columna : TdxDBTreeListColumn;
|
|
begin
|
|
with Grid do begin
|
|
DestroyColumns;
|
|
ShowSummaryFooter := True;
|
|
{Columna CODIGO}
|
|
Columna := CreateColumn(TdxDBTreeListColumn);
|
|
Columna.FieldName := 'CODIGO';
|
|
Columna.Caption := 'Código';
|
|
Columna.Width := tamColCodigo;
|
|
Columna.Sorted := csDown;
|
|
Columna.SummaryFooterType := cstCount;
|
|
Columna.SummaryFooterFormat := 'Total: 0 albaranes';
|
|
|
|
{Columna ANO}
|
|
Columna := CreateColumn(TdxDBTreeListColumn);
|
|
Columna.FieldName := 'ANO';
|
|
Columna.Caption := 'Año';
|
|
Columna.Width := tamColFecha;
|
|
Columna.Visible := False;
|
|
|
|
{Columna FECHAALTA}
|
|
Columna := CreateColumn(TdxDBTreeListColumn);
|
|
Columna.FieldName := 'FECHAALTA';
|
|
Columna.Caption := 'Fecha alta';
|
|
Columna.Width := tamColFecha;
|
|
{Columna CODIGOINSTALADOR}
|
|
Columna := CreateColumn(TdxDBTreeListColumn);
|
|
Columna.FieldName := 'CODIGOINSTALADOR';
|
|
Columna.Caption := 'Cód. instalador';
|
|
Columna.Width := tamColCodigo;
|
|
{Columna NOMBRE}
|
|
Columna := CreateColumn(TdxDBTreeListColumn);
|
|
Columna.FieldName := 'NOMBRE';
|
|
Columna.Caption := 'Nombre';
|
|
Columna.Width := tamColNombre;
|
|
end;
|
|
end;
|
|
|
|
procedure TdmTablaAlbaranesInstalador.InicializarGridDetalles(var Grid: TdxDBGrid);
|
|
var
|
|
Columna : TdxDBTreeListColumn;
|
|
begin
|
|
with Grid do begin
|
|
DestroyColumns;
|
|
{Columna CODIGOALBARAN}
|
|
Columna := CreateColumn(TdxDBTreeListColumn);
|
|
Columna.Visible := False;
|
|
Columna.FieldName := 'CODIGOALBARAN';
|
|
{Columna NUMCONCEPTO}
|
|
Columna := CreateColumn(TdxDBTreeListColumn);
|
|
Columna.Visible := False;
|
|
Columna.FieldName := 'NUMCONCEPTO';
|
|
{Columna CODIGOARTICULO}
|
|
Columna := CreateColumn(TdxDBTreeListButtonColumn);
|
|
Columna.FieldName := 'CODIGOARTICULO';
|
|
Columna.Caption := 'Cód. material';
|
|
Columna.Width := tamColCodigo;
|
|
{Columna DESCRIPCION}
|
|
Columna := CreateColumn(TdxDBTreeListButtonColumn);
|
|
Columna.FieldName := 'DESCRIPCION';
|
|
Columna.Caption := 'Descripción';
|
|
Columna.Width := tamColDescripcion;
|
|
{Columna CANTIDAD}
|
|
Columna := CreateColumn(TdxDBTreeListColumn);
|
|
Columna.FieldName := 'CANTIDAD';
|
|
Columna.Caption := 'Cantidad';
|
|
Columna.Width := tamColCantidad;
|
|
{Columna UNIDADESMEDIDA}
|
|
Columna := CreateColumn(TdxDBTreeListPickColumn);
|
|
Columna.FieldName := 'UNIDADESMEDIDA';
|
|
Columna.Caption := 'Unid. medida';
|
|
(Columna as TdxDBTreeListPickColumn).Items := dmTablaUnidadesMedida.DarUnidadesMedida;
|
|
Columna.Width := tamColUnidadesMedida;
|
|
end;
|
|
end;
|
|
|
|
procedure TdmTablaAlbaranesInstalador.InicializarTablaAlbaranes(
|
|
Tabla: TPTabla);
|
|
begin
|
|
with Tabla^.Fields do
|
|
begin
|
|
if FindField('FECHAALTA') <> NIL then
|
|
with (FieldByName('FECHAALTA') as TDateField) do begin
|
|
EditMask := MASK_FECHA;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TdmTablaAlbaranesInstalador.IniciarSQLAlbaran;
|
|
begin
|
|
with sqlInsertarAlbaran do
|
|
begin
|
|
Add('insert into ALBARANESINSTALADOR ');
|
|
Add('(CODIGOEMPRESA, CODIGO, FECHAALTA, USUARIO, DESCRIPCION, ');
|
|
Add('CODIGOINSTALADOR, NOMBRE, TELEFONO)');
|
|
Add('values (:CODIGOEMPRESA, :CODIGO, :FECHAALTA, :USUARIO, ');
|
|
Add(':DESCRIPCION, :CODIGOINSTALADOR, :NOMBRE, :TELEFONO) ');
|
|
end;
|
|
|
|
with sqlModificarAlbaran do
|
|
begin
|
|
Add('update ALBARANESINSTALADOR set ');
|
|
Add('FECHAALTA = :FECHAALTA, ');
|
|
Add('USUARIO = :USUARIO, ');
|
|
Add('DESCRIPCION = :DESCRIPCION, ');
|
|
Add('CODIGOINSTALADOR = :CODIGOINSTALADOR, ');
|
|
Add('NOMBRE = :NOMBRE, ');
|
|
Add('TELEFONO = :TELEFONO ');
|
|
Add('where (CODIGO = :CODIGO) and (CODIGOEMPRESA = :CODIGOEMPRESA)');
|
|
end;
|
|
|
|
with sqlEliminarAlbaran do
|
|
begin
|
|
Add('delete from ALBARANESINSTALADOR ');
|
|
Add('where (CODIGO = :CODIGO) and (CODIGOEMPRESA = :CODIGOEMPRESA)');
|
|
end;
|
|
|
|
with sqlConsultarAlbaran do
|
|
begin
|
|
Add('select * from ALBARANESINSTALADOR ');
|
|
Add('where (CODIGO = :CODIGO) and (CODIGOEMPRESA = :CODIGOEMPRESA)');
|
|
end;
|
|
end;
|
|
|
|
procedure TdmTablaAlbaranesInstalador.IniciarSQLDetalles;
|
|
begin
|
|
with sqlInsertarDetalles do
|
|
begin
|
|
Add('insert into DETALLESALBARANESINSTALADOR ');
|
|
Add('(CODIGOEMPRESA, CODIGOALBARAN, NUMCONCEPTO, CODIGOARTICULO, DESCRIPCION, ');
|
|
Add('CANTIDAD, UNIDADESMEDIDA) ');
|
|
Add('values (:CODIGOEMPRESA, :CODIGOALBARAN, :NUMCONCEPTO, :CODIGOARTICULO, ');
|
|
Add(':DESCRIPCION, :CANTIDAD, :UNIDADESMEDIDA)');
|
|
end;
|
|
|
|
with sqlModificarDetalles do
|
|
begin
|
|
Add('update DETALLESALBARANESINSTALADOR set ');
|
|
Add('NUMCONCEPTO = :NUMCONCEPTO, ');
|
|
Add('CODIGOARTICULO = :CODIGOARTICULO, ');
|
|
Add('DESCRIPCION = :DESCRIPCION, ');
|
|
Add('CANTIDAD = :CANTIDAD, ');
|
|
Add('UNIDADESMEDIDA = :UNIDADESMEDIDA ');
|
|
Add('where (CODIGOALBARAN = :CODIGOALBARAN) ');
|
|
Add('and (CODIGOEMPRESA = :CODIGOEMPRESA) ');
|
|
Add('and (NUMCONCEPTO = :NUMCONCEPTO)');
|
|
end;
|
|
|
|
with sqlEliminarDetalles do
|
|
begin
|
|
Add('delete from DETALLESALBARANESINSTALADOR ');
|
|
Add('where (CODIGOALBARAN = :CODIGOALBARAN) ');
|
|
Add('and (CODIGOEMPRESA = :CODIGOEMPRESA) ');
|
|
Add('and (NUMCONCEPTO = :NUMCONCEPTO)');
|
|
end;
|
|
|
|
with sqlConsultarDetalles do
|
|
begin
|
|
Add('select CODIGOALBARAN, NUMCONCEPTO, CODIGOARTICULO, ');
|
|
Add('DESCRIPCION, CANTIDAD, UNIDADESMEDIDA ');
|
|
Add('from DETALLESALBARANESINSTALADOR ');
|
|
Add('where (CODIGOALBARAN = :CODIGOALBARAN) ');
|
|
Add('and (CODIGOEMPRESA = :CODIGOEMPRESA) ');
|
|
Add('and (NUMCONCEPTO = :NUMCONCEPTO)');
|
|
end;
|
|
end;
|
|
|
|
procedure TdmTablaAlbaranesInstalador.IniciarSQLGrids;
|
|
begin
|
|
with sqlConsultarGridAlbaranes do
|
|
begin
|
|
Add('select CODIGO, FECHAALTA, CODIGOINSTALADOR, ');
|
|
Add('EXTRACT (YEAR FROM FECHAALTA) as ANO, ');
|
|
Add('NOMBRE');
|
|
Add('from ALBARANESINSTALADOR ');
|
|
Add('where (CODIGOEMPRESA = :CODIGOEMPRESA) ');
|
|
Add('order by CODIGO');
|
|
end;
|
|
|
|
with sqlConsultarGridAlbaranesIns do
|
|
begin
|
|
Add('select CODIGO, FECHAALTA, CODIGOINSTALADOR, ');
|
|
Add('EXTRACT (YEAR FROM FECHAALTA) as ANO, ');
|
|
Add('NOMBRE');
|
|
Add('from ALBARANESINSTALADOR ');
|
|
Add('where (CODIGOINSTALADOR = :CODIGOINSTALADOR) ');
|
|
Add('and (CODIGOEMPRESA = :CODIGOEMPRESA) ');
|
|
Add('order by CODIGO');
|
|
end;
|
|
|
|
with sqlConsultarGridDetalles do
|
|
begin
|
|
Add('select CODIGOEMPRESA, CODIGOALBARAN, NUMCONCEPTO, ');
|
|
Add('CODIGOARTICULO, DESCRIPCION, ');
|
|
Add('CANTIDAD, UNIDADESMEDIDA ');
|
|
Add('from DETALLESALBARANESINSTALADOR ');
|
|
Add('where (CODIGOALBARAN = :CODIGOALBARAN) ');
|
|
Add('and (CODIGOEMPRESA = :CODIGOEMPRESA) ');
|
|
Add('order by NUMCONCEPTO');
|
|
end;
|
|
|
|
end;
|
|
|
|
function TdmTablaAlbaranesInstalador.InsertarContador: boolean;
|
|
begin
|
|
Result := GestorContadores.InsertarContador(contAlbaranesInstalador);
|
|
end;
|
|
|
|
function TdmTablaAlbaranesInstalador.ValidarCodigo(Codigo: String): Boolean;
|
|
begin
|
|
Result := GestorContadores.ValidarCodigo(contAlbaranesInstalador, Codigo);
|
|
end;
|
|
|
|
function TdmTablaAlbaranesInstalador.DarListaAnos(CodigoEmpresa: Integer): TStringList;
|
|
var
|
|
oSQL : TIBSQL;
|
|
Lista : TStringList;
|
|
begin
|
|
Lista := TStringList.Create;
|
|
oSQL := TIBSQL.Create(Self);
|
|
with oSQL do
|
|
begin
|
|
Database := dmBaseDatos.BD;
|
|
Transaction := dmBaseDatos.Transaccion;
|
|
SQL.Add('select distinct (EXTRACT (YEAR FROM FECHAALTA)) ANO ');
|
|
SQL.Add('from ALBARANESINSTALADOR ');
|
|
SQL.Add('where (CODIGOEMPRESA = :CODIGOEMPRESA) ');
|
|
SQL.Add('order by FECHAALTA desc');
|
|
ParamByName('CODIGOEMPRESA').AsInteger := CodigoEmpresa;
|
|
|
|
try
|
|
Prepare;
|
|
ExecQuery;
|
|
Lista.Add(CTE_TODOS);
|
|
while not EOF do begin
|
|
Lista.Add(Fields[0].AsString);
|
|
Next;
|
|
end;
|
|
result := Lista;
|
|
finally
|
|
Close;
|
|
Transaction := NIL;
|
|
Free;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
end.
|