DT.acc.check.prod <- runQry(makeQry(
                            tbl="fact_sales"
                        , schema="production"
                        , colsToAgg="gross"
                        , colsToP="storeid"
                        , dateCol="accountingperiodid"
                        , minDate="auto"
                        ))

DT.acc.check.bi <- runQry(makeQry(
                             tbl="accounting"
                        , schema="bi"
                        , colsToAgg="gross"
                        , colsToP="storeid"
                        , dateCol="accounting_month"
                        , minDate="auto"
                        ))


matchKey(DT.acc.check.prod ,DT.acc.check.bi, "storeid")

DT.acc.check.failed <- merge(DT.acc.check.bi, DT.acc.check.prod, suffix=c(".bi", ".prod"))[!equals(gross.bi, gross.prod)]
if (nrow(DT.acc.check.failed)) {
  addStoreName.storeid_(DT.acc.check.failed)
  stop(pasteC(capture.output(print(DT.acc.check.failed, nrows=12)), C="\n"), "\n\nAccounting Check failed for the above stores (see DT.acc.check.failed")
}

# ---------------------------------------------------------

DT.anal.check.prod <- runQry(makeQry(
                            tbl="fact_analytics"
                        , schema="production"
                        , colsToAgg=c("paidunits", "freeunits")
                        , colsToP="storeid"
                        , dateCol="activity_date"
                        , minDate="auto"
                        ))

DT.anal.check.bi <- runQry(makeQry(
                             tbl="analytics"
                        , schema="bi"
                        , colsToAgg=c("paidunits", "freeunits")
                        , colsToP="storeid"
                        , dateCol="activity_date"
                        , minDate="auto"
                        ))


matchKey(DT.anal.check.prod ,DT.anal.check.bi, "storeid")

DT.anal.check.failed <- merge(DT.anal.check.bi, DT.anal.check.prod, suffix=c(".bi", ".prod"))[!equals(gross.bi, gross.prod)]
if (nrow(DT.anal.check.failed)) {
  addStoreName.storeid_(DT.anal.check.failed)
  stop(pasteC(capture.output(print(DT.anal.check.failed, nrows=12)), C="\n"), "\n\nanalytics Check failed for the above stores (see DT.anal.check.failed")
}


