pears.NetReportDoubtfulDebtors

Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.

Original SQL

CREATE PROCEDURE "pears"."NetReportDoubtfulDebtors"( IN "pWebUserID" CHAR(20) ) 
RESULT( "Title__Hr" CHAR(50),"Client__S1" CHAR(50),"InvoiceCompanyID__H" CHAR(20),"Invoice_No__B2" CHAR(50),"Last_Receipt_Date__D" DATE,"Last_Unpaid_Invoice_Date__DH" INTEGER,"Days_Elapsed__IH" INTEGER,"OutstandingAmount__IH" DECIMAL(10,2),"Days_31_to_40__MR" DECIMAL(10,2),"Days_41_to_45__MR" DECIMAL(10,2),"Days_46_to_60__MR" DECIMAL(10,2),"Days_61_to_90__MR" DECIMAL(10,2),"Days_over_90__MR" DECIMAL(10,2) ) 
BEGIN
  DECLARE "DivID" CHAR(20);
  DECLARE "rTitle" CHAR(50);
  DECLARE LOCAL TEMPORARY TABLE "Cos"(
    "CompanyID" CHAR(20) NULL,
    "CliCode" CHAR(12) NULL,
    "Last_Receipt" DATE NULL,
    "Last_Unpaid_Invoice" DATE NULL,
    ) NOT transactional;
  SET "DivID" = (SELECT FIRST "staff"."divisionid" FROM "iqxnetuser" KEY JOIN "staff" WHERE "iqxnetuser"."iqxnetuserid" = "pwebuserid");
  INSERT INTO "cos"( "companyid","clicode" ) SELECT "companyid","clientcode" FROM "company" WHERE "divisionid" = "divid" AND "invoiceaddress" = 1 AND "trim"("isnull"("clientcode",'')) <> '';
  UPDATE "cos" SET "Last_Receipt" = (SELECT "max"("AccountingDate") FROM "IQacDocument" WHERE "DocumentClass" = 'Payment' AND "AccountCode" = "clicode");
  DELETE FROM "cos" WHERE "isnull"("datediff"("day","Last_Receipt",CURRENT DATE),31) <= 30;
  UPDATE "cos" SET "Last_unpaid_invoice" = (SELECT "max"("AccountingDate") FROM "IQacDocument" WHERE "DocumentClass" = 'Invoice' AND "AccountCode" = "cliCode" AND "IQacDocumentOutstandingAmount"("DocumentID",NULL) > 0);
  DELETE FROM "cos" WHERE "last_unpaid_invoice" IS NULL;
  DELETE FROM "cos" WHERE "datediff"("day","Last_Unpaid_Invoice",CURRENT DATE) <= 45;
  SET "rTitle" = '';
  SELECT "rTitle",
    "company"."name" AS "Client",
    "cos"."CompanyID" AS "InvoiceCompanyID",
    "d"."OurRef" AS "Invoice_No",
    "cos"."last_receipt" AS "Last_Receipt_Date",
    "cos"."last_unpaid_invoice" AS "Last_Unpaid_Invoice_Date",
    "DateDiff"("day","d"."AccountingDate",CURRENT DATE) AS "Days_Elapsed",
    "IQacDocumentOutstandingAmount"("d"."DocumentID",NULL) AS "OutstandingAmount",
    "sum"((IF "Days_Elapsed" BETWEEN 31 AND 40 THEN "OutstandingAmount" ELSE 0 endif)) AS "Days_31_to_40",
    "sum"((IF "Days_Elapsed" BETWEEN 41 AND 45 THEN "OutstandingAmount" ELSE 0 endif)) AS "Days_41_to_45",
    "sum"((IF "Days_Elapsed" BETWEEN 46 AND 60 THEN "OutstandingAmount" ELSE 0 endif)) AS "Days_46_to_60",
    "sum"((IF "Days_Elapsed" BETWEEN 61 AND 90 THEN "OutstandingAmount" ELSE 0 endif)) AS "Days_61_to_90",
    "sum"((IF "Days_Elapsed" >= 91 THEN "OutstandingAmount" ELSE 0 endif)) AS "Days_over_90"
    FROM "IQacDocument" AS "d" JOIN "cos" ON "d"."accountcode" = "cos"."clicode" JOIN "Company" ON "company"."companyid" = "cos"."CompanyID"
    WHERE "OutstandingAmount" <> 0
    GROUP BY GROUPING sets((),("InvoiceCompanyID","Client","Last_Receipt_Date","d"."AccountCode","Last_Unpaid_Invoice_Date"),("InvoiceCompanyID","Client","d"."OurRef","DocumentID","d"."AccountingDate"))
