Procedura-PLMPrintInvPiecelist

Popis:
Slouží pro tisk stromu inverzních kusovníků

Parametry:

NázevPopisDatový typ
instorecard_idChar(10)
inlevelInteger
inpathplInteger

Návratové hodnoty:

NázevPopisDatový typ
piecelist_idChar(10)
storecard_idChar(10)
quantityNumeric(15, 6)
unitrateNumeric(15, 3)
qunitVarChar(5)
issueInteger
outlevelInteger
pathplInteger
posindexInteger

Tělo:

BEGIN
  if (inlevel is Null) then
    inlevel = 0;
    
  if (inlevel > 100) then
    exit; 
     
  inlevel = inlevel + 1;
  if (InPathPL is Null) then
    inPathPL = 0;
  FOR
    SELECT 
      P.Id, 
      P.StoreCard_ID, 
      R.Quantity * (CAST(1 AS Float) + (CAST(R.WastePercentage as Numeric(15,6)) / CAST(100 as Float))), 
      R.unitrate, 
      R.QUnit, 
      R.issue,
      R.PosIndex
    FROM PLMPieceLists2 R
    JOIN PLMPieceLists P on r.Parent_id = p.id and p.revided_id is null
    LEFT JOIN StoreCards SC on SC.ID = P.StoreCard_ID
    WHERE R.StoreCard_ID = :Instorecard_id
    ORDER BY SC.Code
    INTO :PIECELIST_ID, :StoreCard_ID, :Quantity, :unitrate, :QUnit, :issue, :PosIndex
  DO BEGIN
    outlevel = :inlevel;
    inpathPL = inpathPL + 1;
    pathPL = inpathPL;
    suspend;
    FOR
      SELECT 
        PPIPL.PieceList_ID, 
        PPIPL.StoreCard_ID, 
        PPIPL.Quantity, 
        PPIPL.unitrate, 
        PPIPL.QUnit, 
        PPIPL.issue, 
        PPIPL.outlevel, 
        PPIPL.PathPL,
        PPIPL.PosIndex
      FROM PLMPrintInvPieceList(:StoreCard_ID, :outlevel, :pathpl) PPIPL
      INTO :PIECELIST_ID, :StoreCard_ID, :Quantity, :unitrate, :QUnit, :issue, :outlevel, :PathPL, :PosIndex
    do begin
      inpathPL = inpathPL + 1;
      pathPL = inpathPL;
      suspend;
    END
  END
END;

Generated by ABRA Software a.s. 27.10.2021 16:34:50