Procedura-SAFMOSSROWS

Parametry:

NázevPopisDatový typ
ADocumentTypeTyp dokladuChar(2)
ADocument_IDID dokladuChar(10)

Návratové hodnoty:

NázevPopisDatový typ
IDID řádku dokladuChar(10)
RowTypeTyp řádkuInteger
PosIndexPořadíInteger
TextText řádkuVarChar(250)
VATRate_IDID DPH sazbyChar(10)
VATIndex_IDID DPH indexuChar(10)
TAmountWithoutVATČástka bez daněNumeric(13, 2)
TAmountČástka celkemNumeric(13, 2)
LocalTAmountWithoutVATČástka bez daně lokálníNumeric(13, 2)
LocalTAmountČástka celkem lokálníNumeric(13, 2)
Division_IDStřediskoChar(10)
BusOrder_IDZakázkaChar(10)
BusTransaction_IDObch.případChar(10)
BusProject_IDProjektChar(10)
MOSSService_IDID poskytnuté služby MOSSChar(10)
UnitrateNumeric(15, 3)
QuantityMnožstvíNumeric(15, 6)
QUnitJednotkaVarChar(5)
StoreCard_IDSkladová kartaChar(10)

Tělo:

BEGIN
-- *****************************************************************************
-- SAF-MOSS ROWS Firebird
-- *****************************************************************************
  IF ((ADocumentType = '') OR ((ADocument_ID IS NULL) OR (ADocument_ID = '0000000000')))
  THEN
    EXIT;
  -- Jen vybrane DocumentTypes    
  IF (ADocumentType = '03') THEN
  BEGIN
    mText = 'IssuedInvoices2 ';
  END
  ELSE
  IF (ADocumentType = '60') THEN
  BEGIN
    mText =  'IssuedCreditNotes2 ';
  END
  ELSE
  IF (ADocumentType = '05') THEN
  BEGIN
    mText =  'CashReceived2 ';
  END
  ELSE
  IF (ADocumentType = '07') THEN
  BEGIN
    mText =  'RefundedCashReceived2 ';
  END
  ELSE
  IF (ADocumentType = '62') THEN
  BEGIN
    mText =  'VATIssuedDInvoices2 ';
  END
  ELSE
  IF (ADocumentType = '63') THEN
  BEGIN
    mText =  'VATIssuedDCreditNotes2 ';
  END
  ELSE
  BEGIN
    EXIT;
  END
  mSQL =
  'SELECT ' ||
    'B.ID, ' ||
    'B.RowType, ' ||
    'B.PosIndex, ' ||
    'B.Text, ' ||
    'B.VATRate_ID, ' ||
    'B.VATIndex_ID, ' ||
    'B.TAmountWithoutVAT, ' ||
    'B.TAmount, ' ||
    'B.LocalTAmountWithoutVAT, ' ||
    'B.LocalTAmount, ' ||
    'B.Division_ID, ' ||
    'B.BusOrder_ID, ' ||
    'B.BusTransaction_ID, ' ||
    'B.BusProject_ID, ' ||
    'B.MOSSService_ID, ';
  IF (
    (ADocumentType = '03') OR (ADocumentType = '60') OR
    (ADocumentType = '05')  OR (ADocumentType = '07')
     )
  THEN
  BEGIN
    mSQL = mSQL ||
      'B.Unitrate, ' ||
      'B.Quantity, ' ||
      'B.QUnit, ' ||
      'B.StoreCard_ID, ' ||
      'SC.Name AS StoreCardName ';
  END
  ELSE
  IF (
    (ADocumentType = '62')  OR (ADocumentType = '63')
     )
  THEN
  BEGIN
    mSQL = mSQL ||
      '0 AS Unitrate, ' ||
      '0 AS Quantity, ' ||
      'CAST('''' AS VARCHAR(5)) AS QUnit, ' ||
--      'CAST(''0000000000'' AS CHAR(10)) AS StoreCard_ID, ' ||
      'NULL AS StoreCard_ID, ' ||
      'CAST('''' AS VARCHAR(250)) AS StoreCardName ';
  END
  mSQL = mSQL ||
    'FROM ';
  mSQL = mSQL || :mText;
  mSQL = mSQL ||
  'B ' ||
  'LEFT JOIN MOSSServices MSS ON MSS.ID = B.MOSSService_ID ' ||
  'JOIN VATRates VR ON VR.ID = B.VATRate_ID ' ||
  'JOIN VATIndexes VI ON VI.ID = B.VATIndex_ID ';
  IF (
    (ADocumentType = '03') OR (ADocumentType = '60') OR
    (ADocumentType = '05')  OR (ADocumentType = '07')
     )
  THEN
  BEGIN
    mSQL = mSQL ||
      'LEFT JOIN StoreCards SC ON SC.ID = B.StoreCard_ID ';
  END
  mSQL = mSQL ||
    'WHERE B.Parent_ID = ' || '''' || :ADocument_ID || '''';

  FOR EXECUTE STATEMENT mSQL
  INTO
    :ID, :RowType, :POSIndex, :Text, :VATRate_ID, :VATIndex_ID,
    :TAmountWithoutVAT, :TAmount, :LocalTAmountWithoutVAT, :LocalTAmount,
    :Division_ID, :BusOrder_ID, :BusTransaction_ID, :BusProject_ID, :MOSSService_ID,
    :UnitRate, :Quantity, :QUnit, :StoreCard_ID, :mText
  DO BEGIN
    IF ((StoreCard_ID IS NOT NULL) AND (StoreCard_ID <> '0000000000')) THEN
    BEGIN
      Text = :mText;
    END
    SUSPEND;
  END
END

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