317 lines
11 KiB
ObjectPascal
317 lines
11 KiB
ObjectPascal
|
|
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.
|