@@ -567,10 +567,12 @@ export class MaventaPayslipReceiverServiceClient {
567567 }
568568
569569 async submitPayslips (
570- /** Filename including file extension */
571- fileName : string ,
572- /** Payslip XML file as buffer - Payslips XML element can contain multiple payslip elements */
573- file : Buffer ,
570+ /** Array of payslip XML files
571+ * @filename property including file extension
572+ * @fileBuffer only one XML payslip per file */
573+ files : { fileName : string ; fileBuffer : Buffer } [ ] ,
574+ /** Used for logging purposes in Maventa */
575+ batchName : string ,
574576 /** Payslip file version */
575577 version : '1.1' | '2.0'
576578 ) : Promise < IPayslipBatchId > {
@@ -579,14 +581,19 @@ export class MaventaPayslipReceiverServiceClient {
579581
580582 /** SubmitPayslips */
581583 soapClient . addSoapHeader ( { 'tns:PayslipVersion' : version } ) ;
582- soapClient . addSoapHeader ( { 'tns:OriginalFileName' : fileName } ) ;
584+ soapClient . addSoapHeader ( { 'tns:OriginalFileName' : batchName } ) ;
583585 soapClient . addSoapHeader ( { 'tns:Convert' : version === '1.1' } ) ;
584586
585587 // Initialize JSZip
586588 const zip = new JSZip ( ) ;
587589
588- // Add payslip XML file to ZIP file
589- zip . file ( fileName , file ) ;
590+ for ( const file of files ) {
591+ // Parse folder name from file name
592+ const folderName = file . fileName . split ( '.' ) [ 0 ] ;
593+
594+ // Add payslip XML file to subfolder in ZIP file
595+ zip . file ( `${ folderName } /${ file . fileName } ` , file . fileBuffer ) ;
596+ }
590597
591598 // Generate ZIP file
592599 const zipBuffer = await zip . generateAsync ( { type : 'nodebuffer' } ) ;
0 commit comments