git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@734 0c75b7a4-871f-7646-8a2f-f78d34cc349f
209 lines
5.8 KiB
ObjectPascal
209 lines
5.8 KiB
ObjectPascal
unit uBizInventario;
|
||
|
||
interface
|
||
|
||
uses
|
||
uDAInterfaces, uDADataTable, schInventarioClient_Intf,
|
||
uBizArticulos, uDBSelectionListUtils;
|
||
|
||
const
|
||
BIZ_CLIENT_INVENTARIO = 'Client.Inventario';
|
||
BIZ_CLIENT_DETALLE_RESERVAS_INV = 'Client.DetallesReservasInv';
|
||
|
||
CTE_INV_ALMACEN = 'ALMACEN';
|
||
CTE_INV_OBRA = 'OBRA';
|
||
|
||
CTE_TIPO_ENTRADA = 'E';
|
||
CTE_TIPO_SALIDA = 'S';
|
||
CTE_TIPO_RESERVA = 'R';
|
||
|
||
type
|
||
TEnumTipoMovimiento = (tEntradaLibre,
|
||
tSalidaLibre,
|
||
tTraslado,
|
||
tReserva,
|
||
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, ISeleccionable)
|
||
protected
|
||
FSeleccionableInterface : ISeleccionable;
|
||
public
|
||
property SeleccionableInterface : ISeleccionable read FSeleccionableInterface
|
||
write FSeleccionableInterface implements ISeleccionable;
|
||
|
||
constructor Create(aDataTable: TDADataTable); override;
|
||
destructor Destroy; override;
|
||
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;
|
||
procedure BeforeOpen(Sender: TDADataTable); override;
|
||
procedure AfterOpen(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, uDataTableUtils, SysUtils;
|
||
|
||
{ TBizInventario }
|
||
|
||
procedure TBizInventario.AfterOpen(Sender: TDADataTable);
|
||
var
|
||
Contador: Integer;
|
||
begin
|
||
inherited;
|
||
{
|
||
DesconectarTabla(Sender);
|
||
Sender.First;
|
||
Contador := 1;
|
||
while not Sender.EOF do
|
||
begin
|
||
if not Sender.Editing then
|
||
Sender.Edit;
|
||
Sender.FieldByName('ID').AsInteger := Contador;
|
||
Inc(Contador);
|
||
Sender.Next;
|
||
end;
|
||
ConectarTabla(Sender);
|
||
}
|
||
|
||
//
|
||
end;
|
||
|
||
procedure TBizInventario.BeforeOpen(Sender: TDADataTable);
|
||
begin
|
||
inherited;
|
||
//
|
||
end;
|
||
|
||
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; // -1, -2, -3...
|
||
|
||
//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, tReserva : 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;
|
||
|
||
{ TBizDetalleReservas }
|
||
|
||
constructor TBizDetalleReservas.Create(aDataTable: TDADataTable);
|
||
begin
|
||
inherited;
|
||
FSeleccionableInterface := TSeleccionable.Create(aDataTable);
|
||
end;
|
||
|
||
destructor TBizDetalleReservas.Destroy;
|
||
begin
|
||
FSeleccionableInterface := NIL;
|
||
inherited;
|
||
end;
|
||
|
||
initialization
|
||
RegisterDataTableRules(BIZ_CLIENT_INVENTARIO, TBizInventario);
|
||
RegisterDataTableRules(BIZ_CLIENT_DETALLE_RESERVAS_INV, TBizDetalleReservas);
|
||
|
||
end.
|