skn писал(а):
вы используете объекты из плагина cladr, а параметры договора используют bitel.billing.server.admin.bean.AddressHouse
Что то появилось больше вопросов чем ответов:
1) Индекс - поясните по этому полю. В клиенте BGBilling индекс указывается в двух местах, первое
Адрес-Улицы, второе
Адрес-дома. При создании дома клиент BGBilling автоматически подставляет этот индекс, видимо берет его из справочника улиц. При создании дома через API нужен индекс!!!
2) Если нужно использовать AddressHouse, то для манипулирования используем класс AddressManager, но он не рабочий. Не смог добавить дом через него:
Код:
public class TestAddress
extends GlobalScriptBase {
final Integer CITY_ID = 2;
@Override
public void execute(Setup setup, ConnectionSet connectionSet)
throws Exception {
Connection connection = connectionSet.getConnection();
AddressManager addressManager = new AddressManager(connection, setup);
AddressHouse addressHouse = new AddressHouse();
addressHouse.setStreetId(137);
addressHouse.setAmount(10);
addressHouse.setHouse(25);
addressHouse.setFrac("A");
addressHouse.setDate(new Date());
addressManager.addHouse(addressHouse);
}
}
Получаю:
Код:
java.sql.SQLException: No value specified for parameter 10
Смотрю AddressManager.class, ищу метод addHouse
Код:
public void addHouse(AddressHouse house) {
try {
String e = "INSERT INTO address_house ( areaid, quarterid, streetid, house, frac, box_index, amount, comment, dt) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
PreparedStatement ps = this.con.prepareStatement(e);
byte idx = 1;
int var7 = idx + 1;
ps.setInt(idx, house.getAreaId());
ps.setInt(var7++, house.getQuarterId());
ps.setInt(var7++, house.getStreetId());
ps.setInt(var7++, house.getHouse());
ps.setString(var7++, house.getFrac());
ps.setString(var7++, house.getBoxIndex());
ps.setInt(var7++, house.getAmount());
ps.setString(var7++, house.getComment());
ps.setDate(var7, TimeUtils.convertDateToSqlDate(house.getDate()));
ps.executeUpdate();
int houseId = ServerUtils.lastInsertId(this.con);
house.setId(houseId);
ps.close();
} catch (Exception var6) {
var6.printStackTrace();
}
}
Параметров 10, а устанавливается всего 9 значений.
3) Вообще так и не понял как через AddressManager, найти id улицы по наименованию, как найти дом по id улицы и наименованию дома.
4) И чтоб AdressHouse вернул индекс, его ведь нужно туда добавить. Но при создании дома получить индекс улицы можно только через обращение к БД. Через API это не сделать. Ну или я не нашел как.
_________________
Код:
Клиент: вер. 6.2.874 / 05.02.2018 12:48:36
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151
Сервер: вер. 6.2.1203 / 05.02.2018 12:50:34
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45