Advertisement
Guest User

Untitled

a guest
Feb 28th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.78 KB | None | 0 0
  1. @inherits RootViewItemControl<object>
  2. @using EleWise.ELMA.Web.Mvc.Views.ViewItem
  3. @using EleWise.ELMA.Services;
  4. @using EleWise.ELMA.Security.Services;
  5. @using EleWise.ELMA.Security.Models;
  6. @using EleWise.ELMA.Security.Managers;
  7. @using EleWise.ELMA.Model.Views
  8. @using EleWise.ELMA.Workflow.Models
  9. @using EleWise.ELMA.Workflow.Web.Models
  10. @using EleWise.ELMA.Model.Managers
  11. @using EleWise.ELMA.Runtime.Settings;
  12. @using EleWise.ELMA.ConfigurationModel;
  13. @using System.Xml.Serialization;
  14. @using System.Collections.Generic;
  15. @using EleWise.ELMA.Serialization;
  16. @using System.IO;
  17. @using System.ComponentModel;
  18. @using System.Linq;
  19.  
  20.  
  21. <style>
  22.  
  23. .label tr td label {
  24. display: block;
  25. }
  26.  
  27. .widthInput {
  28. width:50%
  29. }
  30.  
  31. [data-toggle="toggle"] {
  32. display: none;
  33. }
  34.  
  35. .raz0 {
  36. border: 1px solid black;
  37. }
  38. .raz0 th {
  39. position: sticky;
  40. top: 0;
  41. background: white;
  42. }
  43.  
  44. .raz {
  45. border: 1px solid black;
  46. }
  47. .raz th {
  48. position: sticky;
  49. top: 0;
  50. background: white;
  51. }
  52.  
  53. .raz1 {
  54. border: 1px solid black;
  55. }
  56. .raz1 th {
  57. position: sticky;
  58. top: 30px;
  59. background: white;
  60. }
  61.  
  62. .raz2 {
  63. border: 1px solid black;
  64. }
  65. .raz2 th {
  66. position: sticky;
  67. top: 60px;
  68. background: white;
  69. }
  70. .raz3 {
  71. border: 1px solid black;
  72. }
  73. .raz3 th {
  74. position: sticky;
  75. top: 260px;
  76. background: white;
  77. }
  78. </style>
  79.  
  80. <table class="show-lines table-form" style="border-style: groove; border-width: 1px">
  81.  
  82. @{
  83. @functions
  84. {
  85. [XmlRoot(ElementName="ProductList")]
  86. public class ProductList {
  87. [XmlElement(ElementName="Product")]
  88. public int Product { get; set; }
  89. [XmlElement(ElementName="ProductName")]
  90. public string ProductName { get; set; }
  91. [XmlElement(ElementName="Indication")]
  92. public string Indication { get; set; }
  93. [XmlElement(ElementName="Percent")]
  94. public double Percent { get; set; }
  95. }
  96.  
  97. [XmlRoot(ElementName="Lecture")]
  98. public class Lecture {
  99. [XmlElement(ElementName="ForDistribution")]
  100. public int ForDistribution { get; set; }
  101. [XmlElement(ElementName="IdActivity")]
  102. public int IdActivity { get; set; }
  103. [XmlElement(ElementName="Total")]
  104. public int Total { get; set; }
  105. [XmlElement(ElementName="Approved")]
  106. public int Approved { get; set; }
  107. }
  108.  
  109. [XmlRoot(ElementName="Seminar")]
  110. public class Seminar {
  111. [XmlElement(ElementName="ForDistribution")]
  112. public int ForDistribution { get; set; }
  113. [XmlElement(ElementName="IdActivity")]
  114. public int IdActivity { get; set; }
  115. [XmlElement(ElementName="Total")]
  116. public int Total { get; set; }
  117. [XmlElement(ElementName="Approved")]
  118. public int Approved { get; set; }
  119. }
  120.  
  121. [XmlRoot(ElementName="Presentation")]
  122. public class Presentation {
  123. [XmlElement(ElementName="ForDistribution")]
  124. public int ForDistribution { get; set; }
  125. [XmlElement(ElementName="IdActivity")]
  126. public int IdActivity { get; set; }
  127. [XmlElement(ElementName="Total")]
  128. public int Total { get; set; }
  129. [XmlElement(ElementName="Approved")]
  130. public int Approved { get; set; }
  131. }
  132.  
  133. [XmlRoot(ElementName="FarmCircle")]
  134. public class FarmCircle {
  135. [XmlElement(ElementName="ForDistribution")]
  136. public int ForDistribution { get; set; }
  137. [XmlElement(ElementName="IdActivity")]
  138. public int IdActivity { get; set; }
  139. [XmlElement(ElementName="Total")]
  140. public int Total { get; set; }
  141. [XmlElement(ElementName="Approved")]
  142. public int Approved { get; set; }
  143. }
  144.  
  145. [XmlRoot(ElementName="RoundTable")]
  146. public class RoundTable {
  147. [XmlElement(ElementName="ForDistribution")]
  148. public int ForDistribution { get; set; }
  149. [XmlElement(ElementName="IdActivity")]
  150. public int IdActivity { get; set; }
  151. [XmlElement(ElementName="Total")]
  152. public int Total { get; set; }
  153. [XmlElement(ElementName="Approved")]
  154. public int Approved { get; set; }
  155. }
  156.  
  157. [XmlRoot(ElementName="KPIActivity")]
  158. public class KPIActivity {
  159. [XmlElement(ElementName="IdKPIActivity")]
  160. public int IdKPIActivity { get; set; }
  161. [XmlElement(ElementName="EventType")]
  162. public int EventType { get; set; }
  163. [XmlElement(ElementName="EventTypeName")]
  164. public string EventTypeName { get; set; }
  165. [XmlElement(ElementName="IdRow")]
  166. public int IdRow { get; set; }
  167. [XmlElement(ElementName="Line")]
  168. public int Line { get; set; }
  169. [XmlElement(ElementName="LineName")]
  170. public string LineName { get; set; }
  171. [XmlElement(ElementName="User")]
  172. public int User { get; set; }
  173. [XmlElement(ElementName="UserName")]
  174. public string UserName { get; set; }
  175. [XmlElement(ElementName="Territory")]
  176. public int Territory { get; set; }
  177. [XmlElement(ElementName="TerritoryName")]
  178. public string TerritoryName { get; set; }
  179. [XmlElement(ElementName="ProductList")]
  180. public List<ProductList> ProductList { get; set; }
  181. [XmlElement(ElementName="Lecture")]
  182. public Lecture Lecture { get; set; }
  183. [XmlElement(ElementName="Seminar")]
  184. public Seminar Seminar { get; set; }
  185. [XmlElement(ElementName="Presentation")]
  186. public Presentation Presentation { get; set; }
  187. [XmlElement(ElementName="FarmCircle")]
  188. public FarmCircle FarmCircle { get; set; }
  189. [XmlElement(ElementName="RoundTable")]
  190. public RoundTable RoundTable { get; set; }
  191. }
  192.  
  193. [XmlRoot(ElementName="Result")]
  194. public class Result {
  195. [XmlElement(ElementName="Year")]
  196. public int Year { get; set; }
  197. [XmlElement(ElementName="Cycle")]
  198. public string Cycle { get; set; }
  199. [XmlElement(ElementName="Delete")]
  200. public bool Delete { get; set; }
  201. [XmlElement(ElementName="KPIActivity")]
  202. public List<KPIActivity> KPIActivity { get; set; }
  203. }
  204. }
  205. int i = 0;
  206. var mod = Model as WorkflowTaskInfo;
  207. var wfProcess = EntityManager<WorkflowInstance>.Instance.LoadOrNull(mod.InstanceId);
  208. dynamic pContext = wfProcess.Context;
  209. var xml = XmlSerializer<Result>.Deserialize(pContext.XMLResult);
  210. <thead>
  211. <p align="center"><font size='4' color='red'>При внесении любых изменений в форму необходимо нажать кнопку "Обновить таблицу"</font></p>
  212. <tr class="raz" style="height: 30px">
  213. <th style="border: 1px solid black; width: 100%" colspan="20">Результаты распределения KPI мероприятий</th>
  214. </tr>
  215. <tr class="raz1" style="height: 30px">
  216. <th style="border: 1px solid black" colspan="5">Период бюджета: @pContext.BudgetPeriod / @pContext.cycle</th>
  217. <th align="center" style="border: 1px solid black;" colspan="3">Лекций</th>
  218. <th align="center" style="border: 1px solid black;" colspan="3">Семинаров</th>
  219. <th align="center" style="border: 1px solid black;" colspan="3">Презентаций</th>
  220. <th align="center" style="border: 1px solid black;" colspan="3">Фармкружков</th>
  221. <th align="center" style="border: 1px solid black;" colspan="3">Круглых столов</th>
  222. </tr>
  223. <tr class="raz2" style="height: 200px">
  224. <th align="center" style="border: 1px solid black; width: 8%">Линия</th>
  225. <th align="center" style="border: 1px solid black; width: 8%">Сотрудник</th>
  226. <th align="center" style="border: 1px solid black; width: 8%">Территория</th>
  227. <th align="center" style="border: 1px solid black; width: 8%">Продукт</th>
  228. <th align="center" style="border: 1px solid black; width: 8%">Показание</th>
  229. <th align="center" style="border: 1px solid black; width: 4%"><div style="-webkit-transform: rotate(-90deg); transform: rotate(-90deg);">Для распределения</div></th>
  230. <th align="center" style="border: 1px solid black; width: 4%"><div style="-webkit-transform: rotate(-90deg); transform: rotate(-90deg);">Количество запланированных</div></th>
  231. <th align="center" style="border: 1px solid black; width: 4%"><div style="-webkit-transform: rotate(-90deg); transform: rotate(-90deg);">Из них одобрено</div></th>
  232. <th align="center" style="border: 1px solid black; width: 4%"><div style="-webkit-transform: rotate(-90deg); transform: rotate(-90deg);">Для распределения</div></th>
  233. <th align="center" style="border: 1px solid black; width: 4%"><div style="-webkit-transform: rotate(-90deg); transform: rotate(-90deg);">Количество запланированных</div></th>
  234. <th align="center" style="border: 1px solid black; width: 4%"><div style="-webkit-transform: rotate(-90deg); transform: rotate(-90deg);">Из них одобрено</div></th>
  235. <th align="center" style="border: 1px solid black; width: 4%"><div style="-webkit-transform: rotate(-90deg); transform: rotate(-90deg);">Для распределения</div></th>
  236. <th align="center" style="border: 1px solid black; width: 4%"><div style="-webkit-transform: rotate(-90deg); transform: rotate(-90deg);">Количество запланированных</div></th>
  237. <th align="center" style="border: 1px solid black; width: 4%"><div style="-webkit-transform: rotate(-90deg); transform: rotate(-90deg);">Из них одобрено</div></th>
  238. <th align="center" style="border: 1px solid black; width: 4%"><div style="-webkit-transform: rotate(-90deg); transform: rotate(-90deg);">Для распределения</div></th>
  239. <th align="center" style="border: 1px solid black; width: 4%"><div style="-webkit-transform: rotate(-90deg); transform: rotate(-90deg);">Количество запланированных</div></th>
  240. <th align="center" style="border: 1px solid black; width: 4%"><div style="-webkit-transform: rotate(-90deg); transform: rotate(-90deg);">Из них одобрено</div></th>
  241. <th align="center" style="border: 1px solid black; width: 4%"><div style="-webkit-transform: rotate(-90deg); transform: rotate(-90deg);">Для распределения</div></th>
  242. <th align="center" style="border: 1px solid black; width: 4%"><div style="-webkit-transform: rotate(-90deg); transform: rotate(-90deg);">Количество запланированных</div></th>
  243. <th align="center" style="border: 1px solid black; width: 4%"><div style="-webkit-transform: rotate(-90deg); transform: rotate(-90deg);">Из них одобрено</div></th>
  244. </tr>
  245. <tr class="raz3" style="height: 30px">
  246. <th align="center" style="border: 1px solid black;" colspan="5">Общее количество по типу мероприятия KPI</th>
  247. <th align="center" style="border: 1px solid black;">
  248. @if (pContext.TotalLecture != null /*|| pContext.TotalLectureAll != 0 || pContext.TotalLectureApproved != 0*/)
  249. {
  250. @pContext.TotalLecture
  251. }
  252. </th>
  253. <th align="center" style="border: 1px solid black;">
  254. @if (pContext.TotalLecture != null /*|| pContext.TotalLectureAll != 0 || pContext.TotalLectureApproved != 0*/)
  255. {
  256. @pContext.TotalLectureAll
  257. }
  258. </th>
  259. <th align="center" style="border: 1px solid black;">
  260. @if (pContext.TotalLecture != null /*|| pContext.TotalLectureAll != 0 || pContext.TotalLectureApproved != 0*/)
  261. {
  262. @pContext.TotalLectureApproved
  263. }
  264. </th>
  265. <th align="center" style="border: 1px solid black;">
  266. @if (pContext.TotalSeminar != null /*|| pContext.TotalSeminarAll != 0 || pContext.TotalSeminarApproved != 0*/)
  267. {
  268. @pContext.TotalSeminar
  269. }
  270. </th>
  271. <th align="center" style="border: 1px solid black;">
  272. @if (pContext.TotalSeminar != null /*|| pContext.TotalSeminarAll != 0 || pContext.TotalSeminarApproved != 0*/)
  273. {
  274. @pContext.TotalSeminarAll
  275. }
  276. </th>
  277. <th align="center" style="border: 1px solid black;">
  278. @if (pContext.TotalSeminar != null /*|| pContext.TotalSeminarAll != 0 || pContext.TotalSeminarApproved != 0*/)
  279. {
  280. @pContext.TotalSeminarApproved
  281. }
  282. </th>
  283. <th align="center" style="border: 1px solid black;">
  284. @if (pContext.TotalPresentation != null /*|| pContext.TotalPresentationAll != 0 || pContext.TotalPresentationApproved != 0*/)
  285. {
  286. @pContext.TotalPresentation
  287. }
  288. </th>
  289. <th align="center" style="border: 1px solid black;">
  290. @if (pContext.TotalPresentation != null /*|| pContext.TotalPresentationAll != 0 || pContext.TotalPresentationApproved != 0*/)
  291. {
  292. @pContext.TotalPresentationAll
  293. }
  294. </th>
  295. <th align="center" style="border: 1px solid black;">
  296. @if (pContext.TotalPresentation != null /*|| pContext.TotalPresentationAll != 0 || pContext.TotalPresentationApproved != 0*/)
  297. {
  298. @pContext.TotalPresentationApproved
  299. }
  300. </th>
  301. <th align="center" style="border: 1px solid black;">
  302. @if (pContext.TotalFarmCircle != null /*|| pContext.TotalFarmCircleAll != 0 || pContext.TotalFarmCircleApproved != 0*/)
  303. {
  304. @pContext.TotalFarmCircle
  305. }
  306. </th>
  307. <th align="center" style="border: 1px solid black;">
  308. @if (pContext.TotalFarmCircle != null /*|| pContext.TotalFarmCircleAll != 0 || pContext.TotalFarmCircleApproved != 0*/)
  309. {
  310. @pContext.TotalFarmCircleAll
  311. }
  312. </th>
  313. <th align="center" style="border: 1px solid black;">
  314. @if (pContext.TotalFarmCircle != null /*|| pContext.TotalFarmCircleAll != 0 || pContext.TotalFarmCircleApproved != 0*/)
  315. {
  316. @pContext.TotalFarmCircleApproved
  317. }
  318. </th>
  319. <th align="center" style="border: 1px solid black;">
  320. @if (pContext.TotalRoundTable != null /*|| pContext.TotalRoundTableAll != 0 || pContext.TotalRoundTableApproved != 0*/)
  321. {
  322. @pContext.TotalRoundTable
  323. }
  324. </th>
  325. <th align="center" style="border: 1px solid black;">
  326. @if (pContext.TotalRoundTable != null/* || pContext.TotalRoundTableAll != 0 || pContext.TotalRoundTableApproved != 0*/)
  327. {
  328. @pContext.TotalRoundTableAll
  329. }
  330. </th>
  331. <th align="center" style="border: 1px solid black;">
  332. @if (pContext.TotalRoundTable != null/* || pContext.TotalRoundTableAll != 0 || pContext.TotalRoundTableApproved != 0*/)
  333. {
  334. @pContext.TotalRoundTableApproved
  335. }
  336. </th>
  337. </tr>
  338. </thead>
  339.  
  340. List<KPIActivity> xmlKPIActivity = new List<KPIActivity> ();
  341. if (pContext.FilterByEmployee != null) {
  342. xmlKPIActivity = xml.KPIActivity.Where (c => c.Employee == pContext.FilterByEmployee);
  343. }
  344. else {
  345. xmlKPIActivity = xml.KPIActivity;
  346. }
  347.  
  348. foreach (var item in xmlKPIActivity)
  349. {
  350. i++;
  351. <tbody>
  352. <tr>
  353. <td align="center" style="border: 1px solid black">
  354. @if (item.LineName != null)
  355. {
  356. @item.LineName
  357.  
  358. }
  359. </td>
  360. <td align="center" style="border: 1px solid black">
  361. @if (item.UserName != null)
  362. {
  363. @item.UserName
  364.  
  365. }
  366. </td>
  367. <td align="center" style="border: 1px solid black">
  368. @if (item.TerritoryName != null)
  369. {
  370. @item.TerritoryName
  371. }
  372. </td>
  373. <td align="center" style="border: 1px solid black">
  374. @if (item.ProductList.Count > 0)
  375. {
  376. string Result = "";
  377. foreach (var it in item.ProductList)
  378. {
  379. Result += it.ProductName + " " + it.Percent.ToString() + "\n";
  380. }
  381. @Result
  382. }
  383. </td>
  384. <td align="center" style="border: 1px solid black">
  385.  
  386. </td>
  387. <td align="center" style="border: 1px solid black">
  388. @if (pContext.TotalLecture != null && item.Lecture != null/* || pContext.TotalLectureAll != null || pContext.TotalLectureApproved != 0*/)
  389. {
  390. <input type="number" name ="@item.IdRow:Lecture" class="widthInput" min=0 value=@item.Lecture.ForDistribution onChange="onMyBlockValueChanged(this)">
  391. }
  392. </td>
  393. <td align="center" style="border: 1px solid black">
  394. @if (pContext.TotalLecture != null/* || pContext.TotalLectureAll != 0 || pContext.TotalLectureApproved != 0*/)
  395. {
  396. @item.Lecture.Total
  397. }
  398. </td>
  399. <td align="center" style="border: 1px solid black">
  400. @if (pContext.TotalLecture != null/* || pContext.TotalLectureAll != 0 || pContext.TotalLectureApproved != 0*/)
  401. {
  402. @item.Lecture.Approved
  403. }
  404. </td>
  405. <td align="center" style="border: 1px solid black">
  406. @if (pContext.TotalSeminar != null/* || pContext.TotalSeminarAll != null || pContext.TotalSeminarApproved != 0*/)
  407. {
  408. <input type="number" name ="@item.IdRow:Seminar" class="widthInput" min=0 value=@item.Seminar.ForDistribution onChange="onMyBlockValueChanged(this)">
  409. }
  410. </td>
  411. <td align="center" style="border: 1px solid black">
  412. @if (pContext.TotalSeminar != null/* || pContext.TotalSeminarAll != 0 || pContext.TotalSeminarApproved != 0*/)
  413. {
  414. @item.Seminar.Total
  415. }
  416. </td>
  417. <td align="center" style="border: 1px solid black">
  418. @if (pContext.TotalSeminar != null /*|| pContext.TotalSeminarAll != 0 || pContext.TotalSeminarApproved != 0*/)
  419. {
  420. @item.Seminar.Approved
  421. }
  422. </td>
  423. <td align="center" style="border: 1px solid black">
  424. @if (pContext.TotalPresentation != null /*|| pContext.TotalPresentationAll != 0 || pContext.TotalPresentationApproved != 0*/)
  425. {
  426. <input type="number" name ="@item.IdRow:Presentation" class="widthInput" min=0 value=@item.Presentation.ForDistribution onChange="onMyBlockValueChanged(this)">
  427. }
  428. </td>
  429. <td align="center" style="border: 1px solid black">
  430. @if (pContext.TotalPresentation != null /*|| pContext.TotalPresentationAll != 0 || pContext.TotalPresentationApproved != 0*/)
  431. {
  432. @item.Presentation.Total
  433. }
  434. </td>
  435. <td align="center" style="border: 1px solid black">
  436. @if (pContext.TotalPresentation != null/* || pContext.TotalPresentationAll != 0 || pContext.TotalPresentationApproved != 0*/)
  437. {
  438. @item.Presentation.Approved
  439. }
  440. </td>
  441. <td align="center" style="border: 1px solid black">
  442. @if (pContext.TotalFarmCircle != null/* || pContext.TotalFarmCircleAll != 0 || pContext.TotalFarmCircleApproved != 0*/)
  443. {
  444. <input type="number" name ="@item.IdRow:FarmCircle" class="widthInput" min=0 value=@item.FarmCircle.ForDistribution onChange="onMyBlockValueChanged(this)">
  445. }
  446. </td>
  447. <td align="center" style="border: 1px solid black">
  448. @if (pContext.TotalFarmCircle != null/* || pContext.TotalFarmCircleAll != 0 || pContext.TotalFarmCircleApproved != 0*/)
  449. {
  450. @item.FarmCircle.Total
  451. }
  452. </td>
  453. <td align="center" style="border: 1px solid black">
  454. @if (pContext.TotalFarmCircle != null/* || pContext.TotalFarmCircleAll != 0 || pContext.TotalFarmCircleApproved != 0*/)
  455. {
  456. @item.FarmCircle.Approved
  457. }
  458. </td>
  459. <td align="center" style="border: 1px solid black">
  460. @if (pContext.TotalRoundTable != null/* || pContext.TotalRoundTableAll != 0 || pContext.TotalRoundTableApproved != 0*/)
  461. {
  462. <input type="number" name ="@item.IdRow:RoundTable" class="widthInput" min=0 value=@item.RoundTable.ForDistribution onChange="onMyBlockValueChanged(this)">
  463. }
  464. </td>
  465. <td align="center" style="border: 1px solid black">
  466. @if (pContext.TotalRoundTable != null/*|| pContext.TotalRoundTableAll != 0 || pContext.TotalRoundTableApproved != 0*/)
  467. {
  468. @item.RoundTable.Total
  469. }
  470. </td>
  471. <td align="center" style="border: 1px solid black">
  472. @if (pContext.TotalRoundTable != null/* || pContext.TotalRoundTableAll != 0 || pContext.TotalRoundTableApproved != 0*/)
  473. {
  474. @item.RoundTable.Approved
  475. }
  476. </td>
  477. </tr>
  478. </tbody>
  479. }
  480. }
  481. </table>
  482.  
  483. <script language="javascript" type="text/javascript">
  484.  
  485. $(document).ready(function() {
  486. $('[data-toggle="toggle"]').change(function(){
  487. $(this).parents().next('.hide').toggle();
  488. });
  489.  
  490. });
  491. function onMyBlockValueChanged(e)
  492. {
  493. if (e.value >= e.min)
  494. {
  495. var res = $('#Entity_BlockChangeString')[0];
  496. res.value = res.value+e.name+':'+e.value+';';
  497. }
  498. }
  499. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement