/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package clips.delegate.expenditure;
import beans.expenditure.entity.ExpenditureDetails;
import clips.delegate.directory.complex.DirectoryExpenditureType;
import clips.delegate.directory.complex.DirectoryExpenditureTypeItem;
import cli_fmw.delegate.directory.complex.DirectoryLocator;
import clips.delegate.directory.filtered.DirectoryServiceItem;
import cli_fmw.main.ClipsException;
import cli_fmw.delegate.lists.DataChunk;
import clips.delegate.directory.simple.expenditureMetric.DirectoryExpenditureMetricItem;
import clips.delegate.service.SerRenLocal;
/**
* Обёртка для данных из справочника, что б запихнуть их в ИннерЛист + объём расхода
* Фактически строка в таблице расхода материалов.
* @author petr
*/
public class ExpenditureItemData extends DataChunk<ExpenditureDetails> implements Cloneable {
public ExpenditureItemData(DirectoryServiceItem service) throws ClipsException {
super(new ExpenditureDetails());
getDetails().parentID = service.getID();
}
public ExpenditureItemData(SerRenLocal service) throws ClipsException {
super(new ExpenditureDetails());
getDetails().parentID = service.getID();
}
public ExpenditureItemData(ExpenditureDetails details)
throws ClipsException {
super(details);
}
public ExpenditureDetails getDetailsCopy() {
return getDetails().clone();
}
@Override
public ExpenditureItemData clone() {
return (ExpenditureItemData) super.clone();
}
/**
* геттер типа материала
* @return
*/
public DirectoryExpenditureTypeItem getType() throws ClipsException {
DirectoryExpenditureType directory = DirectoryLocator.getDirectory(DirectoryExpenditureType.class, false);
return directory.getItemFromID(getDetails().expenTypeID);
}
public void setType(DirectoryExpenditureTypeItem type) throws ClipsException {
getDetails().expenTypeID = type.getID();
}
/**
* геттер метрики
* @return
*/
public DirectoryExpenditureMetricItem getMetric() throws ClipsException {
DirectoryExpenditureType directoryExp = DirectoryLocator.getDirectory(DirectoryExpenditureType.class, false);
DirectoryExpenditureTypeItem item = directoryExp.getItemFromID(getDetails().expenTypeID);
return item.getMetrics();
}
/**
* геттер количества расхода
* @return
*/
public float getQuantity() {
return getDetails().quantity;
}
/**
* сеттер количества расхода
* @param volume
*/
public void setQuantity(float volume) {
getDetails().quantity = volume;
fireContentStateEvent();
}
}