Search in sources :

Example 26 with Charge

use of org.estatio.module.charge.dom.Charge in project estatio by estatio.

the class OrderItem_Test method chargeNotUsedOnOrder_works.

@Test
public void chargeNotUsedOnOrder_works() throws Exception {
    // given
    Order order = new Order();
    OrderItem orderItem = new OrderItem();
    orderItem.setOrdr(order);
    order.getItems().add(orderItem);
    Charge chargeOnItem = new Charge();
    orderItem.setCharge(chargeOnItem);
    Charge someOtherCharge = new Charge();
    // when, then
    assertThat(orderItem.chargeNotUsedOnOrder(someOtherCharge)).isTrue();
    assertThat(orderItem.chargeNotUsedOnOrder(chargeOnItem)).isFalse();
}
Also used : Charge(org.estatio.module.charge.dom.Charge) Test(org.junit.Test)

Example 27 with Charge

use of org.estatio.module.charge.dom.Charge in project estatio by estatio.

the class Order_Test method minimalRequiredDataToComplete_consitent_dimensions_for_property_project.

@Test
public void minimalRequiredDataToComplete_consitent_dimensions_for_property_project() throws Exception {
    // given
    Order order = new Order();
    OrderItem item1 = new OrderItem();
    order.getItems().add(item1);
    order.setOrderNumber("123");
    order.setBuyer(new Organisation());
    order.setSeller(new Organisation());
    item1.setNetAmount(new BigDecimal("100"));
    item1.setDescription("blah");
    item1.setGrossAmount(BigDecimal.ZERO);
    item1.setCharge(new Charge());
    item1.setStartDate(new LocalDate());
    item1.setEndDate(new LocalDate());
    // when
    item1.setProject(new Project());
    String result = order.reasonIncomplete();
    // then
    assertThat(result).isEqualTo("(on item) when project filled in then property required");
}
Also used : Project(org.estatio.module.capex.dom.project.Project) Organisation(org.estatio.module.party.dom.Organisation) Charge(org.estatio.module.charge.dom.Charge) LocalDate(org.joda.time.LocalDate) BigDecimal(java.math.BigDecimal) Test(org.junit.Test)

Example 28 with Charge

use of org.estatio.module.charge.dom.Charge in project estatio by estatio.

the class Order_Test method minimalRequiredDataToComplete_consitent_dimensions_for_project_budgetItem.

@Test
public void minimalRequiredDataToComplete_consitent_dimensions_for_project_budgetItem() throws Exception {
    // given
    Order order = new Order();
    OrderItem item1 = new OrderItem();
    order.getItems().add(item1);
    order.setOrderNumber("123");
    order.setBuyer(new Organisation());
    order.setSeller(new Organisation());
    item1.setNetAmount(new BigDecimal("100"));
    item1.setDescription("blah");
    item1.setGrossAmount(BigDecimal.ZERO);
    item1.setCharge(new Charge());
    item1.setStartDate(new LocalDate());
    item1.setEndDate(new LocalDate());
    item1.setProperty(new Property());
    // when
    item1.setBudgetItem(new BudgetItem());
    item1.setProject(new Project());
    String result = order.reasonIncomplete();
    // then
    assertThat(result).isEqualTo("(on item) either project or budget item - not both required");
}
Also used : Project(org.estatio.module.capex.dom.project.Project) Organisation(org.estatio.module.party.dom.Organisation) BudgetItem(org.estatio.module.budget.dom.budgetitem.BudgetItem) Charge(org.estatio.module.charge.dom.Charge) LocalDate(org.joda.time.LocalDate) Property(org.estatio.module.asset.dom.Property) BigDecimal(java.math.BigDecimal) Test(org.junit.Test)

Example 29 with Charge

use of org.estatio.module.charge.dom.Charge in project estatio by estatio.

the class Order_Test method splitItem_mixin_works.

