From 7baa01a7d98333b6b26f6b255e51837f249a4709 Mon Sep 17 00:00:00 2001 From: Jose Pinto Date: Tue, 8 Jan 2019 14:26:42 -0300 Subject: [PATCH] Primera version --- .gitignore | 5 + .jshintrc | 64 ++++++ README.md | 3 +- gulpfile.js | 89 ++++++++ index.html | 31 +++ package.json | 60 ++++++ src/etc/develop.js.ejemplo | 4 + src/js/app.js | 6 + src/js/controller.js | 234 ++++++++++++++++++++++ src/js/route.js | 19 ++ src/js/service.js | 15 ++ src/views/foca-abm-vendedor-cobrador-item.html | 208 +++++++++++++++++++ src/views/foca-abm-vendedor-cobrador-listado.html | 101 ++++++++++ 13 files changed, 838 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 .jshintrc create mode 100644 gulpfile.js create mode 100644 index.html create mode 100644 package.json create mode 100644 src/etc/develop.js.ejemplo create mode 100644 src/js/app.js create mode 100644 src/js/controller.js create mode 100644 src/js/route.js create mode 100644 src/js/service.js create mode 100644 src/views/foca-abm-vendedor-cobrador-item.html create mode 100644 src/views/foca-abm-vendedor-cobrador-listado.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e9fd069 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +/node_modules +/dist +/tmp +package-lock\.json +src/etc/develop.js diff --git a/.jshintrc b/.jshintrc new file mode 100644 index 0000000..d8cbb07 --- /dev/null +++ b/.jshintrc @@ -0,0 +1,64 @@ +{ + /* + * ENVIRONMENTS + * ================= + */ + + // Define globals exposed by modern browsers. + "browser": true, + + // Define globals exposed by jQuery. + "jquery": true, + + // Define globals exposed by Node.js. + "node": true, + + // Allow ES6. + "esversion": 6, + + /* + * ENFORCING OPTIONS + * ================= + */ + + // Force all variable names to use either camelCase style or UPPER_CASE + // with underscores. + "camelcase": true, + + // Prohibit use of == and != in favor of === and !==. + "eqeqeq": true, + + // Enforce tab width of 2 spaces. + "indent": 4, + + // Prohibit use of a variable before it is defined. + "latedef": false, + + // Enforce line length to 100 characters + "maxlen": 100, + + // Require capitalized names for constructor functions. + "newcap": true, + + // Enforce use of single quotation marks for strings. + "quotmark": "single", + + // Enforce placing 'use strict' at the top function scope + "strict": false, + + // Prohibit use of explicitly undeclared variables. + "undef": true, + + // Warn when variables are defined but never used. + "unused": true, + + // Para que funcione en angular + "predef": ["angular", "alert", "spyOn", "expect", "it", "inject", "beforeEach", "describe"], + /* + * RELAXING OPTIONS + * ================= + */ + + // Suppress warnings about == null comparisons. + "eqnull": true +} diff --git a/README.md b/README.md index b9c09d4..91d3fda 100644 --- a/README.md +++ b/README.md @@ -1 +1,2 @@ -foca-abm-vendedor-cobrador +ABM Vendedores-Cobradores +============ diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..863e222 --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,89 @@ +const templateCache = require('gulp-angular-templatecache'); +const concat = require('gulp-concat'); +const htmlmin = require('gulp-htmlmin'); +const rename = require('gulp-rename'); +const uglify = require('gulp-uglify-es').default; +const gulp = require('gulp'); +const pump = require('pump'); +const jshint = require('gulp-jshint'); +const replace = require('gulp-replace'); +const connect = require('gulp-connect'); +const clean = require('gulp-clean'); + +var paths = { + srcJS: 'src/js/*.js', + srcViews: 'src/views/*.html', + tmp: 'tmp', + dist: 'dist/' +}; + +gulp.task('templates', function() { + return pump( + [ + gulp.src(paths.srcViews), + replace('views/', ''), + htmlmin(), + templateCache('views.js', { + module: 'focaAbmVendedorCobrador', + root: '' + }), + gulp.dest(paths.tmp) + ] + ); +}); + +gulp.task('uglify', ['templates'], function() { + return pump( + [ + gulp.src([ + paths.srcJS, + 'tmp/views.js' + ]), + concat('foca-abm-vendedor-cobrador.js'), + replace("['ngRoute', 'focaModal', 'ui.bootstrap']", '[]'), + replace("src/views/", ''), + gulp.dest(paths.tmp), + rename('foca-abm-vendedor-cobrador.min.js'), + uglify(), + gulp.dest(paths.dist) + ] + ); +}); + +gulp.task('clean', function() { + return gulp.src(['tmp', 'dist'], {read: false}) + .pipe(clean()); +}); + +gulp.task('pre-commit', function() { + pump( + [ + gulp.src(paths.srcJS), + jshint('.jshintrc'), + jshint.reporter('default'), + jshint.reporter('fail') + ] + ); + + gulp.start('uglify'); +}); + +gulp.task('clean-post-install', function() { + return gulp.src(['src', 'tmp', '.jshintrc','readme.md', '.gitignore', 'gulpfile.js', + 'index.html'], {read: false}) + .pipe(clean()); +}); + +gulp.task('compile', ['templates', 'uglify']); + +gulp.task('watch', function() { + gulp.watch([paths.srcJS, paths.srcViews], ['uglify']); +}); + +gulp.task('webserver', function() { + pump [ + connect.server({port: 3000}) + ] +}); + +gulp.task('default', ['webserver']); diff --git a/index.html b/index.html new file mode 100644 index 0000000..b5e6e8e --- /dev/null +++ b/index.html @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + diff --git a/package.json b/package.json new file mode 100644 index 0000000..0789d46 --- /dev/null +++ b/package.json @@ -0,0 +1,60 @@ +{ + "name": "foca-abm-vendedor-cobrador", + "version": "0.0.1", + "description": "Abm de Vendedores/Compradores", + "main": "index.html", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "compile": "gulp uglify", + "gulp-pre-commit": "gulp pre-commit", + "postinstall": "npm run compile && gulp clean-post-install", + "install-dev": "npm i --ignore-scripts" + }, + "pre-commit": [ + "gulp-pre-commit" + ], + "repository": { + "type": "git", + "url": "http://git.focasoftware.com/npm/foca-abm-vendedor-cobrador.git" + }, + "author": "Foca Software", + "license": "ISC", + "peerDependencies": { + "angular": "^1.7.x", + "angular-route": "^1.7.x", + "bootstrap": "^4.1.x", + "jquery": "^3.3.x", + "font-awesome": "^4.7.x", + "gulp": "^3.9.x", + "gulp-concat": "2.6.x", + "gulp-jshint": "^2.1.x", + "gulp-rename": "^1.4.x", + "gulp-replace": "^1.0.x", + "gulp-uglify-es": "^1.0.x", + "jshint": "^2.9.x", + "pump": "^3.0.x" + }, + "devDependencies": { + "angular": "^1.7.5", + "angular-route": "^1.7.5", + "bootstrap": "^4.1.3", + "foca-modal": "git+http://git.focasoftware.com/npm/foca-modal.git", + "font-awesome": "^4.7.0", + "gulp": "^3.9.1", + "gulp-angular-templatecache": "^2.2.5", + "gulp-clean": "^0.4.0", + "gulp-connect": "^5.6.1", + "gulp-htmlmin": "^5.0.1", + "gulp-jshint": "^2.1.0", + "gulp-rename": "^1.4.0", + "gulp-replace": "^1.0.0", + "gulp-uglify": "^3.0.1", + "gulp-uglify-es": "^1.0.4", + "jasmine-core": "^3.3.0", + "jquery": "^3.3.1", + "jshint": "^2.9.6", + "pre-commit": "^1.2.2", + "pump": "^3.0.0", + "ui-bootstrap4": "^3.0.5" + } +} diff --git a/src/etc/develop.js.ejemplo b/src/etc/develop.js.ejemplo new file mode 100644 index 0000000..252c6eb --- /dev/null +++ b/src/etc/develop.js.ejemplo @@ -0,0 +1,4 @@ +angular.module('focaAbmVehiculo') + .constant("API_ENDPOINT", { + 'URL': '//127.0.0.1:9000' + }); diff --git a/src/js/app.js b/src/js/app.js new file mode 100644 index 0000000..bc56e4a --- /dev/null +++ b/src/js/app.js @@ -0,0 +1,6 @@ +angular.module('focaAbmVendedorCobrador', [ + 'ngRoute', + 'focaModal', + 'ui.bootstrap', + 'focaBotoneraLateral' +]); diff --git a/src/js/controller.js b/src/js/controller.js new file mode 100644 index 0000000..d7bc8ef --- /dev/null +++ b/src/js/controller.js @@ -0,0 +1,234 @@ +angular.module('focaAbmVendedorCobrador') + .controller('focaAbmVendedoresCobradoresController', [ + '$scope', 'focaAbmVendedorCobradorService', '$location', '$filter', + '$uibModal', 'focaBotoneraLateralService', + function($scope, focaAbmVendedorCobradorService, $location, $filter, + $uibModal, focaBotoneraLateralService) { + + $scope.now = new Date(); + $scope.vendedoresCobradores = []; + $scope.filters = ''; + $scope.numPerPage = 10; + $scope.currentPageVendedoresCobradores = []; + $scope.filteredVendedoresCobradores = []; + + //SETEO BOTONERA LATERAL + focaBotoneraLateralService.showSalir(true); + focaBotoneraLateralService.showPausar(false); + focaBotoneraLateralService.showCancelar(false); + focaBotoneraLateralService.showGuardar(false); + + focaAbmVendedorCobradorService.getVendedoresCobradores().then(function(res) { + $scope.vendedoresCobradores = res.data; + + $scope.search(); + }); + + $scope.editar = function(id) { + $location.path('/vendedor-cobrador/' + id); + }; + + $scope.selectPage = function(page) { + var start = (page - 1) * $scope.numPerPage; + var end = start + $scope.numPerPage; + $scope.paginas = []; + $scope.paginas = calcularPages(page); + $scope.currentPageVendedoresCobradores = + $scope.filteredVendedoresCobradores.slice(start, end); + $scope.currentPage = page; + }; + + $scope.resetPage = function() { + $scope.currentPage = 1; + $scope.selectPage(1); + }; + + $scope.search = function() { + $scope.filteredVendedoresCobradores = $filter('filter')( + $scope.vendedoresCobradores, {$: $scope.filters} + ); + + $scope.lastPage = Math.ceil( + $scope.filteredVendedoresCobradores.length / $scope.numPerPage + ); + + $scope.resetPage(); + }; + + function calcularPages(paginaActual) { + var paginas = []; + paginas.push(paginaActual); + + if(paginaActual - 1 > 1) { + + paginas.unshift(paginaActual - 1); + if(paginaActual - 2 > 1) { + paginas.unshift(paginaActual - 2); + } + } + + if(paginaActual + 1 < $scope.lastPage) { + paginas.push(paginaActual + 1); + if(paginaActual + 2 < $scope.lastPage) { + paginas.push(paginaActual + 2); + } + } + + if(paginaActual !== 1) { + paginas.unshift(1); + } + + if(paginaActual !== $scope.lastPage) { + paginas.push($scope.lastPage); + } + + return paginas; + } + + function primera() { + $scope.selectedClientes = 0; + } + + function anterior() { + if ($scope.selectedClientes === 0 && $scope.currentPage > 1) { + retrocederPagina(); + } else { + $scope.selectedClientes--; + } + } + + function siguiente() { + if ($scope.selectedClientes < $scope.currentPageVendedoresCobradores.length - 1 ) { + $scope.selectedClientes++; + } else { + avanzarPagina(); + } + } + + function retrocederPagina() { + if ($scope.currentPage > 1) { + $scope.selectPage($scope.currentPage - 1); + $scope.selectedClientes = $scope.numPerPage - 1; + } + } + + function avanzarPagina() { + if ($scope.currentPage < $scope.lastPage) { + $scope.selectPage($scope.currentPage + 1); + $scope.selectedClientes = 0; + } + } + } + ]) + .controller('focaAbmVendedorCobradorController', [ + '$scope', 'focaAbmVendedorCobradorService', '$routeParams', 'focaBotoneraLateralService', + '$timeout', '$uibModal', '$location', 'focaModalService', + function($scope, focaAbmVendedorCobradorService, $routeParams, focaBotoneraLateralService, + $timeout, $uibModal, $location, focaModalService) { + + $scope.now = new Date(); + $scope.vendedorCobrador = { + CodVen: 0, + ES_COBRADOR: false, + DNI: ' ', + ClaVen: '', + ComVen: '0.00', + provincia: { + NOMBRE: '' + }, + localidad: { + NOMBRE: '' + } + }; + //SETEO BOTONERA LATERAL + $timeout(function() { + focaBotoneraLateralService.showSalir(false); + focaBotoneraLateralService.showPausar(true); + focaBotoneraLateralService.showCancelar(true); + focaBotoneraLateralService.showGuardar(true, $scope.guardar); + }); + + focaAbmVendedorCobradorService + .getVendedorCobradorById($routeParams.id) + .then(function(res) { + if(res.data){ + $scope.vendedorCobrador = res.data; + delete $scope.vendedorCobrador.FCVEN; + delete $scope.vendedorCobrador.FEC; + } + }); + + $scope.guardar = function() { + if($scope.vendedorCobrador.ClaVen !== $scope.vendedorCobrador.ClaVen2) { + focaModalService.alert('Las contraseñas deben coincidir'); + return; + } + $scope.vendedorCobrador.PciVen = $scope.vendedorCobrador.provincia.ID; + $scope.vendedorCobrador.LocVen = $scope.vendedorCobrador.localidad.ID; + + delete $scope.vendedorCobrador.provincia; + delete $scope.vendedorCobrador.localidad; + delete $scope.vendedorCobrador.ClaVen2; + + focaAbmVendedorCobradorService + .guardarVendedorCobrador($scope.vendedorCobrador) + .then(function() { + $location.path('/vendedor-cobrador'); + }); + }; + + $scope.seleccionarProvincia = function(key) { + if(key === 13) { + var modalInstance = $uibModal.open( + { + ariaLabelledBy: 'Búsqueda de provincias', + templateUrl: 'modal-provincias.html', + controller: 'focaModalProvinciaController', + size: 'md', + resolve: { + filters: function() { + return $scope.vendedorCobrador.provincia.NOMBRE; + } + } + } + ); + modalInstance.result.then(function(provincia) { + $scope.vendedorCobrador.provincia = provincia; + $timeout(function() { + $scope.focused = 5; + }); + }, function() { + //TODO: función llamada cuando cancela el modal + }); + } + }; + $scope.seleccionarLocalidad = function(key) { + if(!$scope.vendedorCobrador.provincia.ID) { + //TODO: Poner modal alert de foca + alert('Seleccione una provincia'); + return; + } + if(key === 13) { + var modalInstance = $uibModal.open( + { + ariaLabelledBy: 'Búsqueda de localidades', + templateUrl: 'modal-localidades.html', + controller: 'focaModalLocalidadController', + size: 'md', + resolve: { + filters: { + idProvincia: $scope.vendedorCobrador.provincia.ID, + busqueda: $scope.vendedorCobrador.localidad.NOMBRE + } + } + } + ); + modalInstance.result.then(function(localidad) { + $scope.vendedorCobrador.localidad = localidad; + }, function() { + //TODO: función llamada cuando cancela el modal + }); + } + }; + } + ]); diff --git a/src/js/route.js b/src/js/route.js new file mode 100644 index 0000000..78b76b3 --- /dev/null +++ b/src/js/route.js @@ -0,0 +1,19 @@ +angular.module('focaAbmVendedorCobrador') + .config([ + '$routeProvider', + function($routeProvider) { + $routeProvider.when('/vendedor-cobrador', { + controller: 'focaAbmVendedoresCobradoresController', + templateUrl: 'src/views/foca-abm-vendedor-cobrador-listado.html' + }); + } + ]) + .config([ + '$routeProvider', + function($routeProvider) { + $routeProvider.when('/vendedor-cobrador/:id', { + controller: 'focaAbmVendedorCobradorController', + templateUrl: 'src/views/foca-abm-vendedor-cobrador-item.html' + }); + } + ]); diff --git a/src/js/service.js b/src/js/service.js new file mode 100644 index 0000000..c813905 --- /dev/null +++ b/src/js/service.js @@ -0,0 +1,15 @@ +angular.module('focaAbmVendedorCobrador') + .factory('focaAbmVendedorCobradorService', ['$http', 'API_ENDPOINT', function($http, API_ENDPOINT) { + return { + getVendedoresCobradores: function() { + return $http.get(API_ENDPOINT.URL + '/vendedor-cobrador'); + }, + getVendedorCobradorById: function(id) { + return $http.get(API_ENDPOINT.URL + '/vendedor-cobrador/' + id); + }, + guardarVendedorCobrador: function(vendedorCobrador) { + return $http.post(API_ENDPOINT.URL + '/vendedor-cobrador', + {vendedorCobrador: vendedorCobrador}); + } + }; + }]); diff --git a/src/views/foca-abm-vendedor-cobrador-item.html b/src/views/foca-abm-vendedor-cobrador-item.html new file mode 100644 index 0000000..a31fb5c --- /dev/null +++ b/src/views/foca-abm-vendedor-cobrador-item.html @@ -0,0 +1,208 @@ +
+ +
+
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+ +
+
+
+
+ +
+ +
+ +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + +
+
+
+
+
+
diff --git a/src/views/foca-abm-vendedor-cobrador-listado.html b/src/views/foca-abm-vendedor-cobrador-listado.html new file mode 100644 index 0000000..996481f --- /dev/null +++ b/src/views/foca-abm-vendedor-cobrador-listado.html @@ -0,0 +1,101 @@ +
+ +
+
+
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + +
CódigoNombreTipo + +
+ + +
+
+
+
+ +
-- 1.9.1