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/Facturas de proveedor/Views/uEditorFacturasProveedor.pas

221 lines
6.8 KiB
ObjectPascal
Raw Blame History

unit uEditorFacturasProveedor;
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, uBizFacturasProveedor, uIEditorFacturasProveedor,
uFacturasProveedorController, uCustomView, uViewBase, uViewBarraSeleccion,
uViewGridBase, JvExComCtrls, JvStatusBar, JSDialog,
uViewFacturasProveedor;
type
TfEditorFacturasProveedor = class(TfEditorGridBase, IEditorFacturasProveedor)
Cambiarlasituacin1: TMenuItem;
N4: TMenuItem;
JsNuevaFacturaDialog: TJSDialog;
JsListaFacturasGeneradas: TJSDialog;
frViewFacturasProveedor1: TfrViewFacturasProveedor;
procedure FormShow(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject);
procedure actModificarUpdate(Sender: TObject);
private
FFacturas: IBizFacturaProveedor;
FController : IFacturasProveedorController;
protected
function GetFacturas: IBizFacturaProveedor;
procedure SetFacturas(const Value: IBizFacturaProveedor);
function GetController : IFacturasProveedorController; virtual;
procedure SetController (const Value : IFacturasProveedorController); virtual;
procedure NuevoInterno; override;
procedure EliminarInterno; override;
procedure ModificarInterno; override;
procedure DuplicarInterno; override;
procedure ImprimirInterno; override;
procedure PrevisualizarInterno; override;
public
procedure PonerTitulos(const ATitulo: string = ''); override;
property Facturas: IBizFacturaProveedor read GetFacturas write SetFacturas;
property Controller : IFacturasProveedorController read GetController write SetController;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
uses
uDataModuleFacturasProveedor, uDataModuleUsuarios,
// uPedidosProveedorController, uBizPedidosProveedor,
uAlbaranesProveedorController, uBizAlbaranesProveedor,
uEditorBase, uGenerarFacturasProvAlbProvUtils;
{$R *.dfm}
{
*************************** TfEditorFacturasProveedor ***************************
}
procedure TfEditorFacturasProveedor.actEliminarUpdate(Sender: TObject);
begin
inherited;
if (Sender as TAction).Enabled then
(Sender as TAction).Enabled := HayDatos
and (FFacturas.SITUACION = 'PENDIENTE');
end;
procedure TfEditorFacturasProveedor.actModificarUpdate(Sender: TObject);
begin
inherited;
if (Sender as TAction).Enabled then
(Sender as TAction).Enabled := HayDatos
and (FFacturas.SITUACION = 'PENDIENTE');
end;
constructor TfEditorFacturasProveedor.Create(AOwner: TComponent);
begin
inherited;
ViewGrid := frViewFacturasProveedor1; // CreateView(TfrViewFacturasProveedor) as IViewFacturasProveedor;
end;
destructor TfEditorFacturasProveedor.Destroy;
begin
FFacturas := NIL;
inherited;
end;
procedure TfEditorFacturasProveedor.DuplicarInterno;
var
AFactura : IBizFacturaProveedor;
begin
inherited;
AFactura := FController.Duplicar(FFacturas);
try
FController.Ver(AFactura);
finally
actRefrescar.Execute;
end;
end;
procedure TfEditorFacturasProveedor.EliminarInterno;
begin
if (Application.MessageBox('<27>Desea borrar esta factura de proveedor?', 'Atenci<63>n', MB_YESNO) = IDYES) then
begin
FController.Eliminar(Facturas);
inherited;
end;
end;
procedure TfEditorFacturasProveedor.FormShow(Sender: TObject);
begin
inherited;
if not Assigned(ViewGrid) then
raise Exception.Create('No hay ninguna vista asignada');
if not Assigned(Facturas) then
raise Exception.Create('No hay ning<6E>n presupuesto asignado');
Facturas.DataTable.Active := True;
ViewGrid.GotoFirst;
end;
function TfEditorFacturasProveedor.GetController: IFacturasProveedorController;
begin
Result := FController;
end;
function TfEditorFacturasProveedor.GetFacturas: IBizFacturaProveedor;
begin
Result := FFacturas;
end;
procedure TfEditorFacturasProveedor.ImprimirInterno;
begin
inherited;
end;
procedure TfEditorFacturasProveedor.ModificarInterno;
begin
inherited;
FController.Ver(Facturas);
end;
procedure TfEditorFacturasProveedor.NuevoInterno;
var
Respuesta : Integer;
// FPedidosProveedorController : IPedidosProveedorController;
// APedido : IBizPedidoProveedor;
FAlbaranesProveedorController : IAlbaranesProveedorController;
AAlbaranes : IBizAlbaranProveedor;
AFacturasNuevas : IBizFacturaProveedor;
i : integer;
begin
inherited;
Respuesta := JsNuevaFacturaDialog.Execute;
if Respuesta <> IDCANCEL then
begin
case JsNuevaFacturaDialog.CustomButtonResult of
300 : begin // Utilizar un pedido
{ FPedidosProveedorController := TPedidosProveedorController.Create;
try
APedido := FPedidosProveedorController.ElegirPedidos(FPedidosProveedorController.BuscarPendientes,
'Elija el pedido de proveedor que desea utilizar para dar de alta la factura.'
+ #10#13 + 'Tenga en cuenta que s<>lo se podr<64>n utilizar pedidos que no tengan ning<6E>n albar<61>n ya asociado.', False);
if Assigned(APedido) then
begin
if FController.Anadir(Facturas, APedido) then
FController.Ver(Facturas);
end;
finally
FPedidosClienteController := NIL;
end;}
end;
200 : begin // Utilizar albaranes
GenerarFacturaProv;
actRefrescar.Execute;
end;
100 : begin // Factura nuevo vacio
if FController.Anadir(Facturas) then
FController.Ver(Facturas);
end;
end;
end;
end;
procedure TfEditorFacturasProveedor.PonerTitulos(const ATitulo: string);
var
FTitulo : String;
begin
FTitulo := 'Lista de facturas de proveedor - ' + dmUsuarios.EmpresaActual.NOMBRE;
inherited PonerTitulos(FTitulo);
end;
procedure TfEditorFacturasProveedor.PrevisualizarInterno;
begin
inherited;
end;
procedure TfEditorFacturasProveedor.SetController(const Value: IFacturasProveedorController);
begin
FController := Value;
end;
procedure TfEditorFacturasProveedor.SetFacturas(const Value: IBizFacturaProveedor);
begin
FFacturas := Value;
dsDataTable.DataTable := FFacturas.DataTable;
if Assigned(ViewGrid) then
(ViewGrid as IViewFacturasProveedor).Facturas := Facturas;
end;
end.