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/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.pas

298 lines
11 KiB
ObjectPascal
Raw Blame History

unit uViewAlbaranProveedor;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, uBizAlbaranesProveedor, DB, uDADataTable, uCustomView,
AppEvnts, StdCtrls, Mask, DBCtrls,
uViewObservaciones, uViewDatosYSeleccionProveedor,
cxGraphics, cxDropDownEdit, cxImageComboBox, cxDBEdit, cxContainer, cxEdit,
cxTextEdit, cxMaskEdit, cxCalendar, dxLayoutControl, cxControls, cxMemo,
uViewDireccionEntregaAlbaranProv, Buttons, ActnList, cxLookupEdit,
cxDBLookupEdit, cxDBLookupComboBox, uFormasPagoController,
uBizPedidosProveedor, uPedidosProveedorController, uAlbaranesProveedorController;
type
IViewAlbaranProveedor = interface(IViewBase)
['{2DA099CE-359A-46E8-90A0-D004FF09040A}']
function GetAlbaran: IBizAlbaranProveedor;
procedure SetAlbaran(const Value: IBizAlbaranProveedor);
property Albaran: IBizAlbaranProveedor read GetAlbaran write SetAlbaran;
function GetViewProveedorAlbaran: TfrViewDatosYSeleccionProveedor;
procedure SetViewProveedorAlbaran(const Value: TfrViewDatosYSeleccionProveedor);
property ViewProveedorAlbaran: TfrViewDatosYSeleccionProveedor read GetViewProveedorAlbaran write SetViewProveedorAlbaran;
function GetController : IAlbaranesProveedorController;
procedure SetController (const Value : IAlbaranesProveedorController);
property Controller : IAlbaranesProveedorController read GetController write SetController;
end;
TfrViewAlbaranProveedor = class(TfrViewBase, IViewAlbaranProveedor)
DADataSource: TDADataSource;
dxLayoutControl1Group_Root: TdxLayoutGroup;
dxLayoutControl1: TdxLayoutControl;
dxLayoutControl1Item2: TdxLayoutItem;
edtFechaAlbaran: TcxDBDateEdit;
dxLayoutControl1Group1: TdxLayoutGroup;
dxLayoutControl1Group2: TdxLayoutGroup;
dxLayoutControl1Item6: TdxLayoutItem;
memObservaciones: TcxDBMemo;
dxLayoutControl1Item3: TdxLayoutItem;
eReferencia: TcxDBTextEdit;
dxLayoutControl1Group6: TdxLayoutGroup;
dxLayoutControl1Group7: TdxLayoutGroup;
dxLayoutControl1Group8: TdxLayoutGroup;
dxLayoutControl1Group3: TdxLayoutGroup;
dxLayoutControl1Item1: TdxLayoutItem;
frViewProveedorAlbaran: TfrViewDatosYSeleccionProveedor;
ActionList1: TActionList;
actElegirDireccion: TAction;
dxLayoutControl1Item4: TdxLayoutItem;
frViewDireccionEntregaAlbaranProv1: TfrViewDireccionEntregaAlbaranProv;
dxLayoutControl1Item5: TdxLayoutItem;
cbFormaPago: TcxDBLookupComboBox;
dxLayoutControl1Item7: TdxLayoutItem;
bFormasPago: TButton;
dxLayoutControl1Group4: TdxLayoutGroup;
dsFormaPago: TDADataSource;
dxLayoutControl1Item8: TdxLayoutItem;
eReferenciaPedidoProv: TcxTextEdit;
dxLayoutControl1Item9: TdxLayoutItem;
Button1: TButton;
dxLayoutControl1Group5: TdxLayoutGroup;
actVerPedido: TAction;
dxLayoutControl1Item10: TdxLayoutItem;
eRefFactura: TcxDBTextEdit;
dxLayoutControl1Item11: TdxLayoutItem;
eReferenciaProveedor: TcxDBTextEdit;
dxLayoutControl1Item12: TdxLayoutItem;
eReferenciaFacturaProveedor: TcxDBTextEdit;
procedure CustomViewCreate(Sender: TObject);
procedure CustomViewDestroy(Sender: TObject);
procedure actElegirDireccionExecute(Sender: TObject);
procedure frViewProveedorAlbaranButton1Click(Sender: TObject);
procedure frViewProveedorAlbaranButton2Click(Sender: TObject);
procedure bFormasPagoClick(Sender: TObject);
procedure actVerPedidoExecute(Sender: TObject);
procedure frViewProveedorAlbaranactElegirContactoUpdate(Sender: TObject);
procedure frViewProveedorAlbaranactAnadirContactoUpdate(Sender: TObject);
procedure actElegirDireccionUpdate(Sender: TObject);
procedure actVerPedidoUpdate(Sender: TObject);
protected
FController : IAlbaranesProveedorController;
FAlbaran : IBizAlbaranProveedor;
FViewProveedorAlbaran : TfrViewDatosYSeleccionProveedor;
FFormasPagoController : IFormasPagoController;
FPedidoAsociado : IBizPedidoProveedor;
FPedidoController : IPedidosProveedorController;
function GetAlbaran: IBizAlbaranProveedor;
procedure SetAlbaran(const Value: IBizAlbaranProveedor); virtual;
function GetViewProveedorAlbaran: TfrViewDatosYSeleccionProveedor;
procedure SetViewProveedorAlbaran(const Value: TfrViewDatosYSeleccionProveedor);
function GetController : IAlbaranesProveedorController;
procedure SetController (const Value : IAlbaranesProveedorController);
public
property Albaran: IBizAlbaranProveedor read GetAlbaran write SetAlbaran;
property ViewProveedorAlbaran: TfrViewDatosYSeleccionProveedor read GetViewProveedorAlbaran;
property Controller : IAlbaranesProveedorController read GetController write SetController;
end;
implementation
{$R *.dfm}
{ TfrViewAlbaranProveedor }
uses
uProveedoresController, uBizDireccionesContacto,
uBizFormasPago, schAlbaranesProveedorClient_Intf;
procedure TfrViewAlbaranProveedor.actElegirDireccionExecute(Sender: TObject);
var
AProveedoresController : IProveedoresController;
AAlbaranController : IAlbaranesProveedorController;
ADireccion : IBizDireccionesContacto;
begin
inherited;
{ AProveedoresController := TProveedoresController.Create;
AAlbaranController := TAlbaranesProveedorController.Create;
try
ADireccion := AProveedoresController.ElegirDireccionEntrega(FAlbaran.Proveedor.Direcciones,
'Seleccione la direcci<63>n del Proveedor que quiere utilizar como direcci<63>n de envio de este Albaran.');
if Assigned(ADireccion) then
AAlbaranController.CopiarDireccionEnvio(ADireccion, FAlbaran);
finally
AProveedoresController := NIL;
AAlbaranController := NIL;
end;
}
end;
procedure TfrViewAlbaranProveedor.actElegirDireccionUpdate(Sender: TObject);
begin
inherited;
if (Sender as TAction).Enabled then
(Sender as TAction).Enabled := (not ReadOnly) and
Assigned(FAlbaran) and
Assigned(FViewProveedorAlbaran) and
FAlbaran.DataTable.Active and
Assigned(FAlbaran.Proveedor) and
Assigned(FAlbaran.Proveedor) and
Assigned(FAlbaran.Proveedor.Direcciones) and
FAlbaran.Proveedor.Direcciones.DataTable.Active and
(FAlbaran.Proveedor.Direcciones.DataTable.RecordCount > 0);
end;
procedure TfrViewAlbaranProveedor.actVerPedidoExecute(Sender: TObject);
begin
inherited;
FPedidoController.Ver(FPedidoAsociado);
end;
procedure TfrViewAlbaranProveedor.actVerPedidoUpdate(Sender: TObject);
begin
inherited;
if (Sender as TAction).Enabled then
(Sender as TAction).Enabled := (Albaran.REF_PED_PROVEEDOR <> '')
end;
procedure TfrViewAlbaranProveedor.bFormasPagoClick(Sender: TObject);
begin
inherited;
FFormasPagoController.VerTodos((dsFormaPago.DataTable) as IBizFormaPago);
end;
procedure TfrViewAlbaranProveedor.CustomViewCreate(Sender: TObject);
begin
inherited;
FPedidoAsociado := NIL;
FPedidoController := TPedidosProveedorController.Create;
FFormasPagoController := TFormasPagoController.Create;
FViewProveedorAlbaran := frViewProveedorAlbaran;
FViewProveedorAlbaran.MsgElegirProveedor := 'Elija el proveedor de este albar<61>n.';
eReferencia.Enabled := False;
end;
procedure TfrViewAlbaranProveedor.CustomViewDestroy(Sender: TObject);
begin
FController := Nil;
FPedidoController := NIL;
FFormasPagoController := NIL;
FPedidoAsociado := NIL;
FViewProveedorAlbaran := Nil;
inherited;
end;
procedure TfrViewAlbaranProveedor.frViewProveedorAlbaranactAnadirContactoUpdate(Sender: TObject);
begin
if (Sender as TAction).Enabled then
(Sender as TAction).Enabled := not Assigned(FPedidoAsociado);
end;
procedure TfrViewAlbaranProveedor.frViewProveedorAlbaranactElegirContactoUpdate(Sender: TObject);
begin
if (Sender as TAction).Enabled then
(Sender as TAction).Enabled := (not Assigned(FPedidoAsociado));
end;
procedure TfrViewAlbaranProveedor.frViewProveedorAlbaranButton1Click(Sender: TObject);
begin
if Assigned(Albaran) and Assigned(Albaran.Proveedor) and
Assigned (Albaran.Detalles) and (Albaran.Detalles.RecordCount > 0) then
begin
if (Application.MessageBox('Si cambia de proveedor, se eliminar<61>n todos sus art<72>culos de la orden de devoluci<63>n actual, <20>Desea continuar?', 'Atenci<63>n', MB_YESNO) = IDNO) then
Exit;
end;
frViewProveedorAlbaran.actElegirContacto.Execute;
end;
procedure TfrViewAlbaranProveedor.frViewProveedorAlbaranButton2Click(Sender: TObject);
begin
if Assigned(Albaran) and Assigned(Albaran.Proveedor) and
Assigned (Albaran.Detalles) and (Albaran.Detalles.RecordCount > 0) then
begin
if (Application.MessageBox('Si cambia de proveedor, se eliminar<61>n todos sus art<72>culos del la orden de devoluci<63>n actual, <20>Desea continuar?', 'Atenci<63>n', MB_YESNO) = IDNO) then
Exit;
end;
frViewProveedorAlbaran.actAnadirContacto.Execute;
end;
function TfrViewAlbaranProveedor.GetAlbaran: IBizAlbaranProveedor;
begin
Result := FAlbaran;
end;
function TfrViewAlbaranProveedor.GetController: IAlbaranesProveedorController;
begin
Result := FController;
end;
function TfrViewAlbaranProveedor.GetViewProveedorAlbaran: TfrViewDatosYSeleccionProveedor;
begin
Result := FViewProveedorAlbaran;
end;
procedure TfrViewAlbaranProveedor.SetAlbaran(const Value: IBizAlbaranProveedor);
begin
FAlbaran := Value;
if Assigned(FAlbaran) then
begin
DADataSource.DataTable := FAlbaran.DataTable;
dsFormaPago.DataTable := FFormasPagoController.BuscarTodos.DataTable;
dsFormaPago.DataTable.Active := True;
frViewProveedorAlbaran.Proveedor := FAlbaran.Proveedor;
frViewDireccionEntregaAlbaranProv1.AlbaranProveedor := FAlbaran;
eReferenciaPedidoProv.Enabled := False;
eRefFactura.Enabled := False;
FPedidoAsociado := NIL;
if (FAlbaran.ID_PEDIDO > 0) then
begin
FPedidoAsociado := FPedidoController.Buscar(FAlbaran.ID_PEDIDO);
if Assigned(FPedidoAsociado) then
begin
FPedidoAsociado.DataTable.Active := True;
eReferenciaPedidoProv.Text := FPedidoAsociado.REFERENCIA
end
else
eReferenciaPedidoProv.Text := '';
end
else
eReferenciaPedidoProv.Text := 'No hay pedido asociado';
end
else begin
DADataSource.DataTable := NIL;
dsFormaPago.DataTable := NIL;
frViewProveedorAlbaran.Proveedor := nil;
frViewDireccionEntregaAlbaranProv1.AlbaranProveedor := Nil;
end;
end;
procedure TfrViewAlbaranProveedor.SetController(const Value: IAlbaranesProveedorController);
begin
FController := Value;
if Assigned(FController) then
begin
ViewProveedorAlbaran.Controller := Controller.ProveedorController;
end;
end;
procedure TfrViewAlbaranProveedor.SetViewProveedorAlbaran(const Value: TfrViewDatosYSeleccionProveedor);
begin
FViewProveedorAlbaran := Value;
end;
end.