Procedura-SumRowAmountsForDocument

Popis:
Spočte částky na řádcích dokladu včetně / nebo bez nulové sazby. Použito v CZ KH DPH

Parametry:

NázevPopisDatový typ
ADocumentTypeChar(2)
ADocument_IDA / NChar(10)
AVATRateNotZeroChar(1)

Návratové hodnoty:

NázevPopisDatový typ
AmountNumeric(18, 3)
AmountWithoutVATNumeric(18, 3)
LocalAmountNumeric(18, 3)
LocalAmountWithoutVATNumeric(18, 3)

Tělo:

begin
  /*  */
  mHeader = '';
  mRows = '';
  IF (ADocumentType = '01') THEN BEGIN
    mHeader = 'OtherIncomes';
  END
  ELSE
  IF (ADocumentType = '02') THEN BEGIN
    mHeader = 'OtherExpenses';
  END
  ELSE
  IF (ADocumentType = '03') THEN BEGIN
    mHeader = 'IssuedInvoices';
  END
  ELSE
  IF (ADocumentType = '04') THEN BEGIN
    mHeader = 'ReceivedInvoices';
  END
  ELSE
  IF (ADocumentType = '05') THEN BEGIN
    mHeader = 'CashReceived';
  END
  ELSE
  IF (ADocumentType = '06') THEN BEGIN
    mHeader = 'CashPaid';
  END
  ELSE
  IF (ADocumentType = '07') THEN BEGIN
    mHeader = 'RefundedCashReceived';
  END
  ELSE
  IF (ADocumentType = '08') THEN BEGIN
    mHeader = 'RefundedCashPaid';
  END
  ELSE
  IF (ADocumentType = '60') THEN BEGIN
    mHeader = 'IssuedCreditNotes';
  END
  ELSE
  IF (ADocumentType = '61') THEN BEGIN
    mHeader = 'ReceivedCreditNotes';
  END
  ELSE
  IF (ADocumentType = '62') THEN BEGIN
    mHeader = 'VATIssuedDInvoices';
  END
  ELSE
  IF (ADocumentType = '63') THEN BEGIN
    mHeader = 'VATIssuedDCreditNotes';
  END
  ELSE
  IF (ADocumentType = '64') THEN BEGIN
    mHeader = 'VATReceivedDInvoices';
  END
  ELSE
  IF (ADocumentType = '65') THEN BEGIN
    mHeader = 'VATReceivedDCreditNotes';
  END
  ELSE
  IF (ADocumentType = 'PD') THEN BEGIN
    mHeader = 'POSDocuments';
  END
  IF (mHeader = '') THEN BEGIN
    EXIT;
  END
  mSQL = 'SELECT ' ||
      'COALESCE(SUM(TAmount), 0) Amount, ' ||
      'COALESCE(SUM(TAmountWithoutVAT), 0) AmountWithoutVAT, ' ||
      'COALESCE(SUM(LocalTAmount), 0) LocalAmount, ' ||
      'COALESCE(SUM(LocalTAmountWithoutVAT), 0) LocalAmountWithoutVAT ' ||
      'FROM ';
  IF (mRows = '') THEN mRows = mHeader  || '2';
  mSQL = mSQL || mRows || ' B ' ||
    'JOIN ' || mHeader || ' A ON A.ID = B.Parent_ID ' ||
    'WHERE ';
  mSQL = mSQL || '(A.ID = ''' || ADocument_ID || ''')';
  IF (AVATRateNotZero = 'A') THEN BEGIN
    mSQL = mSQL || 'AND (B.VATRate <> 0) ';
  END
  EXECUTE STATEMENT mSQL INTO :Amount, :AmountWithoutVAT, :LocalAmount, :LocalAmountWithoutVAT;
  SUSPEND;
end

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