IDEMPIERE-3405 When Window Preference doesn't exists then Default Doctype Taken - also from another client / IDEMPIERE-2672

This commit is contained in:
Carlos Ruiz 2017-06-25 00:41:23 +02:00
parent 5fee4bf291
commit 822453941d
5 changed files with 102 additions and 17 deletions

View File

@ -0,0 +1,43 @@
SET SQLBLANKLINES ON
SET DEFINE OFF
-- IDEMPIERE-3405
-- Jun 24, 2017 11:48:25 PM CEST
UPDATE AD_Val_Rule SET Name='C_DocTypeTarget PO or SO',Updated=TO_DATE('2017-06-24 23:48:25','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Val_Rule_ID=133
;
-- Jun 24, 2017 11:48:48 PM CEST
UPDATE AD_Val_Rule SET Description='Document Type for orders',Updated=TO_DATE('2017-06-24 23:48:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Val_Rule_ID=133
;
-- Jun 24, 2017 11:49:44 PM CEST
INSERT INTO AD_Val_Rule (AD_Val_Rule_ID,Name,Description,Type,Code,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Val_Rule_UU) VALUES (200096,'C_DocType PO or SO','Document Type for orders','S','(C_DocType.DocBaseType IN (''SOO'', ''POO'') AND C_DocType.IsSOTrx=''@IsSOTrx@'' AND COALESCE(C_DocType.DocSubTypeSO,'' '')<>''RM'' AND C_DocType.AD_Client_ID=@#AD_Client_ID@) OR C_DocType_ID=0',0,0,'Y',TO_DATE('2017-06-24 23:49:43','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2017-06-24 23:49:43','YYYY-MM-DD HH24:MI:SS'),100,'D','7f54de3d-a0cb-4649-aeff-6c8dfa5bd991')
;
-- Jun 24, 2017 11:50:01 PM CEST
UPDATE AD_Val_Rule SET Description='Target Document Type for orders',Updated=TO_DATE('2017-06-24 23:50:01','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Val_Rule_ID=133
;
-- Jun 24, 2017 11:50:13 PM CEST
UPDATE AD_Val_Rule SET Name='C_DocTypeTarget AR/AP Invoices and Credit Memos', Description='Target Document Type AR/AP Invoice and Credit Memos',Updated=TO_DATE('2017-06-24 23:50:13','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Val_Rule_ID=124
;
-- Jun 24, 2017 11:50:29 PM CEST
INSERT INTO AD_Val_Rule (AD_Val_Rule_ID,Name,Description,Type,Code,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Val_Rule_UU) VALUES (200097,'C_DocTypeTarget AR/AP Invoices and Credit Memos','Target Document Type AR/AP Invoice and Credit Memos','S','(C_DocType.DocBaseType IN (''ARI'', ''API'',''ARC'',''APC'') AND C_DocType.IsSOTrx=''@IsSOTrx@'' AND C_DocType.AD_Client_ID=@#AD_Client_ID@) OR C_DocType_ID=0',0,0,'Y',TO_DATE('2017-06-24 23:50:29','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2017-06-24 23:50:29','YYYY-MM-DD HH24:MI:SS'),100,'D','62aa64dd-3808-4871-954a-783b60943758')
;
-- Jun 24, 2017 11:50:59 PM CEST
UPDATE AD_Column SET AD_Val_Rule_ID=200096,Updated=TO_DATE('2017-06-24 23:50:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=2172
;
-- Jun 24, 2017 11:52:31 PM CEST
UPDATE AD_Val_Rule SET Name='C_DocType AR/AP Invoices and Credit Memos', Description='Document Type AR/AP Invoice and Credit Memos',Updated=TO_DATE('2017-06-24 23:52:31','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Val_Rule_ID=200097
;
-- Jun 24, 2017 11:52:43 PM CEST
UPDATE AD_Column SET AD_Val_Rule_ID=200097,Updated=TO_DATE('2017-06-24 23:52:43','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=3493
;
SELECT register_migration_script('201706242353_IDEMPIERE-3405.sql') FROM dual
;

View File

@ -0,0 +1,40 @@
-- IDEMPIERE-3405
-- Jun 24, 2017 11:48:25 PM CEST
UPDATE AD_Val_Rule SET Name='C_DocTypeTarget PO or SO',Updated=TO_TIMESTAMP('2017-06-24 23:48:25','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Val_Rule_ID=133
;
-- Jun 24, 2017 11:48:48 PM CEST
UPDATE AD_Val_Rule SET Description='Document Type for orders',Updated=TO_TIMESTAMP('2017-06-24 23:48:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Val_Rule_ID=133
;
-- Jun 24, 2017 11:49:44 PM CEST
INSERT INTO AD_Val_Rule (AD_Val_Rule_ID,Name,Description,Type,Code,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Val_Rule_UU) VALUES (200096,'C_DocType PO or SO','Document Type for orders','S','(C_DocType.DocBaseType IN (''SOO'', ''POO'') AND C_DocType.IsSOTrx=''@IsSOTrx@'' AND COALESCE(C_DocType.DocSubTypeSO,'' '')<>''RM'' AND C_DocType.AD_Client_ID=@#AD_Client_ID@) OR C_DocType_ID=0',0,0,'Y',TO_TIMESTAMP('2017-06-24 23:49:43','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2017-06-24 23:49:43','YYYY-MM-DD HH24:MI:SS'),100,'D','7f54de3d-a0cb-4649-aeff-6c8dfa5bd991')
;
-- Jun 24, 2017 11:50:01 PM CEST
UPDATE AD_Val_Rule SET Description='Target Document Type for orders',Updated=TO_TIMESTAMP('2017-06-24 23:50:01','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Val_Rule_ID=133
;
-- Jun 24, 2017 11:50:13 PM CEST
UPDATE AD_Val_Rule SET Name='C_DocTypeTarget AR/AP Invoices and Credit Memos', Description='Target Document Type AR/AP Invoice and Credit Memos',Updated=TO_TIMESTAMP('2017-06-24 23:50:13','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Val_Rule_ID=124
;
-- Jun 24, 2017 11:50:29 PM CEST
INSERT INTO AD_Val_Rule (AD_Val_Rule_ID,Name,Description,Type,Code,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Val_Rule_UU) VALUES (200097,'C_DocTypeTarget AR/AP Invoices and Credit Memos','Target Document Type AR/AP Invoice and Credit Memos','S','(C_DocType.DocBaseType IN (''ARI'', ''API'',''ARC'',''APC'') AND C_DocType.IsSOTrx=''@IsSOTrx@'' AND C_DocType.AD_Client_ID=@#AD_Client_ID@) OR C_DocType_ID=0',0,0,'Y',TO_TIMESTAMP('2017-06-24 23:50:29','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2017-06-24 23:50:29','YYYY-MM-DD HH24:MI:SS'),100,'D','62aa64dd-3808-4871-954a-783b60943758')
;
-- Jun 24, 2017 11:50:59 PM CEST
UPDATE AD_Column SET AD_Val_Rule_ID=200096,Updated=TO_TIMESTAMP('2017-06-24 23:50:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=2172
;
-- Jun 24, 2017 11:52:31 PM CEST
UPDATE AD_Val_Rule SET Name='C_DocType AR/AP Invoices and Credit Memos', Description='Document Type AR/AP Invoice and Credit Memos',Updated=TO_TIMESTAMP('2017-06-24 23:52:31','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Val_Rule_ID=200097
;
-- Jun 24, 2017 11:52:43 PM CEST
UPDATE AD_Column SET AD_Val_Rule_ID=200097,Updated=TO_TIMESTAMP('2017-06-24 23:52:43','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=3493
;
SELECT register_migration_script('201706242353_IDEMPIERE-3405.sql') FROM dual
;

View File

@ -80,11 +80,10 @@ import org.idempiere.util.ParseSeq;
public class GridField
implements Serializable, Evaluatee, Cloneable
{
/**
*
*/
private static final long serialVersionUID = -7739433012288022819L;
private static final long serialVersionUID = 2703129833179761682L;
/**
* Field Constructor.
@ -1069,6 +1068,7 @@ public class GridField
*/
public boolean validateValueNoDirect()
{
refreshLookup();
// null
if (m_value == null || m_value.toString().length() == 0)
{
@ -1118,12 +1118,13 @@ public class GridField
setValue(null, m_inserting);
m_error = true;
return false;
} // validateValue
} // validateValueNoDirect
/**
* Validate initial Field Value. Push direct value if it doesn't exist
* Called from GridTab.setCurrentRow when inserting
* @return true if valid
* @deprecated use validateValueNoDirect instead
*/
public boolean validateValue()
{
@ -1166,7 +1167,7 @@ public class GridField
setValue(null, m_inserting);
m_error = true;
return false;
} // validateValuePushDirect
} // validateValue
/**************************************************************************
* Is the Column Visible ?

View File

@ -1179,11 +1179,6 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
return retValue;
setCurrentRow(m_currentRow + 1, true);
// check validity of defaults
for (GridField field : getFields()) {
field.refreshLookup();
field.validateValueNoDirect();
}
// process all Callouts (no dependency check - assumed that settings are valid)
for (int i = 0; i < getFieldCount(); i++)
processCallout(getField(i));
@ -2567,8 +2562,6 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
{
Object value = m_mTable.getValueAt(m_currentRow, i);
mField.setValue(value, m_mTable.isInserting());
if (m_mTable.isInserting()) // set invalid values to null
mField.validateValue();
if (mField.isKey())
keyCalloutDelayed = mField;
}

View File

@ -2618,11 +2618,17 @@ public class GridTable extends AbstractTableModel
|| (hasDocTypeTargetField && field.getColumnName().equals("C_DocType_ID"))
|| ! field.isAllowCopy())
{
rowData[i] = field.getDefault();
field.setValue(rowData[i], m_inserting);
Object value = field.getDefault();
field.setValue(value, m_inserting);
field.validateValueNoDirect();
rowData[i] = field.getValue();
}
else {
Object value = origData[i];
field.setValue(value, m_inserting);
field.validateValueNoDirect();
rowData[i] = field.getValue();
}
else
rowData[i] = origData[i];
}
}
else // new
@ -2630,8 +2636,10 @@ public class GridTable extends AbstractTableModel
for (int i = 0; i < size; i++)
{
GridField field = (GridField)m_fields.get(i);
rowData[i] = field.getDefault();
field.setValue(rowData[i], m_inserting);
Object value = field.getDefault();
field.setValue(value, m_inserting);
field.validateValueNoDirect();
rowData[i] = field.getValue();
}
}