/**  1  la funcion Injectable permite que un servicio sea usado por otro componente */ import { Injectable } from '@angular/core' ; /** 2 uso la función para crear un decorador de la calse del servicio*/ @ Injectable ( ) export class MovimientosService { categoriasIngreso : string [ ] = [ 'Nómina' , 'Venta' , 'Interés' , 'Impuesto' ] ; categoriasGasto : string [ ] = [ 'Hipoteca' , 'Compra' , 'Interés' , 'Impuesto' ] ; movimientos : MovimientoModel [ ] = [ ] ; ingresos : number = 0 ; gastos : number = 0 ; balance : number = 0 ; constructor ( ) { } guardarMovimiento ( movimiento ) { if ( movimiento . tipo === 'Ingreso' ) this . ingresos += movimiento . importe ; else this . gastos += movimiento . importe ; this . balance = this . ingresos - this . gastos ; this . movimientos . push ( Object . assign ( { } , movimiento ) ) ; } ordenarPor ( campo , sentidoOrden ) { this . movimientos . sort ( ( a , b ) => a [ campo ] < b [ campo ] ? sentidoOrden : - 1 * sentidoOrden ) ; } } @ Injectable ( ) export class MovimientoModel { _id : string ; tipo : string ; categoria : string ; fecha : Date ; importe : number ; }