Search in sources :

Example 1 with BillBreakDown

use of com.autentia.tnt.businessobject.BillBreakDown in project TNTConcept by autentia.

the class BillManager method getAllBitacoreBreakDowns.

public List<BillBreakDown> getAllBitacoreBreakDowns(Date start, Date end, Project project) {
    final List<BillBreakDown> desgloses = new ArrayList<BillBreakDown>();
    ActivityDAO activityDAO = ActivityDAO.getDefault();
    ActivitySearch actSearch = new ActivitySearch();
    actSearch.setBillable(new Boolean(true));
    actSearch.setStartStartDate(start);
    actSearch.setEndStartDate(end);
    List<Activity> actividadesTotal = new ArrayList<Activity>();
    Hashtable user_roles = new Hashtable();
    ProjectRoleDAO projectRoleDAO = ProjectRoleDAO.getDefault();
    ProjectRoleSearch prjRolSearch = new ProjectRoleSearch();
    prjRolSearch.setProject(project);
    List<ProjectRole> roles = projectRoleDAO.search(prjRolSearch, new SortCriteria("id", false));
    for (ProjectRole proyRole : roles) {
        actSearch.setRole(proyRole);
        List<Activity> actividades = activityDAO.search(actSearch, new SortCriteria("startDate", false));
        actividadesTotal.addAll(actividades);
    }
    for (Activity act : actividadesTotal) {
        String key = act.getRole().getId().toString() + act.getUser().getId().toString();
        if (!user_roles.containsKey(key)) {
            Hashtable value = new Hashtable();
            value.put("ROLE", act.getRole());
            value.put("USER", act.getUser());
            user_roles.put(key, value);
        }
    }
    Enumeration en = user_roles.keys();
    while (en.hasMoreElements()) {
        String key = (String) en.nextElement();
        Hashtable pair = (Hashtable) user_roles.get(key);
        actSearch.setBillable(new Boolean(true));
        actSearch.setStartStartDate(start);
        actSearch.setEndStartDate(end);
        ProjectRole pR = (ProjectRole) pair.get("ROLE");
        User u = (User) pair.get("USER");
        actSearch.setRole(pR);
        actSearch.setUser(u);
        List<Activity> actividadesUsuarioRol = activityDAO.search(actSearch, new SortCriteria("startDate", false));
        BillBreakDown brd = new BillBreakDown();
        brd.setConcept("Imputaciones (usuario - rol): " + u.getName() + " - " + pR.getName());
        brd.setAmount(pR.getCostPerHour());
        IvaApplicator.applyIvaToTaxableObject(start, brd);
        BigDecimal unitsTotal = new BigDecimal(0);
        for (Activity act : actividadesUsuarioRol) {
            BigDecimal unitsActual = new BigDecimal(act.getDuration());
            unitsActual = unitsActual.divide(new BigDecimal(60), 2, RoundingMode.HALF_UP);
            unitsTotal = unitsTotal.add(unitsActual);
        }
        brd.setUnits(unitsTotal);
        brd.setSelected(true);
        desgloses.add(brd);
    }
    ProjectCostDAO prjCostDAO = ProjectCostDAO.getDefault();
    ProjectCostSearch prjCostSearch = new ProjectCostSearch();
    prjCostSearch.setProject(project);
    List<ProjectCost> costes = prjCostDAO.search(prjCostSearch, new SortCriteria("id", false));
    for (ProjectCost proyCost : costes) {
        BillBreakDown brd = new BillBreakDown();
        brd.setConcept("Coste: " + proyCost.getName());
        brd.setUnits(new BigDecimal(1));
        brd.setAmount(proyCost.getCost());
        IvaApplicator.applyIvaToTaxableObject(start, brd);
        brd.setSelected(true);
        desgloses.add(brd);
    }
    return desgloses;
}
Also used : ProjectRoleDAO(com.autentia.tnt.dao.hibernate.ProjectRoleDAO) Enumeration(java.util.Enumeration) User(com.autentia.tnt.businessobject.User) ProjectCostDAO(com.autentia.tnt.dao.hibernate.ProjectCostDAO) Hashtable(java.util.Hashtable) ArrayList(java.util.ArrayList) ProjectCostSearch(com.autentia.tnt.dao.search.ProjectCostSearch) Activity(com.autentia.tnt.businessobject.Activity) ProjectRole(com.autentia.tnt.businessobject.ProjectRole) BigDecimal(java.math.BigDecimal) SortCriteria(com.autentia.tnt.dao.SortCriteria) ProjectRoleSearch(com.autentia.tnt.dao.search.ProjectRoleSearch) ActivitySearch(com.autentia.tnt.dao.search.ActivitySearch) ProjectCost(com.autentia.tnt.businessobject.ProjectCost) BillBreakDown(com.autentia.tnt.businessobject.BillBreakDown) ActivityDAO(com.autentia.tnt.dao.hibernate.ActivityDAO)

Example 2 with BillBreakDown

use of com.autentia.tnt.businessobject.BillBreakDown in project TNTConcept by autentia.

the class BillManager method convertFromOfferToBill.

