diff --git a/src/clj/auto_ap/datomic/migrate.clj b/src/clj/auto_ap/datomic/migrate.clj index 3e4706d8..fc730938 100644 --- a/src/clj/auto_ap/datomic/migrate.clj +++ b/src/clj/auto_ap/datomic/migrate.clj @@ -1,6 +1,7 @@ (ns auto-ap.datomic.migrate (:require [auto-ap.datomic :refer [uri]] [datomic.api :as d] + [auto-ap.datomic.migrate.add-client-codes :refer [add-client-codes]] [clojure.java.io :as io] [io.rkn.conformity :as c]) (:import [datomic Util]) @@ -48,6 +49,7 @@ :auto-ap/migrate-invoices-payments {:txes-fn 'auto-ap.datomic/migrate-invoices-payments :requires [:auto-ap/migrate-payments :auto-ap/migrate-invoices]} :auto-ap/migrate-invoices-expense-accounts {:txes-fn 'auto-ap.datomic/migrate-invoices-expense-accounts :requires [:auto-ap/migrate-invoices-payments]} :auto-ap/migrate-transactions {:txes-fn 'auto-ap.datomic/migrate-transactions :requires [:auto-ap/migrate-invoices-expense-accounts]} + :auto-ap/add-client-codes {:txes-fn 'auto-ap.datomic.migrate.add-client-codes/add-client-codes :requires [:auto-ap/migrate-transactions]} }] (println "Conforming database...") (println (c/ensure-conforms conn norms-map)) diff --git a/src/clj/auto_ap/datomic/migrate/add_client_codes.clj b/src/clj/auto_ap/datomic/migrate/add_client_codes.clj new file mode 100644 index 00000000..0f41cdaf --- /dev/null +++ b/src/clj/auto_ap/datomic/migrate/add_client_codes.clj @@ -0,0 +1,45 @@ +(ns auto-ap.datomic.migrate.add-client-codes + (:require [auto-ap.datomic :refer [uri]] + [datomic.api :as d])) +(def name->code + (->> + [["Moscini Pizza Inc" "MPI"] + ["Frost Cupcake Factory" "FCF"] + ["Sorelle Italian Bistro" "SIB"] + ["Brian & Erin Skarbek" "BES"] + ["Shared CBC-IBC Expenses" "IBCBC"] + ["Integreat" "INT"] + ["Mama Mia's" "MAM"] + ["Mio Saratoga" "MVSG"] + ["Be Steak A" "BSA"] + ["Jason Skarbek" "JS"] + ["Lefty's East Coast Pizzeria" "LFT"] + ["Orale's" "ORA"] + ["Brown Chicken Brown Cow" "BCBC"] + ["Hiro Mura" "HM"] + ["Mama Lu's Foods" "MLF"] + ["Bella Saratoga" "BSG"] + ["Willow Glen Creamery" "WGC"] + ["Skarbek Law Offices" "SLO"] + ["Mio Vicino - Santa Clara" "MV"] + ["Campbell Brewing Co" "CBC"] + ["Warm Elements" "WE"] + ["Savory Kitchen" "SK"] + ["Demo account" "DEMO"] + ["Roberto's Cantina Inc" "RCI"] + ["Fratello" "FRA"] + ["Whirlygig" "WHG"] + ["Iguanas Burritozilla" "IBC"]] + (into {})) +) +(defn add-client-codes [a] + [(->> (d/query {:query {:find '[?name ?e] + :in ['$] + :where ['[?e :client/name ?name]]} + :args [(d/db a)]}) + (reduce (fn [result [name id]] + (conj result [:db/add id :client/code (name->code name)])) + []) + + + )]) diff --git a/src/clj/auto_ap/graphql.clj b/src/clj/auto_ap/graphql.clj index c004d53f..7c7b72c7 100644 --- a/src/clj/auto_ap/graphql.clj +++ b/src/clj/auto_ap/graphql.clj @@ -38,6 +38,7 @@ :client {:fields {:id {:type :id} :name {:type 'String} + :code {:type 'String} :email {:type 'String} :address {:type :address} :locations {:type '(list String)} diff --git a/src/cljs/auto_ap/events.cljs b/src/cljs/auto_ap/events.cljs index 8b8507a6..17449177 100644 --- a/src/cljs/auto_ap/events.cljs +++ b/src/cljs/auto_ap/events.cljs @@ -41,7 +41,7 @@ :graphql {:token token :query-obj {:venia/queries [[:client - [:id :name :email :locations [:bank-accounts [:id :number :check-number :name :type] ] + [:id :name :code :email :locations [:bank-accounts [:id :number :check-number :name :type] ] [:address [:street1 :street2 :city :state :zip]]]] [:vendor [:id :name :default-expense-account [:primary-contact [:name :phone :email :id]] [:secondary-contact [:id :name :phone :email]] :print-as :invoice-reminder-schedule :code]]]} @@ -64,7 +64,7 @@ (fn [{:keys [db]} [_ token user]] {:graphql {:token token :query-obj {:venia/queries [[:client - [:id :name [:address [:street1 :street2 :city :state :zip]] [:bank-accounts [:id :number :check-number :name :type]]]] + [:id :name :code [:address [:street1 :street2 :city :state :zip]] [:bank-accounts [:id :number :check-number :name :type]]]] [:vendor [:id :name :default-expense-account [:primary-contact [:name :phone :email :id]] [:secondary-contact [:id :name :phone :email]] :print-as :invoice-reminder-schedule :code]]]}