dvrentry.component.html 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451
  1. <div class="mainContainer">
  2. <div class="container-fluid p-lg-0 p-sm-0 p-md-0">
  3. <dvr-header></dvr-header>
  4. </div>
  5. <div class="wrapper d-flex align-items-stretch">
  6. <nav id="sidebar" style="background:#f0ebeb;box-shadow:7px 7px 13px #d1cece">
  7. <div class="custom-menu">
  8. </div>
  9. <ul class="list-unstyled components mb-5">
  10. <li class="active" style="text-align:center">
  11. <a routerLink="/home"><span class="fa fa-home "></span>
  12. <p style="font-size:15px;margin-bottom: 0px;"> Home</p>
  13. </a>
  14. </li>
  15. <li style="text-align:center">
  16. <a routerLink="/contactDetails"><span class="fa fa-user "></span>
  17. <p style="font-size:15px;margin-bottom: 0px;">Contact</p>
  18. </a>
  19. </li>
  20. <li style="text-align:center;background: #d9d5d5">
  21. <a routerLink="/dvrentry"><span class="fa fa-file-text "></span>
  22. <p style="font-size:15px;margin-bottom: 0px;"> DVR Entry</p>
  23. </a>
  24. </li>
  25. <li style="text-align:center" *ngIf="role == 'admin'">
  26. <a routerLink="/customer"><span class="fa fa-file-text "></span>
  27. <p style="font-size:15px;margin-bottom: 0px;">Customer</p>
  28. </a>
  29. </li>
  30. </ul>
  31. </nav>
  32. <!-- Page Content -->
  33. <div id="content">
  34. <div class="row">
  35. <div class="col-lg-12 row formheaderrow">
  36. <p class="formheader"><i class="fa fa-file-text-o" style="padding-right:10px"></i>Visit Details</p>
  37. </div>
  38. </div>
  39. <div class=" p-4 p-md-5 pt-5">
  40. <div class="col-lg-12 panelcss">
  41. <form [formGroup]='contactEntryForm' (ngSubmit)="dvrEntry(contactEntryForm)">
  42. <fieldset>
  43. <div class="row">
  44. <div class="col-lg-12 p-lg-0 p-md-0 p-sm-0 row">
  45. <div class="col-lg-12 row" style="padding:0px">
  46. <div class="col-lg-4">
  47. <div class="form-group" [ngClass]="displayFieldCss('date')">
  48. <label style="font-size: 16px;margin-top: 5px;margin-bottom: 0px;">Date of Visit<span
  49. style="color: red;"> *</span></label>
  50. <input type="Date" class="form-control" formControlName='date' name="Date" id="Date"
  51. placeholder="Date of Visit" style="margin-top: 0px;">
  52. <app-field-error-display [displayError]="isFieldValid('date')" errorMsg="Please enter date">
  53. </app-field-error-display>
  54. </div>
  55. </div>
  56. <div class="col-lg-4">
  57. <div class="form-group" [ngClass]="displayFieldCss('custName')">
  58. <label style="font-size: 16px;margin-top: 5px;margin-bottom: 0px;"> Customer<span
  59. style="color: red;"> *</span></label>
  60. <select id="Axis" class="form-control" formControlName='custName' style="margin-top: 0px;"
  61. (change)="customerDetails(contactEntryForm)">
  62. <!-- <option [selected]=true default disabled> Choose Customer</option> -->
  63. <!-- <option value="" selected >Choose Customer</option> -->
  64. <option *ngIf="customer_name" default disabled>{{customer_name}}</option>
  65. <option *ngFor="let cust of cust_data" [ngValue]="cust">
  66. {{ cust.customer_name }}
  67. </option>
  68. </select>
  69. <app-field-error-display [displayError]="isFieldValid('custName')"
  70. errorMsg="Please enter Customer Name">
  71. </app-field-error-display>
  72. </div>
  73. </div>
  74. <div class="col-lg-4">
  75. <div class="form-group" style="margin-bottom:2px" [ngClass]="displayFieldCss('contactName')">
  76. <label style="font-size: 16px;margin-top: 5px;margin-bottom: 0px;"> Contact<span
  77. style="color: red;"> *</span></label>
  78. <select id="Axis" (change)="contactDetails(contactEntryForm)" class="form-control"
  79. formControlName='contactName' style="margin-top: 0px;">
  80. <option><a href="" (click)="contactDetails(contactEntryForm)"
  81. style="cursor: pointer;color: #7f7f7f;"> Add New Contact</a></option>
  82. <option *ngIf="contact_name" default disabled>{{contact_name}}</option>
  83. <option *ngFor="let contact of contact_data" [ngValue]="contact">
  84. {{ contact.first_name }} {{ contact.last_name }}
  85. </option>
  86. </select>
  87. <app-field-error-display [displayError]="isFieldValid('contactName')"
  88. errorMsg="Please enter Contact Name">
  89. </app-field-error-display>
  90. </div>
  91. <!-- <a (click)="contactDetails(contactEntryForm)" style="cursor: pointer;"> <span
  92. style="color: #cd1212;text-decoration: underline;font-size:14px">Add New Contact
  93. </span></a> -->
  94. </div>
  95. <div class="col-lg-4" style="margin-top:38px;">
  96. <div class="form-group" *ngIf="currentSecondContact ==false" style="margin-bottom:2px"
  97. [ngClass]="displayFieldCss('secondContact')">
  98. <label style="font-size: 16px;margin-top: 5px;margin-bottom: 0px;"> Second Contact</label>
  99. <select id="Axis" (change)="contactDetails(contactEntryForm)" class="form-control"
  100. formControlName='secondContact' style="margin-top: 0px;">
  101. <option><a href="" (click)="contactDetails(contactEntryForm)"
  102. style="cursor: pointer;color: #7f7f7f;"> Add New Contact</a></option>
  103. <option *ngIf="second_contact" default disabled>{{second_contact}}</option>
  104. <option *ngFor="let second_contact of contact_data" [ngValue]="second_contact">
  105. {{ second_contact.first_name }} {{ second_contact.last_name }}
  106. </option>
  107. </select>
  108. </div>
  109. <div class="form-group" *ngIf="currentSecondContact ==true" style="margin-bottom:2px"
  110. [ngClass]="displayFieldCss('secondContact')">
  111. <label style="font-size: 16px;margin-top: 5px;margin-bottom: 0px;"> Second Contact</label>
  112. <select id="Axis" (change)="contactDetails(contactEntryForm)" class="form-control"
  113. formControlName='secondContact' style="margin-top: 0px;">
  114. <option><a href="" (click)="contactDetails(contactEntryForm)"
  115. style="cursor: pointer;color: #7f7f7f;"> Add New Contact</a></option>
  116. <option *ngIf="second_contact" default disabled>{{second_contact}}</option>
  117. <option *ngFor="let second_contact of secondContact_Details" [ngValue]="second_contact">
  118. {{ second_contact.first_name }} {{ second_contact.last_name }}
  119. </option>
  120. </select>
  121. </div>
  122. </div>
  123. <div class="col-lg-4" style="margin-top:38px">
  124. <div class="form-group" style="margin-bottom:2px" [ngClass]="displayFieldCss('stageName')">
  125. <label style="font-size: 16px;margin-top: 5px;margin-bottom: 0px;">Status<span
  126. style="color: red;"> *</span></label>
  127. <select id="Axis" class="form-control" formControlName="stageName"
  128. style="margin: 6px;margin-top: 0px;">
  129. <!-- <option default disabled> Choose Status</option> -->
  130. <option *ngIf="stage_des" default disabled>{{stage_des}}</option>
  131. <option *ngFor="let status of stage_data" [ngValue]="status">
  132. {{ status.stage_desc }}
  133. </option>
  134. </select>
  135. <app-field-error-display [displayError]="isFieldValid('stageName')"
  136. errorMsg="Please enter Status">
  137. </app-field-error-display>
  138. </div>
  139. </div>
  140. <div class="col-lg-4" style="margin-top:38px;">
  141. <div class="form-group" [ngClass]="displayFieldCss('nextstep')">
  142. <label style="font-size: 16px;margin-top: 5px;margin-bottom: 0px;">Next Action
  143. <span style="color: red;"> *</span></label>
  144. <textarea type="text" name="First Name" formControlName="nextstep" class="textarea" id="user"
  145. onkeyup="this.setAttribute('value', this.value);" value=""
  146. style="margin: 25px 0;padding: 14px;height:auto !important;border-bottom: 2px solid #e0e0e0 !important;margin-top: -2px;padding: 0px;margin-left: -2px;"></textarea>
  147. <app-field-error-display [displayError]="isFieldValid('nextstep')"
  148. errorMsg="Please enter Next steps details">
  149. </app-field-error-display>
  150. </div>
  151. </div>
  152. <div class="col-lg-4" style="margin-top:38px;">
  153. <div class="form-group" [ngClass]="displayFieldCss('message')">
  154. <label style="font-size: 16px;margin-top: 5px;margin-bottom: 0px;">Activity Remark<span
  155. style="color: red;"> *</span></label>
  156. <textarea type="text" name="First Name" formControlName="message" class="textarea" id="user"
  157. onkeyup="this.setAttribute('value', this.value);" value=""
  158. style="margin: 25px 0;padding: 14px;height:auto !important;border-bottom: 2px solid #e0e0e0 !important;margin-top: -2px;padding: 0px;"></textarea>
  159. <app-field-error-display [displayError]="isFieldValid('message')"
  160. errorMsg="Please enter Message">
  161. </app-field-error-display>
  162. </div>
  163. </div>
  164. <div class="col-lg-4" style="margin-top:38px">
  165. <span style="color:#7f7f7f;">Physical Meeting?<span style="color: red;"> *</span>
  166. </span>
  167. <div class="input-group" style="margin-top: 10px;">
  168. <div class="switch-field">
  169. <input type="radio" id="radio-one1" name="switch-one1" value="yes" formControlName="ph_meet"
  170. checked />
  171. <label for="radio-one1">Yes</label>
  172. <input type="radio" id="radio-two1" name="switch-one1" value="no" formControlName="ph_meet" />
  173. <label for="radio-two1">No</label>
  174. </div>
  175. </div>
  176. </div>
  177. <div class="col-lg-4" style="margin-top:38px;">
  178. <div class="form-group" [ngClass]="displayFieldCss('date')">
  179. <label style="font-size: 16px;margin-top: 5px;margin-bottom: 0px;">Estimate Date Of Closure Of
  180. Deal</label>
  181. <input type="date" class="form-control" formControlName="estDate" name="Date" id="Date"
  182. placeholder="Estimate date of closure of deal" style="margin-top: 0px;">
  183. </div>
  184. </div>
  185. <div class="col-lg-4" style="margin-top:38px;">
  186. <div class="form-group" [ngClass]="displayFieldCss('objective')">
  187. <label style="font-size: 16px;margin-top: 5px;margin-bottom: 0px;">Objective/Opportunity</label>
  188. <textarea type="text" name="objective" formControlName="objective" class="textarea"
  189. id="objective" onkeyup="this.setAttribute('value', this.value);" value=""
  190. style="margin: 25px 0;padding: 14px;height:auto !important;border-bottom: 2px solid #e0e0e0 !important;margin-top: -2px;padding: 0px;"></textarea>
  191. </div>
  192. </div>
  193. <div class="col-lg-4" style="margin-top:38px;">
  194. <div class="form-group" [ngClass]="displayFieldCss('objective')">
  195. <label style="font-size: 16px;margin-top: 5px;margin-bottom: 0px;">Estimated Value Of Deal
  196. </label>
  197. <textarea type="text" name="deal" formControlName="deal" class="textarea" id="deal"
  198. onkeyup="this.setAttribute('value', this.value);" value=""
  199. (keypress)="allowOnlyNumber($event)"
  200. style="margin: 25px 0;padding: 14px;height:auto !important;border-bottom: 2px solid #e0e0e0 !important;margin-top: -2px;padding: 0px;"></textarea>
  201. </div>
  202. </div>
  203. <div class="col-lg-4" style="margin-top:38px;">
  204. <div class="form-group">
  205. <label style="font-size: 16px; margin-top: 5px; margin-bottom: 5px;"> Next Action On:</label>
  206. <select id="function" class="form-control" formControlName="postion" (change)="funcPersonDetails(contactEntryForm)"
  207. style="margin: 6px;margin-top: 0px;">
  208. <option value="" disabled selected>Choose Function</option>
  209. <option *ngIf="postion" default disabled>{{postion}}</option>
  210. <option *ngFor="let postion of funcDetails" [ngValue]="postion">
  211. {{ postion.func_name }}
  212. </option>
  213. </select>
  214. <select id="function" class="form-control" formControlName="personData"
  215. style="margin: 6px;margin-top: 0px;">
  216. <option value="" disabled selected>Choose Person</option>
  217. <option *ngIf="person" default disabled>{{person}}</option>
  218. <option *ngFor="let person of personDetails" [ngValue]="person">
  219. {{ person.person_name }}
  220. </option>
  221. </select>
  222. </div>
  223. </div>
  224. </div>
  225. </div>
  226. </div>
  227. <div class="col-lg-12 row text-lg-right">
  228. <div class="col-lg-8 col-md-7">
  229. </div>
  230. <div class="col-lg-4 col-sm-12 col-md-12">
  231. <input class="cancelbutton" type="button" value="Delete" (click)="deleteEntry()"
  232. style="margin-right:15px" *ngIf="checkupdatedelete == true">
  233. <input class="submitbutton" type="submit" value="Save" style="margin-right:15px">
  234. <input class="cancelbutton" type="submit" value="reset"
  235. (click)="(contactEntryForm.reset({}));addUser()">
  236. </div>
  237. </div>
  238. <div class="modal" tabindex="-1" role="dialog" [ngStyle]="{'display':displayStyle}">
  239. <div class="modal-dialog" role="document">
  240. <div class="modal-content">
  241. <div class="modal-header">
  242. <h4 class="modal-title">{{status_msg}}</h4>
  243. </div>
  244. <div class="modal-body">
  245. <p>{{error_msg}}</p>
  246. </div>
  247. <div class="modal-footer">
  248. <button type="button" class="btn btn-danger" (click)="closePopup()">
  249. Close
  250. </button>
  251. </div>
  252. </div>
  253. </div>
  254. </div>
  255. <div class="modal_new" tabindex="-4" role="dialog" *ngIf="checkupdatedelete == false">
  256. <div class="modal-dialog" role="document">
  257. <div class="modal-content">
  258. <div class="modal-header">
  259. <h4 class="modal-title">Warning</h4>
  260. </div>
  261. <div class="modal-body">
  262. <p>You can not Update and Delete DVR Entry after 1 day of creation.</p>
  263. </div>
  264. <div class="modal-footer">
  265. <button type="button" class="submitbutton">
  266. <a routerLink="/home" style="color: white;">
  267. Home
  268. </a>
  269. </button>
  270. </div>
  271. </div>
  272. </div>
  273. </div>
  274. </fieldset>
  275. </form>
  276. </div>
  277. </div>
  278. <div class=" p-4 p-md-5 pt-5" style="padding-top: 20px !important;">
  279. <div class="col-lg-12 " style=" border: 1px solid #cbcbcb;
  280. padding: 10px;
  281. border-radius: 5px;overflow: auto;">
  282. <!-- <table id="datatableexample" class="display" cellspacing="0" width="100%"> -->
  283. <table datatable [dtOptions]="dtOptions" [dtTrigger]="dtTrigger" class="row-border hover table" cellspacing="0"
  284. width="100%">
  285. <thead>
  286. <tr>
  287. <th>Date of Visit</th>
  288. <th>Customer Name</th>
  289. <th>Contact Name</th>
  290. <th>Second Contact</th>
  291. <th >Next Action</th>
  292. <th>Physical Meeting</th>
  293. <th >Message</th>
  294. <th>Status</th>
  295. <th>Estimate Date Of Closure Of Deal</th>
  296. <th>Objective/Opportunity</th>
  297. <th>Estimated Value Of Deal</th>
  298. <th>Function</th>
  299. <th>Person</th>
  300. </tr>
  301. </thead>
  302. <tbody>
  303. <tr *ngFor="let current of currentDateData; let i = index">
  304. <td>{{current.date_of_visit | datePipe}}</td>
  305. <td>{{current.customer_name }}</td>
  306. <td>{{current.contact_name }}</td>
  307. <td>{{current.second_contact }}</td>
  308. <td style=" width: 85%;
  309. min-height: 150px !important;
  310. display: block;
  311. overflow-x: auto;">{{current.nextstep }}</td>
  312. <td>{{current.physical_meeting | titlecase}}</td>
  313. <td style=" width: auto;
  314. min-height: 150px !important;
  315. display: block;
  316. overflow-x: auto;">{{current.message }}</td>
  317. <td>{{current.stage_desc }}</td>
  318. <td>{{current.est_Date | datePipe}}</td>
  319. <td style=" width: auto;
  320. min-height: 150px !important;
  321. display: block;
  322. overflow-x: auto;">{{current.objective}}</td>
  323. <td>{{current.estvalue}}</td>
  324. <td>{{current.func}}</td>
  325. <td>{{current.person}}</td>
  326. </tr>
  327. </tbody>
  328. </table>
  329. </div>
  330. </div>
  331. </div>
  332. </div>
  333. <div class="row footer">
  334. <p>Copyright © MindCraft Software Pvt. Ltd.</p>
  335. </div>
  336. </div>