@@ -22,6 +22,19 @@ import { MatCard, MatCardHeader, MatCardTitle, MatCardSubtitle, MatCardContent,
2222import { TeamsReportsDetailComponent } from './teams-reports-detail.component' ;
2323import { MatIcon } from '@angular/material/icon' ;
2424
25+ interface NewReportForm {
26+ _id ?: string ,
27+ _rev ?: string ,
28+ beginningBalance : string ,
29+ description : string ,
30+ endDate : Date ,
31+ otherExpenses : number ,
32+ otherIncome : number ,
33+ sales : number ,
34+ startDate : Date ,
35+ wages : string
36+ }
37+
2538@Component ( {
2639 selector : 'planet-teams-reports' ,
2740 styleUrls : [ './teams-reports.scss' ] ,
@@ -153,18 +166,23 @@ export class TeamsReportsComponent implements DoCheck {
153166 ( ) => { } ;
154167 }
155168
156- updateReport ( oldReport , newReport : any = { } ) {
169+ updateReport ( oldReport , newReport : NewReportForm | { } = { } ) {
157170 const dateFields = [ 'startDate' , 'endDate' ] ;
158171 const numberFields = [ 'beginningBalance' , 'sales' , 'otherIncome' , 'wages' , 'otherExpenses' ] ;
159- const transformFields = ( key : string , value : Date | string ) => dateFields . indexOf ( key ) > - 1 ?
160- ( < Date > value ) . getTime ( ) :
172+ const transformFields = ( key : string , value : string | Date | number ) => dateFields . indexOf ( key ) > - 1 ?
173+ ( value as Date ) . getTime ( ) :
161174 numberFields . indexOf ( key ) > - 1 ?
162175 + value :
163176 value ;
164- const { _id, _rev, ...newDoc } = < any > Object . entries ( newReport ) . reduce (
165- ( obj , [ key , value ] : [ string , Date | string ] ) => ( { ...obj , [ key ] : transformFields ( key , value ) } ) ,
177+ const { _id, _rev, ...newDoc } = Object . entries ( newReport ) . reduce (
178+ ( obj , [ key , value ] : [ string , string | Date | number ] ) => {
179+ return {
180+ ...obj ,
181+ [ key ] : transformFields ( key , value )
182+ } ;
183+ } ,
166184 { }
167- ) ;
185+ ) as any ;
168186 const docs = [ { ...oldReport , status : 'archived' } , newDoc ] . filter ( doc => doc . startDate !== undefined ) ;
169187 return this . teamsService . updateAdditionalDocs ( docs , this . team , 'report' , { utcKeys : dateFields } ) . pipe ( tap ( ( ) => {
170188 this . reportsChanged . emit ( ) ;
0 commit comments