AlonsoYSal_FactuGES2/Source/Modulos/Inventario/Model/uBizInventario.pas
2019-11-18 10:36:42 +00:00

150 lines
4.4 KiB
ObjectPascal
Raw Permalink Blame History

unit uBizInventario;
interface
uses
uDAInterfaces, uDADataTable, schInventarioClient_Intf,
uBizArticulos, uDBSelectionListUtils;
const
BIZ_CLIENT_INVENTARIO = 'Client.Inventario';
BIZ_CLIENT_DETALLE_RESERVAS_INV = 'Client.DetallesReservasInv';
CTE_TIPO_ENTRADA = 'E';
CTE_TIPO_SALIDA = 'S';
type
TEnumTipoMovimiento = (tEntradaLibre,
tSalidaLibre,
tTraslado,
tEntradaPedidoProveedor,
tSalidaAlbaranCliente);
IBizDetalleReservas = interface(IDetalleReservas)
['{7E718670-DDC1-411B-B8DF-A28B81F9B8C3}']
end;
IBizInventario = interface(IInventario)
['{12051CDB-9BB1-43C5-AC89-181A27A35513}']
function GetIDAlmacenOrigen: Integer;
procedure SetIDAlmacenOrigen(const Value: Integer);
property IDAlmacenOrigen: Integer read GetIDAlmacenOrigen write SetIDAlmacenOrigen;
function GetIDAlmacenDestino: Integer;
procedure SetIDAlmacenDestino(const Value: Integer);
property IDAlmacenDestino: Integer read GetIDAlmacenDestino write SetIDAlmacenDestino;
function GetTipo: TEnumTipoMovimiento;
procedure SetTipo(const Value: TEnumTipoMovimiento);
property TipoMovimiento: TEnumTipoMovimiento read GetTipo write SetTipo;
end;
TBizDetalleReservas = class(TDetalleReservasDataTableRules, IBizDetalleReservas)
end;
TBizInventario = class(TInventarioDataTableRules, IBizInventario, ISeleccionable)
private
FIDAlmacenOrigen : Integer;
FIDAlmacenDestino : Integer;
FTipoMovimiento : TEnumTipoMovimiento;
function GetIDAlmacenOrigen: Integer;
procedure SetIDAlmacenOrigen(const Value: Integer);
function GetIDAlmacenDestino: Integer;
procedure SetIDAlmacenDestino(const Value: Integer);
function GetTipo: TEnumTipoMovimiento;
procedure SetTipo(const Value: TEnumTipoMovimiento);
protected
FSeleccionableInterface : ISeleccionable;
procedure OnNewRecord(Sender: TDADataTable); override;
procedure OnCalcFields(Sender: TDADataTable); override;
public
property IDAlmacenOrigen: Integer read GetIDAlmacenOrigen write SetIDAlmacenOrigen;
property IDAlmacenDestino: Integer read GetIDAlmacenDestino write SetIDAlmacenDestino;
property TipoMovimiento: TEnumTipoMovimiento read GetTipo write SetTipo;
property SeleccionableInterface : ISeleccionable read FSeleccionableInterface
write FSeleccionableInterface implements ISeleccionable;
constructor Create(aDataTable: TDADataTable); override;
destructor Destroy; override;
end;
implementation
uses
Dialogs, uDACDSDataTable, SysUtils;
{ TBizInventario }
constructor TBizInventario.Create(aDataTable: TDADataTable);
begin
inherited;
IDAlmacenOrigen := -1;
IDAlmacenDestino := -1;
TipoMovimiento := tEntradaLibre;
FSeleccionableInterface := TSeleccionable.Create(aDataTable);
end;
destructor TBizInventario.Destroy;
begin
FSeleccionableInterface := NIL;
inherited;
end;
procedure TBizInventario.OnCalcFields(Sender: TDADataTable);
begin
inherited;
ID := Self.DataTable.RecIDValue;
end;
procedure TBizInventario.OnNewRecord(Sender: TDADataTable);
begin
inherited;
//Este ID realmente se corresponder<65> con el de la tabla de movimientos.
ID := GetRecNo;
//En funci<63>n del tipo de operaci<63>n vamos a coger el IDAlmacenOrigen o IDAlamcenDetino
Case TipoMovimiento of
tEntradaLibre, tEntradaPedidoProveedor : ID_ALMACEN := IDAlmacenDestino;
tSalidaLibre, tSalidaAlbaranCliente, tTraslado : ID_ALMACEN := IDAlmacenOrigen;
End;
end;
function TBizInventario.GetIDAlmacenDestino: Integer;
begin
Result := FIDAlmacenDestino;
end;
function TBizInventario.GetIDAlmacenOrigen: Integer;
begin
Result := FIDAlmacenOrigen;
end;
function TBizInventario.GetTipo: TEnumTipoMovimiento;
begin
Result := FTipoMovimiento;
end;
procedure TBizInventario.SetIDAlmacenDestino(const Value: Integer);
begin
FIDAlmacenDestino := Value;
end;
procedure TBizInventario.SetIDAlmacenOrigen(const Value: Integer);
begin
FIDAlmacenOrigen := Value;
end;
procedure TBizInventario.SetTipo(const Value: TEnumTipoMovimiento);
begin
FTipoMovimiento := Value;
end;
initialization
RegisterDataTableRules(BIZ_CLIENT_INVENTARIO, TBizInventario);
RegisterDataTableRules(BIZ_CLIENT_DETALLE_RESERVAS_INV, TBizDetalleReservas);
end.