Skip to content

Commit

Permalink
SC#QCADOOMES-1776 Added new button for copying products with quantity…
Browse files Browse the repository at this point in the history
… and price in deliveries.
  • Loading branch information
lponiewierski committed Oct 21, 2013
1 parent a301461 commit 3814bff
Show file tree
Hide file tree
Showing 5 changed files with 192 additions and 216 deletions.
Expand Up @@ -111,8 +111,17 @@ public final void printOrderReport(final ViewDefinitionState view, final Compone
}
}

public final void copyOrderedProductToDelivered(final ViewDefinitionState view, final ComponentState state,
public final void copyProductsWithoutQuantityAndPrice(final ViewDefinitionState view, final ComponentState state,
final String[] args) {
copyOrderedProductToDelivered(view, false);
}

public final void copyProductsWithQuantityAndPrice(final ViewDefinitionState view, final ComponentState state,
final String[] args) {
copyOrderedProductToDelivered(view, true);
}

private void copyOrderedProductToDelivered(final ViewDefinitionState view, boolean copyQuantityAndPrice) {
FormComponent deliveryForm = (FormComponent) view.getComponentByReference(L_FORM);
Long deliveryId = deliveryForm.getEntityId();

Expand All @@ -122,36 +131,44 @@ public final void copyOrderedProductToDelivered(final ViewDefinitionState view,

Entity delivery = deliveriesService.getDelivery(deliveryId);

List<Entity> orderedProducts = delivery.getHasManyField(L_ORDERED_PRODUCTS);

copyOrderedProductToDelivered(delivery, orderedProducts);
copyOrderedProductToDelivered(delivery, copyQuantityAndPrice);
}

private void copyOrderedProductToDelivered(final Entity delivery, final List<Entity> orderedProducts) {
private void copyOrderedProductToDelivered(final Entity delivery, final boolean copyQuantityAndPrice) {
// ALBR deliveredProduct has a validation so we have to delete all
// entities before save HM field in delivery
delivery.setField(L_DELIVERED_PRODUCTS, Lists.newArrayList());
delivery.setField(DeliveryFields.DELIVERED_PRODUCTS, Lists.newArrayList());
delivery.getDataDefinition().save(delivery);
delivery.setField(L_DELIVERED_PRODUCTS, Lists.newArrayList(createDeliveredProducts(orderedProducts)));
delivery.setField(DeliveryFields.DELIVERED_PRODUCTS,
createDeliveredProducts(delivery.getHasManyField(DeliveryFields.ORDERED_PRODUCTS), copyQuantityAndPrice));

delivery.getDataDefinition().save(delivery);
}

private List<Entity> createDeliveredProducts(final List<Entity> orderedProducts) {
private List<Entity> createDeliveredProducts(final List<Entity> orderedProducts, final boolean copyQuantityAndPrice) {
List<Entity> deliveredProducts = Lists.newArrayList();

for (Entity orderedProduct : orderedProducts) {
deliveredProducts.add(createDeliveredProduct(orderedProduct));
deliveredProducts.add(createDeliveredProduct(orderedProduct, copyQuantityAndPrice));
}

return deliveredProducts;
}

private Entity createDeliveredProduct(final Entity orderedProduct) {
private Entity createDeliveredProduct(final Entity orderedProduct, final boolean copyQuantityAndPrice) {
Entity deliveredProduct = deliveriesService.getDeliveredProductDD().create();

deliveredProduct.setField(DeliveredProductFields.PRODUCT, orderedProduct.getBelongsToField(OrderedProductFields.PRODUCT));

if (copyQuantityAndPrice) {
deliveredProduct.setField(DeliveredProductFields.DELIVERED_QUANTITY,
orderedProduct.getDecimalField(OrderedProductFields.ORDERED_QUANTITY));
deliveredProduct.setField(DeliveredProductFields.PRICE_PER_UNIT,
orderedProduct.getBelongsToField(OrderedProductFields.PRICE_PER_UNIT));
deliveredProduct.setField(DeliveredProductFields.TOTAL_PRICE,
orderedProduct.getBelongsToField(OrderedProductFields.TOTAL_PRICE));
}

return deliveredProduct;
}

Expand Down
Expand Up @@ -330,8 +330,9 @@ deliveries.deliveriesList.window.ribbon.status.correctOrder = Correct order
deliveries.deliveryDetails.window.ribbon.generate = Save as PDF
deliveries.deliveryDetails.window.ribbon.generate.generateOrder = Order
deliveries.deliveryDetails.window.ribbon.generate.generateDelivery = Delivery
deliveries.deliveryDetails.window.ribbon.copy = Copy
deliveries.deliveryDetails.window.ribbon.copy.copyOrderedProductToDelivered = Order. produ.<br/> to delivered
deliveries.deliveryDetails.window.ribbon.copyOrderedProductsToDelivered = Copy ord. products to delivered
deliveries.deliveryDetails.window.ribbon.copyOrderedProductsToDelivered.copyProductsWithoutQuantityAndPrice = Without quantity and price
deliveries.deliveryDetails.window.ribbon.copyOrderedProductsToDelivered.copyProductsWithQuantityAndPrice = With quantity and price
deliveries.deliveryDetails.window.ribbon.relatedDelivery = Related delivery
deliveries.deliveryDetails.window.ribbon.relatedDelivery.createRelatedDelivery = Order missing
deliveries.deliveryDetails.window.ribbon.relatedDelivery.showRelatedDeliveries = Show related
Expand Down
Expand Up @@ -330,8 +330,9 @@ deliveries.deliveriesList.window.ribbon.status.correctOrder = Skoryguj zamówien
deliveries.deliveryDetails.window.ribbon.generate = Zapisz jako PDF
deliveries.deliveryDetails.window.ribbon.generate.generateOrder = Zamówienie
deliveries.deliveryDetails.window.ribbon.generate.generateDelivery = Dostawa
deliveries.deliveryDetails.window.ribbon.copy = Skopiuj
deliveries.deliveryDetails.window.ribbon.copy.copyOrderedProductToDelivered = Prod. zamow.<br/> do odebranych
deliveries.deliveryDetails.window.ribbon.copyOrderedProductsToDelivered = Skopiuj prod zam. do odebranych
deliveries.deliveryDetails.window.ribbon.copyOrderedProductsToDelivered.copyProductsWithoutQuantityAndPrice = Bez ilości i ceny
deliveries.deliveryDetails.window.ribbon.copyOrderedProductsToDelivered.copyProductsWithQuantityAndPrice = Z ilością i ceną
deliveries.deliveryDetails.window.ribbon.relatedDelivery = Częściowa dostawa
deliveries.deliveryDetails.window.ribbon.relatedDelivery.createRelatedDelivery = Zamów brakujące
deliveries.deliveryDetails.window.ribbon.relatedDelivery.showRelatedDeliveries = Pokaż powiązane
Expand Down

0 comments on commit 3814bff

Please sign in to comment.