Procedura-PLMFLOWBYDATE2AWT

Popis:
Slouží k tisku pohybů nedokončené výroby (se SPL)

Parametry:

NázevPopisDatový typ
DATEFROMFloat(0, 0)
DATETOFloat(0, 0)

Návratové hodnoty:

NázevPopisDatový typ
DOCTYPEChar(2)
DOCQUEUE_IDChar(10)
ORDNUMBERInteger
PERIOD_IDChar(10)
DOCDATEFloat(0, 0)
PRODUCTIONTASK_IDChar(10)
LOCALAMOUNTOUTNumeric(13, 2)

Tělo:

begin
  /* Výdejky materiálu do výroby */
  FOR
    SELECT sd.documenttype, sd.docqueue_id, sd.ordnumber, sd.period_id, sd.docdate$date, a.productiontask_id, LocalTAmount
    FROM Storedocuments2 A
        left join Storedocuments SD ON SD.id = A.Parent_ID
    WHERE
        SD.DocumentType = '27' and (SD.DocDate$DATE >= :datefrom and SD.DocDate$DATE < :dateto)
    into :doctype, :docqueue_ID, :ordnumber, :period_id,  :docdate,  :productiontask_ID, :LOCALAMOUNTOUT
  DO suspend;
  /* Příjemky výrobků a Vratky materiálu z výroby */
  For
    SELECT sd.documenttype, sd.docqueue_id, sd.ordnumber, sd.period_id, sd.docdate$date, a.productiontask_id,
            LocalTAmount * -1
    FROM Storedocuments2 A
        left join Storedocuments SD ON SD.id = A.Parent_ID
    WHERE
        SD.DocumentType in ('28','29') and (SD.DocDate$DATE >= :datefrom and SD.DocDate$DATE < :dateto)
    into :doctype, :docqueue_ID, :ordnumber, :period_id,  :docdate,  :productiontask_ID, :LOCALAMOUNTOUT
  DO suspend;
  /* Souhrnne pracovní lístky */
  For
    SELECT qu.documenttype, a.docqueue_id, a.ordnumber, a.period_id, a.DocDate$DATE, JO.productiontask_id,  A.Amount as LocalAmount
    FROM plmaggregateworktickets A
        left join plmjoborders JO on JO.ID = A.JobOrder_ID
        left join docqueues QU ON QU.id = a.docqueue_id
    WHERE A.DocDate$DATE is not null and A.DocDate$DATE > 0 and (A.DocDate$DATE >= :datefrom and A.DocDate$DATE < :dateto)
    into :doctype, :docqueue_ID, :ordnumber, :period_id,  :docdate,  :productiontask_ID, :LOCALAMOUNTOUT
  DO suspend;
  /* Kooperace */
  For
    SELECT qu.documenttype, a.docqueue_id, a.ordnumber, a.period_id,
        case when a.ReturnedAt$DATE > 0 then a.ReturnedAt$DATE else a.docdate$date end,
        JO.productiontask_id, A.RealMaterialPrice + A.RealWorkPrice as LocalAmount
    FROM plmcooperations A
        left join plmjoborders JO on JO.ID = A.JobOrder_ID
        left join docqueues QU ON QU.id = a.docqueue_id
    where (ReturnedAt$DATE = 0 and (A.DocDate$DATE >= :datefrom and A.DocDate$DATE < :dateto))
        or (ReturnedAt$DATE > 0 and (ReturnedAt$DATE >= :datefrom and ReturnedAt$DATE < :dateto))
    into :doctype, :docqueue_ID, :ordnumber, :period_id,  :docdate,  :productiontask_ID, :LOCALAMOUNTOUT
    DO suspend;
  /* Dokončené výrobky */
  For
    SELECT qu.documenttype, a.docqueue_id, a.ordnumber, a.period_id,
        a.docdate$date,
        JO.productiontask_id, A.Amount as LocalAmount
    FROM plmfinishedproducts A
        left join plmjoborders JO on JO.ID = A.JobOrder_ID
        left join docqueues QU ON QU.id = a.docqueue_id
    where A.DocDate$DATE is not null and A.DocDate$DATE > 0 and (A.DocDate$DATE >= :datefrom and A.DocDate$DATE < :dateto)
    into :doctype, :docqueue_ID, :ordnumber, :period_id,  :docdate,  :productiontask_ID, :LOCALAMOUNTOUT
    DO suspend;
  /* Vyrovnani nedokoncene vyroby */
  FOR
    SELECT qu.documenttype, a.docqueue_id, a.ordnumber, a.period_id, a.DocDate$DATE, JO.productiontask_id,  -A.Amount as LocalAmount
    FROM plmbalanceinprocessproduces A
        left join plmjoborders JO on JO.ID = A.joborder_id
        left join docqueues QU ON QU.id = a.docqueue_id
    WHERE A.DocDate$DATE is not null and A.DocDate$DATE > 0 and (A.DocDate$DATE >= :datefrom and A.DocDate$DATE < :dateto)
    into :doctype, :docqueue_ID, :ordnumber, :period_id,  :docdate,  :productiontask_ID, :LOCALAMOUNTOUT
  Do Suspend;
End;

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