ProGestion/Modulos/Obras final/Cliente/uEditorObrasFinal.pas

317 lines
11 KiB
ObjectPascal
Raw Normal View History

unit uEditorObrasFinal;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorObras, dxLayoutLookAndFeels, Menus, DB, uDADataTable,
JvAppStorage, JvAppRegistryStorage, JvComponentBase, JvFormPlacement,
ImgList, PngImageList, StdActns, ActnList, uViewGrid, uCustomView, uViewBase,
uViewBarraSeleccion, ComCtrls, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock,
TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, cxGridCustomTableView,
uViewObras, uViewProyectosObra, uViewFacturasCliente, uViewFacturasObra,
uViewRecibosObra, pngimage;
type
IEditorObrasFinal = interface(IEditorObras)
['{361560A6-C86F-4C2A-AAA1-D006C8CB1E70}']
end;
TfEditorObrasFinal = class(TfEditorObras, IEditorObrasFinal)
pagFacturas: TTabSheet;
frViewFacturasObra1: TfrViewFacturasObra;
pagRecibos: TTabSheet;
frViewRecibosObra1: TfrViewRecibosObra;
procedure frViewBarraSeleccionactSeleccionarExecute(Sender: TObject);
procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction);
procedure FocusedRecordChange(Sender: TcxCustomGridTableView; APrevFocusedRecord,
AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
procedure FormShow(Sender: TObject);
procedure paginasChange(Sender: TObject);
procedure frViewFacturasObra1actAnadirExecute(Sender: TObject);
procedure frViewFacturasObra1actModificarExecute(Sender: TObject);
procedure frViewFacturasObra1actEliminarExecute(Sender: TObject);
procedure frViewFacturasObra1actEliminarTodoExecute(Sender: TObject);
procedure frViewFacturasObra1actDuplicarExecute(Sender: TObject);
procedure frViewFacturasObra1actAnadirUpdate(Sender: TObject);
procedure frViewFacturasObra1cxGridViewDataControllerDataChanged(Sender: TObject);
procedure frViewRecibosObra1actAnadirExecute(Sender: TObject);
procedure frViewRecibosObra1actAnadirUpdate(Sender: TObject);
procedure frViewRecibosObra1actEditarExecute(Sender: TObject);
procedure frViewRecibosObra1actEliminarExecute(Sender: TObject);
procedure frViewRecibosObra1actEliminarTodoExecute(Sender: TObject);
procedure frViewRecibosObra1actDuplicarExecute(Sender: TObject);
procedure frViewRecibosObra1cxGridViewDataControllerDataChanged(Sender: TObject);
procedure frViewProyectosObracxGridViewCellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure frViewFacturasObra1cxGridViewCellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure frViewRecibosObra1cxGridViewCellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
protected
procedure SetSelectionBarVisible(const Value: Boolean); override;
end;
implementation
{$R *.dfm}
uses
uEditorUtils, uDBSelectionList, uBizObraFinal, uDataModuleObrasFinal,
LiteralesObrasFinal;
function ShowEditorObrasFinal (ABizObject : TDADataTableRules) : TModalResult;
var
AEditor: TfEditorObrasFinal;
begin
AEditor := TfEditorObrasFinal.Create(Application);
try
AEditor.Obras := (ABizObject as IBizObraFinal);
Result := AEditor.ShowModal;
finally
AEditor.Release;
end;
end;
function ShowSelectEditorObrasFinal (ABizObject : TDADataTableRules) : TModalResult;
var
AEditor: TfEditorObrasFinal;
begin
AEditor := TfEditorObrasFinal.Create(Application);
try
AEditor.Obras := (ABizObject as IBizObraFinal);
AEditor.SelectionBarVisible := True;
Result := AEditor.ShowModal;
finally
AEditor.Release;
end;
end;
procedure TfEditorObrasFinal.frViewBarraSeleccionactSeleccionarExecute(Sender: TObject);
begin
inherited;
(Obras as ISelectedRowList).SelectedRows.CurrentRowSelected := True;
ModalResult := mrOK;
end;
procedure TfEditorObrasFinal.CustomEditorClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
frViewObras.cxGridView.OnFocusedRecordChanged := Nil;
if ModalResult <> mrOk then
(Obras as ISelectedRowList).SelectedRows.Clear;
end;
procedure TfEditorObrasFinal.SetSelectionBarVisible(const Value: Boolean);
begin
inherited;
if Value then
begin
frViewObras.Grid.ActiveView.OnDblClick := frViewBarraSeleccion.actSeleccionar.OnExecute;
paginas.Visible := False;
end;
end;
procedure TfEditorObrasFinal.FocusedRecordChange(Sender: TcxCustomGridTableView; APrevFocusedRecord,
AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
begin
inherited;
if (Obras.DataTable.State = dsBrowse) then
paginasChange(Self);
end;
procedure TfEditorObrasFinal.FormShow(Sender: TObject);
begin
inherited;
frViewObras.cxGridView.OnFocusedRecordChanged := FocusedRecordChange;
Paginas.ActivePage := pagProyectos;
end;
procedure TfEditorObrasFinal.paginasChange(Sender: TObject);
begin
if (paginas.ActivePageIndex = pagFacturas.PageIndex) then
begin
frViewFacturasObra1.Facturas := (Obras as IBizObraFinal).Facturas;
frViewFacturasObra1.setFiltro(Obras.CODIGO);
end
else if (paginas.ActivePageIndex = pagRecibos.PageIndex) then
begin
frViewRecibosObra1.Recibos := (Obras as IBizObraFinal).Recibos;
frViewRecibosObra1.setFiltro(Obras.CODIGO);
end;
end;
procedure TfEditorObrasFinal.frViewFacturasObra1actAnadirExecute(Sender: TObject);
begin
inherited;
(Obras as IBizObraFinal).Facturas.Insert;
(Obras as IBizObraFinal).Facturas.Obra := dmObrasFinal.GetObraItem(Obras.CODIGO);
(Obras as IBizObraFinal).Facturas.Show;
end;
procedure TfEditorObrasFinal.frViewFacturasObra1actModificarExecute(Sender: TObject);
begin
inherited;
(Obras as IBizObraFinal).Facturas.Show;
end;
procedure TfEditorObrasFinal.frViewFacturasObra1actEliminarExecute(Sender: TObject);
begin
if (MessageDlg('<27>Esta seguro de desear borrar esta factura?', mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
begin
(Obras as IBizObraFinal).Facturas.Delete;
(Obras as IBizObraFinal).Facturas.DataTable.ApplyUpdates;
frViewFacturasObra1.RefreshGrid;
frViewFacturasObra1.GotoFirst;
end;
end;
procedure TfEditorObrasFinal.frViewFacturasObra1actAnadirUpdate(Sender: TObject);
begin
if Assigned(dsDataTable.DataTable) then
(Sender as TAction).Enabled := not dsDataTable.DataTable.IsEmpty
else
(Sender as TAction).Enabled := False;
end;
procedure TfEditorObrasFinal.frViewFacturasObra1cxGridViewDataControllerDataChanged(Sender: TObject);
begin
inherited;
if not (Obras.DataTable.Fetching)
or not (Obras.DataTable.Opening)
or not (Obras.DataTable.Closing) then
frViewFacturasObra1.JvNavPanelHeader.Caption := 'Lista de facturas de la obra ' + Obras.NOMBRE;
end;
procedure TfEditorObrasFinal.frViewRecibosObra1actAnadirExecute(Sender: TObject);
begin
(Obras as IBizObraFinal).Recibos.Insert;
(Obras as IBizObraFinal).Recibos.Obra := dmObrasFinal.GetObraItem(Obras.CODIGO);
(Obras as IBizObraFinal).Recibos.Show;
end;
procedure TfEditorObrasFinal.frViewRecibosObra1actAnadirUpdate(Sender: TObject);
begin
if Assigned(dsDataTable.DataTable) then
(Sender as TAction).Enabled := not dsDataTable.DataTable.IsEmpty
else
(Sender as TAction).Enabled := False;
end;
procedure TfEditorObrasFinal.frViewRecibosObra1actEditarExecute(Sender: TObject);
begin
inherited;
(Obras as IBizObraFinal).Recibos.Show;
end;
procedure TfEditorObrasFinal.frViewFacturasObra1actEliminarTodoExecute(Sender: TObject);
begin
if (MessageDlg(msgLitBorrarTFactura, mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
begin
frViewFacturasObra1.Facturas.DataTable.ClearRows;
frViewFacturasObra1.Facturas.DataTable.ApplyUpdates;
frViewFacturasObra1.RefreshGrid;
end;
end;
procedure TfEditorObrasFinal.frViewFacturasObra1actDuplicarExecute(Sender: TObject);
var
AFactura : IBizFacturasObras;
begin
inherited;
AFactura := dmObrasFinal.GetFacturasItem(frViewFacturasObra1.Facturas.CODIGO);
if not AFactura.DataTable.Active then
AFactura.DataTable.Active := True;
frViewFacturasObra1.Facturas.Insert;
frViewFacturasObra1.Facturas.CopyFrom(AFactura);
frViewFacturasObra1.Facturas.DataTable.ApplyUpdates;
end;
procedure TfEditorObrasFinal.frViewProyectosObracxGridViewCellDblClick(
Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
inherited;
frViewProyectosObra.actModificar.Execute;
end;
procedure TfEditorObrasFinal.frViewFacturasObra1cxGridViewCellDblClick(
Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
inherited;
frViewFacturasObra1.actModificar.Execute;
end;
procedure TfEditorObrasFinal.frViewRecibosObra1cxGridViewCellDblClick(
Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
inherited;
frViewRecibosObra1.actEditar.Execute;
end;
procedure TfEditorObrasFinal.frViewRecibosObra1actDuplicarExecute(Sender: TObject);
var
ARecibo : IBizRecibosObras;
begin
inherited;
ARecibo := dmObrasFinal.GetRecibosItem(frViewRecibosObra1.Recibos.CODIGO);
if not ARecibo.DataTable.Active then
ARecibo.DataTable.Active := True;
frViewRecibosObra1.Recibos.Insert;
frViewRecibosObra1.Recibos.CopyFrom(ARecibo);
frViewRecibosObra1.Recibos.DataTable.ApplyUpdates;
end;
procedure TfEditorObrasFinal.frViewRecibosObra1actEliminarExecute(Sender: TObject);
begin
if (MessageDlg('<27>Esta seguro de desear borrar este recibo?', mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
begin
(Obras as IBizObraFinal).Recibos.Delete;
(Obras as IBizObraFinal).Recibos.DataTable.ApplyUpdates;
frViewRecibosObra1.RefreshGrid;
frViewRecibosObra1.GotoFirst;
end;
end;
procedure TfEditorObrasFinal.frViewRecibosObra1actEliminarTodoExecute(Sender: TObject);
begin
if (MessageDlg(msgLitBorrarTRecibo, mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
begin
frViewRecibosObra1.Recibos.DataTable.ClearRows;
frViewRecibosObra1.Recibos.DataTable.ApplyUpdates;
frViewRecibosObra1.RefreshGrid;
end;
end;
procedure TfEditorObrasFinal.frViewRecibosObra1cxGridViewDataControllerDataChanged(
Sender: TObject);
begin
inherited;
if not (Obras.DataTable.Fetching)
or not (Obras.DataTable.Opening)
or not (Obras.DataTable.Closing) then
frViewRecibosObra1.JvNavPanelHeader.Caption := 'Lista de recibos de la obra ' + Obras.NOMBRE;
end;
initialization
RegisterEditor(IBizObraFinal, ShowEditorObrasFinal, etItems);
RegisterEditor(IBizObraFinal, ShowSelectEditorObrasFinal, etSelectItem);
end.