Search in sources :

Example 16 with Period

use of com.axelor.apps.base.db.Period in project axelor-open-suite by axelor.

the class YearServiceAccountImpl method closeYearProcess.

/**
 * Procédure permettant de cloturer un exercice comptable
 *
 * @param year Un exercice comptable
 * @throws AxelorException
 */
public void closeYearProcess(Year year) throws AxelorException {
    year = yearRepository.find(year.getId());
    for (Period period : year.getPeriodList()) {
        if (period.getStatusSelect() == PeriodRepository.STATUS_ADJUSTING) {
            adjustHistoryService.setEndDate(period);
        }
        period.setStatusSelect(PeriodRepository.STATUS_CLOSED);
        period.setClosureDateTime(LocalDateTime.now());
    }
    Company company = year.getCompany();
    if (company == null) {
        throw new AxelorException(year, TraceBackRepository.CATEGORY_CONFIGURATION_ERROR, I18n.get(IExceptionMessage.YEAR_1), I18n.get(com.axelor.apps.base.exceptions.IExceptionMessage.EXCEPTION), year.getName());
    }
    Query q;
    if (year.getStatusSelect() == YearRepository.STATUS_ADJUSTING) {
        AdjustHistory adjustHistory = adjustHistoryService.setEndDate(year);
        q = JPA.em().createQuery("select DISTINCT(self.partner) FROM MoveLine as self WHERE self.move.ignoreInAccountingOk = false AND self.move.period.year = ?1 " + "AND self.move.statusSelect = ?2 AND self.move.adjustingMove = true AND self.date >= ?3 AND self.date <= ?4 AND self.move.company = ?5");
        q.setParameter(1, year);
        q.setParameter(2, MoveRepository.STATUS_VALIDATED);
        q.setParameter(3, adjustHistory.getStartDate().toLocalDate());
        q.setParameter(4, adjustHistory.getEndDate().toLocalDate());
    } else {
        q = JPA.em().createQuery("select DISTINCT(self.partner) FROM MoveLine as self WHERE self.move.ignoreInAccountingOk = false AND self.move.period.year = ?1 " + "AND self.move.statusSelect = ?2 AND self.date >= ?3 AND self.date <= ?4 AND self.move.company = ?5");
        q.setParameter(1, year);
        q.setParameter(2, MoveRepository.STATUS_VALIDATED);
        q.setParameter(3, year.getFromDate());
        q.setParameter(4, year.getToDate());
    }
    q.setParameter(5, year.getCompany());
    @SuppressWarnings("unchecked") List<Partner> partnerList = q.getResultList();
    List<? extends Partner> partnerListAll = partnerRepository.all().fetch();
    log.debug("Nombre total de tiers : {}", partnerListAll.size());
    log.debug("Nombre de tiers récupéré : {}", partnerList.size());
    for (Partner partner : partnerList) {
        partner = partnerRepository.find(partner.getId());
        year = yearRepository.find(year.getId());
        log.debug("Tiers en cours de traitement : {}", partner.getName());
        for (AccountingSituation accountingSituation : partner.getAccountingSituationList()) {
            if (accountingSituation.getCompany().equals(year.getCompany())) {
                log.debug("On ajoute une ligne à la Situation comptable trouvée");
                BigDecimal reportedBalanceAmount = this.computeReportedBalance(year.getFromDate(), year.getToDate(), partner, year);
                this.createReportedBalanceLine(accountingSituation, reportedBalanceAmount, year);
                break;
            }
        }
        JPA.clear();
    }
    year = yearRepository.find(year.getId());
    closeYear(year);
}
Also used : AxelorException(com.axelor.exception.AxelorException) Company(com.axelor.apps.base.db.Company) Query(javax.persistence.Query) AccountingSituation(com.axelor.apps.account.db.AccountingSituation) Period(com.axelor.apps.base.db.Period) Partner(com.axelor.apps.base.db.Partner) BigDecimal(java.math.BigDecimal) AdjustHistory(com.axelor.apps.base.db.AdjustHistory)

Example 17 with Period

use of com.axelor.apps.base.db.Period in project axelor-open-suite by axelor.

the class SopServiceImpl method generateSOPLines.

@Override
public void generateSOPLines(Sop sop) throws AxelorException {
    today = appBaseService.getTodayDate(sop.getCompany());
    List<Period> yearPeriods = periodRepo.all().filter("self.year = :year AND self.statusSelect = :status").bind("year", sop.getYear()).bind("status", PeriodRepository.STATUS_OPENED).fetch();
    List<SopLine> sopLineList = new ArrayList<SopLine>();
    for (Period period : yearPeriods) {
        sopLineList.add(this.createSOPLine(sop, period));
    }
    this.linkSOPLines(sop, sopLineList);
    this.updateSOPLines(sop);
}
Also used : SopLine(com.axelor.apps.production.db.SopLine) ArrayList(java.util.ArrayList) Period(com.axelor.apps.base.db.Period)

Aggregations

Period (com.axelor.apps.base.db.Period)17 AxelorException (com.axelor.exception.AxelorException)8 Company (com.axelor.apps.base.db.Company)5 ArrayList (java.util.ArrayList)5 PeriodService (com.axelor.apps.base.service.PeriodService)4 PeriodRepository (com.axelor.apps.base.db.repo.PeriodRepository)3 Transactional (com.google.inject.persist.Transactional)3 AppBaseService (com.axelor.apps.base.service.app.AppBaseService)2 StockMoveLine (com.axelor.apps.stock.db.StockMoveLine)2 IOException (java.io.IOException)2 BigDecimal (java.math.BigDecimal)2 Path (java.nio.file.Path)2 LocalDate (java.time.LocalDate)2 AccountingSituation (com.axelor.apps.account.db.AccountingSituation)1 AnalyticMoveLine (com.axelor.apps.account.db.AnalyticMoveLine)1 Move (com.axelor.apps.account.db.Move)1 MoveLine (com.axelor.apps.account.db.MoveLine)1 AdjustHistory (com.axelor.apps.base.db.AdjustHistory)1 Partner (com.axelor.apps.base.db.Partner)1 Year (com.axelor.apps.base.db.Year)1