git-svn-id: https://192.168.0.254/svn/Proyectos.EstudioCarnicero_ProGestion/trunk@9 1b8572a8-2d6b-b84e-8c90-20ed86fa4eca
353 lines
9.8 KiB
ObjectPascal
353 lines
9.8 KiB
ObjectPascal
unit EditorEventos;
|
||
//Para poder ver el dfm de esta unidad es necesario abrir primero
|
||
//C:\Archivos de programa\Developer Express Inc\ExpressScheduler 2\Sources\cxSchedulerEventEditor
|
||
|
||
interface
|
||
|
||
uses Graphics, cxSchedulerDialogs, cxSchedulerEventEditor,
|
||
Menus, cxLookAndFeelPainters, cxGraphics, StdCtrls,
|
||
cxCheckComboBox, cxMemo, cxDropDownEdit, cxCheckBox, cxSpinEdit,
|
||
cxTimeEdit, cxCalendar, cxMaskEdit, cxImageComboBox, cxTextEdit,
|
||
cxControls, cxContainer, cxEdit, cxGroupBox, Controls, ExtCtrls,
|
||
cxButtons, Classes,
|
||
|
||
uBizCitas;
|
||
|
||
type
|
||
TfrEditorEventos = class(TcxSchedulerEventEditorForm)
|
||
pnlObra: TPanel;
|
||
lbObra: TLabel;
|
||
cbObra: TcxComboBox;
|
||
lbTipo: TLabel;
|
||
cbTipo: TcxComboBox;
|
||
teCodigoContrato: TEdit;
|
||
teNombreCliente: TEdit;
|
||
lbPartida: TLabel;
|
||
cbPartida: TcxComboBox;
|
||
pnlCompletada: TPanel;
|
||
Bevel8: TBevel;
|
||
cbCompletada: TcxCheckBox;
|
||
deFechaCompletada: TcxDateEdit;
|
||
Bevel9: TBevel;
|
||
cbInstaladores: TcxComboBox;
|
||
Bevel10: TBevel;
|
||
cbMedicion: TcxCheckBox;
|
||
procedure cbObraPropertiesEditValueChanged(Sender: TObject);
|
||
procedure cbTipoPropertiesEditValueChanged(Sender: TObject);
|
||
procedure cbTerminadoPropertiesChange(Sender: TObject);
|
||
procedure deFechaCompletadaPropertiesChange(Sender: TObject);
|
||
private
|
||
FTipoEvento : TTipoCitas;
|
||
procedure ApplyChanges;
|
||
protected
|
||
procedure DeleteEvent; override;
|
||
procedure PostEvent; override;
|
||
procedure SaveChanges; override;
|
||
function GetFormColor: TColor; override;
|
||
function GetResourcesPanelVisible: Boolean; override;
|
||
procedure InitializeControls; override;
|
||
procedure LoadEventValuesIntoControls; override;
|
||
function IsValid: Boolean; override;
|
||
procedure SetCaptions; override;
|
||
procedure SetReadOnly(AValue: Boolean); override;
|
||
procedure UpdateEventValuesFromControls; override;
|
||
procedure SaveResourceID; override;
|
||
public
|
||
constructor Create(AOwner: TComponent); override;
|
||
end;
|
||
|
||
var
|
||
frEditorEventos: TfrEditorEventos;
|
||
|
||
implementation
|
||
{$R *.dfm}
|
||
|
||
uses SysUtils, Dialogs, Variants, DateUtils, cxSchedulerUtils,
|
||
schCitasClient_Intf, uDataModuleCalendarios;
|
||
|
||
{ TfrEditorEventos }
|
||
|
||
procedure TfrEditorEventos.ApplyChanges;
|
||
begin
|
||
inherited;
|
||
//
|
||
end;
|
||
|
||
constructor TfrEditorEventos.Create(AOwner: TComponent);
|
||
begin
|
||
inherited;
|
||
end;
|
||
|
||
function TfrEditorEventos.GetFormColor: TColor;
|
||
begin
|
||
Result := $00F9FEFF;
|
||
end;
|
||
|
||
procedure TfrEditorEventos.InitializeControls;
|
||
begin
|
||
if not VarIsNull(Event.GetCustomFieldValueByName(fld_CITASTIPOTAREA)) then
|
||
FTipoEvento := DarTipoCita(Event.GetCustomFieldValueByName(fld_CITASTIPOTAREA))
|
||
else
|
||
FTipoEvento := tcPersonal;
|
||
|
||
inherited;
|
||
|
||
pnlMessage.Visible := True;
|
||
pnlCaption.Visible := True;
|
||
|
||
if not (FTipoEvento in [tcPersonal, tcMedicion]) then
|
||
begin
|
||
pnlObra.Visible := True;
|
||
if FTipoEvento in [tcPedido, tcConfirmacion, tcRecepcion, tcAviso, tcEntregaCliente] then
|
||
begin
|
||
pnlCompletada.Visible := True;
|
||
end;
|
||
end
|
||
else begin
|
||
pnlObra.Visible := False;
|
||
cbMedicion.Visible := (FTipoEvento = tcMedicion)
|
||
end;
|
||
end;
|
||
|
||
function TfrEditorEventos.IsValid: Boolean;
|
||
begin
|
||
Result := inherited IsValid;
|
||
|
||
if Result then
|
||
begin
|
||
if Length(teSubject.Text) = 0 then
|
||
begin
|
||
ShowMessage('Indique el asunto');
|
||
Result := False;
|
||
end;
|
||
|
||
if (FTipoEvento in [tcEntrega, tcMontaje, tcRemate]) then
|
||
begin
|
||
if Length(cbInstaladores.EditValue) = 0 then
|
||
begin
|
||
ShowMessage('Hay que indicar el instalador');
|
||
Result := False;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrEditorEventos.LoadEventValuesIntoControls;
|
||
var
|
||
I, AResourceIndex: Integer;
|
||
begin
|
||
inherited LoadEventValuesIntoControls;
|
||
|
||
if icbLabel.ItemIndex = 6 then
|
||
cbMedicion.Checked := True;
|
||
|
||
|
||
if (Event.GetCustomFieldValueByName(fld_CITASTIPOTAREA) <> NULL) and
|
||
not (Length(Event.GetCustomFieldValueByName(fld_CITASTIPOTAREA)) = 0) then
|
||
cbTipo.EditValue := Event.GetCustomFieldValueByName(fld_CITASTIPOTAREA);
|
||
|
||
if not (FTipoEvento in [tcPersonal, tcMedicion]) then
|
||
begin
|
||
if (Event.GetCustomFieldValueByName(fld_CITASCODIGOCONTRATO) <> NULL) and
|
||
not (Length(Event.GetCustomFieldValueByName(fld_CITASCODIGOCONTRATO))=0) then
|
||
teCodigoContrato.Text := Event.GetCustomFieldValueByName(fld_CITASCODIGOCONTRATO);
|
||
|
||
if (Event.GetCustomFieldValueByName(fld_CITASNOMBRECLIENTE) <> NULL) and
|
||
not (Length(Event.GetCustomFieldValueByName(fld_CITASNOMBRECLIENTE))=0) then
|
||
teNombreCliente.Text := Event.GetCustomFieldValueByName(fld_CITASNOMBRECLIENTE);
|
||
|
||
if (Event.GetCustomFieldValueByName(fld_CITASCOMPLETADA) <> NULL) then
|
||
begin
|
||
cbCompletada.Checked := True;
|
||
deFechaCompletada.Date := DateOf(VarToDateTime(Event.GetCustomFieldValueByName(fld_CITASCOMPLETADA)));
|
||
end;
|
||
end;
|
||
|
||
AResourceIndex := -1;
|
||
with cbInstaladores do
|
||
begin
|
||
Properties.Items.BeginUpdate;
|
||
try
|
||
Properties.Items.Clear;
|
||
for i := 0 to cbResources.Properties.Items.Count - 1 do
|
||
begin
|
||
Properties.Items.Add(cbResources.Properties.Items[i].Description);
|
||
if cbResources.States[I] = cbsChecked then
|
||
AResourceIndex := i;
|
||
end;
|
||
finally
|
||
Properties.Items.EndUpdate;
|
||
end;
|
||
ItemIndex := AResourceIndex;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrEditorEventos.SetCaptions;
|
||
begin
|
||
inherited SetCaptions;
|
||
|
||
case FTipoEvento of
|
||
tcEntrega,
|
||
tcMontaje,
|
||
tcRemate : lbResource.Caption := 'Instalador:';
|
||
|
||
tcMedicion: lbResource.Caption := 'Usuario:';
|
||
end;
|
||
|
||
lbSubject.Caption := 'Asunto:';
|
||
lbStartTime.Caption := 'Comienzo:';
|
||
lbEndTime.Caption := 'Final:';
|
||
cbAllDayEvent.Caption := 'Todo el d<>a';
|
||
btnOk.Caption := 'Aceptar';
|
||
btnDelete.Caption := 'Eliminar';
|
||
btnCancel.Caption := 'Cancelar';
|
||
end;
|
||
|
||
procedure TfrEditorEventos.SetReadOnly(AValue: Boolean);
|
||
begin
|
||
inherited;
|
||
if AValue then
|
||
begin
|
||
cbObra.Enabled:= False;
|
||
cbPartida.Enabled:= False;
|
||
cbTipo.Enabled:= False;
|
||
deFechaCompletada.Enabled:= False;
|
||
cbCompletada.Enabled:= False;
|
||
end
|
||
else
|
||
begin
|
||
cbObra.Enabled:= True;
|
||
cbPartida.Enabled:= True;
|
||
cbTipo.Enabled:= True;
|
||
deFechaCompletada.Enabled:= True;
|
||
cbCompletada.Enabled:= True;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrEditorEventos.UpdateEventValuesFromControls;
|
||
begin
|
||
inherited UpdateEventValuesFromControls;
|
||
|
||
SaveResourceID;
|
||
|
||
try
|
||
// post the data from the custom editing controls
|
||
|
||
if not VarIsNull(teCodigoContrato.Text) then
|
||
Event.SetCustomFieldValueByName(fld_CITASCODIGOCONTRATO, teCodigoContrato.Text);
|
||
|
||
if not VarIsNull(teNombreCliente.Text) then
|
||
Event.SetCustomFieldValueByName(fld_CITASNOMBRECLIENTE, teNombreCliente.Text);
|
||
|
||
if not VarIsNull(cbPartida.EditValue) then
|
||
Event.SetCustomFieldValueByName(fld_CITASPARTIDA, TextoPartidasObra[cbPartida.ItemIndex]);
|
||
|
||
if not VarIsNull(deFechaCompletada.EditValue) then
|
||
Event.SetCustomFieldValueByName(fld_CITASCOMPLETADA, deFechaCompletada.Date)
|
||
else
|
||
Event.SetCustomFieldValueByName(fld_CITASCOMPLETADA, Null);
|
||
|
||
if not VarIsNull(cbTipo.EditValue) then
|
||
begin
|
||
FTipoEvento := DarTipoCita(cbTipo.EditValue);
|
||
Event.SetCustomFieldValueByName(fld_CITASTIPOTAREA, TextoTipoCita[Ord(FTipoEvento)]);
|
||
end
|
||
else
|
||
FTipoEvento := tcPersonal;
|
||
|
||
if cbMedicion.Checked then
|
||
Event.LabelColor := EventLabelColors[6]
|
||
else
|
||
Event.LabelColor := EventLabelColors[Ord(FTipoEvento) + 1];
|
||
except
|
||
on E: Exception do
|
||
ShowMessage('Can''t post data' + #13#10 + E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TfrEditorEventos.cbObraPropertiesEditValueChanged(
|
||
Sender: TObject);
|
||
begin
|
||
inherited OnChanged(Sender);
|
||
if Length(cbObra.EditValue) <> 0 then
|
||
begin
|
||
teCodigoContrato.Text := Copy(cbObra.EditValue, 0, Pos(' ', cbObra.EditValue)-1);
|
||
teNombreCliente.Text := Copy(cbObra.EditValue, Pos(' ', cbObra.EditValue)+1, MaxInt);
|
||
end
|
||
else begin
|
||
teCodigoContrato.Text := '0';
|
||
teNombreCliente.Text := '';
|
||
end;
|
||
end;
|
||
|
||
procedure TfrEditorEventos.cbTipoPropertiesEditValueChanged(
|
||
Sender: TObject);
|
||
begin
|
||
inherited OnChanged(Sender);
|
||
icbLabel.ItemIndex := cbTipo.ItemIndex + 1;
|
||
icbLabel.EditModified := True;
|
||
end;
|
||
|
||
procedure TfrEditorEventos.cbTerminadoPropertiesChange(Sender: TObject);
|
||
begin
|
||
deFechaCompletada.Enabled := cbCompletada.Checked;
|
||
if not cbCompletada.Checked then
|
||
deFechaCompletada.Clear
|
||
else
|
||
if Length(deFechaCompletada.EditValue) = 0 then
|
||
deFechaCompletada.Date := DateOf(Now);
|
||
|
||
FModified := True;
|
||
CheckVisible;
|
||
end;
|
||
|
||
procedure TfrEditorEventos.deFechaCompletadaPropertiesChange(
|
||
Sender: TObject);
|
||
begin
|
||
FModified := True;
|
||
end;
|
||
|
||
procedure TfrEditorEventos.DeleteEvent;
|
||
begin
|
||
inherited;
|
||
end;
|
||
|
||
procedure TfrEditorEventos.PostEvent;
|
||
begin
|
||
inherited;
|
||
end;
|
||
|
||
procedure TfrEditorEventos.SaveChanges;
|
||
begin
|
||
inherited;
|
||
end;
|
||
|
||
function TfrEditorEventos.GetResourcesPanelVisible: Boolean;
|
||
begin
|
||
Result := not (FTipoEvento in [tcPedido, tcConfirmacion, tcRecepcion, tcAviso, tcEntregaCliente]);
|
||
end;
|
||
|
||
procedure TfrEditorEventos.SaveResourceID;
|
||
var
|
||
I: Integer;
|
||
begin
|
||
if pnlResource.Visible then
|
||
begin
|
||
for I := 0 to cbResources.Properties.Items.Count - 1 do
|
||
cbResources.States[I] := cbsUnchecked;
|
||
cbResources.States[cbInstaladores.ItemIndex] := cbsChecked;
|
||
end
|
||
else
|
||
begin
|
||
showmessage('debo poner a nulo el valor de resources');
|
||
for I := 0 to cbResources.Properties.Items.Count - 1 do
|
||
cbResources.States[I] := cbsUnchecked;
|
||
end;
|
||
inherited;
|
||
end;
|
||
|
||
initialization
|
||
cxEventEditorClass := TfrEditorEventos; // indicate that the new Event modal dialog will be invoked at runtime
|
||
|
||
end.
|