public Bill convertFromOfferToBill(final Offer offer) {
    final Bill bill = new Bill();
    // simple values
    bill.setContact(offer.getContact());
    bill.setName(offer.getDescription());
    bill.setState(BillState.EMITTED);
    bill.setBillType(BillType.ISSUED);
    // concepts
    final Set<BillBreakDown> billBreakDowns = new LinkedHashSet<BillBreakDown>();
    billBreakDowns.addAll(convertFromOfferCostsToBillBreakDowns(bill, offer.getCosts()));
    billBreakDowns.addAll(convertFromOfferRolesToBillBreakDowns(bill, offer.getRoles()));
    bill.setBreakDown(billBreakDowns);
    return bill;
}
Also used : LinkedHashSet(java.util.LinkedHashSet) Bill(com.autentia.tnt.businessobject.Bill) BillBreakDown(com.autentia.tnt.businessobject.BillBreakDown)

Example 3 with BillBreakDown

use of com.autentia.tnt.businessobject.BillBreakDown in project TNTConcept by autentia.

the class BillManager method convertFromOfferRolesToBillBreakDowns.

private Set<BillBreakDown> convertFromOfferRolesToBillBreakDowns(final Bill bill, final Set<OfferRole> offerRoles) {
    final Set<BillBreakDown> billBreakDowns = new LinkedHashSet<BillBreakDown>();
    if (offerRoles != null) {
        for (OfferRole role : offerRoles) {
            BillBreakDown billBreakDown = new BillBreakDown();
            billBreakDown.setConcept(role.getName());
            billBreakDown.setUnits(new BigDecimal(role.getExpectedHours()));
            billBreakDown.setAmount(role.getCostPerHour());
            billBreakDown.setIva(role.getIva());
            billBreakDown.setBill(bill);
            billBreakDowns.add(billBreakDown);
        }
    }
    return billBreakDowns;
}
Also used : LinkedHashSet(java.util.LinkedHashSet) OfferRole(com.autentia.tnt.businessobject.OfferRole) BillBreakDown(com.autentia.tnt.businessobject.BillBreakDown) BigDecimal(java.math.BigDecimal)

Example 4 with BillBreakDown

use of com.autentia.tnt.businessobject.BillBreakDown in project TNTConcept by autentia.

the class BillBeanTest method createBreakDownInLastDayOf18Test.

@Test
public void createBreakDownInLastDayOf18Test() {
    this.prepareTestsIVA();
    final GregorianCalendar calendar = new GregorianCalendar(2012, 7, 31);
    billBean.setCreationDate(calendar.getTime());
    billBean.createBreakDown();
    for (BillBreakDown billBreakDown : billBean.getBill().getBreakDown()) {
        assertThat(billBreakDown.getIva(), is(new BigDecimal(IVA_UNTIL_SEPT_2012)));
    }
}
Also used : GregorianCalendar(java.util.GregorianCalendar) BillBreakDown(com.autentia.tnt.businessobject.BillBreakDown) BigDecimal(java.math.BigDecimal) Test(org.junit.Test)

Example 5 with BillBreakDown

use of com.autentia.tnt.businessobject.BillBreakDown in project TNTConcept by autentia.

the class BillBeanTest method createBreakDownInFirstDayOf18Test.

@Test
public void createBreakDownInFirstDayOf18Test() {
    this.prepareTestsIVA();
    final GregorianCalendar calendar = new GregorianCalendar(2010, 6, 1);
    billBean.setCreationDate(calendar.getTime());
    billBean.createBreakDown();
    for (BillBreakDown billBreakDown : billBean.getBill().getBreakDown()) {
        assertThat(billBreakDown.getIva(), is(new BigDecimal(IVA_UNTIL_SEPT_2012)));
    }
}
Also used : GregorianCalendar(java.util.GregorianCalendar) BillBreakDown(com.autentia.tnt.businessobject.BillBreakDown) BigDecimal(java.math.BigDecimal) Test(org.junit.Test)

Aggregations

BillBreakDown (com.autentia.tnt.businessobject.BillBreakDown)13 GregorianCalendar (java.util.GregorianCalendar)9 Test (org.junit.Test)9 BigDecimal (java.math.BigDecimal)6 ProjectCost (com.autentia.tnt.businessobject.ProjectCost)5 Project (com.autentia.tnt.businessobject.Project)4 LinkedHashSet (java.util.LinkedHashSet)3 BillBean (com.autentia.tnt.bean.billing.BillBean)1 Activity (com.autentia.tnt.businessobject.Activity)1 Bill (com.autentia.tnt.businessobject.Bill)1 OfferCost (com.autentia.tnt.businessobject.OfferCost)1 OfferRole (com.autentia.tnt.businessobject.OfferRole)1 ProjectRole (com.autentia.tnt.businessobject.ProjectRole)1 User (com.autentia.tnt.businessobject.User)1 SortCriteria (com.autentia.tnt.dao.SortCriteria)1 ActivityDAO (com.autentia.tnt.dao.hibernate.ActivityDAO)1 ProjectCostDAO (com.autentia.tnt.dao.hibernate.ProjectCostDAO)1 ProjectRoleDAO (com.autentia.tnt.dao.hibernate.ProjectRoleDAO)1 ActivitySearch (com.autentia.tnt.dao.search.ActivitySearch)1 ProjectCostSearch (com.autentia.tnt.dao.search.ProjectCostSearch)1