def gen_jifs(self):
        jtype = []
        acct = []
        jname = []
        bstr = "\n"

        out_jif = folder_construct(self.template_name)[0]

        self.current_jobid = self.id_to_int()

        for i in self.job_type.split(','):
            jtype.append(i.strip())
        for i in self.account.split(','):
            acct.append(i.strip())
        for i in self.job_name.split(','):
            jname.append(i.strip())

        for i in range(0, self.num_jifs):
            jif_strings = []
            sheet_list = []
            jif_strings.append("""<?xml version="1.0" encoding="UTF-8"?>\n <JobTicket>\n <Version>2.2</Version>""")
            jif_strings.append(" <JobID>{jobid}</JobID>".format(jobid=self.id_to_str(self.current_jobid)))
            jif_strings.append(" <JobType>{jobtype}</JobType>".format(jobtype=choice(jtype)))
            jif_strings.append(" <JobName>{jobname}</JobName>".format(jobname=choice(jname)))
            jif_strings.append(" <AccountID>{accountid}</AccountID>".format(accountid=choice(acct)))
            jif_strings.append(" <StartSequence>000001</StartSequence>")
            jif_strings.append(" <EndSequence>{lastnumber}</EndSequence>".format(lastnumber=str(self.num_pieces)
                                                                                 .zfill(6)))
            jif_strings.append(" <PieceCount>{piececount}</PieceCount>".format(piececount=str(self.num_pieces)))
            jif_strings.append(" <CreationDate>{creation}</CreationDate>".format(creation=self.creation))
            jif_strings.append(" <JobDeadLine>{deadline}</JobDeadLine>".format(deadline=self.deadline))
            jif_strings.append(" <PrintMode>1</PrintMode>\n <PageComposition>2</PageComposition>")
            jif_strings.append(" <ProcessingPhases>{pphase}</ProcessingPhases>".format(pphase=self.proc_phase))
            jif_strings.append(" <EndProcess>{endproc}</EndProcess>".format(endproc=self.end_phase))
            jif_strings.append(" <ProductionLocation>{prodloc}</ProductionLocation>".format(prodloc=self.prod_loc))
            if self.piece_level == 1:
                jif_strings.append("  <JobManifest>")
                for t in range(1, (int(self.num_pieces)) + 1):
                    result = self.piece_builder(t)
                    jif_strings.append(result[0])
                    sheet_list.append(result[1])
                jif_strings.append("  </JobManifest>")
            jif_strings.append(" </JobTicket>\n")
            jstr = bstr.join(jif_strings)
            filename = path.join(out_jif, self.id_to_str(self.current_jobid) + ".jif")
            with open(filename, 'w') as fp:
                fp.write(jstr)
            fp.close()
            if self.feed_data is 1:
                self.gen_feed_data(sheet_list)
            if self.exit_data is 1:
                self.gen_exit_data()
            self.current_jobid += 1
    def gen_exit_data(self):
        out_str = "\n"
        out_path = folder_construct(self.template_name)[2]
        piece_strings = []
        job_string = str(self.current_jobid).zfill((len(self.job_id)))

        for i in range(1, self.num_pieces + 1):
            piece_strings.append("{jobid}{pieceid}".format(jobid=job_string, pieceid=str(i).zfill(6)))

        filename = path.join(out_path, "exit_" + job_string + ".txt")
        with open(filename, 'w') as fp:
            fp.write(out_str.join(piece_strings))
        fp.close()
    def gen_feed_data(self, num_sheets=None):
        out_str = "\n"
        out_path = folder_construct(self.template_name)[1]
        sheet_strings = []
        job_string = str(self.current_jobid).zfill(len(self.job_id))

        for i in range(1, self.num_pieces + 1):
            for t in range(1, num_sheets[i - 1] + 1):
                sheet_strings.append("{jobid}{pieceid}{cur_sheet}{total_sheet}".format(jobid=job_string,
                                                                                       pieceid=str(i).zfill(6),
                                                                                       cur_sheet=str(t).zfill(2),
                                                                                       total_sheet=str
                                                                                       (num_sheets[i - 1]).zfill(2)))
        filename = path.join(out_path, "feed_" + job_string + ".txt")
        with open(filename, 'w') as fp:
            fp.write(out_str.join(sheet_strings))
        fp.close()