Skip to content

Commit 5e46514

Browse files
Merge 25.11 to develop
2 parents e434596 + 6e45a7f commit 5e46514

27 files changed

+1866
-825
lines changed

resources/queries/targetedms/InstrumentBilling.sql

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,9 @@ SELECT
2828
TIMESTAMPDIFF('SQL_TSI_HOUR', StartTime, EndTime) * ir.Fee + ir.rateType.setupFee AS TotalCost,
2929
iup.PaymentMethod.UWBudgetNumber AS Payment_Method,
3030
iup.PaymentMethod.Name AS Payment_Method_Name,
31-
iup.PercentPayment
31+
iup.PercentPayment,
32+
((TIMESTAMPDIFF('SQL_TSI_HOUR', StartTime, EndTime) * Fee + ir.rateType.setupFee) * PercentPayment / 100) AS AmountBilled
3233

3334
FROM targetedms.InstrumentSchedule i
34-
LEFT OUTER JOIN targetedms.InstrumentRate ir ON i.Instrument = ir.Instrument
35-
LEFT OUTER JOIN targetedms.InstrumentUsagePayment iup ON i.Id = iup.InstrumentScheduleId
35+
INNER JOIN targetedms.InstrumentRate ir ON i.Instrument = ir.Instrument
36+
INNER JOIN targetedms.InstrumentUsagePayment iup ON i.Id = iup.InstrumentScheduleId

resources/queries/targetedms/InstrumentBillingByMonth.sql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ SELECT
3131
Payment_Method,
3232
Payment_Method_Name,
3333
PercentPayment,
34-
((HoursInRange * Fee + Setup_Cost) * PercentPayment / 100) AS AmountBilled
34+
-- Only include the setup fee when the beginning of the reservation falls within the report's time window
35+
((HoursInRange * Fee + (CASE WHEN StartDate <= StartBillDate THEN 0 ELSE Setup_Cost END)) * PercentPayment / 100) AS AmountBilled
3536

3637
FROM
3738
(SELECT

resources/queries/targetedms/instrumentBilling.query.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,17 @@
22
<metadata>
33
<tables xmlns="http://labkey.org/data/xml">
44
<table tableName="instrumentBilling" tableDbType="TABLE">
5+
<tableTitle>Instrument Billing</tableTitle>
56
<columns>
67
<column columnName="Hours">
78
<formatString>0.0</formatString>
89
</column>
910
<column columnName="TotalCost">
1011
<formatString>$#,##0.00</formatString>
1112
</column>
13+
<column columnName="AmountBilled">
14+
<formatString>$#,##0.00</formatString>
15+
</column>
1216
</columns>
1317
</table>
1418
</tables>

resources/queries/targetedms/instrumentBillingByMonth.query.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<metadata>
33
<tables xmlns="http://labkey.org/data/xml">
44
<table tableName="instrumentBillingByMonth" tableDbType="TABLE">
5+
<tableTitle>Instrument Billing by Month</tableTitle>
56
<columns>
67
<column columnName="HoursInRange">
78
<formatString>0.0</formatString>

resources/queries/targetedms/userProjects.query.xml

Lines changed: 0 additions & 10 deletions
This file was deleted.

resources/queries/targetedms/userProjects.sql

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
-- Don't allow duplicate project/researcher mapping rows
2+
DELETE FROM targetedms.projectresearcher WHERE Id NOT IN (SELECT MIN(Id) FROM targetedms.projectresearcher GROUP BY project, researcher);
3+
4+
ALTER TABLE targetedms.projectResearcher
5+
ADD CONSTRAINT UQ_projectResearcher_project_researcher UNIQUE (project, researcher);
6+
7+
DROP INDEX targetedms.IDX_projectResearcher_Project;

resources/views/instrumentSchedulingAdmin.html

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,4 @@
1212
<div><a href="query-executeQuery.view?schemaName=targetedms&query.queryName=rateType">Edit rate types</a> (setup fee)</div>
1313
<div><a href="query-executeQuery.view?schemaName=targetedms&query.queryName=instrumentRate">Edit rate list</a> (assigns a setup fee and an hourly rate to instruments)</div>
1414
<div><a href="query-executeQuery.view?schemaName=targetedms&query.queryName=MSProject">Edit project list</a></div>
15-
<div><a href="query-executeQuery.view?schemaName=targetedms&query.queryName=projectResearcher">Edit project/researcher mapping</a> (attaches users to projects)</div>
1615
<div><a href="query-executeQuery.view?schemaName=targetedms&query.queryName=paymentMethod">Edit payment method list</a></div>
17-
<div><a href="query-executeQuery.view?schemaName=targetedms&query.queryName=projectPaymentMethod">Edit project/payment method mapping</a></div>

resources/views/msProject.html

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,11 @@
77
renderTo: 'ms-project',
88
frame: 'none',
99
schemaName: 'targetedms',
10-
queryName: 'userProjects',
11-
containerFilter: LABKEY.Query.containerFilter.currentAndSubfolders
10+
queryName: 'msProject',
11+
containerFilter: LABKEY.Query.containerFilter.currentAndSubfolders,
12+
filters: [
13+
LABKEY.Filter.create('ProjectMember', true)
14+
]
1215
};
1316
// admins can see all projects, non-admins can only see projects they are a researcher on
1417
new LABKEY.QueryWebPart(config);

resources/views/msProjectDetails.html

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
1-
<div id="project-details">
2-
</div>
3-
<div id="schedule-instrument-time">
4-
</div>
1+
<div id="project-details"></div>
2+
<div id="schedule-instrument-time"></div>
53
<br/>
6-
<div id="payment-methods">
7-
</div>
8-
<div id="payment-summary">
9-
</div>
4+
<div id="researchers"></div>
5+
<div id="payment-methods"></div>
6+
<div id="payment-summary"></div>
107

118
<script type="text/javascript" nonce="<%=scriptNonce%>">
129
$(function() {
@@ -105,6 +102,16 @@
105102
containerFilter: LABKEY.Query.containerFilter.currentAndSubfolders
106103
});
107104

105+
new LABKEY.QueryWebPart({
106+
renderTo: 'researchers',
107+
frame: 'portal',
108+
title: 'Researchers for this Project',
109+
schemaName: 'targetedms',
110+
queryName: 'projectResearcher',
111+
filterArray: [LABKEY.Filter.create('project', project, LABKEY.Filter.Types.EQUAL)],
112+
containerFilter: LABKEY.Query.containerFilter.currentAndSubfolders
113+
});
114+
108115
const scheduleInstrumentTimeEl = document.getElementById('schedule-instrument-time');
109116
const scheduleUrlParams = {
110117
project: LABKEY.ActionURL.getParameter('project')

0 commit comments

Comments
 (0)