Revision 9a128e8b
Von Sven Schöling vor mehr als 8 Jahren hinzugefügt
SL/Controller/Order.pm | ||
---|---|---|
847 | 847 |
|
848 | 848 |
# recalculate prices and taxes |
849 | 849 |
# |
850 |
# Using the PriceTaxCalclulator. Store linetotals in the item objects.
|
|
850 |
# Using the PriceTaxCalculator. Store linetotals in the item objects. |
|
851 | 851 |
sub _recalc { |
852 | 852 |
my ($self) = @_; |
853 | 853 |
|
... | ... | |
1058 | 1058 |
of work. Also the code should be more readable, more reliable and |
1059 | 1059 |
better to maintain. |
1060 | 1060 |
|
1061 |
=head2 key features
|
|
1061 |
=head2 Key Features
|
|
1062 | 1062 |
|
1063 |
=over 2
|
|
1063 |
=over 4
|
|
1064 | 1064 |
|
1065 | 1065 |
=item * |
1066 |
|
|
1066 | 1067 |
One input row, so that input happens every time at the same place. |
1067 | 1068 |
|
1068 | 1069 |
=item * |
1070 |
|
|
1069 | 1071 |
Use of pickers where possible. |
1070 | 1072 |
|
1071 | 1073 |
=item * |
1074 |
|
|
1072 | 1075 |
Possibility to enter more than one item at once. |
1073 | 1076 |
|
1074 | 1077 |
=item * |
1078 |
|
|
1075 | 1079 |
Save order only on "save" (and "save and delivery order"-workflow). No |
1076 |
hidden save on "print" or "email".
|
|
1080 |
hidden save on "print" or "email". |
|
1077 | 1081 |
|
1078 | 1082 |
=item * |
1083 |
|
|
1079 | 1084 |
Item list in a scrollable area, so that the workflow buttons stay at |
1080 | 1085 |
the bottom. |
1081 | 1086 |
|
1082 | 1087 |
=item * |
1088 |
|
|
1083 | 1089 |
Reordering item rows with drag and drop is possible. Sorting item rows is |
1084 | 1090 |
possible (by partnumber, description, qty, sellprice and discount for now). |
1085 | 1091 |
|
1086 | 1092 |
=item * |
1087 |
No "update" is necessary. All entries and calculations are managed |
|
1088 |
with ajax-calls and the page does only reload on "save". |
|
1093 |
|
|
1094 |
No C<update> is necessary. All entries and calculations are managed |
|
1095 |
with ajax-calls and the page does only reload on C<save>. |
|
1089 | 1096 |
|
1090 | 1097 |
=item * |
1098 |
|
|
1091 | 1099 |
User can see changes immediately, because of the use of java script |
1092 | 1100 |
and ajax. |
1093 | 1101 |
|
... | ... | |
1095 | 1103 |
|
1096 | 1104 |
=head1 CODE |
1097 | 1105 |
|
1098 |
=head2 layout
|
|
1106 |
=head2 Layout
|
|
1099 | 1107 |
|
1100 |
=over 2
|
|
1108 |
=over 4
|
|
1101 | 1109 |
|
1102 |
=item * |
|
1103 |
SL/Controller/Order.pm: the controller |
|
1110 |
=item * C<SL/Controller/Order.pm> |
|
1104 | 1111 |
|
1105 |
=item * |
|
1106 |
template/webpages/order/form.html: main form |
|
1112 |
the controller |
|
1107 | 1113 |
|
1108 |
=item * |
|
1109 |
template/webpages/order/tabs/basic_data.html: main tab for basic_data |
|
1114 |
=item * C<template/webpages/order/form.html> |
|
1110 | 1115 |
|
1111 |
This is the only tab here for now. "linked records" and "webdav" tabs are reused |
|
1112 |
from generic code. |
|
1116 |
main form |
|
1113 | 1117 |
|
1114 |
=over 3
|
|
1118 |
=item * C<template/webpages/order/tabs/basic_data.html>
|
|
1115 | 1119 |
|
1116 |
=item * |
|
1117 |
template/webpages/order/tabs/_item_input.html: the input line for items |
|
1120 |
Main tab for basic_data. |
|
1118 | 1121 |
|
1119 |
=item *
|
|
1120 |
template/webpages/order/tabs/_row.html: one row for already entered items
|
|
1122 |
This is the only tab here for now. "linked records" and "webdav" tabs are
|
|
1123 |
reused from generic code.
|
|
1121 | 1124 |
|
1122 |
=item * |
|
1123 |
template/webpages/order/tabs/_tax_row.html: displaying tax information |
|
1125 |
=over 4 |
|
1124 | 1126 |
|
1125 |
=item * |
|
1126 |
template/webpages/order/tabs/_multi_items_dialog.html: dialog for entering more |
|
1127 |
than one item at once |
|
1127 |
=item * C<template/webpages/order/tabs/_item_input.html> |
|
1128 | 1128 |
|
1129 |
=item * |
|
1130 |
template/webpages/order/tabs/_multi_items_result.html: results for the filter in |
|
1131 |
the multi items dialog |
|
1129 |
The input line for items |
|
1132 | 1130 |
|
1133 |
=item * |
|
1134 |
template/webpages/order/tabs/_price_sources_dialog.html: dialog for selecting |
|
1135 |
price and discount sources |
|
1131 |
=item * C<template/webpages/order/tabs/_row.html> |
|
1136 | 1132 |
|
1137 |
=item * |
|
1138 |
template/webpages/order/tabs/_email_dialog.html: email dialog |
|
1133 |
One row for already entered items |
|
1139 | 1134 |
|
1140 |
=back
|
|
1135 |
=item * C<template/webpages/order/tabs/_tax_row.html>
|
|
1141 | 1136 |
|
1142 |
=item * |
|
1143 |
js/kivi.Order.js: java script functions |
|
1137 |
Displaying tax information |
|
1144 | 1138 |
|
1145 |
=back
|
|
1139 |
=item * C<template/webpages/order/tabs/_multi_items_dialog.html>
|
|
1146 | 1140 |
|
1147 |
=head1 TODO
|
|
1141 |
Dialog for entering more than one item at once
|
|
1148 | 1142 |
|
1149 |
=over 2
|
|
1143 |
=item * C<template/webpages/order/tabs/_multi_items_result.html>
|
|
1150 | 1144 |
|
1151 |
=item *
|
|
1145 |
Results for the filter in the multi items dialog
|
|
1152 | 1146 |
|
1153 |
testing
|
|
1147 |
=item * C<template/webpages/order/tabs/_price_sources_dialog.html>
|
|
1154 | 1148 |
|
1149 |
Dialog for selecting price and discount sources |
|
1155 | 1150 |
|
1156 |
=item * |
|
1151 |
=item * C<template/webpages/order/tabs/_email_dialog.html>
|
|
1157 | 1152 |
|
1158 |
currency
|
|
1153 |
Email dialog
|
|
1159 | 1154 |
|
1155 |
=back |
|
1160 | 1156 |
|
1161 | 1157 |
=item * |
1162 | 1158 |
|
1163 |
customer/vendor details ('D'-button)
|
|
1159 |
js/kivi.Order.js: java script functions
|
|
1164 | 1160 |
|
1161 |
=back |
|
1165 | 1162 |
|
1166 |
=item *
|
|
1163 |
=head1 TODO
|
|
1167 | 1164 |
|
1168 |
credit limit
|
|
1165 |
=over 4
|
|
1169 | 1166 |
|
1167 |
=item * testing |
|
1170 | 1168 |
|
1171 |
=item * |
|
1169 |
=item * currency
|
|
1172 | 1170 |
|
1173 |
more workflows (save as new / invoice)
|
|
1171 |
=item * customer/vendor details ('D'-button)
|
|
1174 | 1172 |
|
1173 |
=item * credit limit |
|
1175 | 1174 |
|
1176 |
=item * |
|
1175 |
=item * more workflows (save as new / invoice)
|
|
1177 | 1176 |
|
1178 |
price sources: little symbols showing better price / better discount |
|
1177 |
=item * price sources: little symbols showing better price / better discount
|
|
1179 | 1178 |
|
1179 |
=item * custom shipto address |
|
1180 | 1180 |
|
1181 |
=item * |
|
1181 |
=item * periodic invoices
|
|
1182 | 1182 |
|
1183 |
custom shipto address
|
|
1183 |
=item * more details on second row (marge, ...)
|
|
1184 | 1184 |
|
1185 |
=item * language / part translations |
|
1185 | 1186 |
|
1186 |
=item * |
|
1187 |
=item * access rights
|
|
1187 | 1188 |
|
1188 |
periodic invoices
|
|
1189 |
=item * preset salesman from customer
|
|
1189 | 1190 |
|
1191 |
=item * display weights |
|
1190 | 1192 |
|
1191 |
=item * |
|
1193 |
=item * force project if enabled in client config
|
|
1192 | 1194 |
|
1193 |
more details on second row (marge, ...)
|
|
1195 |
=back
|
|
1194 | 1196 |
|
1197 |
=head1 KNOWN BUGS AND CAVEATS |
|
1195 | 1198 |
|
1196 |
=item *
|
|
1199 |
=over 4
|
|
1197 | 1200 |
|
1198 |
language / part translations
|
|
1201 |
=item *
|
|
1199 | 1202 |
|
1203 |
C<position> is not displayed until an order is saved |
|
1200 | 1204 |
|
1201 | 1205 |
=item * |
1202 | 1206 |
|
1203 |
access rights |
|
1207 |
Customer discount is not displayed as a valid discount in price source popup |
|
1208 |
(this might be a bug in price sources) |
|
1204 | 1209 |
|
1210 |
=item * |
|
1211 |
|
|
1212 |
No indication that double click expands second row, no exand all button |
|
1205 | 1213 |
|
1206 | 1214 |
=item * |
1207 | 1215 |
|
1208 |
preset salesman from customer |
|
1216 |
Implementation of second row with a tbody for every item is not supported by |
|
1217 |
our css. |
|
1209 | 1218 |
|
1219 |
=item * |
|
1220 |
|
|
1221 |
As a consequence row striping does not currently work |
|
1210 | 1222 |
|
1211 | 1223 |
=item * |
1212 | 1224 |
|
1213 |
display weights |
|
1225 |
Inline creation of parts is not currently supported |
|
1226 |
|
|
1227 |
=item * |
|
1214 | 1228 |
|
1229 |
Table header is not sticky in the scrolling area. |
|
1215 | 1230 |
|
1216 | 1231 |
=item * |
1217 | 1232 |
|
1218 |
force project if enabled in client config |
|
1233 |
Sorting does not include C<position>, neither does reordering. |
|
1234 |
|
|
1235 |
=item * |
|
1219 | 1236 |
|
1237 |
C<show_smulti_items_dialog> does not use the currently inserted string for filtering. |
|
1220 | 1238 |
|
1221 | 1239 |
=back |
1222 | 1240 |
|
Auch abrufbar als: Unified diff
Order: POD aufgeräumt, reformatiert, Bugs notiert.