소스 검색

Add percentages to weights in inventory change summary report.

Neal Wilson 10 년 전
부모
커밋
c413baa7b9
1개의 변경된 파일26개의 추가작업 그리고 8개의 파일을 삭제
  1. 26
    8
      config/Reports/invchange.xml

+ 26
- 8
config/Reports/invchange.xml 파일 보기

58
 					unitText = "Kg";
58
 					unitText = "Kg";
59
 				}
59
 				}
60
 				var query = new QSqlQuery();
60
 				var query = new QSqlQuery();
61
-					var q = "WITH q AS (SELECT id, name, reference, COALESCE((SELECT balance FROM item_history(id) WHERE time = (SELECT max(time) FROM item_history(id) WHERE time < :sd1)), 0)/:c1 AS starting_balance, COALESCE((SELECT sum(quantity) FROM purchase WHERE item = id AND time >= :sd2 AND time < :ed1 ::date + interval '1 day'), 0)/:c2 AS purchase, COALESCE((SELECT sum(quantity) FROM use WHERE item = id AND time >= :sd3 AND time < :ed2 ::date + interval '1 day'), 0)/:c3 AS use, COALESCE((SELECT sum(quantity) FROM sale WHERE item = id AND time >= :sd4 AND time < :ed3 ::date + interval '1 day'), 0)/:c4 AS sale, (SElECT balance FROM item_history(id) WHERE time = (SELECT max(time) FROM item_history(id) WHERE time < :ed4 ::date + interval '1 day'))/:c5 AS quantity, (SELECT sum(cost * quantity) / sum(quantity) FROM purchase WHERE item = id) AS unit_cost FROM coffees WHERE id IN (SELECT item FROM purchase WHERE time >= :sd6 AND time < :ed5 ::date + interval '1 day') OR id IN (SELECT id FROM items WHERE (SELECT balance FROM item_history(id) WHERE time = (SELECT max(time) FROM item_history(id) WHERE time < :ed6 ::date + interval '1 day')) > 0) OR id IN (SELECT DISTINCT item FROM all_transactions WHERE time > :sd7 AND time < :ed7 ::date + interval '1 day')) SELECT *, (starting_balance + purchase - use - sale - quantity)/:c7 AS adjustment, starting_balance * unit_cost * :c8 AS starting_cost, purchase * unit_cost * :c9 AS purchase_cost, use * unit_cost * :c10 AS use_cost, sale * unit_cost * :c11 AS sale_cost, quantity * unit_cost * :c12 AS quantity_cost, (starting_balance + purchase - use - sale - quantity) * unit_cost * :c13 AS adjustment_cost FROM q ORDER BY name";
61
+					var q = "WITH q AS (SELECT id, name, reference, COALESCE((SELECT balance FROM item_history(id) WHERE time = (SELECT max(time) FROM item_history(id) WHERE time < :sd1)), 0)/:c1 AS starting_balance, COALESCE((SELECT sum(quantity) FROM purchase WHERE item = id AND time >= :sd2 AND time < :ed1 ::date + interval '1 day'), 0)/:c2 AS purchase, COALESCE((SELECT sum(quantity) FROM use WHERE item = id AND time >= :sd3 AND time < :ed2 ::date + interval '1 day'), 0)/:c3 AS use, COALESCE((SELECT sum(quantity) FROM sale WHERE item = id AND time >= :sd4 AND time < :ed3 ::date + interval '1 day'), 0)/:c4 AS sale, (SElECT balance FROM item_history(id) WHERE time = (SELECT max(time) FROM item_history(id) WHERE time < :ed4 ::date + interval '1 day'))/:c5 AS quantity, (SELECT sum(cost * quantity) / sum(quantity) FROM purchase WHERE item = id) AS unit_cost FROM coffees WHERE id IN (SELECT item FROM purchase WHERE time >= :sd6 AND time < :ed5 ::date + interval '1 day') OR id IN (SELECT id FROM items WHERE (SELECT balance FROM item_history(id) WHERE time = (SELECT max(time) FROM item_history(id) WHERE time < :ed6 ::date + interval '1 day')) > 0) OR id IN (SELECT DISTINCT item FROM all_transactions WHERE time > :sd7 AND time < :ed7 ::date + interval '1 day')) SELECT *, (starting_balance + purchase - use - sale - quantity)/:c7 AS adjustment, starting_balance * unit_cost * :c8 AS starting_cost, purchase * unit_cost * :c9 AS purchase_cost, use * unit_cost * :c10 AS use_cost, sale * unit_cost * :c11 AS sale_cost, quantity * unit_cost * :c12 AS quantity_cost, (starting_balance + purchase - use - sale - quantity) * unit_cost * :c13 AS adjustment_cost, (SELECT sum(quantity)/:c6 FROM purchase WHERE item = id) AS total_purchase FROM q ORDER BY name";
62
 				query.prepare(q);
62
 				query.prepare(q);
63
 				query.bind(":sd1", startDate);
63
 				query.bind(":sd1", startDate);
64
 				query.bind(":sd2", startDate);
64
 				query.bind(":sd2", startDate);
78
 				query.bind(":c3", conversion);
78
 				query.bind(":c3", conversion);
