AbetoDesign_FactuGES2/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.pas
2021-02-07 17:20:37 +00:00

307 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, uBizFormasPago,
uDAInterfaces, uAlbaranesProveedorController, uViewTienda;
type
IViewAlbaranProveedor = interface(IViewBase)
['{2DA099CE-359A-46E8-90A0-D004FF09040A}']
function GetController : IAlbaranesProveedorController;
procedure SetController (const Value : IAlbaranesProveedorController);
property Controller : IAlbaranesProveedorController read GetController write SetController;
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;
end;
TfrViewAlbaranProveedor = class(TfrViewBase, IViewAlbaranProveedor)
DADataSource: TDADataSource;
dxLayoutControl1Group_Root: TdxLayoutGroup;
dxLayoutControl1: TdxLayoutControl;
dxLayoutControl1Item2: TdxLayoutItem;
edtFechaAlbaran: TcxDBDateEdit;
dxLayoutControl1Group1: TdxLayoutGroup;
dxLayoutControl1Group2: TdxLayoutGroup;
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;
eReferenciaPedidoCli: TcxTextEdit;
dxLayoutControl1Item9: TdxLayoutItem;
Button1: TButton;
dxLayoutControl1Group5: TdxLayoutGroup;
actVerPedido: TAction;
dxLayoutControl1Item10: TdxLayoutItem;
eRefFactura: TcxDBTextEdit;
dxLayoutControl1Item11: TdxLayoutItem;
eReferenciaProveedor: TcxDBTextEdit;
dxLayoutControl1Item12: TdxLayoutItem;
eReferenciaFacturaProveedor: TcxDBTextEdit;
dxLayoutControl1Item13: TdxLayoutItem;
frViewTienda1: TfrViewTienda;
dxLayoutControl1Group9: TdxLayoutGroup;
frViewObservaciones1: TfrViewObservaciones;
dxLayoutControl1Item6: TdxLayoutItem;
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
FAlbaran : IBizAlbaranProveedor;
FController : IAlbaranesProveedorController;
FViewProveedorAlbaran : TfrViewDatosYSeleccionProveedor;
FFormasPago : IBizFormaPago;
FFormasPagoController : IFormasPagoController;
FPedidoAsociado : IBizPedidoProveedor;
FPedidoController : IPedidosProveedorController;
function GetAlbaran: IBizAlbaranProveedor;
procedure SetAlbaran(const Value: IBizAlbaranProveedor); virtual;
function GetController : IAlbaranesProveedorController;
procedure SetController (const Value : IAlbaranesProveedorController);
function GetViewProveedorAlbaran: TfrViewDatosYSeleccionProveedor;
procedure SetViewProveedorAlbaran(const Value: TfrViewDatosYSeleccionProveedor);
public
property Albaran: IBizAlbaranProveedor read GetAlbaran write SetAlbaran;
property Controller : IAlbaranesProveedorController read GetController write SetController;
property ViewProveedorAlbaran: TfrViewDatosYSeleccionProveedor read GetViewProveedorAlbaran;
end;
implementation
{$R *.dfm}
{ TfrViewAlbaranProveedor }
uses
uProveedoresController, uBizDireccionesContacto,
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;
if Assigned(FFormasPago) then
FFormasPagoController.VerTodos(FFormasPago);
end;
procedure TfrViewAlbaranProveedor.CustomViewCreate(Sender: TObject);
begin
inherited;
FPedidoAsociado := NIL;
FPedidoController := TPedidosProveedorController.Create;
FFormasPago := Nil;
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
FPedidoController := NIL;
FFormasPago := 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;
frViewTienda1.DataItem := FAlbaran.DataTable;
FFormasPago := FFormasPagoController.BuscarTodos;
dsFormaPago.DataTable := FFormasPago.DataTable;
dsFormaPago.DataTable.Active := True;
frViewProveedorAlbaran.Proveedor := FAlbaran.Proveedor;
frViewDireccionEntregaAlbaranProv1.AlbaranProveedor := FAlbaran;
eReferenciaPedidoCli.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;
eReferenciaPedidoCli.Text := FPedidoAsociado.REFERENCIA
end
else
eReferenciaPedidoCli.Text := '';
end
else
eReferenciaPedidoCli.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
ViewProveedorAlbaran.Controller := Controller.ProveedorController;
end;
procedure TfrViewAlbaranProveedor.SetViewProveedorAlbaran(const Value: TfrViewDatosYSeleccionProveedor);
begin
FViewProveedorAlbaran := Value;
end;
end.