Commit 330ea2290542954ba149a9ebe7c8447edefec876

Authored by Eric Fernandez
Exists in master and in 1 other branch develop

Merge branch 'develop' into 'master'

Develop

See merge request !53
... ... @@ -9,14 +9,20 @@ const pump = require('pump');
9 9 const jshint = require('gulp-jshint');
10 10 const replace = require('gulp-replace');
11 11 const connect = require('gulp-connect');
  12 +const header = require('gulp-header');
  13 +const footer = require('gulp-footer');
  14 +const gulpSequence = require('gulp-sequence');
12 15  
13 16 var paths = {
14 17 srcJS: 'src/js/*.js',
15 18 srcViews: 'src/views/*.html',
  19 + specs: 'spec/*.js',
16 20 tmp: 'tmp',
17 21 dist: 'dist/'
18 22 };
19 23  
  24 +gulp.task('uglify', gulpSequence('clean', ['templates', 'uglify-spec'], 'uglify-app'));
  25 +
20 26 gulp.task('templates', ['clean'], function() {
21 27 return pump(
22 28 [
... ... @@ -31,7 +37,7 @@ gulp.task('templates', ['clean'], function() {
31 37 );
32 38 });
33 39  
34   -gulp.task('uglify', ['templates'], function() {
  40 +gulp.task('uglify-app', function() {
35 41 return pump(
36 42 [
37 43 gulp.src([
... ... @@ -48,6 +54,19 @@ gulp.task('uglify', ['templates'], function() {
48 54 );
49 55 });
50 56  
  57 +gulp.task('uglify-spec', function() {
  58 + return pump(
  59 + [
  60 + gulp.src(paths.specs),
  61 + concat('foca-crear-remito.spec.js'),
  62 + replace('src/views/', ''),
  63 + header("describe('Módulo foca-crear-remito', function() { \n"),
  64 + footer("});"),
  65 + gulp.dest(paths.dist)
  66 + ]
  67 + );
  68 +});
  69 +
51 70 gulp.task('clean', function() {
52 71 return gulp.src(['tmp', 'dist'], {read: false})
53 72 .pipe(clean());
... ... @@ -56,7 +75,7 @@ gulp.task('clean', function() {
56 75 gulp.task('pre-commit', function() {
57 76 return pump(
58 77 [
59   - gulp.src(paths.srcJS),
  78 + gulp.src([paths.srcJS, paths.specs]),
60 79 jshint('.jshintrc'),
61 80 jshint.reporter('default'),
62 81 jshint.reporter('fail')
... ... @@ -4,7 +4,7 @@
4 4 "description": "Listado y ABM nota de remitos",
5 5 "main": "index.js",
6 6 "scripts": {
7   - "test": "echo \"Error: no test specified\" && exit 1",
  7 + "test": "test.html",
8 8 "compile": "gulp uglify",
9 9 "gulp-pre-commit": "gulp pre-commit",
10 10 "postinstall": "npm run compile && gulp clean-post-install",
... ... @@ -31,6 +31,7 @@
31 31 "angular": "^1.7.5",
32 32 "angular-cookies": "^1.7.5",
33 33 "angular-ladda": "^0.4.3",
  34 + "angular-mocks": "^1.7.7",
34 35 "angular-route": "^1.7.5",
35 36 "bootstrap": "^4.1.3",
36 37 "foca-botonera-facturador": "git+http://git.focasoftware.com/npm/foca-botonera-facturador.git",
... ... @@ -42,10 +43,7 @@
42 43 "foca-modal-cotizacion": "git+http://git.focasoftware.com/npm/foca-modal-cotizacion.git",
43 44 "foca-modal-domicilio": "git+http://git.focasoftware.com/npm/foca-modal-domicilio.git",
44 45 "foca-modal-flete": "git+http://git.focasoftware.com/npm/foca-modal-flete.git",
45   - "foca-modal-moneda": "git+http://git.focasoftware.com/npm/foca-modal-moneda.git",
46 46 "foca-modal-precio-condiciones": "git+http://git.focasoftware.com/npm/foca-modal-precio-condiciones.git",
47   - "foca-modal-proveedor": "git+http://git.focasoftware.com/npm/foca-modal-proveedor.git",
48   - "foca-modal-vendedores": "git+http://git.focasoftware.com/npm/foca-modal-vendedores.git",
49 47 "foca-seguimiento": "git+http://git.focasoftware.com/npm/foca-seguimiento.git",
50 48 "font-awesome": "^4.7.0",
51 49 "gulp": "^3.9.1",
spec/controllerSpec.js
... ... @@ -0,0 +1,1522 @@
  1 +describe('Controlador modulo crear remito', function() {
  2 +
  3 + var $controller;
  4 +
  5 + beforeEach(function() {
  6 +
  7 + module('focaCrearRemito');
  8 +
  9 + inject(function(_$controller_) {
  10 + $controller = _$controller_;
  11 + });
  12 + });
  13 +
  14 + describe('Controlador remitoController', function() {
  15 +
  16 + var timeout;
  17 +
  18 + beforeEach(function() {
  19 +
  20 + inject(function($timeout) {
  21 + timeout = $timeout;
  22 + });
  23 + });
  24 +
  25 + it('Existe el controlador remitoController', function() {
  26 +
  27 + //act
  28 + var controlador = $controller('remitoController', {
  29 + $scope: {
  30 + $broadcast: function() { },
  31 + $watch: function() { }
  32 + },
  33 + $uibModal: {},
  34 + $location: {},
  35 + $filter: {},
  36 + crearRemitoService: {
  37 + getBotonera: function() { },
  38 + getCotizacionByIdMoneda: function() {
  39 + return {
  40 + then: function() { }
  41 + };
  42 + },
  43 + getNumeroRemito: function() {
  44 + return {
  45 + then: function() { }
  46 + };
  47 + }
  48 + },
  49 + $timeout: timeout,
  50 + focaModalService: {},
  51 + remitoBusinessService: {},
  52 + $rootScope: {
  53 + $on: function() { }
  54 + },
  55 + focaBotoneraLateralService: {},
  56 + $localStorage: {}
  57 + });
  58 +
  59 + //assert
  60 + expect(typeof controlador).toEqual('object');
  61 +
  62 + });
  63 +
  64 + it('seleccionarNotaPedido levanta modal', function() {
  65 +
  66 + //arrange
  67 + var scope = {
  68 + $broadcast: function() { },
  69 + $watch: function() { }
  70 + };
  71 + var uibModal = {
  72 + open: function() { }
  73 + };
  74 +
  75 + $controller('remitoController', {
  76 + $scope: scope,
  77 + $uibModal: uibModal,
  78 + $location: {},
  79 + $filter: {},
  80 + crearRemitoService: {
  81 + getBotonera: function() { },
  82 + getCotizacionByIdMoneda: function() {
  83 + return {
  84 + then: function() { }
  85 + };
  86 + },
  87 + getNumeroRemito: function() {
  88 + return {
  89 + then: function() { }
  90 + };
  91 + }
  92 + },
  93 + $timeout: timeout,
  94 + focaModalService: {},
  95 + remitoBusinessService: {},
  96 + $rootScope: {
  97 + $on: function() { }
  98 + },
  99 + focaBotoneraLateralService: {},
  100 + $localStorage: {}
  101 + });
  102 +
  103 + //act
  104 + spyOn(uibModal, 'open').and.returnValue({ result: { then: function() { } } });
  105 + spyOn(scope, 'seleccionarNotaPedido');
  106 + scope.seleccionarNotaPedido();
  107 +
  108 + //assert
  109 + expect(scope.seleccionarNotaPedido).toHaveBeenCalled();
  110 +
  111 + });
  112 +
  113 + it('seleccionarRemito levanta modal', function() {
  114 +
  115 + //arrange
  116 + var scope = {
  117 + $broadcast: function() { },
  118 + $watch: function() { }
  119 + };
  120 + var uibModal = {
  121 + open: function() { }
  122 + };
  123 +
  124 + $controller('remitoController', {
  125 + $scope: scope,
  126 + $uibModal: uibModal,
  127 + $location: {},
  128 + $filter: {},
  129 + crearRemitoService: {
  130 + getBotonera: function() { },
  131 + getCotizacionByIdMoneda: function() {
  132 + return {
  133 + then: function() { }
  134 + };
  135 + },
  136 + getNumeroRemito: function() {
  137 + return {
  138 + then: function() { }
  139 + };
  140 + }
  141 + },
  142 + $timeout: timeout,
  143 + focaModalService: {},
  144 + remitoBusinessService: {},
  145 + $rootScope: {
  146 + $on: function() { }
  147 + },
  148 + focaBotoneraLateralService: {},
  149 + $localStorage: {}
  150 + });
  151 +
  152 + //act
  153 + spyOn(uibModal, 'open').and.returnValue({ result: { then: function() { } } });
  154 + spyOn(scope, 'seleccionarRemito');
  155 + scope.seleccionarRemito();
  156 +
  157 + //assert
  158 + expect(scope.seleccionarRemito).toHaveBeenCalled();
  159 +
  160 + });
  161 +
  162 + it('crearRemito muestra alerta cuando no se eligió vendedor', function() {
  163 +
  164 + //arrange
  165 + var scope = {
  166 + $broadcast: function() { },
  167 + $watch: function() { }
  168 + };
  169 + var focaModalService = {
  170 + alert: function() { }
  171 + };
  172 +
  173 + $controller('remitoController', {
  174 + $scope: scope,
  175 + $uibModal: {},
  176 + $location: {},
  177 + $filter: {},
  178 + crearRemitoService: {
  179 + getBotonera: function() { },
  180 + getCotizacionByIdMoneda: function() {
  181 + return {
  182 + then: function() { }
  183 + };
  184 + },
  185 + getNumeroRemito: function() {
  186 + return {
  187 + then: function() { }
  188 + };
  189 + }
  190 + },
  191 + $timeout: timeout,
  192 + focaModalService: focaModalService,
  193 + remitoBusinessService: {},
  194 + $rootScope: {
  195 + $on: function() { }
  196 + },
  197 + focaBotoneraLateralService: {},
  198 + $localStorage: {}
  199 + });
  200 +
  201 + //act
  202 + spyOn(focaModalService, 'alert');
  203 + scope.crearRemito();
  204 +
  205 + //assert
  206 + expect(focaModalService.alert).toHaveBeenCalledWith('Ingrese Vendedor');
  207 +
  208 + });
  209 +
  210 + it('crearRemito muestra alerta cuando no se eligió cliente', function() {
  211 +
  212 + //arrange
  213 + var scope = {
  214 + $broadcast: function() { },
  215 + $watch: function() { }
  216 + };
  217 + var focaModalService = {
  218 + alert: function() { }
  219 + };
  220 +
  221 + $controller('remitoController', {
  222 + $scope: scope,
  223 + $uibModal: {},
  224 + $location: {},
  225 + $filter: {},
  226 + crearRemitoService: {
  227 + getBotonera: function() { },
  228 + getCotizacionByIdMoneda: function() {
  229 + return {
  230 + then: function() { }
  231 + };
  232 + },
  233 + getNumeroRemito: function() {
  234 + return {
  235 + then: function() { }
  236 + };
  237 + }
  238 + },
  239 + $timeout: timeout,
  240 + focaModalService: focaModalService,
  241 + remitoBusinessService: {},
  242 + $rootScope: {
  243 + $on: function() { }
  244 + },
  245 + focaBotoneraLateralService: {},
  246 + $localStorage: {}
  247 + });
  248 +
  249 + scope.remito = {
  250 + vendedor: { NUM: true },
  251 + cliente: {}
  252 + };
  253 +
  254 + //act
  255 + spyOn(focaModalService, 'alert');
  256 + scope.crearRemito();
  257 +
  258 + //assert
  259 + expect(focaModalService.alert).toHaveBeenCalledWith('Ingrese Cliente');
  260 +
  261 + });
  262 +
  263 + it('crearRemito muestra alerta cuando no se eligió Proveedor', function() {
  264 +
  265 + //arrange
  266 + var scope = {
  267 + $broadcast: function() { },
  268 + $watch: function() { }
  269 + };
  270 + var focaModalService = {
  271 + alert: function() { }
  272 + };
  273 +
  274 + $controller('remitoController', {
  275 + $scope: scope,
  276 + $uibModal: {},
  277 + $location: {},
  278 + $filter: {},
  279 + crearRemitoService: {
  280 + getBotonera: function() { },
  281 + getCotizacionByIdMoneda: function() {
  282 + return {
  283 + then: function() { }
  284 + };
  285 + },
  286 + getNumeroRemito: function() {
  287 + return {
  288 + then: function() { }
  289 + };
  290 + }
  291 + },
  292 + $timeout: timeout,
  293 + focaModalService: focaModalService,
  294 + remitoBusinessService: {},
  295 + $rootScope: {
  296 + $on: function() { }
  297 + },
  298 + focaBotoneraLateralService: {},
  299 + $localStorage: {}
  300 + });
  301 +
  302 + scope.remito = {
  303 + vendedor: { NUM: true },
  304 + cliente: { COD: true }
  305 + };
  306 +
  307 + //act
  308 + spyOn(focaModalService, 'alert');
  309 + scope.crearRemito();
  310 +
  311 + //assert
  312 + expect(focaModalService.alert).toHaveBeenCalledWith('Ingrese Proveedor');
  313 +
  314 + });
  315 +
  316 + it('crearRemito muestra alerta cuando no se eligió moneda', function() {
  317 +
  318 + //arrange
  319 + var scope = {
  320 + $broadcast: function() { },
  321 + $watch: function() { }
  322 + };
  323 + var focaModalService = {
  324 + alert: function() { }
  325 + };
  326 +
  327 + $controller('remitoController', {
  328 + $scope: scope,
  329 + $uibModal: {},
  330 + $location: {},
  331 + $filter: {},
  332 + crearRemitoService: {
  333 + getBotonera: function() { },
  334 + getCotizacionByIdMoneda: function() {
  335 + return {
  336 + then: function() { }
  337 + };
  338 + },
  339 + getNumeroRemito: function() {
  340 + return {
  341 + then: function() { }
  342 + };
  343 + }
  344 + },
  345 + $timeout: timeout,
  346 + focaModalService: focaModalService,
  347 + remitoBusinessService: {},
  348 + $rootScope: {
  349 + $on: function() { }
  350 + },
  351 + focaBotoneraLateralService: {},
  352 + $localStorage: {}
  353 + });
  354 +
  355 + scope.remito = {
  356 + vendedor: { NUM: true },
  357 + cliente: { COD: true },
  358 + proveedor: {},
  359 + cotizacion: { moneda: {} }
  360 + };
  361 +
  362 + //act
  363 + spyOn(focaModalService, 'alert');
  364 + scope.crearRemito();
  365 +
  366 + //assert
  367 + expect(focaModalService.alert).toHaveBeenCalledWith('Ingrese Moneda');
  368 +
  369 + });
  370 +
  371 + it('crearRemito muestra alerta cuando no se eligió Cotización', function() {
  372 +
  373 + //arrange
  374 + var scope = {
  375 + $broadcast: function() { },
  376 + $watch: function() { }
  377 + };
  378 + var focaModalService = {
  379 + alert: function() { }
  380 + };
  381 +
  382 + $controller('remitoController', {
  383 + $scope: scope,
  384 + $uibModal: {},
  385 + $location: {},
  386 + $filter: {},
  387 + crearRemitoService: {
  388 + getBotonera: function() { },
  389 + getCotizacionByIdMoneda: function() {
  390 + return {
  391 + then: function() { }
  392 + };
  393 + },
  394 + getNumeroRemito: function() {
  395 + return {
  396 + then: function() { }
  397 + };
  398 + }
  399 + },
  400 + $timeout: timeout,
  401 + focaModalService: focaModalService,
  402 + remitoBusinessService: {},
  403 + $rootScope: {
  404 + $on: function() { }
  405 + },
  406 + focaBotoneraLateralService: {},
  407 + $localStorage: {}
  408 + });
  409 +
  410 + scope.remito = {
  411 + vendedor: { NUM: true },
  412 + cliente: { COD: true },
  413 + proveedor: {},
  414 + cotizacion: { moneda: { id: true } }
  415 + };
  416 +
  417 + //act
  418 + spyOn(focaModalService, 'alert');
  419 + scope.crearRemito();
  420 +
  421 + //assert
  422 + expect(focaModalService.alert).toHaveBeenCalledWith('Ingrese Cotización');
  423 +
  424 + });
  425 +
  426 + it('crearRemito muestra alerta cuando no se eligió flete', function() {
  427 +
  428 + //arrange
  429 + var scope = {
  430 + $broadcast: function() { },
  431 + $watch: function() { }
  432 + };
  433 + var focaModalService = {
  434 + alert: function() { }
  435 + };
  436 +
  437 + $controller('remitoController', {
  438 + $scope: scope,
  439 + $uibModal: {},
  440 + $location: {},
  441 + $filter: {},
  442 + crearRemitoService: {
  443 + getBotonera: function() { },
  444 + getCotizacionByIdMoneda: function() {
  445 + return {
  446 + then: function() { }
  447 + };
  448 + },
  449 + getNumeroRemito: function() {
  450 + return {
  451 + then: function() { }
  452 + };
  453 + }
  454 + },
  455 + $timeout: timeout,
  456 + focaModalService: focaModalService,
  457 + remitoBusinessService: {},
  458 + $rootScope: {
  459 + $on: function() { }
  460 + },
  461 + focaBotoneraLateralService: {},
  462 + $localStorage: {}
  463 + });
  464 +
  465 + scope.remito = {
  466 + vendedor: { NUM: true },
  467 + cliente: { COD: true },
  468 + proveedor: {},
  469 + cotizacion: {
  470 + moneda: { id: true },
  471 + ID: true
  472 + }
  473 + };
  474 +
  475 + //act
  476 + spyOn(focaModalService, 'alert');
  477 + scope.crearRemito();
  478 +
  479 + //assert
  480 + expect(focaModalService.alert).toHaveBeenCalledWith('Ingrese Flete');
  481 +
  482 + });
  483 +
  484 + it('crearRemito muestra alerta cuando no se eligió articulos', function() {
  485 +
  486 + //arrange
  487 + var scope = {
  488 + $broadcast: function() { },
  489 + $watch: function() { }
  490 + };
  491 + var focaModalService = {
  492 + alert: function() { }
  493 + };
  494 +
  495 + $controller('remitoController', {
  496 + $scope: scope,
  497 + $uibModal: {},
  498 + $location: {},
  499 + $filter: {},
  500 + crearRemitoService: {
  501 + getBotonera: function() { },
  502 + getCotizacionByIdMoneda: function() {
  503 + return {
  504 + then: function() { }
  505 + };
  506 + },
  507 + getNumeroRemito: function() {
  508 + return {
  509 + then: function() { }
  510 + };
  511 + }
  512 + },
  513 + $timeout: timeout,
  514 + focaModalService: focaModalService,
  515 + remitoBusinessService: {},
  516 + $rootScope: {
  517 + $on: function() { }
  518 + },
  519 + focaBotoneraLateralService: {},
  520 + $localStorage: {}
  521 + });
  522 +
  523 + scope.remito = {
  524 + vendedor: { NUM: true },
  525 + cliente: { COD: true },
  526 + proveedor: {},
  527 + cotizacion: {
  528 + moneda: { id: true },
  529 + ID: true
  530 + },
  531 + flete: true,
  532 + articulosRemito: []
  533 + };
  534 +
  535 + //act
  536 + spyOn(focaModalService, 'alert');
  537 + scope.crearRemito();
  538 +
  539 + //assert
  540 + expect(focaModalService.alert).toHaveBeenCalledWith('Debe cargar al menos un articulo');
  541 +
  542 + });
  543 +
  544 + it('crearRemito llama a startGuardar', function() {
  545 +
  546 + //arrange
  547 + var scope = {
  548 + $broadcast: function() { },
  549 + $watch: function() { }
  550 + };
  551 + var focaBotoneraLateralService = {
  552 + startGuardar: function() { }
  553 + };
  554 +
  555 + $controller('remitoController', {
  556 + $scope: scope,
  557 + $uibModal: {},
  558 + $location: {},
  559 + $filter: {},
  560 + crearRemitoService: {
  561 + getBotonera: function() { },
  562 + getCotizacionByIdMoneda: function() {
  563 + return {
  564 + then: function() { }
  565 + };
  566 + },
  567 + getNumeroRemito: function() {
  568 + return {
  569 + then: function() { }
  570 + };
  571 + },
  572 + crearRemito: function() {
  573 + return {
  574 + then: function() { }
  575 + };
  576 + }
  577 + },
  578 + $timeout: timeout,
  579 + focaModalService: {},
  580 + remitoBusinessService: {},
  581 + $rootScope: {
  582 + $on: function() { }
  583 + },
  584 + focaBotoneraLateralService: focaBotoneraLateralService,
  585 + $localStorage: {}
  586 + });
  587 +
  588 + scope.remito = {
  589 + vendedor: { NUM: true },
  590 + cliente: { COD: true },
  591 + proveedor: {},
  592 + cotizacion: {
  593 + moneda: { id: true },
  594 + ID: true
  595 + },
  596 + flete: true,
  597 + articulosRemito: [ 1 ]
  598 + };
  599 +
  600 + //act
  601 + spyOn(focaBotoneraLateralService, 'startGuardar');
  602 + scope.crearRemito();
  603 +
  604 + //assert
  605 + expect(focaBotoneraLateralService.startGuardar).toHaveBeenCalled();
  606 +
  607 + });
  608 +
  609 + it('crearRemito llama a endGuardar y abre modal', function(done) {
  610 +
  611 + //arrange
  612 + var scope = {
  613 + $broadcast: function() { },
  614 + $watch: function() { }
  615 + };
  616 + var focaBotoneraLateralService = {
  617 + startGuardar: function() { },
  618 + endGuardar: function() { }
  619 + };
  620 + var uibModal = {
  621 + open: function() { }
  622 + };
  623 + var crearRemitoService = {
  624 + getBotonera: function() { },
  625 + getCotizacionByIdMoneda: function() {
  626 + return {
  627 + then: function() { }
  628 + };
  629 + },
  630 + getNumeroRemito: function() {
  631 + return {
  632 + then: function() { }
  633 + };
  634 + },
  635 + crearRemito: function() { }
  636 + };
  637 +
  638 + $controller('remitoController', {
  639 + $scope: scope,
  640 + $uibModal: uibModal,
  641 + $location: {},
  642 + $filter: {},
  643 + crearRemitoService: crearRemitoService,
  644 + $timeout: timeout,
  645 + focaModalService: {},
  646 + remitoBusinessService: {
  647 + addArticulos: function() { }
  648 + },
  649 + $rootScope: {
  650 + $on: function() { }
  651 + },
  652 + focaBotoneraLateralService: focaBotoneraLateralService,
  653 + $localStorage: {}
  654 + });
  655 +
  656 + scope.remito = {
  657 + vendedor: { NUM: true },
  658 + cliente: { COD: true },
  659 + proveedor: {},
  660 + cotizacion: {
  661 + moneda: { id: true },
  662 + ID: true
  663 + },
  664 + flete: true,
  665 + articulosRemito: [1]
  666 + };
  667 + var promiseRespond = Promise.resolve({ data: {} });
  668 +
  669 + //act
  670 + spyOn(crearRemitoService, 'crearRemito').and.returnValue(promiseRespond);
  671 + spyOn(focaBotoneraLateralService, 'endGuardar');
  672 + spyOn(uibModal, 'open');
  673 + scope.crearRemito();
  674 +
  675 + //assert
  676 + promiseRespond.then(function() {
  677 +
  678 + expect(focaBotoneraLateralService.endGuardar).toHaveBeenCalled();
  679 + done();
  680 + });
  681 + });
  682 +
  683 + it('seleccionarProductos abre modal', function() {
  684 +
  685 + //arrange
  686 + var scope = {
  687 + $broadcast: function() { },
  688 + $watch: function() { }
  689 + };
  690 + var uibModal = {
  691 + open: function() { }
  692 + };
  693 +
  694 + $controller('remitoController', {
  695 + $scope: scope,
  696 + $uibModal: uibModal,
  697 + $location: {},
  698 + $filter: {},
  699 + crearRemitoService: {
  700 + getBotonera: function() {},
  701 + getCotizacionByIdMoneda: function() {
  702 + return {
  703 + then: function() {}
  704 + };
  705 + },
  706 + getNumeroRemito: function() {
  707 + return {
  708 + then: function() {}
  709 + };
  710 + }
  711 + },
  712 + $timeout: timeout,
  713 + focaModalService: {},
  714 + remitoBusinessService: {
  715 + addArticulos: function() { }
  716 + },
  717 + $rootScope: {
  718 + $on: function() { }
  719 + },
  720 + focaBotoneraLateralService: {},
  721 + $localStorage: {}
  722 + });
  723 +
  724 + scope.remito = {
  725 + cotizacion: {
  726 + moneda: { },
  727 + },
  728 + };
  729 + scope.idLista = true;
  730 +
  731 + //act
  732 + spyOn(uibModal, 'open').and.returnValue({ result: { then: function() {} } });
  733 + scope.seleccionarProductos();
  734 +
  735 + //assert
  736 + expect(uibModal.open).toHaveBeenCalled();
  737 + });
  738 +
  739 + it('seleccionarProductos abre alerta si no se eligió lista', function() {
  740 +
  741 + //arrange
  742 + var scope = {
  743 + $broadcast: function() { },
  744 + $watch: function() { }
  745 + };
  746 + var focaModalService = {
  747 + alert: function() { }
  748 + };
  749 +
  750 + $controller('remitoController', {
  751 + $scope: scope,
  752 + $uibModal: {},
  753 + $location: {},
  754 + $filter: {},
  755 + crearRemitoService: {
  756 + getBotonera: function() {},
  757 + getCotizacionByIdMoneda: function() {
  758 + return {
  759 + then: function() {}
  760 + };
  761 + },
  762 + getNumeroRemito: function() {
  763 + return {
  764 + then: function() {}
  765 + };
  766 + }
  767 + },
  768 + $timeout: timeout,
  769 + focaModalService: focaModalService,
  770 + remitoBusinessService: {
  771 + addArticulos: function() { }
  772 + },
  773 + $rootScope: {
  774 + $on: function() { }
  775 + },
  776 + focaBotoneraLateralService: {},
  777 + $localStorage: {}
  778 + });
  779 +
  780 + //act
  781 + spyOn(focaModalService, 'alert');
  782 + scope.seleccionarProductos();
  783 +
  784 + //assert
  785 + expect(focaModalService.alert)
  786 + .toHaveBeenCalledWith('Primero seleccione una lista de precio y condicion');
  787 + });
  788 +
  789 + it('seleccionarPuntosDeDescarga abre modal', function() {
  790 +
  791 + //arrange
  792 + var scope = {
  793 + $broadcast: function() { },
  794 + $watch: function() { }
  795 + };
  796 + var uibModal = {
  797 + open: function() { }
  798 + };
  799 +
  800 + $controller('remitoController', {
  801 + $scope: scope,
  802 + $uibModal: uibModal,
  803 + $location: {},
  804 + $filter: {},
  805 + crearRemitoService: {
  806 + getBotonera: function() {},
  807 + getCotizacionByIdMoneda: function() {
  808 + return {
  809 + then: function() {}
  810 + };
  811 + },
  812 + getNumeroRemito: function() {
  813 + return {
  814 + then: function() {}
  815 + };
  816 + }
  817 + },
  818 + $timeout: timeout,
  819 + focaModalService: {},
  820 + remitoBusinessService: {
  821 + addArticulos: function() { }
  822 + },
  823 + $rootScope: {
  824 + $on: function() { }
  825 + },
  826 + focaBotoneraLateralService: {},
  827 + $localStorage: {}
  828 + });
  829 + scope.remito = {
  830 + cliente: { COD: true },
  831 + domicilio: { id: true }
  832 + };
  833 +
  834 + //act
  835 + spyOn(uibModal, 'open').and.returnValue({ result: { then: function() { } } });
  836 + scope.seleccionarPuntosDeDescarga();
  837 +
  838 + //assert
  839 + expect(uibModal.open).toHaveBeenCalled();
  840 + });
  841 +
  842 + it('seleccionarVendedor abre modal', function() {
  843 +
  844 + //arrange
  845 + var scope = {
  846 + $broadcast: function() { },
  847 + $watch: function() { }
  848 + };
  849 + var focaModalService = {
  850 + modal: function() { }
  851 + };
  852 +
  853 + $controller('remitoController', {
  854 + $scope: scope,
  855 + $uibModal: {},
  856 + $location: {},
  857 + $filter: {},
  858 + crearRemitoService: {
  859 + getBotonera: function() {},
  860 + getCotizacionByIdMoneda: function() {
  861 + return {
  862 + then: function() {}
  863 + };
  864 + },
  865 + getNumeroRemito: function() {
  866 + return {
  867 + then: function() {}
  868 + };
  869 + }
  870 + },
  871 + $timeout: timeout,
  872 + focaModalService: focaModalService,
  873 + remitoBusinessService: {
  874 + addArticulos: function() { }
  875 + },
  876 + $rootScope: {
  877 + $on: function() { }
  878 + },
  879 + focaBotoneraLateralService: {},
  880 + $localStorage: {}
  881 + });
  882 +
  883 + //act
  884 + spyOn(focaModalService, 'modal').and.returnValue({ then: function() { } });
  885 + scope.seleccionarVendedor();
  886 +
  887 + //assert
  888 + expect(focaModalService.modal).toHaveBeenCalled();
  889 + });
  890 +
  891 + it('seleccionarCliente abre modal', function() {
  892 +
  893 + //arrange
  894 + var scope = {
  895 + $broadcast: function() { },
  896 + $watch: function() { }
  897 + };
  898 + var uibModal = {
  899 + open: function() { }
  900 + };
  901 +
  902 + $controller('remitoController', {
  903 + $scope: scope,
  904 + $uibModal: uibModal,
  905 + $location: {},
  906 + $filter: {},
  907 + crearRemitoService: {
  908 + getBotonera: function() {},
  909 + getCotizacionByIdMoneda: function() {
  910 + return {
  911 + then: function() {}
  912 + };
  913 + },
  914 + getNumeroRemito: function() {
  915 + return {
  916 + then: function() {}
  917 + };
  918 + }
  919 + },
  920 + $timeout: timeout,
  921 + focaModalService: {},
  922 + remitoBusinessService: {
  923 + addArticulos: function() { }
  924 + },
  925 + $rootScope: {
  926 + $on: function() { }
  927 + },
  928 + focaBotoneraLateralService: {},
  929 + $localStorage: {}
  930 + });
  931 +
  932 + //act
  933 + spyOn(uibModal, 'open').and.returnValue({ result: { then: function() { } } });
  934 + scope.seleccionarCliente(true);
  935 +
  936 + //assert
  937 + expect(uibModal.open).toHaveBeenCalled();
  938 + });
  939 +
  940 + it('seleccionarCliente setea cliente y llama a abrirModalDomicilios', function(done) {
  941 +
  942 + //arrange
  943 + var scope = {
  944 + $broadcast: function() { },
  945 + $watch: function() { }
  946 + };
  947 + var uibModal = {
  948 + open: function() { }
  949 + };
  950 +
  951 + $controller('remitoController', {
  952 + $scope: scope,
  953 + $uibModal: uibModal,
  954 + $location: {},
  955 + $filter: {},
  956 + crearRemitoService: {
  957 + getBotonera: function() {},
  958 + getCotizacionByIdMoneda: function() {
  959 + return {
  960 + then: function() {}
  961 + };
  962 + },
  963 + getNumeroRemito: function() {
  964 + return {
  965 + then: function() {}
  966 + };
  967 + }
  968 + },
  969 + $timeout: timeout,
  970 + focaModalService: {},
  971 + remitoBusinessService: {
  972 + addArticulos: function() { }
  973 + },
  974 + $rootScope: {
  975 + $on: function() { }
  976 + },
  977 + focaBotoneraLateralService: {},
  978 + $localStorage: {}
  979 + });
  980 + var response = 'test';
  981 + var promesa = { result: Promise.resolve(response) };
  982 +
  983 + //act
  984 + spyOn(uibModal, 'open').and.returnValue(promesa);
  985 + spyOn(scope, 'abrirModalDomicilios');
  986 + scope.seleccionarCliente(true);
  987 +
  988 + //assert
  989 + promesa.result.then(function() {
  990 + expect(scope.abrirModalDomicilios).toHaveBeenCalledWith(response);
  991 + expect(scope.cliente).toEqual(response);
  992 + done();
  993 + });
  994 + });
  995 +
  996 + it('seleccionarProveedor abre modal', function() {
  997 +
  998 + //arrange
  999 + var scope = {
  1000 + $broadcast: function() { },
  1001 + $watch: function() { }
  1002 + };
  1003 + var focaModalService = {
  1004 + modal: function() { }
  1005 + };
  1006 +
  1007 + $controller('remitoController', {
  1008 + $scope: scope,
  1009 + $uibModal: {},
  1010 + $location: {},
  1011 + $filter: {},
  1012 + crearRemitoService: {
  1013 + getBotonera: function() {},
  1014 + getCotizacionByIdMoneda: function() {
  1015 + return {
  1016 + then: function() {}
  1017 + };
  1018 + },
  1019 + getNumeroRemito: function() {
  1020 + return {
  1021 + then: function() {}
  1022 + };
  1023 + }
  1024 + },
  1025 + $timeout: timeout,
  1026 + focaModalService: focaModalService,
  1027 + remitoBusinessService: {
  1028 + addArticulos: function() { }
  1029 + },
  1030 + $rootScope: {
  1031 + $on: function() { }
  1032 + },
  1033 + focaBotoneraLateralService: {},
  1034 + $localStorage: {}
  1035 + });
  1036 +
  1037 + //act
  1038 + spyOn(focaModalService, 'modal').and.returnValue({ then: function() { } });
  1039 + scope.seleccionarProveedor();
  1040 +
  1041 + //assert
  1042 + expect(focaModalService.modal).toHaveBeenCalled();
  1043 + });
  1044 +
  1045 + it('seleccionarProveedor setea provedor y llama a callback', function(done) {
  1046 +
  1047 + //arrange
  1048 + var scope = {
  1049 + $broadcast: function() { },
  1050 + $watch: function() { }
  1051 + };
  1052 + var focaModalService = {
  1053 + modal: function() { }
  1054 + };
  1055 +
  1056 + $controller('remitoController', {
  1057 + $scope: scope,
  1058 + $uibModal: {},
  1059 + $location: {},
  1060 + $filter: function() {
  1061 + return function() { };
  1062 + },
  1063 + crearRemitoService: {
  1064 + getBotonera: function() {},
  1065 + getCotizacionByIdMoneda: function() {
  1066 + return {
  1067 + then: function() {}
  1068 + };
  1069 + },
  1070 + getNumeroRemito: function() {
  1071 + return {
  1072 + then: function() {}
  1073 + };
  1074 + }
  1075 + },
  1076 + $timeout: timeout,
  1077 + focaModalService: focaModalService,
  1078 + remitoBusinessService: {
  1079 + addArticulos: function() { }
  1080 + },
  1081 + $rootScope: {
  1082 + $on: function() { }
  1083 + },
  1084 + focaBotoneraLateralService: {},
  1085 + $localStorage: {}
  1086 + });
  1087 + var response = { COD: 1 };
  1088 + var promesa = Promise.resolve(response);
  1089 + window.callback = function() { };
  1090 +
  1091 + //act
  1092 + spyOn(focaModalService, 'modal').and.returnValue(promesa);
  1093 + spyOn(window, 'callback');
  1094 + scope.seleccionarProveedor(window.callback);
  1095 +
  1096 + //assert
  1097 + promesa.then(function() {
  1098 + expect(window.callback).toHaveBeenCalled();
  1099 + expect(scope.remito.proveedor).toBe(response);
  1100 + expect(scope.remito.idProveedor).toBe(response.COD);
  1101 + done();
  1102 + });
  1103 + });
  1104 +
  1105 + it('abrirModalDomicilios abre modal', function() {
  1106 +
  1107 + //arrange
  1108 + var scope = {
  1109 + $broadcast: function() { },
  1110 + $watch: function() { }
  1111 + };
  1112 + var uibModal = {
  1113 + open: function() { }
  1114 + };
  1115 +
  1116 + $controller('remitoController', {
  1117 + $scope: scope,
  1118 + $uibModal: uibModal,
  1119 + $location: {},
  1120 + $filter: {},
  1121 + crearRemitoService: {
  1122 + getBotonera: function() {},
  1123 + getCotizacionByIdMoneda: function() {
  1124 + return {
  1125 + then: function() {}
  1126 + };
  1127 + },
  1128 + getNumeroRemito: function() {
  1129 + return {
  1130 + then: function() {}
  1131 + };
  1132 + }
  1133 + },
  1134 + $timeout: timeout,
  1135 + focaModalService: {},
  1136 + remitoBusinessService: {
  1137 + addArticulos: function() { }
  1138 + },
  1139 + $rootScope: {
  1140 + $on: function() { }
  1141 + },
  1142 + focaBotoneraLateralService: {},
  1143 + $localStorage: {}
  1144 + });
  1145 +
  1146 + //act
  1147 + spyOn(uibModal, 'open').and.returnValue({ result: { then: function() { } } });
  1148 + scope.abrirModalDomicilios();
  1149 +
  1150 + //assert
  1151 + expect(uibModal.open).toHaveBeenCalled();
  1152 +
  1153 + });
  1154 +
  1155 + it('getTotal devuelve correctamente', function() {
  1156 +
  1157 + //arrange
  1158 + var scope = {
  1159 + $broadcast: function() { },
  1160 + $watch: function() { }
  1161 + };
  1162 +
  1163 + $controller('remitoController', {
  1164 + $scope: scope,
  1165 + $uibModal: {},
  1166 + $location: {},
  1167 + $filter: {},
  1168 + crearRemitoService: {
  1169 + getBotonera: function() {},
  1170 + getCotizacionByIdMoneda: function() {
  1171 + return {
  1172 + then: function() {}
  1173 + };
  1174 + },
  1175 + getNumeroRemito: function() {
  1176 + return {
  1177 + then: function() {}
  1178 + };
  1179 + }
  1180 + },
  1181 + $timeout: timeout,
  1182 + focaModalService: {},
  1183 + remitoBusinessService: {
  1184 + addArticulos: function() { }
  1185 + },
  1186 + $rootScope: {
  1187 + $on: function() { }
  1188 + },
  1189 + focaBotoneraLateralService: {},
  1190 + $localStorage: {}
  1191 + });
  1192 + scope.remito = {
  1193 + articulosRemito: [
  1194 + {
  1195 + precio: 100,
  1196 + cantidad: 3
  1197 + }
  1198 + ]
  1199 + };
  1200 +
  1201 + //act
  1202 + var result = scope.getTotal();
  1203 +
  1204 + //assert
  1205 + expect(result).toEqual(300);
  1206 +
  1207 + });
  1208 +
  1209 + it('getSubTotal devuelve correctamente', function() {
  1210 +
  1211 + //arrange
  1212 + var scope = {
  1213 + $broadcast: function() { },
  1214 + $watch: function() { }
  1215 + };
  1216 +
  1217 + $controller('remitoController', {
  1218 + $scope: scope,
  1219 + $uibModal: {},
  1220 + $location: {},
  1221 + $filter: {},
  1222 + crearRemitoService: {
  1223 + getBotonera: function() {},
  1224 + getCotizacionByIdMoneda: function() {
  1225 + return {
  1226 + then: function() {}
  1227 + };
  1228 + },
  1229 + getNumeroRemito: function() {
  1230 + return {
  1231 + then: function() {}
  1232 + };
  1233 + }
  1234 + },
  1235 + $timeout: timeout,
  1236 + focaModalService: {},
  1237 + remitoBusinessService: {
  1238 + addArticulos: function() { }
  1239 + },
  1240 + $rootScope: {
  1241 + $on: function() { }
  1242 + },
  1243 + focaBotoneraLateralService: {},
  1244 + $localStorage: {}
  1245 + });
  1246 + scope.articuloACargar = {
  1247 + precio: 200,
  1248 + cantidad: 4
  1249 + };
  1250 +
  1251 + //act
  1252 + var result = scope.getSubTotal();
  1253 +
  1254 + //assert
  1255 + expect(result).toEqual(800);
  1256 +
  1257 + });
  1258 +
  1259 + it('seleccionarPreciosYCondiciones muestra alerta sino se eligió cliente', function() {
  1260 +
  1261 + //arrange
  1262 + var scope = {
  1263 + $broadcast: function() { },
  1264 + $watch: function() { }
  1265 + };
  1266 + var focaModalService = {
  1267 + alert: function() {}
  1268 + };
  1269 +
  1270 + $controller('remitoController', {
  1271 + $scope: scope,
  1272 + $uibModal: {},
  1273 + $location: {},
  1274 + $filter: {},
  1275 + crearRemitoService: {
  1276 + getBotonera: function() {},
  1277 + getCotizacionByIdMoneda: function() {
  1278 + return {
  1279 + then: function() {}
  1280 + };
  1281 + },
  1282 + getNumeroRemito: function() {
  1283 + return {
  1284 + then: function() {}
  1285 + };
  1286 + }
  1287 + },
  1288 + $timeout: timeout,
  1289 + focaModalService: focaModalService,
  1290 + remitoBusinessService: {
  1291 + addArticulos: function() { }
  1292 + },
  1293 + $rootScope: {
  1294 + $on: function() { }
  1295 + },
  1296 + focaBotoneraLateralService: {},
  1297 + $localStorage: {}
  1298 + });
  1299 +
  1300 + //act
  1301 + spyOn(focaModalService, 'alert');
  1302 + scope.seleccionarPreciosYCondiciones();
  1303 +
  1304 + //assert
  1305 + expect(focaModalService.alert).toHaveBeenCalledWith('Primero seleccione un cliente');
  1306 +
  1307 + });
  1308 +
  1309 + it('seleccionarPreciosYCondiciones abre modal', function() {
  1310 +
  1311 + //arrange
  1312 + var scope = {
  1313 + $broadcast: function() { },
  1314 + $watch: function() { }
  1315 + };
  1316 + var uibModal = {
  1317 + open: function() {}
  1318 + };
  1319 +
  1320 + $controller('remitoController', {
  1321 + $scope: scope,
  1322 + $uibModal: uibModal,
  1323 + $location: {},
  1324 + $filter: {},
  1325 + crearRemitoService: {
  1326 + getBotonera: function() {},
  1327 + getCotizacionByIdMoneda: function() {
  1328 + return {
  1329 + then: function() {}
  1330 + };
  1331 + },
  1332 + getNumeroRemito: function() {
  1333 + return {
  1334 + then: function() {}
  1335 + };
  1336 + }
  1337 + },
  1338 + $timeout: timeout,
  1339 + focaModalService: {},
  1340 + remitoBusinessService: {
  1341 + addArticulos: function() { }
  1342 + },
  1343 + $rootScope: {
  1344 + $on: function() { }
  1345 + },
  1346 + focaBotoneraLateralService: {},
  1347 + $localStorage: {}
  1348 + });
  1349 + scope.remito = {
  1350 + cliente: { COD: true }
  1351 + };
  1352 +
  1353 + //act
  1354 + spyOn(uibModal, 'open').and.returnValue({ result: { then: function() { } } });
  1355 + scope.seleccionarPreciosYCondiciones();
  1356 +
  1357 + //assert
  1358 + expect(uibModal.open).toHaveBeenCalled();
  1359 +
  1360 + });
  1361 +
  1362 + it('seleccionarMoneda abre modal y llama a cotizacion', function(done) {
  1363 +
  1364 + //arrange
  1365 + var scope = {
  1366 + $broadcast: function() { },
  1367 + $watch: function() { }
  1368 + };
  1369 + var focaModalService = {
  1370 + modal: function() {}
  1371 + };
  1372 + var uibModal = {
  1373 + open: function() {
  1374 + return {
  1375 + result: {
  1376 + then: function() {}
  1377 + }
  1378 + };
  1379 + }
  1380 + };
  1381 +
  1382 + $controller('remitoController', {
  1383 + $scope: scope,
  1384 + $uibModal: uibModal,
  1385 + $location: {},
  1386 + $filter: {},
  1387 + crearRemitoService: {
  1388 + getBotonera: function() {},
  1389 + getCotizacionByIdMoneda: function() {
  1390 + return {
  1391 + then: function() {}
  1392 + };
  1393 + },
  1394 + getNumeroRemito: function() {
  1395 + return {
  1396 + then: function() {}
  1397 + };
  1398 + }
  1399 + },
  1400 + $timeout: timeout,
  1401 + focaModalService: focaModalService,
  1402 + remitoBusinessService: {
  1403 + addArticulos: function() { }
  1404 + },
  1405 + $rootScope: {
  1406 + $on: function() { }
  1407 + },
  1408 + focaBotoneraLateralService: {},
  1409 + $localStorage: {}
  1410 + });
  1411 + var promesa = Promise.resolve('test');
  1412 +
  1413 + //act
  1414 + spyOn(focaModalService, 'modal').and.returnValue(promesa);
  1415 + scope.seleccionarMoneda();
  1416 +
  1417 + //assert
  1418 + promesa.then(function() {
  1419 + expect(focaModalService.modal).toHaveBeenCalled();
  1420 + done();
  1421 + });
  1422 + });
  1423 +
  1424 + it('seleccionarObservaciones levanta prompt', function() {
  1425 +
  1426 + //arrange
  1427 + var scope = {
  1428 + $broadcast: function() { },
  1429 + $watch: function() { }
  1430 + };
  1431 + var focaModalService = {
  1432 + prompt: function() {}
  1433 + };
  1434 +
  1435 + $controller('remitoController', {
  1436 + $scope: scope,
  1437 + $uibModal: {},
  1438 + $location: {},
  1439 + $filter: {},
  1440 + crearRemitoService: {
  1441 + getBotonera: function() {},
  1442 + getCotizacionByIdMoneda: function() {
  1443 + return {
  1444 + then: function() {}
  1445 + };
  1446 + },
  1447 + getNumeroRemito: function() {
  1448 + return {
  1449 + then: function() {}
  1450 + };
  1451 + }
  1452 + },
  1453 + $timeout: timeout,
  1454 + focaModalService: focaModalService,
  1455 + remitoBusinessService: {
  1456 + addArticulos: function() { }
  1457 + },
  1458 + $rootScope: {
  1459 + $on: function() { }
  1460 + },
  1461 + focaBotoneraLateralService: {},
  1462 + $localStorage: {}
  1463 + });
  1464 +
  1465 + //act
  1466 + spyOn(focaModalService, 'prompt').and.returnValue({ then: function() { } });
  1467 + scope.seleccionarObservaciones();
  1468 +
  1469 + //assert
  1470 + expect(focaModalService.prompt).toHaveBeenCalled();
  1471 + });
  1472 +
  1473 + it('abrirModalCotizacion abre modal', function() {
  1474 +
  1475 + //arrange
  1476 + var scope = {
  1477 + $broadcast: function() { },
  1478 + $watch: function() { }
  1479 + };
  1480 + var uibModal = {
  1481 + open: function() {}
  1482 + };
  1483 +
  1484 + $controller('remitoController', {
  1485 + $scope: scope,
  1486 + $uibModal: uibModal,
  1487 + $location: {},
  1488 + $filter: {},
  1489 + crearRemitoService: {
  1490 + getBotonera: function() {},
  1491 + getCotizacionByIdMoneda: function() {
  1492 + return {
  1493 + then: function() {}
  1494 + };
  1495 + },
  1496 + getNumeroRemito: function() {
  1497 + return {
  1498 + then: function() {}
  1499 + };
  1500 + }
  1501 + },
  1502 + $timeout: timeout,
  1503 + focaModalService: {},
  1504 + remitoBusinessService: {
  1505 + addArticulos: function() { }
  1506 + },
  1507 + $rootScope: {
  1508 + $on: function() { }
  1509 + },
  1510 + focaBotoneraLateralService: {},
  1511 + $localStorage: {}
  1512 + });
  1513 +
  1514 + //act
  1515 + spyOn(uibModal, 'open').and.returnValue({ result: { then: function() { } } });
  1516 + scope.abrirModalCotizacion();
  1517 +
  1518 + //assert
  1519 + expect(uibModal.open).toHaveBeenCalled();
  1520 + });
  1521 + });
  1522 +});
... ... @@ -0,0 +1,21 @@
  1 +describe('Rutas de módulo crear remito', function() {
  2 +
  3 + var route;
  4 +
  5 + beforeEach(function() {
  6 +
  7 + module('focaCrearRemito');
  8 + inject(function($route) {
  9 + route = $route;
  10 + });
  11 + });
  12 +
  13 + it('la ruta /venta-remito/crear lleva a la ruta correcta', function() {
  14 +
  15 + //assert
  16 + expect(route.routes['/venta-remito/crear'].controller)
  17 + .toEqual('remitoController');
  18 + expect(route.routes['/venta-remito/crear'].templateUrl)
  19 + .toEqual('src/views/remito.html');
  20 + });
  21 +});
... ... @@ -0,0 +1,392 @@
  1 +describe('Servicios modulo crear remito', function() {
  2 +
  3 + beforeEach(function(){
  4 + module('focaCrearRemito');
  5 + inject(module(function($provide) {
  6 + $provide.value('API_ENDPOINT', {
  7 + URL: 'localhost'
  8 + });
  9 + }));
  10 + });
  11 +
  12 + describe('servicio crearRemitoService', function() {
  13 +
  14 + var servicio, httpBackend;
  15 +
  16 + beforeEach(function() {
  17 + inject(function($httpBackend, _crearRemitoService_) {
  18 + servicio = _crearRemitoService_;
  19 + httpBackend = $httpBackend;
  20 + });
  21 + });
  22 +
  23 + it('existe el servicio crearRemitoService', function() {
  24 +
  25 + //assert
  26 + expect(typeof servicio).toEqual('object');
  27 + });
  28 +
  29 + it('función crearRemito llama a ruta correcta', function() {
  30 +
  31 + //arrange
  32 + var result;
  33 + var fakeParam = 1;
  34 + var respond = 'test';
  35 + httpBackend.expectPOST('localhost/remito', fakeParam).respond(respond);
  36 +
  37 + //act
  38 + servicio.crearRemito(fakeParam).then(function(res) {
  39 + result = res.data;
  40 + });
  41 + httpBackend.flush();
  42 +
  43 + //assert
  44 + expect(result).toEqual(respond);
  45 + });
  46 +
  47 + it('función getRemitoById llama a ruta correcta', function() {
  48 +
  49 + //arrange
  50 + var result;
  51 + var fakeParam = 1;
  52 + var respond = 'test';
  53 + httpBackend.expectGET('localhost/remito/obtener/' + fakeParam).respond(respond);
  54 +
  55 + //act
  56 + servicio.getRemitoById(fakeParam).then(function(res) {
  57 + result = res.data;
  58 + });
  59 + httpBackend.flush();
  60 +
  61 + //assert
  62 + expect(result).toEqual(respond);
  63 + });
  64 +
  65 + it('función obtenerRemito llama a ruta correcta', function() {
  66 +
  67 + //arrange
  68 + var result;
  69 + var fakeParam = 1;
  70 + var respond = 'test';
  71 + httpBackend.expectGET('localhost/nota-pedido').respond(respond);
  72 +
  73 + //act
  74 + servicio.obtenerRemito(fakeParam).then(function(res) {
  75 + result = res.data;
  76 + });
  77 + httpBackend.flush();
  78 +
  79 + //assert
  80 + expect(result).toEqual(respond);
  81 + });
  82 +
  83 + it('función setRemito setea correctamente', function() {
  84 +
  85 + //arrange
  86 + var fakeParam = 1;
  87 +
  88 + //act
  89 + servicio.setRemito(fakeParam);
  90 +
  91 + //assert
  92 + expect(servicio.remito).toEqual(fakeParam);
  93 + });
  94 +
  95 + it('función clearRemito setea correctamente', function() {
  96 +
  97 + //act
  98 + servicio.clearRemito();
  99 +
  100 + //assert
  101 + expect(servicio.remito).toEqual(undefined);
  102 + });
  103 +
  104 + it('función getRemito trae correctamente', function() {
  105 +
  106 + //arrange
  107 + var fakeParam = 1;
  108 +
  109 + //act
  110 + servicio.remito = fakeParam;
  111 + var result = servicio.getRemito();
  112 +
  113 + //assert
  114 + expect(result).toEqual(fakeParam);
  115 + });
  116 +
  117 + it('función getArticulosByIdRemito llama a ruta correcta', function() {
  118 +
  119 + //arrange
  120 + var result;
  121 + var fakeParam = 1;
  122 + var respond = 'test';
  123 + httpBackend.expectGET('localhost/articulos/nota-pedido/' + fakeParam).respond(respond);
  124 +
  125 + //act
  126 + servicio.getArticulosByIdRemito(fakeParam).then(function(res) {
  127 + result = res.data;
  128 + });
  129 + httpBackend.flush();
  130 +
  131 + //assert
  132 + expect(result).toEqual(respond);
  133 + });
  134 +
  135 + it('función crearArticulosParaRemito llama a ruta correcta', function() {
  136 +
  137 + //arrange
  138 + var result;
  139 + var fakeParam = 1;
  140 + var respond = 'test';
  141 + httpBackend.expectPOST('localhost/articulos/remito', {articuloRemito: fakeParam})
  142 + .respond(respond);
  143 +
  144 + //act
  145 + servicio.crearArticulosParaRemito(fakeParam).then(function(res) {
  146 + result = res.data;
  147 + });
  148 + httpBackend.flush();
  149 +
  150 + //assert
  151 + expect(result).toEqual(respond);
  152 + });
  153 +
  154 + it('función getDomiciliosByIdRemito llama a ruta correcta', function() {
  155 +
  156 + //arrange
  157 + var result;
  158 + var fakeParam = 1;
  159 + var respond = 'test';
  160 + httpBackend.expectGET('localhost/nota-pedido/' + fakeParam + '/domicilios')
  161 + .respond(respond);
  162 +
  163 + //act
  164 + servicio.getDomiciliosByIdRemito(fakeParam).then(function(res) {
  165 + result = res.data;
  166 + });
  167 + httpBackend.flush();
  168 +
  169 + //assert
  170 + expect(result).toEqual(respond);
  171 + });
  172 +
  173 + it('función getDomiciliosByIdCliente llama a ruta correcta', function() {
  174 +
  175 + //arrange
  176 + var result;
  177 + var fakeParam = 1;
  178 + var respond = 'test';
  179 + httpBackend.expectGET('localhost/domicilio/tipo/2/cliente/' + fakeParam)
  180 + .respond(respond);
  181 +
  182 + //act
  183 + servicio.getDomiciliosByIdCliente(fakeParam).then(function(res) {
  184 + result = res.data;
  185 + });
  186 + httpBackend.flush();
  187 +
  188 + //assert
  189 + expect(result).toEqual(respond);
  190 + });
  191 +
  192 + it('función getPrecioCondicion llama a ruta correcta', function() {
  193 +
  194 + //arrange
  195 + var result;
  196 + var respond = 'test';
  197 + httpBackend.expectGET('localhost/precio-condicion').respond(respond);
  198 +
  199 + //act
  200 + servicio.getPrecioCondicion().then(function(res) {
  201 + result = res.data;
  202 + });
  203 + httpBackend.flush();
  204 +
  205 + //assert
  206 + expect(result).toEqual(respond);
  207 + });
  208 +
  209 + it('función getPrecioCondicionById llama a ruta correcta', function() {
  210 +
  211 + //arrange
  212 + var result;
  213 + var fakeParam = 1;
  214 + var respond = 'test';
  215 + httpBackend.expectGET('localhost/precio-condicion/' + fakeParam).respond(respond);
  216 +
  217 + //act
  218 + servicio.getPrecioCondicionById(fakeParam).then(function(res) {
  219 + result = res.data;
  220 + });
  221 + httpBackend.flush();
  222 +
  223 + //assert
  224 + expect(result).toEqual(respond);
  225 + });
  226 +
  227 + it('función getPlazoPagoByPrecioCondicion llama a ruta correcta', function() {
  228 +
  229 + //arrange
  230 + var result;
  231 + var fakeParam = 1;
  232 + var respond = 'test';
  233 + httpBackend.expectGET('localhost/plazo-pago/precio-condicion/' + fakeParam)
  234 + .respond(respond);
  235 +
  236 + //act
  237 + servicio.getPlazoPagoByPrecioCondicion(fakeParam).then(function(res) {
  238 + result = res.data;
  239 + });
  240 + httpBackend.flush();
  241 +
  242 + //assert
  243 + expect(result).toEqual(respond);
  244 + });
  245 +
  246 + it('función crearFlete llama a ruta correcta', function() {
  247 +
  248 + //arrange
  249 + var result;
  250 + var fakeParam = 1;
  251 + var respond = 'test';
  252 + httpBackend.expectPOST('localhost/flete', {flete: fakeParam}).respond(respond);
  253 +
  254 + //act
  255 + servicio.crearFlete(fakeParam).then(function(res) {
  256 + result = res.data;
  257 + });
  258 + httpBackend.flush();
  259 +
  260 + //assert
  261 + expect(result).toEqual(respond);
  262 + });
  263 +
  264 + it('función crearPlazosParaRemito llama a ruta correcta', function() {
  265 +
  266 + //arrange
  267 + var result;
  268 + var fakeParam = 1;
  269 + var respond = 'test';
  270 + httpBackend.expectPOST('localhost/plazo-pago/remito', fakeParam).respond(respond);
  271 +
  272 + //act
  273 + servicio.crearPlazosParaRemito(fakeParam).then(function(res) {
  274 + result = res.data;
  275 + });
  276 + httpBackend.flush();
  277 +
  278 + //assert
  279 + expect(result).toEqual(respond);
  280 + });
  281 +
  282 + it('función getCotizacionByIdMoneda llama a ruta correcta', function() {
  283 +
  284 + //arrange
  285 + var result;
  286 + var fakeParam = 1;
  287 + var respond = 'test';
  288 + httpBackend.expectGET('localhost/moneda/' + fakeParam).respond(respond);
  289 +
  290 + //act
  291 + servicio.getCotizacionByIdMoneda(fakeParam).then(function(res) {
  292 + result = res.data;
  293 + });
  294 + httpBackend.flush();
  295 +
  296 + //assert
  297 + expect(result).toEqual(respond);
  298 + });
  299 +
  300 + it('función crearEstadoParaRemito llama a ruta correcta', function() {
  301 +
  302 + //arrange
  303 + var result;
  304 + var fakeParam = 1;
  305 + var respond = 'test';
  306 + httpBackend.expectPOST('localhost/estado', { estado: fakeParam }).respond(respond);
  307 +
  308 + //act
  309 + servicio.crearEstadoParaRemito(fakeParam).then(function(res) {
  310 + result = res.data;
  311 + });
  312 + httpBackend.flush();
  313 +
  314 + //assert
  315 + expect(result).toEqual(respond);
  316 + });
  317 +
  318 + it('función getNumeroRemito llama a ruta correcta', function() {
  319 +
  320 + //arrange
  321 + var result;
  322 + var respond = 'test';
  323 + httpBackend.expectGET('localhost/remito/numero-siguiente').respond(respond);
  324 +
  325 + //act
  326 + servicio.getNumeroRemito().then(function(res) {
  327 + result = res.data;
  328 + });
  329 + httpBackend.flush();
  330 +
  331 + //assert
  332 + expect(result).toEqual(respond);
  333 + });
  334 +
  335 + it('función imprimirRemitoByIdRemito llama a ruta correcta', function() {
  336 +
  337 + //arrange
  338 + var result;
  339 + var fakeParam = 1;
  340 + var respond = new Blob(['test']);
  341 + httpBackend.expectGET('localhost/remito/comprobante/' + fakeParam)
  342 + .respond(respond);
  343 +
  344 + //act
  345 + servicio.imprimirRemitoByIdRemito(fakeParam).then(function(res) {
  346 + result = res.data;
  347 + });
  348 + httpBackend.flush();
  349 +
  350 + //assert
  351 + expect(result).toEqual(respond);
  352 + });
  353 +
  354 + it('función getPuntosDescargaByClienDom llama a ruta correcta', function() {
  355 +
  356 + //arrange
  357 + var result;
  358 + var fakeParam = 1;
  359 + var respond = 'test';
  360 + httpBackend.expectGET('localhost/punto-descarga/' + fakeParam + '/' + fakeParam)
  361 + .respond(respond);
  362 +
  363 + //act
  364 + servicio.getPuntosDescargaByClienDom(fakeParam, fakeParam).then(function(res) {
  365 + result = res.data;
  366 + });
  367 + httpBackend.flush();
  368 +
  369 + //assert
  370 + expect(result).toEqual(respond);
  371 + });
  372 +
  373 + it('función enviarCorreo llama a ruta correcta', function() {
  374 +
  375 + //arrange
  376 + var result;
  377 + var fakeParam = 1;
  378 + var respond = 'test';
  379 + httpBackend.expectPOST('localhost/remito/mail', fakeParam)
  380 + .respond(respond);
  381 +
  382 + //act
  383 + servicio.enviarCorreo(fakeParam).then(function(res) {
  384 + result = res.data;
  385 + });
  386 + httpBackend.flush();
  387 +
  388 + //assert
  389 + expect(result).toEqual(respond);
  390 + });
  391 + });
  392 +});
1   -angular.module('focaCrearRemito', []);
  1 +angular.module('focaCrearRemito', ['ngRoute']);
src/js/controller.js
... ... @@ -83,7 +83,7 @@ angular.module('focaCrearRemito') .controller('remitoController',
83 83 $scope.inicial = angular.copy($scope.remito);
84 84 }
85 85  
86   - $scope.$watch('remito', function(newValue, oldValue) {
  86 + $scope.$watch('remito', function(newValue) {
87 87 focaBotoneraLateralService.setPausarData({
88 88 label: 'remito',
89 89 val: newValue
... ... @@ -159,20 +159,27 @@ angular.module('focaCrearRemito') .controller('remitoController',
159 159 }
160 160 ];
161 161  
  162 + if (notaPedido.observaciones) {
  163 + cabeceras.push({
  164 + label: 'Observaciones:',
  165 + valor: notaPedido.observaciones
  166 + });
  167 + }
  168 +
162 169 function valorPrecioCondicion() {
163   - if(notaPedido.idPrecioCondicion > 0) {
  170 + if (notaPedido.idPrecioCondicion > 0) {
164 171 return notaPedido.precioCondicion.nombre;
165   - }else {
  172 + } else {
166 173 return 'Ingreso Manual';
167 174 }
168 175 }
169 176  
170   - if(notaPedido.flete === 1) {
  177 + if (notaPedido.flete === 1) {
171 178 var cabeceraBomba = {
172 179 label: 'Bomba:',
173 180 valor: notaPedido.bomba === 1 ? 'Si' : 'No'
174 181 };
175   - if(notaPedido.kilometros) {
  182 + if (notaPedido.kilometros) {
176 183 var cabeceraKilometros = {
177 184 label: 'Kilometros:',
178 185 valor: notaPedido.kilometros
... ... @@ -239,7 +246,9 @@ angular.module('focaCrearRemito') .controller('remitoController',
239 246 } else if (!$scope.remito.proveedor) {
240 247 focaModalService.alert('Ingrese Proveedor');
241 248 return;
242   - } else if (!$scope.remito.cotizacion.moneda.id && !$scope.remito.cotizacion.moneda.ID) {
  249 + } else if (!$scope.remito.cotizacion.moneda.id &&
  250 + !$scope.remito.cotizacion.moneda.ID)
  251 + {
243 252 focaModalService.alert('Ingrese Moneda');
244 253 return;
245 254 } else if (!$scope.remito.cotizacion.ID) {
... ... @@ -442,7 +451,12 @@ angular.module('focaCrearRemito') .controller('remitoController',
442 451 }
443 452 };
444 453  
445   - $scope.seleccionarVendedor = function() {
  454 + $scope.seleccionarVendedor = function(callback, ocultarVendedor) {
  455 + if (ocultarVendedor) {
  456 + callback();
  457 + return;
  458 + }
  459 +
446 460 if(varlidarRemitoFacturado()) {
447 461 var parametrosModal = {
448 462 titulo: 'Búsqueda vendedores',
... ... @@ -472,6 +486,8 @@ angular.module('focaCrearRemito') .controller('remitoController',
472 486 });
473 487 $scope.remito.idVendedor = vendedor.id;
474 488 $scope.remito.vendedor = vendedor;
  489 + deleteCliente();
  490 + callback();
475 491 }, function() {
476 492  
477 493 }
... ... @@ -479,7 +495,35 @@ angular.module('focaCrearRemito') .controller('remitoController',
479 495 }
480 496 };
481 497  
482   - $scope.seleccionarProveedor = function() {
  498 + $scope.seleccionarCliente = function(ocultarVendedor) {
  499 +
  500 + $scope.seleccionarVendedor(function() {
  501 + if (varlidarRemitoFacturado()) {
  502 + var modalInstance = $uibModal.open(
  503 + {
  504 + ariaLabelledBy: 'Busqueda de Cliente',
  505 + templateUrl: 'foca-busqueda-cliente-modal.html',
  506 + controller: 'focaBusquedaClienteModalController',
  507 + resolve: {
  508 + vendedor: function() { return $scope.remito.vendedor; },
  509 + cobrador: function() { return null; }
  510 + },
  511 + size: 'lg'
  512 + }
  513 + );
  514 + modalInstance.result.then(
  515 + function(cliente) {
  516 + $scope.abrirModalDomicilios(cliente);
  517 + $scope.cliente = cliente;
  518 + }, function() {
  519 + $scope.seleccionarCliente();
  520 + }
  521 + );
  522 + }
  523 + }, ocultarVendedor);
  524 + };
  525 +
  526 + $scope.seleccionarProveedor = function(callback) {
483 527 if(varlidarRemitoFacturado()) {
484 528 var parametrosModal = {
485 529 titulo: 'Búsqueda de Proveedor',
... ... @@ -515,38 +559,8 @@ angular.module('focaCrearRemito') .controller('remitoController',
515 559 valor: $filter('rellenarDigitos')(proveedor.COD, 5) + ' - ' +
516 560 proveedor.NOM
517 561 });
518   - }, function() {
519   -
520   - }
521   - );
522   - }
523   - };
524   -
525   - $scope.seleccionarCliente = function() {
526   - if (!$scope.remito.vendedor) {
527   - focaModalService.alert('Primero seleccione un vendedor');
528   - return;
529   - }
530   -
531   - if (varlidarRemitoFacturado()) {
532   - var modalInstance = $uibModal.open(
533   - {
534   - ariaLabelledBy: 'Busqueda de Cliente',
535   - templateUrl: 'foca-busqueda-cliente-modal.html',
536   - controller: 'focaBusquedaClienteModalController',
537   - resolve: {
538   - vendedor: function() { return $scope.remito.vendedor; }
539   - },
540   - size: 'lg'
541   - }
542   - );
543   - modalInstance.result.then(
544   - function(cliente) {
545   - $scope.abrirModalDomicilios(cliente);
546   - $scope.cliente = cliente;
547   - }, function() {
548   -
549   - }
  562 + callback();
  563 + }, function() { }
550 564 );
551 565 }
552 566 };
... ... @@ -571,7 +585,8 @@ angular.module('focaCrearRemito') .controller('remitoController',
571 585 COD: cliente.cod,
572 586 CUIT: cliente.cuit,
573 587 NOM: cliente.nom,
574   - MAIL: cliente.mail
  588 + MAIL: cliente.mail,
  589 + MOD: cliente.mod
575 590 };
576 591  
577 592  
... ... @@ -600,23 +615,12 @@ angular.module('focaCrearRemito') .controller('remitoController',
600 615 });
601 616 }
602 617 }, function() {
603   - $scope.seleccionarCliente();
  618 + $scope.seleccionarCliente(true);
604 619 return;
605 620 }
606 621 );
607 622 };
608 623  
609   - $scope.mostrarFichaCliente = function() {
610   - $uibModal.open(
611   - {
612   - ariaLabelledBy: 'Datos del Cliente',
613   - templateUrl: 'foca-crear-remito-ficha-cliente.html',
614   - controller: 'focaCrearRemitoFichaClienteController',
615   - size: 'lg'
616   - }
617   - );
618   - };
619   -
620 624 $scope.getTotal = function() {
621 625 var total = 0;
622 626 var arrayTempArticulos = $scope.remito.articulosRemito;
... ... @@ -633,13 +637,22 @@ angular.module('focaCrearRemito') .controller('remitoController',
633 637 };
634 638  
635 639 $scope.seleccionarPreciosYCondiciones = function() {
  640 + if (!$scope.remito.cliente.COD) {
  641 + focaModalService.alert('Primero seleccione un cliente');
  642 + return;
  643 + }
636 644 if(varlidarRemitoFacturado()) {
637 645 var modalInstance = $uibModal.open(
638 646 {
639 647 ariaLabelledBy: 'Busqueda de Precio Condición',
640 648 templateUrl: 'modal-precio-condicion.html',
641 649 controller: 'focaModalPrecioCondicionController',
642   - size: 'lg'
  650 + size: 'lg',
  651 + resolve: {
  652 + idListaPrecio: function() {
  653 + return $scope.remito.cliente.MOD || null;
  654 + }
  655 + }
643 656 }
644 657 );
645 658 modalInstance.result.then(
... ... @@ -679,61 +692,65 @@ angular.module('focaCrearRemito') .controller('remitoController',
679 692 }
680 693 };
681 694  
682   - $scope.seleccionarFlete = function() {
683   - if(varlidarRemitoFacturado()) {
684   - var modalInstance = $uibModal.open(
685   - {
686   - ariaLabelledBy: 'Busqueda de Flete',
687   - templateUrl: 'modal-flete.html',
688   - controller: 'focaModalFleteController',
689   - size: 'lg',
690   - resolve: {
691   - parametrosFlete:
692   - function() {
693   - return {
694   - flete: $scope.remito.flete ? '1' :
695   - ($scope.remito.fob ? 'FOB' :
696   - ($scope.remito.flete === undefined ? null : '0')),
697   - bomba: $scope.remito.bomba ? '1' :
698   - ($scope.remito.bomba === undefined ? null : '0'),
699   - kilometros: $scope.remito.kilometros
700   - };
701   - }
  695 + $scope.seleccionarTransportista = function() {
  696 + $scope.seleccionarProveedor(function() {
  697 + if (varlidarRemitoFacturado()) {
  698 + var modalInstance = $uibModal.open(
  699 + {
  700 + ariaLabelledBy: 'Busqueda de Flete',
  701 + templateUrl: 'modal-flete.html',
  702 + controller: 'focaModalFleteController',
  703 + size: 'lg',
  704 + resolve: {
  705 + parametrosFlete:
  706 + function() {
  707 + return {
  708 + flete: $scope.remito.flete ? '1' :
  709 + ($scope.remito.fob ? 'FOB' :
  710 + ($scope.remito.flete === undefined ?
  711 + null : '0')),
  712 + bomba: $scope.remito.bomba ? '1' :
  713 + ($scope.remito.bomba === undefined ?
  714 + null : '0'),
  715 + kilometros: $scope.remito.kilometros
  716 + };
  717 + }
  718 + }
702 719 }
703   - }
704   - );
705   - modalInstance.result.then(
706   - function(datos) {
707   - $scope.remito.flete = datos.flete;
708   - $scope.remito.fob = datos.FOB;
709   - $scope.remito.bomba = datos.bomba;
710   - $scope.remito.kilometros = datos.kilometros;
711   -
712   - $scope.$broadcast('addCabecera',{
713   - label: 'Flete:',
714   - valor: datos.flete ? 'Si' : ($scope.remito.fob ? 'FOB' : 'No')
715   - });
716   - if(datos.flete) {
  720 + );
  721 + modalInstance.result.then(
  722 + function(datos) {
  723 + $scope.remito.flete = datos.flete;
  724 + $scope.remito.fob = datos.FOB;
  725 + $scope.remito.bomba = datos.bomba;
  726 + $scope.remito.kilometros = datos.kilometros;
  727 +
717 728 $scope.$broadcast('addCabecera',{
718   - label: 'Bomba:',
719   - valor: datos.bomba ? 'Si' : 'No'
720   - });
721   - $scope.$broadcast('addCabecera',{
722   - label: 'Kilometros:',
723   - valor: datos.kilometros
  729 + label: 'Flete:',
  730 + valor: datos.flete ? 'Si' : ($scope.remito.fob ? 'FOB' : 'No')
724 731 });
725   - }else {
726   - $scope.$broadcast('removeCabecera', 'Bomba:');
727   - $scope.$broadcast('removeCabecera', 'Kilometros:');
728   - $scope.remito.fob = false;
729   - $scope.remito.bomba = false;
730   - $scope.remito.kilometros = null;
  732 + if (datos.flete) {
  733 + $scope.$broadcast('addCabecera',{
  734 + label: 'Bomba:',
  735 + valor: datos.bomba ? 'Si' : 'No'
  736 + });
  737 + $scope.$broadcast('addCabecera',{
  738 + label: 'Kilometros:',
  739 + valor: datos.kilometros
  740 + });
  741 + } else {
  742 + $scope.$broadcast('removeCabecera', 'Bomba:');
  743 + $scope.$broadcast('removeCabecera', 'Kilometros:');
  744 + $scope.remito.fob = false;
  745 + $scope.remito.bomba = false;
  746 + $scope.remito.kilometros = null;
  747 + }
  748 + }, function() {
  749 + $scope.seleccionarTransportista();
731 750 }
732   - }, function() {
733   -
734   - }
735   - );
736   - }
  751 + );
  752 + }
  753 + });
737 754 };
738 755  
739 756 $scope.seleccionarMoneda = function() {
... ... @@ -765,7 +782,12 @@ angular.module('focaCrearRemito') .controller('remitoController',
765 782  
766 783 $scope.seleccionarObservaciones = function() {
767 784 focaModalService
768   - .prompt('Observaciones', $scope.remito.observaciones, true, true)
  785 + .prompt({
  786 + titulo: 'Observaciones',
  787 + value: $scope.remito.observaciones,
  788 + textarea: true,
  789 + readonly: true
  790 + })
769 791 .then(function(observaciones) {
770 792 $scope.remito.observaciones = observaciones;
771 793 });
... ... @@ -836,14 +858,15 @@ angular.module('focaCrearRemito') .controller('remitoController',
836 858 };
837 859  
838 860 $scope.editarArticulo = function(key, articulo) {
839   - if(key === 13) {
840   - if(articulo.cantidad === null || articulo.cantidad === 0 ||
841   - articulo.cantidad === undefined) {
842   - focaModalService.alert('El valor debe ser al menos 1');
  861 + if (key === 13) {
  862 + if (!articulo.cantidad || !articulo.precio) {
  863 + focaModalService.alert('Los valores deben ser al menos 1');
  864 + return;
  865 + } else if (articulo.cantidad < 0 || articulo.precio < 0) {
  866 + focaModalService.alert('Los valores no pueden ser negativos');
843 867 return;
844 868 }
845   - articulo.editCantidad = false;
846   - articulo.editPrecio = false;
  869 + articulo.editCantidad = articulo.editPrecio = false;
847 870 }
848 871 };
849 872  
... ... @@ -855,28 +878,6 @@ angular.module(&#39;focaCrearRemito&#39;) .controller(&#39;remitoController&#39;,
855 878 }
856 879 };
857 880  
858   - $scope.limpiarFlete = function() {
859   - $scope.remito.fleteNombre = '';
860   - $scope.remito.chofer = '';
861   - $scope.remito.vehiculo = '';
862   - $scope.remito.kilometros = '';
863   - $scope.remito.costoUnitarioKmFlete = '';
864   - $scope.choferes = '';
865   - $scope.vehiculos = '';
866   - };
867   -
868   - $scope.limpiarPantalla = function() {
869   - $scope.limpiarFlete();
870   - $scope.remito.flete = '0';
871   - $scope.remito.bomba = '0';
872   - $scope.remito.precioCondicion = '';
873   - $scope.remito.articulosRemito = [];
874   - $scope.remito.vendedor.nombre = '';
875   - $scope.remito.cliente = {nombre: ''};
876   - $scope.remito.domicilio = {dom: ''};
877   - $scope.domiciliosCliente = [];
878   - };
879   -
880 881 $scope.resetFilter = function() {
881 882 $scope.articuloACargar = {};
882 883 $scope.cargando = true;
... ... @@ -1056,10 +1057,19 @@ angular.module(&#39;focaCrearRemito&#39;) .controller(&#39;remitoController&#39;,
1056 1057 function getLSRemito() {
1057 1058 var remito = JSON.parse($localStorage.remito || null);
1058 1059 if (remito) {
1059   - console.log('remito', remito);
1060 1060 setearRemito(remito);
1061 1061 delete $localStorage.remito;
1062 1062 }
1063 1063 }
  1064 +
  1065 + function deleteCliente() {
  1066 + delete $scope.remito.domicilioStamp;
  1067 + delete $scope.remito.puntosDescarga;
  1068 + $scope.remito.domicilio = {dom: ''};
  1069 + $scope.remito.cliente = {};
  1070 + $scope.$broadcast('removeCabecera', 'Cliente:');
  1071 + $scope.$broadcast('removeCabecera', 'Domicilio:');
  1072 + $scope.$broadcast('removeCabecera', 'Puntos de descarga:');
  1073 + }
1064 1074 }
1065 1075 ]);
... ... @@ -80,15 +80,11 @@ angular.module(&#39;focaCrearRemito&#39;)
80 80 image: 'notaDePedido.png'
81 81 },
82 82 {
83   - label: 'Vendedor',
84   - image: 'vendedor.png'
85   - },
86   - {
87 83 label: 'Cliente',
88 84 image: 'cliente.png'
89 85 },
90 86 {
91   - label: 'Proveedor',
  87 + label: 'Transportista',
92 88 image: 'proveedor.png'
93 89 },
94 90 {
... ... @@ -100,16 +96,12 @@ angular.module(&#39;focaCrearRemito&#39;)
100 96 image: 'precios-condiciones.png'
101 97 },
102 98 {
103   - label: 'Flete',
104   - image: 'flete.png'
105   - },
106   - {
107 99 label: 'Productos',
108 100 image: 'productos.png'
109 101 },
110 102 {
111 103 label: 'Observaciones',
112   - image: 'productos.png',
  104 + image: 'botonObservaciones.png',
113 105 disable: true
114 106 }
115 107 ];
src/views/remito.html
... ... @@ -94,7 +94,7 @@
94 94 >
95 95 <i
96 96 class="selectable"
97   - ng-click="idLista == -1 && cambioEdit(articulo, 'precio')"
  97 + ng-click="cambioEdit(articulo, 'precio')"
98 98 ng-hide="articulo.editPrecio"
99 99 ng-bind="articulo.precio | number: 4">
100 100 </i>
... ... @@ -110,6 +110,13 @@
110 110 >
111 111 <i class="fa fa-trash"></i>
112 112 </button>
  113 + <button
  114 + class="btn btn-outline-light"
  115 + ng-click="editarArticulo(13, articulo)"
  116 + ng-show="articulo.editCantidad || articulo.editPrecio"
  117 + >
  118 + <i class="fa fa-save"></i>
  119 + </button>
113 120 </td>
114 121 </tr>
115 122 </tbody>
... ... @@ -148,9 +155,9 @@
148 155 <td class="col text-right">
149 156 <input
150 157 class="form-control"
151   - ng-value="articuloACargar.precio | number: 4"
  158 + ng-model="articuloACargar.precio"
152 159 ng-show="idLista != -1"
153   - readonly
  160 + ng-keypress="agregarATabla($event.keyCode)"
154 161 >
155 162 <input
156 163 class="form-control"
... ... @@ -0,0 +1,22 @@
  1 +<html>
  2 + <head>
  3 + <link rel="stylesheet" type="text/css" href="node_modules/jasmine-core/lib/jasmine-core/jasmine.css">
  4 + <meta charset="UTF-8" />
  5 + </head>
  6 + <body>
  7 + <script type="text/javascript" src="node_modules/jasmine-core/lib/jasmine-core/jasmine.js"></script>
  8 + <script type="text/javascript" src="node_modules/jasmine-core/lib/jasmine-core/jasmine-html.js"></script>
  9 + <script type="text/javascript" src="node_modules/jasmine-core/lib/jasmine-core/boot.js"></script>
  10 + <script type="text/javascript" src="node_modules/angular/angular.min.js"></script>
  11 + <script type="text/javascript" src="node_modules/angular-route/angular-route.min.js"></script>
  12 + <script type="text/javascript" src="node_modules/angular-mocks/angular-mocks.js"></script>
  13 + <script type="text/javascript" src="src/js/app.js"></script>
  14 + <script type="text/javascript" src="src/js/controller.js"></script>
  15 + <script type="text/javascript" src="src/js/service.js"></script>
  16 + <script type="text/javascript" src="src/js/route.js"></script>
  17 +
  18 + <script type="text/javascript" src="spec/controllerSpec.js"></script>
  19 + <script type="text/javascript" src="spec/serviceSpec.js"></script>
  20 + <script type="text/javascript" src="spec/routeSpec.js"></script>
  21 + </body>
  22 +</html>