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.
Noviseda_FactuGES2/Source/Modulos/Articulos/Views/uEditorArticulos.pas
2009-12-16 17:16:54 +00:00

340 lines
9.6 KiB
ObjectPascal
Raw Blame History

unit uEditorArticulos;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorBase, ToolWin, ComCtrls, JvExControls, JvComponent,
JvNavigationPane, uViewArticulos, uBizArticulos, ActnList, DBActns, uViewGrid,
Menus, uDataModuleBase, ImgList, PngImageList, TB2Dock, TB2Toolbar, TBX,
TB2Item, StdActns, TB2ExtItems, TBXExtItems, TB2MRU, DB, uDADataTable,
JvFormAutoSize, uDAScriptingProvider, uDACDSDataTable, JvAppStorage,
JvAppRegistryStorage, JvFormPlacement, ExtCtrls, uCustomView, uViewBase,
uViewBarraSeleccion, pngimage, uIEditorArticulos, uEditorGridBase,
JvComponentBase, uViewGridBase, uArticulosController, JvExComCtrls,
JvStatusBar, uDAInterfaces, cxGrid, cxGridLevel, uViewArticulosPorProveedor;
type
TfEditorArticulos = class(TfEditorGridBase, IEditorArticulos)
actFamilias: TAction;
pgPaginas: TPageControl;
pagArticulos: TTabSheet;
pagArticulosPorProveedor: TTabSheet;
frViewArticulos1: TfrViewArticulos;
frViewArticulosPorProveedor1: TfrViewArticulosPorProveedor;
procedure FormShow(Sender: TObject);
procedure actFamiliasExecute(Sender: TObject);
procedure pgPaginasChange(Sender: TObject);
private
FArticulos: IBizArticulo;
FArticulosPorProveedor: IBizArticulo;
FController : IArticulosController;
protected
procedure SetViewGrid(const Value : IViewGridBase); override;
function GetArticulos: IBizArticulo;
procedure SetArticulos(const Value: IBizArticulo);
function GetArticulosPorProveedor: IBizArticulo;
procedure SetArticulosPorProveedor(const Value: IBizArticulo);
function GetController : IArticulosController; virtual;
procedure SetController (const Value : IArticulosController); virtual;
procedure NuevoInterno; override;
procedure EliminarInterno; override;
procedure ModificarInterno; override;
procedure ImprimirInterno; override;
procedure PrevisualizarInterno; override;
procedure DuplicarInterno; override;
procedure RefrescarInterno; override;
public
procedure PonerTitulos(const ATitulo: string = ''); override;
property Articulos: IBizArticulo read GetArticulos write SetArticulos;
property ArticulosPorProveedor: IBizArticulo read GetArticulosPorProveedor write SetArticulosPorProveedor;
property Controller : IArticulosController read GetController write SetController;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
uses
cxControls, uCustomEditor, uDataModuleArticulos, uDataModuleUsuarios, uFactuGES_App,
uEditorArticulo, uEditorDBBase, uBizFamilias, uFamiliasController,
cxGridCustomTableView; //, uListaArticulos;
{$R *.dfm}
{
****************************** TfEditorArticulos *******************************
}
procedure TfEditorArticulos.FormShow(Sender: TObject);
begin
inherited;
ViewGrid := frViewArticulos1;
end;
function TfEditorArticulos.GetArticulos: IBizArticulo;
begin
Result := FArticulos;
end;
function TfEditorArticulos.GetArticulosPorProveedor: IBizArticulo;
begin
Result := FArticulosPorProveedor;
end;
function TfEditorArticulos.GetController: IArticulosController;
begin
Result := FController;
end;
procedure TfEditorArticulos.ImprimirInterno;
begin
inherited;
end;
procedure TfEditorArticulos.ModificarInterno;
var
AArticulo: IBizArticulo;
begin
inherited;
case pgPaginas.ActivePage.TabIndex of
0: begin
AArticulo := Articulos;
FController.Ver(AArticulo);
end;
1: begin
AArticulo := FController.Buscar(ArticulosPorProveedor.DataTable.FieldByName('ID_ARTICULO').AsInteger);
FController.Ver(AArticulo);
RefrescarInterno;
end;
end;
end;
procedure TfEditorArticulos.NuevoInterno;
var
AArticulo: IBizArticulo;
begin
inherited;
if (FViewGrid._Grid.ActiveLevel.Tag = 1) then
AArticulo := FController.Nuevo
else
begin
AArticulo := Articulos;
FController.Anadir(AArticulo);
end;
if not AArticulo.DataTable.Active then
AArticulo.DataTable.Active := True;
FController.Ver(AArticulo);
if (FViewGrid._Grid.ActiveLevel.Tag = 1) then
Articulos.DataTable.Refresh;
end;
procedure TfEditorArticulos.pgPaginasChange(Sender: TObject);
begin
inherited;
if pgPaginas.ActivePage.TabIndex = 0 then
ViewGrid := frViewArticulos1
else
ViewGrid := frViewArticulosPorProveedor1;
end;
procedure TfEditorArticulos.PonerTitulos(const ATitulo: string);
var
FTitulo : String;
begin
FTitulo := 'Lista de art<72>culos - ' + AppFactuGES.EmpresaActiva.NOMBRE;
inherited PonerTitulos(FTitulo);
end;
procedure TfEditorArticulos.PrevisualizarInterno;
begin
inherited;
end;
procedure TfEditorArticulos.RefrescarInterno;
begin
// inherited;
if Assigned(FArticulos) then
begin
frViewArticulos1.SaveGridStatus;
try
frViewArticulos1.dsDataSource.DataTable.Refresh;
finally
frViewArticulos1.RestoreGridStatus;
end;
end;
if Assigned(FArticulosPorProveedor) then
begin
frViewArticulosPorProveedor1.SaveGridStatus;
try
frViewArticulosPorProveedor1.dsDataSource.DataTable.Refresh;
finally
frViewArticulosPorProveedor1.RestoreGridStatus;
end;
end;
end;
procedure TfEditorArticulos.SetArticulos(const Value: IBizArticulo);
begin
FArticulos := Value;
dsDataTable.DataTable := FArticulos.DataTable;
if Assigned(ViewGrid) then
(ViewGrid as IViewArticulos).Articulos := FArticulos;
end;
procedure TfEditorArticulos.SetArticulosPorProveedor(const Value: IBizArticulo);
begin
FArticulosPorProveedor := Value;
dsDataTable.DataTable := FArticulosPorProveedor.DataTable;
if Assigned(ViewGrid) then
(ViewGrid as IViewArticulos).Articulos := FArticulosPorProveedor;
end;
procedure TfEditorArticulos.SetController(const Value: IArticulosController);
begin
FController := Value;
if Assigned(ViewGrid) then
(ViewGrid as IViewArticulos).Controller := FController;
end;
procedure TfEditorArticulos.SetViewGrid(const Value: IViewGridBase);
var
APosicionarAlprincipio: Boolean;
begin
inherited;
APosicionarAlprincipio := False;
case pgPaginas.ActivePage.TabIndex of
0: begin
if not Assigned(Articulos) then
begin
APosicionarAlprincipio := True;
Articulos := FController.BuscarTodos;
end;
Articulos.DataTable.Active := True;
if actFiltrar.Checked then
begin
if not frViewArticulos1.ViewFiltros.VerFiltros then
begin
actFiltrar.Execute;
frViewArticulos1.ViewFiltros.Texto := frViewArticulosPorProveedor1.ViewFiltros.Texto;
end
else
frViewArticulos1.ViewFiltros.Texto := frViewArticulosPorProveedor1.ViewFiltros.Texto;
end
else
begin
if frViewArticulos1.ViewFiltros.VerFiltros then
actFiltrar.Execute;
ViewGrid.Filter := tbxEditFiltro.Text;
end;
end;
1: begin
if not Assigned(ArticulosPorProveedor) then
begin
APosicionarAlprincipio := True;
ArticulosPorProveedor := FController.BuscarTodosPorProveedor;
end;
ArticulosPorProveedor.DataTable.Active := True;
if actFiltrar.Checked then
begin
if not frViewArticulosPorProveedor1.ViewFiltros.VerFiltros then
begin
actFiltrar.Execute;
frViewArticulosPorProveedor1.ViewFiltros.Texto := frViewArticulos1.ViewFiltros.Texto;
end
else
frViewArticulosPorProveedor1.ViewFiltros.Texto := frViewArticulos1.ViewFiltros.Texto;
end
else
begin
if frViewArticulosPorProveedor1.ViewFiltros.VerFiltros then
actFiltrar.Execute;
ViewGrid.Filter := tbxEditFiltro.Text;
end;
end;
end;
if APosicionarAlprincipio then
ViewGrid._FocusedView.DataController.GotoFirst;
end;
destructor TfEditorArticulos.Destroy;
begin
FArticulos := NIL;
FArticulosPorProveedor := NIL;
FController := NIl;
inherited;
end;
procedure TfEditorArticulos.DuplicarInterno;
var
AArticulo : IBizArticulo;
begin
inherited;
AArticulo := FController.Duplicar(Articulos);
try
FController.Ver(AArticulo);
finally
actRefrescar.Execute;
end;
end;
procedure TfEditorArticulos.EliminarInterno;
begin
if (Application.MessageBox('<27>Desea borrar este art<72>culo?', 'Atenci<63>n', MB_YESNO) = IDYES) then
begin
inherited;
//Para que en el caso de no poderse realizar la operaci<63>n se refresquen
//los datos y no nos permita eliminar un registro a la segunda
case pgPaginas.ActivePage.TabIndex of
0: begin
if not FController.Eliminar(Articulos.ID) then
actRefrescar.Execute;
end;
1: begin
if not FController.Eliminar(ArticulosPorProveedor.DataTable.FieldByName('ID_ARTICULO').AsInteger) then
actRefrescar.Execute;
end;
end;
RefrescarInterno;
end;
end;
procedure TfEditorArticulos.actFamiliasExecute(Sender: TObject);
var
AFamiliasController : IFamiliasController;
AFamilias : IBizFamilia;
begin
AFamiliasController := TFamiliasController.Create;
try
AFamilias := (AFamiliasController.BuscarTodos as IBizFamilia);
AFamiliasController.VerTodos(AFamilias);
finally
AFamilias := NIL;
AFamiliasController := NIL;
end;
end;
constructor TfEditorArticulos.Create(AOwner: TComponent);
begin
inherited;
end;
end.