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/Codigo/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedor.pas
2007-06-12 14:12:46 +00:00

247 lines
7.3 KiB
ObjectPascal
Raw Blame History

unit uEditorPedidosProveedor;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, DB, uDADataTable, JvAppStorage,
JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList,
PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems,
TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls,
JvNavigationPane, uViewGrid, pngimage, JvComponentBase,
uEditorGridBase,
uBizPedidosProveedor, uIEditorPedidosProveedor, uPedidosProveedorController,
uCustomView, uViewBase, uViewBarraSeleccion, uViewGridBase,
uViewPedidosProveedor, JvExComCtrls, JvStatusBar;
type
TfEditorPedidosProveedor = class(TfEditorGridBase, IEditorPedidosProveedor)
frViewPedidosProveedor1: TfrViewPedidosProveedor;
N4: TMenuItem;
Cambiarsituacin1: TMenuItem;
actRecibirPedido: TAction;
TBXItem37: TTBXItem;
TBXSeparatorItem17: TTBXSeparatorItem;
procedure FormShow(Sender: TObject);
procedure actCambiarSituacionExecute(Sender: TObject);
procedure actRecibirPedidoUpdate(Sender: TObject);
procedure actRecibirPedidoExecute(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject);
protected
FPedidos: IBizPedidoProveedor;
FController : IPedidosProveedorController;
function GetPedidos: IBizPedidoProveedor;
procedure SetPedidos(const Value: IBizPedidoProveedor);
function GetController : IPedidosProveedorController; virtual;
procedure SetController (const Value : IPedidosProveedorController); virtual;
procedure NuevoInterno; override;
procedure ModificarInterno; override;
procedure EliminarInterno; override;
procedure DuplicarInterno; override;
procedure ImprimirInterno; override;
procedure PrevisualizarInterno; override;
public
procedure PonerTitulos(const ATitulo: string = ''); override;
property Pedidos: IBizPedidoProveedor read GetPedidos write SetPedidos;
property Controller : IPedidosProveedorController read GetController write SetController;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
uses
uDataModulePedidosProveedor, uDataModuleUsuarios, uEditorDBBase,
uInventarioController, uBizInventario, uDialogUtils,
uAlbaranesProveedorController, uBizAlbaranesProveedor;
{$R *.dfm}
{
*************************** TfEditorPedidosProveedor ***************************
}
procedure TfEditorPedidosProveedor.actCambiarSituacionExecute(Sender: TObject);
begin
inherited;
FController.CambiarSituacion(FPedidos)
end;
procedure TfEditorPedidosProveedor.actEliminarUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := HayDatos and
(FPedidos.SITUACION = SITUACION_PEDIDO_PENDIENTE);
end;
procedure TfEditorPedidosProveedor.actRecibirPedidoExecute(Sender: TObject);
var
AInventarioController : IInventarioController;
AAlbaranesController : IAlbaranesProveedorController;
AAlbaran : IBizAlbaranProveedor;
bGenerarAlbaran : Boolean;
AInventarioRecibido: IBizInventario;
begin
inherited;
bGenerarAlbaran := False;
AInventarioRecibido := NIL;
// <20>Hay almac<61>n asociado al pedido?
if FPedidos.ID_ALMACEN = 0 then
begin
if (ShowConfirmMessage('Recepci<63>n de pedido a proveedor', 'Este pedido no tiene un almac<61>n asociado por lo que se generar<61> el albar<61>n de proveedor correspondiente sin hacer ning<6E>n cambio en el stock de los almacenes.'
+ #10#13 + #10#13 + '<27>Desea continuar?') = IDYES) then
bGenerarAlbaran := True;
end
else begin
AInventarioController := TInventarioController.Create;
try
// En AInventarioRecibido tenemos la lista de articulos que hemos recibido y
// que utilizaremos para hacer el albar<61>n
try
bGenerarAlbaran := AInventarioController.EntradaPedido(nil, FPedidos.ID_ALMACEN, FPedidos.Detalles, AInventarioRecibido);
except
on E : Exception do
ShowMessage(E.Message);
end;
finally
AInventarioController := NIL;
end;
end;
if bGenerarAlbaran then
begin
AAlbaranesController := TAlbaranesProveedorController.Create;
try
AAlbaran := AAlbaranesController.Nuevo;
// En AInventarioRecibido tenemos la lista de articulos que hemos recibido y
// que utilizaremos para hacer el albar<61>n
if AAlbaranesController.Anadir(AAlbaran, FPedidos.ID, AInventarioRecibido) then
AAlbaranesController.Ver(AAlbaran);
actRefrescar.Execute;
finally
AAlbaranesController := NIL;
AAlbaran := NIL;
end;
end;
actRefrescar.Execute;
end;
procedure TfEditorPedidosProveedor.actRecibirPedidoUpdate(Sender: TObject);
begin
inherited;
//
(Sender as TAction).Enabled := HayDatos and
(FPedidos.SITUACION <> SITUACION_PEDIDO_RECIBIDO);
end;
constructor TfEditorPedidosProveedor.Create(AOwner: TComponent);
begin
inherited;
ViewGrid := frViewPedidosProveedor1; //CreateView(TfrViewPedidosProveedor) as IViewPedidosProveedor;
end;
destructor TfEditorPedidosProveedor.Destroy;
begin
FPedidos := NIL;
FController := NIL;
inherited;
end;
procedure TfEditorPedidosProveedor.DuplicarInterno;
var
APedido : IBizPedidoProveedor;
begin
inherited;
APedido := FController.Duplicar(Pedidos);
try
FController.Ver(APedido);
finally
actRefrescar.Execute;
end;
end;
procedure TfEditorPedidosProveedor.EliminarInterno;
begin
if (Application.MessageBox('<27>Desea borrar este pedido a proveedor?', 'Atenci<63>n', MB_YESNO) = IDYES) then
begin
FController.Eliminar(Pedidos);
inherited;
end;
end;
procedure TfEditorPedidosProveedor.FormShow(Sender: TObject);
begin
inherited;
if not Assigned(ViewGrid) then
raise Exception.Create('No hay ninguna vista asignada');
if not Assigned(Pedidos) then
raise Exception.Create('No hay ning<6E>n pedido asignado');
Pedidos.DataTable.Active := True;
ViewGrid.GotoFirst;
end;
function TfEditorPedidosProveedor.GetController: IPedidosProveedorController;
begin
Result := FController;
end;
function TfEditorPedidosProveedor.GetPedidos: IBizPedidoProveedor;
begin
Result := FPedidos;
end;
procedure TfEditorPedidosProveedor.ImprimirInterno;
begin
inherited;
FController.Print(FPedidos);
end;
procedure TfEditorPedidosProveedor.ModificarInterno;
begin
inherited;
FController.Ver(Pedidos);
end;
procedure TfEditorPedidosProveedor.NuevoInterno;
begin
inherited;
FController.Anadir(Pedidos);
FController.Ver(Pedidos);
end;
procedure TfEditorPedidosProveedor.PonerTitulos(const ATitulo: string);
var
FTitulo : String;
begin
FTitulo := 'Lista de pedidos a proveedor - ' + dmUsuarios.EmpresaActual.NOMBRE;
inherited PonerTitulos(FTitulo);
end;
procedure TfEditorPedidosProveedor.PrevisualizarInterno;
begin
inherited;
FController.Preview(FPedidos);
end;
procedure TfEditorPedidosProveedor.SetController(const Value: IPedidosProveedorController);
begin
FController := Value;
end;
procedure TfEditorPedidosProveedor.SetPedidos(const Value: IBizPedidoProveedor);
begin
FPedidos := Value;
dsDataTable.DataTable := FPedidos.DataTable;
if Assigned(ViewGrid) then
(ViewGrid as IViewPedidosProveedor).Pedidos := Pedidos;
end;
end.