diff --git a/src/clj/auto_ap/graphql/checks.clj b/src/clj/auto_ap/graphql/checks.clj index a1a33c61..41322ade 100644 --- a/src/clj/auto_ap/graphql/checks.clj +++ b/src/clj/auto_ap/graphql/checks.clj @@ -1,32 +1,29 @@ (ns auto-ap.graphql.checks - (:require [auto-ap.graphql.utils :refer [->graphql <-graphql assert-can-see-client]] - [datomic.api :as d] - [clojure.edn :as edn] - [com.walmartlabs.lacinia :refer [execute]] - [com.walmartlabs.lacinia.executor :as executor] - [com.walmartlabs.lacinia.resolve :as resolve] - [auto-ap.datomic.checks :as d-checks] - [auto-ap.datomic.invoices :as d-invoices] - [auto-ap.datomic.vendors :as d-vendors] - [auto-ap.datomic.transactions :as d-transactions] - [auto-ap.datomic.clients :as d-clients] + (:require [amazonica.aws.s3 :as s3] + [auto-ap.datomic :refer [audit-transact remove-nils]] [auto-ap.datomic.bank-accounts :as d-bank-accounts] - [auto-ap.datomic :refer [uri remove-nils audit-transact]] - [auto-ap.utils :refer [by dollars-0?]] + [auto-ap.datomic.checks :as d-checks] + [auto-ap.datomic.clients :as d-clients] + [auto-ap.datomic.invoices :as d-invoices] + [auto-ap.datomic.transactions :as d-transactions] + [auto-ap.datomic.vendors :as d-vendors] + [auto-ap.graphql.utils + :refer + [->graphql <-graphql assert-can-see-client]] [auto-ap.numeric :refer [num->words]] - [config.core :refer [env]] - [auto-ap.time :refer [parse normal-date iso-date local-now]] - [amazonica.aws.s3 :as s3] - [clojure.string :as str] + [auto-ap.time :refer [iso-date local-now parse]] + [auto-ap.utils :refer [by dollars-0?]] [clj-pdf.core :as pdf] - [clj-time.format :as f] [clj-time.coerce :as c] [clj-time.core :as time] - [clojure.java.io :as io]) - (:import [java.text DecimalFormat] - [java.util UUID] - [java.io ByteArrayOutputStream])) - + [clj-time.format :as f] + [clojure.edn :as edn] + [clojure.java.io :as io] + [clojure.string :as str] + [config.core :refer [env]]) + (:import java.io.ByteArrayOutputStream + java.text.DecimalFormat + java.util.UUID)) (def parser (f/formatter "MM/dd/YYYY")) (defn date->str [t] @@ -248,22 +245,21 @@ :payment/type :payment-type/check :payment/memo memo :payment/status :payment-status/pending - :payment/pdf-data (doto (pr-str {:vendor vendor - :paid-to (or (:vendor/paid-to vendor) (:vendor/name vendor)) - :amount (reduce + 0 (map (comp invoice-amounts :db/id) invoices)) - :check (str (+ index (:bank-account/check-number bank-account))) - :memo memo - :date (date->str (local-now)) - :client (dissoc client :client/bank-accounts) - :bank-account (dissoc bank-account :bank-account/start-date) - #_#_:client {:name (:name client) - :address (:address client) - :signature-file (:signature-file client) - :bank {:name (:bank-account/bank-name bank-account) - :acct (:bank-account/bank-code bank-account) - :routing (:bank-account/routing bank-account) - :acct-number (:bank-account/number bank-account)}}}) - println)))] + :payment/pdf-data (pr-str {:vendor vendor + :paid-to (or (:vendor/paid-to vendor) (:vendor/name vendor)) + :amount (reduce + 0 (map (comp invoice-amounts :db/id) invoices)) + :check (str (+ index (:bank-account/check-number bank-account))) + :memo memo + :date (date->str (local-now)) + :client (dissoc client :client/bank-accounts) + :bank-account (dissoc bank-account :bank-account/start-date) + #_#_:client {:name (:name client) + :address (:address client) + :signature-file (:signature-file client) + :bank {:name (:bank-account/bank-name bank-account) + :acct (:bank-account/bank-code bank-account) + :routing (:bank-account/routing bank-account) + :acct-number (:bank-account/number bank-account)}}})))] (-> [] (conj payment) @@ -314,13 +310,15 @@ invoices (d-invoices/get-multi (map :invoice-id invoice-payments)) client (d-clients/get-by-id client-id) vendors (by :db/id (d-vendors/get-graphql {})) - invoice-amounts (by :invoice-id :amount invoice-payments) invoices-grouped-by-vendor (group-by (comp :db/id :invoice/vendor) invoices) - bank-account (d-bank-accounts/get-by-id bank-account-id) _ (validate-belonging client-id invoices bank-account) - + _ (if (dollars-0? (reduce + 0.0 (filter + #(>= % 0.0) + (map :amount invoice-payments)))) + (throw (ex-info "The selected invoices do not have an outstanding balance." + {:validation-error "The selected invoices do not have an outstanding balance."}))) checks (->> (for [[[vendor-id invoices] index] (map vector invoices-grouped-by-vendor (range))] (invoices->entities invoices (vendors vendor-id) client bank-account type index invoice-amounts)) (reduce into []) @@ -330,8 +328,7 @@ checks)] (when (= type :payment-type/check) (make-pdfs (filter #(and (= :payment-type/check (:payment/type %)) - (> (:payment/amount %) 0.0) - ) + (> (:payment/amount %) 0.0)) checks))) (audit-transact checks id) diff --git a/src/clj/auto_ap/graphql/ledger.clj b/src/clj/auto_ap/graphql/ledger.clj index 438f2498..ecccbbc9 100644 --- a/src/clj/auto_ap/graphql/ledger.clj +++ b/src/clj/auto_ap/graphql/ledger.clj @@ -367,7 +367,7 @@ (audit-transact-batch retraction (:id context)) - (log/info (map :tx success)) + #_(log/info (map :tx success)) (audit-transact-batch (map :tx success) (:id context)) {:successful (map (fn [x] {:external_id (:external_id x)}) success) diff --git a/src/clj/auto_ap/handler.clj b/src/clj/auto_ap/handler.clj index d02f23e1..a9ecbfa3 100644 --- a/src/clj/auto_ap/handler.clj +++ b/src/clj/auto_ap/handler.clj @@ -76,7 +76,8 @@ :source "request" :user-role (:user/role (:identity request)) :user-name (:user/name (:identity request))} - (log/info "Beginning request" (:uri request)) + (when-not (str/includes? (:uri request) "health-check") + (log/info "Beginning request" (:uri request))) (handler request)))) diff --git a/src/cljs/auto_ap/views/pages/ledger/external_import.cljs b/src/cljs/auto_ap/views/pages/ledger/external_import.cljs index 40613405..7271bf5c 100644 --- a/src/cljs/auto_ap/views/pages/ledger/external_import.cljs +++ b/src/cljs/auto_ap/views/pages/ledger/external_import.cljs @@ -148,7 +148,7 @@ ^{:key heading-name} [:th heading-name]))]] [:tbody (list - (for [[index row] (map vector (range ) (take 100 value)) + (for [[index row] (map vector (range ) (take 2000 value)) :when (row-filter row)] ^{:key index} [:tr (list