2007-06-11 15:29:06 +00:00
unit uDetallesFacturaProveedorController;
interface
uses
uDADataTable, uControllerDetallesArticulos, uBizDetallesFacturaProveedor, uIDataModuleFacturasProveedor,
uBizContactos, uBizArticulos;
type
IDetallesFacturaProveedorController = interface( IControllerDetallesArticulos)
[ '{49F6199E-E031-42F5-AEA5-E70C3E3479A1}' ]
procedure AnadirArticulos( ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor) ; overload ;
procedure ActualizarDetalles( ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor) ;
procedure AnadirDetalleFacturaAsociadaAbono( ADetalles: IBizDetallesFacturaProveedor; AReferencia: String ; AFecha: String ) ;
end ;
TDetallesFacturaProveedorController = class( TControllerDetallesArticulos, IDetallesFacturaProveedorController)
private
FDataModule : IDataModuleFacturasProveedor;
protected
procedure AsignarDatos( ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer ) ; override ;
procedure RellenarDescuentos( ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo) ; overload ; override ;
procedure RellenarImportes( ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo) ; override ;
procedure AsignarController; override ;
public
procedure AnadirArticulos( ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor) ; overload ;
procedure ActualizarDetalles( ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor) ; overload ;
procedure AnadirDetalleFacturaAsociadaAbono( ADetalles: IBizDetallesFacturaProveedor; AReferencia: String ; AFecha: String ) ;
constructor Create; override ;
destructor Destroy; override ;
end ;
implementation
{ TDetallesFacturaProveedorController }
uses Variants, uControllerDetallesDTO, uDataModuleFacturasProveedor, uArticulosFacturaProveedorController,
2007-06-19 10:59:58 +00:00
uControllerDetallesBase, Dialogs, SysUtils, uDialogUtils;
2007-06-11 15:29:06 +00:00
procedure TDetallesFacturaProveedorController. ActualizarDetalles( ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor) ;
var
AArticulos : IBizArticulo;
begin
if Assigned( ADetalles) then
begin
try
AArticulos : = ( FArticulosController. BuscarTodos( AProveedor) as IBizArticulo) ;
ActualizarDetalles( ADetalles, AArticulos) ;
2007-06-19 10:59:58 +00:00
EliminarArticulosProveedor( ADetalles) ;
ShowInfoMessage( 'Se han eliminado todos los art<72> culos que no pertenecen al nuevo proveedor seleccionado, y los que pertenecen sus descuentos han sido adaptados al proveedor seleccionado' ) ;
2007-06-11 15:29:06 +00:00
finally
AArticulos : = Nil ;
end ;
end ;
end ;
procedure TDetallesFacturaProveedorController. AnadirArticulos( ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor) ;
var
AArticulos: IBizArticulo;
begin
if Assigned( ADetalles) then
begin
2007-06-19 10:59:58 +00:00
AArticulos : = ( FArticulosController. BuscarTodos as IBizArticulo) ;
2007-06-11 15:29:06 +00:00
try
2007-06-19 10:59:58 +00:00
AArticulos : = ( FArticulosController as IArticulosFacturaProveedorController) . ElegirArticulos( AArticulos, 'Elija los art<72> culos que desea a<> adir a esta factura de Proveedor' , True , AProveedor) ;
2007-06-11 15:29:06 +00:00
Add( ADetalles, AArticulos) ;
finally
AArticulos : = Nil ;
end ;
end ;
end ;
procedure TDetallesFacturaProveedorController. AnadirDetalleFacturaAsociadaAbono(
ADetalles: IBizDetallesFacturaProveedor; AReferencia, AFecha: String ) ;
begin
AnadirConceptoInicial( ADetalles, 'ABONO DE FACTURA ' + AReferencia + ' con fecha ' + AFecha) ;
end ;
procedure TDetallesFacturaProveedorController. AsignarController;
begin
FArticulosController : = TArticulosFacturaProveedorController. Create;
end ;
procedure TDetallesFacturaProveedorController. AsignarDatos( ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer ) ;
begin
inherited ;
with ( ADetalles as IBizDetallesFacturaProveedor) do
begin
Edit;
ID : = FDataModule. GetNextID( DataTable. LogicalName) ;
ID_FACTURA : = IDCabecera;
Post
end ;
end ;
constructor TDetallesFacturaProveedorController. Create;
begin
inherited ;
FDataModule : = TDataModuleFacturasProveedor. Create( Nil ) ;
end ;
destructor TDetallesFacturaProveedorController. Destroy;
begin
FDataModule : = Nil ;
inherited ;
end ;
procedure TDetallesFacturaProveedorController. RellenarDescuentos( ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo) ;
begin
if Assigned( AArticulos) then
RellenarDescuento( ADetalles, AArticulos. DESCUENTO)
else
RellenarDescuento( ADetalles, 0 )
end ;
procedure TDetallesFacturaProveedorController. RellenarImportes( ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo) ;
begin
if Assigned( AArticulos) then
begin
ADetalles. DataTable. FieldByName( CAMPO_IMPORTE_UNIDAD) . AsVariant : = AArticulos. PRECIO_COSTE;
ADetalles. DataTable. FieldByName( CAMPO_IMPORTE_PORTE) . AsVariant : = AArticulos. PRECIO_PORTE
end
else
begin
ADetalles. DataTable. FieldByName( CAMPO_IMPORTE_UNIDAD) . AsVariant : = Null;
ADetalles. DataTable. FieldByName( CAMPO_IMPORTE_PORTE) . AsVariant : = Null
end ;
end ;
end .