fixed dates.

This commit is contained in:
BC
2018-06-16 18:57:33 -07:00
parent f9c0e55b01
commit b0f401e87b
13 changed files with 49 additions and 68 deletions

View File

@@ -59,7 +59,6 @@
(Integer/parseInt id))))
(defn insert [data]
(let [[{:keys [id]}] (j/insert! (get-conn) :vendors (unparse data))]
(println "inserted vendor: " data ", id " id)
(get-by-id id)))

View File

@@ -3,24 +3,29 @@
[auto-ap.db.invoices :as invoices]
[auto-ap.db.vendors :as vendors]
[auto-ap.db.invoices-expense-accounts :as invoices-expense-accounts]
[auto-ap.time :refer [parse normal-date]]))
[auto-ap.time :refer [parse iso-date]]))
(defn -create-vendor-if-necessary [vendor-id vendor-name]
(defn -create-or-get-vendor [vendor-id vendor-name]
(if vendor-id
vendor-id
(:id (vendors/insert {:name vendor-name :default-expense-account 0}))))
(vendors/get-by-id vendor-id)
(vendors/insert {:name vendor-name :default-expense-account 0})))
(defn add-invoice [context {{:keys [total invoice_number company_id vendor_id vendor_name date] :as in} :invoice} value]
(let [vendor_id (-create-vendor-if-necessary vendor_id vendor_name)]
(-> (invoices/insert-multi! [{:invoice-number invoice_number
:company-id company_id
:vendor-id vendor_id
:total total
:outstanding-balance total
:status "unpaid"
:imported true
:date (parse date normal-date)}])
(first)
(let [vendor (-create-or-get-vendor vendor_id vendor_name)
[invoice] (invoices/insert-multi! [{:invoice-number invoice_number
:company-id company_id
:vendor-id (:id vendor)
:total total
:outstanding-balance total
:status "unpaid"
:imported true
:date (parse date iso-date)}]
)]
(invoices-expense-accounts/replace-for-invoice
(:id invoice) [{:expense-account-id (:default-expense-account vendor)
:amount total}] )
(-> invoice
(->graphql))))

View File

@@ -6,6 +6,7 @@
(time/to-time-zone (time/now) (time/time-zone-for-id "America/Los_Angeles")))
(def normal-date "MM/dd/yyyy")
(def iso-date "yyyy-MM-dd")
(defn parse [v format]
(try

View File

@@ -38,8 +38,7 @@
status :status}
transaction
company-id (account->company-id account-id)
vendor-id (transaction->vendor-id transaction)]
]
vendor-id (transaction->vendor-id transaction)]]
(try
(transactions/upsert!

View File

@@ -2,7 +2,7 @@
(:require [clojure.spec.alpha :as s]
[clojure.string :as str]))
(def date-regex #"[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}")
(def date-regex #"[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}")
(def money-regex #"[0-9]+(\.[0-9]{1,2})?$")
(s/def ::identifier (s/nilable string?))

View File

@@ -74,6 +74,7 @@
(re-frame/reg-event-db
::change-form
(fn [db [_ location field value]]
(println location field value)
(if value
(assoc-in db (into location field) value)
(update-in db location dissoc field))))

View File

@@ -180,7 +180,7 @@
[:li.menu-item
[:a {:href (bidi/path-for routes/routes :unpaid-invoices), :class (str "item" (active-when= ap :unpaid-invoices))}
[:span {:class "icon"}
[:i {:class "fa fa-envelope-o"}]]
[:i {:class "fa fa-envelope-open-o"}]]
[:span {:class "name"} "Unpaid Invoices"]]
]
[:li.menu-item

View File

@@ -8,15 +8,14 @@
[auto-ap.entities.invoice :as invoice]
[auto-ap.entities.vendors :as vendor]
[auto-ap.entities.invoices-expense-accounts :as invoices-expense-accounts]
[auto-ap.views.utils :refer [dispatch-event bind-field horizontal-field]]
[auto-ap.views.utils :refer [dispatch-event bind-field horizontal-field date->str str->date pretty standard]]
[auto-ap.utils :refer [by replace-if]]
[auto-ap.views.pages.check :as check]
[auto-ap.views.components.invoice-table :refer [invoice-table] :as invoice-table]
[auto-ap.views.components.modal :refer [modal action-modal]]
[auto-ap.views.components.typeahead :refer [typeahead]]
[auto-ap.subs :as subs]
[auto-ap.events :as events]
[bulma-calendar.core :as bc]))
[auto-ap.events :as events]))
(re-frame/reg-sub
::invoice-page
@@ -217,6 +216,8 @@
[:id :total :outstanding-balance :date :invoice-number
[:company [:id :name]]
[:vendor [:id :name]]
[:expense_accounts [:amount :id :expense_account_id
[:expense_account [:id :name [:parent [:id :name]]]]]]
]]}]}
:on-success [::invoice-created]}})))
@@ -395,30 +396,6 @@
:max outstanding-balance
:step "0.01"}]]]]]])]]])))
#_(defn date-picker []
(let [cal (r/atom nil)]
(r/create-class
{:component-did-mount (fn [this]
(reset! cal (new bc (r/dom-node this) (clj->js {:overlay false :dateFormat "mm/dd/yyyy"} )))
nil)
:component-will-unmount (fn [this]
(.hide @cal)
nil)
:reagent-render (fn [props]
[:input ])})))
(defn my-date [props]
(let [cal (r/atom nil)]
(r/create-class
{:component-did-mount (fn [this]
(reset! cal (new bc (r/dom-node this) (clj->js {:overlay false :dateFormat "yyyy-mm-dd"} )))
nil)
:reagent-render (fn [props]
[:input.input (merge props {:on-blur (fn [] (js/setTimeout 100 #(.hide @cal)) )}) ])})))
(defn new-invoice-modal []
(let [data @(re-frame/subscribe [::new-invoice])
@@ -446,11 +423,12 @@
[bind-field
[my-date {:type "date"
[:input.input {:type "date"
:field [:date]
:event change-event
:spec ::invoice/date
:subscription data}]]]
[horizontal-field
[:label.label "Company"]
[bind-field

View File

@@ -1,6 +1,8 @@
(ns auto-ap.views.utils
(:require [re-frame.core :as re-frame]
[clojure.spec.alpha :as s]
[cljs-time.coerce :as c]
[cljs-time.core :as time]
[auto-ap.events :as events]
[auto-ap.subs :as subs]
[cljs-time.format :as format]))
@@ -27,15 +29,22 @@
(def pretty-long (format/formatter "MM/dd/yyyy HH:mm:ss"))
(def pretty (format/formatter "MM/dd/yyyy"))
(def standard (format/formatter "yyyy-MM-MM"))
(defn date->str [d]
(when d
(format/unparse pretty d)))
(defn date->str
([d] (date->str d pretty))
([d format]
(when d
(format/unparse format d))))
(defn date-time->str [d]
(when d
(format/unparse pretty-long d)))
(defn str->date [d f]
(when d
(format/parse f d)))
(defmulti do-bind (fn [a {:keys [type] :as x}]
type))