lots of fixes to sorting and adding dates on checks.
This commit is contained in:
@@ -50,20 +50,33 @@
|
||||
(map db->clj)
|
||||
(map data->fields)))
|
||||
|
||||
#_(defn add-sort-by [q sort-by asc]
|
||||
(def all-keys #{:company-id :vendor-id :id :status :date :s3-uuid :s3-key :s3-url :check-number :memo :amount :paid-to :bank-account-id})
|
||||
|
||||
(defn add-sort-by [q sort-by asc]
|
||||
(println sort-by)
|
||||
(let [sort-by-key (keyword sort-by)]
|
||||
(cond (all-keys sort-by-key)
|
||||
(helpers/merge-order-by q [sort-by-key (when-not asc :desc)])
|
||||
(cond (nil? sort-by)
|
||||
(helpers/merge-order-by q [:date])
|
||||
|
||||
(= :date sort-by-key)
|
||||
(helpers/merge-order-by q [:date (when-not asc :desc)])
|
||||
|
||||
(all-keys sort-by-key)
|
||||
(helpers/merge-order-by q
|
||||
[sort-by-key (when-not asc :desc)]
|
||||
[:date])
|
||||
|
||||
(= :vendor sort-by-key)
|
||||
(-> q
|
||||
(helpers/merge-left-join [:vendors :v] [:= :v.id :invoices.vendor-id] )
|
||||
(helpers/merge-order-by [:v.name (when-not asc :desc)]))
|
||||
(helpers/merge-left-join [:vendors :v] [:= :v.id :checks.vendor-id] )
|
||||
(helpers/merge-order-by [:v.name (when-not asc :desc)]
|
||||
[:date]))
|
||||
|
||||
(= :company sort-by-key)
|
||||
(-> q
|
||||
(helpers/merge-left-join [:companies :c] [:= :c.id :invoices.company-id] )
|
||||
(helpers/merge-order-by [:c.name (when-not asc :desc)]))
|
||||
(helpers/merge-left-join [:companies :c] [:= :c.id :checks.company-id] )
|
||||
(helpers/merge-order-by [:c.name (when-not asc :desc)]
|
||||
[:date]))
|
||||
|
||||
:else
|
||||
q)))
|
||||
@@ -82,7 +95,7 @@
|
||||
(defn get-graphql [{:keys [start sort-by asc id limit] :as args :or {limit 20}}]
|
||||
(query
|
||||
(cond-> (base-graphql args)
|
||||
#_#_(not (nil? sort-by) ) (add-sort-by sort-by asc)
|
||||
true (add-sort-by sort-by asc)
|
||||
true (assoc :limit limit)
|
||||
start (assoc :offset start))))
|
||||
|
||||
|
||||
@@ -95,18 +95,28 @@
|
||||
|
||||
(defn add-sort-by [q sort-by asc]
|
||||
(let [sort-by-key (keyword sort-by)]
|
||||
(cond (all-keys sort-by-key)
|
||||
(helpers/merge-order-by q [sort-by-key (when-not asc :desc)])
|
||||
(cond (nil? sort-by)
|
||||
(helpers/merge-order-by q [:date])
|
||||
|
||||
(= :date sort-by-key)
|
||||
(helpers/merge-order-by q [:date (when-not asc :desc)])
|
||||
|
||||
(all-keys sort-by-key)
|
||||
(helpers/merge-order-by q
|
||||
[sort-by-key (when-not asc :desc)]
|
||||
[:date])
|
||||
|
||||
(= :vendor sort-by-key)
|
||||
(-> q
|
||||
(helpers/merge-left-join [:vendors :v] [:= :v.id :invoices.vendor-id] )
|
||||
(helpers/merge-order-by [:v.name (when-not asc :desc)]))
|
||||
(helpers/merge-order-by [:v.name (when-not asc :desc)]
|
||||
[:date]))
|
||||
|
||||
(= :company sort-by-key)
|
||||
(-> q
|
||||
(helpers/merge-left-join [:companies :c] [:= :c.id :invoices.company-id] )
|
||||
(helpers/merge-order-by [:c.name (when-not asc :desc)]))
|
||||
(helpers/merge-order-by [:c.name (when-not asc :desc)]
|
||||
[:date]))
|
||||
|
||||
:else
|
||||
q)))
|
||||
@@ -123,7 +133,7 @@
|
||||
(defn get-graphql [{:keys [start sort-by asc limit] :as args :or {limit 20}}]
|
||||
(query
|
||||
(cond-> (base-graphql args)
|
||||
(not (nil? sort-by) ) (add-sort-by sort-by asc)
|
||||
true (add-sort-by sort-by asc)
|
||||
true (assoc :limit limit)
|
||||
start (assoc :offset start))))
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
[auto-ap.db.invoices :as invoices]
|
||||
[auto-ap.utils :refer [by]]
|
||||
[auto-ap.db.companies :as companies]
|
||||
[auto-ap.time :refer [parse normal-date]]))
|
||||
[auto-ap.time :refer [parse normal-date iso-date]]))
|
||||
|
||||
(defn get-vendor-for-check [context args value]
|
||||
(->graphql
|
||||
@@ -49,6 +49,7 @@
|
||||
:s3-key nil
|
||||
:s3-url nil
|
||||
:check-number (:check_number args)
|
||||
:date (parse (:date args) iso-date)
|
||||
:amount (:amount args)
|
||||
:bank-account-id (:bank_account_id args)
|
||||
:vendor-id (:vendor-id invoice)
|
||||
|
||||
@@ -74,10 +74,11 @@
|
||||
|
||||
|
||||
[[:cell {:colspan 6 :leading 50} [:spacer]]
|
||||
[:cell {:colspan 6 :rowspan 2} (when (:signature-file company)
|
||||
[:cell {:colspan 6 :rowspan 2} (if (:signature-file company)
|
||||
[:image { :top-margin 90 :xscale 0.30 :yscale 0.30 :align :center}
|
||||
|
||||
(:signature-file company)])]]
|
||||
(:signature-file company)]
|
||||
[:spacer])]]
|
||||
|
||||
[[:cell {:size 9 } "MEMO"]
|
||||
[:cell {:colspan 5} memo [:line {:line-width 0.15 :color [50 50 50]}]]
|
||||
@@ -193,6 +194,7 @@
|
||||
:memo memo
|
||||
:vendor-id (:id vendor)
|
||||
:company-id (:id company)
|
||||
:date (time/now)
|
||||
:pdf-data {:vendor vendor
|
||||
:paid-to (:name vendor)
|
||||
:amount (reduce + 0 (map (comp invoice-amounts :id) invoices))
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
"Vendor"]
|
||||
[sorted-column {:on-sort opc
|
||||
:style {:width percentage-size :cursor "pointer"}
|
||||
:sort-key "invoice-number"
|
||||
:sort-key "check-number"
|
||||
:sort-by sort-by
|
||||
:asc asc}
|
||||
"Check #"]
|
||||
@@ -127,7 +127,7 @@
|
||||
"Date"]
|
||||
[sorted-column {:on-sort opc
|
||||
:style {:width "8em" :cursor "pointer"}
|
||||
:sort-key "total"
|
||||
:sort-key "amount"
|
||||
:sort-by sort-by
|
||||
:asc asc}
|
||||
"Amount"]
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"terraform_version": "0.11.5",
|
||||
"serial": 27,
|
||||
"serial": 30,
|
||||
"lineage": "9b630886-8cee-a57d-c7a2-4f19f13f9c51",
|
||||
"modules": [
|
||||
{
|
||||
@@ -497,13 +497,13 @@
|
||||
"aws_sns_topic.yodlee_topic"
|
||||
],
|
||||
"primary": {
|
||||
"id": "arn:aws:sns:us-east-1:679918342773:events-yodlee-prod:77f8b52d-4e96-4c8a-82c2-964e85fb7403",
|
||||
"id": "arn:aws:sns:us-east-1:679918342773:events-yodlee-prod:b73ce5a7-4a49-4617-9b36-f55e53031dd0",
|
||||
"attributes": {
|
||||
"arn": "arn:aws:sns:us-east-1:679918342773:events-yodlee-prod:77f8b52d-4e96-4c8a-82c2-964e85fb7403",
|
||||
"arn": "arn:aws:sns:us-east-1:679918342773:events-yodlee-prod:b73ce5a7-4a49-4617-9b36-f55e53031dd0",
|
||||
"confirmation_timeout_in_minutes": "1",
|
||||
"endpoint": "https://app.integreatconsult.com/api/events/yodlee-import",
|
||||
"endpoint_auto_confirms": "true",
|
||||
"id": "arn:aws:sns:us-east-1:679918342773:events-yodlee-prod:77f8b52d-4e96-4c8a-82c2-964e85fb7403",
|
||||
"id": "arn:aws:sns:us-east-1:679918342773:events-yodlee-prod:b73ce5a7-4a49-4617-9b36-f55e53031dd0",
|
||||
"protocol": "https",
|
||||
"raw_message_delivery": "false",
|
||||
"topic_arn": "arn:aws:sns:us-east-1:679918342773:events-yodlee-prod"
|
||||
@@ -545,11 +545,11 @@
|
||||
"type": "aws_caller_identity",
|
||||
"depends_on": [],
|
||||
"primary": {
|
||||
"id": "2018-07-17 00:28:02.848245172 +0000 UTC",
|
||||
"id": "2018-07-27 17:35:27.694945812 +0000 UTC",
|
||||
"attributes": {
|
||||
"account_id": "679918342773",
|
||||
"arn": "arn:aws:iam::679918342773:user/bryce",
|
||||
"id": "2018-07-17 00:28:02.848245172 +0000 UTC",
|
||||
"id": "2018-07-27 17:35:27.694945812 +0000 UTC",
|
||||
"user_id": "AIDAJPUJFTOKO4IRADMV4"
|
||||
},
|
||||
"meta": {},
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"terraform_version": "0.11.5",
|
||||
"serial": 27,
|
||||
"serial": 30,
|
||||
"lineage": "9b630886-8cee-a57d-c7a2-4f19f13f9c51",
|
||||
"modules": [
|
||||
{
|
||||
@@ -53,6 +53,28 @@
|
||||
"deposed": [],
|
||||
"provider": "provider.aws"
|
||||
},
|
||||
"aws_cloudwatch_event_rule.yodlee_rule": {
|
||||
"type": "aws_cloudwatch_event_rule",
|
||||
"depends_on": [
|
||||
"aws_iam_role.yodlee_role"
|
||||
],
|
||||
"primary": {
|
||||
"id": "schedule-yodlee-import-prod",
|
||||
"attributes": {
|
||||
"arn": "arn:aws:events:us-east-1:679918342773:rule/schedule-yodlee-import-prod",
|
||||
"description": "",
|
||||
"id": "schedule-yodlee-import-prod",
|
||||
"is_enabled": "true",
|
||||
"name": "schedule-yodlee-import-prod",
|
||||
"role_arn": "arn:aws:iam::679918342773:role/yodlee-role-prod",
|
||||
"schedule_expression": "rate(4 hours)"
|
||||
},
|
||||
"meta": {},
|
||||
"tainted": false
|
||||
},
|
||||
"deposed": [],
|
||||
"provider": "provider.aws"
|
||||
},
|
||||
"aws_cloudwatch_event_target.sns": {
|
||||
"type": "aws_cloudwatch_event_target",
|
||||
"depends_on": [
|
||||
@@ -76,6 +98,29 @@
|
||||
"deposed": [],
|
||||
"provider": "provider.aws"
|
||||
},
|
||||
"aws_cloudwatch_event_target.yodlee_sns_target": {
|
||||
"type": "aws_cloudwatch_event_target",
|
||||
"depends_on": [
|
||||
"aws_cloudwatch_event_rule.yodlee_rule",
|
||||
"aws_sns_topic.yodlee_topic"
|
||||
],
|
||||
"primary": {
|
||||
"id": "schedule-yodlee-import-prod-SendToSNS",
|
||||
"attributes": {
|
||||
"arn": "arn:aws:sns:us-east-1:679918342773:events-yodlee-prod",
|
||||
"id": "schedule-yodlee-import-prod-SendToSNS",
|
||||
"input": "",
|
||||
"input_path": "",
|
||||
"role_arn": "",
|
||||
"rule": "schedule-yodlee-import-prod",
|
||||
"target_id": "SendToSNS"
|
||||
},
|
||||
"meta": {},
|
||||
"tainted": false
|
||||
},
|
||||
"deposed": [],
|
||||
"provider": "provider.aws"
|
||||
},
|
||||
"aws_iam_access_key.app_user": {
|
||||
"type": "aws_iam_access_key",
|
||||
"depends_on": [
|
||||
@@ -117,6 +162,45 @@
|
||||
"deposed": [],
|
||||
"provider": "provider.aws"
|
||||
},
|
||||
"aws_iam_role.yodlee_role": {
|
||||
"type": "aws_iam_role",
|
||||
"depends_on": [],
|
||||
"primary": {
|
||||
"id": "yodlee-role-prod",
|
||||
"attributes": {
|
||||
"arn": "arn:aws:iam::679918342773:role/yodlee-role-prod",
|
||||
"assume_role_policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"events.amazonaws.com\"},\"Action\":\"sts:AssumeRole\"}]}",
|
||||
"create_date": "2018-07-17T00:29:10Z",
|
||||
"force_detach_policies": "false",
|
||||
"id": "yodlee-role-prod",
|
||||
"name": "yodlee-role-prod",
|
||||
"path": "/",
|
||||
"unique_id": "AROAIFTHATSTTTW472YFY"
|
||||
},
|
||||
"meta": {},
|
||||
"tainted": false
|
||||
},
|
||||
"deposed": [],
|
||||
"provider": "provider.aws"
|
||||
},
|
||||
"aws_iam_role_policy_attachment.allow_schedule_yodlee": {
|
||||
"type": "aws_iam_role_policy_attachment",
|
||||
"depends_on": [
|
||||
"aws_iam_role.yodlee_role"
|
||||
],
|
||||
"primary": {
|
||||
"id": "yodlee-role-prod-20180717002911573600000001",
|
||||
"attributes": {
|
||||
"id": "yodlee-role-prod-20180717002911573600000001",
|
||||
"policy_arn": "arn:aws:iam::aws:policy/AmazonSNSFullAccess",
|
||||
"role": "yodlee-role-prod"
|
||||
},
|
||||
"meta": {},
|
||||
"tainted": false
|
||||
},
|
||||
"deposed": [],
|
||||
"provider": "provider.aws"
|
||||
},
|
||||
"aws_iam_role_policy_attachment.allow_send": {
|
||||
"type": "aws_iam_role_policy_attachment",
|
||||
"depends_on": [
|
||||
@@ -172,6 +256,44 @@
|
||||
"deposed": [],
|
||||
"provider": "provider.aws"
|
||||
},
|
||||
"aws_s3_bucket.data": {
|
||||
"type": "aws_s3_bucket",
|
||||
"depends_on": [],
|
||||
"primary": {
|
||||
"id": "data.prod.app.integreatconsult.com",
|
||||
"attributes": {
|
||||
"acceleration_status": "",
|
||||
"acl": "private",
|
||||
"arn": "arn:aws:s3:::data.prod.app.integreatconsult.com",
|
||||
"bucket": "data.prod.app.integreatconsult.com",
|
||||
"bucket_domain_name": "data.prod.app.integreatconsult.com.s3.amazonaws.com",
|
||||
"force_destroy": "false",
|
||||
"hosted_zone_id": "Z3AQBSTGFYJSTF",
|
||||
"id": "data.prod.app.integreatconsult.com",
|
||||
"logging.#": "0",
|
||||
"policy": "{\"Id\":\"Policy1526084187222\",\"Statement\":[{\"Action\":\"s3:GetObject\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Resource\":\"arn:aws:s3:::data.prod.app.integreatconsult.com/*\",\"Sid\":\"Stmt1526084185514\"}],\"Version\":\"2012-10-17\"}",
|
||||
"region": "us-east-1",
|
||||
"replication_configuration.#": "0",
|
||||
"request_payer": "BucketOwner",
|
||||
"server_side_encryption_configuration.#": "0",
|
||||
"tags.%": "0",
|
||||
"versioning.#": "1",
|
||||
"versioning.0.enabled": "false",
|
||||
"versioning.0.mfa_delete": "false",
|
||||
"website.#": "1",
|
||||
"website.0.error_document": "",
|
||||
"website.0.index_document": "index.html",
|
||||
"website.0.redirect_all_requests_to": "",
|
||||
"website.0.routing_rules": "",
|
||||
"website_domain": "s3-website-us-east-1.amazonaws.com",
|
||||
"website_endpoint": "data.prod.app.integreatconsult.com.s3-website-us-east-1.amazonaws.com"
|
||||
},
|
||||
"meta": {},
|
||||
"tainted": false
|
||||
},
|
||||
"deposed": [],
|
||||
"provider": "provider.aws"
|
||||
},
|
||||
"aws_s3_bucket.invoices": {
|
||||
"type": "aws_s3_bucket",
|
||||
"depends_on": [
|
||||
@@ -315,6 +437,37 @@
|
||||
"deposed": [],
|
||||
"provider": "provider.aws"
|
||||
},
|
||||
"aws_sns_topic.yodlee_topic": {
|
||||
"type": "aws_sns_topic",
|
||||
"depends_on": [],
|
||||
"primary": {
|
||||
"id": "arn:aws:sns:us-east-1:679918342773:events-yodlee-prod",
|
||||
"attributes": {
|
||||
"application_failure_feedback_role_arn": "",
|
||||
"application_success_feedback_role_arn": "",
|
||||
"application_success_feedback_sample_rate": "0",
|
||||
"arn": "arn:aws:sns:us-east-1:679918342773:events-yodlee-prod",
|
||||
"delivery_policy": "",
|
||||
"display_name": "",
|
||||
"http_failure_feedback_role_arn": "",
|
||||
"http_success_feedback_role_arn": "",
|
||||
"http_success_feedback_sample_rate": "0",
|
||||
"id": "arn:aws:sns:us-east-1:679918342773:events-yodlee-prod",
|
||||
"lambda_failure_feedback_role_arn": "",
|
||||
"lambda_success_feedback_role_arn": "",
|
||||
"lambda_success_feedback_sample_rate": "0",
|
||||
"name": "events-yodlee-prod",
|
||||
"policy": "{\"Version\":\"2008-10-17\",\"Id\":\"__default_policy_ID\",\"Statement\":[{\"Sid\":\"__default_statement_ID\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":[\"SNS:Publish\",\"SNS:RemovePermission\",\"SNS:SetTopicAttributes\",\"SNS:DeleteTopic\",\"SNS:ListSubscriptionsByTopic\",\"SNS:GetTopicAttributes\",\"SNS:Receive\",\"SNS:AddPermission\",\"SNS:Subscribe\"],\"Resource\":\"arn:aws:sns:us-east-1:679918342773:yodlee\",\"Condition\":{\"StringEquals\":{\"AWS:SourceOwner\":\"679918342773\"}}},{\"Sid\":\"__console_pub_0\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":\"SNS:Publish\",\"Resource\":\"arn:aws:sns:us-east-1:679918342773:yodlee\"}]}",
|
||||
"sqs_failure_feedback_role_arn": "",
|
||||
"sqs_success_feedback_role_arn": "",
|
||||
"sqs_success_feedback_sample_rate": "0"
|
||||
},
|
||||
"meta": {},
|
||||
"tainted": false
|
||||
},
|
||||
"deposed": [],
|
||||
"provider": "provider.aws"
|
||||
},
|
||||
"aws_sns_topic_subscription.send_reminders_to_service": {
|
||||
"type": "aws_sns_topic_subscription",
|
||||
"depends_on": [
|
||||
@@ -338,6 +491,29 @@
|
||||
"deposed": [],
|
||||
"provider": "provider.aws"
|
||||
},
|
||||
"aws_sns_topic_subscription.trigger_yodlee_import": {
|
||||
"type": "aws_sns_topic_subscription",
|
||||
"depends_on": [
|
||||
"aws_sns_topic.yodlee_topic"
|
||||
],
|
||||
"primary": {
|
||||
"id": "arn:aws:sns:us-east-1:679918342773:events-yodlee-prod:77f8b52d-4e96-4c8a-82c2-964e85fb7403",
|
||||
"attributes": {
|
||||
"arn": "arn:aws:sns:us-east-1:679918342773:events-yodlee-prod:77f8b52d-4e96-4c8a-82c2-964e85fb7403",
|
||||
"confirmation_timeout_in_minutes": "1",
|
||||
"endpoint": "https://app.integreatconsult.com/api/events/yodlee-import",
|
||||
"endpoint_auto_confirms": "true",
|
||||
"id": "arn:aws:sns:us-east-1:679918342773:events-yodlee-prod:77f8b52d-4e96-4c8a-82c2-964e85fb7403",
|
||||
"protocol": "https",
|
||||
"raw_message_delivery": "false",
|
||||
"topic_arn": "arn:aws:sns:us-east-1:679918342773:events-yodlee-prod"
|
||||
},
|
||||
"meta": {},
|
||||
"tainted": false
|
||||
},
|
||||
"deposed": [],
|
||||
"provider": "provider.aws"
|
||||
},
|
||||
"aws_sqs_queue.integreat-mail": {
|
||||
"type": "aws_sqs_queue",
|
||||
"depends_on": [
|
||||
@@ -369,11 +545,11 @@
|
||||
"type": "aws_caller_identity",
|
||||
"depends_on": [],
|
||||
"primary": {
|
||||
"id": "2018-04-10 06:39:11.533275039 +0000 UTC",
|
||||
"id": "2018-07-27 17:34:20.686230107 +0000 UTC",
|
||||
"attributes": {
|
||||
"account_id": "679918342773",
|
||||
"arn": "arn:aws:iam::679918342773:user/bryce",
|
||||
"id": "2018-04-10 06:39:11.533275039 +0000 UTC",
|
||||
"id": "2018-07-27 17:34:20.686230107 +0000 UTC",
|
||||
"user_id": "AIDAJPUJFTOKO4IRADMV4"
|
||||
},
|
||||
"meta": {},
|
||||
|
||||
Reference in New Issue
Block a user