ProGestion/Modulos/Obras/Cliente/uEditorContactoObra.pas
2007-06-21 16:12:43 +00:00

285 lines
8.9 KiB
ObjectPascal

{
===============================================================================
Copyright (©) 2006. 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: 22-05-2006
Versión actual: 1.0.0
Fecha versión actual: 22-05-2006
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
===============================================================================
}
unit uEditorContactoObra;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorDBItem, dxLayoutLookAndFeels, DB, uDADataTable,
JvAppStorage, JvAppRegistryStorage, JvComponent, JvFormPlacement,
ImgList, PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item,
TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, uViewGrid,
ToolWin, JvComponentBase, uViewDatosYSeleccionContacto, uBizObra,
uViewPresupuestosContacto, uCustomView, uViewBase, uBizContacto, cxGridCustomTableView;
type
IEditorContactoObra = interface(IEditorDBItem)
['{37D8A488-2B72-479C-93FD-70053CBDC9D5}']
end;
TfEditorContactoObra = class(TfEditorDBItem, IEditorContactoObra)
frViewContactoObra: TfrViewDatosYSeleccionContacto;
pnlViewGrid: TPanel;
frViewPresupuestosContacto: TfrViewPresupuestosContacto;
procedure frViewPresupuestosContactoactAnadirExecute(Sender: TObject);
procedure frViewPresupuestosContactoactEliminarExecute(Sender: TObject);
procedure frViewPresupuestosContactoactEliminarTodoExecute(Sender: TObject);
procedure frViewPresupuestosContactoactEditarExecute(Sender: TObject);
procedure actGuardarExecute(Sender: TObject);
procedure actGuardarCerrarExecute(Sender: TObject);
procedure actEliminarExecute(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject);
procedure dsDataTableDataChange(Sender: TObject; Field: TField);
procedure frViewPresupuestosContactocxGridViewCellDblClick(
Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure frViewPresupuestosContactocxGridView2CellDblClick(
Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
private
FContactosObra: IBizContactosObra;
FPresupuestosContacto: IViewPresupuestosContacto;
function GetContactosObra: IBizContactosObra;
procedure SetContactosObra(const Value: IBizContactosObra);
protected
function GetModified: Boolean; override;
public
property ContactosObra: IBizContactosObra read GetContactosObra write SetContactosObra;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
var
fEditorContactoObra: TfEditorContactoObra;
implementation
{$R *.dfm}
uses uExceptions, LiteralesObras, uEditorUtils, schObrasClient_Intf,
uEditorBase, uEditorDBBase;
function ShowEditorContactoObra (ABizObject : TDADataTableRules) : TModalResult;
var
AEditor: TfEditorContactoObra;
begin
AEditor := TfEditorContactoObra.Create(Application);
try
AEditor.ContactosObra := (ABizObject as IBizContactosObra);
Result := AEditor.ShowModal;
finally
AEditor.Release;
end;
end;
{ TfEditorContactoObra }
function TfEditorContactoObra.GetContactosObra: IBizContactosObra;
begin
Result := FContactosObra;
end;
procedure TfEditorContactoObra.SetContactosObra(const Value: IBizContactosObra);
begin
FContactosObra := Value;
if Assigned(FContactosObra) then
begin
dsDataTable.DataTable := FContactosObra.DataTable;
frViewContactoObra.Contacto := FContactosObra.Contacto;
FPresupuestosContacto.PresupuestosContacto := FContactosObra.Presupuestos;
end
else
begin
dsDataTable.DataTable := Nil;
frViewContactoObra.Contacto := Nil;
FPresupuestosContacto.PresupuestosContacto := Nil;
end;
end;
procedure TfEditorContactoObra.frViewPresupuestosContactoactEditarExecute(Sender: TObject);
begin
inherited;
FPresupuestosContacto.DesactivarFiltros;
ContactosObra.Presupuestos.Show;
FPresupuestosContacto.ActivarFiltros;
FPresupuestosContacto.RefreshGrid;
end;
procedure TfEditorContactoObra.frViewPresupuestosContactoactAnadirExecute(Sender: TObject);
begin
inherited;
//Orden importante no tocar
FPresupuestosContacto.DesactivarFiltros;
ContactosObra.Presupuestos.Insert;
if FPresupuestosContacto.ClasePresupuesto = CLASE_PRESUPUESTO
then ContactosObra.Presupuestos.CLASE := CLASE_PRESUPUESTO
else ContactosObra.Presupuestos.CLASE := CLASE_TRABAJO;
ContactosObra.Presupuestos.Contacto := ContactosObra.Contacto;
ContactosObra.Presupuestos.Show;
FPresupuestosContacto.ActivarFiltros;
FPresupuestosContacto.RefreshGrid;
end;
procedure TfEditorContactoObra.frViewPresupuestosContactoactEliminarExecute(Sender: TObject);
var
Cadena : String;
begin
if FPresupuestosContacto.ClasePresupuesto = CLASE_PRESUPUESTO
then Cadena := msgLitBorrarP
else Cadena := msgLitBorrarT;
if (MessageDlg(Cadena, mtConfirmation, [mbYes, mbNo], 0) = mrNo) then
Exit;
ContactosObra.Presupuestos.Delete;
FPresupuestosContacto.RefreshGrid;
Modified := True;
end;
procedure TfEditorContactoObra.frViewPresupuestosContactoactEliminarTodoExecute(Sender: TObject);
var
Cadena: String;
begin
if FPresupuestosContacto.ClasePresupuesto = CLASE_PRESUPUESTO
then Cadena := msgLitBorrarTodosP
else Cadena := msgLitBorrarTodosT;
if (MessageDlg(Cadena, mtConfirmation, [mbYes, mbNo], 0) = mrNo) then
Exit;
with ContactosObra.Presupuestos do
begin
DataTable.DisableControls;
DataTable.First;
while not DataTable.EOF do
begin
if CLASE = FPresupuestosContacto.ClasePresupuesto
then DataTable.Delete
else DataTable.Next;
end;
DataTable.EnableControls;
end;
FPresupuestosContacto.RefreshGrid;
Modified := True;
end;
procedure TfEditorContactoObra.actGuardarExecute(Sender: TObject);
begin
//No hacemos nada en ContactosObra
// inherited;
end;
procedure TfEditorContactoObra.actGuardarCerrarExecute(Sender: TObject);
begin
//No hacemos nada solo cerramos
// inherited;
actCerrar.Execute;
end;
procedure TfEditorContactoObra.actEliminarExecute(Sender: TObject);
begin
// inherited;
//Eliminamos el contacto seleccionado.
ContactosObra.Delete;
actCerrar.Execute;
end;
procedure TfEditorContactoObra.actEliminarUpdate(Sender: TObject);
begin
// inherited; //No quitar ya que no queremos que se lance el del padre
end;
constructor TfEditorContactoObra.Create(AOwner: TComponent);
begin
inherited;
FPresupuestosContacto := frViewPresupuestosContacto;
end;
destructor TfEditorContactoObra.Destroy;
begin
FPresupuestosContacto := Nil;
inherited;
end;
procedure TfEditorContactoObra.dsDataTableDataChange(Sender: TObject;
Field: TField);
begin
inherited;
if Assigned(FContactosObra) and (not (FContactosObra.DataTable.Fetching) or
not (FContactosObra.DataTable.Opening) or not (FContactosObra.DataTable.Closing)) then
begin
if Length(FContactosObra.NOMBRE) = 0 then
JvNavPanelHeader.Caption := msgLitContactosObraNuv
else
JvNavPanelHeader.Caption := msgContactosObra + FContactosObra.NOMBRE;
Self.Caption := JvNavPanelHeader.Caption;
end;
end;
procedure TfEditorContactoObra.frViewPresupuestosContactocxGridViewCellDblClick(
Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
inherited;
frViewPresupuestosContactoactEditarExecute(Self);
end;
procedure TfEditorContactoObra.frViewPresupuestosContactocxGridView2CellDblClick(
Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
inherited;
frViewPresupuestosContactoactEditarExecute(Self);
end;
function TfEditorContactoObra.GetModified: Boolean;
begin
//Para que no pregunte nunca
Result := False;
end;
initialization
RegisterEditor(IBizContactosObra, ShowEditorContactoObra, etItem);
end.