Commit dea65007578190e52b38266998b4381a149aa42c

Authored by Eric Fernandez
Exists in master

Merge branch 'master' into 'develop'

Master(efernandez)

See merge request !6
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