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.
AbetoArmarios_FactuGES/Agenda/CalendarioRecepciones.pas
2007-06-21 15:45:53 +00:00

231 lines
6.9 KiB
ObjectPascal

unit CalendarioRecepciones;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, CalendarioBasico, Menus, cxStyles, cxGraphics, cxEdit,
cxScheduler, cxSchedulerStorage, cxSchedulerCustomControls,
cxSchedulerCustomResourceView, cxSchedulerDayView,
cxSchedulerDateNavigator, cxSchedulerWeekView, ActnList,
cxSchedulerDBStorage, cxControls, RdxBotones, ExtCtrls, RdxPaneles,
RdxBarras, DB, IBCustomDataSet, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg,
dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
dxPSEdgePatterns, dxPrnDlg, dxPSCore, dxPScxCommon,
cxSchedulerTimeGridView, cxSchedulerUtils, cxSchedulerYearView,
dxPScxScheduler2Lnk, ImgList, Grids, DBGrids;
type
TfrCalendarioRecepciones = class(TfrCalendarioBasico)
dsCitas: TDataSource;
TablaCitas: TIBDataSet;
pnlTipoCalendario: TPanel;
bCocinasBanos: TRdxBotonLateral;
bArmarios: TRdxBotonLateral;
ImageList1: TImageList;
actCocinas: TAction;
actArmarios: TAction;
procedure RdxFrameShow(Sender: TObject);
procedure cxSchedulerGetEventDisplayText(Sender: TObject;
AEvent: TcxSchedulerControlEvent; var AText: String);
procedure cxSchedulerGetEventHintText(Sender: TObject;
AEvent: TcxSchedulerControlEvent; var AText: String);
procedure actCocinasExecute(Sender: TObject);
procedure actArmariosExecute(Sender: TObject);
private
procedure TablaCitasBeforePost(DataSet: TDataSet);
procedure TablaCitasAfterPost(DataSet: TDataSet);
procedure TablaCitasFilterRecord(DataSet: TDataSet; var Accept: Boolean);
protected
procedure InicializarEvento (var aEvent : TcxSchedulerControlEvent); override;
procedure InicializarCampos; override;
public
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
end;
var
frCalendarioRecepciones: TfrCalendarioRecepciones;
implementation
uses BaseDatos, TablaCitas, TablaDocumentos;
{$R *.dfm}
{ TfrCalendarioRecepciones }
constructor TfrCalendarioRecepciones.Create(AOwner: TComponent);
begin
inherited;
dsCitas.DataSet := TablaCitas;
with TablaCitas do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
SelectSQL.Assign(dmTablaCitas.sqlConsultarRecepciones);
SelectSQL.Add('WHERE TIPOTAREA IN (');
SelectSQL.Add('''' + TextoTipoCita[Ord(tcRecepcion)] + ''', ');
SelectSQL.Add('''' + TextoTipoCita[Ord(tcAviso)] + ''', ');
SelectSQL.Add('''' + TextoTipoCita[Ord(tcEntregaCliente)] + ''')');
InsertSQL.Assign(dmTablaCitas.sqlInsertar);
ModifySQL.Assign(dmTablaCitas.sqlModificar);
DeleteSQL.Assign(dmTablaCitas.sqlEliminar);
RefreshSQL.Assign(dmTablaCitas.sqlRefrescar);
RefreshSQL.Add('and TIPOTAREA IN (');
RefreshSQL.Add('''' + TextoTipoCita[Ord(tcRecepcion)] + ''', ');
RefreshSQL.Add('''' + TextoTipoCita[Ord(tcAviso)] + ''', ');
RefreshSQL.Add('''' + TextoTipoCita[Ord(tcEntregaCliente)] + ''')');
BeforePost := TablaCitasBeforePost;
AfterPost := TablaCitasAfterPost;
Prepare;
OnFilterRecord := TablaCitasFilterRecord;
Filtered := True;
end;
end;
destructor TfrCalendarioRecepciones.Destroy;
begin
TablaCitas.Close;
inherited;
end;
procedure TfrCalendarioRecepciones.InicializarCampos;
var
aField : TcxSchedulerDBStorageField;
begin
inherited;
Exit;
with cxSchedulerDBStorage.CustomFields do
begin
try
BeginUpdate;
Clear;
aField := Add;
aField.FieldName := 'TIPOTAREA';
aField := Add;
aField.FieldName := 'CODIGOCONTRATO';
aField := Add;
aField.FieldName := 'NOMBRECLIENTE';
aField := Add;
aField.FieldName := 'PARTIDA';
aField := Add;
aField.FieldName := 'COMPLETADA';
aField := Add;
aField.FieldName := 'NOMBREPROVEEDOR';
finally
EndUpdate;
end;
end;
end;
procedure TfrCalendarioRecepciones.InicializarEvento(
var aEvent: TcxSchedulerControlEvent);
begin
inherited;
with AEvent do
begin
SetCustomFieldValueByName('TIPOTAREA', TextoTipoCita[Ord(tcRecepcion)]);
AllDayEvent := True;
end;
end;
procedure TfrCalendarioRecepciones.TablaCitasAfterPost(DataSet: TDataSet);
begin
dmBaseDatos.Transaccion.CommitRetaining;
end;
procedure TfrCalendarioRecepciones.TablaCitasBeforePost(DataSet: TDataSet);
begin
if (DataSet.FieldByName('ID').AsVariant = -1) or
(VarIsNull(DataSet.FieldByName('ID').AsVariant)) then
begin
DataSet.Edit;
DataSet.FieldByName('ID').AsVariant := dmTablaCitas.DarNuevoCodigo;
end;
end;
procedure TfrCalendarioRecepciones.RdxFrameShow(Sender: TObject);
begin
inherited;
try
cxScheduler.BeginUpdate;
TablaCitas.Open;
cxSchedulerDBStorage.DataSource := dsCitas;
finally;
cxScheduler.EndUpdate;
end;
actMes.Execute;
end;
procedure TfrCalendarioRecepciones.cxSchedulerGetEventDisplayText(
Sender: TObject; AEvent: TcxSchedulerControlEvent; var AText: String);
var
Nombre : String;
Proveedor : String;
Tipo : String;
begin
inherited;
if not VarIsNull(AEvent.GetCustomFieldValueByName('NOMBRECLIENTE')) then
begin
Nombre := VarToStr(AEvent.GetCustomFieldValueByName('NOMBRECLIENTE'));
Proveedor := VarToStr(AEvent.GetCustomFieldValueByName('NOMBREPROVEEDOR'));
Tipo := VarToStr(AEvent.GetCustomFieldValueByName('TIPOTAREA')) + ' ' + VarToStr(AEvent.GetCustomFieldValueByName('PARTIDA'));
AText := Nombre + ' - ' + Tipo + ' (' + Proveedor + ')';
end;
end;
procedure TfrCalendarioRecepciones.cxSchedulerGetEventHintText(
Sender: TObject; AEvent: TcxSchedulerControlEvent; var AText: String);
var
Nombre : String;
Proveedor : String;
Tipo : String;
begin
inherited;
if not VarIsNull(AEvent.GetCustomFieldValueByName('NOMBRECLIENTE')) then
begin
Nombre := VarToStr(AEvent.GetCustomFieldValueByName('NOMBRECLIENTE'));
Proveedor := VarToStr(AEvent.GetCustomFieldValueByName('NOMBREPROVEEDOR'));
Tipo := VarToStr(AEvent.GetCustomFieldValueByName('TIPOTAREA')) + ' ' + VarToStr(AEvent.GetCustomFieldValueByName('PARTIDA'));
AText := Nombre + #10#13 + Tipo + #10#13 + Proveedor;
end;
end;
procedure TfrCalendarioRecepciones.TablaCitasFilterRecord(
DataSet: TDataSet; var Accept: Boolean);
begin
if bCocinasBanos.Down then
Accept := (Pos(DataSet.FieldByName('CODIGODOCUMENTO').AsString, 'MCOCINA,MBANO') > 0)
else
Accept := (Pos(DataSet.FieldByName('CODIGODOCUMENTO').AsString, 'ARMARIOS') > 0)
end;
procedure TfrCalendarioRecepciones.actCocinasExecute(Sender: TObject);
begin
inherited;
TablaCitas.Filtered := False;
TablaCitas.Filtered := True;
end;
procedure TfrCalendarioRecepciones.actArmariosExecute(Sender: TObject);
begin
inherited;
TablaCitas.Filtered := False;
TablaCitas.Filtered := True;
end;
end.