Adds excel cash payments
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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]
|
||||
|
||||
Reference in New Issue
Block a user