unit uViewPedidoProveedor; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewBase, uBizPedidosProveedor, DB, uDADataTable, uCustomView, AppEvnts, StdCtrls, Mask, DBCtrls, uViewObservaciones, uViewDatosYSeleccionProveedor, cxGraphics, cxDropDownEdit, cxImageComboBox, cxDBEdit, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxCalendar, dxLayoutControl, cxControls, cxMemo, uViewDireccionEntregaPedidoProv, cxLookupEdit, cxDBLookupEdit, uBizPedidosCliente, uPedidosClienteController, cxDBLookupComboBox, uFormasPagoController, ActnList; type IViewPedidoProveedor = interface(IViewBase) ['{C5385699-C1A4-4AEB-B3D0-EE3BDB322FE2}'] function GetPedido: IBizPedidoProveedor; procedure SetPedido(const Value: IBizPedidoProveedor); property Pedido: IBizPedidoProveedor read GetPedido write SetPedido; function GetViewProveedorPedido: TfrViewDatosYSeleccionProveedor; procedure SetViewProveedorPedido(const Value: TfrViewDatosYSeleccionProveedor); property ViewProveedorPedido: TfrViewDatosYSeleccionProveedor read GetViewProveedorPedido write SetViewProveedorPedido; end; TfrViewPedidoProveedor = class(TfrViewBase, IViewPedidoProveedor) DADataSource: TDADataSource; frViewProveedorPedido: TfrViewDatosYSeleccionProveedor; dxLayoutControl1Group_Root: TdxLayoutGroup; dxLayoutControl1: TdxLayoutControl; dxLayoutControl1Item1: TdxLayoutItem; dxLayoutControl1Item2: TdxLayoutItem; edtFechaPedido: TcxDBDateEdit; dxLayoutControl1Item4: TdxLayoutItem; edtFechaConfirmacion: TcxDBDateEdit; dxLayoutControl1Item5: TdxLayoutItem; edtFechaEntrega: TcxDBDateEdit; dxLayoutControl1Group1: TdxLayoutGroup; dxLayoutControl1Group2: TdxLayoutGroup; dxLayoutControl1Item6: TdxLayoutItem; memObservaciones: TcxDBMemo; dxLayoutControl1Item3: TdxLayoutItem; eReferencia: TcxDBTextEdit; dxLayoutControl1Group5: TdxLayoutGroup; dxLayoutControl1Group6: TdxLayoutGroup; dxLayoutControl1Group7: TdxLayoutGroup; dxLayoutControl1Group8: TdxLayoutGroup; dxLayoutControl1Group3: TdxLayoutGroup; dxLayoutControl1Item8: TdxLayoutItem; frViewDireccionEntregaPedidoProv1: TfrViewDireccionEntregaPedidoProv; dxLayoutControl1Item9: TdxLayoutItem; cbFormaPago: TcxDBLookupComboBox; dxLayoutControl1Item10: TdxLayoutItem; bFormasPago: TButton; dxLayoutControl1Group4: TdxLayoutGroup; dsFormaPago: TDADataSource; dxLayoutControl1Item7: TdxLayoutItem; edtFechaEnvio: TcxDBDateEdit; dxLayoutControl1Item11: TdxLayoutItem; eReferenciaPedidoCli: TcxTextEdit; dxLayoutControl1Item12: TdxLayoutItem; Button1: TButton; dxLayoutControl1Group9: TdxLayoutGroup; dxLayoutControl1Group10: TdxLayoutGroup; ActionList1: TActionList; actVerPedidoCli: TAction; procedure CustomViewCreate(Sender: TObject); procedure CustomViewDestroy(Sender: TObject); procedure frViewProveedorPedidoButton1Click(Sender: TObject); procedure frViewProveedorPedidoButton2Click(Sender: TObject); procedure bFormasPagoClick(Sender: TObject); procedure actVerPedidoCliExecute(Sender: TObject); procedure actVerPedidoCliUpdate(Sender: TObject); protected FPedido : IBizPedidoProveedor; FViewProveedorPedido : TfrViewDatosYSeleccionProveedor; FFormasPagoController : IFormasPagoController; FPedidoCliAsociado : IBizPedidoCliente; FPedidoCliController : IPedidosClienteController; function GetPedido: IBizPedidoProveedor; procedure SetPedido(const Value: IBizPedidoProveedor); virtual; function GetViewProveedorPedido: TfrViewDatosYSeleccionProveedor; procedure SetViewProveedorPedido(const Value: TfrViewDatosYSeleccionProveedor); public property Pedido: IBizPedidoProveedor read GetPedido write SetPedido; property ViewProveedorPedido: TfrViewDatosYSeleccionProveedor read GetViewProveedorPedido; end; implementation {$R *.dfm} { TfrViewPedidoProveedor } uses uBizFormasPago; procedure TfrViewPedidoProveedor.actVerPedidoCliExecute(Sender: TObject); begin inherited; FPedidoCliController.Ver(FPedidoCliAsociado); end; procedure TfrViewPedidoProveedor.actVerPedidoCliUpdate(Sender: TObject); begin inherited; (Sender as TAction).Enabled := Assigned(FPedidoCliAsociado) end; procedure TfrViewPedidoProveedor.bFormasPagoClick(Sender: TObject); begin inherited; FFormasPagoController.VerTodos((dsFormaPago.DataTable) as IBizFormaPago); end; procedure TfrViewPedidoProveedor.CustomViewCreate(Sender: TObject); begin inherited; FFormasPagoController := TFormasPagoController.Create; FViewProveedorPedido := frViewProveedorPedido; FViewProveedorPedido.MsgElegirProveedor := 'Elija el proveedor al que se le realizará el pedido.'; eReferencia.Enabled := False; eReferenciaPedidoCli.Enabled := False; FPedidoCliAsociado := NIL; FPedidoCliController := TPedidosClienteController.Create; end; procedure TfrViewPedidoProveedor.CustomViewDestroy(Sender: TObject); begin FViewProveedorPedido := Nil; FFormasPagoController := NIL; inherited; end; procedure TfrViewPedidoProveedor.frViewProveedorPedidoButton1Click(Sender: TObject); begin if Assigned(Pedido) and Assigned(Pedido.Proveedor) and Assigned (Pedido.Detalles) and (Pedido.Detalles.RecordCount > 0) then begin if (Application.MessageBox('Si cambia de proveedor, se eliminarán todos sus artículos del pedido actual, ¿Desea continuar?', 'Atención', MB_YESNO) = IDNO) then Exit; end; frViewProveedorPedido.actElegirContacto.Execute; end; procedure TfrViewPedidoProveedor.frViewProveedorPedidoButton2Click(Sender: TObject); begin if Assigned(Pedido) and Assigned(Pedido.Proveedor) and Assigned (Pedido.Detalles) and (Pedido.Detalles.RecordCount > 0) then begin if (Application.MessageBox('Si cambia de proveedor, se eliminarán todos sus artículos del pedido actual, ¿Desea continuar?', 'Atención', MB_YESNO) = IDNO) then Exit; end; frViewProveedorPedido.actElegirContacto.Execute; end; function TfrViewPedidoProveedor.GetPedido: IBizPedidoProveedor; begin Result := FPedido; end; function TfrViewPedidoProveedor.GetViewProveedorPedido: TfrViewDatosYSeleccionProveedor; begin Result := FViewProveedorPedido; end; procedure TfrViewPedidoProveedor.SetPedido(const Value: IBizPedidoProveedor); begin FPedido := Value; if Assigned(FPedido) then begin DADataSource.DataTable := FPedido.DataTable; dsFormaPago.DataTable := FFormasPagoController.BuscarTodos.DataTable; dsFormaPago.DataTable.Active := True; FPedidoCliAsociado := NIL; if (FPedido.ID_PEDIDO_CLIENTE > 0) then begin FPedidoCliAsociado := FPedidoCliController.Buscar(FPedido.ID_PEDIDO_CLIENTE); if Assigned(FPedidoCliAsociado) then begin FPedidoCliAsociado.DataTable.Active := True; eReferenciaPedidoCli.Text := FPedidoCliAsociado.REFERENCIA end else eReferenciaPedidoCli.Text := ''; end else eReferenciaPedidoCli.Text := 'No hay pedido asociado'; end else begin DADataSource.DataTable := NIL; dsFormaPago.DataTable := NIL; FPedidoCliAsociado := NIL; end; frViewProveedorPedido.Proveedor := FPedido.Proveedor; frViewDireccionEntregaPedidoProv1.PedidoProveedor := FPedido; end; procedure TfrViewPedidoProveedor.SetViewProveedorPedido(const Value: TfrViewDatosYSeleccionProveedor); begin FViewProveedorPedido := Value; end; end.