Populate unpaired key.
This commit is contained in:
		
							parent
							
								
									dc49fcc9a0
								
							
						
					
					
						commit
						2b0ddb18c2
					
				
					 1 changed files with 14 additions and 9 deletions
				
			
		|  | @ -79,24 +79,28 @@ | |||
| 		     (string->number vs))))) | ||||
| 	 varsym-id))) | ||||
| 
 | ||||
|  ;; Special comparator with JendaSAP hack | ||||
|  ;; Special comparator (originally with JendaSAP hack) | ||||
|  (define (compare-member-id member-id bank-varsym) | ||||
|    (eq? member-id bank-varsym)) | ||||
| 
 | ||||
|  ;; Merges bank account statement into members payment keys. The | ||||
|  ;; payment key will be a list of transactions. | ||||
|  (define (members-payments-process-bank mb ba) | ||||
|  (define (members-payments-process-bank mb ba last-checked) | ||||
|    (let loop ((mb mb) | ||||
| 	      (transactions (bank-account-transactions ba))) | ||||
|      (if (null? transactions) | ||||
| 	 mb | ||||
| 	 (let* ((transaction (car transactions)) | ||||
| 		(varsym-id (transaction-extract-member-id transaction))) | ||||
| 	   (loop (members-base-update mb | ||||
| 				      (lambda (mr) | ||||
| 					(compare-member-id (member-id mr) varsym-id)) | ||||
| 				      (lambda (mr) | ||||
| 					(member-record-add-payment mr transaction))) | ||||
| 		(varsym-id (transaction-extract-member-id transaction)) | ||||
| 		(member (find-member-by-id mb varsym-id))) | ||||
| 	   (loop (if member | ||||
| 		     (members-base-update | ||||
| 		      mb | ||||
| 		      (lambda (mr) | ||||
| 			(compare-member-id (member-id mr) varsym-id)) | ||||
| 		      (lambda (mr) | ||||
| 			(member-record-add-payment mr transaction))) | ||||
| 		     (members-base-add-unpaired mb transaction)) | ||||
| 		 (cdr transactions)))))) | ||||
| 
 | ||||
|  ;; Reads the payments | ||||
|  | @ -138,7 +142,8 @@ | |||
| 	      (accounts (if acc-list (load-accounts acc-list dir) #f)) | ||||
| 	      (last-checked (get-latest-checked-id checked-fn))) | ||||
| 	 (if accounts | ||||
| 	     (let ((mbp (foldl members-payments-process-bank | ||||
| 	     (let ((mbp (foldl (lambda (mb ba) | ||||
| 				 (members-payments-process-bank mb ba last-checked)) | ||||
| 			       mb | ||||
| 			       (filter identity | ||||
| 				       accounts)))) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue