general-info.component.html 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378
  1. <h2 class="floating-title">{{ title }}</h2>
  2. <div class="main-content">
  3. <div class="container-fluid">
  4. <div class="row">
  5. <div class="col-12 align-right">
  6. <div class="align-container">
  7. <nav aria-label="breadcrumb">
  8. <ol class="breadcrumb">
  9. <li class="breadcrumb-item">
  10. <a [routerLink]="['/']">Dashboard</a>
  11. </li>
  12. <li class="breadcrumb-item">
  13. <a [routerLink]="['/investment-proposals']">
  14. Propuestas de inversión
  15. </a>
  16. </li>
  17. <li class="breadcrumb-item">Nueva</li>
  18. </ol>
  19. </nav>
  20. </div>
  21. </div>
  22. <br />
  23. </div>
  24. <br />
  25. <div class="row justify-content-center">
  26. <div class="col-12">
  27. <div class="align-container">
  28. <inv-proposal-navbar
  29. [activeLink]="'general'"
  30. [investmentID]="investmentProposalID"
  31. ></inv-proposal-navbar>
  32. <div class="card borderless card-wrapper">
  33. <div class="card-header card-header-icon card-header-rose">
  34. <h4 class="card-title">
  35. Propuesta de inversión
  36. </h4>
  37. </div>
  38. <div class="card-body">
  39. <div class="align-container">
  40. <form
  41. class="form-auth-small ng-untouched ng-pristine ng-valid"
  42. [formGroup]="investmentProposalForm"
  43. >
  44. <div class="row">
  45. <div class="col-lg-6 col-sm-12 pr-xl-3">
  46. <div class="form-group">
  47. <label for="asunto">Asunto: </label>
  48. <div class="input-box-container">
  49. <p>
  50. <i class="far fa-keyboard"></i>
  51. </p>
  52. <input
  53. type="text"
  54. formControlName="asunto"
  55. class="form-control"
  56. [ngClass]="{
  57. 'is-invalid': submitted && f.asunto.errors
  58. }"
  59. />
  60. <div
  61. *ngIf="submitted && f.asunto.errors"
  62. class="invalid-feedback"
  63. >
  64. <div *ngIf="f.asunto.errors.required">
  65. Campo requerido
  66. </div>
  67. </div>
  68. </div>
  69. </div>
  70. </div>
  71. <div class="col-lg-6 col-sm-12 pr-xl-3">
  72. <div class="form-group">
  73. <label for="origenes_fondo">Orígenes de fondo: </label>
  74. <select
  75. class="custom-select"
  76. formControlName="origenes_fondo"
  77. [ngClass]="{
  78. 'is-invalid': submitted && f.origenes_fondo.errors
  79. }"
  80. >
  81. <option
  82. *ngFor="let item of funds"
  83. [value]="item.id_origen_fondo"
  84. [selected]="
  85. item.id_origen_fondo == general.origenes_fondo
  86. "
  87. >
  88. {{ item.nombre }}</option
  89. >
  90. </select>
  91. <div
  92. *ngIf="submitted && f.origenes_fondo.errors"
  93. class="invalid-feedback"
  94. >
  95. <div *ngIf="f.origenes_fondo.errors.required">
  96. Campo requerido
  97. </div>
  98. </div>
  99. </div>
  100. </div>
  101. <div class="col-lg-6 col-sm-12 pr-xl-3">
  102. <div class="form-group">
  103. <label for="name">Nombre: </label>
  104. <div class="input-box-container">
  105. <p>
  106. <i class="far fa-keyboard"></i>
  107. </p>
  108. <input
  109. type="text"
  110. formControlName="name"
  111. class="form-control"
  112. [ngClass]="{
  113. 'is-invalid': submitted && f.name.errors
  114. }"
  115. />
  116. <div
  117. *ngIf="submitted && f.name.errors"
  118. class="invalid-feedback"
  119. >
  120. <div *ngIf="f.name.errors.required">
  121. Campo requerido
  122. </div>
  123. </div>
  124. </div>
  125. </div>
  126. </div>
  127. <div class="col-lg-6 col-sm-12 pr-xl-3">
  128. <div class="form-group">
  129. <label for="instrumentos">Instrumentos: </label>
  130. <ng-container
  131. *ngIf="
  132. investmentProposalID == undefined;
  133. else elseTemplate
  134. "
  135. >
  136. <ng-select
  137. #instrumentType
  138. [options]="instrumentTypes"
  139. formControlName="instrumentos"
  140. [ngClass]="{
  141. 'is-invalid': submitted && f.instrumentos.errors
  142. }"
  143. (selected)="pre_filled_fields($event)"
  144. >
  145. </ng-select>
  146. </ng-container>
  147. <ng-template #elseTemplate>
  148. <input
  149. type="text"
  150. [value]="instrumentValue"
  151. name="x"
  152. class="form-control"
  153. readonly
  154. />
  155. <input
  156. type="hidden"
  157. formControlName="instrumentos"
  158. class="form-control"
  159. [value]="general.instrumentos"
  160. readonly
  161. />
  162. </ng-template>
  163. <div
  164. *ngIf="submitted && f.instrumentos.errors"
  165. class="invalid-feedback"
  166. >
  167. <div *ngIf="f.instrumentos.errors.required">
  168. Campo requerido
  169. </div>
  170. </div>
  171. </div>
  172. </div>
  173. <div class="col-lg-6 col-sm-12 pr-xl-3">
  174. <div class="form-group">
  175. <label for="tipo_tasa">Tipo Tasa: </label>
  176. <select
  177. class="custom-select"
  178. formControlName="tipo_tasa"
  179. [ngClass]="{
  180. 'is-invalid': submitted && f.tipo_tasa.errors
  181. }"
  182. >
  183. <option
  184. *ngFor="let item of rates"
  185. [value]="item.id_tipo_tasa"
  186. [selected]="item.id_tipo_tasa == general.tipo_tasa"
  187. >{{ item.nombre }}</option
  188. >
  189. </select>
  190. <div
  191. *ngIf="submitted && f.tipo_tasa.errors"
  192. class="invalid-feedback"
  193. >
  194. <div *ngIf="f.tipo_tasa.errors.required">
  195. Campo requerido
  196. </div>
  197. </div>
  198. </div>
  199. </div>
  200. <div class="col-lg-6 col-sm-12 pr-xl-3">
  201. <div class="form-group">
  202. <label for="tipo_renta">Tipo Renta: </label>
  203. <select
  204. class="custom-select"
  205. formControlName="tipo_renta"
  206. [ngClass]="{
  207. 'is-invalid': submitted && f.tipo_renta.errors
  208. }"
  209. >
  210. <option
  211. *ngFor="let item of revenues"
  212. [value]="item.id_tipo_renta"
  213. [selected]="
  214. item.id_tipo_renta == general.tipo_renta
  215. "
  216. >{{ item.nombre }}</option
  217. >
  218. </select>
  219. <div
  220. *ngIf="submitted && f.tipo_renta.errors"
  221. class="invalid-feedback"
  222. >
  223. <div *ngIf="f.tipo_renta.errors.required">
  224. Campo requerido
  225. </div>
  226. </div>
  227. </div>
  228. </div>
  229. <div class="col-lg-6 col-sm-12 pr-xl-3">
  230. <div class="form-group">
  231. <label for="periodicidad">Periodicidad: </label>
  232. <select
  233. class="custom-select"
  234. formControlName="periodicidad"
  235. [ngClass]="{
  236. 'is-invalid': submitted && f.periodicidad.errors
  237. }"
  238. >
  239. <option
  240. *ngFor="let item of periodicities"
  241. [value]="item.id_periodicidad"
  242. [selected]="
  243. item.id_periodicidad == general.periodicidad
  244. "
  245. >
  246. {{ item.nombre }}</option
  247. >
  248. </select>
  249. <div
  250. *ngIf="submitted && f.periodicidad.errors"
  251. class="invalid-feedback"
  252. >
  253. <div *ngIf="f.periodicidad.errors.required">
  254. Campo requerido
  255. </div>
  256. </div>
  257. </div>
  258. </div>
  259. <div class="col-lg-6 col-sm-12 pr-xl-3">
  260. <div class="form-group">
  261. <label for="base_anual">Año base: </label>
  262. <select
  263. class="custom-select"
  264. formControlName="base_anual"
  265. [ngClass]="{
  266. 'is-invalid': submitted && f.base_anual.errors
  267. }"
  268. >
  269. <option
  270. *ngFor="let item of base_types"
  271. [value]="item.id_tipo_base"
  272. [selected]="item.id_tipo_base == general.base_anual"
  273. >{{ item.tipo_base_dias }}/{{
  274. item.tipo_base
  275. }}</option
  276. >
  277. </select>
  278. <div
  279. *ngIf="submitted && f.base_anual.errors"
  280. class="invalid-feedback"
  281. >
  282. <div *ngIf="f.base_anual.errors.required">
  283. Campo requerido
  284. </div>
  285. </div>
  286. </div>
  287. </div>
  288. <div class="col-lg-6 col-sm-12 pr-xl-3">
  289. <div class="form-group">
  290. <label for="casa">Casa: </label>
  291. <ng-select
  292. #casaSelect
  293. [options]="financials"
  294. formControlName="casa"
  295. [ngClass]="{
  296. 'is-invalid': submitted && f.casa.errors
  297. }"
  298. >
  299. </ng-select>
  300. <div
  301. *ngIf="submitted && f.casa.errors"
  302. class="invalid-feedback"
  303. >
  304. <div *ngIf="f.casa.errors.required">
  305. Campo requerido
  306. </div>
  307. </div>
  308. </div>
  309. </div>
  310. <div class="col-lg-6 col-sm-12 pr-xl-3">
  311. <div class="form-group">
  312. <label for="formato_ingreso"
  313. >Formato de ingreso:
  314. </label>
  315. <select
  316. class="custom-select"
  317. formControlName="formato_ingreso"
  318. [ngClass]="{
  319. 'is-invalid': submitted && f.formato_ingreso.errors
  320. }"
  321. >
  322. <option
  323. *ngFor="let item of format_incomes"
  324. [value]="item.id_formato_ingreso"
  325. [selected]="
  326. item.id_formato_ingreso == general.formato_ingreso
  327. "
  328. >
  329. {{ item.nombre }}</option
  330. >
  331. </select>
  332. <div
  333. *ngIf="submitted && f.formato_ingreso.errors"
  334. class="invalid-feedback"
  335. >
  336. <div *ngIf="f.formato_ingreso.errors.required">
  337. Campo requerido
  338. </div>
  339. </div>
  340. </div>
  341. </div>
  342. </div>
  343. <br />
  344. <div class="form-group text-center space-20">
  345. <button
  346. type="submit"
  347. class="btn btn-primary center-component margin-right"
  348. (click)="goToNext(investmentProposalForm)"
  349. >
  350. Siguiente
  351. </button>
  352. </div>
  353. </form>
  354. </div>
  355. </div>
  356. </div>
  357. </div>
  358. </div>
  359. </div>
  360. </div>
  361. </div>