END
GO
 
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetReportDoubtfulDebtors" IS 
{CREATE PROCEDURE pears."NetReportDoubtfulDebtors"( IN "pWebUserID" CHAR(20) ) 
RESULT( "Title__Hr" CHAR(50),"Client__S1" CHAR(50),"InvoiceCompanyID__H" CHAR(20),"Invoice_No__B2" CHAR(50),"Last_Receipt_Date__D" DATE,"Last_Unpaid_Invoice_Date__DH" INTEGER,"Days_Elapsed__IH" INTEGER,"OutstandingAmount__IH" DECIMAL(10,2),"Days_31_to_40__MR" DECIMAL(10,2),"Days_41_to_45__MR" DECIMAL(10,2),"Days_46_to_60__MR" DECIMAL(10,2),"Days_61_to_90__MR" DECIMAL(10,2),"Days_over_90__MR" DECIMAL(10,2) ) 
BEGIN
  DECLARE "DivID" CHAR(20);
  DECLARE "rTitle" CHAR(50);
  DECLARE LOCAL TEMPORARY TABLE "Cos"(
    "CompanyID" CHAR(20) NULL,
    "CliCode" CHAR(12) NULL,
    "Last_Receipt" DATE NULL,
    "Last_Unpaid_Invoice" DATE NULL,
    ) NOT transactional;
  SET "DivID" = (SELECT FIRST "staff"."divisionid" FROM "iqxnetuser" KEY JOIN "staff" WHERE "iqxnetuser"."iqxnetuserid" = "pwebuserid");
  INSERT INTO "cos"( "companyid","clicode" ) SELECT "companyid","clientcode" FROM "company" WHERE "divisionid" = "divid" AND "invoiceaddress" = 1 AND "trim"("isnull"("clientcode",'')) <> '';
  UPDATE "cos" SET "Last_Receipt" = (SELECT "max"("AccountingDate") FROM "IQacDocument" WHERE "DocumentClass" = 'Payment' AND "AccountCode" = "clicode");
  DELETE FROM "cos" WHERE "isnull"("datediff"("day","Last_Receipt",CURRENT DATE),31) <= 30;
  UPDATE "cos" SET "Last_unpaid_invoice" = (SELECT "max"("AccountingDate") FROM "IQacDocument" WHERE "DocumentClass" = 'Invoice' AND "AccountCode" = "cliCode" AND "IQacDocumentOutstandingAmount"("DocumentID",NULL) > 0);
  DELETE FROM "cos" WHERE "last_unpaid_invoice" IS NULL;
  DELETE FROM "cos" WHERE "datediff"("day","Last_Unpaid_Invoice",CURRENT DATE) <= 45;
  SET "rTitle" = '';
  SELECT "rTitle",
    "company"."name" AS "Client",
    "cos"."CompanyID" AS "InvoiceCompanyID",
    "d"."OurRef" AS "Invoice_No",
    "cos"."last_receipt" AS "Last_Receipt_Date",
    "cos"."last_unpaid_invoice" AS "Last_Unpaid_Invoice_Date",
    "DateDiff"("day","d"."AccountingDate",CURRENT DATE) AS "Days_Elapsed",
    "IQacDocumentOutstandingAmount"("d"."DocumentID",NULL) AS "OutstandingAmount",
    "sum"((IF "Days_Elapsed" BETWEEN 31 AND 40 THEN "OutstandingAmount" ELSE 0 endif)) AS "Days_31_to_40",
    "sum"((IF "Days_Elapsed" BETWEEN 41 AND 45 THEN "OutstandingAmount" ELSE 0 endif)) AS "Days_41_to_45",
    "sum"((IF "Days_Elapsed" BETWEEN 46 AND 60 THEN "OutstandingAmount" ELSE 0 endif)) AS "Days_46_to_60",
    "sum"((IF "Days_Elapsed" BETWEEN 61 AND 90 THEN "OutstandingAmount" ELSE 0 endif)) AS "Days_61_to_90",
    "sum"((IF "Days_Elapsed" >= 91 THEN "OutstandingAmount" ELSE 0 endif)) AS "Days_over_90"
    FROM "IQacDocument" AS "d" JOIN "cos" ON "d"."accountcode" = "cos"."clicode" JOIN "Company" ON "company"."companyid" = "cos"."CompanyID"
    WHERE "OutstandingAmount" <> 0
    GROUP BY GROUPING sets((),("InvoiceCompanyID","Client","Last_Receipt_Date","d"."AccountCode","Last_Unpaid_Invoice_Date"),("InvoiceCompanyID","Client","d"."OurRef","DocumentID","d"."AccountingDate"))
END
}