Code:
public class FornecedoresImpl extends LinkPecasAbstract{
private JdbcTemplate jdbcTemplate;
private TransactionTemplate transactionTemplate;
private static Logger logger = Logger.getLogger("br.com.rodobens");
private int insertFornecedor(FornecedoresBean bean){
StringBuffer sql = new StringBuffer();
sql.append(" insert into DMMLP009 (IDSTATFOR, IDTIPFOR, NMFOR, NRCPJFOR, NMFANFOR, IDMRCFOR, ");
sql.append(" DSENDFOR, NRENDFOR, NMBAIFOR, CDCEPFOR, NMCIDFOR, SIUNFFOR, NRDDDTELFOR, NRTELFOR, DSEMAILFOR) ");
sql.append(" values (" + DominioStatusFornecedor.ATIVO + ", ?, ?, ? ,? ,? ,? ,? ,? ,? ,? ,?, ?, ?, ? ) ");
Object[] parametros = new Object[]{ new Integer(bean.getTipoFornecedor()), bean.getNomeFornecedor(),
new Long(bean.getCnpj()), bean.getNomeFantasia(), new Integer(bean.getMarca()),
bean.getRua(), new Integer(bean.getNumero()), bean.getBairro(), new Integer(bean.getCep()),
bean.getCidade(), bean.getUf(), new Integer(bean.getDdd()), new Integer(bean.getTelefone()),
bean.getEmailFornecedor() };
return jdbcTemplate.update(sql.toString(), parametros);
}
private int insertVendedorDeFornecedor(final String nomeVendedor, final String emailVendedor){
StringBuffer sql = new StringBuffer();
sql.append(" insert into DMMLP010 (CDVENFOR, CDFOR, NMVENFOR, DSEMAILVENFOR) ");
sql.append(" values ((select coalesce(max(CDVENFOR)+1, 1) ");
sql.append(" from DMMLP010 where CDFOR = (select max(CDFOR) from DMMLP009)),");
sql.append(" (select max(CDFOR) from DMMLP009), ?, ?");
Object[] parametros = new Object[]{ nomeVendedor, emailVendedor};
return jdbcTemplate.update(sql.toString(), parametros);
}
public void insereFornecedor(final FornecedoresBean bean){
transactionTemplate.execute(new TransactionCallbackWithoutResult(){
protected void doInTransactionWithoutResult(TransactionStatus status){
try{
// insere o fornecedor
insertFornecedor(bean);
// insere vendedor
insertVendedorDeFornecedor(bean.getNomeVendedor1(), bean.getEmailVendedor1());
// se existe outro vendedor, insere
if(bean.getNomeVendedor2() != null){
insertVendedorDeFornecedor(bean.getNomeVendedor2(), bean.getEmailVendedor2());
}
}
catch(Exception ex){
logger.error(ex.getMessage());
logger.error("Fornecedor não foi inserido.");
}
}
});
}
/**
* @param jdbcTemplate seta o valor de jdbcTemplate na variável jdbcTemplate.
*/
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
/**
* @param transactionTemplate seta o valor de transactionTemplate na variável transactionTemplate.
*/
public void setTransactionTemplate(TransactionTemplate transactionTemplate) {
this.transactionTemplate = transactionTemplate;
}
}
My context is thus: