This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
LuisLeon_FactuGES/Modulos/Pedidos de cliente/Views/uEditorPedidoCliente.pas
2007-06-11 15:35:41 +00:00

232 lines
6.7 KiB
ObjectPascal
Raw Blame History

unit uEditorPedidoCliente;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage,
JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList,
PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock,
TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane,
uCustomView, uViewBase, JvComponentBase,
StdCtrls, pngimage, AppEvnts, cxControls, cxContainer, cxEdit, cxTextEdit, cxMemo, cxDBEdit,
uViewIncidencias,
uPedidosClienteController,
uViewDetallesBase, uViewDetallesPedidoCliente,
dxLayoutLookAndFeels, JvExComCtrls, JvStatusBar, uViewTotales,
uIEditorPedidoCliente, uBizPedidosCliente, uViewPedidoCliente;
type
TfEditorPedidoCliente = class(TfEditorDBItem, IEditorPedidoCliente)
pagContenido: TTabSheet;
pagInicidencias: TTabSheet;
frViewIncidenciasCli: TfrViewIncidencias;
dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList;
dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel;
frViewTotales1: TfrViewTotales;
frViewDetallesPedidoCliente1: TfrViewDetallesPedidoCliente;
procedure FormShow(Sender: TObject); override;
procedure actGuardarExecute(Sender: TObject);
procedure actEliminarExecute(Sender: TObject);
procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction);
procedure actPrevisualizarExecute(Sender: TObject);
procedure actImprimirExecute(Sender: TObject);
// procedure frViewDatosYSeleccionContactoedtlNombrePropertiesChange(Sender: TObject);
protected
FPedido: IBizPedidoCliente;
FViewPedido: IViewPedidoCliente;
FController : IPedidosClienteController;
function GetController : IPedidosClienteController;
procedure SetController (const Value : IPedidosClienteController); virtual;
function GetPedido: IBizPedidoCliente;
procedure SetPedido(const Value: IBizPedidoCliente); virtual;
function GetViewPedido: IViewPedidoCliente;
procedure SetViewPedido(const Value: IViewPedidoCliente);
property ViewPedido: IViewPedidoCliente read GetViewPedido write SetViewPedido;
procedure OnClienteChanged(Sender : TObject);
//Si queremos crear otra vista para el editor heredado solo tendriamos que
//sobreescribir este metodo
procedure AsignarVista; virtual;
public
procedure PonerTitulos(const ATitulo: string = ''); override;
property Controller : IPedidosClienteController read GetController write SetController;
property Pedido: IBizPedidoCliente read GetPedido write SetPedido;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
uses
uViewDatosYSeleccionCliente, uDataModuleUsuarios;
{$R *.dfm}
{ TfEditorPedidoCliente }
{
**************************** TfEditorPedidoCliente ****************************
}
procedure TfEditorPedidoCliente.actGuardarExecute(Sender: TObject);
begin
inherited;
FController.Guardar(FPedido);
Modified := False;
end;
procedure TfEditorPedidoCliente.actImprimirExecute(Sender: TObject);
begin
inherited;
// FController.Print(FPedido);
end;
procedure TfEditorPedidoCliente.actPrevisualizarExecute(Sender: TObject);
begin
inherited;
// FController.Preview(FPedido);
end;
procedure TfEditorPedidoCliente.AsignarVista;
var
AViewPedidoCliente: TfrViewPedidoCliente;
begin
AViewPedidoCliente := TfrViewPedidoCliente.create(Self);
AViewPedidoCliente.Parent := pagGeneral;
AViewPedidoCliente.Align := alClient;
ViewPedido := AViewPedidoCliente;
end;
constructor TfEditorPedidoCliente.Create(AOwner: TComponent);
begin
inherited;
pgPaginas.ActivePageIndex := 0;
AsignarVista;
end;
procedure TfEditorPedidoCliente.CustomEditorClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
FViewPedido := NIL;
FPedido := NIL;
end;
destructor TfEditorPedidoCliente.Destroy;
begin
// Utilizar mejor OnClose;
inherited;
end;
procedure TfEditorPedidoCliente.actEliminarExecute(Sender: TObject);
begin
if (Application.MessageBox('<27>Desea borrar este pedido a Cliente?', 'Atenci<63>n', MB_YESNO) = IDYES) then
begin
FController.Eliminar(FPedido);
inherited
end
end;
procedure TfEditorPedidoCliente.FormShow(Sender: TObject);
begin
inherited;
if not Assigned(FViewPedido) then
raise Exception.Create('No hay ninguna vista asignada');
if not Assigned(Pedido) then
raise Exception.Create('No hay ning<6E>n pedido asignado');
Pedido.DataTable.Active := True;
pgPaginas.ActivePage := pagGeneral;
end;
function TfEditorPedidoCliente.GetController: IPedidosClienteController;
begin
Result := FController;
end;
function TfEditorPedidoCliente.GetPedido: IBizPedidoCliente;
begin
Result := FPedido;
end;
function TfEditorPedidoCliente.GetViewPedido: IViewPedidoCliente;
begin
Result := FViewPedido;
end;
procedure TfEditorPedidoCliente.OnClienteChanged(Sender: TObject);
begin
FPedido.Cliente := ViewPedido.ViewClientePedido.Cliente;
end;
procedure TfEditorPedidoCliente.PonerTitulos(const ATitulo: string);
var
FTitulo : String;
begin
FTitulo := ATitulo;
if (FTitulo = '') and Assigned(FPedido) then
begin
if FPedido.EsNuevo then
FTitulo := 'Nuevo pedido'
else
FTitulo := 'Pedido' + ' - ' + FPedido.Cliente.Nombre
end;
inherited PonerTitulos(FTitulo);
Self.Caption := FTitulo + ' (' + dmUsuarios.EmpresaActual.NOMBRE + ')';
end;
procedure TfEditorPedidoCliente.SetController(const Value: IPedidosClienteController);
begin
FController := Value;
if Assigned(FController) then
begin
ViewPedido.ViewClientePedido.Controller := Controller.ClienteController;
frViewDetallesPedidoCliente1.Controller := Controller.DetallesController;
end;
end;
procedure TfEditorPedidoCliente.SetPedido(const Value: IBizPedidoCliente);
begin
FPedido := Value;
if Assigned(FPedido) then
begin
dsDataTable.DataTable := FPedido.DataTable;
frViewTotales1.DADataSource.DataTable := dsDataTable.DataTable;
frViewIncidenciasCli.DADataSource.DataTable := dsDataTable.DataTable;
if Assigned(FViewPedido) then
begin
FViewPedido.Pedido := FPedido;
ViewPedido.ViewClientePedido.Cliente := FPedido.Cliente;
ViewPedido.ViewClientePedido.OnClienteChanged := OnClienteChanged;
frViewDetallesPedidoCliente1.Detalles := FPedido.Detalles;
end;
end;
end;
procedure TfEditorPedidoCliente.SetViewPedido(const Value: IViewPedidoCliente);
begin
FViewPedido := Value;
if Assigned(FViewPedido) and Assigned(Pedido) then
FViewPedido.Pedido := Pedido;
end;
end.