unit uEditorFacturasCliente; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, DB, uDADataTable, JvAppStorage, JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, uViewGrid, pngimage, JvComponentBase, uEditorGridBase, uBizFacturasCliente, uIEditorFacturasCliente, uFacturasClienteController, uCustomView, uViewBase, uViewBarraSeleccion, uViewGridBase, uViewFacturasCliente, JvExComCtrls, JvStatusBar; type TfEditorFacturasCliente = class(TfEditorGridBase, IEditorFacturasCliente) frViewFacturasCliente1: TfrViewFacturasCliente; actCambiarSituacion: TAction; Cambiarlasituacin1: TMenuItem; procedure FormShow(Sender: TObject); procedure actCambiarSituacionExecute(Sender: TObject); private FFacturas: IBizFacturaCliente; FController : IFacturasClienteController; protected function GetFacturas: IBizFacturaCliente; procedure SetFacturas(const Value: IBizFacturaCliente); function GetController : IFacturasClienteController; virtual; procedure SetController (const Value : IFacturasClienteController); virtual; procedure NuevoInterno; override; procedure EliminarInterno; override; procedure ModificarInterno; override; procedure DuplicarInterno; override; public procedure PonerTitulos(const ATitulo: string = ''); override; property Facturas: IBizFacturaCliente read GetFacturas write SetFacturas; property Controller : IFacturasClienteController read GetController write SetController; constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; implementation uses uDataModuleFacturasCliente, uDataModuleUsuarios; {$R *.dfm} { *************************** TfEditorFacturasCliente *************************** } constructor TfEditorFacturasCliente.Create(AOwner: TComponent); begin inherited; ViewGrid := frViewFacturasCliente1; // CreateView(TfrViewFacturasCliente) as IViewFacturasCliente; end; destructor TfEditorFacturasCliente.Destroy; begin FFacturas := NIL; inherited; end; procedure TfEditorFacturasCliente.DuplicarInterno; var AFactura : IBizFacturaCliente; begin inherited; AFactura := FController.Duplicar(FFacturas); try FController.Ver(AFactura); finally actRefrescar.Execute; end; end; procedure TfEditorFacturasCliente.EliminarInterno; begin if (Application.MessageBox('¿Desea borrar esta factura de cliente?', 'Atención', MB_YESNO) = IDYES) then begin FController.Eliminar(Facturas); inherited; end; end; procedure TfEditorFacturasCliente.FormShow(Sender: TObject); begin inherited; if not Assigned(ViewGrid) then raise Exception.Create('No hay ninguna vista asignada'); if not Assigned(Facturas) then raise Exception.Create('No hay ningún presupuesto asignado'); Facturas.DataTable.Active := True; ViewGrid.GotoFirst; end; procedure TfEditorFacturasCliente.actCambiarSituacionExecute(Sender: TObject); begin inherited; FController.CambiarSituacion(FFacturas); end; function TfEditorFacturasCliente.GetController: IFacturasClienteController; begin Result := FController; end; function TfEditorFacturasCliente.GetFacturas: IBizFacturaCliente; begin Result := FFacturas; end; procedure TfEditorFacturasCliente.ModificarInterno; begin inherited; FController.Ver(Facturas); end; procedure TfEditorFacturasCliente.NuevoInterno; begin inherited; FController.Anadir(Facturas); FController.Ver(Facturas); end; procedure TfEditorFacturasCliente.PonerTitulos(const ATitulo: string); var FTitulo : String; begin FTitulo := 'Lista de facturas de cliente - ' + dmUsuarios.EmpresaActual.NOMBRE; inherited PonerTitulos(FTitulo); end; procedure TfEditorFacturasCliente.SetController(const Value: IFacturasClienteController); begin FController := Value; end; procedure TfEditorFacturasCliente.SetFacturas(const Value: IBizFacturaCliente); begin FFacturas := Value; dsDataTable.DataTable := FFacturas.DataTable; if Assigned(ViewGrid) then (ViewGrid as IViewFacturasCliente).Facturas := Facturas; end; end.