Package clips.directory.editors.update.updaters

Source Code of clips.directory.editors.update.updaters.UpdaterVisitPrice

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package clips.directory.editors.update.updaters;

import beans.contract.VisitPrice;
import cli_fmw.delegate.directory.UpdaterDirectory;
import cli_fmw.main.ClipsException;
import cli_fmw.main.MainWindow;
import cli_fmw.main.audit.AuditManager;
import cli_fmw.utils.ModalDialog;
import clips.delegate.contract.ContractFactoryLocal;
import clips.delegate.contract.ContractLocal;
import clips.main.ClipsConfig;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import org.xBaseJ.micro.DBF;
import org.xBaseJ.micro.fields.Field;
import org.xBaseJ.micro.xBaseJException;

/**
*
* @author vip
*/
public class UpdaterVisitPrice extends UpdaterDirectory{
    private static final String S_VISIT = "S_VISIT.DBF";
    private static final String S_UET = "S_UET.DBF";
    private AuditManager am;

    public UpdaterVisitPrice(AuditManager am) {
        this.am = am;
    }

    enum ColVisit{
        ID,
        PRICE,
    }

    enum ColUet{
        LEVELMES,
        PRICE,
    }

    @Override
    public String getFilename() {
        return S_VISIT + ", " + S_UET;
    }

    @Override
    public String getTitle() {
        return "Оплата посещений";
    }

    @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);
    }

}
TOP

Related Classes of clips.directory.editors.update.updaters.UpdaterVisitPrice

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.