Package no.ugland.utransprod.service

Source Code of no.ugland.utransprod.service.GarasjeConverter

package no.ugland.utransprod.service;

import java.math.BigDecimal;

import org.apache.commons.lang.StringUtils;

import no.ugland.utransprod.model.Ord;
import no.ugland.utransprod.model.Order;
import no.ugland.utransprod.model.OrderLine;
import no.ugland.utransprod.model.OrderLineAttribute;
import no.ugland.utransprod.model.Ordln;

public class GarasjeConverter implements ConstructionTypeAttributesConverter{

  private static final String ARTICLE_PATH_GARAGE_TYPE = "Garasjetype";
  private static final String WALL_HEIGHT_ATTRIBUTE = "Veggh�yde";
  private static final String BRICK_WALL_HEIGHT_ATTRIBUTE = "Murh�yde";
  private static final int GARAGE_TYPE_LINE = 1;
  private static final String WIDTH_ATTRIBUTE = "Bredde";
  private static final String LENGTH_ATTRIBUTE = "Lengde";
  private OrdlnManager ordlnManager;
 
  public GarasjeConverter(OrdlnManager aOrdlnManager){
    ordlnManager=aOrdlnManager;
  }

  public void setConstructionTypeAttributes(Ord ord, Order order) {
    OrderLine garageOrderLine = order.getOrderLine(ARTICLE_PATH_GARAGE_TYPE);
   
    garageOrderLine=garageOrderLine!=OrderLine.UNKNOWN?garageOrderLine:createGarageOrderLine(order);
    setGarageAttributes(garageOrderLine,ord);
    DefaultConverter.setAttributes(garageOrderLine, ordlnManager);
  }

  private void setGarageAttributes(OrderLine garageOrderLine, Ord ord) {
    setWallHeigth(garageOrderLine,ord);
    setBrickWallHeigth(garageOrderLine,ord);
    setWidthAndLength(garageOrderLine,ord);
  }

  private void setWidthAndLength(OrderLine garageOrderLine, Ord ord) {
    Ordln ordln = getVismaOrderLineForGarageType(ord);
    setWidth(ordln,garageOrderLine);
    setLength(ordln,garageOrderLine);
  }

  private void setLength(Ordln ordln, OrderLine garageOrderLine) {
    BigDecimal vismaLength = getVismaLength(ordln);
    if(vismaLengthHasValue(vismaLength)){
      OrderLineAttribute attribute = garageOrderLine.getAttributeByName(LENGTH_ATTRIBUTE);
      attribute.setAttributeValue(String.valueOf(vismaLength.setScale(0)));
    }
   
  }

  private boolean vismaLengthHasValue(BigDecimal length) {
    return length!=null&&length!=BigDecimal.ZERO;
  }

  private BigDecimal getVismaLength(Ordln ordln) {
    return ordln!=null?ordln.getLgtU():null;
  }

  private void setWidth(Ordln ordln,OrderLine garageOrderLine) {
    BigDecimal vismaWidth = getVismaWidth(ordln);
    if(vismaWidthHasValue(vismaWidth)){
      OrderLineAttribute attribute = garageOrderLine.getAttributeByName(WIDTH_ATTRIBUTE);
      attribute.setAttributeValue(String.valueOf(vismaWidth.setScale(0)));
    }
   
  }

  private BigDecimal getVismaWidth(Ordln ordln) {
    return ordln!=null?ordln.getWdtu():null;
  }

  private boolean vismaWidthHasValue(BigDecimal width) {
    return width!=null&&width!=BigDecimal.ZERO;
  }

  private Ordln getVismaOrderLineForGarageType(Ord ord) {
    Ordln ordln = ordlnManager.findByOrdnoAndPrCatNo2(ord.getOrdno(),GARAGE_TYPE_LINE);
    return ordln;
  }

  private void setBrickWallHeigth(OrderLine garageOrderLine, Ord ord) {
    if(hasBrickWallHeigth(ord)){
      OrderLineAttribute attribute = garageOrderLine.getAttributeByName(BRICK_WALL_HEIGHT_ATTRIBUTE);
      attribute.setAttributeValue(getBrickWallHeigth(ord));
    }
   
  }

  private String getBrickWallHeigth(Ord ord) {
    return StringUtils.substringBefore(StringUtils.substringBefore(ord.getFree2(), ","),".");
  }

  private boolean hasBrickWallHeigth(Ord ord) {
    return ord.getFree2()!=null?true:false;
  }

  private void setWallHeigth(OrderLine garageOrderLine, Ord ord) {
    if(hasWallHeigth(ord)){
      OrderLineAttribute attribute = garageOrderLine.getAttributeByName(WALL_HEIGHT_ATTRIBUTE);
      attribute.setAttributeValue(getWallHeigth(ord));
    }
   
  }

 

  private String getWallHeigth(Ord ord) {
    return StringUtils.substringBefore(StringUtils.substringBefore(ord.getFree1(), ","),".");
  }

  private boolean hasWallHeigth(Ord ord) {
    return ord.getFree1()!=null?true:false;
  }

  private OrderLine createGarageOrderLine(Order order) {
    OrderLine orderLine=new OrderLine();
    orderLine.setArticlePath(ARTICLE_PATH_GARAGE_TYPE);
    order.addOrderLine(orderLine);
    return orderLine;
  }

 
 
}
TOP

Related Classes of no.ugland.utransprod.service.GarasjeConverter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.