305 lines
11 KiB
ObjectPascal
305 lines
11 KiB
ObjectPascal
|
|
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.
|