lots of fixes to sorting and adding dates on checks.

This commit is contained in:
Bryce Covert
2018-07-27 11:59:33 -07:00
parent 9894bc72b3
commit 90ded7394e
7 changed files with 229 additions and 27 deletions

View File

@@ -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))))

View File

@@ -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))))

View File

@@ -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)

View File

@@ -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))

View File

@@ -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"]

View File

@@ -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": {},

View File

@@ -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": {},