2007-06-11 15:29:06 +00:00
unit uDetallesAlbaranClienteController;
interface
uses
uDADataTable, uControllerDetallesArticulos, uBizDetallesAlbaranCliente, uIDataModuleAlbaranesCliente,
uBizArticulos, uBizContactos;
type
IDetallesAlbaranClienteController = interface( IControllerDetallesArticulos)
[ '{6AD99D47-2856-47B1-9620-DD115726B0E1}' ]
procedure AnadirArticulos( ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente) ; overload ;
procedure ActualizarDetalles( ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente) ; overload ;
end ;
TDetallesAlbaranClienteController = class( TControllerDetallesArticulos, IDetallesAlbaranClienteController)
private
FDataModule : IDataModuleAlbaranesCliente;
protected
procedure AsignarDatos( ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer ) ; override ;
procedure RellenarDescuentos( ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo) ; override ;
procedure RellenarImportes( ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo) ; override ;
procedure AsignarController; override ;
public
procedure AnadirArticulos( ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente) ; overload ;
procedure ActualizarDetalles( ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente) ; overload ;
constructor Create; override ;
destructor Destroy; override ;
end ;
implementation
2007-06-19 10:59:58 +00:00
uses Dialogs, uDialogUtils, Variants, uControllerDetallesBase, uControllerDetallesDTO, uDataModuleAlbaranesCliente, uArticulosAlbaranClienteController;
2007-06-11 15:29:06 +00:00
{ TDetallesAlbaranClienteController }
procedure TDetallesAlbaranClienteController. ActualizarDetalles( ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente) ;
var
AArticulos : IBizArticulo;
begin
if Assigned( ADetalles) then
begin
try
AArticulos : = ( FArticulosController. BuscarTodos( ACliente) as IBizArticulo) ;
ActualizarDetalles( ADetalles, AArticulos) ;
2007-06-19 10:59:58 +00:00
ShowInfoMessage( 'Se han actualizado los descuentos para el cliente seleccionado' ) ;
2007-06-11 15:29:06 +00:00
finally
AArticulos : = Nil ;
end ;
end ;
end ;
procedure TDetallesAlbaranClienteController. AnadirArticulos( ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente) ;
var
AArticulos: IBizArticulo;
begin
if Assigned( ADetalles) then
begin
try
AArticulos : = ( FArticulosController. BuscarTodos( ACliente) as IBizArticulo) ;
AArticulos : = ( FArticulosController as IArticulosAlbaranClienteController) . ElegirArticulos( AArticulos, 'Elija los art<72> culos que desea a<> adir a este albar<61> n de cliente' , True ) ;
Add( ADetalles, AArticulos) ;
finally
AArticulos : = Nil ;
end ;
end ;
end ;
procedure TDetallesAlbaranClienteController. AsignarController;
begin
FArticulosController : = TArticulosAlbaranClienteController. Create;
end ;
procedure TDetallesAlbaranClienteController. AsignarDatos( ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer ) ;
begin
inherited ;
with ( ADetalles as IBizDetallesAlbaranCliente) do
begin
Edit;
ID : = FDataModule. GetNextID( DataTable. LogicalName) ;
ID_ALBARAN : = IDCabecera;
Post
end ;
end ;
constructor TDetallesAlbaranClienteController. Create;
begin
inherited ;
FDataModule : = TDataModuleAlbaranesCliente. Create( Nil ) ;
end ;
destructor TDetallesAlbaranClienteController. Destroy;
begin
FDataModule : = Nil ;
inherited ;
end ;
procedure TDetallesAlbaranClienteController. RellenarDescuentos( ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo) ;
begin
if Assigned( AArticulos) then
RellenarDescuento( ADetalles, AArticulos. DESCUENTO)
else
RellenarDescuento( ADetalles, 0 )
end ;
procedure TDetallesAlbaranClienteController. RellenarImportes( ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo) ;
begin
if Assigned( AArticulos) then
ADetalles. DataTable. FieldByName( CAMPO_IMPORTE_UNIDAD) . AsVariant : = AArticulos. PRECIO_COSTE
else
ADetalles. DataTable. FieldByName( CAMPO_IMPORTE_UNIDAD) . AsVariant : = Null;
end ;
end .