/** * Creates a 1095 record based on a MDW or Kickout record * * @param mdwSubscriber * @param wasKickout - Set to true if record came from Kickout table, false if record came from * MDW table * @param kickoutId - Only used to audit kickout records */ public void create1095Record(MecMdw mdwSubscriber, boolean wasKickout, long kickoutId) { long mec_doc_id = mecDocMapper.getMecDocMainSeq(); // mec_doc_id= mec_doc_id + 1;//TODO REMOVE THE 20310 once table is deleted. // logger.debug(seq ); // Main MecDocMain main = new MecDocMain(); main.setMec_doc_id(mec_doc_id); main.setFk_mdw_id(mdwSubscriber.getMdw_id()); generateAndInsertMecDocMain(main); ; // Sub Subscriber newSubscriber = new Subscriber(); String familyId = mdwSubscriber.getFamily_id_num(); String regionCd = mdwSubscriber.getRgn_cd(); newSubscriber.setFk_mec_doc_id(mec_doc_id); generateAndInsertMecDocSub(mdwSubscriber, newSubscriber); // dependent if (wasKickout) { // Set kickout fl for subscriber kickoutMapper.setKickoutFlag(kickoutId, MecConstants.C_FLAG); List<Kickout> kickouts = kickoutMapper.getDependentsForFamily(familyId, regionCd); for (Kickout kickout : kickouts) { generateAndInsertMecDocCovInd(mec_doc_id, new MecMdw(kickout)); kickoutMapper.setKickoutFlag(kickout.getKickout_id(), MecConstants.C_FLAG); } auditSubscriberRecord(newSubscriber, kickoutId); } else { List<MecMdw> dependents = mdwMapper.getDependentsForFamily(familyId, regionCd); for (MecMdw mdwDependent : dependents) { generateAndInsertMecDocCovInd(mec_doc_id, mdwDependent); } auditSubscriberRecord(newSubscriber); } // logger.debug("dependent size="+dependents.size()); // Audit tbl [mec doc id + mdw id] // logger.debug("main.getMec_doc_id()=="+main.getMec_doc_id()); }