This repository has been archived on 2024-12-02. You can view files and clone it, but cannot push or open issues or pull requests.
FactuGES/BaseDatos/TablaCitas.pas

236 lines
6.1 KiB
ObjectPascal
Raw Normal View History

unit TablaCitas;
interface
uses
SysUtils, Classes;
type
TPartidasObra = (poCocina, poEncimeras, poElectro, poVarios);
TTipoCitas = (tcPersonal, tcMedicion, tcEntrega, tcMontaje, tcRemate,
tcPedido, tcConfirmacion, tcRecepcion, tcAviso, tcEntregaCliente);
TdmTablaCitas = class(TDataModule)
private
procedure IniciarSQL;
public
sqlInsertar : TStrings;
sqlModificar : TStrings;
sqlConsultar : TStrings;
sqlConsultarRecepciones : TStrings;
sqlEliminar : TStrings;
sqlRefrescar : TStrings;
function DarNuevoCodigo : Integer;
constructor Create (AOwner : TComponent); override;
destructor Destroy; override;
//procedure InicializarTablaVisitas(Tabla: TPTabla);
end;
function DarTipoCita (Texto : String) : TTipoCitas;
function esCitaFase (Texto : String) : Boolean;
const
TextoTipoCita: array[0..9] of String = ('PERSONAL', 'MEDICION', 'ENTREGA',
'MONTAJE', 'REMATE', 'PEDIDO', 'CONFIRMACION',
'RECEPCION', 'AVISO', 'ENTREGACLIENTE');
LiteralTipoCita: array[0..9] of String = ('Personal', 'Medici<63>n',
'Entrega a instalador', 'Montaje', 'Remate', 'Pedido',
'Confirmaci<63>n de pedido', 'Recepci<63>n de pedido', 'Aviso transportista',
'Entrega al cliente');
TextoPartidasObra: array[0..3] of String = ('COCINA', 'ENCIMERAS',
'ELECTRO', 'VARIOS');
LiteralPartidasObra: array[0..3] of String = ('Cocina', 'Encimeras',
'Electrodom<6F>sticos', 'Varios');
var
dmTablaCitas: TdmTablaCitas;
implementation
{$R *.dfm}
uses
Mensajes, Literales, BaseDatos, IBSQL;
function DarTipoCita (Texto : String) : TTipoCitas;
var
i : Integer;
begin
Result := tcPersonal;
for I := Low(TextoTipoCita) to High(TextoTipoCita) do
begin
if UpperCase(TextoTipoCita[i]) = UpperCase(Texto) then
Result := TTipoCitas(I);
end;
if Result = tcPersonal then
for I := Low(LiteralTipoCita) to High(LiteralTipoCita) do
begin
if UpperCase(LiteralTipoCita[i]) = UpperCase(Texto) then
Result := TTipoCitas(I);
end;
{
end;
if Texto = 'Llegada' then
Result := tcLlegada
else if Texto = 'Medici<63>n' then
Result := tcMedicion
else if Texto = 'Entrega' then
Result := tcEntrega
else if Texto = 'Montaje' then
Result := tcMontaje
else if Texto = 'Remate' then
Result := tcRemate
else Result := tcPersonal;}
end;
function esCitaFase (Texto : String) : Boolean;
var
I: TTipoCitas;
begin
Result := False;
for I:=tcPedido to tcEntregaCliente do
if (TextoTipoCita[Ord(I)] = Texto) then
Result := True;
end;
{ TdmTablaCitas }
constructor TdmTablaCitas.Create(AOwner: TComponent);
begin
inherited;
sqlInsertar := TStringList.Create;
sqlModificar := TStringList.Create;
sqlConsultar := TStringList.Create;
sqlConsultarRecepciones := TStringList.Create;
sqlEliminar := TStringList.Create;
sqlRefrescar := TStringList.Create;
IniciarSQL;
end;
function TdmTablaCitas.DarNuevoCodigo: Integer;
var
oSQL : TIBSQL;
begin
Result := -1;
oSQL := TIBSQL.Create(Self);
with oSQL do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
SQL.Add('select max(ID)+1 ');
SQL.Add('from CITAS ');
try
Prepare;
ExecQuery;
Result := Fields[0].AsInteger;
finally
Close;
Transaction := NIL;
Free;
end;
end;
end;
destructor TdmTablaCitas.Destroy;
begin
sqlInsertar.Free;
sqlModificar.Free;
sqlConsultar.Free;
sqlConsultarRecepciones.Free;
sqlEliminar.Free;
sqlRefrescar.Free;
inherited;
end;
{procedure TdmTablaCitas.InicializarTablaVisitas(Tabla: TPTabla);
begin
//
end;}
procedure TdmTablaCitas.IniciarSQL;
begin
with sqlInsertar do
begin
Add('INSERT INTO CITAS ( ');
Add('ID, PARENTID, "TYPE", START, ');
Add('FINISH, OPTIONS, CAPTION, ');
Add('RECURRENCEINDEX, RESOURCEID, LOCATION, ');
Add('"MESSAGE", REMINDER, STATE, LABELCOLOR, ');
Add('CODIGOCONTRATO, TIPOTAREA, NOMBRECLIENTE, ');
Add('PARTIDA, COMPLETADA, NOMBREPROVEEDOR) ');
Add('VALUES (:ID, :PARENTID, :"TYPE", ');
Add(':START, :FINISH, :OPTIONS, ');
Add(':CAPTION, :RECURRENCEINDEX, ');
Add(':RESOURCEID, :LOCATION, :"MESSAGE", ');
Add(':REMINDER, :STATE, :LABELCOLOR,');
Add(':CODIGOCONTRATO, :TIPOTAREA, :NOMBRECLIENTE, ');
Add(':PARTIDA, :COMPLETADA, :NOMBREPROVEEDOR) ');
end;
with sqlModificar do
begin
Add('UPDATE CITAS');
Add('SET PARENTID = :PARENTID,');
Add('"TYPE" = :"TYPE",');
Add('START = :START,');
Add('FINISH = :FINISH,');
Add('OPTIONS = :OPTIONS,');
Add('CAPTION = :CAPTION,');
Add('RECURRENCEINDEX = :RECURRENCEINDEX,');
Add('RESOURCEID = :RESOURCEID,');
Add('LOCATION = :LOCATION,');
Add('"MESSAGE" = :"MESSAGE",');
Add('REMINDER = :REMINDER,');
Add('STATE = :STATE,');
Add('LABELCOLOR = :LABELCOLOR,');
Add('CODIGOCONTRATO = :CODIGOCONTRATO,');
Add('TIPOTAREA = :TIPOTAREA, ');
Add('NOMBRECLIENTE = :NOMBRECLIENTE, ');
Add('PARTIDA = :PARTIDA, ');
Add('COMPLETADA = :COMPLETADA, ');
Add('NOMBREPROVEEDOR = :NOMBREPROVEEDOR ');
Add('WHERE (ID = :ID)');
end;
with sqlEliminar do
begin
Add('delete from CITAS ');
Add('WHERE (ID = :ID)');
end;
with sqlRefrescar do
begin
Add('select * from CITAS ');
Add('WHERE (ID = :ID)');
end;
with sqlConsultar do
begin
Add('SELECT * FROM CITAS');
end;
with sqlConsultarRecepciones do
begin
Add('SELECT CITAS.ID, CITAS.PARENTID, CITAS."TYPE", CITAS.START, ');
Add('CITAS.FINISH, CITAS.OPTIONS, CITAS.CAPTION, CITAS.RECURRENCEINDEX, ');
Add('CITAS.RESOURCEID, CITAS.LOCATION, CITAS."MESSAGE", CITAS.REMINDER, ');
Add('CITAS.STATE, CITAS.LABELCOLOR, CITAS.CODIGOCONTRATO, CITAS.TIPOTAREA, ');
Add('CITAS.NOMBRECLIENTE, CITAS.PARTIDA, CITAS.COMPLETADA, ');
Add('CITAS.NOMBREPROVEEDOR, OBRAS.CODIGODOCUMENTO ');
Add('FROM CITAS LEFT JOIN OBRAS ON (OBRAS.CODIGOCONTRATO = CITAS.CODIGOCONTRATO) ');
end;
end;
end.