Tecsitel_FactuGES2/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.pas

250 lines
8.8 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,
cxGraphics, cxDropDownEdit, cxImageComboBox, cxDBEdit, cxContainer, cxEdit,
cxTextEdit, cxMaskEdit, cxCalendar, dxLayoutControl, cxControls, cxMemo,
uViewDireccionEntregaAlbaranProv, Buttons, ActnList, cxLookupEdit,
cxDBLookupEdit, cxDBLookupComboBox, uFormasPagoController,
uBizPedidosProveedor, uPedidosProveedorController, uBizFormasPago,
uDAInterfaces, uViewDatosYSeleccionProveedorAlbaran;
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: TfrViewDatosYSeleccionProveedorAlbaran;
property ViewProveedorAlbaran: TfrViewDatosYSeleccionProveedorAlbaran read GetViewProveedorAlbaran;
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;
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;
frViewDatosYSeleccionProveedorAlbaran1: TfrViewDatosYSeleccionProveedorAlbaran;
dxLayoutControl1Item1: TdxLayoutItem;
procedure CustomViewCreate(Sender: TObject);
procedure CustomViewDestroy(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;
FViewProveedorAlbaran : TfrViewDatosYSeleccionProveedorAlbaran;
FFormasPago : IBizFormaPago;
FFormasPagoController : IFormasPagoController;
FPedidoAsociado : IBizPedidoProveedor;
FPedidoController : IPedidosProveedorController;
function GetAlbaran: IBizAlbaranProveedor;
procedure SetAlbaran(const Value: IBizAlbaranProveedor); virtual;
function GetViewProveedorAlbaran: TfrViewDatosYSeleccionProveedorAlbaran;
public
property Albaran: IBizAlbaranProveedor read GetAlbaran write SetAlbaran;
property ViewProveedorAlbaran: TfrViewDatosYSeleccionProveedorAlbaran read GetViewProveedorAlbaran;
end;
implementation
{$R *.dfm}
{ TfrViewAlbaranProveedor }
uses
uProveedoresController, uBizDireccionesContacto, uAlbaranesProveedorController,
schAlbaranesProveedorClient_Intf;
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 := frViewDatosYSeleccionProveedorAlbaran1;
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;
FViewProveedorAlbaran.ElegirProveedor;
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;
FViewProveedorAlbaran.AnadirNuevoProveedor;
end;
function TfrViewAlbaranProveedor.GetAlbaran: IBizAlbaranProveedor;
begin
Result := FAlbaran;
end;
function TfrViewAlbaranProveedor.GetViewProveedorAlbaran: TfrViewDatosYSeleccionProveedorAlbaran;
begin
Result := FViewProveedorAlbaran;
end;
procedure TfrViewAlbaranProveedor.SetAlbaran(const Value: IBizAlbaranProveedor);
begin
FAlbaran := Value;
if Assigned(FAlbaran) then
begin
DADataSource.DataTable := FAlbaran.DataTable;
FFormasPago := FFormasPagoController.BuscarTodos;
dsFormaPago.DataTable := FFormasPago.DataTable;
dsFormaPago.DataTable.Active := True;
FViewProveedorAlbaran.Albaran := FAlbaran;
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;
FViewProveedorAlbaran.Albaran := nil;
frViewDireccionEntregaAlbaranProv1.AlbaranProveedor := Nil;
end;
end;
end.