package com.qcadoo.mes.basic.additionalcode;
import com.qcadoo.mes.basic.BasicLookupController;
import com.qcadoo.mes.basic.controllers.dataProvider.dto.AdditionalCodeDTO;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Controller
@RequestMapping(value = "additionalCode")
public class AdditionalCodeLookupController extends BasicLookupController<AdditionalCodeDTO> {
@Override
protected String getQueryForRecords(final Long context) {
String query = "SELECT %s FROM (SELECT additionalcode.id as id, additionalcode.code as code, product.number as productnumber "
+ "FROM basic_additionalcode additionalcode "
+ "JOIN basic_product product ON (additionalcode.product_id = product.id) WHERE (product.number = :productnumber OR COALESCE(:productnumber,'')='' ) %s) q";
return query;
}
@Override
protected List<String> getGridFields() {
return Arrays.asList("code", "productnumber");
}
@Override
protected String getRecordName() {
return "additionalCode";
}
@Override
protected Map<String, Object> getQueryParameters(Long context, AdditionalCodeDTO additionalCodeDTO) {
Map<String, Object> params = new HashMap<>();
params.put("productnumber", additionalCodeDTO.getProductnumber());
additionalCodeDTO.setProductnumber(null);
return params;
}
}