Commit dea65007578190e52b38266998b4381a149aa42c
Exists in
master
Merge branch 'master' into 'develop'
Master(efernandez) See merge request !6
Showing
2 changed files
Show diff stats
src/js/controller.js
1 | angular.module('focaCabeceraFacturador') | 1 | angular.module('focaCabeceraFacturador') |
2 | .controller('focaCabeceraFacturadorController', [ | 2 | .controller('focaCabeceraFacturadorController', [ |
3 | '$scope', | 3 | '$scope', |
4 | '$filter', | 4 | '$filter', |
5 | function($scope, $filter) { | 5 | function($scope, $filter) { |
6 | 6 | ||
7 | $scope.showCabecera = true; | 7 | $scope.showCabecera = true; |
8 | $scope.cabecera = []; | 8 | $scope.cabeceras = [ |
9 | cabecera = { | ||
10 | cabeceras: [] | ||
11 | } | ||
12 | ]; | ||
9 | 13 | ||
10 | $scope.$on('addCabecera', function(event, data) { | 14 | $scope.$on('addCabecera', function(event, data) { |
11 | var propiedad = $filter('filter')($scope.cabecera, {label: data.label}, true); | 15 | |
12 | if(propiedad.length === 1) { | 16 | var seccion = $scope.cabeceras[0]; |
17 | |||
18 | if (data.seccion) { | ||
19 | seccion = $filter('filter')($scope.cabeceras, { seccion: data.seccion }, true)[0]; | ||
20 | |||
21 | if (!seccion) { | ||
22 | seccion = {} | ||
23 | seccion.seccion = data.seccion; | ||
24 | seccion.cabeceras = []; | ||
25 | $scope.cabeceras.push(seccion); | ||
26 | } | ||
27 | } | ||
28 | |||
29 | var propiedad = $filter('filter')(seccion.cabeceras, { label: data.label }, true); | ||
30 | |||
31 | if (propiedad.length === 1) { | ||
13 | propiedad[0].valor = data.valor; | 32 | propiedad[0].valor = data.valor; |
14 | }else { | 33 | } else { |
15 | $scope.cabecera.push({label: data.label, valor: data.valor}); | 34 | seccion.cabeceras.push({label: data.label, valor: data.valor}); |
16 | } | 35 | } |
17 | }); | 36 | }); |
18 | 37 | ||
19 | $scope.$on('removeCabecera', function(event, data) { | 38 | $scope.$on('removeCabecera', function(event, data) { |
20 | var propiedad = $filter('filter')($scope.cabecera, {label: data}, true); | 39 | |
21 | if(propiedad.length === 1) { | 40 | var seccion = $scope.cabeceras[0]; |
22 | $scope.cabecera.splice($scope.cabecera.indexOf(propiedad[0]), 1); | 41 | if (data.seccion) { |
42 | seccion = $filter('filter')($scope.cabeceras, { seccion: data.seccion }, true)[0]; | ||
43 | } | ||
44 | var propiedad = $filter('filter')(seccion.cabeceras, {label: data}, true); | ||
45 | if (propiedad.length === 1) { | ||
46 | seccion.cabeceras.splice(seccion.cabeceras.indexOf(propiedad[0]), 1); | ||
23 | } | 47 | } |
24 | }); | 48 | }); |
25 | 49 | ||
26 | $scope.$on('cleanCabecera', function() { | 50 | $scope.$on('cleanCabecera', function(event, data) { |
27 | $scope.cabecera = []; | 51 | if (!data) { |
52 | $scope.cabeceras = [ | ||
53 | cabecera = { | ||
54 | cabeceras: [] | ||
55 | } | ||
56 | ]; | ||
57 | } else { | ||
58 | var seccion = $filter('filter')($scope.cabeceras, { seccion: data.seccion }, true)[0]; | ||
59 | $scope.cabeceras.splice($scope.cabeceras.indexOf(seccion), 1) | ||
60 | } | ||
28 | }); | 61 | }); |
29 | 62 | ||
30 | }]); | 63 | }]); |
31 | 64 |
src/views/cabecera.html
1 | <form name="formCrearNota"> | 1 | <form name="formCrearNota"> |
2 | <div class="row"> | 2 | <div class="row"> |
3 | <div class="col-md-10 col-lg-12"> | 3 | <div class="col-md-10 col-lg-12"> |
4 | <div class="row panel-informativo"> | 4 | <div class="row panel-informativo"> |
5 | <div class="col-12"> | 5 | <div class="col-12"> |
6 | <div class="row titulares"> | 6 | <div class="row titulares"> |
7 | <div class="col-12 col-sm nota-pedido border border-left-0 border-white align-middle"> | 7 | <div class="col-12 col-sm nota-pedido border border-left-0 border-white align-middle"> |
8 | <h5 class="mb-0">{{$ctrl.titulo}}</h5> | 8 | <h5 class="mb-0">{{$ctrl.titulo}}</h5> |
9 | </div> | 9 | </div> |
10 | <div class="col-12 col-sm numero-pedido text-center text-md-left border border-white align-middle" | 10 | <div class="col-12 col-sm numero-pedido text-center text-md-left border border-white align-middle" |
11 | ng-if="$ctrl.numero">Nº {{$ctrl.numero}} | 11 | ng-if="$ctrl.numero">Nº {{$ctrl.numero}} |
12 | <button | 12 | <button |
13 | class="btn btn-xs btn-outline-light float-right" | 13 | class="btn btn-xs btn-outline-light float-right" |
14 | type="button" | 14 | type="button" |
15 | ng-click="$ctrl.busqueda()" | 15 | ng-click="$ctrl.busqueda()" |
16 | ng-if="$ctrl.busqueda" | 16 | ng-if="$ctrl.busqueda" |
17 | title="Buscar" | 17 | title="Buscar" |
18 | > | 18 | > |
19 | <i class="fa fa-search"></i> | 19 | <i class="fa fa-search"></i> |
20 | </button> | 20 | </button> |
21 | </div> | 21 | </div> |
22 | <div class="col-7 col-sm border border-white align-middle"> | 22 | <div class="col-7 col-sm border border-white align-middle"> |
23 | Fecha: | 23 | Fecha: |
24 | <span | 24 | <span |
25 | ng-show="!datepickerAbierto" | 25 | ng-show="!datepickerAbierto" |
26 | ng-bind="$ctrl.fecha | date:'dd/MM/yyyy'" | 26 | ng-bind="$ctrl.fecha | date:'dd/MM/yyyy'" |
27 | ng-click="datepickerAbierto = true" | 27 | ng-click="datepickerAbierto = true" |
28 | > | 28 | > |
29 | </span> | 29 | </span> |
30 | <input | 30 | <input |
31 | ng-show="datepickerAbierto" | 31 | ng-show="datepickerAbierto" |
32 | type="text" | 32 | type="text" |
33 | ng-model="$ctrl.fecha" | 33 | ng-model="$ctrl.fecha" |
34 | ng-change="datepickerAbierto = false" | 34 | ng-change="datepickerAbierto = false" |
35 | ng-blur="datepickerAbierto = false" | 35 | ng-blur="datepickerAbierto = false" |
36 | class="form-control form-control-sm col-8 float-right" | 36 | class="form-control form-control-sm col-8 float-right" |
37 | foca-focus="datepickerAbierto" | 37 | foca-focus="datepickerAbierto" |
38 | uib-datepicker-popup="dd/MM/yyyy" | 38 | uib-datepicker-popup="dd/MM/yyyy" |
39 | show-button-bar="false" | 39 | show-button-bar="false" |
40 | is-open="datepickerOpen" | 40 | is-open="datepickerOpen" |
41 | on-open-focus="false" | 41 | on-open-focus="false" |
42 | ng-focus="datepickerOpen = true" | 42 | ng-focus="datepickerOpen = true" |
43 | /> | 43 | /> |
44 | <button | 44 | <button |
45 | class="btn btn-xs btn-outline-light" | 45 | class="btn btn-xs btn-outline-light" |
46 | ng-click="datepickerAbierto = true" | 46 | ng-click="datepickerAbierto = true" |
47 | > | 47 | > |
48 | <i class="fa fa-calendar"></i> | 48 | <i class="fa fa-calendar"></i> |
49 | </button> | 49 | </button> |
50 | </div> | 50 | </div> |
51 | <div class="col-5 col-sm border border-white border-right-0 align-middle"> | 51 | <div class="col-5 col-sm border border-white border-right-0 align-middle"> |
52 | Hora: | 52 | Hora: |
53 | <span | 53 | <span |
54 | ng-show="!datepickerAbierto" | 54 | ng-show="!datepickerAbierto" |
55 | ng-bind="$ctrl.fecha | date:'HH:mm'" | 55 | ng-bind="$ctrl.fecha | date:'HH:mm'" |
56 | ng-click="datepickerAbierto = true" | 56 | ng-click="datepickerAbierto = true" |
57 | > | ||
57 | > | 58 | </span> |
58 | </span> | 59 | </div> |
59 | </div> | 60 | </div> |
60 | </div> | ||
61 | <div class="row py-2"> | ||
62 | <div class="col-auto" ng-repeat="cab in cabecera" ng-show="showCabecera"> | ||
63 | <span class="label" ng-bind="cab.label"></span> | ||
64 | <span class="valor" ng-bind="cab.valor"></span> | ||
65 | </div> | ||
66 | <a | ||
67 | class="btn col-12 btn-secondary d-sm-none" | ||
68 | ng-show="cabecera.length > 0" | ||
69 | ng-click="showCabecera = !showCabecera" | ||
70 | > | ||
71 | <i | ||
72 | class="fa fa-chevron-down" | ||
73 | ng-hide="showCabecera" | ||
74 | aria-hidden="true" | ||
75 | > | ||
76 | </i> | ||
77 | <i | 61 | <div class="row py-2" ng-repeat="seccion in cabeceras" ng-show="showCabecera"> |
62 | <strong ng-bind="seccion.seccion"></strong> | ||
63 | <div class="col-auto" ng-repeat="cab in seccion.cabeceras" ng-show="showCabecera"> | ||
64 | <span class="label" ng-bind="cab.label"></span> | ||
65 | <span class="valor" ng-bind="cab.valor"></span> | ||
66 | </div> | ||
67 | </div> | ||
68 | <a | ||
69 | class="btn col-12 btn-secondary" | ||
70 | ng-show="cabeceras.length > 1" | ||
71 | ng-click="showCabecera = !showCabecera" | ||
72 | > | ||
73 | <i |