code: @Override
    public final MoveItemsLine process(
      final Map<String, Object> pAddParam,
        final MoveItemsLine pEntity,
          final IRequestData pRequestData) throws Exception {
      if (pEntity.getIsNew()) {
        if (pEntity.getItsQuantity().doubleValue() <= 0) {
          throw new ExceptionWithCode(ExceptionWithCode.WRONG_PARAMETER,
            "quantity_less_or_equal_zero");
        }
        AccSettings accSettings = getSrvAccSettings()
          .lazyGetAccSettings(pAddParam);
        pEntity.setItsQuantity(pEntity.getItsQuantity().setScale(
          accSettings.getQuantityPrecision(), accSettings.getRoundingMode()));
        // Beige-Orm refresh:
        pEntity.setItsOwner(getSrvOrm()
          .retrieveEntity(pAddParam, pEntity.getItsOwner()));
        getSrvOrm().insertEntity(pAddParam, pEntity);
        pEntity.setIsNew(false);
        this.srvWarehouseEntry.move(pAddParam, pEntity, pEntity
          .getWarehouseSiteFrom(), pEntity.getWarehouseSiteTo());
        // optimistic locking (dirty check):
        Long ownerVersion = Long.valueOf(pRequestData
          .getParameter(MoveItems.class.getSimpleName() + ".ownerVersion"));
        pEntity.getItsOwner().setItsVersion(ownerVersion);
        getSrvOrm().updateEntity(pAddParam, pEntity.getItsOwner());
        pAddParam.put("nextEntity", pEntity.getItsOwner());
        pAddParam.put("nameOwnerEntity", MoveItems.class.getSimpleName());
        return null;
      } else {
        throw new ExceptionWithCode(ExceptionWithCode.FORBIDDEN,
          "Attempt to update Sales Return line by " + pAddParam.get("user"));
      }
    }
docs: <p>Process entity request.</p>
  @param pAddParam additional param, e.g. return this line's
  document in "nextEntity" for farther process
  @param pRequestData Request Data
  @param pEntity Entity to process
  @return Entity processed for farther process or null
  @throws Exception - an exception