Procedura-SimpleCashBookVATDUsages

Popis:
Přeúčtování čerpání daňových zálohových listů z typu "daňová záloha" na typ v dokladu a nebo zpět

Parametry:

NázevPopisDatový typ
ADateFrom$DATEFloat(0, 0)
ADateTo$DATEFloat(0, 0)
VATIssuedDeposits_IT_IDChar(10)
VATReceivedDeposits_ET_IDChar(10)

Návratové hodnoty:

NázevPopisDatový typ
CategoryInteger
DocDate$DATEFloat(0, 0)
VATCreditNumeric(15, 2)
VATDebitNumeric(15, 2)
IncomeType_IDChar(10)
ExpenseType_IDChar(10)
TextVarChar(100)
DocumentTypeChar(2)
Document_IDChar(10)
PDocumentTypeChar(2)
PDocument_IDChar(10)
AmountNumeric(15, 2)
DocumentDisplaynameVarChar(24)
PDocumentDisplaynameVarChar(24)
ErrorInteger
Sort_DocumentDisplaynameVarChar(28)
Sort_PDocumentDisplaynameVarChar(28)

Tělo:

begin
  -- Faktury odeslane
  DocumentType = '03';
  PDocumentType = '62';
  VATCredit = 0;
  VATDebit = 0;
  Amount = 0;
  ExpenseType_ID = null;
  FOR
    SELECT B.DocDate$DATE, A.LocalTAmountWithoutVAT, A.LocalTAmount-A.LocalTAmountWithoutVAT,
    A.IncomeType_ID, A.VATDeposit_ID,
    B.ID, A.Text, D.Code || '-' || B.OrdNumber || '/' || P.Code,
    D.Code || '-' || IB_LPad(B.OrdNumber, 8, '0') || '/' || P.Code,
    DD.Code || '-' || VI.OrdNumber || '/' || PP.Code,
    DD.Code || '-' || IB_LPad(VI.OrdNumber, 8, '0') || '/' || PP.Code
    FROM IssuedInvoices2 A
    JOIN IssuedInvoices B ON B.ID = A.Parent_ID
    JOIN DocQueues D ON D.ID = B.DocQueue_ID
    JOIN Periods P ON P.ID = B.Period_ID
    JOIN VATIssuedDInvoices VI ON VI.ID=A.VATDeposit_ID
    JOIN DocQueues DD ON DD.ID = VI.DocQueue_ID
    JOIN Periods PP ON PP.ID = VI.Period_ID
    LEFT JOIN IncomeTypes IT ON IT.ID = A.IncomeType_ID
    WHERE
        (B.DocDate$DATE<:ADateTo$DATE) and (B.DocDate$DATE>=:ADateFrom$DATE)
        and (A.RowType=5) and (A.VATDEPOSIT_ID is not null)
    INTO
    :DocDate$DATE, :Amount, :VATCredit, :IncomeType_ID, :PDocument_ID,:Document_ID, :Text, :DocumentDisplayName,
    :Sort_DocumentDisplayName,
    :PDocumentDisplayName,
    :Sort_PDocumentDisplayName
  DO BEGIN
    Category = 0;
    Error = 0;
    mSaved_ID = :IncomeType_ID;
    IncomeType_ID = VATIssuedDeposits_IT_ID;
    IF ((IncomeType_ID is Null) or (IncomeType_ID = '') or (IncomeType_ID='A000000000')) THEN
      Error = 1;
    SUSPEND;
    Amount = -1 * :Amount;
    VATCredit = -1 * VATCredit;
    IncomeType_ID = mSaved_ID;
    IF ((IncomeType_ID is Null) or (IncomeType_ID = '') or (IncomeType_ID='A000000000')) THEN
      Error = 1;
    SUSPEND;
  END
  -- Dobropisy Faktur odeslanych
  DocumentType = '60';
  PDocumentType = '62';
  VATCredit = 0;
  VATDebit = 0;
  Amount = 0;
  ExpenseType_ID = null;
  FOR
    SELECT B.DocDate$DATE, A.LocalTAmountWithoutVAT, A.LocalTAmount-A.LocalTAmountWithoutVAT,
    A.IncomeType_ID, A.VATDeposit_ID,
    B.ID, A.Text, D.Code || '-' || B.OrdNumber || '/' || P.Code,
    D.Code || '-' || IB_LPad(B.OrdNumber, 8, '0') || '/' || P.Code,
    DD.Code || '-' || VI.OrdNumber || '/' || PP.Code,
    DD.Code || '-' || IB_LPad(VI.OrdNumber, 8, '0') || '/' || PP.Code
    FROM IssuedCreditNotes2 A
    JOIN IssuedCreditNotes B ON B.ID = A.Parent_ID
    JOIN DocQueues D ON D.ID = B.DocQueue_ID
    JOIN Periods P ON P.ID = B.Period_ID
    JOIN VATIssuedDInvoices VI ON VI.ID=A.VATDeposit_ID
    JOIN DocQueues DD ON DD.ID = VI.DocQueue_ID
    JOIN Periods PP ON PP.ID = VI.Period_ID
    LEFT JOIN IncomeTypes IT ON IT.ID = A.IncomeType_ID
    WHERE
        (B.DocDate$DATE<:ADateTo$DATE) and (B.DocDate$DATE>=:ADateFrom$DATE)
        and (A.RowType=5) and (A.VATDEPOSIT_ID is not null)
    INTO
    :DocDate$DATE, :Amount, :VATCredit, :IncomeType_ID, :PDocument_ID,:Document_ID, :Text, :DocumentDisplayName,
    :Sort_DocumentDisplayName,
    :PDocumentDisplayName,
    :Sort_PDocumentDisplayName
  DO BEGIN
    Category = 0;
    Error = 0;
    IF ((IncomeType_ID is Null) or (IncomeType_ID = '') or (IncomeType_ID='A000000000')) THEN
      Error = 1;
    SUSPEND;
    Amount = -1 * :Amount;
    VATCredit = -1 * VATCredit;
    IncomeType_ID = VATIssuedDeposits_IT_ID;
    IF ((IncomeType_ID is Null) or (IncomeType_ID = '') or (IncomeType_ID='A000000000')) THEN
      Error = 1;
    SUSPEND;
  END
  -- Faktury prijate
  DocumentType = '04';
  PDocumentType = '64';
  VATCredit = 0;
  VATDebit = 0;
  Amount = 0;
  IncomeType_ID = null;
  FOR
    SELECT B.DocDate$DATE, A.LocalTAmountWithoutVAT, A.LocalTAmount-A.LocalTAmountWithoutVAT,
    A.ExpenseType_ID, A.VATDeposit_ID,
    B.ID, A.Text, D.Code || '-' || B.OrdNumber || '/' || P.Code,
    D.Code || '-' || IB_LPad(B.OrdNumber, 8, '0') || '/' || P.Code,
    DD.Code || '-' || VI.OrdNumber || '/' || PP.Code,
    DD.Code || '-' || IB_LPad(VI.OrdNumber, 8, '0') || '/' || PP.Code
    FROM ReceivedInvoices2 A
    JOIN ReceivedInvoices B ON B.ID = A.Parent_ID
    JOIN DocQueues D ON D.ID = B.DocQueue_ID
    JOIN Periods P ON P.ID = B.Period_ID
    JOIN VATReceivedDInvoices VI ON VI.ID=A.VATDeposit_ID
    JOIN DocQueues DD ON DD.ID = VI.DocQueue_ID
    JOIN Periods PP ON PP.ID = VI.Period_ID
    LEFT JOIN ExpenseTypes ET ON ET.ID = A.ExpenseType_ID
    WHERE
        (B.DocDate$DATE<:ADateTo$DATE) and (B.DocDate$DATE>=:ADateFrom$DATE)
        and (A.VATDeposit='A') and (A.VATDEPOSIT_ID is not null)
    INTO
    :DocDate$DATE, :Amount, :VATDebit, :ExpenseType_ID, :PDocument_ID, :Document_ID, :Text, :DocumentDisplayName,
    :Sort_DocumentDisplayName,
    :PDocumentDisplayName,
    :Sort_PDocumentDisplayName
  DO BEGIN
    Category = 1;
    Error = 0;
    mSaved_ID = :ExpenseType_ID;
    ExpenseType_ID = VATReceivedDeposits_ET_ID;
    IF ((ExpenseType_ID is Null) or (ExpenseType_ID = '') or (ExpenseType_ID='A000000000')) THEN
      Error = 1;
    SUSPEND;
    Amount = -1 * :Amount;
    VATDebit = -1 * VATDebit;
    ExpenseType_ID = mSaved_ID;
    IF ((ExpenseType_ID is Null) or (ExpenseType_ID = '') or (ExpenseType_ID='A000000000')) THEN
      Error = 1;
    SUSPEND;
  END
  -- Dobropisy faktur prijatych
  DocumentType = '61';
  PDocumentType = '64';
  VATCredit = 0;
  VATDebit = 0;
  Amount = 0;
  IncomeType_ID = null;
  FOR
    SELECT B.DocDate$DATE, A.LocalTAmountWithoutVAT, A.LocalTAmount-A.LocalTAmountWithoutVAT,
    A.ExpenseType_ID, A.VATDeposit_ID,
    B.ID, A.Text, D.Code || '-' || B.OrdNumber || '/' || P.Code,
    D.Code || '-' || IB_LPad(B.OrdNumber, 8, '0') || '/' || P.Code,
    DD.Code || '-' || VI.OrdNumber || '/' || PP.Code,
    DD.Code || '-' || IB_LPad(VI.OrdNumber, 8, '0') || '/' || PP.Code
    FROM ReceivedCreditNotes2 A
    JOIN ReceivedCreditNotes B ON B.ID = A.Parent_ID
    JOIN DocQueues D ON D.ID = B.DocQueue_ID
    JOIN Periods P ON P.ID = B.Period_ID
    JOIN VATReceivedDInvoices  VI ON VI.ID=A.VATDeposit_ID
    JOIN DocQueues DD ON DD.ID = VI.DocQueue_ID
    JOIN Periods PP ON PP.ID = VI.Period_ID
    LEFT JOIN ExpenseTypes ET ON ET.ID = A.ExpenseType_ID
    WHERE
        (B.DocDate$DATE<:ADateTo$DATE) and (B.DocDate$DATE>=:ADateFrom$DATE)
        and (A.VATDeposit='A') and (A.VATDEPOSIT_ID is not null)
    INTO
    :DocDate$DATE, :Amount, :VATDebit, :ExpenseType_ID, :PDocument_ID, :Document_ID, :Text, :DocumentDisplayName,
    :Sort_DocumentDisplayName,
    :PDocumentDisplayName,
    :Sort_PDocumentDisplayName
  DO BEGIN
    Category = 1;
    Error = 0;
    IF ((ExpenseType_ID is Null) or (ExpenseType_ID = '') or (ExpenseType_ID='A000000000')) THEN
      Error = 1;
    SUSPEND;
    Amount = -1 * :Amount;
    VATDebit = -1 * VATDebit;
    ExpenseType_ID = VATReceivedDeposits_ET_ID;
    IF ((ExpenseType_ID is Null) or (ExpenseType_ID = '') or (ExpenseType_ID='A000000000')) THEN
      Error = 1;
    SUSPEND;
  END
end

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