📄 vcharge.java
字号:
if (rs.next())
m_C_TaxCategory_ID = rs.getInt(1);
rs.close();
pstmt.close();
}
catch (SQLException e)
{
Log.error ("VCharge.dynInit-tc", e);
}
} // dynInit
/**
* Dispose
*/
public void dispose()
{
m_frame.dispose();
} // dispose
/**
* Action Listener
* @param e event
*/
public void actionPerformed (ActionEvent e)
{
Log.trace(Log.l1_User, "VCharge.actionPerformed - " + e.getActionCommand());
//
if (e.getActionCommand().equals(ConfirmPanel.A_OK) || m_C_Element_ID == 0)
dispose();
// new Account
else if (e.getSource().equals(newButton))
createNew();
else if (e.getSource().equals(accountButton))
createAccount();
} // actionPerformed
/**
* Create new Account and Charge
*/
private void createNew()
{
Log.trace(Log.l3_Util, "VCharge.createNew");
// Get Input
String value = valueField.getText();
if (value.length() == 0)
{
valueField.setBackground(CompierePLAF.getFieldBackground_Error());
return;
}
String name = nameField.getText();
if (name.length() == 0)
{
nameField.setBackground(CompierePLAF.getFieldBackground_Error());
return;
}
// Create Element
int C_ElementValue_ID = create_ElementValue (value, name, isExpense.isSelected());
if (C_ElementValue_ID == 0)
{
ADialog.error(m_WindowNo, this, "ChargeNotCreated", name);
return;
}
// Create Charge
int C_Charge_ID = create_Charge(name, C_ElementValue_ID);
if (C_Charge_ID == 0)
{
ADialog.error(m_WindowNo, this, "ChargeNotCreated", name);
return;
}
ADialog.info(m_WindowNo, this, "ChargeCreated", name);
} // createNew
/**
* Create Charges from Accounts
*/
private void createAccount()
{
Log.trace(Log.l3_Util, "VCharge.createAccount");
//
StringBuffer listCreated = new StringBuffer();
StringBuffer listRejected = new StringBuffer();
//
TableModel model = dataTable.getModel();
int rows = model.getRowCount();
for (int i = 0; i < rows; i++)
{
if (((Boolean)model.getValueAt(i, 0)).booleanValue())
{
KeyNamePair pp = (KeyNamePair)model.getValueAt(i, 1);
int C_ElementValue_ID = pp.getKey();
String name = (String)model.getValueAt(i, 2);
//
int C_Charge_ID = create_Charge(name, C_ElementValue_ID);
if (C_Charge_ID == 0)
{
if (listRejected.length() > 0)
listRejected.append(", ");
listRejected.append(name);
}
else
{
if (listCreated.length() > 0)
listCreated.append(", ");
listCreated.append(name);
}
// reset selection
model.setValueAt(new Boolean(false), i, 0);
}
}
if (listCreated.length() > 0)
ADialog.info(m_WindowNo, this, "ChargeCreated", listCreated.toString());
if (listRejected.length() > 0)
ADialog.error(m_WindowNo, this, "ChargeNotCreated", listRejected.toString());
} // createAccount
/*************************************************************************/
/**
* Create ElementValue for primary AcctSchema
* @param value value
* @param name name
* @param isExpense is expense
* @return element value
*/
private int create_ElementValue (String value, String name, boolean isExpense)
{
Log.trace(Log.l4_Data, "VCharge.create_ElementValue - " + name);
//
int C_ElementValue_ID = DB.getKeyNextNo(Env.getCtx(), m_WindowNo, "C_ElementValue");
StringBuffer sql = new StringBuffer("INSERT INTO C_ElementValue "
+ "(C_ElementValue_ID, C_Element_ID,"
+ " AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,"
+ " Value, Name, Description,"
+ " AccountType, AccountSign,"
+ " IsDocControlled, IsSummary,"
+ " ValidFrom, ValidTo,"
+ " PostActual, PostBudget, PostEncumbrance, PostStatistical,"
+ " IsBankAccount, C_BankAccount_ID, IsForeignCurrency, C_Currency_ID"
+ ") VALUES (");
// C_ElementValue_ID, C_Element_ID,
sql.append(C_ElementValue_ID).append(",").append(m_C_Element_ID).append(",");
// AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,
sql.append(m_AD_Client_ID).append(",").append(m_AD_Org_ID);
sql.append(",'Y',SysDate,").append(m_CreatedBy).append(",SysDate,").append(m_CreatedBy).append(",");
// Value, Name, Description,
sql.append("'").append(value).append("','").append(name).append("',NULL,");
// AccountType, AccountSign,
sql.append(isExpense ? "'E'" : "'R'").append(",'N',");
// IsDocControlled, IsSummary,
sql.append("'N','N',");
// ValidFrom, ValidTo,
sql.append("TO_DATE('01-JAN-1970'),NULL,");
// PostActual, PostBudget, PostEncumbrance, PostStatistical,
sql.append("'Y','Y','Y','Y',");
// IsBankAccount, C_BankAccount_ID, IsForeignCurrency, C_Currency_ID
sql.append("'N',NULL,'N',NULL)");
//
int no = DB.executeUpdate(sql.toString());
if (no != 1)
{
Log.error("VCharge.create_ElementValue #" + no + "\n" + sql.toString());
C_ElementValue_ID = 0;
}
else
Log.trace(Log.l4_Data, "VCharge.create_ElementValue - C_ElementValue_ID="
+ C_ElementValue_ID + " " + value + "=" + name);
return C_ElementValue_ID;
} // create_ElementValue
/**
* Create Charge and account entries for primary AcctSchema
*
* @param name name
* @param C_ElementValue_ID element value
* @return charge
*/
private int create_Charge (String name, int C_ElementValue_ID)
{
Log.trace(Log.l4_Data, "VCharge.create_ElementCharge - " + name);
//
int C_Charge_ID = DB.getKeyNextNo(Env.getCtx(), m_WindowNo, "C_Charge");
StringBuffer sql = new StringBuffer("INSERT INTO C_Charge "
+ "(C_Charge_ID,"
+ " AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,"
+ " Name, Description,"
+ " ChargeAmt, IsSameTax, C_TaxCategory_ID, IsSameCurrency"
+ ") VALUES (");
// C_Charge_ID,
sql.append(C_Charge_ID).append(",");
// AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,
sql.append(m_AD_Client_ID).append(",").append(m_AD_Org_ID);
sql.append(",'Y',SysDate,").append(m_CreatedBy).append(",SysDate,").append(m_CreatedBy).append(",");
// Name, Description,
sql.append("'").append(name).append("',NULL,");
// ChargeAmt, IsSameTax, C_TaxCategory_ID, IsSameCurrency
sql.append("0,'Y',").append(m_C_TaxCategory_ID).append(",'Y')");
//
int no = DB.executeUpdate(sql.toString());
if (no != 1)
{
Log.error("VCharge.create_Charge #" + no + "\n" + sql.toString());
return 0;
}
// Get Combination
int C_ValidCombination_ID = create_ValidCombination(C_ElementValue_ID);
if (C_ValidCombination_ID == 0)
return 0;
// Update Accounts
sql = new StringBuffer("UPDATE C_Charge_Acct ");
sql.append("SET CH_Expense_Acct=").append(C_ValidCombination_ID);
sql.append(", CH_Revenue_Acct=").append(C_ValidCombination_ID);
sql.append(" WHERE C_Charge_ID=").append(C_Charge_ID);
sql.append(" AND C_AcctSchema_ID=").append(m_C_AcctSchema_ID);
//
no = DB.executeUpdate(sql.toString());
if (no != 1)
Log.error("VCharge.create_Charge Acct Update #" + no + "\n" + sql.toString());
//
return C_Charge_ID;
} // create_Charge
/**
* Get ValidCombination
*
* @param C_ElementValue_ID element value
* @return valid combination
*/
private int create_ValidCombination (int C_ElementValue_ID)
{
Log.trace(Log.l4_Data, "VCharge.create_ValidCombination - " + C_ElementValue_ID);
// Get AcctSchame
if (m_acctSchema == null)
m_acctSchema = new AcctSchema(m_C_AcctSchema_ID);
if (m_acctSchema == null || m_acctSchema.getC_AcctSchema_ID() == 0)
return 0;
//
Account vc = Account.getDefault(m_acctSchema);
vc.setAccount_ID(C_ElementValue_ID);
vc.save(m_AD_Client_ID, m_CreatedBy);
int C_ValidCombination_ID = vc.getC_ValidCombination_ID();
//
return C_ValidCombination_ID;
} // create_ValidCombination
} // VCharge
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -