Adds excel cash payments

This commit is contained in:
2022-02-16 09:55:20 -08:00
parent 85a47ee54d
commit 21d3d14c1f
2 changed files with 35 additions and 7 deletions

View File

@@ -328,9 +328,10 @@
:payment/memo memo
:payment/status :payment-status/cleared)
transaction {:db/id (str "transaction-" (:db/id vendor))
:transaction/amount (:payment/amount base-payment)
:transaction/amount (- (:payment/amount base-payment))
:transaction/payment (str (:db/id vendor))
:transaction/client (:db/id client)
:transaction/status "POSTED"
:transaction/bank-account (:db/id bank-account)
:transaction/id #_{:clj-kondo/ignore [:unresolved-var]} (digest/sha-256 transaction-id)
:transaction/raw-id transaction-id

View File

@@ -1,7 +1,8 @@
(ns auto-ap.routes.invoices
(:require [auto-ap.datomic :refer [remove-nils uri]]
(:require [auto-ap.datomic :refer [remove-nils uri conn]]
[auto-ap.datomic.clients :as d-clients]
[auto-ap.datomic.invoices :as d-invoices]
[auto-ap.datomic.accounts :as a]
[auto-ap.datomic.vendors :as d-vendors]
[auto-ap.graphql.utils :refer [assert-admin assert-can-see-client]]
[auto-ap.import.manual :as manual]
@@ -19,7 +20,8 @@
[ring.middleware.json :refer [wrap-json-response]]
[unilog.context :as lc]
[amazonica.aws.s3 :as s3]
[config.core :refer [env]])
[config.core :refer [env]]
[digest])
(:import java.util.UUID))
(defn reset-id [i]
@@ -184,7 +186,9 @@
(defn invoice-rows->transaction [rows user]
(->> rows
(mapcat (fn [{:keys [vendor-id total client-id date invoice-number default-location check automatically-paid-when-due]}]
(let [invoice #:invoice {:db/id (.toString (java.util.UUID/randomUUID))
(let [payment-id (.toString (java.util.UUID/randomUUID))
transaction-id (.toString (java.util.UUID/randomUUID))
invoice #:invoice {:db/id (.toString (java.util.UUID/randomUUID))
:vendor vendor-id
:client client-id
:default-location default-location
@@ -203,16 +207,39 @@
payment (when (= :invoice-status/paid (:invoice/status invoice))
#:invoice-payment {:invoice (:db/id invoice)
:amount (:invoice/total invoice)
:payment (remove-nils #:payment {:db/id (.toString (java.util.UUID/randomUUID))
:payment (remove-nils #:payment {:db/id payment-id
:vendor (:invoice/vendor invoice)
:client (:invoice/client invoice)
:type :payment-type/cash
:amount (:invoice/total invoice)
:status :payment-status/cleared
:date (:invoice/date invoice)})})]
:date (:invoice/date invoice)})})
transaction (when (= :invoice-status/paid (:invoice/status invoice))
(let [[bank-account] (d/q '[:find [?ba ...]
:in $ ?c
:where [?c :client/bank-accounts ?ba]
[?ba :bank-account/type :bank-account-type/cash]
]
(d/db conn))]
#:transaction {:amount (- (:invoice/total invoice))
:payment payment-id
:client (:invoice/client invoice)
:status "POSTED"
:bank-account bank-account
:id #_ {:clj-kondo/ignore [:unresolved-var]} (digest/sha-256 transaction-id)
:raw-id transaction-id
:vendor (:invoice/vendor invoice)
:description-original "Cash payment"
:date date
:approval-status :transaction-approval-status/approved
:accounts [{:transaction-account/account (:db/id (a/get-account-by-numeric-code-and-sets 21000 ["default"]))
:transaction-account/location "A"
:transaction-account/amount (Math/abs (:invoice/total invoice))}]}))
]
[[:propose-invoice (d-invoices/code-invoice (validate-invoice (remove-nils invoice)
user))]
(some-> payment remove-nils)])))
(some-> payment remove-nils)
transaction])))
(filter identity)))
(defn admin-only-if-multiple-clients [is]