Procedura-LogStoreCustOutputStrat

Parametry:

NázevPopisDatový typ
AStoreCard_IDChar(10)
AStore_IDChar(10)
AStoreBatch_IDChar(10)
ASBatch_ID_NullChar(1)
AQuantityNumeric(15, 6)
AAccessibilityLimitInteger
AIsAccessibilityLimitFilterChar(1)
ANotDefectGoodsChar(1)
ARespectIndivisibleQuantityChar(1)

Návratové hodnoty:

NázevPopisDatový typ
IDChar(10)
Position_ID
ID
Position_CodeVarChar(30)
Position_AccessibilityInteger
Position_FrozenChar(1)
Quantity
Quantity
Qunit
Unit
UnitRate
UnitRate
IndivisibleQuantity
UnitQuantity
CompareStorageDate$DATEDouble(0, 0)
StoreBatch_Name
Description40
PositionTypeInteger

Závislosti:

NázevPopisTřída
LogStoreContentsForStrat_VIEWObsah skladových pozic upravený o změny zapsané v tabulce LogStoreContentsTemporary.Views
LogStorePositionsForStrat_VIEWVolný prostor skladových pozic upravený o změny zapsané v tabulce LogStorePositionsTemporary.Views

Tělo:

begin 
  For
  Select
    LSC.ID,
    SP.ID Position_ID,
    SP.Code Position_Code,
    SP.Accessibility Position_Accessibility,
    SP.Frozen Position_Frozen,
    (LSC.Quantity - LSC.QuantityReserved) Quantity,
    LSC.QUnit,
    LSC.UnitRate,
    /* LSC.Quantity i LSC.QuantityReserved jsou v jednotkach se vztahem jedna, tj. i nedelitelne mnozstvi jednotky musi byt prevedeno na jednotku se vztahem jedna */
    SU.IndivisibleQuantity * SU.UnitRate,    
    (Case When SB.ID is null then LSC.DateOfStorage$DATE
     Else SB.ExpirationDate$DATE end
    ) as CompareStorageDate$DATE,   
    SB.Name StoreBatch_Name,
    SP.PositionType
  from
    LogStorePositionsForStrat_VIEW SP
    join LogStoreContentsForStrat_VIEW LSC on LSC.Parent_ID = SP.ID
    join StoreUnits SU on LSC.StoreCard_ID = SU.Parent_ID
    left join StoreBatches SB on LSC.StoreBatch_ID = SB.ID
  where
    SP.Hidden = 'N' and
    ((SP.Accessibility < :AAccessibilityLimit) or (:AIsAccessibilityLimitFilter = 'N')) and
    SP.Store_ID = :AStore_ID and
    LSC.StoreCard_ID = :AStoreCard_ID and
    (
    (LSC.StoreBatch_ID = :AStoreBatch_ID) or
    (:ASBatch_ID_Null = 'A')
    ) and
    (SU.Code = LSC.QUnit) and
    (:AQuantity >= Cast((SU.IndivisibleQuantity * SU.UnitRate) as Numeric(15,6))
    ) and
    ( ( (:ARespectIndivisibleQuantity = 'N') AND ((LSC.Quantity - LSC.QuantityReserved) > 0) ) OR
      ( (:ARespectIndivisibleQuantity = 'A') AND (SU.IndivisibleQuantity = 0) AND ((LSC.Quantity - LSC.QuantityReserved) > 0) ) OR
      /* LSC.Quantity i LSC.QuantityReserved jsou v jednotkach se vztahem jedna, tj. i nedelitelne mnozstvi jednotky musi byt prevedeno na jednotku se vztahem jedna */
      ( (:ARespectIndivisibleQuantity = 'A') AND (SU.IndivisibleQuantity > 0) AND ((LSC.Quantity - LSC.QuantityReserved) >= SU.IndivisibleQuantity * SU.UnitRate) ) 
    ) and      
    (SP.ReservedForDoc_ID is Null) and
    ((SP.PositionType <> 2) or (:ANotDefectGoods = 'N'))
  Into
    :ID,
    :Position_ID,
    :Position_Code,
    :Position_Accessibility,
    :Position_Frozen,
    :Quantity,
    :QUnit,
    :UnitRate,
    :IndivisibleQuantity,
    :CompareStorageDate$DATE,
    :StoreBatch_Name,
    :PositionType
  do
    suspend;
end;

Generated by ABRA Software a.s. 27.10.2021 16:35:20