@Override
public void updateImpl() throws ClipsException {
ContractFactoryLocal cfl = new ContractFactoryLocal(am);
List<ContractLocal> contractList = cfl.findContractsOMIForUpdate();
ContractLocal contract;
if (contractList.size() == 0) {
throw new ClipsException("Не найден текущий контракт ОМС");
} else {
//Найдено несколько контрактов
DialogSelectContract dlg = new DialogSelectContract(MainWindow.mainWindow, contractList, am);
dlg.setVisible(true);
if (dlg.getDlgResult() == ModalDialog.DLG_OK) {
contract = dlg.getSelectedContract();
} else {
return;
}
}
HashSet<VisitPrice> visitPriceSet = new HashSet<VisitPrice>();
ClipsConfig cfg = ClipsConfig.getInstance();
{
File file = new File(cfg.getLastDBFImportPath(), S_VISIT);
DBF dbfVisit = createDBF(file);
HashMap<ColVisit, Field> fieldsVisit = new HashMap<ColVisit, Field>();
try {
for (int i = 0; i < ColVisit.values().length; i++) {
ColVisit col = ColVisit.values()[i];
fieldsVisit.put(col, dbfVisit.getField(col.toString()));
}
} catch (xBaseJException ex) {
throw new ClipsException("Ошибка при чтении данных из файла " + dbfVisit.getName(), ex);
}
int recordCount = dbfVisit.getRecordCount();
for (int c = 0; c < recordCount; c++) {
try {
dbfVisit.read();
String id = fieldsVisit.get(ColVisit.ID).get().trim();
String price = fieldsVisit.get(ColVisit.PRICE).get().trim();
visitPriceSet.add(new VisitPrice(id, price));
System.out.println(id + " " + price);
} catch (IOException ex) {
closeDBF(dbfVisit);
throw new ClipsException("Ошибка при чтении данных из файла " + dbfVisit.getName(), ex);
} catch (xBaseJException ex) {
closeDBF(dbfVisit);
throw new ClipsException("Ошибка при чтении данных из файла " + dbfVisit.getName(), ex);
}
}
closeDBF(dbfVisit);
}
{
File file = new File(cfg.getLastDBFImportPath(), S_UET);
DBF dbfUET = createDBF(file);
HashMap<ColUet, Field> fieldsUet = new HashMap<ColUet, Field>();
try {
for (int i = 0; i < ColVisit.values().length; i++) {
ColUet col = ColUet.values()[i];
fieldsUet.put(col, dbfUET.getField(col.toString()));
}
} catch (xBaseJException ex) {
throw new ClipsException("Ошибка при чтении данных из файла " + dbfUET.getName(), ex);
}
int recordCount = dbfUET.getRecordCount();
for (int c = 0; c < recordCount; c++) {
try {
dbfUET.read();
String id = fieldsUet.get(ColUet.LEVELMES).get().trim();
String price = fieldsUet.get(ColUet.PRICE).get().trim();
VisitPrice vp = new VisitPrice(id + "29000", price);
if (visitPriceSet.contains(vp)) {
visitPriceSet.remove(vp);
}
visitPriceSet.add(vp);
System.out.println(vp.getId() + " " + vp.getPrice());
vp = new VisitPrice(id + "29824", price);
if (visitPriceSet.contains(vp)) {
visitPriceSet.remove(vp);
}
visitPriceSet.add(vp);
System.out.println(vp.getId() + " " + vp.getPrice());
vp = new VisitPrice(id + "29825", price);
if (visitPriceSet.contains(vp)) {
visitPriceSet.remove(vp);
}
visitPriceSet.add(vp);
System.out.println(vp.getId() + " " + vp.getPrice());
} catch (IOException ex) {
closeDBF(dbfUET);
throw new ClipsException("Ошибка при чтении данных из файла " + dbfUET.getName(), ex);
} catch (xBaseJException ex) {
closeDBF(dbfUET);
throw new ClipsException("Ошибка при чтении данных из файла " + dbfUET.getName(), ex);
}
}
closeDBF(dbfUET);
}
contract.updateOMIPrice(visitPriceSet);
}