ProGestion/Modulos/Obras/Cliente/uEditorContactoObra.pas

285 lines
8.9 KiB
ObjectPascal
Raw Normal View History

{
===============================================================================
Copyright (<EFBFBD>) 2006. Rodax Software.
===============================================================================
Los contenidos de este fichero son propiedad de Rodax Software titular del
copyright. Este fichero s<EFBFBD>lo podr<EFBFBD> ser copiado, distribuido y utilizado,
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
acuerdo con los t<EFBFBD>rminos y condiciones establecidas en el acuerdo/contrato
bajo el que se suministra.
-----------------------------------------------------------------------------
Web: www.rodax-software.com
===============================================================================
Fecha primera versi<EFBFBD>n: 22-05-2006
Versi<EFBFBD>n actual: 1.0.0
Fecha versi<EFBFBD>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.