diff --git a/.bowerrc b/.bowerrc
deleted file mode 100755
index cf908ebe..00000000
--- a/.bowerrc
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "registry": "https://registry.bower.io",
- "directory": "bower_components",
- "strict-ssl" : "false"
-}
diff --git a/.drone.yml b/.drone.yml
index 7a0a4188..2c79cfc0 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -1,8 +1,14 @@
kind: pipeline
name: oas_cliente_ci
+trigger:
+ event:
+ exclude:
+ - tag
+
steps:
- name: check_readme
+ failure: ignore
image: jjvargass/qa_develoment:latest
commands:
- python /app/check_readme.py
@@ -10,11 +16,13 @@ steps:
branch:
- develop
- feature/*
+ - hotfix/*
- release/*
event:
- push
- name: check_branch
+ failure: ignore
image: jjvargass/qa_develoment:latest
commands:
- python /app/check_branch.py -H ${DRONE_GIT_HTTP_URL}
@@ -22,36 +30,49 @@ steps:
branch:
- develop
- feature/*
+ - hotfix/*
- release/*
event:
- push
+# SCRIPT NO OBJETIVO:
+# No tiene en cuenta un intervalo de commits sino un intervalo de
+# fechas, y adicionalmente está contando mal los commit multilinea.
+# Step ignorado, aunque deberá ajustarse la imágen docker
- name: check_commits
+ failure: ignore
image: jjvargass/qa_develoment:latest
commands:
- - python /app/check_commits.py
+ - python /app/check_commits.py
when:
branch:
- - develop
- - feature/*
- - release/*
+ - develop
+ - feature/*
+ - hotfix/*
+ - release/*
event:
- - push
+ - push
+
+- name: prueba-unitarias
+ failure: ignore
+ image: node:10
+ commands:
+ - yarn
+ - yarn run test
+ when:
+ branch:
+ - develop
+ - feature/*
+ - hotfix/*
+ - master
+ - release/*
+ - unitest
-# - name: prueba-unitarias
-# image: node:12.6.0
-# commands:
-# - npm i
-# - npm run test
-# when:
-# branch:
-# - unitest
-#
# - name: pruebas-linter
# image: node:12.6.0
# commands:
-# - npm i
-# - npm run lint
+# - yarn
+# - yarn run lint
# when:
# branch:
# - unitest
@@ -67,6 +88,8 @@ steps:
branch:
- develop
- feature/*
+ - hotfix/*
+ - master
- release/*
event:
- push
@@ -74,14 +97,15 @@ steps:
- name: build_release
image: node:10.7.0
commands:
- - npm install -g grunt-cli bower
- - npm install natives
- - npm install
- - bower install --allow-root
+ - yarn
- cp -f app/scripts/environment/environment_test.js app/scripts/environment/environment.js
- - grunt build
+ - yarn run build
when:
branch:
+ - develop
+ - dependabot/**
+ - feature/*
+ - hotfix/*
- release/*
event:
- push
@@ -89,15 +113,13 @@ steps:
- name: build_master
image: node:10.7.0
commands:
- - npm install -g grunt-cli bower
- - npm install natives
- - npm install
- - bower install --allow-root
+ - yarn
- cp -f app/scripts/environment/environment_prod.js app/scripts/environment/environment.js
- - grunt build
+ - yarn run build
when:
branch:
- master
+ - hotfix/*
event:
- push
diff --git a/.gitignore b/.gitignore
index 6bd5cb78..79aa715f 100755
--- a/.gitignore
+++ b/.gitignore
@@ -1,8 +1,8 @@
-/node_modules
-/dist
-/.tmp
-/.sass-cache
-/bower_components
+node_modules
+dist
+*.tmp
+*.log
+.sass-cache
.DS_Store
-.sonar/report-task.txt
-.sonar/.sonar_lock
+.sonar
+package-lock.json
diff --git a/.yo-rc.json b/.yo-rc.json
index 6589676f..f30e4b4b 100755
--- a/.yo-rc.json
+++ b/.yo-rc.json
@@ -5,7 +5,7 @@
"browsers": "PhantomJS",
"app-files": "app/scripts/**/*.js",
"files-comments": "bower:js,endbower",
- "bower-components-path": "bower_components",
+ "bower-components-path": "node_modules/@bower_components",
"test-files": "test/mock/**/*.js,test/spec/**/*.js"
}
}
\ No newline at end of file
diff --git a/Gruntfile.js b/Gruntfile.js
index 9ce8ad6e..077ff60a 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -24,7 +24,7 @@ module.exports = function (grunt) {
// Configurable paths for the application
var appConfig = {
- app: require('./bower.json').appPath || 'app',
+ app: 'app',
dist: 'dist'
};
@@ -36,10 +36,6 @@ module.exports = function (grunt) {
// Watches files for changes and runs tasks based on the changed files
watch: {
- bower: {
- files: ['bower.json'],
- tasks: ['wiredep']
- },
core: {
files: ['<%= yeoman.app %>/core/**/*.js'],
tasks: ['newer:jshint:all', 'newer:jscs:all'],
@@ -92,8 +88,8 @@ module.exports = function (grunt) {
return [
connect.static('.tmp'),
connect().use(
- '/bower_components',
- connect.static('./bower_components')
+ '/node_modules/@bower_components',
+ connect.static('./node_modules/@bower_components')
),
connect().use(
'/app/styles',
@@ -112,8 +108,8 @@ module.exports = function (grunt) {
connect.static('.tmp'),
connect.static('test'),
connect().use(
- '/bower_components',
- connect.static('./bower_components')
+ '/node_modules/@bower_components',
+ connect.static('./node_modules/@bower_components')
),
connect.static(appConfig.app)
];
@@ -210,30 +206,6 @@ module.exports = function (grunt) {
}
},
- // Automatically inject Bower components into the app
- wiredep: {
- app: {
- src: ['<%= yeoman.app %>/index.html'],
- ignorePath: /\.\.\//
- },
- test: {
- devDependencies: true,
- src: '<%= karma.unit.configFile %>',
- ignorePath: /\.\.\//,
- fileTypes: {
- js: {
- block: /(([\s\t]*)\/{2}\s*?bower:\s*?(\S*))(\n|\r|.)*?(\/{2}\s*endbower)/gi,
- detect: {
- js: /'(.*\.js)'/gi
- },
- replace: {
- js: '\'{{filePath}}\','
- }
- }
- }
- }
- },
-
// Renames files for browser caching purposes
filerev: {
dist: {
@@ -408,7 +380,7 @@ module.exports = function (grunt) {
dest: '<%= yeoman.dist %>/core'
}, {
expand: true,
- cwd: 'bower_components/angular-ui-grid/fonts',
+ cwd: 'node_modules/@bower_components/angular-ui-grid/fonts',
src: ['*.eot', '*.svg', '*.ttf', '*.woff'],
dest: '<%= yeoman.dist %>/styles/fonts/'
}, {
@@ -423,7 +395,7 @@ module.exports = function (grunt) {
src: ['generated/*']
}, {
expand: true,
- cwd: 'bower_components/bootstrap/dist',
+ cwd: 'node_modules/@bower_components/bootstrap/dist',
src: 'fonts/*',
dest: '<%= yeoman.dist %>'
}]
@@ -491,7 +463,6 @@ module.exports = function (grunt) {
grunt.task.run([
'clean:server',
- 'wiredep',
'concurrent:server',
'postcss:server',
'connect:livereload',
@@ -506,29 +477,6 @@ module.exports = function (grunt) {
grunt.registerTask('test', [
'clean:server',
- 'wiredep',
- 'concurrent:test',
- 'postcss',
- 'connect:test',
- 'karma'
- ]);
-
- grunt.registerTask('default', [
- 'newer:jshint',
- 'newer:jscs',
- 'test',
- 'build'
- ]);
-
-
- grunt.registerTask('server', 'DEPRECATED TASK. Use the "serve" task instead', function (target) {
- grunt.log.warn('The `server` task has been deprecated. Use `grunt serve` to start a server.');
- grunt.task.run(['serve:' + target]);
- });
-
- grunt.registerTask('test', [
- 'clean:server',
- 'wiredep',
'concurrent:test',
'postcss',
'connect:test',
@@ -537,7 +485,6 @@ module.exports = function (grunt) {
grunt.registerTask('build', [
'clean:dist',
- 'wiredep',
'useminPrepare',
'concurrent:dist',
'postcss',
@@ -545,7 +492,6 @@ module.exports = function (grunt) {
'concat',
'ngAnnotate',
'copy:dist',
- 'cdnify',
'cssmin',
'uglify',
'filerev',
@@ -559,4 +505,4 @@ module.exports = function (grunt) {
'test',
'build'
]);
-};
\ No newline at end of file
+};
diff --git a/README.md b/README.md
index 2d13b5e8..3eeef8a7 100644
--- a/README.md
+++ b/README.md
@@ -5,74 +5,110 @@ En este repositorio se encuentra el cliente del modulo de resoluciones.
## Especificaciones Técnicas
### Tecnologías Implementadas y Versiones
-* [ngxAdmin](https://github.com/akveo/ngx-admin)
-* [Angular 8.0](https://angular.io/)
-* [Bootstrap 4](https://getbootstrap.com/docs/4.5/getting-started/introduction/)
-* [Nebular 4](https://akveo.github.io/nebular/4.6.0/)
+
+* [Angular JS](https://angularjs.org/)
+* [Bootstrap 3](https://getbootstrap.com/docs/3.3/)
+* [Angular JS generator](https://github.com/fabianLeon/oas)
+* [Node.js ~~en la versión estable~~](https://nodejs.org/en/)
+* [yarn](https://classic.yarnpkg.com/lang/en/docs/install/)
### Variables de Entorno
+
```shell
# En Pipeline
-SLACK_AND_WEBHOOK: WEBHOOK de Slack Grupo ci-covid-serverles
AWS_ACCESS_KEY_ID: llave de acceso ID Usuario AWS
AWS_SECRET_ACCESS_KEY: Secreto de Usuario AWS
```
+
### Ejecución del Proyecto
Clonar el proyecto del repositorio de git
+
```bash
# clone the project
git clone https://github.com/udistrital/necesidades-cliente.git
# enter the project directory
cd necesidades-cliente
```
+
Iniciar el servidor en local
+
```bash
# install dependency
-npx npm install
-or
-npm install
+yarn
+
# start server
-npx ng serve
-# Whenever you want to change the port just run
-npx ng dev --port = 9528
+yarn run serve
```
+El cliente se depliega en el 9000; : [Modulo de necesidades](http://0.0.0.0:9000/#/necesidades).
+
+**TO-DO: Configurar yarn o grunt para lint!**
+
+
+
+Para crear el build de la aplicación:
+
+```bash
+yarn run build
```
### Ejecución Dockerfile
+
```bash
# Does not apply
```
+
### Ejecución docker-compose
+
```bash
-# Does not apply
+docker-compose up
```
+
### Ejecución Pruebas
+La pruebas se relizan con [karma](https://karma-runner.github.io/latest/index.html), ejecutar el comando:
+
+```bash
+yarn run test:legacy
+```
+
+Alternativamente:
+
+```bash
+yarn run test
+```
+
+**TO-DO: Revisar si vale la pena pasar a [Jest.js](https://jestjs.io/)**
+
## Estado CI
-| Develop | Relese 0.0.1 | Master |
+| Develop | Release 1.0.0 | Master |
| -- | -- | -- |
-| [![Build Status](https://hubci.portaloas.udistrital.edu.co/api/badges/udistrital/necesidades_cliente/status.svg?ref=refs/heads/develop)](https://hubci.portaloas.udistrital.edu.co/udistrital/necesidades_cliente) | [![Build Status](https://hubci.portaloas.udistrital.edu.co/api/badges/udistrital/necesidades_cliente/status.svg?ref=refs/heads/release/0.0.1)](https://hubci.portaloas.udistrital.edu.co/udistrital/necesidades_cliente) | [![Build Status](https://hubci.portaloas.udistrital.edu.co/api/badges/udistrital/necesidades_cliente/status.svg)](https://hubci.portaloas.udistrital.edu.co/udistrital/necesidades_cliente) |
+| [![Build Status](https://hubci.portaloas.udistrital.edu.co/api/badges/udistrital/necesidades_cliente/status.svg?ref=refs/heads/develop)](https://hubci.portaloas.udistrital.edu.co/udistrital/necesidades_cliente) | [![Build Status](https://hubci.portaloas.udistrital.edu.co/api/badges/udistrital/necesidades_cliente/status.svg?ref=refs/heads/release/1.0.0)](https://hubci.portaloas.udistrital.edu.co/udistrital/necesidades_cliente) | [![Build Status](https://hubci.portaloas.udistrital.edu.co/api/badges/udistrital/necesidades_cliente/status.svg)](https://hubci.portaloas.udistrital.edu.co/udistrital/necesidades_cliente) |
## Licencia
@@ -82,4 +118,4 @@ necesidades-cliente is free software: you can redistribute it and/or modify it u
necesidades-cliente is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-You should have received a copy of the GNU General Public License along with necesidades-cliente. If not, see https://www.gnu.org/licenses/.
+You should have received a copy of the GNU General Public License along with necesidades-cliente. If not, see [LICENSE](LICENSE).
diff --git a/app/core/services/implicit_token.js b/app/core/services/implicit_token.js
index fd229a20..27a88d1f 100644
--- a/app/core/services/implicit_token.js
+++ b/app/core/services/implicit_token.js
@@ -1,4 +1,4 @@
-'use strict';
+"use strict";
/**
* @ngdoc overview
@@ -8,26 +8,27 @@
* Service in the implicitToken.
*/
// First, parse the query string
-if (window.localStorage.getItem('access_token') === null ||
- window.localStorage.getItem('access_token') === undefined) {
+if (
+ window.localStorage.getItem("access_token") === null ||
+ window.localStorage.getItem("access_token") === undefined
+) {
var params = {},
queryString = location.hash.substring(1),
regex = /([^&=]+)=([^&]*)/g;
var m;
- while (m = regex.exec(queryString)) {
+ while ((m = regex.exec(queryString))) {
params[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);
}
// And send the token over to the server
var req = new XMLHttpRequest();
// consider using POST so query isn't logged
- var query = 'https://' + window.location.host + '?' + queryString;
- // console.log(query);
- req.open('GET', query, true);
- if (params['id_token'] !== null && params['id_token'] !== undefined) {
- window.localStorage.setItem('access_token', params['access_token']);
- window.localStorage.setItem('id_token', params['id_token']);
- window.localStorage.setItem('state', params['state']);
- window.localStorage.setItem('expires_in', params['expires_in']);
+ var query = "https://" + window.location.host + "?" + queryString;
+ req.open("GET", query, true);
+ if (params["id_token"] !== null && params["id_token"] !== undefined) {
+ window.localStorage.setItem("access_token", params["access_token"]);
+ window.localStorage.setItem("id_token", params["id_token"]);
+ window.localStorage.setItem("state", params["state"]);
+ window.localStorage.setItem("expires_in", params["expires_in"]);
} else {
window.localStorage.clear();
}
@@ -36,7 +37,7 @@ if (window.localStorage.getItem('access_token') === null ||
if (req.status === 200) {
// window.location = params.state;
} else if (req.status === 400) {
- window.alert('There was an error processing the token.');
+ window.alert("There was an error processing the token.");
} else {
// alert('something else other than 200 was returned');
// console.log(req);
@@ -45,27 +46,30 @@ if (window.localStorage.getItem('access_token') === null ||
};
}
-angular.module('implicitToken', [])
- .factory('token_service', function (CONF, md5, $interval) {
-
+angular
+ .module("implicitToken", [])
+ .factory("token_service", function (CONF, md5, $interval) {
var service = {
//session: $localStorage.default(params),
header: null,
token: null,
logout_url: null,
generateState: function () {
- var text = ((Date.now() + Math.random()) * Math.random()).toString().replace('.', '');
+ var text = ((Date.now() + Math.random()) * Math.random())
+ .toString()
+ .replace(".", "");
return md5.createHash(text);
},
setting_bearer: {
- headers: {}
+ headers: {},
},
getHeader: function () {
service.setting_bearer = {
headers: {
- 'Accept': 'application/json',
- "Authorization": "Bearer " + window.localStorage.getItem('access_token'),
- }
+ Accept: "application/json",
+ Authorization:
+ "Bearer " + window.localStorage.getItem("access_token"),
+ },
};
return service.setting_bearer;
},
@@ -76,57 +80,86 @@ angular.module('implicitToken', [])
if (!CONF.GENERAL.TOKEN.state) {
CONF.GENERAL.TOKEN.state = service.generateState();
}
- var url = CONF.GENERAL.TOKEN.AUTORIZATION_URL + '?' +
- 'client_id=' + encodeURIComponent(CONF.GENERAL.TOKEN.CLIENTE_ID) + '&' +
- 'redirect_uri=' + encodeURIComponent(CONF.GENERAL.TOKEN.REDIRECT_URL) + '&' +
- 'response_type=' + encodeURIComponent(CONF.GENERAL.TOKEN.RESPONSE_TYPE) + '&' +
- 'scope=' + encodeURIComponent(CONF.GENERAL.TOKEN.SCOPE);
+ var url =
+ CONF.GENERAL.TOKEN.AUTORIZATION_URL +
+ "?" +
+ "client_id=" +
+ encodeURIComponent(CONF.GENERAL.TOKEN.CLIENTE_ID) +
+ "&" +
+ "redirect_uri=" +
+ encodeURIComponent(CONF.GENERAL.TOKEN.REDIRECT_URL) +
+ "&" +
+ "response_type=" +
+ encodeURIComponent(CONF.GENERAL.TOKEN.RESPONSE_TYPE) +
+ "&" +
+ "scope=" +
+ encodeURIComponent(CONF.GENERAL.TOKEN.SCOPE);
if (CONF.GENERAL.TOKEN.nonce) {
- url += '&nonce=' + encodeURIComponent(CONF.GENERAL.TOKEN.nonce);
+ url += "&nonce=" + encodeURIComponent(CONF.GENERAL.TOKEN.nonce);
}
- url += '&state=' + encodeURIComponent(CONF.GENERAL.TOKEN.state);
+ url += "&state=" + encodeURIComponent(CONF.GENERAL.TOKEN.state);
window.location = url;
return url;
},
live_token: function () {
- if (window.localStorage.getItem('id_token') === 'undefined' || window.localStorage.getItem('id_token') === null || service.logoutValid()) {
+ if (
+ window.localStorage.getItem("id_token") === "undefined" ||
+ window.localStorage.getItem("id_token") === null ||
+ service.logoutValid()
+ ) {
service.login();
return false;
} else {
service.setting_bearer = {
headers: {
- 'Accept': 'application/json',
- "Authorization": "Bearer " + window.localStorage.getItem('access_token'),
- }
+ Accept: "application/json",
+ Authorization:
+ "Bearer " + window.localStorage.getItem("access_token"),
+ },
};
service.logout_url = CONF.GENERAL.TOKEN.SIGN_OUT_URL;
- service.logout_url += '?id_token_hint=' + window.localStorage.getItem('id_token');
- service.logout_url += '&post_logout_redirect_uri=' + CONF.GENERAL.TOKEN.SIGN_OUT_REDIRECT_URL;
- service.logout_url += '&state=' + window.localStorage.getItem('state');
+ service.logout_url +=
+ "?id_token_hint=" + window.localStorage.getItem("id_token");
+ service.logout_url +=
+ "&post_logout_redirect_uri=" +
+ CONF.GENERAL.TOKEN.SIGN_OUT_REDIRECT_URL;
+ service.logout_url +=
+ "&state=" + window.localStorage.getItem("state");
return true;
}
},
getPayload: function () {
- var id_token = window.localStorage.getItem('id_token').split('.');
+ var id_token = window.localStorage.getItem("id_token").split(".");
return JSON.parse(atob(id_token[1]));
},
logout: function () {
window.location.replace(service.logout_url);
},
expired: function () {
- return (new Date(window.localStorage.getItem('expires_at')) < new Date());
+ return new Date(window.localStorage.getItem("expires_at")) < new Date();
},
setExpiresAt: function () {
- if (angular.isUndefined(window.localStorage.getItem('expires_at')) || window.localStorage.getItem('expires_at') === null) {
+ if (
+ angular.isUndefined(window.localStorage.getItem("expires_at")) ||
+ window.localStorage.getItem("expires_at") === null
+ ) {
var expires_at = new Date();
- expires_at.setSeconds(expires_at.getSeconds() + parseInt(window.localStorage.getItem('expires_in')) - 40); // 40 seconds less to secure browser and response latency
- window.localStorage.setItem('expires_at', expires_at);
+ expires_at.setSeconds(
+ expires_at.getSeconds() +
+ parseInt(window.localStorage.getItem("expires_in")) -
+ 40
+ ); // 40 seconds less to secure browser and response latency
+ window.localStorage.setItem("expires_at", expires_at);
}
},
timer: function () {
- if (!angular.isUndefined(window.localStorage.getItem('expires_at')) || window.localStorage.getItem('expires_at') === null || window.localStorage.getItem('expires_at') === 'Invalid Date') {
+ if (
+ !angular.isUndefined(window.localStorage.getItem("expires_at")) ||
+ window.localStorage.getItem("expires_at") === null ||
+ window.localStorage.getItem("expires_at") === "Invalid Date"
+ ) {
$interval(function () {
if (service.expired()) {
service.logout();
@@ -147,7 +180,7 @@ angular.module('implicitToken', [])
while (!!(m = regex.exec(queryString))) {
state = decodeURIComponent(m[2]);
}
- if (window.localStorage.getItem('state') === state) {
+ if (window.localStorage.getItem("state") === state) {
service.clearStorage();
valid = true;
} else {
@@ -156,12 +189,12 @@ angular.module('implicitToken', [])
return valid;
},
clearStorage: function () {
- window.localStorage.removeItem('access_token');
- window.localStorage.removeItem('id_token');
- window.localStorage.removeItem('expires_in');
- window.localStorage.removeItem('state');
- window.localStorage.removeItem('expires_at');
- }
+ window.localStorage.removeItem("access_token");
+ window.localStorage.removeItem("id_token");
+ window.localStorage.removeItem("expires_in");
+ window.localStorage.removeItem("state");
+ window.localStorage.removeItem("expires_at");
+ },
};
service.setExpiresAt();
service.timer();
diff --git a/app/core/services/notificacion.js b/app/core/services/notificacion.js
index 75c1824c..ba989a59 100755
--- a/app/core/services/notificacion.js
+++ b/app/core/services/notificacion.js
@@ -37,6 +37,8 @@ angular.module('notificacionService', [])
var user = "";
var queryNotification = function () {
+ //Se desactiva ya que se va a usar otro sistema aun no disponible (evitar conflictos en el cliente)
+ if(false){
configuracionRequest.get('notificacion_estado_usuario?query=Usuario:' + payload.sub + ',Activo:true&sortby=notificacion&order=asc&limit=-1', '')
.then(function (response) {
if (response !== null) {
@@ -61,7 +63,9 @@ angular.module('notificacionService', [])
methods.update_novistos();
}
});
+ }
};
+
if (token_service.live_token()) {
payload = token_service.getPayload();
diff --git a/app/core/services/theme.js b/app/core/services/theme.js
index ac5368a0..b753369d 100644
--- a/app/core/services/theme.js
+++ b/app/core/services/theme.js
@@ -24,7 +24,7 @@ angular.module('themeService', [])
* Permite gestionar workflow de notificaciones
*/
-.factory('behaviorTheme', function( CONF, configuracionRequest) {
+.factory('behaviorTheme', function() {
var methods = {
sidebar: {
@@ -53,7 +53,7 @@ angular.module('themeService', [])
},
toogleOpenSideBar: function (){
-
+
var textoMenuLateral = document.getElementsByClassName("menulateral-text");
if (!methods.sidebar.open){
for(var i =0, il = textoMenuLateral.length;i
-
-
-
- Necesidades
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ Necesidades
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/app/scripts/app.js b/app/scripts/app.js
index 7be90b0e..8e71aaf4 100755
--- a/app/scripts/app.js
+++ b/app/scripts/app.js
@@ -44,9 +44,9 @@ angular
'financieraService',
'planCuentasService',
'planCuentasMidService',
+ 'planAdquisicionService',
'metasService',
'catalogoService',
- 'coreService',
'coreAmazonService',
'parametrosGobiernoService',
'parametrosService',
@@ -59,7 +59,6 @@ angular
'necesidadesCrudService',
'amazonAdministrativaService',
'academicaService',
- 'contratoService',
'gridOptionsService',
'configuracionService',
'requestService',
@@ -69,6 +68,9 @@ angular
'ngMaterial',
'md-steppers',
'implicitToken',
+ 'terceroCrudService',
+ 'terceroMidService',
+ 'movimientosCrudService',
'core'
])
.run(function (amMoment) {
diff --git a/app/scripts/controllers/cdp/cdp_consulta.js b/app/scripts/controllers/cdp/cdp_consulta.js
index 30888ff8..4211bcdb 100755
--- a/app/scripts/controllers/cdp/cdp_consulta.js
+++ b/app/scripts/controllers/cdp/cdp_consulta.js
@@ -11,7 +11,7 @@ angular.module('contractualClienteApp')
.factory("disponibilidad", function() {
return {};
})
- .controller('CdpCdpConsultaCtrl', function($location,$filter, $window, $scope, $translate, disponibilidad, financieraRequest, financieraMidRequest, agoraRequest, gridApiService) {
+ .controller('CdpCdpConsultaCtrl', function($location,$filter, $scope, $translate, financieraRequest, financieraMidRequest, agoraRequest, gridApiService) {
var self = this;
self.offset = 0;
self.cargando = false;
@@ -216,7 +216,7 @@ angular.module('contractualClienteApp')
angular.forEach(self.gridOptions_rubros.data, function(data) {
if ($scope.apropiaciones.indexOf(data.Apropiacion.Id) === -1) {
$scope.apropiaciones.push(data.Apropiacion.Id);
- }
+ }
var rp = {
Disponibilidad: data.Disponibilidad, // se construye rp auxiliar para obtener el saldo del CDP para la apropiacion seleccionada
diff --git a/app/scripts/controllers/cdp/cdp_solicitud_consulta.js b/app/scripts/controllers/cdp/cdp_solicitud_consulta.js
index d67fd7de..871de553 100755
--- a/app/scripts/controllers/cdp/cdp_solicitud_consulta.js
+++ b/app/scripts/controllers/cdp/cdp_solicitud_consulta.js
@@ -12,7 +12,7 @@ angular.module('contractualClienteApp')
.factory("solicitud_disponibilidad",function(){
return {};
})
- .controller('CdpCdpSolicitudConsultaCtrl', function ($scope,$filter,administrativaRequest,solicitud_disponibilidad,financieraRequest,financieraMidRequest, $translate) {
+ .controller('CdpCdpSolicitudConsultaCtrl', function ($scope,$filter,administrativaRequest,financieraRequest,financieraMidRequest, $translate) {
var self = this;
self.alerta = "";
self.cargando = false;
diff --git a/app/scripts/controllers/main.js b/app/scripts/controllers/main.js
index 3f7b38b7..d47e5f90 100755
--- a/app/scripts/controllers/main.js
+++ b/app/scripts/controllers/main.js
@@ -8,10 +8,20 @@
* Controller of the contractualClienteApp
*/
angular.module('contractualClienteApp')
- .controller('MainCtrl', function () {
+ .controller('MainCtrl', function (terceroCrudRequest) {
this.awesomeThings = [
'HTML5 Boilerplate',
'AngularJS',
'Karma'
];
+
+ //Guarda el idTercero de quien ingreso al cliente
+ var id_token = window.localStorage.getItem('id_token').split('.');
+ var payload = JSON.parse(atob(id_token[1]));
+ var tipo = payload.documento_compuesto.split(payload.documento)
+ terceroCrudRequest.get("datos_identificacion?limit=-1&fields=TerceroId&query=TipoDocumentoId__CodigoAbreviacion%3A"+ tipo[0] +"%2CNumero%3A" + payload.documento)
+ .then(function(res){
+ window.localStorage.setItem("idTercero", res.data[0].TerceroId.Id);
+ })
+
});
diff --git a/app/scripts/controllers/menu.js b/app/scripts/controllers/menu.js
index e65571d0..a6de841a 100755
--- a/app/scripts/controllers/menu.js
+++ b/app/scripts/controllers/menu.js
@@ -1,7 +1,7 @@
'use strict';
angular.module('contractualClienteApp')
- .controller('menuCtrl', function ($location, $window, $q, requestRequest, $scope, token_service, notificacion, $translate, $route, $mdSidenav, configuracionRequest, $rootScope, $http) {
+ .controller('menuCtrl', function ($location, $window, requestRequest, $scope, token_service, notificacion, $translate, $mdSidenav, configuracionRequest, $rootScope, $http) {
var self = this;
$scope.token_service = token_service;
$scope.$on('$routeChangeStart', function (scope, next, current) {
diff --git a/app/scripts/controllers/necesidad/necesidad_reportes.js b/app/scripts/controllers/necesidad/necesidad_reportes.js
index 6e672c09..7e29f5ae 100644
--- a/app/scripts/controllers/necesidad/necesidad_reportes.js
+++ b/app/scripts/controllers/necesidad/necesidad_reportes.js
@@ -8,7 +8,7 @@
* Controller of the clienteApp
*/
angular.module('contractualClienteApp')
- .controller('NecesidadReportesCtrl', function (necesidadService, adminMidRequest, resolucion, administrativaRequest, $scope, $window, $mdDialog, $translate) {
+ .controller('NecesidadReportesCtrl', function (necesidadService, $translate) {
var self = this;
self.nombreReporte = "";
self.resolucionId = 0;
diff --git a/app/scripts/controllers/necesidad/necesidades.js b/app/scripts/controllers/necesidad/necesidades.js
index f17d0561..c82d329f 100755
--- a/app/scripts/controllers/necesidad/necesidades.js
+++ b/app/scripts/controllers/necesidad/necesidades.js
@@ -8,7 +8,7 @@
* Controller of the contractualClienteApp
*/
angular.module('contractualClienteApp')
- .controller('NecesidadesCtrl', function ($scope, administrativaRequest, planCuentasMidRequest, agoraRequest, parametrosGobiernoRequest, parametrosRequest,catalogoRequest, planCuentasRequest, rolesService, necesidadService, $translate, $window,$http, $mdDialog, gridApiService, necesidadesCrudRequest) {
+ .controller('NecesidadesCtrl', function ($scope, planCuentasMidRequest, agoraRequest, parametrosRequest,catalogoRequest, necesidadService, $translate, $window,$http, $mdDialog, gridApiService, necesidadesCrudRequest) {
var self = this;
self.offset = 0;
self.rechazada = false;
@@ -19,12 +19,13 @@ angular.module('contractualClienteApp')
EditarNecesidad: true,
SolicitarCDP: true,
AprobarCDP: true,
+ CrearPDF: true
};
self.modalidadSel = {};
self.TipoContrato = {};
// self.unidadE = "";
- // self.unidadE = self.unidad_ejecutora_data.filter(function(a){
+ // self.unidadE = self.area_funcional_data.filter(function(a){
// if(a.Id === row.entity.UnidadEjecutora){
// return a.Nombre;
// }
@@ -35,10 +36,12 @@ angular.module('contractualClienteApp')
self.buttons = data;
}); */
- self.unidad_ejecutora_data = [{ Id: 1, Nombre: 'Rector' }, { Id: 2, Nombre: 'Convenios' }];
+ self.area_funcional_data = [{ Id: 1, Nombre: 'Rector' },
+ { Id: 2, Nombre: 'Convenios' },
+ { Id: 3, Nombre: 'IDEXUD' }];
self.buscarUE = function (idUE) {
- self.unidad_ejecutora_data.filter(function (e) {
+ self.area_funcional_data.filter(function (e) {
if (idUE === e.Id) {
return e.Nombre;
} else {
@@ -59,8 +62,8 @@ angular.module('contractualClienteApp')
});
self.gridOptions = {
- paginationPageSizes: [10, 15, 20],
- paginationPageSize: 10,
+ paginationPageSizes: [50, 100, 150],
+ paginationPageSize: 50,
enableRowSelection: true,
enableRowHeaderSelection: false,
enableFiltering: true,
@@ -68,33 +71,21 @@ angular.module('contractualClienteApp')
enableVerticalScrollbar: 0,
useExternalPagination: true,
columnDefs: [{
- field: 'ConsecutivoSolicitud',
+ field: 'Id',
displayName: $translate.instant('NUMERO_SOLICITUD_COMPACTO'),
type: 'number',
headerCellClass: $scope.highlightFilteredHeader + 'text-center text-info',
cellTooltip: function (row) {
- return row.entity.ConsecutivoSolicitud;
- },
- width: '10%'
- },
- {
- field: 'ConsecutivoNecesidad',
- displayName: $translate.instant('NUMERO_NECESIDAD_COMPACTO'),
- type: 'number',
- headerCellClass: $scope.highlightFilteredHeader + 'text-center text-info',
- cellTooltip: function (row) {
- return row.entity.ConsecutivoNecesidad;
+ return row.entity.Id;
},
width: '15%'
- },
- {
- field: 'Id',
- displayName: $translate.instant('NECESIDAD_NO'),
+ },{
+ field: 'Consecutivo',
+ displayName: $translate.instant('NUMERO_NECESIDAD_COMPACTO'),
type: 'number',
- visible: false,
headerCellClass: $scope.highlightFilteredHeader + 'text-center text-info',
cellTooltip: function (row) {
- return row.entity.Id;
+ return row.entity.Consecutivo;
},
width: '15%'
},
@@ -106,7 +97,7 @@ angular.module('contractualClienteApp')
cellTooltip: function (row) {
return row.entity.Vigencia;
},
- width: '10%'
+ width: '15%'
},
{
field: 'EstadoNecesidadId.Nombre',
@@ -124,7 +115,7 @@ angular.module('contractualClienteApp')
cellTooltip: function (row) {
return row.entity.Vigencia;
},
- width: '25%'
+ width: '30%'
},
{
field: 'ver',
@@ -168,7 +159,7 @@ angular.module('contractualClienteApp')
})
}
//servicio
- if(nec.DetalleServicioNecesidad.TipoServicioId) {
+ if(nec.DetalleServicioNecesidad && nec.DetalleServicioNecesidad.TipoServicioId) {
nec.DetalleServicioNecesidad.ValorTotal=0;
nec.DetalleServicioNecesidad.valorIvaUnd=0;
nec.DetalleServicioNecesidad.TipoServicioNombre="";
@@ -180,15 +171,15 @@ angular.module('contractualClienteApp')
})[0].DESCRIPCION;
});
}
-
+
//cps
- if (nec.DetallePrestacionServicioNecesidad.PerfilId) {
+ if (nec.DetallePrestacionServicioNecesidad && nec.DetallePrestacionServicioNecesidad.PerfilId) {
nec.DetallePrestacionServicioNecesidad.PerfilNombre="";
nec.DetallePrestacionServicioNecesidad.PerfilNombre=self.perfil_data.filter(function(p){
return p.Id===nec.DetallePrestacionServicioNecesidad.PerfilId;
})[0].ValorParametro;
}
- if (nec.DetallePrestacionServicioNecesidad.NucleoConocimientoId) {
+ if (nec.DetallePrestacionServicioNecesidad && nec.DetallePrestacionServicioNecesidad.NucleoConocimientoId) {
nec.DetallePrestacionServicioNecesidad.NucleoConocimientoNombre="";
nec.DetallePrestacionServicioNecesidad.NucleoConocimientoArea="";
parametrosRequest.get('parametro', $.param({
@@ -207,21 +198,21 @@ angular.module('contractualClienteApp')
self.numero_el = necesidad.NumeroElaboracion;
self.vigencia = necesidad.Vigencia;
self.modalidadSel = necesidad.ModalidadSeleccion;
-
+
//para mostrar informacion de rechazo
-
-
+
+
// validaciones para los botones: (estado) && (permisos rol)
var aproOrRech = [necesidadService.EstadoNecesidadType.Solicitada.Id, necesidadService.EstadoNecesidadType.Modificada.Id,]
.includes(necesidad.EstadoNecesidadId.Id);
-
+
self.verBotonAprobarSolicitud = necesidadService.EstadoNecesidadType.Guardada.Id===necesidad.EstadoNecesidadId.Id&&necesidad.JustificacionRechazo!==1; // Cuando este Guardada (Borrador)
self.verBotonAprobarNecesidad = aproOrRech && self.buttons.AprobarNecesidad;
self.verBotonRechazarNecesidad = aproOrRech && self.buttons.RechazarNecesidad;
self.verBotonEditarNecesidad = necesidadService.EstadoNecesidadType.Rechazada.Id === necesidad.EstadoNecesidadId.Id || necesidadService.EstadoNecesidadType.Guardada.Id === necesidad.EstadoNecesidadId.Id || necesidadService.EstadoNecesidadType.Modificada.Id === necesidad.EstadoNecesidadId.Id && self.buttons.EditarNecesidad;
self.verBotonSolicidadCDPNecesidad = necesidadService.EstadoNecesidadType.Aprobada.Id === necesidad.EstadoNecesidadId.Id && self.buttons.SolicitarCDP;
self.verBotonAprobarCDPNecesidad = necesidadService.EstadoNecesidadType.CDPExpedido.Id === necesidad.EstadoNecesidadId.Id && self.buttons.AprobarCDP;
-
+ self.verBotonCrearPDFNecesidad = necesidadService.EstadoNecesidadType.Aprobada.Id === necesidad.EstadoNecesidadId.Id && self.buttons.CrearPDF || self.buttons.AprobarCDP || self.buttons.SolicitarCDP;
$("#myModal").modal();
}
});
@@ -246,10 +237,9 @@ angular.module('contractualClienteApp')
var req = necesidadesCrudRequest.get('necesidad', $.param({
limit: self.gridOptions.paginationPageSize,
offset: offset,
- sortby: "ConsecutivoSolicitud",
+ sortby: "Id",
order: "desc"
}, true));
-
req.then(gridApiService.paginationFunc(self.gridOptions, offset));
return req;
};
@@ -278,8 +268,8 @@ angular.module('contractualClienteApp')
if (l.data !== undefined) {
swal(
{
- title: 'Se ha creado la Solicitud de necesidad N° ' + self.necesidad.Necesidad.ConsecutivoSolicitud + ' exitosamente. ',
- text: 'El borrador de la solicitud se ha aprobado y se ha generado la Solicitud de Necesidad N°' + self.necesidad.Necesidad.ConsecutivoSolicitud ,
+ title: 'Se ha creado la Solicitud de necesidad N° ' + self.necesidad.Necesidad.Id + ' exitosamente. ',
+ text: 'El borrador de la solicitud se ha aprobado y se ha generado la Solicitud de Necesidad N°' + self.necesidad.Necesidad.Id ,
type: "success",
width: 600,
showCloseButton: true,
@@ -297,7 +287,7 @@ angular.module('contractualClienteApp')
}
});
};
-
+
self.aprobar_necesidad = function () {
@@ -314,25 +304,43 @@ angular.module('contractualClienteApp')
)
return
}
- self.necesidad.Necesidad.EstadoNecesidadId = necesidadService.EstadoNecesidadType.Aprobada;
- self.necesidad.Necesidad.ModalidadSeleccionId = self.modalidadSel;
- self.necesidad.Necesidad.TipoContratoId = self.TipoContrato.Id;
- self.necesidad.Necesidad.ConsecutivoNecesidad=self.necesidad.Necesidad.Id+16;
- necesidadesCrudRequest.put('necesidad', self.necesidad.Necesidad.Id, self.necesidad.Necesidad).then(function (l) {
- if (l.data !== undefined) {
+ const necesidadCopia=JSON.parse(JSON.stringify(self.necesidad.Necesidad));
+
+ necesidadCopia.EstadoNecesidadId = necesidadService.EstadoNecesidadType.Aprobada;
+ necesidadCopia.ModalidadSeleccionId = self.modalidadSel;
+ necesidadCopia.TipoContratoId = self.TipoContrato.Id;
+
+ necesidadesCrudRequest.put('necesidad', necesidadCopia.Id, necesidadCopia).then(function (l) {
+ console.log(l.headers());
+ if (l.data !== undefined && l.data.Id !== 0 && l.status === 200) {
+ self.necesidad.Necesidad.EstadoNecesidadId = necesidadCopia.EstadoNecesidadId;
+ self.necesidad.Necesidad.ModalidadSeleccionId = necesidadCopia.ModalidadSeleccionId;
+ self.necesidad.Necesidad.TipoContratoId = necesidadCopia.TipoContratoId;
swal(
{
- title: 'Se ha creado la Necesidad N° '+self.necesidad.Necesidad.ConsecutivoNecesidad +' exitosamente. ',
- text: 'La solicitud de necesidad '+self.necesidad.Necesidad.ConsecutivoSolicitud+' ha sido aprobada y se ha generado la Necesidad N°' + self.necesidad.Necesidad.ConsecutivoNecesidad ,
- type: "success",
- width: 600,
- showCloseButton: true,
- confirmButtonText: $translate.instant("CERRAR")
- }
- );
- self.cargarDatosNecesidades(self.offset, self.query);
- $("#myModal").modal("hide");
+ title: 'Se ha creado la Necesidad N° '+self.necesidad.Necesidad.Id +' exitosamente. ',
+ text: 'La solicitud de necesidad ha sido aprobada y se ha generado la Necesidad N°' + self.necesidad.Necesidad.Id ,
+ type: "success",
+ width: 600,
+ showCloseButton: true,
+ confirmButtonText: $translate.instant("CERRAR")
+ }
+ );
+ self.cargarDatosNecesidades(self.offset, self.query);
+ $("#myModal").modal("hide");
+ } else if(l.status === 409){
+ swal(
+ {
+ title: 'No hay monto disponible en el Rubro '+self.necesidad.Rubros[0].RubroId,
+ text: 'Se recomienda cambiar el rubro con un mayor monto que cubra el valor de la necesidad',
+ type: "error",
+ width: 600,
+ showCloseButton: true,
+ confirmButtonText: $translate.instant("CERRAR")
+ }
+ );
+ $("#myModal").modal("hide");
} else {
swal(
$translate.instant("ERROR"),
@@ -379,7 +387,7 @@ angular.module('contractualClienteApp')
if (response.status === 200 || response.status === 201) {
swal(
{
- title: 'Se ha rechazado la Solicitud de Necesidad N° '+self.necesidad.Necesidad.ConsecutivoSolicitud,
+ title: 'Se ha rechazado la Solicitud de Necesidad N° '+self.necesidad.Necesidad.Id,
text: 'La solicitud de necesidad ha sido rechazada',
type: "success",
width: 600,
@@ -427,6 +435,14 @@ angular.module('contractualClienteApp')
});
};
+ self.crear_pdf_necesidad = function () {
+ var idNecesidad = self.g_necesidad.Id;
+ $("#myModal").modal("hide");
+ $('#myModal').on('hidden.bs.modal', function () {
+ $window.location.href = '#/necesidad/necesidad-pdf/' + idNecesidad;
+ });
+ };
+
self.solicitar_cdp = function () {
planCuentasMidRequest.post("cdp/solicitarCDP", self.necesidad.Necesidad).then(
function (response) {
@@ -437,7 +453,7 @@ angular.module('contractualClienteApp')
necesidadesCrudRequest.put('necesidad', self.necesidad.Necesidad.Id, self.necesidad.Necesidad).then(function (resp_nececesidad) {
if (resp_nececesidad.status === 200 || resp_nececesidad.status === 201) {
swal(
-
+
{
title: 'Se ha creado la solicitud de CDP N° '+consec_cdp,
text: $translate.instant("CDP_SOLICITADO"),
@@ -471,11 +487,11 @@ angular.module('contractualClienteApp')
};
self.aprobar_cdp = function () {
-
+
var actualizar_cdp = {
_id: self.necesidad.documento_cdp._id,
vigencia: self.necesidad.documento_cdp.Vigencia,
- area_funcional: self.necesidad.documento_cdp.CentroGestor,
+ area_funcional: self.necesidad.documento_cdp.CentroGestor,
}
planCuentasMidRequest.post("cdp/aprobar_cdp",actualizar_cdp ).then(
function (response) {
@@ -486,7 +502,7 @@ angular.module('contractualClienteApp')
necesidadesCrudRequest.put('necesidad', self.necesidad.Necesidad.Id, self.necesidad.Necesidad).then(function (resp_nececesidad) {
if (resp_nececesidad.status === 200 || resp_nececesidad.status === 201) {
swal(
-
+
{
title: 'Se ha aprobado el CDP N° '+self.necesidad.documento_cdp.Consecutivo,
text: $translate.instant("CDP_APROBADO"),
diff --git a/app/scripts/controllers/necesidad/pdfnecesidad.js b/app/scripts/controllers/necesidad/pdfnecesidad.js
index 5f44322d..f3a9e8eb 100644
--- a/app/scripts/controllers/necesidad/pdfnecesidad.js
+++ b/app/scripts/controllers/necesidad/pdfnecesidad.js
@@ -10,22 +10,18 @@
angular.module('contractualClienteApp')
.controller('PdfnecesidadCtrl', function (pdfMakerNecesidadesService, $scope, $routeParams, necesidadService) {
var self = this;
-
- $scope.IdNecesidad = $scope.IdNecesidad;
+ $scope.IdNecesidad = $routeParams.IdNecesidad;
self.generarNecesidad = function (IdNecesidad) {
- necesidadService.initNecesidad(IdNecesidad).then(function (trNecesidad) {
- trNecesidad=trNecesidad[0];
+ necesidadService.getFullNecesidad(IdNecesidad).then(function (trNecesidad) {
+ trNecesidad=trNecesidad.data.Body;
$scope.trNecesidad = trNecesidad;
-
- pdfMakerNecesidadesService.docDefinition($scope.trNecesidad).then(function (docDefinition) {
+ pdfMakerNecesidadesService.docDefinition(trNecesidad).then(function (docDefinition) {
var a = pdfMake.createPdf(docDefinition);
a.getDataUrl(function (outDoc) {
document.querySelector('#vistaPDF').src = outDoc;
});
});
-
-
});
};
self.generarNecesidad($scope.IdNecesidad);
diff --git a/app/scripts/controllers/necesidad/solicitud_necesidad.js b/app/scripts/controllers/necesidad/solicitud_necesidad.js
index e3b538cb..9fe96415 100755
--- a/app/scripts/controllers/necesidad/solicitud_necesidad.js
+++ b/app/scripts/controllers/necesidad/solicitud_necesidad.js
@@ -1,1198 +1,1813 @@
-'use strict';
+"use strict";
/**
- *
+ *
* @ngdoc function
* @name contractualClienteApp.controller:NecesidadSolicitudNecesidadCtrl
* @description
* # NecesidadSolicitudNecesidadCtrl
* Controller of the contractualClienteApp
*/
-angular.module('contractualClienteApp')
- .controller('SolicitudNecesidadCtrl', function (administrativaRequest, necesidadesCrudRequest, planCuentasRequest, planCuentasMidRequest, $scope, $sce, $http, $filter, $window , agoraRequest, parametrosGobiernoRequest, parametrosRequest,catalogoRequest, coreAmazonRequest, $translate, $routeParams, necesidadService) {
- var self = this;
- //inicializar Necesidad
- self.Necesidad = {
- DependenciaNecesidadId: {
- InterventorId: undefined,
- JefeDepDestinoId: undefined,
- JefeDepSolicitanteId: undefined,
- SupervisorId: undefined
- },
- Vigencia: new Date().getFullYear() + "",
- Valor: 0,
+angular
+ .module("contractualClienteApp")
+ .controller(
+ "SolicitudNecesidadCtrl",
+ function (
+ necesidadesCrudRequest,
+ planCuentasMidRequest,
+ $scope,
+ $sce,
+ $http,
+ $filter,
+ $window,
+ agoraRequest,
+ parametrosRequest,
+ catalogoRequest,
+ coreAmazonRequest,
+ $translate,
+ $routeParams,
+ necesidadService,
+ planAdquisicionRequest,
+ configuracionRequest,
+ terceroMidRequest
+ ) {
+ var self = this;
+ //inicializar Necesidad
+ self.Necesidad = {
+ DependenciaNecesidadId: {
+ InterventorId: undefined,
+ JefeDepDestinoId: undefined,
+ JefeDepSolicitanteId: undefined,
+ SupervisorId: undefined,
+ },
+ Valor: 0,
+ };
+ //inicializar objetos necesidad
+ self.DetalleServicioNecesidad = {};
+ self.DetallePrestacionServicioNecesidad = {};
+ self.ProductosCatalogoNecesidad = [];
+ self.MarcoLegalNecesidad = [];
+ self.ActividadEspecificaNecesidad = [];
+ self.RequisitoMinimoNecesidad = [];
+ self.ActividadEconomicaNecesidad = [];
+ self.Rubros = [];
+ self.tempRubros = [];
+ self.movimiento = [];
+
+ // se obtiene idnecesidad de la ruta
+ self.IdNecesidad = $routeParams.IdNecesidad;
+ self.iva_data = undefined;
+ self.documentos = [];
+ self.avance = undefined;
+ self.formuIncompleto = true;
+ self.meta = undefined;
+ self.meta_necesidad = {
+ Meta: undefined,
+ Actividades: [],
+ MontoPorMeta: 0,
+ };
+ self.actividades = undefined;
+ self.apSelected = false;
+ self.apSelectedOb = undefined;
+ self.jefes_dep_data = undefined;
+ self.producto_catalogo = {};
+ self.producto_catalogo.RequisitosMinimos = [];
+
+ // obtener vigencia, provisional
+ self.fecha_actual = new Date();
+ self.deepCopy = function (obj) {
+ return JSON.parse(JSON.stringify(obj));
+ };
+ self.anos = 0;
+ self.meses = 0;
+ self.dias = 0;
+
+ self.enviando = false;
+ self.mostrarFinanciacion = false;
+
+ self.DuracionEspecial = "unico_pago";
+ self.fecha = new Date();
+ self.ActividadEspecifica = [];
+ self.especificaciones = [];
+ self.requisitos_minimos = [];
+ self.actividades_economicas = [];
+ self.actividades_economicas_id = [];
+ self.productos = [];
+ self.servicio_valor = 0;
+ self.valor_compra_servicio = 0;
+ self.meta_valor = 0;
+ self.asd = [];
+ self.valorTotalEspecificaciones = 0;
+ self.subtotalEspecificaciones = 0;
+ self.valorIVA = 0;
+ self.FormularioSeleccionado = 0;
+ self.tipoInterventor = false;
+
+ self.duracionEspecialMap = {
+ duracion: [true, false, false, undefined],
+ unico_pago: [true, true, false, undefined],
+ agotar_presupuesto: [true, false, true, undefined],
+ };
+
+ self.elaborando_necesidad = false; //variable que se toma como cirterio para reiniciar objetos, verdadera en primer cambio de form
+ self.SeccionesFormulario = {
+ // control stepper
+ general: {
+ activo: true,
+ completado: true,
+ },
+ financiacion: {
+ activo: true,
+ completado: true,
+ },
+ legal: {
+ activo: true,
+ completado: true,
+ },
+ contratacion: {
+ activo: true,
+ completado: true,
+ },
+ };
+
+ //Se asigna la lista de dependencias asociados al usuario o tercero que ingreso
+ terceroMidRequest
+ .get(
+ "propiedad/dependencia/" + window.localStorage.getItem("idTercero")
+ )
+ .then(function (Dependencias) {
+ //trae lista dependencias
+ if (Dependencias.data !== null) {
+ self.dependencia_soli_data = Dependencias.data;
+ } else {
+ swal({
+ title: "Sin dependencias",
+ type: "error",
+ text: "No tiene dependencias relacionadas",
+ showCloseButton: true,
+ confirmButtonText: $translate.instant("CERRAR"),
+ });
+ }
+ });
+ // El tipo de solicitud de contrato
+ self.duracionEspecialFunc = function (especial) {
+ // calculo de unidades de tiempo
+ self.Necesidad.DiasDuracion = necesidadService.calculo_total_dias(
+ self.anos,
+ self.meses,
+ self.dias
+ );
+ var s = self.duracionEspecialMap[especial];
+ if (!s) {
+ return;
}
- //inicializar objetos necesidad
- self.DetalleServicioNecesidad = {};
- self.DetallePrestacionServicioNecesidad = {};
- self.ProductosCatalogoNecesidad = [];
- self.MarcoLegalNecesidad = [];
- self.ActividadEspecificaNecesidad = [];
- self.RequisitoMinimoNecesidad = [];
- self.ActividadEconomicaNecesidad = [];
- self.Rubros = [];
-
- // se obtiene idnecesidad de la ruta
- self.IdNecesidad = $routeParams.IdNecesidad;
- self.iva_data = undefined;
- self.documentos = [];
- self.avance = undefined;
- self.formuIncompleto = true;
- self.meta = undefined;
- self.meta_necesidad = {
- Meta: undefined,
- Actividades: [],
- MontoPorMeta: 0
- };
- self.actividades = undefined;
- self.apSelected = false;
- self.apSelectedOb = undefined;
- self.jefes_dep_data = undefined;
- self.producto_catalogo = {};
- self.producto_catalogo.RequisitosMinimos = [];
-
- // obtener vigencia, provisional
- self.fecha_actual = new Date();
- self.vigencia = "2019";
- self.deepCopy = function (obj) {
- return JSON.parse(JSON.stringify(obj));
- };
- self.anos = 0;
- self.meses = 0;
- self.dias = 0;
-
- self.enviando = false;
-
- self.DuracionEspecial = 'unico_pago';
- self.fecha = new Date();
- self.ActividadEspecifica = [];
- self.especificaciones = [];
- self.requisitos_minimos = [];
- self.actividades_economicas = [];
- self.actividades_economicas_id = [];
- self.productos = [];
- self.servicio_valor = 0;
- self.valor_compra_servicio = 0;
- self.meta_valor = 0;
- self.asd = [];
- self.valorTotalEspecificaciones = 0;
- self.subtotalEspecificaciones = 0;
- self.valorIVA = 0;
- self.FormularioSeleccionado = 0;
- self.tipoInterventor = false;
-
- // para mostrar select de plan adquisicion, no existe servicio
- self.planes_anuales = [{
- Id: 1,
- Nombre: "Plan de Adquisición 2019"
- }];
-
- self.duracionEspecialMap = {
- duracion: [true, false, false, undefined],
- unico_pago: [true, true, false, undefined],
- agotar_presupuesto: [true, false, true, undefined]
- };
-
- self.elaborando_necesidad=false; //variable que se toma como cirterio para reiniciar objetos, verdadera en primer cambio de form
- self.SeccionesFormulario = { // control stepper
- general: {
- activo: true,
- completado: true,
- },
- financiacion: {
- activo: true,
- completado: true,
- },
- legal: {
- activo: true,
- completado: true,
- },
- contratacion: {
- activo: true,
- completado: true,
+ self.ver_duracion_fecha = s[0];
+ };
+
+ self.duracionEspecialReverse = function () {
+ self.ver_duracion_fecha = true;
+ };
+
+ self.recibirNecesidad = function (res) {
+ // recibir el objeto del mid o un nuevo objeto y realizar mapeo correspondiente
+ var trNecesidad = res.data ? res.data.Body : res; // identifica si viene del mid o es nuevo
+ self.Necesidad = trNecesidad.Necesidad;
+ if (self.Necesidad.DependenciaNecesidadId) {
+ self.Necesidad.DependenciaNecesidadId.JefeDepSolicitanteId ? necesidadService.get_info_dependencia(
+ self.Necesidad.DependenciaNecesidadId.JefeDepSolicitanteId
+ ).then(function (response) {
+ self.dependencia_solicitante = response.dependencia.Id; // traer dependencias partiendo de jefe de dependencia almacenado en necesidad
+ }) : _;
+ self.Necesidad.DependenciaNecesidadId.JefeDepDestinoId ? necesidadService.get_info_dependencia(
+ self.Necesidad.DependenciaNecesidadId.JefeDepDestinoId
+ ).then(function (response) {
+ self.dependencia_destino = response.dependencia.Id;
+ }) : _;
+
+ if (self.Necesidad.DependenciaNecesidadId.OrdenadorGastoId) {
+ necesidadService
+ .get_info_dependencia(self.Necesidad.DependenciaNecesidadId.OrdenadorGastoId)
+ .then(function (response) {
+ self.rol_ordenador_gasto = response.dependencia.Id;
+ });
+ }
+ if (self.Necesidad.DependenciaNecesidadId.InterventorId === 0) {//verifica si es supervisor o interventor
+ self.tipoInterventor = false;
+ if (self.Necesidad.DependenciaNecesidadId.SupervisorId) {
+ necesidadService.get_info_dependencia(
+ self.Necesidad.DependenciaNecesidadId.SupervisorId
+ ).then(function (response) {
+ self.dependencia_supervisor = response.dependencia.Id;
+ });
}
- };
-
-
- // El tipo de solicitud de contrato
- self.duracionEspecialFunc = function (especial) {// calculo de unidades de tiempo
- self.Necesidad.DiasDuracion = necesidadService.calculo_total_dias(self.anos, self.meses, self.dias);
- var s = self.duracionEspecialMap[especial];
- if (!s) { return; }
-
- self.ver_duracion_fecha = s[0];
- };
-
- self.duracionEspecialReverse = function () {
- self.ver_duracion_fecha = true
-
- };
-
- self.recibirNecesidad = function (res) { // recibir el objeto del mid o un nuevo objeto y realizar mapeo correspondiente
- var trNecesidad;
- res.data ? trNecesidad = res.data.Body : trNecesidad = res; // identifica si viene del mid o es nuevo
- self.Necesidad = trNecesidad.Necesidad;
- if (self.Necesidad.DependenciaNecesidadId) {
- self.Necesidad.DependenciaNecesidadId.JefeDepSolicitanteId ? necesidadService.get_info_dependencia(self.Necesidad.DependenciaNecesidadId.JefeDepSolicitanteId).then(function (response) {
- self.dependencia_solicitante = response.dependencia.Id; // traer dependencias partiendo de jefe de dependencia almacenado en necesidad
-
- }) : _;
- self.Necesidad.DependenciaNecesidadId.JefeDepDestinoId ? necesidadService.get_info_dependencia(self.Necesidad.DependenciaNecesidadId.JefeDepDestinoId).then(function (response) {
- self.dependencia_destino = response.dependencia.Id;
- }) : _;
-
- self.Necesidad.DependenciaNecesidadId.OrdenadorGastoId ? necesidadService.get_info_dependencia(self.Necesidad.DependenciaNecesidadId.OrdenadorGastoId).then(function (response) {
- self.rol_ordenador_gasto = response.dependencia.Id;
- }) : _;
-
- if (self.Necesidad.DependenciaNecesidadId.InterventorId === 0) {//verifica si es supervisor o interventor
- self.tipoInterventor = false;
- self.Necesidad.DependenciaNecesidadId.SupervisorId ? necesidadService.get_info_dependencia(self.Necesidad.DependenciaNecesidadId.SupervisorId).then(function(response){
- self.dependencia_supervisor = response.dependencia.Id;
- }) : _;
- } else {
- self.tipoInterventor = true;
- self.Necesidad.DependenciaNecesidadId.InterventorId ? self.dependencia_supervisor = necesidadService.getInfoPersonaNatural(self.Necesidad.DependenciaNecesidadId.InterventorId) : _;
- }
-
+ } else {
+ self.tipoInterventor = true;
+ if (self.Necesidad.DependenciaNecesidadId.InterventorId) {
+ self.dependencia_supervisor = necesidadService
+ .getInfoPersonaNatural(self.Necesidad.DependenciaNecesidadId.InterventorId);
}
- self.DetalleServicioNecesidad = trNecesidad.DetalleServicioNecesidad || {};
-
- self.DetallePrestacionServicioNecesidad = trNecesidad.DetallePrestacionServicioNecesidad || {};
-
-
- // CPS Nucleo Area y Nucleo Area Conocimiento
- if(self.DetallePrestacionServicioNecesidad && self.DetallePrestacionServicioNecesidad.NucleoConocimientoId){
- parametrosRequest.get('parametro', $.param({
- query: 'TipoParametroId:4,Activo:true,Id:' + self.DetallePrestacionServicioNecesidad.NucleoConocimientoId,
- limit: -1
- })).then(function (response) {
-
- if(response.data.Data[0]!= undefined){
- self.DetallePrestacionServicioNecesidad.NucleoId = response.data.Data[0].ParametroPadre.Id;
- parametrosRequest.get('parametro', $.param({
- limit: -1,
- query: 'TipoParametroId:4,ParametroPadreId__isnull:true,Activo:true,Id:'+ self.DetallePrestacionServicioNecesidad.NucleoId
- })).then(function (response2) {
-
- self.nucleoarea=response2.data.Data[0].Id;
-
- });
- }
- setTimeout(function() { // ponser el valor del servicio cuando llegue la necesidad
- self.servicio_valor = self.Necesidad.Valor;
- }, 2000);
-
-
- });
- }
-
-
- self.ProductosCatalogoNecesidad = trNecesidad.ProductosCatalogoNecesidad || [];
-
- parametrosRequest.get('parametro_periodo', $.param({ // traer datos de iva y ponerlos en productos y servivios
+ }
+ }
+ self.DetalleServicioNecesidad =
+ trNecesidad.DetalleServicioNecesidad || {};
+
+ self.DetallePrestacionServicioNecesidad =
+ trNecesidad.DetallePrestacionServicioNecesidad || {};
+
+ // CPS Nucleo Area y Nucleo Area Conocimiento
+ if (
+ self.DetallePrestacionServicioNecesidad &&
+ self.DetallePrestacionServicioNecesidad.NucleoConocimientoId
+ ) {
+ parametrosRequest
+ .get(
+ "parametro",
+ $.param({
+ query:
+ "TipoParametroId:4,Activo:true,Id:" +
+ self.DetallePrestacionServicioNecesidad.NucleoConocimientoId,
limit: -1,
- query: 'ParametroId.TipoParametroId.Id:12,PeriodoId.Activo:true'
- })).then(function (response) {
-
- self.iva_data = self.transformIvaData(response.data.Data);
- self.ProductosCatalogoNecesidad.forEach(function (prod) {
- prod.RequisitosMinimos===null ? prod.RequisitosMinimos=[]:_;
- catalogoRequest.get('elemento', $.param({
- query: "Id:"+prod.CatalogoId,
- fields: 'Id,Nombre',
- limit: -1,
- sortby: "Nombre",
- order: "asc",
- })).then(function (response) {
- prod.ElementoNombre = response.data[0].Nombre;
- });
- if (self.iva_data != undefined) { // calculo valores iva
-
- var tIva = self.getPorcIVAbyId(prod.IvaId);
- prod.Subtotal = prod.Cantidad * prod.Valor;
- prod.ValorIVA = (prod.Subtotal * (tIva / 100)) || 0;
- prod.preciomasIVA = prod.Subtotal + prod.ValorIVA || 0;
-
- }
- });
- var tIva = self.getPorcIVAbyId(self.DetalleServicioNecesidad.IvaId) || 0;
- self.val_iva = (self.DetalleServicioNecesidad.Valor * tIva) / 100 ;
- self.DetalleServicioNecesidad.Valor ? self.DetalleServicioNecesidad.Total = self.val_iva + self.DetalleServicioNecesidad.Valor : _;
- self.DetalleServicioNecesidad.Total ? self.servicio_valor = self.DetalleServicioNecesidad.Total : _;
+ })
+ )
+ .then(function (response) {
+ if (response.data.Data[0] !== undefined) {
+ self.DetallePrestacionServicioNecesidad.NucleoId =
+ response.data.Data[0].ParametroPadreId;
+ parametrosRequest
+ .get(
+ "parametro",
+ $.param({
+ limit: -1,
+ query:
+ "TipoParametroId:4,ParametroPadreId__isnull:true,Activo:true,Id:" +
+ self.DetallePrestacionServicioNecesidad.NucleoId.Id,
+ })
+ )
+ .then(function (response2) {
+ self.nucleoarea = response2.data.Data[0].Id;
+ });
+ }
+ setTimeout(function () {
+ // ponser el valor del servicio cuando llegue la necesidad
+ self.servicio_valor = self.Necesidad.Valor;
+ }, 2000);
});
+ }
+ self.ProductosCatalogoNecesidad =
+ trNecesidad.ProductosCatalogoNecesidad || [];
- self.MarcoLegalNecesidad = trNecesidad.MarcoLegalNecesidad || [];
- self.ActividadEspecificaNecesidad = trNecesidad.ActividadEspecificaNecesidad || [];
- self.RequisitoMinimoNecesidad = trNecesidad.RequisitoMinimoNecesidad || [];
- self.actividades_economicas_id = trNecesidad.ActividadEconomicaNecesidad || [];
- self.ActividadEconomicaNecesidad=[];
- self.Rubros = trNecesidad.Rubros || [];
- self.Rubros.forEach(function (r) {
- r.Fuentes===null ? r.Fuentes =[]:_;
- r.Apropiacion = r.Apropiacion || r.InfoRubro;
- r.Productos ? r.Productos.forEach(function (p) {
- p.InfoProducto ? p = _.merge(p, p.InfoProducto) : _; // mezclar la info de productos de plan cuentas con la de necesidades
- }) : _;
+ parametrosRequest
+ .get(
+ "parametro_periodo",
+ $.param({
+ // traer datos de iva y ponerlos en productos y servivios
+ limit: -1,
+ query: "ParametroId.TipoParametroId.Id:12,PeriodoId.Activo:true",
+ })
+ )
+ .then(function (response) {
+ self.iva_data = self.transformIvaData(response.data.Data);
+ self.ProductosCatalogoNecesidad.forEach(function (prod) {
+ prod.RequisitosMinimos === null
+ ? (prod.RequisitosMinimos = [])
+ : _;
+ catalogoRequest
+ .get(
+ "elemento",
+ $.param({
+ query: "Id:" + prod.CatalogoId,
+ fields: "Id,Nombre",
+ limit: -1,
+ sortby: "Nombre",
+ order: "asc",
+ })
+ )
+ .then(function (response) {
+ prod.ElementoNombre = response.data[0].Nombre;
+ });
+ if (self.iva_data !== undefined) {
+ // calculo valores iva
+
+ var tIva = self.getPorcIVAbyId(prod.IvaId);
+ prod.Subtotal = prod.Cantidad * prod.Valor;
+ prod.ValorIVA = prod.Subtotal * (tIva / 100) || 0;
+ prod.preciomasIVA = prod.Subtotal + prod.ValorIVA || 0;
+ }
});
- self.documentos = trNecesidad.MarcoLegalNecesidad ? trNecesidad.MarcoLegalNecesidad.map(function (d) { return d.MarcoLegalId; }) : []; //id de marcos legales para seleccionar
- self.dependencia_solicitante = trNecesidad.DependenciaNecesidad;
- self.dependencia_destino = trNecesidad.DependenciaNecesidadDestino;
- self.rol_ordenador_gasto = trNecesidad.RolOrdenadorGasto;
- self.duracionEspecialReverse();
- var data = necesidadService.calculo_total_dias_rev(self.Necesidad.DiasDuracion);
- self.anos = data.anos;
- self.meses = data.meses;
- self.dias = data.dias;
- }
-
+ var tIva =
+ self.getPorcIVAbyId(self.DetalleServicioNecesidad.IvaId) || 0;
+ self.val_iva = (self.DetalleServicioNecesidad.Valor * tIva) / 100;
+ self.DetalleServicioNecesidad.Valor
+ ? (self.DetalleServicioNecesidad.Total =
+ self.val_iva + self.DetalleServicioNecesidad.Valor)
+ : _;
+ self.DetalleServicioNecesidad.Total
+ ? (self.servicio_valor = self.DetalleServicioNecesidad.Total)
+ : _;
+ });
+ self.MarcoLegalNecesidad = trNecesidad.MarcoLegalNecesidad || [];
+ self.ActividadEspecificaNecesidad =
+ trNecesidad.ActividadEspecificaNecesidad || [];
+ self.RequisitoMinimoNecesidad =
+ trNecesidad.RequisitoMinimoNecesidad || [];
+ self.actividades_economicas_id =
+ trNecesidad.ActividadEconomicaNecesidad || [];
+ self.ActividadEconomicaNecesidad = [];
- necesidadService.getFullNecesidad(self.IdNecesidad).then(function (res) {
- self.recibirNecesidad(res);
- // en caso de que haya informacion pegada en el localstorage o se acceda de forma irregular a la url
- if(!self.IdNecesidad&&self.Necesidad.Id) {
- self.ResetNecesidad();
- self.dependencia_solicitante=undefined;
- self.dependencia_destino=undefined;
- self.dependencia_supervisor=undefined;
- self.rol_ordenador_gasto=undefined;
- }
- }
+ self.tempRubros = trNecesidad.Rubros || [];
+ self.tempRubros.forEach(function (r) {
+ r.Fuentes === null ? (r.Fuentes = []) : _;
+ r.Apropiacion = r.Apropiacion || r.InfoRubro;
+ if (r.Productos) {
+ r.Productos.forEach(function (p) {
+ if (p.InfoProducto) {
+ p = _.merge(p, p.InfoProducto); // mezclar la info de productos de plan cuentas con la de necesidades
+ }
+ });
+ }
+ });
+ self.documentos = trNecesidad.MarcoLegalNecesidad
+ ? trNecesidad.MarcoLegalNecesidad.map(function (d) {
+ return d.MarcoLegalId;
+ })
+ : []; //id de marcos legales para seleccionar
+ self.dependencia_solicitante = trNecesidad.DependenciaNecesidad;
+ self.dependencia_destino = trNecesidad.DependenciaNecesidadDestino;
+ self.rol_ordenador_gasto = trNecesidad.RolOrdenadorGasto;
+ self.duracionEspecialReverse();
+ var data = necesidadService.calculo_total_dias_rev(
+ self.Necesidad.DiasDuracion
);
- // watchers para actualizar informacion en el localstorage
- $scope.$watch('solicitudNecesidad.Necesidad', function () {
- localStorage.setItem("Necesidad", JSON.stringify(self.Necesidad));
- }, true);
- $scope.$watch('solicitudNecesidad.DetalleServicioNecesidad', function () {
- localStorage.setItem("DetalleServicioNecesidad", JSON.stringify(self.DetalleServicioNecesidad));
- }, true);
- $scope.$watch('solicitudNecesidad.DetallePrestacionServicioNecesidad', function () {
- localStorage.setItem("DetallePrestacionServicioNecesidad", JSON.stringify(self.DetallePrestacionServicioNecesidad));
- }, true);
- $scope.$watch('solicitudNecesidad.ProductosCatalogoNecesidad', function () {
- localStorage.setItem("ProductosCatalogoNecesidad", JSON.stringify(self.ProductosCatalogoNecesidad));
- }, true);
- $scope.$watch('solicitudNecesidad.MarcoLegalNecesidad', function () {
- localStorage.setItem("MarcoLegalNecesidad", JSON.stringify(self.MarcoLegalNecesidad));
- }, true);
- $scope.$watch('solicitudNecesidad.ActividadEspecificaNecesidad', function () {
- localStorage.setItem("ActividadEspecificaNecesidad", JSON.stringify(self.ActividadEspecificaNecesidad));
- }, true);
- $scope.$watch('solicitudNecesidad.RequisitoMinimoNecesidad', function () {
- localStorage.setItem("RequisitoMinimoNecesidad", JSON.stringify(self.RequisitoMinimoNecesidad));
- }, true);
- $scope.$watch('solicitudNecesidad.ActividadEconomicaNecesidad', function () {
- localStorage.setItem("ActividadEconomicaNecesidad", JSON.stringify(self.ActividadEconomicaNecesidad));
- }, true);
- $scope.$watch('solicitudNecesidad.Rubros', function () {
- localStorage.setItem("Rubros", JSON.stringify(self.Rubros));
- }, true);
-
- self.emptyStorage = function () { // funcion para vaciar el localstorage
- var keysToRemove = ["Necesidad", "DetalleServicioNecesidad", "DetallePrestacionServicioNecesidad", "ProductosCatalogoNecesidad", "MarcoLegalNecesidad", "ActividadEspecificaNecesidad", "RequisitoMinimoNecesidad", "ActividadEconomicaNecesidad", "Rubros"];
- keysToRemove.forEach(function (key) {
- localStorage.removeItem(key);
- })
+ self.anos = data.anos;
+ self.meses = data.meses;
+ self.dias = data.dias;
+ };
+
+ necesidadService.getFullNecesidad(self.IdNecesidad).then(function (res) {
+ self.recibirNecesidad(res);
+ // en caso de que haya informacion pegada en el localstorage o se acceda de forma irregular a la url
+ if (!self.IdNecesidad && self.Necesidad.Id) {
+ self.ResetNecesidad();
+ self.dependencia_solicitante = undefined;
+ self.dependencia_destino = undefined;
+ self.dependencia_supervisor = undefined;
+ self.rol_ordenador_gasto = undefined;
}
+ });
- // observa si hay cambio de ruta
- $scope.$on('$locationChangeStart', function( event ) {
- if(self.enviando===true) {
- self.emptyStorage();
- return;
- }
- var answer = confirm("¿Esta seguro de que desea salir de la página, los datos sin guardar podrían perderse?") //mostrar confirmacion de dejar pagina
- if (!answer) {
- event.preventDefault();
- } else {
- self.emptyStorage();
- }
+ //Receptor de Movimiento
+ $scope.$on('pasomovimiento', function (event, args) {
+ if (self.movimiento && self.movimiento.length) {
+ args.forEach(function (mov){
+ self.movimiento.push(mov);
+ });
+ } else {
+ self.movimiento = args;
+ }
+ });
+
+ // watchers para actualizar informacion en el localstorage
+ $scope.$watch(
+ "solicitudNecesidad.Necesidad",
+ function () {
+ localStorage.setItem("Necesidad", JSON.stringify(self.Necesidad));
+ },
+ true
+ );
+ $scope.$watch(
+ "solicitudNecesidad.DetalleServicioNecesidad",
+ function () {
+ localStorage.setItem(
+ "DetalleServicioNecesidad",
+ JSON.stringify(self.DetalleServicioNecesidad)
+ );
+ },
+ true
+ );
+ $scope.$watch(
+ "solicitudNecesidad.DetallePrestacionServicioNecesidad",
+ function () {
+ localStorage.setItem(
+ "DetallePrestacionServicioNecesidad",
+ JSON.stringify(self.DetallePrestacionServicioNecesidad)
+ );
+ },
+ true
+ );
+ $scope.$watch(
+ "solicitudNecesidad.ProductosCatalogoNecesidad",
+ function () {
+ localStorage.setItem(
+ "ProductosCatalogoNecesidad",
+ JSON.stringify(self.ProductosCatalogoNecesidad)
+ );
+ },
+ true
+ );
+ $scope.$watch(
+ "solicitudNecesidad.MarcoLegalNecesidad",
+ function () {
+ localStorage.setItem(
+ "MarcoLegalNecesidad",
+ JSON.stringify(self.MarcoLegalNecesidad)
+ );
+ },
+ true
+ );
+ $scope.$watch(
+ "solicitudNecesidad.ActividadEspecificaNecesidad",
+ function () {
+ localStorage.setItem(
+ "ActividadEspecificaNecesidad",
+ JSON.stringify(self.ActividadEspecificaNecesidad)
+ );
+ },
+ true
+ );
+ $scope.$watch(
+ "solicitudNecesidad.RequisitoMinimoNecesidad",
+ function () {
+ localStorage.setItem(
+ "RequisitoMinimoNecesidad",
+ JSON.stringify(self.RequisitoMinimoNecesidad)
+ );
+ },
+ true
+ );
+ $scope.$watch(
+ "solicitudNecesidad.ActividadEconomicaNecesidad",
+ function () {
+ localStorage.setItem(
+ "ActividadEconomicaNecesidad",
+ JSON.stringify(self.ActividadEconomicaNecesidad)
+ );
+ },
+ true
+ );
+ $scope.$watch(
+ "solicitudNecesidad.Rubros",
+ function () {
+ localStorage.setItem("Rubros", JSON.stringify(self.Rubros));
+ },
+ true
+ );
+
+ self.emptyStorage = function () {
+ // funcion para vaciar el localstorage
+ var keysToRemove = [
+ "Necesidad",
+ "DetalleServicioNecesidad",
+ "DetallePrestacionServicioNecesidad",
+ "ProductosCatalogoNecesidad",
+ "MarcoLegalNecesidad",
+ "ActividadEspecificaNecesidad",
+ "RequisitoMinimoNecesidad",
+ "ActividadEconomicaNecesidad",
+ "Rubros",
+ ];
+ keysToRemove.forEach(function (key) {
+ localStorage.removeItem(key);
});
+ };
+ // observa si hay cambio de ruta
- $scope.$watch('solicitudNecesidad.detalle_servicio_necesidad.NucleoConocimiento', function () {
- if (!self.detalle_servicio_necesidad) { return; }
- parametrosRequest.get('parametro', $.param({
- query: 'TipoParametroId:4,Id:' + self.detalle_servicio_necesidad.NucleoConocimiento,
- limit: -1
- })).then(function (response) {
- if (response.data !== null && response.data.lenght > 0) {
- self.nucleoarea = response.data.Data[0].ParametroPadreId.Id;
- }
-
- }).catch(function (err) {
- console.error(err)
+ $scope.$on("$locationChangeStart", function (event) {
+ if (self.enviando === true) {
+ self.emptyStorage();
+ return;
+ }
+ var answer = confirm(
+ "¿Esta seguro de que desea salir de la página, los datos sin guardar podrían perderse?"
+ ); //mostrar confirmacion de dejar pagina
+ if (!answer) {
+ event.preventDefault();
+ } else {
+ self.emptyStorage();
+ }
+ });
+
+ $scope.$watch(
+ "solicitudNecesidad.detalle_servicio_necesidad.NucleoConocimiento",
+ function () {
+ if (!self.detalle_servicio_necesidad) {
+ return;
+ }
+ parametrosRequest
+ .get(
+ "parametro",
+ $.param({
+ query:
+ "TipoParametroId:4,Id:" +
+ self.detalle_servicio_necesidad.NucleoConocimiento,
+ limit: -1,
+ })
+ )
+ .then(function (response) {
+ if (response.data !== null && response.data.lenght > 0) {
+ self.nucleoarea = response.data.Data[0].ParametroPadreId.Id;
+ }
+ })
+ .catch(function (err) {
+ console.error(err);
});
- }, true);
-
- $scope.$watch('solicitudNecesidad.dependencia_solicitante', function () { // observa cambios en dependencias para traer datos de jefes
- self.jefe_solicitante = null;
- self.dependencia_solicitante ?
- necesidadService.getJefeDependencia(self.dependencia_solicitante).then(function (JD) {
- self.jefe_solicitante = JD.Persona;
- self.Necesidad.DependenciaNecesidadId.JefeDepSolicitanteId = JD.JefeDependencia.Id;
- // self.dependencia_solicitante.JefeDependenciaSolicitante = JD.JefeDependencia.Id; OLD
- }).catch(function (err) {
- }) : _;
- }, true);
-
-
- $scope.$watch('solicitudNecesidad.dependencia_destino', function () {
- self.jefe_destino = null;
- self.dependencia_destino ?
- necesidadService.getJefeDependencia(self.dependencia_destino).then(function (JD) {
- self.jefe_destino = JD.Persona;
- self.Necesidad.DependenciaNecesidadId.JefeDepDestinoId = JD.JefeDependencia.Id;
- }).catch(function (err) {
- }) : _;
-
- }, true);
-
- $scope.$watch('solicitudNecesidad.dependencia_supervisor', function () {
- self.supervisor = null;
- self.dependencia_supervisor ?
- necesidadService.getJefeDependencia(self.dependencia_supervisor).then(function (JD) {
- self.supervisor = JD.Persona;
- self.Necesidad.DependenciaNecesidadId.SupervisorId = JD.JefeDependencia.Id;
- }).catch(function (err) {
- }) : _;
-
-
- }, true);
-
-
- $scope.$watch('solicitudNecesidad.rol_ordenador_gasto', function () {
- self.ordenador_gasto = null;
- self.rol_ordenador_gasto ?
- necesidadService.getJefeDependencia(self.rol_ordenador_gasto).then(function (JD) {
- self.ordenador_gasto = JD.Persona;
- self.Necesidad.DependenciaNecesidadId.OrdenadorGastoId = parseInt(JD.JefeDependencia.Id, 10);
- }).catch(function (err) {
- }) : _;
- }, true);
-
- self.estructura = { // DEFINE QUE CAMPOS SE MUESTRAN
- init: {
- forms: {
- Avances: false,
- Responsables: true,
- General: true,
- ObjetoContractual: true,
- MarcoLegal: true,
- Especificaciones: true,
- Financiamiento: true,
- },
- Responsables: {
- DependenciaSolicitante: true,
- JefeDependenciaSolicitante: true,
- DependenciaDestino: true,
- JefeDependenciaDestino: true,
- OrdenadorGasto: true,
- RolOrdenadorGasto: true,
- },
- General: {
- PlanAnualAdquisiciones: true,
- UnidadEjecutora: true,
- EstudioMercado: true,
- ModalidadSeleccion: true,
- Supervisor: true,
- AnalisisRiesgo: true,
- },
- ObjetoContractual: {
- ObjetoContrato: true,
- JustificacionContrato: true,
- }
- },
- Contratacion: {
- forms: {
- },
- },
- Avances: {
- forms: {
- Avances: true,
- Especificaciones: false,
- },
- General: {
- EstudioMercado: false,
- ModalidadSeleccion: false,
- Supervisor: false,
- },
- },
- ServiciosPublicos: {
- forms: {
- //Avances: false,
- Especificaciones: false,
- },
- General: {
- EstudioMercado: false,
- ModalidadSeleccion: false,
- Supervisor: false,
- },
- }
- };
-
- self.forms = _.extend({}, self.estructura.init.forms);
- self.fields = _.extend({}, self.estructura.init);
-
- var alertInfo = { //alert error formulario
- type: 'error',
- title: 'Complete todos los campos obligatorios en el formulario',
- showConfirmButton: false,
- timer: 2000,
- };
-
- self.validar_formu = function (form) {
- if (form.$invalid) {
- swal(alertInfo);
- return false;
- } else {
- return true;
- }
- };
-
- // especificar si estos watchers cumaplen funcion o eliminarlos
- $scope.$watch('solicitudNecesidad.especificaciones.Valor', function () {
- self.valor_iva = (self.especificaciones.Iva / 100) * self.especificaciones.Valor * self.especificaciones.Cantidad;
- }, true);
-
- $scope.$watch('solicitudNecesidad.especificaciones.Iva', function () {
- self.valor_iva = (self.especificaciones.Iva / 100) * self.especificaciones.Valor * self.especificaciones.Cantidad;
- }, true);
-
- $scope.$watch('solicitudNecesidad.especificaciones.Cantidad', function () {
- self.valor_iva = (self.especificaciones.Iva / 100) * self.especificaciones.Valor * self.especificaciones.Cantidad;
- }, true);
-
- $scope.$watch('solicitudNecesidad.valor_iva', function () {
- self.valor_total = (self.especificaciones.Valor * self.especificaciones.Cantidad) + self.valor_iva;
- }, true);
-
- parametrosRequest.get('parametro', $.param({ //Primer Select NAC
+ },
+ true
+ );
+
+ $scope.$watch(
+ "solicitudNecesidad.dependencia_solicitante",
+ function () {
+ // observa cambios en dependencias para traer datos de jefes
+ self.jefe_solicitante = null;
+ self.dependencia_solicitante
+ ? necesidadService
+ .getJefeDependencia(self.dependencia_solicitante)
+ .then(function (JD) {
+ self.jefe_solicitante = JD.Persona;
+ self.Necesidad.DependenciaNecesidadId.JefeDepSolicitanteId =
+ JD.JefeDependencia.Id;
+ // self.dependencia_solicitante.JefeDependenciaSolicitante = JD.JefeDependencia.Id; OLD
+ })
+ .catch(function (err) { })
+ : _;
+ },
+ true
+ );
+
+ $scope.$watch(
+ "solicitudNecesidad.dependencia_destino",
+ function () {
+ self.jefe_destino = null;
+ self.dependencia_destino
+ ? necesidadService
+ .getJefeDependencia(self.dependencia_destino)
+ .then(function (JD) {
+ self.jefe_destino = JD.Persona;
+ self.Necesidad.DependenciaNecesidadId.JefeDepDestinoId =
+ JD.JefeDependencia.Id;
+ })
+ .catch(function (err) { })
+ : _;
+ },
+ true
+ );
+
+ $scope.$watch(
+ "solicitudNecesidad.dependencia_supervisor",
+ function () {
+ self.supervisor = null;
+ self.dependencia_supervisor
+ ? necesidadService
+ .getJefeDependencia(self.dependencia_supervisor)
+ .then(function (JD) {
+ self.supervisor = JD.Persona;
+ self.Necesidad.DependenciaNecesidadId.SupervisorId =
+ JD.JefeDependencia.Id;
+ })
+ .catch(function (err) { })
+ : _;
+ },
+ true
+ );
+
+ $scope.$watch(
+ "solicitudNecesidad.rol_ordenador_gasto",
+ function () {
+ self.ordenador_gasto = null;
+ self.rol_ordenador_gasto
+ ? necesidadService
+ .getJefeDependencia(self.rol_ordenador_gasto)
+ .then(function (JD) {
+ self.ordenador_gasto = JD.Persona;
+ self.Necesidad.DependenciaNecesidadId.OrdenadorGastoId =
+ parseInt(JD.JefeDependencia.Id, 10);
+ })
+ .catch(function (err) { })
+ : _;
+ },
+ true
+ );
+
+ self.estructura = {
+ // DEFINE QUE CAMPOS SE MUESTRAN
+ init: {
+ forms: {
+ Avances: false,
+ Responsables: true,
+ General: true,
+ ObjetoContractual: true,
+ MarcoLegal: true,
+ Especificaciones: true,
+ Financiamiento: true,
+ },
+ Responsables: {
+ DependenciaSolicitante: true,
+ JefeDependenciaSolicitante: true,
+ DependenciaDestino: true,
+ JefeDependenciaDestino: true,
+ OrdenadorGasto: true,
+ RolOrdenadorGasto: true,
+ },
+ General: {
+ PlanAnualAdquisiciones: true,
+ UnidadEjecutora: true,
+ EstudioMercado: true,
+ ModalidadSeleccion: true,
+ Supervisor: true,
+ AnalisisRiesgo: true,
+ },
+ ObjetoContractual: {
+ ObjetoContrato: true,
+ JustificacionContrato: true,
+ },
+ },
+ Contratacion: {
+ forms: {},
+ },
+ Avances: {
+ forms: {
+ Avances: true,
+ Especificaciones: false,
+ },
+ General: {
+ EstudioMercado: false,
+ ModalidadSeleccion: false,
+ Supervisor: false,
+ },
+ },
+ ServiciosPublicos: {
+ forms: {
+ //Avances: false,
+ Especificaciones: false,
+ },
+ General: {
+ EstudioMercado: false,
+ ModalidadSeleccion: false,
+ Supervisor: false,
+ },
+ },
+ };
+
+ self.forms = _.extend({}, self.estructura.init.forms);
+ self.fields = _.extend({}, self.estructura.init);
+
+ var alertInfo = {
+ //alert error formulario
+ type: "error",
+ title: "Complete todos los campos obligatorios en el formulario",
+ showConfirmButton: false,
+ timer: 2000,
+ };
+
+ self.validar_formu = function (form) {
+ if (form.$invalid) {
+ swal(alertInfo);
+ return false;
+ } else {
+ return true;
+ }
+ };
+
+ // especificar si estos watchers cumaplen funcion o eliminarlos
+ $scope.$watch(
+ "solicitudNecesidad.especificaciones.Valor",
+ function () {
+ self.valor_iva =
+ (self.especificaciones.Iva / 100) *
+ self.especificaciones.Valor *
+ self.especificaciones.Cantidad;
+ },
+ true
+ );
+
+ $scope.$watch(
+ "solicitudNecesidad.especificaciones.Iva",
+ function () {
+ self.valor_iva =
+ (self.especificaciones.Iva / 100) *
+ self.especificaciones.Valor *
+ self.especificaciones.Cantidad;
+ },
+ true
+ );
+
+ $scope.$watch(
+ "solicitudNecesidad.especificaciones.Cantidad",
+ function () {
+ self.valor_iva =
+ (self.especificaciones.Iva / 100) *
+ self.especificaciones.Valor *
+ self.especificaciones.Cantidad;
+ },
+ true
+ );
+
+ $scope.$watch(
+ "solicitudNecesidad.valor_iva",
+ function () {
+ self.valor_total =
+ self.especificaciones.Valor * self.especificaciones.Cantidad +
+ self.valor_iva;
+ },
+ true
+ );
+
+ parametrosRequest
+ .get(
+ "parametro",
+ $.param({
+ //Primer Select NAC
limit: -1,
- query: 'TipoParametroId:4,ParametroPadreId__isnull:true,Activo:true'
- })).then(function (response) {
-
- self.nucleo_area_data = response.data.Data;
+ query:
+ "TipoParametroId:4,ParametroPadreId__isnull:true,Activo:true",
+ })
+ )
+ .then(function (response) {
+ self.nucleo_area_data = response.data.Data;
});
-
-
- $scope.$watch('solicitudNecesidad.nucleoarea', function () { // trae nucleo con dependiendo del area
- self.nucleoarea ?
- parametrosRequest.get('parametro', $.param({
- query: 'TipoParametroId:4,Activo:true,ParametroPadreId.Id:' + self.nucleoarea,
- limit: -1
- })).then(function (response) {
-
- self.nucleo_conocimiento_data = response.data.Data;
- }) : _;
- }, true);
-
-
- $scope.$watchGroup(['solicitudNecesidad.Necesidad.AreaFuncional', 'solicitudNecesidad.Necesidad.TipoFinanciacionNecesidadId'], function () {
- // reset financiacion si se cambia de tipo finaciacion o unidad ejecutora
- if(self.elaborando_necesidad===true) {
- self.Necesidad.AreaFuncional&&self.Necesidad.TipoFinanciacionNecesidadId ? self.Rubros = [] : _;
- }
- })
-
- necesidadService.getAllDependencias().then(function (Dependencias) { //trae lista dependencias
- self.dependencia_data = Dependencias;
- });
-
- coreAmazonRequest.get('ordenador_gasto', $.param({ // lista ordenadores del gasto
+ $scope.$watch(
+ "solicitudNecesidad.nucleoarea",
+ function () {
+ // trae nucleo con dependiendo del area
+ self.nucleoarea
+ ? parametrosRequest
+ .get(
+ "parametro",
+ $.param({
+ query:
+ "TipoParametroId:4,Activo:true,ParametroPadreId.Id:" +
+ self.nucleoarea,
+ limit: -1,
+ })
+ )
+ .then(function (response) {
+ self.nucleo_conocimiento_data = response.data.Data;
+ })
+ : _;
+ },
+ true
+ );
+
+ $scope.$watchGroup(
+ [
+ "solicitudNecesidad.Necesidad.AreaFuncional",
+ "solicitudNecesidad.Necesidad.TipoFinanciacionNecesidadId",
+ ],
+ function () {
+ // reset financiacion si se cambia de tipo finaciacion o unidad ejecutora
+ if (self.elaborando_necesidad === true) {
+ self.Necesidad.AreaFuncional &&
+ self.Necesidad.TipoFinanciacionNecesidadId
+ ? (self.Rubros = [])
+ : _;
+ }
+ }
+ );
+
+ // Watch para traer el plan de adquisiciones según sea seleccionada el área funcional
+ $scope.$watch(
+ "solicitudNecesidad.Necesidad.AreaFuncional",
+ function () {
+ if (self.Necesidad.AreaFuncional) {
+ const QUERY = "?query=Id:29";
+ configuracionRequest.get("parametro", QUERY).then(function (res) {
+ if (self.Necesidad.AreaFuncional === undefined) {
+ } else if (self.Necesidad.AreaFuncional === 2) {
+ $scope.disabledSelect = true;
+ $scope.disableTipoFinanciacion = true;
+ const plan_adquisiciones = JSON.parse(
+ res.data[0].Valor
+ ).plan_adquisiciones_idexud;
+ // Carga los planes de adquisicion desde Plan de adquisiciones y que correspondan
+ // al plan de adquisición activo para el área seleccionada.
+ const QUERY = '/' + plan_adquisiciones;
+ planAdquisicionRequest
+ .get('Plan_adquisiciones_mongo' + QUERY)
+ .then(function (res) {
+ if (res.data !== null) {
+ self.planes_anuales = [];
+ self.planes_anuales.push(res.data);
+ $scope.solicitudNecesidad.vigencia = res.data.vigencia;
+ self.Necesidad.Vigencia = res.data.vigencia.toString();
+ self.Necesidad.PlanAnualAdquisicionesId = res.data.id;
+ $scope.solicitudNecesidad.planadquisicion = $scope.solicitudNecesidad.planes_anuales[0];
+ }
+ });
+ $scope.solicitudNecesidad.Necesidad.TipoFinanciacionNecesidadId = $scope.solicitudNecesidad.tipo_financiacion_data[0];
+ return JSON.parse(res.data[0].Valor).plan_adquisiciones_idexud;
+ } else {
+ $scope.disabledSelect = false;
+ $scope.disableTipoFinanciacion = false;
+ const plan_adquisiciones = JSON.parse(
+ res.data[0].Valor
+ ).plan_adquisiciones_general;
+ const QUERY = '/' + plan_adquisiciones;
+ // Carga los planes de adquisicion desde Plan de adquisiciones y que correspondan
+ // al plan de adquisición activo para el área seleccionada.
+ planAdquisicionRequest
+ .get('Plan_adquisiciones_mongo' + QUERY)
+ .then(function (res) {
+ if (res.data !== null) {
+ self.planes_anuales = [];
+ self.planes_anuales.push(res.data);
+ $scope.solicitudNecesidad.vigencia = res.data.vigencia;
+ self.Necesidad.Vigencia = res.data.vigencia.toString();
+ self.Necesidad.PlanAnualAdquisicionesId = res.data.id;
+ $scope.solicitudNecesidad.planadquisicion = $scope.solicitudNecesidad.planes_anuales[0];
+ }
+ });
+ return JSON.parse(res.data[0].Valor).plan_adquisiciones_general;
+ }
+ });
+ } else {
+ $scope.disableTipoFinanciacion = true;
+ $scope.disabledSelect = true;
+ }
+ },
+ true
+ );
+
+ necesidadService.getAllDependencias().then(function (Dependencias) {
+ //trae lista dependencias
+ self.dependencia_data = Dependencias;
+ });
+
+ coreAmazonRequest
+ .get(
+ "ordenador_gasto",
+ $.param({
+ // lista ordenadores del gasto
limit: -1,
sortby: "Cargo",
order: "asc",
- })).then(function (response) {
- self.ordenador_gasto_data = response.data;
- }).catch(function (err) {
- console.info(err)
+ })
+ )
+ .then(function (response) {
+ self.ordenador_gasto_data = response.data;
+ })
+ .catch(function (err) {
+ console.info(err);
});
-
- //TODO: usar el servicio de unidad ejecutora cuando exista
-
- self.unidad_ejecutora_data = [{ Id: 1, Nombre: 'Rector' }, { Id: 2, Nombre: 'Convenios' }]; //PRovisional esta asquerosidad :)
-
-
- necesidadesCrudRequest.get('tipo_necesidad', $.param({ // parametro desde necesidades crud
- limit: -1
- })).then(function (response) {
- self.tipo_necesidad_data = response.data;
-
+ necesidadesCrudRequest
+ .get(
+ "tipo_necesidad",
+ $.param({
+ // parametro desde necesidades crud
+ limit: -1,
+ })
+ )
+ .then(function (response) {
+ self.tipo_necesidad_data = response.data;
});
- necesidadesCrudRequest.get('tipo_duracion_necesidad', $.param({ // parametro desde necesidades crud
- limit: -1
- })).then(function (response) {
- self.tipo_duracion_necesidad_data = response.data;
+ necesidadesCrudRequest
+ .get(
+ "tipo_duracion_necesidad",
+ $.param({
+ // parametro desde necesidades crud
+ limit: -1,
+ })
+ )
+ .then(function (response) {
+ self.tipo_duracion_necesidad_data = response.data;
});
-
- parametrosRequest.get('parametro', $.param({ // parametro desde adm, unidad producto
+ parametrosRequest
+ .get(
+ "parametro",
+ $.param({
+ // parametro desde adm, unidad producto
limit: -1,
- query: "TipoParametroId.AreaTipoId.Id:4,Activo:true"
- })).then(function (response) {
- self.unidad_data = self.transformUnidad(response.data.Data);
+ query: "TipoParametroId.AreaTipoId.Id:4,Activo:true",
+ })
+ )
+ .then(function (response) {
+ self.unidad_data = self.transformUnidad(response.data.Data);
});
-
- coreAmazonRequest.get('jefe_dependencia', $.param({
+ coreAmazonRequest
+ .get(
+ "jefe_dependencia",
+ $.param({
limit: -1,
- query: 'FechaInicio__lte:' + moment().format('YYYY-MM-DD') + ',FechaFin__gte:' + moment().format('YYYY-MM-DD')
- })).then(function (responseJD) {
- self.jefes_dep_data = responseJD;
-
+ query:
+ "FechaInicio__lte:" +
+ moment().format("YYYY-MM-DD") +
+ ",FechaFin__gte:" +
+ moment().format("YYYY-MM-DD"),
+ })
+ )
+ .then(function (responseJD) {
+ self.jefes_dep_data = responseJD;
});
- // Se traen los jefes de dependencia actuales
- agoraRequest.get('informacion_persona_natural', $.param({
+ // Se traen los jefes de dependencia actuales
+ agoraRequest
+ .get(
+ "informacion_persona_natural",
+ $.param({
limit: -1,
- })).then(function (response) { // trae los interventores, puede ser cualquier tercero TODO: cambiar de modo de carga ya que es muy pesada, implementar lazy load y busqueda
- var arrJD = [];
- self.interventor_data = response.data;
- self.persona_data = response.data.filter(function (p) {
- self.jefes_dep_data.data.forEach(function (i) {
- if (p.Id == i.TerceroId) {
- arrJD.push(p);
- }
-
- })
- return arrJD;
+ })
+ )
+ .then(function (response) {
+ // trae los interventores, puede ser cualquier tercero TODO: cambiar de modo de carga ya que es muy pesada, implementar lazy load y busqueda
+ var arrJD = [];
+ self.interventor_data = response.data;
+ self.persona_data = response.data.filter(function (p) {
+ self.jefes_dep_data.data.forEach(function (i) {
+ if (p.Id === i.TerceroId) {
+ arrJD.push(p);
+ }
});
+ return arrJD;
+ });
});
- necesidadService.getParametroEstandar().then(function (response) { // tipo perfil CPS
- self.parametro_estandar_data = response.data;
- });
- //-----
-
- parametrosRequest.get('parametro', $.param({ //modalidad seleccion
+ necesidadService.getParametroEstandar().then(function (response) {
+ // tipo perfil CPS
+ self.parametro_estandar_data = response.data;
+ });
+ //-----
+
+ parametrosRequest
+ .get(
+ "parametro",
+ $.param({
+ //modalidad seleccion
limit: -1,
sortby: "NumeroOrden",
order: "asc",
- query: "TipoParametroId:11,Activo:true"
- })).then(function (response) {
- self.modalidad_data = response.data.Data;
+ query: "TipoParametroId:11,Activo:true",
+ })
+ )
+ .then(function (response) {
+ self.modalidad_data = response.data.Data;
});
- necesidadesCrudRequest.get('tipo_financiacion_necesidad', $.param({// parametro desde necesidades crud
- limit: -1
- })).then(function (response) {
- self.tipo_financiacion_data = response.data;
+ necesidadesCrudRequest
+ .get(
+ "tipo_financiacion_necesidad",
+ $.param({
+ // parametro desde necesidades crud
+ limit: -1,
+ })
+ )
+ .then(function (response) {
+ self.tipo_financiacion_data = response.data;
});
- necesidadesCrudRequest.get('tipo_contrato_necesidad', $.param({// parametro desde necesidades crud
+ necesidadesCrudRequest
+ .get(
+ "tipo_contrato_necesidad",
+ $.param({
+ // parametro desde necesidades crud
limit: -1,
- query: 'Activo:true'
- })).then(function (response) {
- self.tipo_contrato_data = response.data;
+ query: "Activo:true",
+ })
+ )
+ .then(function (response) {
+ self.tipo_contrato_data = response.data;
});
- $http.get("scripts/models/marco_legal.json") // texto info de seccion marco legal por ahora local
- .then(function (response) {
-
- self.MarcoLegalNecesidadText = $sce.trustAsHtml(response.data.common_text);
-
- });
-
- // Se carga JSON con los tipos de servicio local, no hay servicio
- $http.get("scripts/models/tipo_servicio.json")
- .then(function (response) {
- self.TiposServicios = response.data;
-
- });
-
- self.agregar_ffapropiacion = function (apropiacion) { // agregar rubros en financiacion
- if (apropiacion === undefined) {
- return;
- }
- self.apSelected = true;
- self.apSelectedOb = apropiacion;
- var Fap = {
- Apropiacion: apropiacion,
- RubroId: apropiacion.Codigo,
- MontoPorApropiacion: 0,
- Metas: [],
- Fuentes: [],
- Productos: []
- };
-
- // Busca si en Rubros ya existe el elemento que intenta agregarse, comparandolo con su id
- // si lo que devuelve filter es un arreglo mayor que 0, significa que el elemento a agregar ya existe
- // por lo tanto devuelve un mensaje de alerta
- if (self.Rubros.filter(function (element) { return element.RubroId === apropiacion.Codigo; }).length > 0) {
-
- swal(
- 'Apropiación ya agregada',
- 'El rubro:
' + Fap.RubroId + ": " + Fap.Apropiacion.Nombre + ' ya ha sido agregado',
- 'warning'
- );
- // Por el contrario, si el tamaño del arreglo que devuelve filter es menor a 0
- // significa que no encontró ningún elemento que coincida con el id y agrega el objeto al arreglo
- } else {
- self.Rubros.push(Fap);
- }
-
- };
-
+ $http
+ .get("scripts/models/marco_legal.json") // texto info de seccion marco legal por ahora local
+ .then(function (response) {
+ self.MarcoLegalNecesidadText = $sce.trustAsHtml(
+ response.data.common_text
+ );
+ });
+ // Se carga JSON con los tipos de servicio local, no hay servicio
+ $http.get("scripts/models/tipo_servicio.json").then(function (response) {
+ self.TiposServicios = response.data;
+ });
+
+ // Se cargan las áreas funcionales desde un archivo JSON
+ // TODO: usar el servicio de área funcional cuando exista
+ $http
+ .get("scripts/models/area_funcional_provisional.json")
+ .then(function (res) {
+ self.area_funcional_data = res.data;
+ });
- self.meta_necesidad = {
- Meta: self.meta,
- Actividades: self.actividades,
- MontoPorMeta: 0
+ self.agregar_ffapropiacion = function (apropiacion) {
+ // agregar rubros en financiacion
+ if (apropiacion === undefined) {
+ return;
+ }
+ self.apSelected = true;
+ self.apSelectedOb = apropiacion;
+ var Fap = {
+ Apropiacion: apropiacion,
+ RubroId: apropiacion.Codigo,
+ MontoPorApropiacion: 0,
+ Metas: [],
+ Fuentes: [],
+ Productos: [],
};
- self.addProductoCatalogo = function () { // añadir productos de catalogo en compra o compra serv
- if (!self.producto_catalogo.Cantidad>0 || !self.producto_catalogo.Valor>0) {
- swal({
- type: 'error',
- title: 'Por favor, ingrese un valor y cantidad válidos y mayores a 0.',
- showConfirmButton: true,
- })
- return
- }
- self.ProductosCatalogoNecesidad.filter(function (e) {
- return e.CatalogoId === self.producto_catalogo.CatalogoId;
- }).length > 0 || !self.producto_catalogo.CatalogoId ?
- swal({
- type: 'error',
- title: 'El producto ya fue agregado',
- showConfirmButton: true,
- }) :
- self.ProductosCatalogoNecesidad.push(self.producto_catalogo);
- self.cerrarModalProducto();
- self.producto_catalogo = {};
- self.producto_catalogo.RequisitosMinimos = [];
+ // Busca si en Rubros ya existe el elemento que intenta agregarse, comparandolo con su id
+ // si lo que devuelve filter es un arreglo mayor que 0, significa que el elemento a agregar ya existe
+ // por lo tanto devuelve un mensaje de alerta
+ if (
+ self.Rubros.filter(function (element) {
+ return element.RubroId === apropiacion.Codigo;
+ }).length > 0
+ ) {
+ swal(
+ "Apropiación ya agregada",
+ "El rubro:
" +
+ Fap.RubroId +
+ ": " +
+ Fap.Apropiacion.Nombre +
+ " ya ha sido agregado",
+ "warning"
+ );
+ // Por el contrario, si el tamaño del arreglo que devuelve filter es menor a 0
+ // significa que no encontró ningún elemento que coincida con el id y agrega el objeto al arreglo
+ } else {
+ self.Rubros.push(Fap);
}
-
- self.cerrarModalProducto = function() { // cerrar form productos catalogo
- $("#modalProducto").modal("hide");
- $(".modal-backdrop").remove();
+ };
+
+ self.meta_necesidad = {
+ Meta: self.meta,
+ Actividades: self.actividades,
+ MontoPorMeta: 0,
+ };
+ self.addProductoCatalogo = function () {
+ // añadir productos de catalogo en compra o compra serv
+ if (
+ !self.producto_catalogo.Cantidad > 0 ||
+ !self.producto_catalogo.Valor > 0
+ ) {
+ swal({
+ type: "error",
+ title:
+ "Por favor, ingrese un valor y cantidad válidos y mayores a 0.",
+ showConfirmButton: true,
+ });
+ return;
}
-
- self.eliminarRubro = function (rubro) { //quitar producto
- for (var i = 0; i < self.Rubros.length; i += 1) {
- if (self.Rubros[i] === rubro) {
- self.Rubros.splice(i, 1);
- }
- }
-
- };
-
- self.eliminarRequisito = function (requisito) { // quitar requisito minimo de un producto
- for (var i = 0; i < self.producto_catalogo.RequisitosMinimos.length; i += 1) {
- if (self.producto_catalogo.RequisitosMinimos[i] === requisito) {
- self.producto_catalogo.RequisitosMinimos.splice(i, 1);
- }
- }
- };
-
- self.eliminarActividad = function (actividad) { // quitar act especifica
- for (var i = 0; i < self.ActividadEspecificaNecesidad.length; i += 1) {
- if (self.ActividadEspecificaNecesidad[i] === actividad) {
- self.ActividadEspecificaNecesidad.splice(i, 1);
- }
- }
- };
-
- self.eliminarRequisitoMinimo = function (rm) { // quitar requisito minimo de la necesidad
- for (var i = 0; i < self.RequisitoMinimoNecesidad.length; i += 1) {
- if (self.RequisitoMinimoNecesidad[i] === rm) {
- self.RequisitoMinimoNecesidad.splice(i, 1);
- }
+ self.ProductosCatalogoNecesidad.filter(function (e) {
+ return e.CatalogoId === self.producto_catalogo.CatalogoId;
+ }).length > 0 || !self.producto_catalogo.CatalogoId
+ ? swal({
+ type: "error",
+ title: "El producto ya fue agregado",
+ showConfirmButton: true,
+ })
+ : self.ProductosCatalogoNecesidad.push(self.producto_catalogo);
+ self.cerrarModalProducto();
+ self.producto_catalogo = {};
+ self.producto_catalogo.RequisitosMinimos = [];
+ };
+
+ self.cerrarModalProducto = function () {
+ // cerrar form productos catalogo
+ $("#modalProducto").modal("hide");
+ $(".modal-backdrop").remove();
+ };
+
+ self.eliminarRubro = function (rubro) {
+ //quitar producto
+ for (var i = 0; i < self.Rubros.length; i += 1) {
+ if (self.Rubros[i] === rubro) {
+ self.Rubros.splice(i, 1);
+ }
+ }
+ };
+
+ self.eliminarRequisito = function (requisito) {
+ // quitar requisito minimo de un producto
+ for (
+ var i = 0;
+ i < self.producto_catalogo.RequisitosMinimos.length;
+ i += 1
+ ) {
+ if (self.producto_catalogo.RequisitosMinimos[i] === requisito) {
+ self.producto_catalogo.RequisitosMinimos.splice(i, 1);
+ }
+ }
+ };
+
+ self.eliminarActividad = function (actividad) {
+ // quitar act especifica
+ for (var i = 0; i < self.ActividadEspecificaNecesidad.length; i += 1) {
+ if (self.ActividadEspecificaNecesidad[i] === actividad) {
+ self.ActividadEspecificaNecesidad.splice(i, 1);
+ }
+ }
+ };
+
+ self.eliminarRequisitoMinimo = function (rm) {
+ // quitar requisito minimo de la necesidad
+ for (var i = 0; i < self.RequisitoMinimoNecesidad.length; i += 1) {
+ if (self.RequisitoMinimoNecesidad[i] === rm) {
+ self.RequisitoMinimoNecesidad.splice(i, 1);
+ }
+ }
+ };
+
+ $scope.$watch(
+ "solicitudNecesidad.Rubros",
+ function () {
+ // se hace la sumatoria de valores hasta el rubro, desde montos parciales fuentes
+ self.Necesidad.Valor = 0;
+
+ for (var i = 0; i < self.Rubros.length; i++) {
+ self.Rubros[i].MontoPorApropiacion = 0;
+ self.Rubros[i].MontoFuentes = 0;
+ self.Rubros[i].MontoProductos = 0;
+ self.Rubros[i].MontoMeta = 0;
+ // calculo valor case inversion
+ if (
+ self.Necesidad.TipoFinanciacionNecesidadId.CodigoAbreviacion ===
+ "I"
+ ) {
+ if (
+ self.Rubros[i].Metas.length > 0 &&
+ self.Rubros[i].Metas[0].Actividades
+ ) {
+ self.Rubros[i].MontoPorApropiacion +=
+ self.Rubros[i].Metas[0].MontoPorMeta;
+ }
}
- };
- $scope.$watch('solicitudNecesidad.Rubros', function () { // se hace la sumatoria de valores hasta el rubro, desde montos parciales fuentes
- self.Necesidad.Valor = 0;
-
- for (var i = 0; i < self.Rubros.length; i++) {
- self.Rubros[i].MontoPorApropiacion = 0;
- self.Rubros[i].MontoFuentes = 0;
- self.Rubros[i].MontoProductos = 0;
- self.Rubros[i].MontoMeta = 0;
- // calculo valor case inversion
- if (self.Necesidad.TipoFinanciacionNecesidadId.CodigoAbreviacion === 'I') {
- if (self.Rubros[i].Metas.length > 0 && self.Rubros[i].Metas[0].Actividades) {
- self.Rubros[i].MontoPorApropiacion += self.Rubros[i].Metas[0].MontoPorMeta;
- }
+ // case Funcionamiento
+ if (
+ self.Necesidad.TipoFinanciacionNecesidadId.CodigoAbreviacion ===
+ "F"
+ ) {
+ if (self.Rubros[i].Fuentes.length > 0) {
+ for (
+ var index = 0;
+ index < self.Rubros[i].Fuentes.length;
+ index++
+ ) {
+ self.Rubros[i].MontoFuentes +=
+ self.Rubros[i].Fuentes[index].MontoParcial;
}
-
- // case Funcionamiento
- if (self.Necesidad.TipoFinanciacionNecesidadId.CodigoAbreviacion === 'F') {
- if (self.Rubros[i].Fuentes.length > 0) {
- for (var index = 0; index < self.Rubros[i].Fuentes.length; index++) {
- self.Rubros[i].MontoFuentes += self.Rubros[i].Fuentes[index].MontoParcial;
-
- }
- }
- self.Rubros[i].MontoPorApropiacion = self.Rubros[i].MontoFuentes;
- }
-
- self.Necesidad.Valor += self.Rubros[i].MontoPorApropiacion;
+ }
+ self.Rubros[i].MontoPorApropiacion = self.Rubros[i].MontoFuentes;
}
- }, true);
- $scope.$watch('solicitudNecesidad.servicio_valor', function () { // calculo compra y serv
- self.valor_compra_servicio = self.servicio_valor + self.valorTotalEspecificaciones;
- }, true)
-
- self.getPorcIVAbyId = function (id) { //trae porcentaje iva con id
- if (id && self.iva_data && self.iva_data.length > 0) {
- return self.iva_data.filter(function (iva) { return iva.Id === id; })[0].Tarifa
- } else {
- return 0;
- }
+ self.Necesidad.Valor += self.Rubros[i].MontoPorApropiacion;
+ }
+ },
+ true
+ );
+
+ $scope.$watch(
+ "solicitudNecesidad.servicio_valor",
+ function () {
+ // calculo compra y serv
+ self.valor_compra_servicio =
+ self.servicio_valor + self.valorTotalEspecificaciones;
+ },
+ true
+ );
+
+ self.getPorcIVAbyId = function (id) {
+ //trae porcentaje iva con id
+ if (id && self.iva_data && self.iva_data.length > 0) {
+ return self.iva_data.filter(function (iva) {
+ return iva.Id === id;
+ })[0].Tarifa;
+ } else {
+ return 0;
}
- self.transformIvaData = function(data) { // Transformar datos de IVA
- if (data) {
- return data.map(function (element) {
- const datos = JSON.parse(element.Valor);
- element.Tarifa = datos.Tarifa;
- element.PorcentajeAplicacion = datos.PorcentajeAplicacion;
- element.BaseUvt = datos.BaseUvt;
- element.BasePesos = datos.BasePesos;
- element.ImpuestoId = element.ParametroId;
- return element;
- })
- } else {
- return undefined;
- }
+ };
+ self.transformIvaData = function (data) {
+ // Transformar datos de IVA
+ if (data) {
+ return data.map(function (element) {
+ const datos = JSON.parse(element.Valor);
+ element.Tarifa = datos.Tarifa;
+ element.PorcentajeAplicacion = datos.PorcentajeAplicacion;
+ element.BaseUvt = datos.BaseUvt;
+ element.BasePesos = datos.BasePesos;
+ element.ImpuestoId = element.ParametroId;
+ return element;
+ });
+ } else {
+ return undefined;
}
- self.transformUnidad = function(data) { // Transformar datos de IVA
- if (data) {
- return data.map(function (element) {
- element.Unidad = element.Nombre
- return element;
- })
- } else {
- return undefined;
- }
+ };
+ self.transformUnidad = function (data) {
+ // Transformar datos de IVA
+ if (data) {
+ return data.map(function (element) {
+ element.Unidad = element.Nombre;
+ return element;
+ });
+ } else {
+ return undefined;
}
-
- $scope.$watch('solicitudNecesidad.producto_catalogo', function () { // activar modal y preparar producto cuando se selecciona desde tabla
- if (self.producto_catalogo.CatalogoId && self.producto_catalogo !== {}) {
- $("#modalProducto").modal();
+ };
+
+ $scope.$watch(
+ "solicitudNecesidad.producto_catalogo",
+ function () {
+ // activar modal y preparar producto cuando se selecciona desde tabla
+ if (
+ self.producto_catalogo.CatalogoId &&
+ self.producto_catalogo !== {}
+ ) {
+ $("#modalProducto").modal();
+ }
+ self.producto_catalogo.Subtotal =
+ self.producto_catalogo.Valor * self.producto_catalogo.Cantidad || 0;
+ var tIva = self.getPorcIVAbyId(self.producto_catalogo.Iva);
+ self.producto_catalogo.ValorIVA =
+ self.producto_catalogo.Subtotal * (tIva / 100) || 0;
+ self.producto_catalogo.preciomasIVA =
+ self.producto_catalogo.Subtotal + self.producto_catalogo.ValorIVA ||
+ 0;
+ },
+ true
+ );
+
+ $scope.$watch(
+ "solicitudNecesidad.ProductosCatalogoNecesidad",
+ function () {
+ // hacer los calculos de productos catalogo para el valor
+ self.valorTotalEspecificaciones = 0;
+ self.subtotalEspecificaciones = 0;
+ self.valorIVA = 0;
+ self.ProductosCatalogoNecesidad.forEach(function (producto) {
+ self.subtotalEspecificaciones += producto.Subtotal;
+ });
+ self.ProductosCatalogoNecesidad.forEach(function (producto) {
+ self.valorIVA += producto.ValorIVA;
+ });
+ self.valorTotalEspecificaciones =
+ self.valorIVA + self.subtotalEspecificaciones;
+ self.valor_compra_servicio =
+ self.servicio_valor + self.valorTotalEspecificaciones;
+ },
+ true
+ );
+
+ $scope.$watchGroup(
+ [
+ "solicitudNecesidad.DetalleServicioNecesidad.Valor",
+ "solicitudNecesidad.DetalleServicioNecesidad.IvaId",
+ ],
+ function () {
+ //solo si es serv o compra y serv
+ if (
+ self.Necesidad.TipoContratoNecesidadId &&
+ (self.Necesidad.TipoContratoNecesidadId.Id === 5 ||
+ self.Necesidad.TipoContratoNecesidadId.Id === 4)
+ ) {
+ var tIva =
+ self.getPorcIVAbyId(self.DetalleServicioNecesidad.IvaId) || 0;
+ self.val_iva = (self.DetalleServicioNecesidad.Valor * tIva) / 100;
+ self.DetalleServicioNecesidad.Total =
+ self.val_iva + self.DetalleServicioNecesidad.Valor;
+ self.servicio_valor = self.DetalleServicioNecesidad.Total;
+ }
+ },
+ true
+ );
+
+ $scope.$watch(
+ "solicitudNecesidad.Necesidad.Valor",
+ function () {
+ // si es una CPS
+ if (
+ self.Necesidad.TipoContratoNecesidadId &&
+ self.Necesidad.TipoContratoNecesidadId.Id === 2
+ ) {
+ self.servicio_valor = self.Necesidad.Valor;
+ }
+ },
+ true
+ );
+
+ $scope.$watch(
+ "solicitudNecesidad.Necesidad.TipoContratoNecesidadId",
+ function () {
+ //reiniciar objetos cuando se encuentre en curso
+ self.ResetObjects();
+ if (
+ self.Necesidad.TipoContratoNecesidadId &&
+ (self.Necesidad.TipoContratoNecesidadId.Id === 1 ||
+ self.Necesidad.TipoContratoNecesidadId.Id ===
+ 4) /* tipo compra o compra y servicio */
+ ) {
+ self.MostrarTotalEspc = true;
+ } else {
+ self.MostrarTotalEspc = false;
+ }
+ //prestacion serv
+ if (
+ self.Necesidad.TipoContratoNecesidadId &&
+ self.Necesidad.TipoContratoNecesidadId.Id === 2
+ ) {
+ self.Necesidad.Valor
+ ? (self.servicio_valor = self.Necesidad.Valor)
+ : _;
+ self.DetallePrestacionServicioNecesidad.Cantidad = 1;
+ }
+ // serv
+ if (
+ self.Necesidad.TipoContratoNecesidadId &&
+ self.Necesidad.TipoContratoNecesidadId.Id === 5
+ ) {
+ self.servicio_valor = self.Necesidad.Valor;
+ //self.DetalleServicioNecesidad.Valor = self.Necesidad.Valor;
+ }
+ // compra y serv
+ if (
+ self.Necesidad.TipoContratoNecesidadId &&
+ self.Necesidad.TipoContratoNecesidadId.Id === 4
+ ) {
+ self.servicio_valor = self.DetalleServicioNecesidad.Valor;
+ }
+ self.valorTotalEspecificaciones = 0;
+ // self.ProductosCatalogoNecesidad = [];
+ self.requisitos_minimos = [];
+ },
+ true
+ );
+
+ self.agregarActEsp = function (actividad) {
+ var a = {};
+ a.Descripcion = actividad;
+ self.ActividadEspecificaNecesidad.push(a);
+ };
+
+ self.agregarReqMin = function (rm) {
+ var a = {};
+ a.Descripcion = rm;
+ self.RequisitoMinimoNecesidad.push(a);
+ };
+
+ self.quitar_act_esp = function (i) {
+ self.ActividadEspecifica.splice(i, 1);
+ };
+
+ self.submitForm = function (form, completado) {
+ //enviar formulario, completado define si es guardado parcial o total
+
+ if (form.$valid) {
+ self.enviando = true;
+ self.crear_solicitud(completado);
+ } else {
+ swal(
+ "Faltan datos en el formulario",
+ "Completa todos los datos obligatorios del formulario",
+ "warning"
+ ).then(function (event) {
+ console.info(event);
+ var e = angular.element(".ng-invalid-required")[2];
+ e.focus(); // para que enfoque el elemento
+ e.classList.add("ng-dirty"); //para que se vea rojo
+ });
+ }
+ };
+
+ self.crear_solicitud = function (completado) {
+ if (self.Necesidad.TipoNecesidadId.Id === 2 || !completado) {
+ //servicios publicos o incompleta
+ self.Necesidad.TipoContratoNecesidadId = {
+ Id: 3,
+ };
+ }
+ if (!completado) {
+ self.Necesidad.JustificacionRechazo = 1; //guardado parcial
+ } else {
+ self.Necesidad.JustificacionRechazo = 0; //guardado total
+ }
+ self.ActividadEconomicaNecesidad = self.actividades_economicas_id; //mapear lista de ids
+ self.Necesidad.ModalidadSeleccionId = {
+ Id: 8,
+ }; // mod otra
+ self.Necesidad.EstadoNecesidadId = {
+ Id: 8,
+ }; // estado guardada
+ self.Necesidad.FechaSolicitud = new Date();
+ self.TrNecesidad = {
+ Necesidad: self.Necesidad,
+ DetalleServicioNecesidad: self.DetalleServicioNecesidad,
+ DetallePrestacionServicioNecesidad:
+ self.DetallePrestacionServicioNecesidad,
+ ProductosCatalogoNecesidad: self.ProductosCatalogoNecesidad.map(
+ function (p) {
+ // ajuste a estructura crud
+ return {
+ CatalogoId: p.CatalogoId,
+ UnidadId: p.UnidadId || p.Unidad.Id,
+ IvaId: p.IvaId || p.Iva,
+ Cantidad: p.Cantidad,
+ Valor: p.Valor,
+ RequisitosMinimos: p.RequisitosMinimos || [],
+ };
}
- self.producto_catalogo.Subtotal = (self.producto_catalogo.Valor * self.producto_catalogo.Cantidad) || 0;
- var tIva = self.getPorcIVAbyId(self.producto_catalogo.Iva);
- self.producto_catalogo.ValorIVA = (self.producto_catalogo.Subtotal * (tIva / 100)) || 0;
- self.producto_catalogo.preciomasIVA = self.producto_catalogo.Subtotal + self.producto_catalogo.ValorIVA || 0;
-
-
- }, true)
-
- $scope.$watch('solicitudNecesidad.ProductosCatalogoNecesidad', function () { // hacer los calculos de productos catalogo para el valor
- self.valorTotalEspecificaciones = 0;
- self.subtotalEspecificaciones = 0;
- self.valorIVA = 0;
- self.ProductosCatalogoNecesidad.forEach(function (producto) {
- self.subtotalEspecificaciones += producto.Subtotal;
- });
- self.ProductosCatalogoNecesidad.forEach(function (producto) {
- self.valorIVA += producto.ValorIVA;
+ ),
+ MarcoLegalNecesidad: self.MarcoLegalNecesidad,
+ ActividadEspecificaNecesidad: self.ActividadEspecificaNecesidad,
+ RequisitoMinimoNecesidad: self.RequisitoMinimoNecesidad,
+ ActividadEconomicaNecesidad: self.ActividadEconomicaNecesidad,
+ Rubros: self.Rubros,
+ };
+ delete self.Necesidad.DependenciaNecesidadId.Id; // cuando sea edicion para que no falle post
+
+ var NecesidadHandle = function (response, type) {
+ // funcion de alerta a partir de response
+ var templateAlert =
+ "
" +
+ $translate.instant("UNIDAD_EJECUTORA") +
+ " " +
+ $translate.instant("DEPENDENCIA_DESTINO") +
+ " " +
+ $translate.instant("TIPO_CONTRATO") +
+ " " +
+ $translate.instant("VALOR") +
+ " ";
+
+ self.alerta_necesidad = response.data;
+
+ if (response.status > 300) {
+ swal({
+ title: "Error Registro Necesidad",
+ type: "error",
+ text: JSON.stringify(self.alerta_necesidad),
+ showCloseButton: true,
+ confirmButtonText: $translate.instant("CERRAR"),
});
- self.valorTotalEspecificaciones = self.valorIVA + self.subtotalEspecificaciones;
- self.valor_compra_servicio = self.servicio_valor + self.valorTotalEspecificaciones;
- }, true);
-
- $scope.$watchGroup(['solicitudNecesidad.DetalleServicioNecesidad.Valor', 'solicitudNecesidad.DetalleServicioNecesidad.IvaId'], function () {
- //solo si es serv o compra y serv
- if (self.Necesidad.TipoContratoNecesidadId && (self.Necesidad.TipoContratoNecesidadId.Id === 5 || self.Necesidad.TipoContratoNecesidadId.Id === 4)) {
- var tIva = self.getPorcIVAbyId(self.DetalleServicioNecesidad.IvaId) || 0;
- self.val_iva = (self.DetalleServicioNecesidad.Valor * tIva) / 100 ;
- self.DetalleServicioNecesidad.Total = self.val_iva + self.DetalleServicioNecesidad.Valor;
- self.servicio_valor = self.DetalleServicioNecesidad.Total;
- }
-
- }, true);
-
- $scope.$watch('solicitudNecesidad.Necesidad.Valor',function() {
- // si es una CPS
- if(self.Necesidad.TipoContratoNecesidadId && self.Necesidad.TipoContratoNecesidadId.Id === 2) {
- self.servicio_valor = self.Necesidad.Valor;
-
- }
- },true)
+ return;
+ }
- $scope.$watch('solicitudNecesidad.Necesidad.TipoContratoNecesidadId', function () {
- //reiniciar objetos cuando se encuentre en curso
- self.ResetObjects();
- if (self.Necesidad.TipoContratoNecesidadId && (self.Necesidad.TipoContratoNecesidadId.Id === 1 || self.Necesidad.TipoContratoNecesidadId.Id === 4) /* tipo compra o compra y servicio */) {
- self.MostrarTotalEspc = true;
+ var forEachResponse = function (response) {
+ //mostrar tabla
+ if (response.status > 300) {
+ templateAlert += "";
} else {
- self.MostrarTotalEspc = false;
- }
- //prestacion serv
- if (self.Necesidad.TipoContratoNecesidadId && self.Necesidad.TipoContratoNecesidadId.Id === 2) {
- self.Necesidad.Valor ? self.servicio_valor = self.Necesidad.Valor : _;
- self.DetallePrestacionServicioNecesidad.Cantidad = 1;
+ templateAlert += " ";
}
- // serv
- if (self.Necesidad.TipoContratoNecesidadId && self.Necesidad.TipoContratoNecesidadId.Id === 5) {
- self.servicio_valor = self.Necesidad.Valor;
- //self.DetalleServicioNecesidad.Valor = self.Necesidad.Valor;
- }
- // compra y serv
- if (self.Necesidad.TipoContratoNecesidadId && self.Necesidad.TipoContratoNecesidadId.Id === 4) {
- self.servicio_valor = self.DetalleServicioNecesidad.Valor;
- }
- self.valorTotalEspecificaciones = 0;
- // self.ProductosCatalogoNecesidad = [];
- self.requisitos_minimos = [];
- }, true);
-
- self.agregarActEsp = function (actividad) {
- var a = {};
- a.Descripcion = actividad;
- self.ActividadEspecificaNecesidad.push(a);
- };
- self.agregarReqMin = function (rm) {
- var a = {};
- a.Descripcion = rm;
- self.RequisitoMinimoNecesidad.push(a);
- };
-
- self.quitar_act_esp = function (i) {
- self.ActividadEspecifica.splice(i, 1);
+ var n =
+ typeof response.data === "object"
+ ? response.data.Necesidad
+ : self.Necesidad;
+
+ templateAlert +=
+ "" +
+ self.area_funcional_data.filter(function (u) {
+ return u.Id === n.AreaFuncional;
+ })[0].Nombre +
+ " " +
+ "" +
+ self.dependencia_data.filter(function (dd) {
+ return dd.Id === self.dependencia_destino;
+ })[0].Nombre +
+ " " +
+ "" +
+ (n.TipoContratoNecesidadId.Nombre
+ ? n.TipoContratoNecesidadId.Nombre
+ : "") +
+ " " +
+ "" +
+ $filter("currency")(n.Valor) +
+ " ";
+
+ templateAlert += " ";
+ };
+
+ forEachResponse(self.alerta_necesidad);
+
+ templateAlert = templateAlert + "
";
+ swal({
+ title:
+ "Se ha creado el borrador de Necesidad N°" +
+ response.data.Necesidad.Id,
+ text: "A continuación encontrará el resumen de los datos ingresados.",
+ type: "success",
+ width: 800,
+ html: templateAlert,
+ showCloseButton: true,
+ confirmButtonText: $translate.instant("CERRAR"),
+ });
+ if (response.status < 300) {
+ // borrar los objetos y redirigir a la lista de necesidades
+ self.emptyStorage();
+ $window.location.href = "#/necesidades";
+ }
};
- self.submitForm = function (form,completado) { //enviar formulario, completado define si es guardado parcial o total
-
- if (form.$valid) {
- self.enviando=true;
- self.crear_solicitud(completado);
- } else {
- swal(
- 'Faltan datos en el formulario',
- 'Completa todos los datos obligatorios del formulario',
- 'warning'
- ).then(function (event) {
- console.info(event)
- var e = angular.element('.ng-invalid-required')[2];
- e.focus(); // para que enfoque el elemento
- e.classList.add("ng-dirty"); //para que se vea rojo
+ if (
+ self.IdNecesidad &&
+ self.TrNecesidad.Necesidad.EstadoNecesidadId.Id !==
+ necesidadService.EstadoNecesidadType.Guardada.Id
+ ) {
+ if (
+ self.TrNecesidad.Necesidad.EstadoNecesidadId.Id ===
+ necesidadService.EstadoNecesidadType.Rechazada.Id
+ ) {
+ swal(
+ "Error",
+ "La necesidad no se puede editar, estado de la necesidad: (" +
+ self.TrNecesidad.Necesidad.EstadoNecesidadId.Nombre +
+ ")",
+ "warning"
+ );
+ return;
+ }
+ self.TrNecesidad.Necesidad.EstadoNecesidadId =
+ necesidadService.EstadoNecesidadType.Modificada;
+ planCuentasMidRequest
+ .post("necesidad/post_full_necesidad/", self.TrNecesidad)
+ .then(function (r) {
+ NecesidadHandle(r); //alertar y redirigir o mostrar error
+ })
+ .catch(function (e) {
+ console.info(e);
+ });
+ } else {
+ self.TrNecesidad.Necesidad.EstadoNecesidadId =
+ necesidadService.EstadoNecesidadType.Guardada;
+ // validacion de financiacion vs especificaciones
+ var especificaciones_valido = false;
+ if (self.Necesidad.TipoNecesidadId.Id === 2 || !completado) {
+ // serv publicos o guardada parcial
+ if (self.dependencia_data !== undefined) {
+ especificaciones_valido = true; // no validate
+ }
+ self.ValidarFinanciacion(especificaciones_valido) || !completado
+ ? planCuentasMidRequest
+ .post("necesidad/post_full_necesidad/", self.TrNecesidad)
+ .then(function (r) {
+ NecesidadHandle(r);
})
- };
- };
-
- self.crear_solicitud = function (completado) {
-
- if(self.Necesidad.TipoNecesidadId.Id===2 || !completado){//servicios publicos o incompleta
- self.Necesidad.TipoContratoNecesidadId = { Id: 3 };
+ .catch(function (e) {
+ console.info(e);
+ })
+ : _;
+ return;
+ } else {
+ switch (self.Necesidad.TipoContratoNecesidadId.Id) {
+ case 1:
+ especificaciones_valido =
+ self.Necesidad.Valor === self.valorTotalEspecificaciones;
+ break;
+ case 2:
+ especificaciones_valido =
+ self.Necesidad.Valor === self.servicio_valor &&
+ self.DetallePrestacionServicioNecesidad.PerfilId &&
+ self.DetallePrestacionServicioNecesidad.NucleoConocimientoId;
+ break;
+ case 4:
+ especificaciones_valido =
+ self.Necesidad.Valor ===
+ self.valorTotalEspecificaciones + self.servicio_valor &&
+ self.DetalleServicioNecesidad.TipoServicioId;
+ break;
+ case 5:
+ especificaciones_valido =
+ self.Necesidad.Valor === self.servicio_valor &&
+ self.DetalleServicioNecesidad.TipoServicioId;
+ break;
}
- if (!completado) {
- self.Necesidad.JustificacionRechazo=1; //guardado parcial
+ if (especificaciones_valido) {
+ planCuentasMidRequest
+ .post("necesidad/post_full_necesidad/", self.TrNecesidad)
+ .then(function (r) {
+ NecesidadHandle(r);
+ })
+ .catch(function (e) {
+ console.info(e);
+ });
} else {
- self.Necesidad.JustificacionRechazo=0; //guardado total
+ switch (
+ self.Necesidad.TipoContratoNecesidadId.Id // alertas dependiendo de tipo contrato
+ ) {
+ case 1:
+ swal(necesidadService.AlertaErrorEspecificaciones.Compra);
+ break;
+ case 2:
+ swal(necesidadService.AlertaErrorEspecificaciones.CPS);
+ break;
+ case 4:
+ swal(
+ necesidadService.AlertaErrorEspecificaciones.CompraServicio
+ );
+ break;
+ case 5:
+ swal(necesidadService.AlertaErrorEspecificaciones.Servicio);
+ break;
+ }
}
- self.ActividadEconomicaNecesidad = self.actividades_economicas_id //mapear lista de ids
- self.Necesidad.ModalidadSeleccionId = { Id: 8 } // mod otra
- self.Necesidad.EstadoNecesidadId = { Id: 8 } // estado guardada
- self.Necesidad.FechaSolicitud = new Date()
- self.TrNecesidad = {
- Necesidad: self.Necesidad,
- DetalleServicioNecesidad: self.DetalleServicioNecesidad,
- DetallePrestacionServicioNecesidad: self.DetallePrestacionServicioNecesidad,
- ProductosCatalogoNecesidad: self.ProductosCatalogoNecesidad.map(function (p) { // ajuste a estructura crud
- return {
- CatalogoId: p.CatalogoId,
- UnidadId: p.UnidadId || p.Unidad.Id,
- IvaId: p.IvaId || p.Iva,
- Cantidad: p.Cantidad,
- Valor: p.Valor,
- RequisitosMinimos: p.RequisitosMinimos || []
- }
- }),
- MarcoLegalNecesidad: self.MarcoLegalNecesidad,
- ActividadEspecificaNecesidad: self.ActividadEspecificaNecesidad,
- RequisitoMinimoNecesidad: self.RequisitoMinimoNecesidad,
- ActividadEconomicaNecesidad: self.ActividadEconomicaNecesidad,
- Rubros: self.Rubros
-
+ }
+ }
+ };
+
+ self.ValidarFinanciacion = function (valido) {
+ var fin_valid = self.Rubros.length > 0 && self.Necesidad.Valor > 0;
+ self.Rubros.forEach(function (ap) {
+ // CASE INVERSION
+ if (
+ self.Necesidad.TipoFinanciacionNecesidadId.CodigoAbreviacion === "I"
+ ) {
+ fin_valid =
+ fin_valid &&
+ ap.MontoMeta <= ap.Apropiacion.ValorActual &&
+ ap.MontoPorApropiacion > 0;
+ } else {
+ //CASE FUNCIONAMIENTO
+ ap.Fuentes.length === 0
+ ? swal(
+ necesidadService.getAlertaFinanciacion(ap.Apropiacion.Codigo)
+ .agregarFuente
+ )
+ : _;
+ fin_valid =
+ fin_valid &&
+ ap.MontoFuentes <= ap.Apropiacion.ValorActual &&
+ ap.Fuentes.length > 0 &&
+ ap.MontoPorApropiacion > 0;
+ }
+ ap.MontoFuentes > ap.Apropiacion.ValorActual
+ ? swal(
+ necesidadService.getAlertaFinanciacion(ap.Apropiacion.Codigo)
+ .fuentesMayorQueRubro
+ )
+ : _;
+ });
+ if (!fin_valid && !valido) {
+ swal(necesidadService.getAlertaFinanciacion(0).errorFinanciacion);
+ } else {
+ swal({
+ title: "Financiación balanceada",
+ type: "success",
+ text: "Los valores de financiación están en igualdad",
+ showCloseButton: true,
+ confirmButtonText: $translate.instant("CERRAR"),
+ });
+ }
+ return fin_valid;
+ };
+
+ self.ResetNecesidad = function () {
+ // limpiar form
+ self.emptyStorage();
+ self.ResetObjects();
+ necesidadService.getFullNecesidad().then(function (res) {
+ var TipoNecesidad = self.Necesidad.TipoNecesidadId;
+ var DuracionNecesidad = self.Necesidad.TipoDuracionNecesidadId;
+ self.recibirNecesidad(res);
+ self.Necesidad.TipoNecesidadId = TipoNecesidad;
+ self.Necesidad.TipoDuracionNecesidadId = DuracionNecesidad;
+ });
+ };
+
+ self.ResetObjects = function () {
+ //limpiar variables
+ if (self.elaborando_necesidad === true) {
+ self.DetalleServicioNecesidad = {};
+ self.DetallePrestacionServicioNecesidad = {};
+ self.ProductosCatalogoNecesidad = [];
+ self.ActividadEspecificaNecesidad = [];
+ self.RequisitoMinimoNecesidad = [];
+ self.ActividadEconomicaNecesidad = [];
+ self.producto_catalogo = {};
+ self.producto_catalogo.RequisitosMinimos = [];
+ }
+ };
+
+ // Control de visualizacion de los campos individuales en el formulario
+ self.CambiarTipoNecesidad = function (TipoNecesidad) {
+ self.forms = _.merge({}, self.estructura.init.forms);
+ self.fields = _.merge({}, self.estructura.init);
+ self.TipoNecesidadType = [
+ "",
+ "Contratacion",
+ "",
+ "Avances",
+ "",
+ "",
+ "ServiciosPublicos",
+ ];
+ _.merge(
+ self.forms,
+ self.estructura[self.TipoNecesidadType[TipoNecesidad]].forms
+ );
+ _.merge(
+ self.fields,
+ self.estructura[self.TipoNecesidadType[TipoNecesidad]]
+ );
+ self.Necesidad.TipoContratoNecesidadId = {
+ Id: 3,
+ }; //Tipo Contrato Necesidad: No Aplica
+ if (self.f.elaborando_necesidad === true) {
+ self.DetalleServicioNecesidad = {};
+ self.DetallePrestacionServicioNecesidad = {};
+ self.ProductosCatalogoNecesidad = [];
+ self.ActividadEspecificaNecesidad = [];
+ self.RequisitoMinimoNecesidad = [];
+ self.ActividadEconomicaNecesidad = [];
+ self.producto_catalogo = {};
+ self.producto_catalogo.RequisitosMinimos = [];
+ }
+ };
+ //control avance y retroceso en el formulario
+ self.CambiarForm = function (form) {
+ switch (form) {
+ case "general":
+ self.FormularioSeleccionado = 0;
+ break;
+ case "financiacion":
+ if (ValidarSeccion("general")) {
+ self.SeccionesFormulario.financiacion.activo = true;
+ self.elaborando_necesidad = true;
+ self.FormularioSeleccionado = 1;
+ self.mostrarFinanciacion = true;
+ break;
+ } else {
+ self.AlertSeccion("General");
+ break;
}
- delete self.Necesidad.DependenciaNecesidadId.Id; // cuando sea edicion para que no falle post
-
-
- var NecesidadHandle = function (response, type) { // funcion de alerta a partir de response
- var templateAlert = "
" +
- $translate.instant('UNIDAD_EJECUTORA') + " " +
- $translate.instant('DEPENDENCIA_DESTINO') + " " +
- $translate.instant('TIPO_CONTRATO') + " " +
- $translate.instant('VALOR') + " ";
-
-
- self.alerta_necesidad = response.data;
-
- if (response.status > 300) {
- swal({
- title: 'Error Registro Necesidad',
- type: 'error',
- text: JSON.stringify(self.alerta_necesidad),
- showCloseButton: true,
- confirmButtonText: $translate.instant("CERRAR")
- });
- return;
- }
-
-
- var forEachResponse = function (response) { //mostrar tabla
- if (response.status > 300) {
- templateAlert += "";
- } else {
- templateAlert += " ";
- }
-
- var n = typeof (response.data) === "object" ? response.data.Necesidad : self.Necesidad;
-
- templateAlert +=
- "" + self.unidad_ejecutora_data.filter(function (u) { return u.Id === n.AreaFuncional; })[0].Nombre + " " +
- "" + self.dependencia_data.filter(function (dd) { return dd.Id === self.dependencia_destino; })[0].Nombre + " " +
- "" + (n.TipoContratoNecesidadId.Nombre ? n.TipoContratoNecesidadId.Nombre : '') + " " +
- "" + $filter('currency')(n.Valor) + " ";
-
- templateAlert += " ";
-
- };
-
- forEachResponse(self.alerta_necesidad);
-
- templateAlert = templateAlert + "
";
- swal({
- title: 'Se ha creado el borrador de Necesidad N°'+ response.data.Necesidad.ConsecutivoSolicitud ,
- text: 'A continuación encontrará el resumen de los datos ingresados.',
- type: "success",
- width: 800,
- html: templateAlert,
- showCloseButton: true,
- confirmButtonText: $translate.instant("CERRAR")
- });
- if (response.status < 300) { // borrar los objetos y redirigir a la lista de necesidades
- self.emptyStorage();
- $window.location.href = '#/necesidades';
- }
- };
-
- if (self.IdNecesidad && self.TrNecesidad.Necesidad.EstadoNecesidadId.Id !== necesidadService.EstadoNecesidadType.Guardada.Id) {
- if (self.TrNecesidad.Necesidad.EstadoNecesidadId.Id === necesidadService.EstadoNecesidadType.Rechazada.Id) {
- swal(
- 'Error',
- 'La necesidad no se puede editar, estado de la necesidad: (' + self.TrNecesidad.Necesidad.EstadoNecesidadId.Nombre + ')',
- 'warning'
- );
- return;
- }
- self.TrNecesidad.Necesidad.EstadoNecesidadId = necesidadService.EstadoNecesidadType.Modificada;
- planCuentasMidRequest.post('necesidad/post_full_necesidad/', self.TrNecesidad).then(function (r) {
- NecesidadHandle(r); //alertar y redirigir o mostrar error
- }).catch(function (e) {
- console.info(e)
- })
+ case "legal":
+ if (ValidarSeccion("financiacion")) {
+ self.SeccionesFormulario.legal.activo = true;
+ self.FormularioSeleccionado = 2;
+ break;
} else {
- self.TrNecesidad.Necesidad.EstadoNecesidadId = necesidadService.EstadoNecesidadType.Guardada;
- // validacion de financiacion vs especificaciones
- var especificaciones_valido = false;
- if (self.Necesidad.TipoNecesidadId.Id === 2 || !completado) { // serv publicos o guardada parcial
- if(self.dependencia_data !== undefined){
- especificaciones_valido = true; // no validate
- }
- self.ValidarFinanciacion(especificaciones_valido) || !completado ? planCuentasMidRequest.post('necesidad/post_full_necesidad/', self.TrNecesidad).then(function (r) {
- NecesidadHandle(r);
- }).catch(function (e) {
- console.info(e)
- }) : _;
- return;
- } else {
- switch (self.Necesidad.TipoContratoNecesidadId.Id) {
- case 1:
- especificaciones_valido = self.Necesidad.Valor === self.valorTotalEspecificaciones;
- break;
- case 2:
- especificaciones_valido = self.Necesidad.Valor === self.servicio_valor && self.DetallePrestacionServicioNecesidad.PerfilId && self.DetallePrestacionServicioNecesidad.NucleoConocimientoId;
- break;
- case 4:
- especificaciones_valido = self.Necesidad.Valor === (self.valorTotalEspecificaciones + self.servicio_valor) && self.DetalleServicioNecesidad.TipoServicioId;
- break;
- case 5:
- especificaciones_valido = self.Necesidad.Valor === self.servicio_valor && self.DetalleServicioNecesidad.TipoServicioId;
- break;
- }
-
-
- if (especificaciones_valido) {
- planCuentasMidRequest.post('necesidad/post_full_necesidad/', self.TrNecesidad).then(function (r) {
- NecesidadHandle(r);
- }).catch(function (e) {
- console.info(e)
- })
- } else {
- switch (self.Necesidad.TipoContratoNecesidadId.Id) { // alertas dependiendo de tipo contrato
- case 1:
- swal(necesidadService.AlertaErrorEspecificaciones.Compra)
- break;
- case 2:
- swal(necesidadService.AlertaErrorEspecificaciones.CPS)
- break;
- case 4:
- swal(necesidadService.AlertaErrorEspecificaciones.CompraServicio)
- break;
- case 5:
- swal(necesidadService.AlertaErrorEspecificaciones.Servicio)
- break;
- }
- }
-
- }
+ break;
}
- };
-
- self.ValidarFinanciacion = function (valido) {
- var fin_valid = self.Rubros.length > 0&& self.Necesidad.Valor>0;
- self.Rubros.forEach(function (ap) {
- // CASE INVERSION
- if (self.Necesidad.TipoFinanciacionNecesidadId.CodigoAbreviacion === 'I') {
- fin_valid = fin_valid && ap.MontoMeta <= ap.Apropiacion.ValorActual && ap.MontoPorApropiacion>0;
- } else {
- //CASE FUNCIONAMIENTO
- ap.Fuentes.length===0 ? swal(necesidadService.getAlertaFinanciacion(ap.Apropiacion.Codigo).agregarFuente):_;
- fin_valid = fin_valid && ap.MontoFuentes <= ap.Apropiacion.ValorActual && ap.Fuentes.length>0 && ap.MontoPorApropiacion>0;
- }
- ap.MontoFuentes > ap.Apropiacion.ValorActual ? swal(necesidadService.getAlertaFinanciacion(ap.Apropiacion.Codigo).fuentesMayorQueRubro) : _;
-
- });
- if (!fin_valid && !valido){
- swal(necesidadService.getAlertaFinanciacion(0).errorFinanciacion)
+ case "contratacion":
+ if (ValidarSeccion("legal")) {
+ self.SeccionesFormulario.contratacion.activo = true;
+ self.FormularioSeleccionado = 3;
+ break;
} else {
- swal({
- title: 'Financiación balanceada',
- type: 'success',
- text: 'Los valores de financiación están en igualdad',
- showCloseButton: true,
- confirmButtonText: $translate.instant("CERRAR")
- });
+ self.AlertSeccion("Legal");
+ break;
}
- return fin_valid;
}
-
- self.ResetNecesidad = function () { // limpiar form
- self.emptyStorage();
- self.ResetObjects();
- necesidadService.getFullNecesidad().then(function (res) {
- var TipoNecesidad = self.Necesidad.TipoNecesidadId;
- var DuracionNecesidad = self.Necesidad.TipoDuracionNecesidadId
- self.recibirNecesidad(res);
- self.Necesidad.TipoNecesidadId = TipoNecesidad;
- self.Necesidad.TipoDuracionNecesidadId = DuracionNecesidad;
- });
- };
-
- self.ResetObjects = function() { //limpiar variables
- if(self.elaborando_necesidad===true){
- self.DetalleServicioNecesidad = {};
- self.DetallePrestacionServicioNecesidad = {};
- self.ProductosCatalogoNecesidad = [];
- self.ActividadEspecificaNecesidad = [];
- self.RequisitoMinimoNecesidad = [];
- self.ActividadEconomicaNecesidad = [];
- self.producto_catalogo = {};
- self.producto_catalogo.RequisitosMinimos = [];
+ };
+
+ $scope.$watch(
+ "solicitudNecesidad.FormularioSeleccionado",
+ function () {
+ // animar cambio de step y ubicar en la parte superior
+ $("body, html, #mainapp").animate(
+ {
+ scrollTop: 0,
+ },
+ "slow"
+ );
+ },
+ true
+ );
+
+ function ValidarSeccion(form) {
+ var n = self.solicitudNecesidad;
+ switch (form) {
+ case "general":
+ return (
+ document
+ .getElementById("f_responsables")
+ .classList.contains("ng-valid") &&
+ document
+ .getElementById("f_general")
+ .classList.contains("ng-valid")
+ );
+ case "financiacion":
+ var val = self.ValidarFinanciacion();
+ if (self.IdNecesidad) {
+ return val;
}
+ return (
+ val &&
+ document
+ .getElementById("f_financiacion")
+ .classList.contains("ng-valid")
+ );
+ case "legal":
+ return !document
+ .getElementById("f_legal")
+ .classList.contains("ng-invalid");
+ case "contratacion":
+ return true;
}
-
- // Control de visualizacion de los campos individuales en el formulario
- self.CambiarTipoNecesidad = function (TipoNecesidad) {
- self.forms = _.merge({}, self.estructura.init.forms);
- self.fields = _.merge({}, self.estructura.init);
- self.TipoNecesidadType = ["", "Contratacion", "", "Avances", "", "", "ServiciosPublicos"];
- _.merge(self.forms, self.estructura[self.TipoNecesidadType[TipoNecesidad]].forms);
- _.merge(self.fields, self.estructura[self.TipoNecesidadType[TipoNecesidad]]);
- self.Necesidad.TipoContratoNecesidadId = { Id: 3 }; //Tipo Contrato Necesidad: No Aplica
- if(self.f.elaborando_necesidad===true) {
- self.DetalleServicioNecesidad = {};
- self.DetallePrestacionServicioNecesidad = {};
- self.ProductosCatalogoNecesidad = [];
- self.ActividadEspecificaNecesidad = [];
- self.RequisitoMinimoNecesidad = [];
- self.ActividadEconomicaNecesidad = [];
- self.producto_catalogo = {};
- self.producto_catalogo.RequisitosMinimos = [];
- }
- };
- //control avance y retroceso en el formulario
- self.CambiarForm = function (form) {
- switch (form) {
- case 'general':
- self.FormularioSeleccionado = 0;
- break;
- case 'financiacion':
- if (ValidarSeccion('general')) {
- self.SeccionesFormulario.financiacion.activo = true;
- self.elaborando_necesidad=true;
- self.FormularioSeleccionado = 1;
- break;
- }
- else {
- self.AlertSeccion('General');
- break;
- }
- case 'legal':
- if (ValidarSeccion('financiacion')) {
- self.SeccionesFormulario.legal.activo = true;
- self.FormularioSeleccionado = 2;
- break;
- }
- else {
- break;
- }
- case 'contratacion':
- if (ValidarSeccion('legal')) {
- self.SeccionesFormulario.contratacion.activo = true;
- self.FormularioSeleccionado = 3;
- break;
- }
- else {
- self.AlertSeccion('Legal');
- break;
- }
- }
- };
-
- $scope.$watch('solicitudNecesidad.FormularioSeleccionado', function () {
- // animar cambio de step y ubicar en la parte superior
- $('body, html, #mainapp').animate({ scrollTop: 0 }, "slow");
- }, true)
-
- function ValidarSeccion(form) {
- var n = self.solicitudNecesidad;
- switch (form) {
- case 'general':
- return (document.getElementById("f_responsables").classList.contains('ng-valid') && document.getElementById("f_general").classList.contains('ng-valid'));
- case 'financiacion':
- var val = self.ValidarFinanciacion()
- if (self.IdNecesidad) { return val; }
- return val && document.getElementById("f_financiacion").classList.contains('ng-valid');
- case 'legal':
- return !document.getElementById("f_legal").classList.contains('ng-invalid');
- case 'contratacion':
- return true;
- }
- };
-
- self.AlertSeccion = function (seccion) {
- swal({
- title: 'Sección ' + seccion + ' incompleta',
- type: 'error',
- text: 'Por favor, complete la sección: ' + seccion,
- showCloseButton: true,
- confirmButtonText: $translate.instant("CERRAR")
- });
- };
-
-
- });
\ No newline at end of file
+ }
+
+ self.AlertSeccion = function (seccion) {
+ swal({
+ title: "Sección " + seccion + " incompleta",
+ type: "error",
+ text: "Por favor, complete la sección: " + seccion,
+ showCloseButton: true,
+ confirmButtonText: $translate.instant("CERRAR"),
+ });
+ };
+ }
+ );
diff --git a/app/scripts/controllers/rp/rp_solicitud_personas.js b/app/scripts/controllers/rp/rp_solicitud_personas.js
index 49694e03..59be49cd 100644
--- a/app/scripts/controllers/rp/rp_solicitud_personas.js
+++ b/app/scripts/controllers/rp/rp_solicitud_personas.js
@@ -11,7 +11,7 @@ angular.module('contractualClienteApp')
.factory("contrato", function() {
return {};
})
- .controller('RpSolicitudPersonasCtrl', function($window, $filter, gridOptionsService, contratoRequest, requestRequest, administrativaRequest, $scope, contrato, resolucion, financieraRequest, financieraMidRequest, amazonAdministrativaRequest, adminMidRequest, $translate, disponibilidad, resolucionRequest) {
+ .controller('RpSolicitudPersonasCtrl', function($window, gridOptionsService, $scope, contrato, resolucion, financieraRequest, financieraMidRequest, amazonAdministrativaRequest, adminMidRequest, $translate, disponibilidad, resolucionRequest) {
var self = this;
self.offset = 0;
self.filter = '';
@@ -506,7 +506,7 @@ angular.module('contractualClienteApp')
self.generar_txt_cdp = function(numContrato, vigenciaContrato, vinculacion_docente) {
-
+
amazonAdministrativaRequest.get('proveedor_contrato_persona/' + numContrato.String + "/" + vigenciaContrato.Int64 , "").then(function(response) {
if (response.data !== null) {
self.contrato.push(response.data[0]);
@@ -529,4 +529,4 @@ angular.module('contractualClienteApp')
}
});
};
- });
\ No newline at end of file
+ });
diff --git a/app/scripts/decorators/text_translate.js b/app/scripts/decorators/text_translate.js
index 0620c470..c70d8963 100644
--- a/app/scripts/decorators/text_translate.js
+++ b/app/scripts/decorators/text_translate.js
@@ -185,6 +185,7 @@ var text_es = {
//visualizar_necesidad
DE: "de",
MONTO: "Monto",
+ CREAR_PDF:"CREAR PDF",
//SOLICITUD RP
SALIR: "Salir",
@@ -852,7 +853,7 @@ var text_es = {
NAME_CONTR: "NOMBRE CONTRATISTA",
DOCUMENTO: "DOCUMENTO",
CAR_SUPER: "CARGO SUPERVISOR",
-
+
//Módulo aprobación pago
TITULO_APRO_PAGO: "APROBACIÓN PAGO",
NOM_ORDENADOR: "NOMBRE ORDENADOR DEL GASTO",
diff --git a/app/scripts/directives/actividades_economicas/lista_actividades_economicas.js b/app/scripts/directives/actividades_economicas/lista_actividades_economicas.js
index 233d12b7..5667f8fa 100755
--- a/app/scripts/directives/actividades_economicas/lista_actividades_economicas.js
+++ b/app/scripts/directives/actividades_economicas/lista_actividades_economicas.js
@@ -33,7 +33,7 @@ angular.module('contractualClienteApp')
visible: false
},
{
- field: 'Id',
+ field: 'CodigoAbreviacion',
displayName: $translate.instant('CODIGO'),
headerCellClass: $scope.highlightFilteredHeader + 'text-center text-info',
width: '20%',
diff --git a/app/scripts/directives/apropiaciones/fuentes_apropiacion.js b/app/scripts/directives/apropiaciones/fuentes_apropiacion.js
index 05eff3f0..499f3ca9 100755
--- a/app/scripts/directives/apropiaciones/fuentes_apropiacion.js
+++ b/app/scripts/directives/apropiaciones/fuentes_apropiacion.js
@@ -7,20 +7,21 @@
* # apropiaciones/fuentesApropiacion
*/
angular.module('contractualClienteApp')
- .directive('fuentesApropiacion', function (planCuentasRequest) {
+ .directive('fuentesApropiacion', function () {
return {
restrict: 'E',
scope: {
apropiacion: '=',
fuenteapropiacion: '=',
- dependenciasolicitante: '='
+ dependenciasolicitante: '=',
+ movimiento: "=",
},
templateUrl: 'views/directives/apropiaciones/fuentes_apropiacion.html',
controller: function ($scope, $translate) {
var self = this
$scope.fuente = $translate.instant('FUENTE')
self.fuenteapropiacion = $scope.fuenteapropiacion;
- self.editando=false;
+ self.editando = false;
self.gridOptions = {
paginationPageSizes: [5, 10, 15],
paginationPageSize: 5,
@@ -31,29 +32,29 @@ angular.module('contractualClienteApp')
enableHorizontalScrollbar: 0,
enableVerticalScrollbar: 0,
enableSelectAll: true,
- columnDefs: [{
- field: 'Nombre',
- displayName: $translate.instant('FUENTE'),
- headerCellClass: $scope.highlightFilteredHeader + 'text-center text-info',
- cellTooltip: function (row) {
- return row.entity.Nombre
- }
- }
- ,
- {
- field: 'ValorActual',
- displayName: $translate.instant('VALOR'),
- cellFilter: 'currency',
- headerCellClass: $scope.highlightFilteredHeader + 'text-center ',
- cellClass: function (row, col) {
- return 'money'
+ columnDefs: [
+ {
+ field: 'Nombre',
+ displayName: $translate.instant('FUENTE'),
+ headerCellClass: $scope.highlightFilteredHeader + 'text-center text-info',
+ cellTooltip: function (row) {
+ return row.entity.Nombre
+ }
},
- cellTooltip: function (row) {
- return row.entity.ValorActual || 0;
+ {
+ field: 'ValorActual',
+ displayName: $translate.instant('VALOR'),
+ cellFilter: 'currency',
+ headerCellClass: $scope.highlightFilteredHeader + 'text-center ',
+ cellClass: function (row, col) {
+ return 'money'
+ },
+ cellTooltip: function (row) {
+ return row.entity.ValorActual || 0;
+ },
+ width: '40%'
},
- width: '40%'
- }
- ]
+ ]
}
@@ -61,47 +62,49 @@ angular.module('contractualClienteApp')
self.gridOptions.onRegisterApi = function (gridApi) {
self.gridApi = gridApi
gridApi.selection.on.rowSelectionChanged($scope, function () {
- if(self.editando===true) {
+ if (self.editando === true) {
$scope.fuenteapropiacion = self.gridApi.selection.getSelectedRows().map(function (e) {
- if($scope.fuenteapropiacion.filter(function(f){ return f.FuenteId===e.Codigo}).length>0) {
- $scope.fuenteapropiacion.filter(function(f){ return f.FuenteId===e.Codigo})[0].Saldo=e.ValorActual;
- return $scope.fuenteapropiacion.filter(function(f){ return f.FuenteId===e.Codigo})[0];
+ if ($scope.fuenteapropiacion.filter(function (f) { return f.FuenteId === e.Codigo }).length > 0) {
+ $scope.fuenteapropiacion.filter(function (f) { return f.FuenteId === e.Codigo })[0].Saldo = e.ValorActual;
+ return $scope.fuenteapropiacion.filter(function (f) { return f.FuenteId === e.Codigo })[0];
} else {
- return {FuenteId: e.Codigo, Saldo: e.ValorActual};
+ return { FuenteId: e.Codigo, Saldo: e.ValorActual, Nombre: e.Nombre };
}
});
}
})
}
+ self.gridOptions.data = [];
+ if($scope.movimiento){
+ $scope.apropiacion.Apropiacion.datos[0].FuenteFinanciamientoData.ValorActual = $scope.movimiento[0].Saldo;
+ }
+ $scope.apropiacion.Apropiacion.datos[0].FuenteFinanciamientoData ? self.gridOptions.data.push($scope.apropiacion.Apropiacion.datos[0].FuenteFinanciamientoData) : _;
+ var gridOptData = self.gridOptions.data;
- planCuentasRequest.get('fuente_financiamiento/fuente_financiamiento_apropiacion/' + $scope.apropiacion.Apropiacion.Codigo+"/"+ $scope.apropiacion.Apropiacion.Vigencia + "/"+$scope.apropiacion.Apropiacion.UnidadEjecutora ).then(function (response) {
- self.gridOptions.data = response.data.Body || [];
-
- var gridOptData = self.gridOptions.data;
- gridOptData[0] !== undefined ? self.gridApi.grid.modifyRows(gridOptData) : _;
+ // !Verificar línea porque self.gridApi es undefined, sin embargo, al parecer la línea no afecta la funcionalidad
+ // gridOptData[0] !== undefined ? self.gridApi.grid.modifyRows(gridOptData) : _;
- $scope.$watch('fuenteapropiacion', function () {
- $scope.fuenteapropiacion ? $scope.fuenteapropiacion.forEach(function (fuente) {
- if(fuente.MontoParcial&&fuente.Saldo&&fuente.MontoParcial>fuente.Saldo) {
- swal({
- title: 'Error Valor Fuentes de Financiamiento ' + fuente.FuenteId,
- type: 'error',
- text: 'Verifique los valores de fuentes de financiamiento, la suma no puede superar el saldo asignado.',
- showCloseButton: true,
- confirmButtonText: $translate.instant("CERRAR")
- });
- fuente.MontoParcial = 0;
- }
- var tmp = self.gridOptions.data.filter(function (e) { return e.Codigo === fuente.FuenteId })
- if (tmp.length > 0) {
- self.gridApi.selection.selectRow(tmp[0]); //seleccionar las filas
- }
- }) : _;
- self.editando=true;
- self.fuenteapropiacion = $scope.fuenteapropiacion;
- },true)
- })
+ $scope.$watch('fuenteapropiacion', function () {
+ $scope.fuenteapropiacion ? $scope.fuenteapropiacion.forEach(function (fuente) {
+ if (fuente.MontoParcial && fuente.Saldo && fuente.MontoParcial > fuente.Saldo) {
+ swal({
+ title: 'Error Valor Fuentes de Financiamiento ' + fuente.FuenteId,
+ type: 'error',
+ text: 'Verifique los valores de fuentes de financiamiento, la suma no puede superar el saldo asignado.',
+ showCloseButton: true,
+ confirmButtonText: $translate.instant("CERRAR")
+ });
+ fuente.MontoParcial = 0;
+ }
+ var tmp = self.gridOptions.data.filter(function (e) { return e.Codigo === fuente.FuenteId })
+ if (tmp.length > 0) {
+ self.gridApi.selection.selectRow(tmp[0]); //seleccionar las filas
+ }
+ }) : _;
+ self.editando = true;
+ self.fuenteapropiacion = $scope.fuenteapropiacion;
+ }, true)
$scope.$watch('[d_fuentesApropiacion.gridOptions.paginationPageSize, d_fuentesApropiacion.gridOptions.data]', function () {
if ((self.gridOptions.data.length <= self.gridOptions.paginationPageSize || self.gridOptions.paginationPageSize === null) && self.gridOptions.data.length > 0) {
diff --git a/app/scripts/directives/apropiaciones/lista_apropiaciones.js b/app/scripts/directives/apropiaciones/lista_apropiaciones.js
index 1c7afbfe..2cabbb97 100755
--- a/app/scripts/directives/apropiaciones/lista_apropiaciones.js
+++ b/app/scripts/directives/apropiaciones/lista_apropiaciones.js
@@ -1,4 +1,4 @@
-'use strict';
+"use strict";
/**
* @ngdoc directive
@@ -6,156 +6,218 @@
* @description
* # apropiaciones/listaApropiaciones
*/
-angular.module('contractualClienteApp')
- .directive('listaApropiaciones', function (planCuentasRequest, $translate) {
- return {
- restrict: 'E',
- scope: {
- apropiacion: '=?',
- vigencia: "=",
- tipo: "<",
- unidadejecutora: "=",
- tipofinanciacion: "=",
- selhijos: "=?"
+angular
+ .module("contractualClienteApp")
+ .directive("listaApropiaciones", function (movimientosCrudRequest, $translate) {
+ return {
+ restrict: "E",
+ scope: {
+ apropiacion: "=?",
+ vigencia: "=",
+ tipo: "<",
+ unidadejecutora: "=",
+ tipofinanciacion: "=",
+ selhijos: "=?",
+ planadquisicion: "=",
+ },
+
+ templateUrl: "views/directives/apropiaciones/lista_apropiaciones.html",
+ controller: function ($scope) {
+ var self = this;
+ self.gridOptions = {
+ enableRowSelection: true,
+ enableRowHeaderSelection: false,
+ enableFiltering: true,
+ // showTreeExpandNoChildren: false,
+
+ columnDefs: [
+ {
+ field: "Codigo",
+ displayName: $translate.instant("CODIGO_RUBRO"),
+ headerCellClass: $scope.highlightFilteredHeader + "text-center ",
+ cellClass: function (row, col) {
+ if (col.treeNode.children.length === 0) {
+ return "unbold ";
+ } else {
+ return "unbold";
+ }
+ },
+ width: "25%",
},
+ {
+ field: "Nombre",
+ displayName: $translate.instant("NOMBRE_RUBRO"),
+ headerCellClass: $scope.highlightFilteredHeader + "text-center ",
+ cellTooltip: function (row) {
+ return row.entity.Nombre;
+ },
+ cellClass: function (row, col) {
+ if (col.treeNode.children.length === 0) {
+ return "unbold ";
+ } else {
+ return "unbold";
+ }
+ },
+ width: "50%",
+ },
+ {
+ field: "ValorActual",
+ displayName: $translate.instant("VALOR_U"),
+ cellFilter: "currency",
+ // cellTemplate: '
{{data.ApropiacionInicial | currency}}
',
+ headerCellClass: $scope.highlightFilteredHeader + "text-center ",
+ cellClass: function (row, col) {
+ if (col.treeNode.children.length === 0) {
+ return "money";
+ } else {
+ return "money";
+ }
+ },
+ width: "20%",
+ },
+ ],
+ };
- templateUrl: 'views/directives/apropiaciones/lista_apropiaciones.html',
- controller: function ($scope) {
- var self = this;
- self.gridOptions = {
- enableRowSelection: true,
- enableRowHeaderSelection: false,
- enableFiltering: true,
- // showTreeExpandNoChildren: false,
-
- columnDefs: [{
- field: 'Codigo',
- displayName: $translate.instant('CODIGO_RUBRO'),
- headerCellClass: $scope.highlightFilteredHeader + 'text-center ',
- cellClass: function (row, col) {
- if (col.treeNode.children.length === 0) {
- return "unbold ";
- } else {
- return "unbold";
- }
- },
- width: '15%'
- },
- {
- field: 'Nombre',
- displayName: $translate.instant('NOMBRE_RUBRO'),
- headerCellClass: $scope.highlightFilteredHeader + 'text-center ',
- cellTooltip: function (row) {
- return row.entity.Nombre;
- },
- cellClass: function (row, col) {
- if (col.treeNode.children.length === 0) {
- return "unbold ";
- } else {
- return "unbold";
- }
- },
- width: '40%'
- },
- {
- field: 'ValorActual',
- displayName: $translate.instant('VALOR_U'),
- cellFilter: 'currency',
- // cellTemplate: '
{{data.ApropiacionInicial | currency}}
',
- headerCellClass: $scope.highlightFilteredHeader + 'text-center ',
- cellClass: function (row, col) {
- if (col.treeNode.children.length === 0) {
- return "money";
- } else {
- return "money";
- }
- },
- width: '40%'
- }
- ]
-
- };
-
- $scope.$watchGroup(['unidadejecutora', 'tipofinanciacion'], function () {
- if ($scope.unidadejecutora !== undefined && $scope.tipofinanciacion !== undefined) {
- // UD inversion
- if ($scope.unidadejecutora === 1 && $scope.tipofinanciacion.Id === 1) {
- $scope.tipo = "3-03";
- // UD funcionamiento
- } else if ($scope.unidadejecutora === 1 && $scope.tipofinanciacion.Id === 2) {
- $scope.tipo = "3-01";
- // IDEXUD inversion, no existen
- } else if ($scope.unidadejecutora === 2 && $scope.tipofinanciacion.Id === 1) {
- $scope.tipo = "XYZ";
- // IDEXUD funcionamiento
- } else if ($scope.unidadejecutora === 2 && $scope.tipofinanciacion.Id === 2) {
- $scope.tipo = "3-00-991";
- }
- self.actualiza_rubros();
- }
- }, true);
-
-
- self.actualiza_rubros = function () {
- planCuentasRequest.get("arbol_rubro_apropiacion/get_hojas/" + $scope.unidadejecutora + "/" + $scope.vigencia).then(function (response) {
- if (response.data.Body !== null) {
- response.data.Body = response.data.Body.filter(function (a) {
- // funcion para filtrar rubros por codigo
- return a.Codigo.startsWith($scope.tipo);
- });
- self.gridOptions.data = response.data.Body .sort(function (a, b) {
- if (a.Codigo < b.Codigo) { return -1; }
- if (a.Codigo > b.Codigo) { return 1; }
- return 0;
- });
- self.max_level = 0;
- var level = 0;
- // for (var i = 0; i < self.gridOptions.data.length; i += 1) {
- // level = (self.gridOptions.data[i].Codigo.match(/-/g) || []).length;
- // if (level > self.max_level) {
- // self.max_level = level;
- // }
- // }
-
- // for (var j = 0; j < self.gridOptions.data.length; j += 1) {
- // level = (self.gridOptions.data[j].Codigo.match(/-/g) || []).length;
- // if (level < self.max_level) {
- // self.gridOptions.data[j].$$treeLevel = level;
- // }
- // }
-
- } else {
- self.gridOptions.data = [];
- }
- });
- };
-
-
-
- self.gridOptions.onRegisterApi = function (gridApi) {
- //set gridApi on scope
- self.gridApi = gridApi;
- self.gridApi.grid.registerDataChangeCallback(function () {
- self.gridApi.treeBase.expandAllRows();
+ $scope.$watchGroup(
+ ["unidadejecutora", "tipofinanciacion", "planadquisicion"],
+ function () {
+ var actualizar = false;
+ if (
+ $scope.unidadejecutora !== undefined &&
+ $scope.tipofinanciacion !== undefined &&
+ $scope.planadquisicion !== undefined
+ ) {
+
+ // UD inversion
+ if (
+ $scope.unidadejecutora === 1 &&
+ $scope.tipofinanciacion.Id === 1
+ ) {
+ $scope.tipo = "3-03";
+ actualizar = true;
+
+ // UD funcionamiento
+ }
+ if (
+ $scope.unidadejecutora === 1 &&
+ $scope.tipofinanciacion.Id === 2
+ ) {
+ $scope.tipo = "3-01";
+ actualizar = true;
+
+ // IDEXUD inversion, no existen
+ }
+ if (
+ $scope.unidadejecutora === 2 &&
+ $scope.tipofinanciacion.Id === 1
+ ) {
+ $scope.tipo = "XYZ";
+
+ // IDEXUD funcionamiento
+ }
+ if (
+ $scope.unidadejecutora === 2 &&
+ $scope.tipofinanciacion.Id === 2
+ ) {
+ $scope.tipo = "3-00";
+ actualizar = true;
+ }
+ }
+ if(actualizar) {
+ self.actualiza_rubros();
+ }
+ },
+ true
+ );
+
+ self.actualiza_rubros = function () {
+ self.gridOptions.data = [];
+ $scope.planadquisicion.registroplanadquisiciones.forEach(function(item){
+ if(item.Fuente === $scope.tipo){
+ item.datos.forEach(function(info){
+ info.RubroInfo.datos = info.datos;
+ var Cuen_Pre = "";
+ var Movimiento ={};
+ var saldo = 0;
+ var jsonCompleto;
+ var arreglo =[];
+ var rubroMov = null;
+ var actividadIdMov = null;
+ var fuenteIdMov = null;
+ info.datos.forEach(function(rubro){
+ if($scope.tipofinanciacion.Id === 1){
+ rubroMov = rubro.RubroId;
+ rubro["registro_plan_adquisiciones-actividad"].forEach(function(actividad){
+ actividadIdMov = actividad.actividad.Id;
+ actividad.FuentesFinanciamiento.forEach(function(fuente){
+ fuenteIdMov = fuente.FuenteFinanciamiento;
+ Cuen_Pre = JSON.stringify({
+ RubroId:rubroMov,
+ ActividadId:actividadIdMov,
+ FuenteFinanciamientoId:fuenteIdMov,
+ PlanAdquisicionesId:$scope.planadquisicion.id
+ });
+ Movimiento = {};
+ Movimiento.Cuen_Pre = Cuen_Pre;
+ arreglo.push(Movimiento);
+ })
+ })
+ }else{
+ rubroMov = rubro.RubroId;
+ fuenteIdMov = rubro.FuenteFinanciamientoId;
+ Cuen_Pre = JSON.stringify({
+ RubroId:rubroMov,
+ FuenteFinanciamientoId:fuenteIdMov,
+ PlanAdquisicionesId:$scope.planadquisicion.id
});
- self.gridApi.selection.on.rowSelectionChanged($scope, function (row) {
- $scope.apropiacion = row.entity;
- });
- };
-
- self.gridOptions.isRowSelectable = function (row) {
- if (row.treeNode.children.length > 0 && $scope.selhijos === true) {
- return true;
- } else {
- return true;
- }
- };
-
-
- self.gridOptions.multiSelect = false;
+ Movimiento.Cuen_Pre = Cuen_Pre;
+ arreglo.push(Movimiento);
+ }
+ })
+ jsonCompleto = JSON.stringify(arreglo);
+ // TODO: Implementar mecanismo retry, hasta un maximo de 3 intentos
+ movimientosCrudRequest
+ .post("movimiento_detalle/postUltimoMovDetalle/",jsonCompleto)
+ .then(function(respuestamov){
+ if(respuestamov.data){
+ $scope.movimiento = respuestamov.data;
+ respuestamov.data.forEach(function(movimiento){
+ saldo += movimiento.Saldo;
+ })
+ info.RubroInfo.ValorActual = saldo;
+ self.gridOptions.data.push(info.RubroInfo);
+ }
+ });
+ })
+ }
+ });
+ };
+ $scope.$watch('movimiento', function () {
+ $scope.$emit('pasomovimiento',$scope.movimiento);
+ });
+
+ self.gridOptions.onRegisterApi = function (gridApi) {
+ //set gridApi on scope
+ self.gridApi = gridApi;
+ self.gridApi.grid.registerDataChangeCallback(function () {
+ self.gridApi.treeBase.expandAllRows();
+ });
+ self.gridApi.selection.on.rowSelectionChanged($scope, function (row) {
+ $scope.apropiacion = row.entity;
+ });
+ };
- },
- controllerAs: 'd_listaApropiaciones'
+ self.gridOptions.isRowSelectable = function (row) {
+ if (row.treeNode.children.length > 0 && $scope.selhijos === true) {
+ return true;
+ } else {
+ return true;
+ }
};
- });
+
+ self.gridOptions.multiSelect = false;
+ },
+ controllerAs: "d_listaApropiaciones",
+ };
+ });
diff --git a/app/scripts/directives/apropiaciones/productos_apropiacion.js b/app/scripts/directives/apropiaciones/productos_apropiacion.js
index 321f3056..72d56c65 100755
--- a/app/scripts/directives/apropiaciones/productos_apropiacion.js
+++ b/app/scripts/directives/apropiaciones/productos_apropiacion.js
@@ -14,6 +14,7 @@ angular.module('contractualClienteApp')
rubro: '=',
productoapropiacion: '=',
initProductoapropiacion: '=?',
+ apropiacion: "=",
},
templateUrl: 'views/directives/apropiaciones/productos_apropiacion.html',
controller: function ($scope, $translate) {
@@ -30,12 +31,31 @@ angular.module('contractualClienteApp')
enableVerticalScrollbar: 0,
enableSelectAll: true,
columnDefs: [{
+ field: 'Codigo',
+ displayName: $translate.instant('CODIGO'),
+ width: "15%",
+ headerCellClass: $scope.highlightFilteredHeader + 'text-center text-info',
+ cellTooltip: function (row) {
+ return row.entity.Codigo;
+ }
+ },
+ {
field: 'Nombre',
- displayName: $translate.instant('PRODUCTOS'),
+ displayName: $translate.instant('NOMBRE'),
+ width: "75%",
headerCellClass: $scope.highlightFilteredHeader + 'text-center text-info',
cellTooltip: function (row) {
return row.entity.Nombre;
}
+ },
+ {
+ field: 'PorcentajeDistribucion',
+ displayName: '% Dist.',
+ width: "15%",
+ headerCellClass: $scope.highlightFilteredHeader + 'text-center text-info',
+ cellTooltip: function (row) {
+ return row.entity.PorcentajeDistribucion;
+ }
}
]
};
@@ -44,29 +64,46 @@ angular.module('contractualClienteApp')
self.gridApi = gridApi;
gridApi.selection.on.rowSelectionChanged($scope, function () {
$scope.productoapropiacion = self.gridApi.selection.getSelectedRows();
- $scope.productoapropiacion.forEach(function(p){
- p.ProductoId=p._id
- p.MontoParcial=0
+ $scope.productoapropiacion.forEach(function (p) {
+ p.ProductoId = p._id
+ p.MontoParcial = 0
})
});
};
- var idProductos=[];
- var productosData=[];
- for(var id in $scope.rubro.Productos){
+ var idProductos = [];
+ var productosData = [];
+ for (var id in $scope.rubro.Productos) {
idProductos.push(id);
}
- Promise.all(idProductos.map(function(id){
- return planCuentasRequest.get('producto/'+id).then(function(response){
- (response.data.Body !== null) ? productosData.push(response.data.Body) : console.info('no encontre producto: '+id);
+ Promise.all($scope.apropiacion.Apropiacion.datos[0]["registro_funcionamiento-productos_asociados"]).then(function (productos) {
+ productos.map(function (item) {
+
+ const productoSchema = {
+ Nombre: item.ProductoData.Nombre,
+ Codigo: item.ProductoData.Codigo,
+ PorcentajeDistribucion: item.PorcentajeDistribucion,
+ _id: item.ProductoAsociadoId,
+ }
+
+ if (productosData.length > 0) {
+ if(!productosData.some(function(uniqueProducto) {
+ return productoSchema._id === uniqueProducto._id;
+ })){
+ productosData.push(productoSchema);
+ }
+ } else {
+ productosData.push(productoSchema);
+ }
})
- })).then(function (t) {
+
+ self.gridOptions.data = [];
self.gridOptions.data = productosData;
var gridOptData = self.gridOptions.data;
gridOptData[0] !== undefined ? self.gridApi.grid.modifyRows(gridOptData) : _;
-
+
$scope.$watch('initProductoApropiacion', function () {
self.productoapropiacion = [];
@@ -76,7 +113,7 @@ angular.module('contractualClienteApp')
$scope.productoapropiacion.push(tmp[0]); //enriquecer productos
self.gridApi.selection.selectRow(tmp[0]); //seleccionar las filas
}
- }): _;
+ }) : _;
});
});
diff --git a/app/scripts/directives/catalogos_elementos/lista_subgrupos_catalogos.js b/app/scripts/directives/catalogos_elementos/lista_subgrupos_catalogos.js
index 474ca142..35c97471 100755
--- a/app/scripts/directives/catalogos_elementos/lista_subgrupos_catalogos.js
+++ b/app/scripts/directives/catalogos_elementos/lista_subgrupos_catalogos.js
@@ -49,7 +49,6 @@ angular.module('contractualClienteApp')
]
};
self.loadData = function (elemento) {
- //administrativaRequest.get('catalogo_elemento',$.param({
catalogoRequest.get('elemento', $.param({
query: "Descripcion__contains:"+elemento,
fields: 'Id,Descripcion',
@@ -81,4 +80,4 @@ angular.module('contractualClienteApp')
},
controllerAs: 'd_listaSubgruposCatalogos'
};
- });
\ No newline at end of file
+ });
diff --git a/app/scripts/directives/cdp/lista_cdp.js b/app/scripts/directives/cdp/lista_cdp.js
index bb4bd534..e3fa26be 100755
--- a/app/scripts/directives/cdp/lista_cdp.js
+++ b/app/scripts/directives/cdp/lista_cdp.js
@@ -7,7 +7,7 @@
* # cdp/listaCdp
*/
angular.module('contractualClienteApp')
- .directive('listaCdp', function(financieraRequest, financieraMidRequest, agoraRequest, administrativaRequest) {
+ .directive('listaCdp', function(financieraRequest, financieraMidRequest, administrativaRequest) {
return {
restrict: 'E',
scope: {
@@ -77,4 +77,4 @@ angular.module('contractualClienteApp')
},
controllerAs: 'd_listaCdp'
};
- });
\ No newline at end of file
+ });
diff --git a/app/scripts/directives/marco_legal/lista_documentos_legales.js b/app/scripts/directives/marco_legal/lista_documentos_legales.js
index 56f73ac8..69d96d32 100755
--- a/app/scripts/directives/marco_legal/lista_documentos_legales.js
+++ b/app/scripts/directives/marco_legal/lista_documentos_legales.js
@@ -7,7 +7,7 @@
* # marcoLegal/listaDocumentosLegales
*/
angular.module('contractualClienteApp')
- .directive('listaDocumentosLegales', function (administrativaRequest, $translate, necesidadesCrudRequest) {
+ .directive('listaDocumentosLegales', function ($translate, necesidadesCrudRequest) {
return {
restrict: 'E',
scope: {
@@ -83,7 +83,7 @@ angular.module('contractualClienteApp')
self.gridApi.selection.selectRow(tmp[0]); //seleccionar las filas
}
});
- },2000)
+ },2000)
});
$scope.$watch('[d_listaDocumentosLegales.gridOptions.paginationPageSize, d_listaDocumentosLegales.gridOptions.data]', function () {
diff --git a/app/scripts/directives/metas/metas-actividades.js b/app/scripts/directives/metas/metas-actividades.js
index 2a8c155d..dfea34f0 100644
--- a/app/scripts/directives/metas/metas-actividades.js
+++ b/app/scripts/directives/metas/metas-actividades.js
@@ -1,4 +1,4 @@
-'use strict';
+"use strict";
/**
* @ngdoc directive
@@ -6,23 +6,27 @@
* @description
* # metasActividades
*/
-angular.module('contractualClienteApp')
- .directive('metasActividades', function (metasRequest, $translate) {
+angular
+ .module("contractualClienteApp")
+ .directive("metasActividades", function ($translate) {
return {
- restrict: 'E',
+ restrict: "E",
scope: {
- apropiacion: '=',
- metas: '=',
- dependenciasolicitante: '=',
- dependenciadestino: '=',
- vigencia: '='
+ apropiacion: "=",
+ metas: "=",
+ dependenciasolicitante: "=",
+ dependenciadestino: "=",
+ vigencia: "=",
+ rubro: "=",
+ movimiento: "=",
},
-
- templateUrl: 'views/directives/metas/metas-actividades.html',
+ templateUrl: "views/directives/metas/metas-actividades.html",
controller: function ($scope) {
var self = this;
- self.actividades = $scope.actividades;
+ self.actividades = $scope.metas.map(function(act){
+ return act.Actividades;
+ });
self.meta = undefined;
self.cargainicial = true;
self.MontoPorMeta = 0;
@@ -38,247 +42,355 @@ angular.module('contractualClienteApp')
minRowsToShow: 8,
useExternalPagination: false,
multiSelect: true,
- columnDefs: [{
- field: 'actividad_id',
- displayName: 'Código',
- width: '20%',
- headerCellClass: $scope.highlightFilteredHeader + 'text-center text-info',
- cellTooltip: function (row) {
- return row.entity.actividad_id;
- }
- },
- {
- field: 'actividad',
- displayName: 'Actividad',
- width: '50%',
- headerCellClass: $scope.highlightFilteredHeader + ' text-info',
- cellTooltip: function (row) {
- return row.entity.actividad;
- }
- },
- {
- field: 'valor_actividad',
- displayName: 'Saldo Actividad',
- cellFilter: 'currency',
- width: '30%',
- headerCellClass: $scope.highlightFilteredHeader + ' text-info',
- cellTooltip: function (row) {
- return row.entity.valor_actividad;
+ columnDefs: [
+ {
+ field: "actividad_id",
+ displayName: $translate.instant('CODIGO'),
+ width: "20%",
+ headerCellClass:
+ $scope.highlightFilteredHeader + "text-center text-info",
+ cellTooltip: function (row) {
+ return row.entity.actividad_id;
+ },
},
- cellClass: function () {
- return "money";
- }
- }
- ]
+ {
+ field: "actividad",
+ displayName: "Actividad",
+ width: "50%",
+ headerCellClass: $scope.highlightFilteredHeader + " text-info",
+ cellTooltip: function (row) {
+ return row.entity.actividad;
+ },
+ },
+ {
+ field: "valor_actividad",
+ displayName: "Saldo Actividad",
+ cellFilter: "currency",
+ width: "30%",
+ headerCellClass: $scope.highlightFilteredHeader + " text-info",
+ cellTooltip: function (row) {
+ return row.entity.valor_actividad;
+ },
+ cellClass: function () {
+ return "money";
+ },
+ },
+ ],
};
self.cargarMetas = function () {
-
if ($scope.dependenciasolicitante) {
- metasRequest.get('plan_adquisiciones/2019/'+ $scope.dependenciasolicitante.toString()).then(
- function (res) {
- var tempmetas = res.data.metas.actividades.filter(function(a){return a.rubro===$scope.apropiacion.RubroId}); // falta un filter por rubro
- self.metas = [];
-
- tempmetas.forEach(function (act) {
- (self.metas.filter(function (m) { return (m.Id === act.meta_id); }).length === 0) ? self.metas.push({ Id: act.meta_id, Nombre: act.meta }) : _;
- })
- if ($scope.apropiacion.Metas.length > 0) {
- self.meta = $scope.apropiacion.Metas[0].MetaId;
- }
- self.editando=true;
- }
- );
- }
-
- }
-
-
-
- $scope.$watchGroup(['apropiacion', 'dependenciasolicitante'], function () {
- if ($scope.apropiacion.Apropiacion !== undefined && $scope.dependenciasolicitante !== undefined) {
- self.cargarMetas();
- }
- }, true)
-
- $scope.$watch('d_metasActividades.actividades', function () {
- self.MontoPorMeta = 0;
- if (self.actividades !== undefined) {
- self.actividades ? self.actividades.forEach(function (act) {
- act.ActividadId = act.actividad_id;
- act.MetaID = act.meta_id;
- act.FuentesActividad ? act.FuentesActividad.forEach(function (f) {
- f.FuenteId = f.FuenteId || f.fuente_financiamiento;
- if (parseFloat(f.MontoParcial) > parseFloat(f.valor_fuente_financiamiento) - parseFloat(f.saldo_comprometido)) {
- swal({
- title: 'Error Valor Fuentes de Financiamiento ' + f.FuenteId + ' actividad: '+ act.actividad_id,
- type: 'error',
- text: 'Verifique los valores de fuentes de financiamiento, la suma no puede superar el saldo asignado.',
- showCloseButton: true,
- confirmButtonText: $translate.instant("CERRAR")
+ self.metas = [];
+ try {
+ $scope.apropiacion.Apropiacion.datos[0]["registro_funcionamiento-metas_asociadas"].forEach(function (item) {
+ const metaSchema = {
+ Id: item.MetaId.Numero,
+ Nombre: item.MetaId.Nombre,
+ };
+ var bandera = 1;
+ if (self.metas.length > 0 && bandera !== 1) {
+ self.metas.forEach(function (uniqueMeta) {
+ if (uniqueMeta.Id !== metaSchema.Id) {
+ bandera = 1;
+ } else {
+ bandera = 0;
+ }
+ if(bandera === 1){
+ self.metas.push(metaSchema);
+ }
});
- f.MontoParcial = 0;
} else {
- self.MontoPorMeta += f.MontoParcial;
+ self.metas.push(metaSchema);
}
+ });
+ } catch (error) {
+ swal({
+ title:
+ "Error Metas",
+ type: "error",
+ text: "No se ha podido traer el arreglo de metas desde el plan de adquisiciones - " + error.message,
+ showCloseButton: true,
+ confirmButtonText: $translate.instant("CERRAR"),
+ });
+ } finally {
+ if ($scope.apropiacion.Metas.length > 0) {
+ self.meta = $scope.apropiacion.Metas[0].MetaId;
+ }
+ self.editando = true;
+ }
+ };
+ };
- }) : _;
-
- }) : _;
- }
- $scope.metas.length > 0 ? $scope.metas[0].MontoPorMeta = self.MontoPorMeta : _;
- }, true);
+ $scope.$watchGroup(
+ ["apropiacion", "dependenciasolicitante"],
+ function () {
+ if (
+ $scope.apropiacion.Apropiacion !== undefined &&
+ $scope.dependenciasolicitante !== undefined && $scope.apropiacion && $scope.apropiacion.Apropiacion && $scope.apropiacion.Apropiacion.datos
+ ) {
+ self.cargarMetas();
+ }
+ },
+ true
+ );
+
+ $scope.$watch("d_metasActividades.actividades",function () {
+ self.MontoPorMeta = 0;
+ if (self.actividades !== undefined) {
+ self.actividades ? self.actividades.forEach(function (act) {
+ act.ActividadId = act.actividad_id;
+ act.FuentesActividad ? act.FuentesActividad.forEach(function (f) {
+ f.FuenteId = f.FuenteId || f.fuente_financiamiento;
+ if (
+ parseFloat(f.MontoParcial) >
+ parseFloat(f.ValorAsignado)
+ ) {
+ swal({
+ title:
+ "Error Valor Fuentes de Financiamiento " +
+ f.FuenteId +
+ " actividad: " +
+ act.actividad_id,
+ type: "error",
+ text: "Verifique los valores de fuentes de financiamiento, la suma no puede superar el saldo asignado.",
+ showCloseButton: true,
+ confirmButtonText: $translate.instant("CERRAR"),
+ });
+ f.MontoParcial = 0;
+ } else {
+ self.MontoPorMeta += f.MontoParcial;
+ }
+ })
+ : _;
+ })
+ : _;
+ }
+ $scope.metas.length > 0
+ ? ($scope.metas[0].MontoPorMeta = self.MontoPorMeta)
+ : _;
+ },
+ true
+ );
- self.ResetMeta = function ( ) {
+ self.ResetMeta = function () {
$scope.metas = [{ MetaId: self.meta, Actividades: [] }];
self.actividades = [];
- }
+ };
- $scope.$watch('d_metasActividades.meta', function () {
- if (self.meta !== undefined) {
- $scope.metas[0] ? _ : $scope.metas = [{ MetaId: self.meta }];
- $scope.metas[0].Actividades&&$scope.metas[0].Actividades.length>0 ? _ : $scope.metas = [{ MetaId: self.meta }];
+ $scope.$watch("d_metasActividades.meta", function () {
+ if (self.meta !== undefined && $scope.apropiacion && $scope.apropiacion.Apropiacion && $scope.apropiacion.Apropiacion.datos) {
+ $scope.metas[0] ? _ : ($scope.metas = [{ MetaId: self.meta }]);
+ $scope.metas[0].Actividades && $scope.metas[0].Actividades.length > 0 ? _ : ($scope.metas = [{ MetaId: self.meta }]);
self.loadActividades();
-
}
-
});
-
self.gridOptions.onRegisterApi = function (gridApi) {
self.gridApi = gridApi;
- if($scope.metas&&$scope.metas[0]&&$scope.metas[0].Actividades) {
+ if ($scope.metas && $scope.metas[0] && $scope.metas[0].Actividades) {
self.montos = [];
- $scope.metas[0].Actividades.forEach(function(a){
+ $scope.metas[0].Actividades.forEach(function (a) {
var fuentes = [];
- a.FuentesActividad.forEach(function(f) {
- fuentes.push(f.MontoParcial)
- })
- self.montos.push(fuentes)
- })
-
+ a.FuentesActividad.forEach(function (f) {
+ fuentes.push(f.MontoParcial);
+ });
+ self.montos.push(fuentes);
+ });
function addMontos() {
- if(self.cargainicial===true&&$scope.metas) {
- setTimeout(function() {
+ if (self.cargainicial === true && $scope.metas) {
+ setTimeout(function () {
try {
- for (var i=0;i<$scope.metas[0].Actividades.length; i++) {
- for (var j=0; j<$scope.metas[0].Actividades[i].FuentesActividad.length; j++) {
- if($scope.metas[0].Actividades[i].FuentesActividad[j].Id) {
- self.cargainicial=true;
+ for (
+ var i = 0;
+ i < $scope.metas[0].Actividades.length;
+ i++
+ ) {
+ for (
+ var j = 0;
+ j <
+ $scope.metas[0].Actividades[i].FuentesActividad.length;
+ j++
+ ) {
+ if (
+ $scope.metas[0].Actividades[i].FuentesActividad[j].Id
+ ) {
+ self.cargainicial = true;
addMontos();
- return
+ return;
}
- $scope.metas[0].Actividades[i].FuentesActividad[j].MontoParcial=self.montos[i][j];
+ $scope.metas[0].Actividades[i].FuentesActividad[
+ j
+ ].MontoParcial = self.montos[i][j];
}
}
- self.cargainicial=false;
+ self.cargainicial = false;
} catch (error) {
addMontos();
}
}, 1000);
}
}
-
- addMontos();
-
+ addMontos();
}
gridApi.selection.on.rowSelectionChanged($scope, function () {
- self.actividades = self.gridApi.selection.getSelectedRows()
+ self.actividades = self.gridApi.selection.getSelectedRows();
self.actividades.forEach(function (a) {
- self.getFuentesActividad($scope.vigencia, a.dependencia, a.rubro, a.actividad_id).then(function (res) {
- var fuentesact = res.data.fuentes.fuentes_actividad ? res.data.fuentes.fuentes_actividad : [];
- a.FuentesActividad ? a.FuentesActividad=a.FuentesActividad : a.FuentesActividad = fuentesact;
- });
+ var fuentesact = self.getFuentesActividad(a.actividad_id);
+ a.FuentesActividad ? (a.FuentesActividad = a.FuentesActividad) : (a.FuentesActividad = fuentesact);
});
$scope.metas[0].Actividades = self.actividades;
});
-
};
- self.getFuentesActividad = function (vigencia, dependencia, rubro, actividadid) {
- return metasRequest.get('plan_adquisiciones_fuentes_financiamiento/2019/' + dependencia + '/' + rubro + '/' + actividadid)
- }
-
- self.loadActividades = function () {
- metasRequest.get('plan_adquisiciones/2019/'+$scope.dependenciasolicitante.toString()).then(function (response) {
- self.gridOptions.data = [];
- response.data.metas.actividades.filter(function(a){return a.rubro===$scope.apropiacion.RubroId}).forEach(function(act) {
- self.gridOptions.data.filter(function(a){ return a.actividad_id===act.actividad_id}).length===0 ? self.gridOptions.data.push(act) : _;
- });
- self.gridApi.grid.modifyRows(self.gridOptions.data);
- if ($scope.apropiacion.Metas[0].Actividades) {
- $scope.apropiacion.Metas[0].Actividades.forEach(function (act) {
- var tmp = self.gridOptions.data.filter(function (e) { return e.actividad_id == act.ActividadId })
- if (tmp.length > 0) {
- self.gridApi.selection.selectRow(tmp[0]);
- act = _.merge(act,tmp[0]); //seleccionar las filas
+ self.getFuentesActividad = function (actividadid) {
+ var fuentes = [];
+ try {
+ $scope.apropiacion.Apropiacion.datos.forEach(function (actividad) {
+ actividad["registro_plan_adquisiciones-actividad"].forEach(function (act){
+ if (Number(actividadid) === act.actividad.Id) {
+ if (act.FuentesFinanciamiento.length > 0) {
+ act.FuentesFinanciamiento.map(function (fuente) {
+ const fuenteSchema = {
+ FuenteId: fuente.FuenteFinanciamiento,
+ ValorAsignado: fuente.ValorAsignado,
+ Nombre: fuente.Nombre
+ }
+ var bandera = 1;
+ if (fuentes.length > 0 && bandera !== 1) {
+ fuentes.forEach(function (uniqueFuente) {
+ if (uniqueFuente.Id !== fuenteSchema.FuenteId) {
+ bandera = 1;
+ } else {
+ bandera = 0;
+ }
+ if(bandera === 1){
+ fuentes.push(fuenteSchema);
+ }
+ });
+ } else {
+ fuentes.push(fuenteSchema);
+ }
+ })
+ }
}
- });
- self.actividades = $scope.apropiacion.Metas[0].Actividades;
-
- }
+ })
+ })
+ // console.log(fuentes);
+ } catch (error) {
+ swal({
+ title: "Error Fuentes",
+ type: "error",
+ text: "No se ha podido acceder a las fuentes del plan de adquisiciones " + error.message,
+ showCloseButton: true,
+ confirmButtonText: $translate.instant("CERRAR"),
+ });
+ } finally {
+ return fuentes;
+ }
+ };
- }).then(function () {
- // Se inicializa el grid api para seleccionar
- if ($scope.dependenciasolicitante !== undefined && $scope.dependenciadestino !== undefined) {
- self.gridOptions.data = self.gridOptions.data.filter(function (m) {
- return (m.meta_id === self.meta) && (m.dependencia === $scope.dependenciasolicitante.toString() || m.dependencia === $scope.dependenciadestino.toString());
- });
- if (self.gridOptions.data.length > 0) {
- self.gridApi.grid.modifyRows(self.gridOptions.data);
- } else {
- swal({
- title: '¡No hay actividades!',
- type: 'error',
- text: 'Las dependencias no están asociadas a la meta seleccionada.Por favor seleccione otra meta',
- showCloseButton: true,
- confirmButtonText: "CERRAR"
+ self.loadActividades = function () {
+ self.gridOptions.data = [];
+ try {
+ $scope.apropiacion.Apropiacion.datos.forEach(function (itemactividad) {
+ $scope.movimiento.forEach(function(mov){
+ mov.datos = JSON.parse(mov.Detalle);
+ })
+ itemactividad["registro_plan_adquisiciones-actividad"].forEach(function (item){
+ var actcont = 0;
+ var movi = $scope.movimiento.filter(function(mov){
+ return mov.datos.ActividadId === item.actividad.Id;
});
+ if(movi && movi.length){
+ item.FuentesFinanciamiento.forEach(function (fuente){
+ movi.forEach(function (movimientoFuentes){
+ if(fuente.FuenteFinanciamiento === movimientoFuentes.datos.FuenteFinanciamientoId){
+ actcont += movimientoFuentes.Saldo;
+ fuente.ValorAsignado = movimientoFuentes.Saldo;
+ }
+ });
+ });
+ }
+ if (item.actividad.MetaId.Numero === parseInt($scope.d_metasActividades.meta)) {
+ const actividadSchema = {
+ actividad_id: item.actividad.Id.toString(),
+ actividad: item.actividad.Nombre,
+ valor_actividad: actcont,
+ };
+
+ if (self.gridOptions.data.length > 0) {
+ self.gridOptions.data.forEach(function (uniqueActividad) {
+ if (uniqueActividad.actividad_id !== actividadSchema.actividad_id) {
+ self.gridOptions.data.push(actividadSchema);
+ }
+ });
+ } else {
+ self.gridOptions.data.push(actividadSchema);
+ }
-
- }
- } else {
- self.gridOptions.data = [];
- self.gridApi.grid.modifyRows(self.gridOptions.data);
- swal({
- title: '¡No hay Dependencias Seleccionadas!',
- type: 'error',
- text: 'Las dependencias no han sido seleccionadas',
- showCloseButton: true,
- confirmButtonText: "CERRAR"
- });
- }
-
- });
- }
-
+ self.gridOptions.data = Array.from(
+ new Set(self.gridOptions.data)
+ );
+ };
+ })
+ });
+ } catch (error) {
+ swal({
+ title: "Error Actividades",
+ type: "error",
+ text: "No se ha podido acceder a las actividades del plan de adquisiciones" + error.message,
+ showCloseButton: true,
+ confirmButtonText: $translate.instant("CERRAR"),
+ });
+ } finally {
+ self.gridOptions.data = Array.from(
+ new Set(self.gridOptions.data)
+ );
+ }
+ };
// se observa cambios en actividades para seleccionar las respectivas filas en la tabla
- $scope.$watch('actividades', function () {
- $scope.actividades ? $scope.actividades.forEach(function (act) {
- var tmp = self.gridOptions.data.filter(function (e) { return e.actividad_id !== act.ActividadId })
- if (tmp.length > 0) {
- self.gridApi.selection.selectRow(tmp[0]); //seleccionar las filas
- }
- }) : _;
- self.actividades = $scope.actividades;
+ $scope.$watch("actividades", function () {
+ $scope.actividades ? $scope.actividades.forEach(function (act) {
+ var tmp = self.gridOptions.data.filter(function (e) {
+ return e.actividad_id !== act.ActividadId;
+ });
+ if (tmp.length > 0) {
+ self.gridApi.selection.selectRow(tmp[0]); //seleccionar las filas
+ }
+ })
+ : _;
+ self.actividades = $scope.actividades;
});
- $scope.$watch('[d_metasActividades.gridOptions.paginationPageSize, d_metasActividades.gridOptions.data]', function () {
- if ((self.gridOptions.data.length <= self.gridOptions.paginationPageSize || self.gridOptions.paginationPageSize === null) && self.gridOptions.data.length > 0) {
- $scope.gridHeight = self.gridOptions.rowHeight * 2 + (self.gridOptions.data.length * self.gridOptions.rowHeight);
- if (self.gridOptions.data.length <= 5) {
- self.gridOptions.enablePaginationControls = false;
+ $scope.$watch(
+ "[d_metasActividades.gridOptions.paginationPageSize, d_metasActividades.gridOptions.data]",
+ function () {
+ if (
+ ((self.gridOptions.data.length <=
+ self.gridOptions.paginationPageSize) ||
+ self.gridOptions.paginationPageSize === null) &&
+ self.gridOptions.data.length > 0
+ ) {
+ $scope.gridHeight =
+ self.gridOptions.rowHeight * 2 +
+ self.gridOptions.data.length * self.gridOptions.rowHeight;
+ if (self.gridOptions.data.length <= 5) {
+ self.gridOptions.enablePaginationControls = false;
+ }
+ } else {
+ $scope.gridHeight =
+ self.gridOptions.rowHeight * 3 +
+ self.gridOptions.paginationPageSize *
+ self.gridOptions.rowHeight;
+ self.gridOptions.enablePaginationControls = true;
}
- } else {
- $scope.gridHeight = self.gridOptions.rowHeight * 3 + (self.gridOptions.paginationPageSize * self.gridOptions.rowHeight);
- self.gridOptions.enablePaginationControls = true;
- }
- }, true);
-
+ },
+ true
+ );
},
- controllerAs: 'd_metasActividades'
+ controllerAs: "d_metasActividades",
};
});
diff --git a/app/scripts/directives/necesidad/visualizar_necesidad.js b/app/scripts/directives/necesidad/visualizar_necesidad.js
index 1bb97ab6..b3fa63f0 100755
--- a/app/scripts/directives/necesidad/visualizar_necesidad.js
+++ b/app/scripts/directives/necesidad/visualizar_necesidad.js
@@ -15,7 +15,6 @@ angular.module('contractualClienteApp')
return {
restrict: 'E',
scope: {
- vigencia: '=',
numero: '=',
estado: '=',
modalidadSel: '=?',
@@ -23,7 +22,7 @@ angular.module('contractualClienteApp')
necesidad: '=?'
},
templateUrl: 'views/directives/necesidad/visualizar_necesidad.html',
- controller: function (financieraRequest, metasRequest, administrativaRequest, agoraRequest, oikosRequest, necesidadService, coreAmazonRequest, necesidadesCrudRequest, planCuentasRequest, $scope) {
+ controller: function (metasRequest, agoraRequest, oikosRequest, necesidadService, coreAmazonRequest, necesidadesCrudRequest, planCuentasRequest, $scope) {
var self = this;
self.verJustificacion = false;
self.justificaciones_rechazo = [];
@@ -31,8 +30,11 @@ angular.module('contractualClienteApp')
self.solicitud_disponibilidad = null;
self.modalidadSel = {};
var metas = {};
+ var actividades = {};
+ self.dataDias = null;
$scope.$watch('necesidad', function () {
+
if (!$scope.necesidad) {
return
}
@@ -62,8 +64,23 @@ angular.module('contractualClienteApp')
})
}
})
-
}
+ $scope.necesidad.Rubros.map(function(r){
+ r.Metas.map(function(res){
+ metasRequest.get("Meta/"+res.MetaId).then(function(resp){
+ res.Nombre = resp.data.Nombre;
+ })
+ res.Actividades.map(function(resa){
+
+ metasRequest.get("Actividad/"+resa.ActividadId).then(function(resp){
+
+ resa.Nombre = resp.data.Nombre;
+ })
+ })
+ })
+ });
+ var dataDias = necesidadService.calculo_total_dias_rev($scope.necesidad.Necesidad.DiasDuracion);
+ self.dataDias = dataDias;
});
$scope.$watch('d_visualizarNecesidad.modalidadSel', function () {
@@ -98,13 +115,21 @@ angular.module('contractualClienteApp')
if (response_dependencia.data !== null && response_dependencia.status === 200) {
if (solicitante) {
self.dependencia_solicitante = response_dependencia.data[0];
-
- metasRequest.get('plan_adquisiciones/' + $scope.necesidad.Necesidad.Vigencia +
- "/" + response_dependencia.data[0].Id).then(function (response) {
-
+ const queryMetas = 'Registro_plan_adquisiciones-Metas_Asociadas?query=RegistroPlanAdquisicionesId__PlanAdquisicionesId__Vigencia%3A' + $scope.necesidad.Necesidad.Vigencia +
+ "%2CRegistroPlanAdquisicionesId__ResponsableId%3A" + response_dependencia.data[0].Id + "&limit=-1";
+ metasRequest.get(queryMetas).then(function (response) {
if (response.data !== null && response.status === 200) {
- metas = response.data.metas;
- $scope.necesidad.Rubros.forEach(get_informacion_meta);
+ metas = response.data.Data.map(function(met){
+ metasRequest.get("Actividad?query=MetaId__Id%3A"+met.MetaId.Id).then(function(response2){
+ if (response2.data !== null && response2.status === 200) {
+ actividades = response2.data.map(function(act){
+ return act;
+ });
+ $scope.necesidad.Rubros.forEach(get_informacion_meta);
+ }
+ })
+ return met.MetaId;
+ });
}
});
} else {
@@ -116,16 +141,18 @@ angular.module('contractualClienteApp')
}
function get_informacion_meta(rubro) {
- rubro.Metas ? rubro.Metas.forEach(function (meta) {
- meta.InfoMeta = metas.actividades.find(function (item) {
- return item.meta_id === meta.MetaId
- });
- meta.Actividades.forEach(function (actividad) {
- actividad.InfoActividad = metas.actividades.find(function (item) {
- return actividad.ActividadId === item.actividad_id
+ if(rubro.Metas){
+ rubro.Metas.forEach(function (meta) {
+ meta.InfoMeta = metas.map(function (item) {
+ return item;
});
- });
- }) : _;
+ meta.Actividades.forEach(function (actividad) {
+ actividad.InfoActividad = actividades.map(function (item) {
+ return item;
+ });
+ });
+ })
+ }
}
@@ -154,4 +181,4 @@ angular.module('contractualClienteApp')
},
controllerAs: 'd_visualizarNecesidad'
};
- });
\ No newline at end of file
+ });
diff --git a/app/scripts/environment/.gitignore b/app/scripts/environment/.gitignore
new file mode 100644
index 00000000..6bb9d24a
--- /dev/null
+++ b/app/scripts/environment/.gitignore
@@ -0,0 +1 @@
+environment_local*.js
diff --git a/app/scripts/environment/environment.js b/app/scripts/environment/environment.js
index 6ada51a9..6a05d925 100644
--- a/app/scripts/environment/environment.js
+++ b/app/scripts/environment/environment.js
@@ -13,26 +13,25 @@ angular.module('contractualClienteApp')
APP: "kronos",
APP_MENU: "Necesidades",
GENERAL: {
- //no wso2
- WSO2_SERVICE: "http://jbpm.udistritaloas.edu.co:8280/services/", // NO ESTA URL EN PREPROD
ADMINISTRATIVA_MID_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/administrativa_mid_api/v1/",
ADMINISTRATIVA_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/administrativa_crud_api/v1/",
ADMINISTRATIVA_PRUEBAS_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/administrativa_amazon_api/v1/",
CONFIGURACION_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/configuracion_crud_api/v1/",
- CORE_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/core_api/v1/",
CORE_AMAZON_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/core_amazon_crud/v1/",
PARAMETROS_GOBIERNO_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/parametros_gobierno/v1/",
CATALOGO_ARKA_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/catalogo_elementos_crud/v1/",
PLAN_CUENTAS_MID_SERVICE: 'https://autenticacion.portaloas.udistrital.edu.co/apioas/plan_cuentas_mid/v1/',
PLAN_CUENTAS_MONGO_SERVICE: 'https://autenticacion.portaloas.udistrital.edu.co/apioas/plan_cuentas_mongo_crud/v1/',
+ PLAN_ADQUISICIONES_CRUD_SERVICE: 'https://autenticacion.portaloas.udistrital.edu.co/apioas/plan_adquisiciones_crud/v1/',
NECESIDADES_CRUD_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/necesidades_crud/v1/",
- METAS_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/bodega_jbpm/v1/",
MODELS_SERVICE: "scripts/models/",
+ MOVIMIENTOS_CRUD: "https://autenticacion.portaloas.udistrital.edu.co/apioas/movimientos_crud/v1/",
PARAMETROS_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/parametros/v1/", // PARAMETROS NUEVOS
OIKOS_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/oikos_crud_api/v1/",
ARGO_NOSQL_SERVICE: "http://10.20.2.43:8083/v1/", // NO ESTA URL EN PREPROD
- CONTRATO_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/administrativa_jbpm/v1/", // NO ESTA URL EN PREPROD
NOTIFICACION_WS: "wss://pruebasapi.portaloas.udistrital.edu.co:8116/ws/join",
+ TERCEROS_CRUD: "https://autenticacion.portaloas.udistrital.edu.co/apioas/terceros_crud/v1/",
+ TERCEROS_MID: "https://autenticacion.portaloas.udistrital.edu.co/apioas/terceros_mid/v1/",
TOKEN: {
AUTORIZATION_URL: "https://autenticacion.portaloas.udistrital.edu.co/oauth2/authorize",
URL_USER_INFO: "https://autenticacion.portaloas.udistrital.edu.co/oauth2/userinfo",
@@ -47,6 +46,3 @@ angular.module('contractualClienteApp')
},
},
});
-
-
-
diff --git a/app/scripts/environment/environment_prod.js b/app/scripts/environment/environment_prod.js
index 252bf50d..dbd9cabb 100644
--- a/app/scripts/environment/environment_prod.js
+++ b/app/scripts/environment/environment_prod.js
@@ -13,25 +13,25 @@ angular.module('contractualClienteApp')
APP: "kronos",
APP_MENU: "Necesidades",
GENERAL: {
- WSO2_SERVICE: "http://jbpm.udistritaloas.edu.co:8280/services/", // NO ESTA URL EN PREPROD
ADMINISTRATIVA_MID_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/administrativa_mid_api/v1/",
ADMINISTRATIVA_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/administrativa_crud_api/v1/",
ADMINISTRATIVA_PRUEBAS_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/administrativa_amazon_api/v1/",
CONFIGURACION_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/configuracion_crud_api/v1/",
- CORE_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/core_api/v1/",
CORE_AMAZON_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/core_amazon_crud/v1/",
PARAMETROS_GOBIERNO_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/parametros_gobierno/v1/",
CATALOGO_ARKA_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/catalogo_elementos_crud/v1/",
PLAN_CUENTAS_MID_SERVICE: 'https://autenticacion.portaloas.udistrital.edu.co/apioas/plan_cuentas_mid/v1/',
PLAN_CUENTAS_MONGO_SERVICE: 'https://autenticacion.portaloas.udistrital.edu.co/apioas/plan_cuentas_mongo_crud/v1/',
+ PLAN_ADQUISICIONES_CRUD_SERVICE: 'https://autenticacion.portaloas.udistrital.edu.co/apioas/plan_adquisiciones_crud/v1/',
NECESIDADES_CRUD_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/necesidades_crud/v1/",
- METAS_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/bodega_jbpm/v1/",
MODELS_SERVICE: "scripts/models/",
+ MOVIMIENTOS_CRUD: "https://autenticacion.portaloas.udistrital.edu.co/apioas/movimientos_crud/v1/",
PARAMETROS_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/parametros/v1/", // PARAMETROS NUEVOS
OIKOS_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/oikos_crud_api/v1/",
ARGO_NOSQL_SERVICE: "http://10.20.2.43:8083/v1/", // NO ESTA URL EN PREPROD
- CONTRATO_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/administrativa_jbpm/v1/", // NO ESTA URL EN PREPROD
NOTIFICACION_WS: "wss://pruebasapi.portaloas.udistrital.edu.co:8116/ws/join",
+ TERCEROS_CRUD: "https://autenticacion.portaloas.udistrital.edu.co/apioas/terceros_crud/v1/",
+ TERCEROS_MID: "https://autenticacion.portaloas.udistrital.edu.co/apioas/terceros_mid/v1/",
TOKEN: {
AUTORIZATION_URL: "https://autenticacion.portaloas.udistrital.edu.co/oauth2/authorize",
URL_USER_INFO: "https://autenticacion.portaloas.udistrital.edu.co/oauth2/userinfo",
diff --git a/app/scripts/environment/environment_test.js b/app/scripts/environment/environment_test.js
index 274f4b37..9e2eeb16 100644
--- a/app/scripts/environment/environment_test.js
+++ b/app/scripts/environment/environment_test.js
@@ -13,25 +13,25 @@ angular.module('contractualClienteApp')
APP: "kronos",
APP_MENU: "Necesidades",
GENERAL: {
- WSO2_SERVICE: "http://jbpm.udistritaloas.edu.co:8280/services/", // NO ESTA URL EN PREPROD
ADMINISTRATIVA_MID_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/administrativa_mid_api/v1/",
ADMINISTRATIVA_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/administrativa_crud_api/v1/",
ADMINISTRATIVA_PRUEBAS_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/administrativa_amazon_api/v1/",
CONFIGURACION_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/configuracion_crud_api/v1/",
- CORE_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/core_api/v1/",
CORE_AMAZON_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/core_amazon_crud/v1/",
PARAMETROS_GOBIERNO_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/parametros_gobierno/v1/",
CATALOGO_ARKA_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/catalogo_elementos_crud/v1/",
PLAN_CUENTAS_MID_SERVICE: 'https://autenticacion.portaloas.udistrital.edu.co/apioas/plan_cuentas_mid/v1/',
PLAN_CUENTAS_MONGO_SERVICE: 'https://autenticacion.portaloas.udistrital.edu.co/apioas/plan_cuentas_mongo_crud/v1/',
+ PLAN_ADQUISICIONES_CRUD_SERVICE: 'https://autenticacion.portaloas.udistrital.edu.co/apioas/plan_adquisiciones_crud/v1/',
NECESIDADES_CRUD_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/necesidades_crud/v1/",
- METAS_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/bodega_jbpm/v1/",
MODELS_SERVICE: "scripts/models/",
+ MOVIMIENTOS_CRUD: "https://autenticacion.portaloas.udistrital.edu.co/apioas/movimientos_crud/v1/",
PARAMETROS_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/parametros/v1/", // PARAMETROS NUEVOS
OIKOS_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/oikos_crud_api/v1/",
ARGO_NOSQL_SERVICE: "http://10.20.2.43:8083/v1/", // NO ESTA URL EN PREPROD
- CONTRATO_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/administrativa_jbpm/v1/", // NO ESTA URL EN PREPROD
NOTIFICACION_WS: "wss://pruebasapi.portaloas.udistrital.edu.co:8116/ws/join",
+ TERCEROS_CRUD: "https://autenticacion.portaloas.udistrital.edu.co/apioas/terceros_crud/v1/",
+ TERCEROS_MID: "https://autenticacion.portaloas.udistrital.edu.co/apioas/terceros_mid/v1/",
TOKEN: {
AUTORIZATION_URL: "https://autenticacion.portaloas.udistrital.edu.co/oauth2/authorize",
URL_USER_INFO: "https://autenticacion.portaloas.udistrital.edu.co/oauth2/userinfo",
diff --git a/app/scripts/models/area_funcional_provisional.json b/app/scripts/models/area_funcional_provisional.json
new file mode 100644
index 00000000..0de7bb4e
--- /dev/null
+++ b/app/scripts/models/area_funcional_provisional.json
@@ -0,0 +1,10 @@
+[
+ {
+ "Id": 1,
+ "Nombre": "Rector"
+ },
+ {
+ "Id": 2,
+ "Nombre": "IDEXUD"
+ }
+]
\ No newline at end of file
diff --git a/app/scripts/services/config.js b/app/scripts/services/config.js
index e67df046..db247a99 100644
--- a/app/scripts/services/config.js
+++ b/app/scripts/services/config.js
@@ -8,7 +8,6 @@
* Constant in the contractualClienteApp.
*/
var conf_cloud = {
- WSO2_SERVICE: "http://jbpm.udistritaloas.edu.co:8280/services",
ACADEMICA_SERVICE: "http://10.20.0.127/urano/index.php?data=B-7djBQWvIdLAEEycbH1n6e-3dACi5eLUOb63vMYhGq0kPBs7NGLYWFCL0RSTCu1yTlE5hH854MOgmjuVfPWyvdpaJDUOyByX-ksEPFIrrQQ7t1p4BkZcBuGD2cgJXeD",
ACADEMICA_WSO_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/academica_jbpm/v1/",
ADMINISTRATIVA_MID_SERVICE: "https://tuleap.udistrital.edu.co/go_api/administrativa_mid_api/v1/",
@@ -28,7 +27,6 @@ var conf_cloud = {
PAGOS_SERVICE: "https://tuleap.udistrital.edu.co/go_api/services/academicaProxyService/ingresos_concepto/",
TITAN_SERVICE: "https://tuleap.udistrital.edu.co/go_api/titan_api_crud/v1/",
SICAPITAL_SERVICE: "http://10.20.0.127/sicws/ws/sicapitalAPI.php/?/",
- CONTRATO_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/administrativa_jbpm/v1/",
NUXEO_SERVICE: "https://documental.portaloas.udistrital.edu.co/nuxeo/",
HOMOLOGACION_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/dependencias_api/v1/",
TOKEN: {
@@ -47,7 +45,6 @@ var conf_cloud = {
},
};
var conf_test = {
- WSO2_SERVICE: "http://jbpm.udistritaloas.edu.co:8280/services/", // NO ESTA URL EN PREPROD
ADMINISTRATIVA_MID_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/administrativa_mid_api/v1/",
ADMINISTRATIVA_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/administrativa_crud_api/v1/",
ADMINISTRATIVA_PRUEBAS_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/administrativa_amazon_api/v1/",
@@ -58,11 +55,9 @@ var conf_test = {
PLAN_CUENTAS_MID_SERVICE: 'https://autenticacion.portaloas.udistrital.edu.co/apioas/plan_cuentas_mid/v1/',
PLAN_CUENTAS_MONGO_SERVICE: 'https://autenticacion.portaloas.udistrital.edu.co/apioas/plan_cuentas_mongo_crud/v1/',
NECESIDADES_CRUD_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/necesidades_crud/v1/",
- METAS_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/bodega_jbpm/v1/",
MODELS_SERVICE: "scripts/models/",
OIKOS_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/oikos_crud_api/v1/",
ARGO_NOSQL_SERVICE: "http://10.20.2.43:8083/v1/", // NO ESTA URL EN PREPROD
- CONTRATO_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/administrativa_jbpm/v1/", // NO ESTA URL EN PREPROD
TOKEN: {
AUTORIZATION_URL: "https://autenticacion.portaloas.udistrital.edu.co/oauth2/authorize",
URL_USER_INFO: "https://autenticacion.portaloas.udistrital.edu.co/oauth2/userinfo",
@@ -78,8 +73,6 @@ var conf_test = {
};
var conf_presentacion = {
- //no wso2
- WSO2_SERVICE: "http://jbpm.udistritaloas.edu.co:8280/services", // NO ESTA URL EN PREPROD
ADMINISTRATIVA_MID_SERVICE: "http://pruebasapi.intranetoas.udistrital.edu.co:8091/v1/",
ADMINISTRATIVA_SERVICE: "http://pruebasapi.intranetoas.udistrital.edu.co:8090/v1/",
ADMINISTRATIVA_PRUEBAS_SERVICE: "http://pruebasapi.intranetoas.udistrital.edu.co:8104/v1/",
@@ -89,11 +82,9 @@ var conf_presentacion = {
PLAN_CUENTAS_MID_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/plan_cuentas_mid/v1/",
PLAN_CUENTAS_MONGO_SERVICE: 'https://autenticacion.portaloas.udistrital.edu.co/apioas/plan_cuentas_mongo_crud/v1/',
NECESIDADES_CRUD_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/necesidades_crud/v1/",
- METAS_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/bodega_jbpm/v1/",
MODELS_SERVICE: "scripts/models/",
OIKOS_SERVICE: "http://pruebasapi.intranetoas.udistrital.edu.co:8087/v1/",
ARGO_NOSQL_SERVICE: "http://10.20.2.43:8083/v1/", // NO ESTA URL EN PREPROD
- CONTRATO_SERVICE: "http://jbpm.udistritaloas.edu.co:8280/services/contratoSuscritoProxyService/", // NO ESTA URL EN PREPROD
TOKEN: {
AUTORIZATION_URL: "https://autenticacion.portaloas.udistrital.edu.co/oauth2/authorize",
URL_USER_INFO: "https://autenticacion.portaloas.udistrital.edu.co/oauth2/userinfo",
@@ -109,8 +100,6 @@ var conf_presentacion = {
};
var conf_local2 = {
- //no wso2
- WSO2_SERVICE: "http://jbpm.udistritaloas.edu.co:8280/services", // NO ESTA URL EN PREPROD
ADMINISTRATIVA_MID_SERVICE: "http://pruebasapi.intranetoas.udistrital.edu.co:8091/v1/",
ADMINISTRATIVA_SERVICE: "http://pruebasapi.intranetoas.udistrital.edu.co:8090/v1/",
ADMINISTRATIVA_PRUEBAS_SERVICE: "http://pruebasapi.intranetoas.udistrital.edu.co:8104/v1/",
@@ -122,11 +111,9 @@ var conf_local2 = {
PLAN_CUENTAS_MID_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/plan_cuentas_mid/v1/",//"http://10.20.2.126:8084/v1/",
PLAN_CUENTAS_MONGO_SERVICE: "http://pruebasapi.intranetoas.udistrital.edu.co:8203/v1/",
NECESIDADES_CRUD_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/necesidades_crud/v1/",//"http://10.20.2.126:8201/v1/",
- METAS_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/bodega_jbpm/v1/",
MODELS_SERVICE: "scripts/models/",
OIKOS_SERVICE: "http://pruebasapi.intranetoas.udistrital.edu.co:8087/v1/",
ARGO_NOSQL_SERVICE: "http://10.20.2.43:8083/v1/", // NO ESTA URL EN PREPROD
- CONTRATO_SERVICE: "http://jbpm.udistritaloas.edu.co:8280/services/contratoSuscritoProxyService/", // NO ESTA URL EN PREPROD
TOKEN: {
AUTORIZATION_URL: "https://autenticacion.portaloas.udistrital.edu.co/oauth2/authorize",
URL_USER_INFO: "https://autenticacion.portaloas.udistrital.edu.co/oauth2/userinfo",
@@ -142,8 +129,6 @@ var conf_local2 = {
};
var conf_local = {
- //wso2
- WSO2_SERVICE: "http://jbpm.udistritaloas.edu.co:8280/services", // NO ESTA URL EN PREPROD
ADMINISTRATIVA_MID_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/administrativa_mid_api/v1/",
ADMINISTRATIVA_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/administrativa_crud_api/v1/",
ADMINISTRATIVA_PRUEBAS_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/administrativa_amazon_api/v1/",
@@ -155,10 +140,8 @@ var conf_local = {
PLAN_CUENTAS_MONGO_SERVICE: 'https://autenticacion.udistrital.edu.co/apioas/plan_cuentas_mongo_crud/v1/',
NECESIDADES_CRUD_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/necesidades_crud/v1/", //
FINANCIERA_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/financiera_crud_api/v1/",
- METAS_SERVICE: "https://autenticacion.portaloas.udistrital.edu.co/apioas/bodega_jbpm/v1/",
MODELS_SERVICE: "scripts/models/",
OIKOS_SERVICE: "http://pruebasapi.intranetoas.udistrital.edu.co:8087/v1/",
- CONTRATO_SERVICE: "http://jbpm.udistritaloas.edu.co:8280/services/contratoSuscritoProxyService/", // NO ESTA URL EN PREPROD
TOKEN: {
AUTORIZATION_URL: "https://autenticacion.portaloas.udistrital.edu.co/oauth2/authorize",
URL_USER_INFO: "https://autenticacion.portaloas.udistrital.edu.co/oauth2/userinfo",
@@ -174,7 +157,7 @@ var conf_local = {
};
angular.module('contractualClienteApp')
- .constant('CONF', {
- GENERAL: conf_local2,
+ .constant('CONF2', {
+ GENERAL2: conf_local2,
});
diff --git a/app/scripts/services/configuracion_service.js b/app/scripts/services/configuracion_service.js
index b009d026..a89845f3 100644
--- a/app/scripts/services/configuracion_service.js
+++ b/app/scripts/services/configuracion_service.js
@@ -23,7 +23,7 @@ angular.module('configuracionService', [])
* Factory que permite gestionar los servicios para construir y gestion los elementos que se muestran por el cliente a traves del menú
*/
-.factory('configuracionRequest', function($http, $q, CONF, token_service) {
+.factory('configuracionRequest', function($http, CONF, token_service) {
// Service logic
// ...
var path = CONF.GENERAL.CONFIGURACION_SERVICE;
diff --git a/app/scripts/services/contrato_service.js b/app/scripts/services/contrato_service.js
deleted file mode 100644
index e26c1f90..00000000
--- a/app/scripts/services/contrato_service.js
+++ /dev/null
@@ -1,38 +0,0 @@
-'use strict';
-
-/**
- * @ngdoc service
- * @name contractualClienteApp.contratoService
- * @description
- * # contratoService
- * Factory in the contractualClienteApp.
- */
-angular.module('contratoService', [])
- .factory('contratoRequest', function($http, token_service, CONF) {
- // Service logic
- // ...
- var path = CONF.GENERAL.CONTRATO_SERVICE;
-
- // Public API here
- return {
- get: function(tabla, params) {
- var url = path + tabla;
- if (params !== '') {
- url = url + '/' + params;
- }
- return $http.get(url, token_service.setting_bearer.headers);
- },
- getAll: function(tabla) {
- return $http.get(path + tabla, token_service.setting_bearer.headers);
- },
- post: function(tabla, elemento) {
- return $http.post(path + tabla, elemento, token_service.setting_bearer.headers);
- },
- put: function(tabla, id, elemento) {
- return $http.put(path + tabla + "/" + id, elemento, token_service.setting_bearer.headers);
- },
- delete: function(tabla, id) {
- return $http.delete(path + tabla + "/" + id, token_service.setting_bearer.headers);
- }
- };
- });
\ No newline at end of file
diff --git a/app/scripts/services/core_service.js b/app/scripts/services/core_service.js
deleted file mode 100755
index 5778eac2..00000000
--- a/app/scripts/services/core_service.js
+++ /dev/null
@@ -1,41 +0,0 @@
-'use strict';
-
-/**
- * @ngdoc service
- * @name coreService.coreRequest
- * @description
- * # coreRequest
- * Factory in the coreRequest.
- */
-angular.module('coreService', [])
- .factory('coreRequest', function($http, $q, token_service, CONF) {
- // Service logic
- // ...
- //var path = "http://10.20.2.78:8081/v1/";
- //var path = "http://10.20.0.254/core_amazon_crud/v1/";
- var path = CONF.GENERAL.CORE_SERVICE;
- // Public API here
- var cancelSearch;
- return {
- get: function (tabla, params) {
- cancelSearch = $q.defer();
- if (params === undefined) {
- return $http.get(path + tabla, [{ timeout: cancelSearch.promise }, token_service.setting_bearer.headers]);
- } else {
- return $http.get(path + tabla + "/?" + params, [{ timeout: cancelSearch.promise }, token_service.setting_bearer.headers]);
- }
- },
- post: function (tabla, elemento) {
- return $http.post(path + tabla, elemento, token_service.setting_bearer.headers);
- },
- put: function (tabla, id, elemento) {
- return $http.put(path + tabla + "/" + id, elemento, token_service.setting_bearer.headers);
- },
- delete: function (tabla, id) {
- return $http.delete(path + tabla + "/" + id, token_service.setting_bearer.headers);
- },
- cancel: function () {
- return cancelSearch.resolve('search aborted');
- }
- };
- });
\ No newline at end of file
diff --git a/app/scripts/services/grid/gridapi_service.js b/app/scripts/services/grid/gridapi_service.js
index b9e5c0dc..2b1193e0 100644
--- a/app/scripts/services/grid/gridapi_service.js
+++ b/app/scripts/services/grid/gridapi_service.js
@@ -23,7 +23,7 @@ angular.module('gridApiService', [])
angular.forEach(grid.columns, function (value, key) {
if (value.filters[0].term) {
var formtstr = value.colDef.name.replace('[0]', '');
- //console.log("change ", value.filters[0].term);
+ // console.log("change ", value.filters[0].term);
query.push(formtstr + '__icontains:' + value.filters[0].term);
}
});
diff --git a/app/scripts/services/metas_service.js b/app/scripts/services/metas_service.js
index 6b480b3e..00dcb6b1 100644
--- a/app/scripts/services/metas_service.js
+++ b/app/scripts/services/metas_service.js
@@ -8,31 +8,14 @@
* Service in the contractualClienteApp.
*/
angular.module('metasService', [])
- .service('metasRequest', function ($http, $q, token_service, CONF) {
+ .service('metasRequest', function ($http, CONF) {
// AngularJS will instantiate a singleton by calling "new" on this function
- var path = CONF.GENERAL.METAS_SERVICE;
+ var path = CONF.GENERAL.PLAN_ADQUISICIONES_CRUD_SERVICE;
// Public API here
var cancelSearch; //defer object
return {
- get: function (tabla, params) {
- cancelSearch = $q.defer();
- if (params === undefined) {
- return $http.get(path + tabla, [{ timeout: cancelSearch.promise }, token_service.setting_bearer.headers]);
- } else {
- return $http.get(path + tabla + "/?" + params, [{ timeout: cancelSearch.promise }, token_service.setting_bearer.headers]);
- }
+ get: function (query) {
+ return $http.get(path + query);
},
- post: function (tabla, elemento) {
- return $http.post(path + tabla, elemento, token_service.setting_bearer.headers);
- },
- put: function (tabla, id, elemento) {
- return $http.put(path + tabla + "/" + id, elemento, token_service.setting_bearer.headers);
- },
- delete: function (tabla, id) {
- return $http.delete(path + tabla + "/" + id, token_service.setting_bearer.headers);
- },
- cancel: function () {
- return cancelSearch.resolve('search aborted');
- }
};
});
diff --git a/app/scripts/services/movimientos_service.js b/app/scripts/services/movimientos_service.js
new file mode 100644
index 00000000..13262281
--- /dev/null
+++ b/app/scripts/services/movimientos_service.js
@@ -0,0 +1,39 @@
+'use strict';
+
+/**
+ * @ngdoc service
+ * @name contractualClienteApp.planCuentasMid
+ * @description
+ * # planCuentasMid
+ * Service in the contractualClienteApp.
+ */
+angular.module('movimientosCrudService',[])
+ .service('movimientosCrudRequest', function ($http, $q, token_service, CONF) {
+ // Service logic
+ // ...
+ var path = CONF.GENERAL.MOVIMIENTOS_CRUD;
+ // Public API here
+ var cancelSearch; //defer object
+ return {
+ get: function(tabla, params) {
+ cancelSearch = $q.defer();
+ if (params === undefined) {
+ return $http.get(path + tabla, [{ timeout: cancelSearch.promise }, token_service.setting_bearer.headers]);
+ } else {
+ return $http.get(path + tabla + "/?" + params, [{ timeout: cancelSearch.promise }, token_service.setting_bearer.headers]);
+ }
+ },
+ post: function(tabla, elemento) {
+ return $http.post(path + tabla, elemento, token_service.setting_bearer.headers);
+ },
+ put: function(tabla, id, elemento) {
+ return $http.put(path + tabla + "/" + id, elemento, token_service.setting_bearer.headers);
+ },
+ delete: function(tabla, id) {
+ return $http.delete(path + tabla + "/" + id, token_service.setting_bearer.headers);
+ },
+ cancel: function() {
+ return cancelSearch.resolve('search aborted');
+ }
+ };
+ });
diff --git a/app/scripts/services/necesidad/necesidad_service.js b/app/scripts/services/necesidad/necesidad_service.js
index 3e89b045..960c13b9 100644
--- a/app/scripts/services/necesidad/necesidad_service.js
+++ b/app/scripts/services/necesidad/necesidad_service.js
@@ -8,7 +8,7 @@
* Service in the contractualClienteApp.
*/
angular.module('contractualClienteApp')
- .service('necesidadService', function ($translate, administrativaRequest, planCuentasRequest, necesidadesCrudRequest, planCuentasMidRequest, metasRequest, coreAmazonRequest, agoraRequest, oikosRequest, financieraRequest) {
+ .service('necesidadService', function ($translate, administrativaRequest, necesidadesCrudRequest, planCuentasMidRequest, coreAmazonRequest, agoraRequest, oikosRequest, financieraRequest) {
// AngularJS will instantiate a singleton by calling "new" on this function
var self = this;
self.EstadoNecesidadType = {};
@@ -181,8 +181,6 @@ angular.module('contractualClienteApp')
});
};
-
-
self.groupBy = function (list, keyGetter) {
var map = new Map();
list.forEach(function (item) {
@@ -275,7 +273,7 @@ angular.module('contractualClienteApp')
//funcion que reemplaza initnecesidad usando plan cuentas mid
self.getFullNecesidad = function (idNecesidad) {
if (idNecesidad) {
- return planCuentasMidRequest.get('necesidad/getfullnecesidad/' + idNecesidad)
+ return planCuentasMidRequest.get('necesidad/getfullnecesidad/' + idNecesidad);
}
else {
// localStorage.setItem("necesidad",JSON.stringify(self.Necesidad));
@@ -289,7 +287,6 @@ angular.module('contractualClienteApp')
JefeDepSolicitanteId: undefined,
SupervisorId: undefined
},
- Vigencia: 2019 + "",
Valor: 0,
DiasDuracion: 0,
diff --git a/app/scripts/services/necesidad/necesidades_crud_service.js b/app/scripts/services/necesidad/necesidades_crud_service.js
index ec59c48f..088a811a 100644
--- a/app/scripts/services/necesidad/necesidades_crud_service.js
+++ b/app/scripts/services/necesidad/necesidades_crud_service.js
@@ -12,6 +12,7 @@ angular.module('necesidadesCrudService', [])
// Service logic
// ...
var path = CONF.GENERAL.NECESIDADES_CRUD_SERVICE;
+ var interceptor = CONF.GENERAL.PLAN_CUENTAS_MID_SERVICE;
// Public API here
return {
@@ -26,7 +27,7 @@ angular.module('necesidadesCrudService', [])
return $http.post(path + tabla, elemento, token_service.setting_bearer.headers);
},
put: function(tabla, id, elemento) {
- return $http.put(path + tabla + "/" + id, elemento, token_service.setting_bearer.headers);
+ return $http.put(interceptor + tabla + "/" + id, elemento, token_service.setting_bearer.headers);
},
delete: function(tabla, id) {
return $http.delete(path + tabla + "/" + id, token_service.setting_bearer.headers);
diff --git a/app/scripts/services/plan_adquisiciones_service.js b/app/scripts/services/plan_adquisiciones_service.js
new file mode 100644
index 00000000..37460b96
--- /dev/null
+++ b/app/scripts/services/plan_adquisiciones_service.js
@@ -0,0 +1,59 @@
+"use strict";
+
+/**
+ * @ngdoc service
+ * @name contractualClienteApp.planAdquisicionService
+ * @description
+ * # planAdquisicionService
+ * Service in the contractualClienteApp.
+ */
+angular
+ .module("planAdquisicionService", [])
+ .service("planAdquisicionRequest", function ($http, $q, token_service, CONF) {
+ // Service logic
+ // ...
+ var path = CONF.GENERAL.PLAN_ADQUISICIONES_CRUD_SERVICE;
+ // Public API here
+ var cancelSearch; //defer object
+ return {
+ get: function (tabla, params) {
+ cancelSearch = $q.defer();
+ if (params === undefined) {
+ return $http.get(path + tabla, [
+ { timeout: cancelSearch.promise },
+ token_service.setting_bearer.headers,
+ ]);
+ } else {
+ return $http.get(path + tabla + "/?" + params, [
+ { timeout: cancelSearch.promise },
+ token_service.setting_bearer.headers,
+ ]);
+ }
+ },
+ post: function (tabla, elemento) {
+ return $http.post(
+ path + tabla,
+ elemento,
+ token_service.setting_bearer.headers
+ );
+ },
+ put: function (tabla, id, elemento) {
+ return $http.put(
+ path + tabla + "/" + id,
+ elemento,
+ token_service.setting_bearer.headers
+ );
+ },
+ delete: function (tabla, id) {
+ return $http.delete(
+ path + tabla + "/" + id,
+ token_service.setting_bearer.headers
+ );
+ },
+ cancel: function () {
+ return cancelSearch.resolve("search aborted");
+ },
+ };
+ });
+
+
diff --git a/app/scripts/services/tercero_crud_service.js b/app/scripts/services/tercero_crud_service.js
new file mode 100644
index 00000000..f02aedad
--- /dev/null
+++ b/app/scripts/services/tercero_crud_service.js
@@ -0,0 +1,39 @@
+'use strict';
+
+/**
+ * @ngdoc service
+ * @name contractualClienteApp.terceroCrudService
+ * @description
+ * # terceroCrudService
+ * Service in the contractualClienteApp.
+ */
+angular.module('terceroCrudService',[])
+ .service('terceroCrudRequest', function ($http, $q, token_service, CONF) {
+ // Service logic
+ // ...
+ var path = CONF.GENERAL.TERCEROS_CRUD;
+ // Public API here
+ var cancelSearch; //defer object
+ return {
+ get: function(tabla, params) {
+ cancelSearch = $q.defer();
+ if (params === undefined) {
+ return $http.get(path + tabla, [{ timeout: cancelSearch.promise }, token_service.setting_bearer.headers]);
+ } else {
+ return $http.get(path + tabla + "/?" + params, [{ timeout: cancelSearch.promise }, token_service.setting_bearer.headers]);
+ }
+ },
+ post: function(tabla, elemento) {
+ return $http.post(path + tabla, elemento, token_service.setting_bearer.headers);
+ },
+ put: function(tabla, id, elemento) {
+ return $http.put(path + tabla + "/" + id, elemento, token_service.setting_bearer.headers);
+ },
+ delete: function(tabla, id) {
+ return $http.delete(path + tabla + "/" + id, token_service.setting_bearer.headers);
+ },
+ cancel: function() {
+ return cancelSearch.resolve('search aborted');
+ }
+ };
+ });
\ No newline at end of file
diff --git a/app/scripts/services/tercero_mid_service.js b/app/scripts/services/tercero_mid_service.js
new file mode 100644
index 00000000..c6ad3f39
--- /dev/null
+++ b/app/scripts/services/tercero_mid_service.js
@@ -0,0 +1,39 @@
+'use strict';
+
+/**
+ * @ngdoc service
+ * @name contractualClienteApp.terceroMidService
+ * @description
+ * # terceroMidService
+ * Service in the contractualClienteApp.
+ */
+angular.module('terceroMidService',[])
+ .service('terceroMidRequest', function ($http, $q, token_service, CONF) {
+ // Service logic
+ // ...
+ var path = CONF.GENERAL.TERCEROS_MID;
+ // Public API here
+ var cancelSearch; //defer object
+ return {
+ get: function(tabla, params) {
+ cancelSearch = $q.defer();
+ if (params === undefined) {
+ return $http.get(path + tabla, [{ timeout: cancelSearch.promise }, token_service.setting_bearer.headers]);
+ } else {
+ return $http.get(path + tabla + "/?" + params, [{ timeout: cancelSearch.promise }, token_service.setting_bearer.headers]);
+ }
+ },
+ post: function(tabla, elemento) {
+ return $http.post(path + tabla, elemento, token_service.setting_bearer.headers);
+ },
+ put: function(tabla, id, elemento) {
+ return $http.put(path + tabla + "/" + id, elemento, token_service.setting_bearer.headers);
+ },
+ delete: function(tabla, id) {
+ return $http.delete(path + tabla + "/" + id, token_service.setting_bearer.headers);
+ },
+ cancel: function() {
+ return cancelSearch.resolve('search aborted');
+ }
+ };
+ });
\ No newline at end of file
diff --git a/app/scripts/services/utils/pdf_maker_necesidades.js b/app/scripts/services/utils/pdf_maker_necesidades.js
index c4fcb9ff..beb5d719 100644
--- a/app/scripts/services/utils/pdf_maker_necesidades.js
+++ b/app/scripts/services/utils/pdf_maker_necesidades.js
@@ -15,93 +15,106 @@ angular.module('contractualClienteApp')
var dependenciaData = [];
var apropiacionesData = [];
var perfil_data = [];
+ var TiposServicios;
$http.get("scripts/models/imagen.json").then(function (response) {
imagen = response.data;
- return necesidadService.getJefeDependencia(trNecesidad.DependenciaNecesidadDestino);
+ return necesidadService.getJefeDependencia(trNecesidad.Necesidad.DependenciaNecesidadId.JefeDepDestinoId, true);
}).then(function (JD) {
jefeDependenciaDestino = JD;
- return necesidadService.getJefeDependencia(trNecesidad.DependenciaNecesidad.JefeDependenciaSolicitante, true);
+ return necesidadService.getJefeDependencia(trNecesidad.Necesidad.DependenciaNecesidadId.JefeDepSolicitanteId, true);
}).then(function (JD) {
jefeDependenciaSolicitante = JD;
return necesidadService.getAllDependencias();
}).then(function (Dependencias) {
dependenciaData = Dependencias;
- apropiacionesData = trNecesidad.Ffapropiacion;
+ if(trNecesidad && trNecesidad.Rubros && trNecesidad.Rubros[0]){
+ apropiacionesData = trNecesidad.Rubros;
+ }else{
+ apropiacionesData = undefined;
+ }
+
+ $http.get("scripts/models/tipo_servicio.json").then(function (response) {
+ TiposServicios = response.data;
+ });
return necesidadService.getParametroEstandar();
}).then(function (response) {
perfil_data = response.data;
- var dependenciaDestino = dependenciaData.filter(function (d) { return d.Id === trNecesidad.DependenciaNecesidadDestino })[0]
- var dependenciaSolicitante = dependenciaData.filter(function (d) { return d.Id === trNecesidad.DependenciaNecesidadSolicitante })[0]
- var perfil = trNecesidad.DetalleServicioNecesidad ?
- perfil_data.filter(function (d) { return d.Id === trNecesidad.DetalleServicioNecesidad.Perfil })[0] :
- { ValorParametro: "" };
-
+ var dependenciaDestino = dependenciaData.filter(function (d) { return d.Id === jefeDependenciaDestino.JefeDependencia.DependenciaId })[0]
+ var dependenciaSolicitante = dependenciaData.filter(function (d) { return d.Id === jefeDependenciaSolicitante.JefeDependencia.DependenciaId })[0]
+ var perfil;
+ if(trNecesidad.DetalleServicioNecesidad && trNecesidad.DetalleServicioNecesidad.TipoServicioId){
+ perfil = trNecesidad.DetalleServicioNecesidad ? TiposServicios.find(function(element){return element.ID == trNecesidad.DetalleServicioNecesidad.TipoServicioId}): {ValorParametro: ""};
+ }else if(trNecesidad.DetallePrestacionServicioNecesidad && trNecesidad.DetallePrestacionServicioNecesidad.PerfilId){
+ perfil = trNecesidad.DetallePrestacionServicioNecesidad ? perfil_data.filter(function (d) {
+ return d.Id === trNecesidad.DetallePrestacionServicioNecesidad.PerfilId
+ })[0] : {
+ ValorParametro: ""
+ };
+ }
resolve({
header: function (currentPage, pageCount) {
- return {
- style: ['header', "p"],
- margin: [0, 0, 0, 15],
- table: {
- // headers are automatically repeated if the table spans over multiple pages
- // you can declare how many rows should be treated as headers
- headerRows: 1,
- widths: ['10%', '*', '40%'],
- body: [
- [
- {
- height: 60,
- width: 60,
- image: imagen.imagen,
- alignment: 'center',
- rowSpan: 4,
- },
- { text: 'Solicitud Necesidad'.toUpperCase(), rowSpan: 4, margin: [0, 33, 0, 0], style: "headerTitle" },
- { text: "Dependencia Solicitante", style: "title1", border: [true, true, true, false] }
- ],
- [
- "",
- "",
- { text: dependenciaSolicitante.Nombre.toUpperCase(), border: [true, false, true, true] }
- ],
- [
- "",
- "",
- {
- alignment: 'center',
- columns: [
- [{ text: "Vigencia", style: "title1" }, trNecesidad.Necesidad.Vigencia],
- [{ text: "No. Solicitud", style: "title1" }, trNecesidad.Necesidad.NumeroElaboracion]
- ],
- columnGap: 10
- }
- ],
- [
- "",
- "",
- "Página " + currentPage.toString() + " de " + pageCount,
-
- ]
- ]
- }
+ return {
+ style: ['header', "p"],
+ margin: [0, 0, 0, 15],
+ table: {
+ // headers are automatically repeated if the table spans over multiple pages
+ // you can declare how many rows should be treated as headers
+ headerRows: 1,
+ widths: ['10%', '*', '40%'],
+ body: [
+ [
+ {
+ height: 60,
+ width: 60,
+ image: imagen.imagen,
+ alignment: 'center',
+ rowSpan: 4,
+ },
+ { text: "Solicitud Necesidad".toUpperCase(), rowSpan: 4, margin: [0, 33, 0, 0], style: "headerTitle" },
+ { text: "Dependencia Solicitante", style: "title1", border: [true, true, true, false] }
+ ],
+ [
+ "",
+ "",
+ { text: dependenciaSolicitante.Nombre.toUpperCase(), border: [true, false, true, true] }
+ ],
+ [
+ "",
+ "",
+ {
+ alignment: 'center',
+ columns: [
+ { text: "Vigencia " + trNecesidad.Necesidad.Vigencia, style: "title1" },
+ { text: "No. Solicitud "+ trNecesidad.Necesidad.Consecutivo, style: "title1" }
+ ],
+ columnGap: 10
+ }
+ ],
+ [
+ "",
+ "",
+ { text:"Página " + currentPage.toString() + " de " + pageCount}
+ ]
+ ]
}
+ }
},
content: [
{
style: "p",
layout: {
fillColor: function (i, node) {
- return (i % 2 === 1) ? '#CCCCCC' : null;
+ return (i % 2 === 1) ? '#CCCCCC' : null;
}
},
table: {
headerRows: 0,
widths: ["100%"],
-
body: [
[{ alignment: "center", text: [{ bold: true, text: "Fecha de Solicitud: " }, moment(trNecesidad.Necesidad.FechaSolicitud).format("D [de] MMMM [de] YYYY")] }],
[{ style: "title1", text: "JUSTIFICACIÓN (Identifique de forma clara y conta la necesidad de la contratación)" }],
@@ -109,213 +122,203 @@ angular.module('contractualClienteApp')
[{ style: "title2", text: "ESPECIFICACIONES TÉCNICAS: Si la compra o el servicio contempla especificaciones del orden técnico descríbalas." }],
[
{
- table: {
- headerRows: 1,
- widths: ["auto", "*", "auto", "auto"],
- body: [
- ["Descripción", "", "Cantidad", "Unidad"],
- [
- ["Cod. 1", "Especificación:"],
- [perfil.ValorParametro, "Actividad",
- {
- text: trNecesidad.ActividadEspecifica ?
- trNecesidad.ActividadEspecifica.map(function (ae, i) { return (i + 1).toString() + '. ' + ae.Descripcion }).join('. ') : "Ninguna", alignment: "justify"
- }],
- { text: 1, alignment: 'center' },
- ""
- ]
- ]
- }
+ table: {
+ headerRows: 1,
+ widths: ["auto", "*", "auto", "auto"],
+ body: [
+ ["Descripción", "", "Cantidad", "Unidad"],
+ [
+ ["Cod. 1", "Especificación:"],
+ [{text: perfil.ValorParametro ?
+ perfil.ValorParametro : perfil.DESCRIPCION ? perfil.DESCRIPCION:"", bold: true}, "Actividades:",
+ {
+ text: trNecesidad.ActividadEspecificaNecesidad ?
+ trNecesidad.ActividadEspecificaNecesidad.map(function (ae, i) { return (i + 1).toString() + '. ' + ae.Descripcion + '.'}).join('\n \n') : "Ninguna", alignment: "justify"
+ }],
+ { text: 1, alignment: 'center' },
+ ""
+ ]
+ ]
+ }
}
],
[{ style: "title1", text: "Información del contacto".toUpperCase() }],
[[
- {
- columnGap: 10,
- columns: [
- { style: "title2", text: "Objeto:", width: "auto" },
- { alignment: "justify", text: trNecesidad.Necesidad.Objeto }
- ]
- },
- {
- columnGap: 10,
- columns: [
- { style: "title2", text: "Duración:", width: "auto" },
- { text: (trNecesidad.Necesidad.DiasDuracion == 0) ? 'PAGO ÚNICO' : 'Años: ' + dataDias.anos + ', Meses: ' + dataDias.meses + ', Días: ' + dataDias.dias }
- ]
- },
- {
- columnGap: 10,
- columns: [
- { style: "title2", text: "Valor Estimado:", width: "auto" },
- { text: $filter('currency')(trNecesidad.Necesidad.Valor, '$') }
- ]
- }
+ {
+ columnGap: 10,
+ columns: [
+ { style: "title2", text: "Objeto:", width: "auto" },
+ { alignment: "justify", text: trNecesidad.Necesidad.Objeto }
+ ]
+ },
+ {
+ columnGap: 10,
+ columns: [
+ { style: "title2", text: "Duración:", width: "auto" },
+ { text: (trNecesidad.Necesidad.DiasDuracion == 0) ? 'PAGO ÚNICO' : 'Años: ' + dataDias.anos + ', Meses: ' + dataDias.meses + ', Días: ' + dataDias.dias }
+ ]
+ },
+ {
+ columnGap: 10,
+ columns: [
+ { style: "title2", text: "Valor Estimado:", width: "auto" },
+ { text: $filter('currency')(trNecesidad.Necesidad.Valor, '$') }
+ ]
+ }
]],
[{ style: "title1", text: "Datos del supervisor/interventor".toUpperCase() }],
[[
{
- columnGap: 10,
- columns: [
- { style: "title2", text: "Nombre:", width: "12%" },
- {
- text: [
- jefeDependenciaDestino.Persona.PrimerNombre,
- jefeDependenciaDestino.Persona.SegundoNombre,
- jefeDependenciaDestino.Persona.PrimerApellido,
- jefeDependenciaDestino.Persona.SegundoApellido
- ].join(" ").toUpperCase()
- }
- ]
+ columnGap: 10,
+ columns: [
+ { style: "title2", text: "Nombre:", width: "12%" },
+ {
+ text: [
+ jefeDependenciaDestino.Persona.PrimerNombre,
+ jefeDependenciaDestino.Persona.SegundoNombre,
+ jefeDependenciaDestino.Persona.PrimerApellido,
+ jefeDependenciaDestino.Persona.SegundoApellido
+ ].join(" ").toUpperCase()
+ }
+ ]
},
{
- columnGap: 10,
- columns: [
- { style: "title2", text: "Dependencia:", width: "12%" },
- { text: dependenciaDestino.Nombre.toUpperCase() }
- ]
+ columnGap: 10,
+ columns: [
+ { style: "title2", text: "Dependencia:", width: "12%" },
+ { text: dependenciaDestino.Nombre.toUpperCase() }
+ ]
},
]],
[{ style: "title1", text: "Plan de Contratación/Rubro Presupuestal y/o centro de costos".toUpperCase() }],
// [//generar desde aqui curl http://10.20.0.254/financiera_api/v1/apropiacion/?query=Id:44529
[
- Array.prototype.concat.apply([], apropiacionesData.map(function (apg, i) {
- return [{
- margin: [0, 0, 0, 5],
- columnGap: 10,
- columns: [
- { text: apg.Apropiacion.Rubro.Codigo, width: "auto" },
- { text: apg.Apropiacion.Rubro.Nombre.toUpperCase(), width: "*" },
- { text: $filter('currency')(apg.Monto, '$'), width: "auto" }
- ]
- }].concat([
- {
- alignment: "center",
- columnGap: 10,
- columns: [
- { text: "", width: "15%" },
- { text: "Centro de Costo".toUpperCase() },
- { text: "", width: "6%" },
- { text: "Actividad".toUpperCase() },
- { text: "" },
- ]
- }
- ]).concat(
- apg.Fuentes.map(function (f, i) {
- return {
- columnGap: 10,
- columns: [
- { text: i + 1, width: "15%" },
- { text: dependenciaDestino.Nombre.toUpperCase() },
- { text: f.InfoFuente[0].Codigo, width: "6%" },
- { text: f.InfoFuente[0].Nombre },
- { text: $filter('currency')(f.MontoParcial, '$'), width: "auto" },
- ]
- }
- })
- ).concat([
- {
- margin: [0, 5, 0, 5],
- alignment: "center",
- columnGap: 10,
- columns: [
- { text: "", width: "15%" },
- { text: "Producto".toUpperCase() },
- { text: "", width: "6%" },
- { text: "Descripción".toUpperCase() },
- { text: "" },
- ]
- }
- ]).concat(
- apg.Productos != null ? apg.Productos.map(function (p) {
- return {
- columnGap: 10,
- columns: [
- { text: "", width: "15%" },
- { text: p.ProductoRubroInfo[0].Producto.Nombre.toUpperCase() },
- { text: "", width: "6%" },
- { text: p.ProductoRubroInfo[0].Producto.Descripcion },
- { text: "" },
- ]
- }
- }) : ""
- );
- }))
+ Array.prototype.concat.apply([], apropiacionesData.map(function (apg, i) {
+ return [{
+ margin: [0, 0, 0, 5],
+ columnGap: 10,
+ columns: [
+ { text: apg.InfoRubro.Codigo, width: "auto" },
+ { text: apg.InfoRubro.Nombre.toUpperCase(), width: "*" },
+ { text: $filter('currency')(apg.InfoRubro.ValorActual, '$'), width: "auto" }
+ ]
+ }].concat([
+ {
+ alignment: "center",
+ columnGap: 10,
+ columns: [
+ { text: "", width: "15%" },
+ { text: "Centro de Costo".toUpperCase() },
+ { text: "", width: "6%" },
+ { text: "Actividad".toUpperCase() },
+ { text: "" },
+ ]
+ }
+ ]).concat(
+ apg.Fuentes.map(function (f, i) {
+ return {
+ columnGap: 10,
+ columns: [
+ { text: i + 1, width: "15%" },
+ { text: dependenciaDestino.Nombre.toUpperCase() },
+ { text: f.InfoFuente.Codigo, width: "6%" },
+ { text: f.InfoFuente.Nombre },
+ { text: $filter('currency')(f.MontoParcial, '$'), width: "auto" },
+ ]
+ }
+ })
+ ).concat([
+ {
+ margin: [0, 5, 0, 5],
+ alignment: "center",
+ columnGap: 10,
+ columns: [
+ { text: "", width: "15%" },
+ { text: "Producto".toUpperCase() },
+ { text: "", width: "6%" },
+ { text: "Descripción".toUpperCase() },
+ { text: "" },
+ ]
+ }
+ ]).concat(
+ apg.Productos != null ? apg.Productos.map(function (p) {
+ return {
+ columnGap: 10,
+ columns: [
+ { text: "", width: "15%" },
+ { text: p.InfoProducto.Nombre.toUpperCase() },
+ { text: "", width: "6%" },
+ { text: p.InfoProducto.Descripcion },
+ { text: "" },
+ ]
+ }
+ }) : ""
+ );
+ }))
],
[{ style: "title1", text: "Marco Legal".toUpperCase() }],
[{
- text: (trNecesidad.MarcoLegalNecesidad && trNecesidad.MarcoLegalNecesidad.length > 0) ?
- trNecesidad.MarcoLegalNecesidad.map(function (ml, i) { return (i + 1).toString() + ". " + ml.MarcoLegal.NombreDocumento }).join("\n") : "Ninguno"
+ text: (trNecesidad.MarcoLegalNecesidad && trNecesidad.MarcoLegalNecesidad.length > 0) ?
+ trNecesidad.MarcoLegalNecesidad.map(function (ml, i) { return (i + 1).toString() + ". " + ml.MarcoLegalId.NombreDocumento }).join("\n") : "Ninguno"
}],
- //TODO: agregar los requisitos minimos a la lógica de negocios
- // [{ style: "title1", text: "Requisitos Mínimos".toUpperCase() }],
- // [[
- // {
- // table: {
- // headerRows: 1,
- // widths: ["auto", "*", "*"],
- // body: [
- // ["Secuencia", "Requisito", "Observaciones"],
- // [1, "Técnico".toUpperCase(), "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Malit profecta versatur nomine ocurreret multavit, officiis viveremus aeternum superstitio suspicor alia nostram, quando nostros congressus susceperant concederetur leguntur iam, vigiliae democritea tantopere causae, atilii plerumque ipsas potitur pertineant multis rem quaeri pro, legendum didicisse credere ex maluisset per videtis. Cur discordans praetereat aliae ruinae dirigentur orestem eodem, praetermittenda divinum. Collegisti, deteriora malint loquuntur officii cotidie finitas referri doleamus ambigua acute. Adhaesiones ratione beate arbitraretur detractis perdiscere, constituant hostis polyaeno. Diu concederetur."]
- // ]
- // }
- // }
- // ]],
- [{ style: "title1", text: "Anexos".toUpperCase() }],
+ [{ style: "title1", text: "Requisitos Mínimos".toUpperCase() }],
[[
- {
- table: {
- headerRows: 1,
- widths: ["auto", "*", "*"],
- body: [
- ["Secuencia", "Requisito", "Observaciones"],
- ]
- }
+ {
+ table: {
+ headerRows: 1,
+ widths: ["auto", "*", "*"],
+ body: [
+ ["Secuencia", "Requisito", "Observaciones"],
+ [ trNecesidad.RequisitoMinimoNecesidad ? trNecesidad.RequisitoMinimoNecesidad.map(function (rmn, i) { return (i + 1).toString()}).join('\n \n') : "",
+ {text: trNecesidad.RequisitoMinimoNecesidad ? trNecesidad.RequisitoMinimoNecesidad.map(function (rmn, i) { return perfil.ValorParametro ?
+ perfil.ValorParametro : perfil.DESCRIPCION ? perfil.DESCRIPCION:""}).join('\n \n') : "" , bold: true},
+ trNecesidad.RequisitoMinimoNecesidad ? trNecesidad.RequisitoMinimoNecesidad.map(function (rmn, i) { return rmn.Descripcion + '.'}).join('\n \n') : "" ]
+ ]
}
+ }
]],
[""],
[{
- alignment: "center",
- margin: [10, 30, 10, 20],
- stack: [
- {
- text: [
- jefeDependenciaSolicitante.Persona.PrimerNombre,
- jefeDependenciaSolicitante.Persona.SegundoNombre,
- jefeDependenciaSolicitante.Persona.PrimerApellido,
- jefeDependenciaSolicitante.Persona.SegundoApellido
- ].join(" ").toUpperCase()
- },
- { bold: true, text: "Firma del Responsable de la dependencia solicitante" }
- ]
+ alignment: "center",
+ margin: [10, 30, 10, 20],
+ stack: [
+ {
+ text: [
+ jefeDependenciaSolicitante.Persona.PrimerNombre,
+ jefeDependenciaSolicitante.Persona.SegundoNombre,
+ jefeDependenciaSolicitante.Persona.PrimerApellido,
+ jefeDependenciaSolicitante.Persona.SegundoApellido
+ ].join(" ").toUpperCase()
+ },
+ { bold: true, text: "___________________________________________________" },
+ { bold: true, text: "Firma del Responsable de la dependencia solicitante" }
+ ]
}]
]
}
}
],
-
styles: {
- header: {
- alignment: 'center',
- },
- p: {
- fontSize: 9
- },
- headerTitle: {
- fontSize: 10,
- bold: true,
- alignment: "center"
- },
- title1: {
- fontSize: 9,
- bold: true,
- alignment: "center"
- },
- title2: {
- fontSize: 9,
- bold: true,
- }
-
+ header: {
+ alignment: 'center',
+ },
+ p: {
+ fontSize: 9
+ },
+ headerTitle: {
+ fontSize: 10,
+ bold: true,
+ alignment: "center"
+ },
+ title1: {
+ fontSize: 9,
+ bold: true,
+ alignment: "center"
+ },
+ title2: {
+ fontSize: 9,
+ bold: true,
+ }
},
pageMargins: [50, 100, 60, 60],
// a string or { width: number, height: number }
@@ -323,12 +326,10 @@ angular.module('contractualClienteApp')
// by default we use portrait, you can change it to landscape if you wish
pageOrientation: 'portrait',
-
});
});
});
};
-
return self;
});
diff --git a/app/scripts/services/wso2_general_service.js b/app/scripts/services/wso2_general_service.js
deleted file mode 100644
index cfe0c88a..00000000
--- a/app/scripts/services/wso2_general_service.js
+++ /dev/null
@@ -1,38 +0,0 @@
-'use strict';
-
-/**
- * @ngdoc service
- * @name contractualClienteApp.wso2GeneralService
- * @description
- * # wso2GeneralService
- * Factory in the contractualClienteApp.
- */
-angular.module('contractualClienteApp')
- .factory('wso2GeneralService', function ($http, token_service, CONF) {
- // Service logic
- // ...
- var path = CONF.GENERAL.WSO2_SERVICE;
-
- // Public API here
- return {
- get: function(tabla, params) {
- var url = path + tabla;
- if (params !== '') {
- url = url + '/' + params;
- }
- return $http.get(url, token_service.setting_bearer.headers);
- },
- getAll: function(tabla) {
- return $http.get(path + tabla, token_service.setting_bearer.headers);
- },
- post: function(tabla, elemento) {
- return $http.post(path + tabla, elemento, token_service.setting_bearer.headers);
- },
- put: function(tabla, id, elemento) {
- return $http.put(path + tabla + "/" + id, elemento, token_service.setting_bearer.headers);
- },
- delete: function(tabla, id) {
- return $http.delete(path + tabla + "/" + id, token_service.setting_bearer.headers);
- }
- };
- });
diff --git a/app/views/directives/apropiaciones/fuentes_apropiacion.html b/app/views/directives/apropiaciones/fuentes_apropiacion.html
index 7ab7c6d7..fc49c2af 100755
--- a/app/views/directives/apropiaciones/fuentes_apropiacion.html
+++ b/app/views/directives/apropiaciones/fuentes_apropiacion.html
@@ -8,4 +8,4 @@
{{"FUENTES_FINANCIAMIENTO_APROPIACION" | translate}}
-
\ No newline at end of file
+
diff --git a/app/views/directives/metas/metas-actividades.html b/app/views/directives/metas/metas-actividades.html
index 34ccf2fd..aa4ee778 100644
--- a/app/views/directives/metas/metas-actividades.html
+++ b/app/views/directives/metas/metas-actividades.html
@@ -10,9 +10,9 @@
@@ -31,20 +31,18 @@
-
{{actividad.actividad_id}}
- {{ actividad.actividad}}
+
{{actividad.actividad_id}} - {{ actividad.actividad}}
@@ -64,4 +62,4 @@
Act local : {{d_metasActividades.actividades | json}}
Vigencia: {{vigencia}}
- -->
\ No newline at end of file
+ -->
diff --git a/app/views/directives/necesidad/visualizar_necesidad.html b/app/views/directives/necesidad/visualizar_necesidad.html
index faec6ab4..e8da74aa 100755
--- a/app/views/directives/necesidad/visualizar_necesidad.html
+++ b/app/views/directives/necesidad/visualizar_necesidad.html
@@ -1,39 +1,41 @@
-
-
+
+
+
-
+
- {{'NECESIDAD' | translate}} {{d_visualizarNecesidad.v_necesidad.ConsecutivoNecesidad}}
-
-
- Solicitud {{d_visualizarNecesidad.v_necesidad.ConsecutivoSolicitud}}
+ {{'NECESIDAD' | translate}} {{d_visualizarNecesidad.v_necesidad.Consecutivo}}
-
- Borrador {{d_visualizarNecesidad.v_necesidad.ConsecutivoSolicitud}}
+
+ Solicitud {{d_visualizarNecesidad.v_necesidad.Id}}
{{"DE" | translate}} {{d_visualizarNecesidad.v_necesidad.Vigencia}}
Estado: {{d_visualizarNecesidad.v_necesidad.EstadoNecesidadId.Nombre}}
-
-
{{"MODALIDAD_SELECCION" | translate}}:
- {{d_visualizarNecesidad.v_necesidad.ModalidadSeleccion.Nombre}}
+
+
+
+ {{"MODALIDAD_SELECCION" | translate}}:{{d_visualizarNecesidad.v_necesidad.ModalidadSeleccion.Nombre}}
+
+
-
+
+
- {{vigencia|| '-'}}
+ {{vigencia|| d_visualizarNecesidad.v_necesidad.Vigencia}}
{{d_visualizarNecesidad.v_necesidad.FechaSolicitud | date:'dd-MMM-yyyy'}}
{{d_visualizarNecesidad.v_necesidad.ConsecutivoNecesidad}}
+ class=""> {{d_visualizarNecesidad.v_necesidad.Consecutivo}}
- {{d_visualizarNecesidad.v_necesidad.ConsecutivoSolicitud}}
+ {{d_visualizarNecesidad.v_necesidad.Consecutivo}}
-
{{"VIGENCIA" | translate}}:
{{"FECHA_SOLICITUD" | translate}}:
@@ -43,7 +45,8 @@
{{"NUMERO_SOLICITUD_NECESIDAD" | translate}}:
-
+
+
{{"RESPONSABLES" | translate}}
@@ -78,77 +81,101 @@ {{"RESPONSABLES" | translate}}
-
+
+
+
-
-
{{"OBJETO_CONTRACTUAL" | translate}}
+
+
{{"INFORMACION" | translate}}
+
{{"OBJETO_CONTRACTUAL" | translate}}
{{d_visualizarNecesidad.v_necesidad.Objeto}}
-
{{"FINANCIACION" | translate}}
+
+
{{"DURACION" | translate}}
+
+ Años: {{d_visualizarNecesidad.dataDias.anos}} Meses: {{d_visualizarNecesidad.dataDias.meses}} Dias: {{d_visualizarNecesidad.dataDias.dias}}
+
+
+ Tipo: {{necesidad.Necesidad.TipoDuracionNecesidadId.Descripcion}}
+
+
+
{{"FINANCIACION" | translate}}
- Por {{d_visualizarNecesidad.v_necesidad.TipoFinanciacionNecesidadId.Nombre}} de {{d_visualizarNecesidad.v_necesidad.Valor
- | currency}}
+ Por {{d_visualizarNecesidad.v_necesidad.TipoFinanciacionNecesidadId.Nombre}} de
+ {{d_visualizarNecesidad.v_necesidad.Valor | currency}}
-
-
-
Rubro / Proyecto
+
{{"CODIGO_RUBRO" | translate}} / {{"NOMBRE_RUBRO" | translate}}
-
+
-
Rubros / Proyecto
+
{{"CODIGO_RUBRO" | translate}} / {{"NOMBRE_RUBRO" | translate}}
-
-
-
-
-
-
-
+
{{"JUSTIFICACION_CONTRATO" | translate}}
@@ -229,9 +250,15 @@
Detalle servicio
- Tipo servicio Valor IVA Valor total servicio
+
+ Tipo servicio
+ Valor Unitario
+ Valor IVA
+ Valor total servicio
+
{{necesidad.DetalleServicioNecesidad.TipoServicioNombre}}
+ {{necesidad.DetalleServicioNecesidad.Valor | currency}}
{{necesidad.DetalleServicioNecesidad.valorIvaUnd | currency}}
{{necesidad.DetalleServicioNecesidad.ValorTotal | currency}}
@@ -259,7 +286,7 @@
{{"MODALIDAD_SELECCION" | translate}}
-
+
{{ d_visualizarNecesidad.v_necesidad.ModalidadSeleccionId.Id }} -
{{ d_visualizarNecesidad.v_necesidad.ModalidadSeleccionId.Nombre }}
@@ -304,4 +331,4 @@
{{"NECESIDAD_JUSTIFICACION_RECHAZO" | translate}}
-
\ No newline at end of file
+
diff --git a/app/views/menu.html b/app/views/menu.html
index 2cc3bd3b..a23fa3a3 100755
--- a/app/views/menu.html
+++ b/app/views/menu.html
@@ -66,7 +66,7 @@
-
+
@@ -136,7 +136,6 @@
-
-
\ No newline at end of file
+
diff --git a/app/views/necesidad/necesidades.html b/app/views/necesidad/necesidades.html
index 22bfe4b1..cc2ffb41 100755
--- a/app/views/necesidad/necesidades.html
+++ b/app/views/necesidad/necesidades.html
@@ -1,17 +1,23 @@
+
-
+
{{ 'LISTA_NECESIDADES' | translate }}
+
+
-
@@ -20,7 +26,12 @@ {{ 'LISTA_NECESIDADES' | translate }}
-
+
@@ -33,41 +44,48 @@
{{"MODALIDAD_SELECCION" | translate}}
{{"SELECCIONAR" | translate}} {{"MODALIDAD_SELECCION" | translate}}
-
-
+
+
{{"CLASE_CONTRATACION" | translate}}
-
{{"SELECCIONAR" | translate}} {{"TIPO_CONTRATO_NECESIDAD" | translate}}
-
+
-
+
-
diff --git a/app/views/necesidad/pdfnecesidad.html b/app/views/necesidad/pdfnecesidad.html
index 1773c28f..cf46c979 100644
--- a/app/views/necesidad/pdfnecesidad.html
+++ b/app/views/necesidad/pdfnecesidad.html
@@ -1,9 +1,16 @@
+
\ No newline at end of file
+
diff --git a/app/views/necesidad/solicitud_necesidad.html b/app/views/necesidad/solicitud_necesidad.html
index 49f51cec..cb3174a0 100755
--- a/app/views/necesidad/solicitud_necesidad.html
+++ b/app/views/necesidad/solicitud_necesidad.html
@@ -1,22 +1,20 @@
@@ -52,31 +49,25 @@