79
 				query.bind(":c4", conversion);
79
 				query.bind(":c4", conversion);
80
 				query.bind(":c5", conversion);
80
 				query.bind(":c5", conversion);
81
-
81
+				query.bind(":c6", conversion);
82
 				query.bind(":c7", conversion);
82
 				query.bind(":c7", conversion);
83
 				query.bind(":c8", conversion);
83
 				query.bind(":c8", conversion);
84
 				query.bind(":c9", conversion);
84
 				query.bind(":c9", conversion);
133
 					output.writeEndElement();
133
 					output.writeEndElement();
134
 					output.writeTextElement("td", query.value(1)); //Coffee
134
 					output.writeTextElement("td", query.value(1)); //Coffee
135
 					output.writeTextElement("td", query.value(2)); //Reference
135
 					output.writeTextElement("td", query.value(2)); //Reference
136
-					output.writeTextElement("td", parseFloat(query.value(3)).toFixed(2)); //Starting Wt
136
+					output.writeStartElement("td"); //Starting Wt
137
+					output.writeAttribute("title", (parseFloat(query.value(3))/parseFloat(query.value(16)) * 100).toFixed(0) + "%");
138
+					output.writeCDATA(parseFloat(query.value(3)).toFixed(2));
139
+					output.writeEndElement(); //End of Starting Wt.
137
 					output.writeTextElement("td", parseFloat(query.value(10)).toFixed(2)); //Starting Cost
140
 					output.writeTextElement("td", parseFloat(query.value(10)).toFixed(2)); //Starting Cost
138
-					output.writeTextElement("td", parseFloat(query.value(4)).toFixed(2)); //Purchase Wt
141
+					output.writeStartElement("td"); //Purchase Wt
142
+					output.writeAttribute("title", (parseFloat(query.value(4))/parseFloat(query.value(16)) * 100).toFixed(0) + "%");
143
+					output.writeCDATA(parseFloat(query.value(4)).toFixed(2));
144
+					output.writeEndElement(); //End of Purchase Wt
139
 					output.writeTextElement("td", parseFloat(query.value(11)).toFixed(2)); //Purchase Cost
145
 					output.writeTextElement("td", parseFloat(query.value(11)).toFixed(2)); //Purchase Cost
140
-					output.writeTextElement("td", parseFloat(query.value(5)).toFixed(2)); //Use Wt
146
+					output.writeStartElement("td"); //Use Wt
147
+					output.writeAttribute("title", (parseFloat(query.value(5))/parseFloat(query.value(16)) * 100).toFixed(0) + "%");
148
+					output.writeCDATA(parseFloat(query.value(5)).toFixed(2));
149
+					output.writeEndElement(); //End of Use Wt
141
 					output.writeTextElement("td", parseFloat(query.value(12)).toFixed(2)); //Use Cost
150
 					output.writeTextElement("td", parseFloat(query.value(12)).toFixed(2)); //Use Cost
142
-					output.writeTextElement("td", parseFloat(query.value(6)).toFixed(2)); //Sale Wt
151
+					output.writeStartElement("td"); //Sale Wt
152
+					output.writeAttribute("title", (parseFloat(query.value(6))/parseFloat(query.value(16)) * 100).toFixed(0) + "%");
153
+					output.writeCDATA(parseFloat(query.value(6)).toFixed(2));
154
+					output.writeEndElement(); //End of Sale Wt
143
 					output.writeTextElement("td", parseFloat(query.value(13)).toFixed(2)); //Sale Cost
155
 					output.writeTextElement("td", parseFloat(query.value(13)).toFixed(2)); //Sale Cost
144
-					output.writeTextElement("td", parseFloat(query.value(9)).toFixed(2)); //Adjustment Wt
156
+					output.writeStartElement("td"); //Adjustment Wt
157
+					output.writeAttribute("title", (parseFloat(query.value(9))/parseFloat(query.value(16)) * 100).toFixed(0) + "%");
158
+					output.writeCDATA(parseFloat(query.value(9)).toFixed(2));
159
+					output.writeEndElement(); //Adjustment Wt
145
 					output.writeTextElement("td", parseFloat(query.value(15)).toFixed(2)); //Adjustment Cost
160
 					output.writeTextElement("td", parseFloat(query.value(15)).toFixed(2)); //Adjustment Cost
146
-					output.writeTextElement("td", parseFloat(query.value(7)).toFixed(2)); //Ending Wt
161
+					output.writeStartElement("td"); //Ending Wt
162
+					output.writeAttribute("title", (parseFloat(query.value(7))/parseFloat(query.value(16)) * 100).toFixed(0) + "%");
163
+					output.writeCDATA(parseFloat(query.value(7)).toFixed(2));
164
+					output.writeEndElement(); //End of Ending Wt
147
 					output.writeTextElement("td", parseFloat(query.value(14)).toFixed(2)); //Ending Cost
165
 					output.writeTextElement("td", parseFloat(query.value(14)).toFixed(2)); //Ending Cost
148
 					output.writeEndElement();
166
 					output.writeEndElement();
149
 					sum3 += parseFloat(query.value(3));
167
 					sum3 += parseFloat(query.value(3));

Loading…
취소
저장