NotesWhat is notes.io?

Notes brand slogan

Notes - notes.io

/*
* Copyright 2006-2021 Highradius Coorporation
*/
package com.highradius.g4.service.redline.manager;

import static com.highradius.g4.service.redline.config.REDLINEDB.REDLINE_TXN;

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import com.highradius.g4.core.common.G4Log;
import com.highradius.g4.core.common.G4LogManager;
import com.highradius.g4.redline.dto.FiscalCalendarDTO;
import com.highradius.g4.redline.dto.FiscalCalendarYearDTO;
import com.highradius.g4.redline.entity.FiscalCalendar;
import com.highradius.g4.redline.entity.FiscalCalendarYear;
import com.highradius.g4.redline.entity.MapClosingUnitFiscalCalendar;
import com.highradius.g4.service.redline.dao.FiscalCalendarDAO;
import com.highradius.g4.service.redline.dao.FiscalCalendarYearDAO;
import com.highradius.g4.service.redline.dao.MapClosingUnitFiscalCalendarDAO;

/**
* The Class FiscalCalendarManager.
*
* @author sourav.m.
*/
@Component
public class FiscalCalendarManager {

/** The Constant LOGGER. */
private static final G4Log LOGGER = G4LogManager.getLog(FiscalCalendarManager.class);

/** The fiscal calendar DAO. */
@Autowired
private FiscalCalendarDAO fiscalCalendarDAO;

/** The fiscal calendar year DAO. */
@Autowired
private FiscalCalendarYearDAO fiscalCalendarYearDAO;

/** The map closing unit fiscal calendar DAO. */
@Autowired
private MapClosingUnitFiscalCalendarDAO mapClosingUnitFiscalCalendarDAO;

/** The mapped closing unit. */
private static List<Long> mappedClosingUnit = new ArrayList<Long>();

/**
* Gets the fiscal calendars.
*
* @param limit the limit
* @param offset the offset
* @param accountId the account id
* @return the fiscal calendars
*/
@Transactional(REDLINE_TXN)
public List<FiscalCalendar> getFiscalCalendars(Integer limit, Integer offset, Integer accountId) {
LOGGER.debug("Getting all FiscalCalendars");
return fiscalCalendarDAO.getFiscalCalendars(limit, offset, accountId);
}

/**
* Gets the fiscal calendar.
*
* @param fiscalCalendarId the fiscal calendar id
* @param accountId the account id
* @return the fiscal calendar
*/
@Transactional(REDLINE_TXN)
public FiscalCalendar getFiscalCalendar(Long fiscalCalendarId, Integer accountId) {
LOGGER.debug("Getting FiscalCalendar from id");
return fiscalCalendarDAO.getFiscalCalendar(fiscalCalendarId, accountId);

}

/**
* Gets the mapped closing unit id.
*
* @param holidayCalendarId the holiday calendar id
* @return the mapped closing unit id
*/
@Transactional(REDLINE_TXN)
public List<MapClosingUnitFiscalCalendar> getMappedClosingUnitId(Long holidayCalendarId) {
return fiscalCalendarDAO.getClosingUnitIds(holidayCalendarId);
}

/**
* Save fiscal calendar.
*
* @param userName the user name
* @param accountId the account id
* @param fiscalCalendarDTO the fiscal calendar DTO
* @return the fiscal calendar DTO
*/
@Transactional(REDLINE_TXN)
public FiscalCalendarDTO saveFiscalCalendar(String userName, Integer accountId,
FiscalCalendarDTO fiscalCalendarDTO) {
LOGGER.debug("Saving FiscalCalendar");
Timestamp createTime = new Timestamp(System.currentTimeMillis());
FiscalCalendar fiscalCalendar = new FiscalCalendar();
BeanUtils.copyProperties(fiscalCalendarDTO, fiscalCalendar);
fiscalCalendar.setCreateUser(userName);
fiscalCalendar.setUpdateUser(userName);
fiscalCalendar.setCreateDate(createTime);
fiscalCalendar.setUpdateDate(createTime);
fiscalCalendar.setFkAccountId(accountId);
fiscalCalendar.setIsDefault(fiscalCalendarDTO.getIsDefault());
fiscalCalendar.setIsCurrentYear(fiscalCalendarDTO.getIsCurrentYear());
FiscalCalendar savedFiscalCalendar = fiscalCalendarDAO.saveFiscalCalendar(fiscalCalendar, userName, accountId);
FiscalCalendarYear fiscalCalendarYear = new FiscalCalendarYear();
fiscalCalendarYear.setFkAccountId(accountId);
fiscalCalendarYear.setCreateDate(createTime);
fiscalCalendarYear.setCreateUser(userName);
fiscalCalendarYear.setUpdateDate(createTime);
fiscalCalendarYear.setUpdateUser(userName);
fiscalCalendarYear.setFkFiscalCalendarId(savedFiscalCalendar);
fiscalCalendarYear.setYearStartDate(fiscalCalendarDTO.getYearStartDate());
fiscalCalendarYear.setYearEndDate(fiscalCalendarDTO.getYearEndDate());
fiscalCalendarYear.setQuarterOneEndDate(fiscalCalendarDTO.getQuarterOneEndDate());
fiscalCalendarYear.setQuarterTwoEndDate(fiscalCalendarDTO.getQuarterTwoEndDate());
fiscalCalendarYear.setQuarterThreeEndDate(fiscalCalendarDTO.getQuarterThreeEndDate());
fiscalCalendarYear.setQuarterFourEndDate(fiscalCalendarDTO.getQuarterFourEndDate());
fiscalCalendarYear.setHalfYearEndDate(fiscalCalendarYear.getHalfYearEndDate());
fiscalCalendarDAO.saveFiscalCalendarYear(fiscalCalendarYear);
BeanUtils.copyProperties(savedFiscalCalendar, fiscalCalendarDTO);
if (savedFiscalCalendar.getIsDefault() == true) {
mappedClosingUnit = fiscalCalendarDAO.getAlreadyMappedClosingUnitId();
if (mappedClosingUnit != null) {
fiscalCalendarDTO.setStatus("already mapped");

} else {
fiscalCalendarDTO.setClosingUnitIds(fiscalCalendarDAO.getWithOutMapped());
}
List<Long> withOutMapped = fiscalCalendarDAO.getWithOutMapped();
for (int i = 0; i < withOutMapped.size(); i++) {
if (!mappedClosingUnit.contains(withOutMapped.get(i))) {
mappedClosingUnit.add(withOutMapped.get(i));
}
}
}
if (fiscalCalendarDTO.getClosingUnitIds() != null) {
for (int i = 0; i < fiscalCalendarDTO.getClosingUnitIds().size(); i++) {
MapClosingUnitFiscalCalendar mapClosingUnitFiscalCalendar = new MapClosingUnitFiscalCalendar();
MapClosingUnitFiscalCalendar fiscalCalendardefaultMap = fiscalCalendarDAO
.fetchAlreadyMapped(fiscalCalendarDTO.getClosingUnitIds().get(i));

if (fiscalCalendardefaultMap.getFkClosingUnitId() != null) {
fiscalCalendarDTO.setStatus("already mapped");
mappedClosingUnit.add(fiscalCalendarDTO.getClosingUnitIds().get(i));

} else {
mapClosingUnitFiscalCalendar.setFkClosingUnitId(
fiscalCalendarDAO.getClosingUnit(fiscalCalendarDTO.getClosingUnitIds().get(i)));
mapClosingUnitFiscalCalendar.setFkFiscalCalendarId(savedFiscalCalendar);
mapClosingUnitFiscalCalendar.setCreateUser(userName);
mapClosingUnitFiscalCalendar.setUpdateUser(userName);
mapClosingUnitFiscalCalendar.setUpdateDate(createTime);
mapClosingUnitFiscalCalendar.setCreateDate(createTime);
mapClosingUnitFiscalCalendar.setFkAccountId(accountId);
fiscalCalendarDAO.saveMapClosingUnitFiscalCalendar(mapClosingUnitFiscalCalendar);
}

}
}
return fiscalCalendarDTO;
}

/**
* Update fiscal calendar.
*
* @param userName the user name
* @param accountId the account id
* @param fiscalCalendarDTO the fiscal calendar DTO
* @return the fiscal calendar DTO
*/
@Transactional(REDLINE_TXN)
public FiscalCalendarDTO updateFiscalCalendar(String userName, Integer accountId,
FiscalCalendarDTO fiscalCalendarDTO) {
LOGGER.debug("Updating FiscalCalendar from id");
Timestamp updateTime = new Timestamp(System.currentTimeMillis());
FiscalCalendarYearDTO fiscalCalendarYearDTO = new FiscalCalendarYearDTO();
FiscalCalendar fiscalCalendar = fiscalCalendarDAO.findFiscalCalendar(fiscalCalendarDTO.getPkFiscalCalendar());
FiscalCalendarYear fiscalCalendarYear = fiscalCalendarYearDAO
.findFiscalCalendarYear(fiscalCalendarDTO.getPkFiscalCalendar());
BeanUtils.copyProperties(fiscalCalendarDTO, fiscalCalendar);
fiscalCalendar.setFkAccountId(accountId);
fiscalCalendar.setUpdateDate(updateTime);
fiscalCalendar.setUpdateUser(userName);
fiscalCalendar.setCreateDate(updateTime);
fiscalCalendar.setUpdateDate(updateTime);
fiscalCalendar.setIsDefault(fiscalCalendarDTO.getIsDefault());
fiscalCalendar.setIsCurrentYear(fiscalCalendarDTO.getIsCurrentYear());
fiscalCalendarYear.setFkAccountId(accountId);
fiscalCalendarYear.setUpdateDate(updateTime);
fiscalCalendarYear.setUpdateUser(userName);
fiscalCalendarYear.setCreateUser(userName);
fiscalCalendarYear.setCreateDate(updateTime);
fiscalCalendarYear.setYearEndDate(fiscalCalendarDTO.getYearEndDate());
fiscalCalendarYear.setQuarterOneEndDate(fiscalCalendarDTO.getQuarterOneEndDate());
fiscalCalendarYear.setQuarterTwoEndDate(fiscalCalendarDTO.getQuarterTwoEndDate());
fiscalCalendarYear.setQuarterThreeEndDate(fiscalCalendarDTO.getQuarterThreeEndDate());
fiscalCalendarYear.setQuarterFourEndDate(fiscalCalendarDTO.getQuarterFourEndDate());
FiscalCalendar updatedFiscalCalendar = fiscalCalendarDAO.updateFiscalCalendar(fiscalCalendar);
fiscalCalendarYearDAO.updateFiscalCalendarYear(fiscalCalendarYear);

if (fiscalCalendarDTO.getClosingUnitIds() != null) {
for (int i = 0; i < fiscalCalendarDTO.getClosingUnitIds().size(); i++) {
if (fiscalCalendarDTO.getClosingUnitIds() != null) {

MapClosingUnitFiscalCalendar fetchClosingUnits = fiscalCalendarDAO
.fetchAlreadyMapped(fiscalCalendarDTO.getClosingUnitIds().get(i));
if (fetchClosingUnits.getFkClosingUnitId() != null) {
mappedClosingUnit.add(fiscalCalendarDTO.getClosingUnitIds().get(i));
fiscalCalendarDTO.setStatus("already mapped");
}
}

}
return fiscalCalendarDTO;
}
if (fiscalCalendarDTO.getIsDefault() == true && mappedClosingUnit.size() == 0) {
mappedClosingUnit = fiscalCalendarDAO.getAlreadyMappedClosingUnitId();
if (mappedClosingUnit != null) {
fiscalCalendarDTO.setStatus("already mapped");
} else {
fiscalCalendarDTO.setClosingUnitIds(fiscalCalendarDAO.getWithOutMapped());
}
List<Long> withOutMapped = fiscalCalendarDAO.getWithOutMapped();
for (int i = 0; i < withOutMapped.size(); i++) {
if (!mappedClosingUnit.contains(withOutMapped.get(i))) {
mappedClosingUnit.add(withOutMapped.get(i));
}
}
return fiscalCalendarDTO;
}
if (fiscalCalendarDTO.getConfirmation() != null && fiscalCalendarDTO.getConfirmation().equals("yes")) {
fiscalCalendarDTO.setStatus("");
for (int i = 0; i < mappedClosingUnit.size(); i++) {
MapClosingUnitFiscalCalendar fetchClosingUnits = fiscalCalendarDAO
.fetchAlreadyMapped(mappedClosingUnit.get(i));
if (fetchClosingUnits.getFkClosingUnitId() == null) {
fetchClosingUnits.setFkAccountId(accountId);
fetchClosingUnits.setFkClosingUnitId(fiscalCalendarDAO.getClosingUnit(mappedClosingUnit.get(i)));
}
fetchClosingUnits.setFkFiscalCalendarId(updatedFiscalCalendar);
mapClosingUnitFiscalCalendarDAO.saveMapClosingUnitFiscalCalendar(fetchClosingUnits);
}
}
if (fiscalCalendarDTO.getClosingUnitIds() != null) {
for (int i = 0; i < fiscalCalendarDTO.getClosingUnitIds().size(); i++) {
MapClosingUnitFiscalCalendar mapClosingUnits = mapClosingUnitFiscalCalendarDAO
.getMapClosingUnitFiscalCalendar(fiscalCalendarDTO.getPkFiscalCalendar(),
fiscalCalendarDTO.getClosingUnitIds().get(i));
if (mapClosingUnits.getFkAccountId() == null) {
mapClosingUnits.setFkClosingUnitId(
fiscalCalendarDAO.getClosingUnit(fiscalCalendarDTO.getClosingUnitIds().get(i)));
mapClosingUnits.setFkAccountId(accountId);
mapClosingUnits.setFkFiscalCalendarId(updatedFiscalCalendar);
mapClosingUnits.setCreateDate(updateTime);
mapClosingUnits.setCreateUser(userName);
mapClosingUnits.setUpdateDate(updateTime);
mapClosingUnits.setUpdateUser(userName);
} else {
mapClosingUnits.setDeleted(false);
}
mapClosingUnitFiscalCalendarDAO.saveMapClosingUnitFiscalCalendar(mapClosingUnits);

}
}
mappedClosingUnit = new ArrayList<Long>();
BeanUtils.copyProperties(updatedFiscalCalendar, fiscalCalendarDTO);
try {
return fiscalCalendarDTO;
} catch (Exception e) {
e.printStackTrace();
return new FiscalCalendarDTO();
}
}

/**
* Gets the map closing unit fiscal calendars.
*
* @param fiscalCalendarIds the fiscal calendar ids
* @param accountId the account id
* @return the map closing unit fiscal calendars
*/
@Transactional(REDLINE_TXN)
public List<MapClosingUnitFiscalCalendar> getMapClosingUnitFiscalCalendars(List<Long> fiscalCalendarIds,
Integer accountId) {
return fiscalCalendarDAO.getMapClosingUnitFiscalCalendars(fiscalCalendarIds, accountId);
}

/**
* Gets the fiscal calendar year.
*
* @param fiscalCalendarId the fiscal calendar id
* @param accountId the account id
* @return the fiscal calendar year
*/
@Transactional(REDLINE_TXN)
public FiscalCalendarYear getFiscalCalendarYear(Long fiscalCalendarId, Integer accountId) {
try {
return fiscalCalendarDAO.getFiscalCalendarYear(fiscalCalendarId, accountId);
} catch (Exception e) {
return new FiscalCalendarYear();
}

}
}
     
 
what is notes.io
 

Notes.io is a web-based application for taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000 notes created and continuing...

With notes.io;

  • * You can take a note from anywhere and any device with internet connection.
  • * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
  • * You can quickly share your contents without website, blog and e-mail.
  • * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
  • * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.

Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.

Easy: Notes.io doesn’t require installation. Just write and share note!

Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )

Free: Notes.io works for 12 years and has been free since the day it was started.


You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;


Email: [email protected]

Twitter: http://twitter.com/notesio

Instagram: http://instagram.com/notes.io

Facebook: http://facebook.com/notesio



Regards;
Notes.io Team

     
 
Shortened Note Link
 
 
Looding Image
 
     
 
Long File
 
 

For written notes was greater than 18KB Unable to shorten.

To be smaller than 18KB, please organize your notes, or sign in.