@Test
public void splitItem_mixin_works() throws Exception {
    // given
    Order order = new Order();
    order.orderItemRepository = mockOrderItemRepository;
    String description = "some description";
    Tax tax = new Tax();
    Charge charge = new Charge();
    Property property = new Property();
    Project project = new Project();
    BudgetItem budgetItem = new BudgetItem();
    String period = "F2018";
    OrderItem itemToSplit = new OrderItem();
    BigDecimal newItemNetAmount = new BigDecimal("50.00");
    BigDecimal newItemVatAmount = new BigDecimal("10");
    BigDecimal newItemGrossAmount = new BigDecimal("60.00");
    // expect
    context.checking(new Expectations() {

        {
            oneOf(mockOrderItemRepository).upsert(order, charge, description, newItemNetAmount, newItemVatAmount, newItemGrossAmount, tax, PeriodUtil.yearFromPeriod(period).startDate(), PeriodUtil.yearFromPeriod(period).endDate(), property, project, budgetItem);
        }
    });
    // when
    order.splitItem(itemToSplit, description, newItemNetAmount, newItemVatAmount, tax, newItemGrossAmount, charge, property, project, budgetItem, period);
}
Also used : Expectations(org.jmock.Expectations) Project(org.estatio.module.capex.dom.project.Project) BudgetItem(org.estatio.module.budget.dom.budgetitem.BudgetItem) Charge(org.estatio.module.charge.dom.Charge) Tax(org.estatio.module.tax.dom.Tax) Property(org.estatio.module.asset.dom.Property) BigDecimal(java.math.BigDecimal) Test(org.junit.Test)

Example 30 with Charge

use of org.estatio.module.charge.dom.Charge in project estatio by estatio.

the class Order_Test method minimalRequiredDataToComplete_consitent_dimensions_for_property_budgetItem.

@Test
public void minimalRequiredDataToComplete_consitent_dimensions_for_property_budgetItem() throws Exception {
    // given
    Order order = new Order();
    OrderItem item1 = new OrderItem();
    order.getItems().add(item1);
    order.setOrderNumber("123");
    order.setBuyer(new Organisation());
    order.setSeller(new Organisation());
    item1.setNetAmount(new BigDecimal("100"));
    item1.setDescription("blah");
    item1.setGrossAmount(BigDecimal.ZERO);
    item1.setCharge(new Charge());
    item1.setStartDate(new LocalDate());
    item1.setEndDate(new LocalDate());
    // when
    item1.setBudgetItem(new BudgetItem());
    String result = order.reasonIncomplete();
    // then
    assertThat(result).isEqualTo("(on item) when budget item filled in then property required");
}
Also used : Organisation(org.estatio.module.party.dom.Organisation) BudgetItem(org.estatio.module.budget.dom.budgetitem.BudgetItem) Charge(org.estatio.module.charge.dom.Charge) LocalDate(org.joda.time.LocalDate) BigDecimal(java.math.BigDecimal) Test(org.junit.Test)

Aggregations

Charge (org.estatio.module.charge.dom.Charge)41 Test (org.junit.Test)18 BigDecimal (java.math.BigDecimal)14 LocalDate (org.joda.time.LocalDate)14 Lease (org.estatio.module.lease.dom.Lease)11 Programmatic (org.apache.isis.applib.annotation.Programmatic)10 BudgetItem (org.estatio.module.budget.dom.budgetitem.BudgetItem)9 Project (org.estatio.module.capex.dom.project.Project)9 Tax (org.estatio.module.tax.dom.Tax)9 Property (org.estatio.module.asset.dom.Property)7 LeaseItem (org.estatio.module.lease.dom.LeaseItem)6 ApplicationException (org.apache.isis.applib.ApplicationException)4 BudgetCalculationResult (org.estatio.module.budgetassignment.dom.calculationresult.BudgetCalculationResult)4 ChargeGroup (org.estatio.module.charge.dom.ChargeGroup)4 Action (org.apache.isis.applib.annotation.Action)3 LeaseItemType (org.estatio.module.lease.dom.LeaseItemType)3 Organisation (org.estatio.module.party.dom.Organisation)3 ApplicationTenancy (org.isisaddons.module.security.dom.tenancy.ApplicationTenancy)3 Expectations (org.jmock.Expectations)3 ArrayList (java.util.ArrayList)2