unit uEditorSituacionFacturaCliente; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, uIEditorSituacionFacturaCliente, uFacturasClienteController, uBizFacturasCliente, JvExControls, JvComponent, JvgWizardHeader, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, cxDBEdit, ActnList; type TfEditorSituacionFacturaCliente = class(TForm, IEditorSituacionFacturaCliente) pnlSeleccion: TPanel; bAceptar: TButton; bCancelar: TButton; JvgWizardHeader1: TJvgWizardHeader; rbPendiente: TRadioButton; rbPagado: TRadioButton; ActionList1: TActionList; actPendiente: TAction; actPagado: TAction; actAceptar: TAction; Label4: TLabel; edtFechaFacturaCliente: TEdit; Label3: TLabel; edtFechaPagado: TcxDateEdit; procedure actPendienteExecute(Sender: TObject); procedure actPagadoExecute(Sender: TObject); procedure actRechazadoExecute(Sender: TObject); procedure actAceptarExecute(Sender: TObject); private FController: IFacturasClienteController; FFacturaCliente: IBizFacturaCliente; function GetController : IFacturasClienteController; procedure SetController (const Value : IFacturasClienteController); function GetFacturaCliente: IBizFacturaCliente; procedure SetFacturaCliente(const Value: IBizFacturaCliente); procedure RefrescarEstado; public property FacturaCliente: IBizFacturaCliente read GetFacturaCliente write SetFacturaCliente; property Controller : IFacturasClienteController read GetController write SetController; end; implementation {$R *.dfm} uses uDateUtils, DateUtils; { TfEditorSituacionPedido } procedure TfEditorSituacionFacturaCliente.actPagadoExecute(Sender: TObject); begin RefrescarEstado; end; procedure TfEditorSituacionFacturaCliente.actAceptarExecute(Sender: TObject); begin if rbPendiente.Checked then FController.CambiarSituacion(FFacturaCliente, SITUACION_PENDIENTE); if rbPagado.Checked then FController.CambiarSituacion(FFacturaCliente, SITUACION_PAGADO, edtFechaPagado.Date); ModalResult := mrOk; Close; end; procedure TfEditorSituacionFacturaCliente.actPendienteExecute(Sender: TObject); begin RefrescarEstado; end; procedure TfEditorSituacionFacturaCliente.actRechazadoExecute(Sender: TObject); begin RefrescarEstado; end; function TfEditorSituacionFacturaCliente.GetController: IFacturasClienteController; begin Result := FController; end; function TfEditorSituacionFacturaCliente.GetFacturaCliente: IBizFacturaCliente; begin Result := FFacturaCliente; end; procedure TfEditorSituacionFacturaCliente.SetController( const Value: IFacturasClienteController); begin FController := Value; end; procedure TfEditorSituacionFacturaCliente.SetFacturaCliente(const Value: IBizFacturaCliente); begin FFacturaCliente := Value; if not FFacturaCliente.DataTable.Active then FFacturaCliente.DataTable.Open; edtFechaFacturaCliente.Text := DateToStr(FFacturaCliente.FECHA_FACTURA); rbPendiente.Checked := (FFacturaCliente.Situacion = SITUACION_PENDIENTE); rbPagado.Checked := (FFacturaCliente.Situacion = SITUACION_PAGADO); if not EsFechaVacia(FFacturaCliente.FECHA_PAGADO) then edtFechaPagado.Date := FFacturaCliente.FECHA_PAGADO else edtFechaPagado.Clear; end; procedure TfEditorSituacionFacturaCliente.RefrescarEstado; begin // end; end.