unit uEditorSituacionPedidoProveedor; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, uIEditorSituacionPedidoProveedor, uPedidosProveedorController, uBizPedidosProveedor, JvExControls, JvComponent, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, cxDBEdit, ActnList; type TfEditorSituacionPedidoProveedor = class(TForm, IEditorSituacionPedidoProveedor) pnlSeleccion: TPanel; bAceptar: TButton; bCancelar: TButton; lblTitle: TLabel; lblComments: TLabel; rbPendiente: TRadioButton; rbParcial: TRadioButton; ActionList1: TActionList; actPendiente: TAction; actParcial: TAction; actAceptar: TAction; Label4: TLabel; edtFechaPedidoProveedor: TEdit; Label3: TLabel; edtFechaParcial: TcxDateEdit; rbRecibido: TRadioButton; Label1: TLabel; eFechaRecibido: TcxDateEdit; actRecibido: TAction; procedure actPendienteExecute(Sender: TObject); procedure actParcialExecute(Sender: TObject); procedure actRecibidoExecute(Sender: TObject); procedure actRechazadoExecute(Sender: TObject); procedure actAceptarExecute(Sender: TObject); private FController: IPedidosProveedorController; FPedidoProveedor: IBizPedidoProveedor; function GetController : IPedidosProveedorController; procedure SetController (const Value : IPedidosProveedorController); function GetPedidoProveedor: IBizPedidoProveedor; procedure SetPedidoProveedor(const Value: IBizPedidoProveedor); procedure RefrescarEstado; public property PedidoProveedor: IBizPedidoProveedor read GetPedidoProveedor write SetPedidoProveedor; property Controller : IPedidosProveedorController read GetController write SetController; end; implementation {$R *.dfm} uses uDateUtils, DateUtils; { TfEditorSituacionPedido } procedure TfEditorSituacionPedidoProveedor.actParcialExecute(Sender: TObject); begin RefrescarEstado; end; procedure TfEditorSituacionPedidoProveedor.actAceptarExecute(Sender: TObject); begin if rbPendiente.Checked then FController.CambiarSituacion(FPedidoProveedor, SITUACION_PEDIDO_PENDIENTE); if rbParcial.Checked then FController.CambiarSituacion(FPedidoProveedor, SITUACION_PEDIDO_PARCIAL, edtFechaParcial.Date); if rbRecibido.Checked then FController.CambiarSituacion(FPedidoProveedor, SITUACION_PEDIDO_RECIBIDO, eFechaRecibido.Date); ModalResult := mrOk; Close; end; procedure TfEditorSituacionPedidoProveedor.actPendienteExecute(Sender: TObject); begin RefrescarEstado; end; procedure TfEditorSituacionPedidoProveedor.actRechazadoExecute(Sender: TObject); begin RefrescarEstado; end; procedure TfEditorSituacionPedidoProveedor.actRecibidoExecute(Sender: TObject); begin RefrescarEstado; end; function TfEditorSituacionPedidoProveedor.GetController: IPedidosProveedorController; begin Result := FController; end; function TfEditorSituacionPedidoProveedor.GetPedidoProveedor: IBizPedidoProveedor; begin Result := FPedidoProveedor; end; procedure TfEditorSituacionPedidoProveedor.SetController( const Value: IPedidosProveedorController); begin FController := Value; end; procedure TfEditorSituacionPedidoProveedor.SetPedidoProveedor(const Value: IBizPedidoProveedor); begin FPedidoProveedor := Value; if not FPedidoProveedor.DataTable.Active then FPedidoProveedor.DataTable.Open; edtFechaPedidoProveedor.Text := DateToStr(FPedidoProveedor.FECHA_PEDIDO); rbPendiente.Checked := (FPedidoProveedor.Situacion = SITUACION_PEDIDO_PENDIENTE); rbParcial.Checked := (FPedidoProveedor.Situacion = SITUACION_PEDIDO_PARCIAL); rbRecibido.Checked := (FPedidoProveedor.Situacion = SITUACION_PEDIDO_RECIBIDO); if rbParcial.Checked then begin edtFechaParcial.Date := FPedidoProveedor.FECHA_ENTREGA; eFechaRecibido.Clear; end else if rbRecibido.Checked then begin eFechaRecibido.Date := FPedidoProveedor.FECHA_ENTREGA; edtFechaParcial.Clear; end else begin edtFechaParcial.Clear; eFechaRecibido.Clear; end; end; procedure TfEditorSituacionPedidoProveedor.RefrescarEstado; begin // end; end.