Procedura-GetNotPaidFirmOfficeAmount

Popis:
Zjistí nezaplacenou částku na fakturách pro danou provozovnu. Zohledňuje zda se mají brát v úvahu i Zálohové listy. Přeplatky na zálohovém listu se neberou v úvahu.

Parametry:

NázevPopisDatový typ
AWithDepositInvoicesChar(1)
AFirmOffice_IDChar(10)
ADueDateFloat(0, 0)

Návratové hodnoty:

NázevPopisDatový typ
NotPaidAmountNumeric(15, 2)

Tělo:

BEGIN
  mFromDepositInv = 0.0;
  /* Zjistime nedoplatky na Zalohovych listech */
  IF (AWithDepositInvoices = 'A') THEN BEGIN
    SELECT SUM(LocalAmount - LocalPaidAmount) 
      FROM IssuedDInvoices 
      WHERE (FirmOffice_ID=:AFirmOffice_ID) and (DueDate$DATE < :ADueDate or :ADueDate=0.0)
      INTO :mFromDepositInv;
    IF (mFromDepositInv IS NULL) THEN
      mFromDepositInv = 0.0;
    /* Ak jsou preplatky tak je ignorujeme a vratime 0 nedoplatku */
    IF (:mFromDepositInv <= 0.0) THEN 
      mFromDepositInv = 0.0;
  END
  /* Zjistime nedoplatky na Fakturach */
  SELECT SUM(LocalAmount - LocalPaidAmount - LocalCreditAmount + LocalPaidCreditAmount) 
    FROM IssuedInvoices 
    WHERE (FirmOffice_ID=:AFirmOffice_ID) and (DueDate$DATE < :ADueDate or :ADueDate=0.0)
    INTO :NotPaidAmount;
  IF (NotPaidAmount IS NULL) THEN
      NotPaidAmount = 0.0;
  /* Nedoplatky celkem */
  NotPaidAmount = NotPaidAmount + mFromDepositInv;
  SUSPEND;
END;

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