Merge 1504e61
This commit is contained in:
commit
6c89a97f01
|
@ -9,8 +9,11 @@ CREATE OR REPLACE VIEW AD_FIELD_V AS
|
||||||
COALESCE(f.IsMandatory, c.IsMandatory) AS IsMandatory,
|
COALESCE(f.IsMandatory, c.IsMandatory) AS IsMandatory,
|
||||||
c.IsIdentifier, c.IsTranslated, COALESCE(f.AD_Reference_Value_ID, c.AD_Reference_Value_ID) AS AD_Reference_Value_ID,
|
c.IsIdentifier, c.IsTranslated, COALESCE(f.AD_Reference_Value_ID, c.AD_Reference_Value_ID) AS AD_Reference_Value_ID,
|
||||||
c.Callout, COALESCE(f.AD_Reference_ID, c.AD_Reference_ID) AS AD_Reference_ID,
|
c.Callout, COALESCE(f.AD_Reference_ID, c.AD_Reference_ID) AS AD_Reference_ID,
|
||||||
COALESCE(f.AD_Val_Rule_ID, c.AD_Val_Rule_ID) AS AD_Val_Rule_ID, c.AD_Process_ID, c.IsAlwaysUpdateable,
|
COALESCE(f.AD_Val_Rule_ID, c.AD_Val_Rule_ID) AS AD_Val_Rule_ID, c.AD_Process_ID,
|
||||||
c.ReadOnlyLogic, c.MandatoryLogic, c.IsUpdateable, c.IsEncrypted AS IsEncryptedColumn,
|
COALESCE(f.Isalwaysupdateable , C.Isalwaysupdateable) As Isalwaysupdateable,
|
||||||
|
COALESCE(f.Readonlylogic, c.Readonlylogic ) As Readonlylogic,
|
||||||
|
COALESCE(f.Mandatorylogic , C.Mandatorylogic) As Mandatorylogic,
|
||||||
|
COALESCE(f.isupdateable, c.isupdateable) AS isupdateable, c.IsEncrypted AS IsEncryptedColumn,
|
||||||
c.IsSelectionColumn,
|
c.IsSelectionColumn,
|
||||||
tbl.TableName, c.ValueMin, c.ValueMax,
|
tbl.TableName, c.ValueMin, c.ValueMax,
|
||||||
fg.NAME AS FieldGroup, vr.Code AS ValidationCode,
|
fg.NAME AS FieldGroup, vr.Code AS ValidationCode,
|
||||||
|
@ -19,13 +22,13 @@ CREATE OR REPLACE VIEW AD_FIELD_V AS
|
||||||
c.IsAutocomplete, COALESCE(f.IsAllowCopy, c.IsAllowCopy) AS IsAllowCopy,
|
c.IsAutocomplete, COALESCE(f.IsAllowCopy, c.IsAllowCopy) AS IsAllowCopy,
|
||||||
f.isdisplayedgrid,
|
f.isdisplayedgrid,
|
||||||
f.seqnogrid,
|
f.seqnogrid,
|
||||||
c.seqnoselection, f.xposition, f.columnspan, f.numlines, c.isToolbarButton
|
c.seqnoselection, f.xposition, f.columnspan, f.numlines,
|
||||||
|
COALESCE(f.istoolbarbutton , c.istoolbarbutton ) As istoolbarbutton
|
||||||
FROM AD_FIELD f
|
FROM AD_FIELD f
|
||||||
INNER JOIN AD_TAB t ON (f.AD_Tab_ID = t.AD_Tab_ID)
|
INNER JOIN AD_TAB t ON (f.AD_Tab_ID = t.AD_Tab_ID)
|
||||||
LEFT OUTER JOIN AD_FIELDGROUP fg ON (f.AD_FieldGroup_ID = fg.AD_FieldGroup_ID)
|
LEFT OUTER JOIN AD_FIELDGROUP fg ON (f.AD_FieldGroup_ID = fg.AD_FieldGroup_ID)
|
||||||
LEFT OUTER JOIN AD_COLUMN c ON (f.AD_Column_ID = c.AD_Column_ID)
|
LEFT OUTER JOIN AD_COLUMN c ON (f.AD_Column_ID = c.AD_Column_ID)
|
||||||
INNER JOIN AD_TABLE tbl ON (c.AD_Table_ID = tbl.AD_Table_ID)
|
INNER JOIN AD_TABLE tbl ON (c.AD_Table_ID = tbl.AD_Table_ID)
|
||||||
INNER JOIN AD_REFERENCE r ON (c.AD_Reference_ID = r.AD_Reference_ID)
|
|
||||||
LEFT OUTER JOIN AD_VAL_RULE vr ON (vr.AD_Val_Rule_ID = COALESCE(f.AD_Val_Rule_ID, c.AD_Val_Rule_ID))
|
LEFT OUTER JOIN AD_VAL_RULE vr ON (vr.AD_Val_Rule_ID = COALESCE(f.AD_Val_Rule_ID, c.AD_Val_Rule_ID))
|
||||||
WHERE f.IsActive = 'Y'
|
WHERE f.IsActive = 'Y'
|
||||||
AND c.IsActive = 'Y';
|
AND c.IsActive = 'Y';
|
||||||
|
|
|
@ -9,8 +9,11 @@ CREATE OR REPLACE VIEW AD_FIELD_VT AS
|
||||||
COALESCE(f.IsMandatory, c.IsMandatory) AS IsMandatory,
|
COALESCE(f.IsMandatory, c.IsMandatory) AS IsMandatory,
|
||||||
c.IsIdentifier, c.IsTranslated, COALESCE(f.AD_Reference_Value_ID, c.AD_Reference_Value_ID) AS AD_Reference_Value_ID,
|
c.IsIdentifier, c.IsTranslated, COALESCE(f.AD_Reference_Value_ID, c.AD_Reference_Value_ID) AS AD_Reference_Value_ID,
|
||||||
c.Callout, COALESCE(f.AD_Reference_ID, c.AD_Reference_ID) AS AD_Reference_ID,
|
c.Callout, COALESCE(f.AD_Reference_ID, c.AD_Reference_ID) AS AD_Reference_ID,
|
||||||
COALESCE(f.AD_Val_Rule_ID, c.AD_Val_Rule_ID) as AD_Val_Rule_ID, c.AD_Process_ID, c.IsAlwaysUpdateable,
|
COALESCE(f.AD_Val_Rule_ID, c.AD_Val_Rule_ID) as AD_Val_Rule_ID, c.AD_Process_ID,
|
||||||
c.ReadOnlyLogic, c.MandatoryLogic, c.IsUpdateable, c.IsEncrypted AS IsEncryptedColumn, c.IsSelectionColumn,
|
COALESCE(f.Isalwaysupdateable , C.Isalwaysupdateable) As Isalwaysupdateable,
|
||||||
|
COALESCE(f.Readonlylogic, c.Readonlylogic ) As Readonlylogic,
|
||||||
|
COALESCE(f.Mandatorylogic , C.Mandatorylogic) As Mandatorylogic,
|
||||||
|
COALESCE(f.isupdateable, c.isupdateable) AS isupdateable, c.IsEncrypted AS IsEncryptedColumn, c.IsSelectionColumn,
|
||||||
tbl.TableName, c.ValueMin, c.ValueMax,
|
tbl.TableName, c.ValueMin, c.ValueMax,
|
||||||
fgt.NAME AS FieldGroup, vr.Code AS ValidationCode,
|
fgt.NAME AS FieldGroup, vr.Code AS ValidationCode,
|
||||||
f.Included_Tab_ID, fg.FieldGroupType, fg.IsCollapsedByDefault,
|
f.Included_Tab_ID, fg.FieldGroupType, fg.IsCollapsedByDefault,
|
||||||
|
@ -18,7 +21,8 @@ CREATE OR REPLACE VIEW AD_FIELD_VT AS
|
||||||
c.IsAutocomplete, COALESCE(f.IsAllowCopy, c.IsAllowCopy) AS IsAllowCopy,
|
c.IsAutocomplete, COALESCE(f.IsAllowCopy, c.IsAllowCopy) AS IsAllowCopy,
|
||||||
f.isdisplayedgrid,
|
f.isdisplayedgrid,
|
||||||
f.seqnogrid,
|
f.seqnogrid,
|
||||||
c.seqnoselection, f.xposition, f.columnspan, f.numlines, c.isToolbarButton
|
c.seqnoselection, f.xposition, f.columnspan, f.numlines,
|
||||||
|
COALESCE(f.istoolbarbutton , c.istoolbarbutton ) As istoolbarbutton
|
||||||
FROM AD_FIELD f
|
FROM AD_FIELD f
|
||||||
INNER JOIN AD_FIELD_TRL trl ON (f.AD_Field_ID = trl.AD_Field_ID)
|
INNER JOIN AD_FIELD_TRL trl ON (f.AD_Field_ID = trl.AD_Field_ID)
|
||||||
INNER JOIN AD_TAB t ON (f.AD_Tab_ID = t.AD_Tab_ID)
|
INNER JOIN AD_TAB t ON (f.AD_Tab_ID = t.AD_Tab_ID)
|
||||||
|
@ -27,7 +31,6 @@ CREATE OR REPLACE VIEW AD_FIELD_VT AS
|
||||||
(f.AD_FieldGroup_ID = fgt.AD_FieldGroup_ID AND trl.AD_LANGUAGE=fgt.AD_LANGUAGE)
|
(f.AD_FieldGroup_ID = fgt.AD_FieldGroup_ID AND trl.AD_LANGUAGE=fgt.AD_LANGUAGE)
|
||||||
LEFT OUTER JOIN AD_COLUMN c ON (f.AD_Column_ID = c.AD_Column_ID)
|
LEFT OUTER JOIN AD_COLUMN c ON (f.AD_Column_ID = c.AD_Column_ID)
|
||||||
INNER JOIN AD_TABLE tbl ON (c.AD_Table_ID = tbl.AD_Table_ID)
|
INNER JOIN AD_TABLE tbl ON (c.AD_Table_ID = tbl.AD_Table_ID)
|
||||||
INNER JOIN AD_REFERENCE r ON (c.AD_Reference_ID = r.AD_Reference_ID)
|
|
||||||
LEFT OUTER JOIN AD_VAL_RULE vr ON (vr.AD_Val_Rule_ID=COALESCE(f.AD_Val_Rule_ID, c.AD_Val_Rule_ID))
|
LEFT OUTER JOIN AD_VAL_RULE vr ON (vr.AD_Val_Rule_ID=COALESCE(f.AD_Val_Rule_ID, c.AD_Val_Rule_ID))
|
||||||
WHERE f.IsActive = 'Y'
|
WHERE f.IsActive = 'Y'
|
||||||
AND c.IsActive = 'Y';
|
AND c.IsActive = 'Y';
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
CREATE OR REPLACE VIEW m_storage
|
||||||
|
AS
|
||||||
|
SELECT s.m_product_id,
|
||||||
|
s.m_locator_id,
|
||||||
|
s.ad_client_id,
|
||||||
|
s.ad_org_id,
|
||||||
|
s.isactive,
|
||||||
|
s.created,
|
||||||
|
s.createdby,
|
||||||
|
s.updated,
|
||||||
|
s.updatedby,
|
||||||
|
s.qtyonhand,
|
||||||
|
0 AS qtyreserved,
|
||||||
|
0 AS qtyordered,
|
||||||
|
s.datelastinventory,
|
||||||
|
s.m_attributesetinstance_id,
|
||||||
|
s.m_storageonhand_uu
|
||||||
|
FROM m_storageonhand s
|
||||||
|
UNION
|
||||||
|
SELECT sr.m_product_id,
|
||||||
|
w.m_reservelocator_id AS m_locator_id,
|
||||||
|
sr.ad_client_id,
|
||||||
|
sr.ad_org_id,
|
||||||
|
sr.isactive,
|
||||||
|
sr.created,
|
||||||
|
sr.createdby,
|
||||||
|
sr.updated,
|
||||||
|
sr.updatedby,
|
||||||
|
0 AS qtyonhand,
|
||||||
|
sr.qty AS qtyreserved,
|
||||||
|
0 AS qtyordered,
|
||||||
|
sr.datelastinventory,
|
||||||
|
sr.m_attributesetinstance_id,
|
||||||
|
sr.m_storagereservation_uu
|
||||||
|
FROM m_storagereservation sr
|
||||||
|
JOIN m_warehouse w
|
||||||
|
ON sr.m_warehouse_id = w.m_warehouse_id
|
||||||
|
WHERE sr.issotrx = 'Y'
|
||||||
|
UNION
|
||||||
|
SELECT so.m_product_id,
|
||||||
|
w.m_reservelocator_id AS m_locator_id,
|
||||||
|
so.ad_client_id,
|
||||||
|
so.ad_org_id,
|
||||||
|
so.isactive,
|
||||||
|
so.created,
|
||||||
|
so.createdby,
|
||||||
|
so.updated,
|
||||||
|
so.updatedby,
|
||||||
|
0 AS qtyonhand,
|
||||||
|
0 AS qtyreserved,
|
||||||
|
so.qty AS qtyordered,
|
||||||
|
so.datelastinventory,
|
||||||
|
so.m_attributesetinstance_id,
|
||||||
|
so.m_storagereservation_uu
|
||||||
|
FROM m_storagereservation so
|
||||||
|
JOIN m_warehouse w
|
||||||
|
ON so.m_warehouse_id = w.m_warehouse_id
|
||||||
|
WHERE so.issotrx = 'N'
|
||||||
|
;
|
|
@ -0,0 +1,14 @@
|
||||||
|
CREATE OR REPLACE VIEW rv_storage_per_product AS
|
||||||
|
SELECT strg.AD_Client_ID, strg.AD_Org_ID
|
||||||
|
, p.M_Product_ID, p.Value, p.Name
|
||||||
|
, p.Description, p.UPC, p.SKU
|
||||||
|
, p.C_UOM_ID, p.M_Product_Category_ID, p.Classification, p.Weight, p.Volume, p.VersionNo
|
||||||
|
, p.GuaranteeDays, p.GuaranteeDaysMin
|
||||||
|
, strg.SumQtyOnHand
|
||||||
|
FROM M_Product p
|
||||||
|
INNER JOIN ( SELECT M_Product_ID, M_Locator_ID, SUM (QtyOnHand) as SumQtyOnHand
|
||||||
|
, AD_Client_ID, AD_Org_ID
|
||||||
|
FROM RV_Storage
|
||||||
|
GROUP BY M_Product_ID, M_Locator_ID, AD_Client_ID, AD_Org_ID) strg ON (p.M_Product_ID = strg.M_Product_ID)
|
||||||
|
INNER JOIN M_Locator l ON (strg.M_Locator_ID=l.M_Locator_ID)
|
||||||
|
;
|
|
@ -0,0 +1,111 @@
|
||||||
|
create or replace function altercolumn(tablename name, columnname name, datatype name,
|
||||||
|
nullclause varchar, defaultclause varchar) returns void as $$
|
||||||
|
declare
|
||||||
|
command text;
|
||||||
|
viewtext text[];
|
||||||
|
viewname name[];
|
||||||
|
dropviews name[];
|
||||||
|
i int;
|
||||||
|
j int;
|
||||||
|
v record;
|
||||||
|
sqltype text;
|
||||||
|
sqltype_short text;
|
||||||
|
typename name;
|
||||||
|
begin
|
||||||
|
if datatype is not null then
|
||||||
|
select pg_type.typname, format_type(pg_type.oid, pg_attribute.atttypmod)
|
||||||
|
into typename, sqltype
|
||||||
|
from pg_class, pg_attribute, pg_type
|
||||||
|
where relname = lower(tablename)
|
||||||
|
and relkind = 'r'
|
||||||
|
and pg_class.oid = pg_attribute.attrelid
|
||||||
|
and attname = lower(columnname)
|
||||||
|
and atttypid = pg_type.oid;
|
||||||
|
sqltype_short := sqltype;
|
||||||
|
if typename = 'numeric' then
|
||||||
|
sqltype_short := replace(sqltype, ',0', '');
|
||||||
|
elsif strpos(sqltype,'character varying') = 1 then
|
||||||
|
sqltype_short := replace(sqltype, 'character varying', 'varchar');
|
||||||
|
elsif sqltype = 'timestamp without time zone' then
|
||||||
|
sqltype_short := 'timestamp';
|
||||||
|
end if;
|
||||||
|
if lower(datatype) <> sqltype and lower(datatype) <> sqltype_short then
|
||||||
|
i := 0;
|
||||||
|
for v in select a.relname, a.oid
|
||||||
|
from pg_class a, pg_depend b, pg_depend c, pg_class d, pg_attribute e
|
||||||
|
where a.oid = b.refobjid
|
||||||
|
and b.objid = c.objid
|
||||||
|
and b.refobjid <> c.refobjid
|
||||||
|
and b.deptype = 'n'
|
||||||
|
and c.refobjid = d.oid
|
||||||
|
and d.relname = lower(tablename)
|
||||||
|
and d.relkind = 'r'
|
||||||
|
and d.oid = e.attrelid
|
||||||
|
and e.attname = lower(columnname)
|
||||||
|
and c.refobjsubid = e.attnum
|
||||||
|
and a.relkind = 'v'
|
||||||
|
loop
|
||||||
|
i := i + 1;
|
||||||
|
viewtext[i] := pg_get_viewdef(v.oid);
|
||||||
|
viewname[i] := v.relname;
|
||||||
|
end loop;
|
||||||
|
if i > 0 then
|
||||||
|
begin
|
||||||
|
for j in 1 .. i loop
|
||||||
|
command := 'drop view ' || viewname[j];
|
||||||
|
execute command;
|
||||||
|
dropviews[j] := viewname[j];
|
||||||
|
end loop;
|
||||||
|
exception
|
||||||
|
when others then
|
||||||
|
i := array_upper(dropviews, 1);
|
||||||
|
if i > 0 then
|
||||||
|
for j in 1 .. i loop
|
||||||
|
command := 'create or replace view ' || dropviews[j] || ' as ' || viewtext[j];
|
||||||
|
execute command;
|
||||||
|
end loop;
|
||||||
|
end if;
|
||||||
|
raise exception 'Failed to recreate dependent view';
|
||||||
|
end;
|
||||||
|
end if;
|
||||||
|
command := 'alter table ' || lower(tablename) || ' alter column ' || lower(columnname) || ' type ' || lower(datatype);
|
||||||
|
execute command;
|
||||||
|
i := array_upper(dropviews, 1);
|
||||||
|
if i > 0 then
|
||||||
|
for j in 1 .. i loop
|
||||||
|
command := 'create or replace view ' || dropviews[j] || ' as ' || viewtext[j];
|
||||||
|
execute command;
|
||||||
|
end loop;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
|
||||||
|
if defaultclause is not null then
|
||||||
|
if lower(defaultclause) = 'null' then
|
||||||
|
command := 'alter table ' || lower(tablename) || ' alter column ' || lower(columnname) || ' drop default ';
|
||||||
|
else
|
||||||
|
command := 'alter table ' || lower(tablename) || ' alter column ' || lower(columnname) || ' set default ''' || defaultclause || '''';
|
||||||
|
end if;
|
||||||
|
execute command;
|
||||||
|
end if;
|
||||||
|
|
||||||
|
if nullclause is not null then
|
||||||
|
if lower(nullclause) = 'not null' then
|
||||||
|
command := 'alter table ' || lower(tablename) || ' alter column ' || lower(columnname) || ' set not null';
|
||||||
|
execute command;
|
||||||
|
elsif lower(nullclause) = 'null' then
|
||||||
|
command := 'alter table ' || lower(tablename) || ' alter column ' || lower(columnname) || ' drop not null';
|
||||||
|
execute command;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
end;
|
||||||
|
$$ language plpgsql;
|
||||||
|
|
||||||
|
/*
|
||||||
|
create table t_alter_column
|
||||||
|
( tablename name, columnname name, datatype name, nullclause varchar(10), defaultclause varchar(200));
|
||||||
|
|
||||||
|
create rule alter_column_rule as on insert to t_alter_column
|
||||||
|
do instead select altercolumn(new.tablename, new.columnname, new.datatype, new.nullclause,
|
||||||
|
new.defaultclause);
|
||||||
|
*/
|
|
@ -8,19 +8,22 @@ CREATE OR REPLACE VIEW ad_field_v AS
|
||||||
COALESCE(f.ad_reference_value_id, c.ad_reference_value_id) AS ad_reference_value_id, c.callout,
|
COALESCE(f.ad_reference_value_id, c.ad_reference_value_id) AS ad_reference_value_id, c.callout,
|
||||||
COALESCE(f.ad_reference_id, c.ad_reference_id) AS ad_reference_id,
|
COALESCE(f.ad_reference_id, c.ad_reference_id) AS ad_reference_id,
|
||||||
COALESCE(f.ad_val_rule_id, c.ad_val_rule_id) AS ad_val_rule_id, c.ad_process_id,
|
COALESCE(f.ad_val_rule_id, c.ad_val_rule_id) AS ad_val_rule_id, c.ad_process_id,
|
||||||
c.isalwaysupdateable, c.readonlylogic, c.mandatorylogic, c.isupdateable,
|
COALESCE(f.Isalwaysupdateable , C.Isalwaysupdateable) As Isalwaysupdateable,
|
||||||
|
COALESCE(f.Readonlylogic, c.Readonlylogic ) As Readonlylogic,
|
||||||
|
COALESCE(f.Mandatorylogic , C.Mandatorylogic) As Mandatorylogic,
|
||||||
|
COALESCE(f.isupdateable, c.isupdateable) AS isupdateable,
|
||||||
c.isencrypted AS isencryptedcolumn, c.isselectioncolumn, tbl.tablename, c.valuemin, c.valuemax,
|
c.isencrypted AS isencryptedcolumn, c.isselectioncolumn, tbl.tablename, c.valuemin, c.valuemax,
|
||||||
fg.name AS fieldgroup, vr.code AS validationcode, f.included_tab_id, fg.fieldgrouptype, fg.iscollapsedbydefault,
|
fg.name AS fieldgroup, vr.code AS validationcode, f.included_tab_id, fg.fieldgrouptype, fg.iscollapsedbydefault,
|
||||||
COALESCE(f.infofactoryclass, c.infofactoryclass) AS infofactoryclass, c.isautocomplete,
|
COALESCE(f.infofactoryclass, c.infofactoryclass) AS infofactoryclass, c.isautocomplete,
|
||||||
COALESCE(f.IsAllowCopy, c.IsAllowCopy) AS IsAllowCopy,
|
COALESCE(f.IsAllowCopy, c.IsAllowCopy) AS IsAllowCopy,
|
||||||
f.isdisplayedgrid,
|
f.isdisplayedgrid,
|
||||||
f.seqnogrid,
|
f.seqnogrid,
|
||||||
c.seqnoselection, f.xposition, f.columnspan, f.numlines, c.isToolbarButton
|
c.seqnoselection, f.xposition, f.columnspan, f.numlines,
|
||||||
|
COALESCE(f.istoolbarbutton , c.istoolbarbutton ) As istoolbarbutton
|
||||||
FROM ad_field f
|
FROM ad_field f
|
||||||
JOIN ad_tab t ON f.ad_tab_id = t.ad_tab_id
|
JOIN ad_tab t ON f.ad_tab_id = t.ad_tab_id
|
||||||
LEFT JOIN ad_fieldgroup fg ON f.ad_fieldgroup_id = fg.ad_fieldgroup_id
|
LEFT JOIN ad_fieldgroup fg ON f.ad_fieldgroup_id = fg.ad_fieldgroup_id
|
||||||
LEFT JOIN ad_column c ON f.ad_column_id = c.ad_column_id
|
LEFT JOIN ad_column c ON f.ad_column_id = c.ad_column_id
|
||||||
JOIN ad_table tbl ON c.ad_table_id = tbl.ad_table_id
|
JOIN ad_table tbl ON c.ad_table_id = tbl.ad_table_id
|
||||||
JOIN ad_reference r ON c.ad_reference_id = r.ad_reference_id
|
|
||||||
LEFT JOIN ad_val_rule vr ON vr.ad_val_rule_id = COALESCE(f.ad_val_rule_id, c.ad_val_rule_id)
|
LEFT JOIN ad_val_rule vr ON vr.ad_val_rule_id = COALESCE(f.ad_val_rule_id, c.ad_val_rule_id)
|
||||||
WHERE f.isactive = 'Y'::bpchar AND c.isactive = 'Y'::bpchar;
|
WHERE f.isactive = 'Y'::bpchar AND c.isactive = 'Y'::bpchar;
|
||||||
|
|
|
@ -4,13 +4,18 @@ CREATE OR REPLACE VIEW ad_field_vt AS
|
||||||
f.isencrypted AS isencryptedfield, f.obscuretype, c.columnname, c.columnsql, c.fieldlength, c.vformat, COALESCE(f.defaultvalue, c.defaultvalue) AS defaultvalue,
|
f.isencrypted AS isencryptedfield, f.obscuretype, c.columnname, c.columnsql, c.fieldlength, c.vformat, COALESCE(f.defaultvalue, c.defaultvalue) AS defaultvalue,
|
||||||
c.iskey, c.isparent, COALESCE(f.ismandatory, c.ismandatory) AS ismandatory, c.isidentifier, c.istranslated,
|
c.iskey, c.isparent, COALESCE(f.ismandatory, c.ismandatory) AS ismandatory, c.isidentifier, c.istranslated,
|
||||||
COALESCE(f.ad_reference_value_id, c.ad_reference_value_id) AS ad_reference_value_id, c.callout, COALESCE(f.ad_reference_id, c.ad_reference_id) AS ad_reference_id,
|
COALESCE(f.ad_reference_value_id, c.ad_reference_value_id) AS ad_reference_value_id, c.callout, COALESCE(f.ad_reference_id, c.ad_reference_id) AS ad_reference_id,
|
||||||
COALESCE(f.ad_val_rule_id, c.ad_val_rule_id) AS ad_val_rule_id, c.ad_process_id, c.isalwaysupdateable, c.readonlylogic, c.mandatorylogic, c.isupdateable,
|
COALESCE(f.ad_val_rule_id,c.ad_val_rule_id) AS ad_val_rule_id, c.ad_process_id,
|
||||||
|
COALESCE(f.Isalwaysupdateable,C.Isalwaysupdateable) As Isalwaysupdateable,
|
||||||
|
COALESCE(f.Readonlylogic,c.Readonlylogic) As Readonlylogic,
|
||||||
|
COALESCE(f.Mandatorylogic , C.Mandatorylogic) As Mandatorylogic,
|
||||||
|
COALESCE(f.isupdateable, c.isupdateable) AS isupdateable,
|
||||||
c.isencrypted AS isencryptedcolumn, c.isselectioncolumn, tbl.tablename, c.valuemin, c.valuemax, fgt.name AS fieldgroup, vr.code AS validationcode,
|
c.isencrypted AS isencryptedcolumn, c.isselectioncolumn, tbl.tablename, c.valuemin, c.valuemax, fgt.name AS fieldgroup, vr.code AS validationcode,
|
||||||
f.included_tab_id, fg.fieldgrouptype, fg.iscollapsedbydefault, COALESCE(f.infofactoryclass, c.infofactoryclass) AS infofactoryclass, c.isautocomplete,
|
f.included_tab_id, fg.fieldgrouptype, fg.iscollapsedbydefault, COALESCE(f.infofactoryclass, c.infofactoryclass) AS infofactoryclass, c.isautocomplete,
|
||||||
COALESCE(f.IsAllowCopy, c.IsAllowCopy) AS IsAllowCopy,
|
COALESCE(f.IsAllowCopy, c.IsAllowCopy) AS IsAllowCopy,
|
||||||
f.isdisplayedgrid,
|
f.isdisplayedgrid,
|
||||||
f.seqnogrid,
|
f.seqnogrid,
|
||||||
c.seqnoselection, f.xposition, f.columnspan, f.numlines, c.isToolbarButton
|
c.seqnoselection, f.xposition, f.columnspan, f.numlines,
|
||||||
|
COALESCE(f.istoolbarbutton , c.istoolbarbutton ) As istoolbarbutton
|
||||||
FROM ad_field f
|
FROM ad_field f
|
||||||
JOIN ad_field_trl trl ON f.ad_field_id = trl.ad_field_id
|
JOIN ad_field_trl trl ON f.ad_field_id = trl.ad_field_id
|
||||||
JOIN ad_tab t ON f.ad_tab_id = t.ad_tab_id
|
JOIN ad_tab t ON f.ad_tab_id = t.ad_tab_id
|
||||||
|
@ -18,6 +23,5 @@ CREATE OR REPLACE VIEW ad_field_vt AS
|
||||||
LEFT JOIN ad_fieldgroup_trl fgt ON f.ad_fieldgroup_id = fgt.ad_fieldgroup_id AND trl.ad_language::text = fgt.ad_language::text
|
LEFT JOIN ad_fieldgroup_trl fgt ON f.ad_fieldgroup_id = fgt.ad_fieldgroup_id AND trl.ad_language::text = fgt.ad_language::text
|
||||||
LEFT JOIN ad_column c ON f.ad_column_id = c.ad_column_id
|
LEFT JOIN ad_column c ON f.ad_column_id = c.ad_column_id
|
||||||
JOIN ad_table tbl ON c.ad_table_id = tbl.ad_table_id
|
JOIN ad_table tbl ON c.ad_table_id = tbl.ad_table_id
|
||||||
JOIN ad_reference r ON c.ad_reference_id = r.ad_reference_id
|
|
||||||
LEFT JOIN ad_val_rule vr ON vr.ad_val_rule_id = COALESCE(f.ad_val_rule_id, c.ad_val_rule_id)
|
LEFT JOIN ad_val_rule vr ON vr.ad_val_rule_id = COALESCE(f.ad_val_rule_id, c.ad_val_rule_id)
|
||||||
WHERE f.isactive = 'Y'::bpchar AND c.isactive = 'Y'::bpchar;
|
WHERE f.isactive = 'Y'::bpchar AND c.isactive = 'Y'::bpchar;
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
CREATE OR REPLACE VIEW m_storage
|
||||||
|
AS
|
||||||
|
SELECT s.m_product_id,
|
||||||
|
s.m_locator_id,
|
||||||
|
s.ad_client_id,
|
||||||
|
s.ad_org_id,
|
||||||
|
s.isactive,
|
||||||
|
s.created,
|
||||||
|
s.createdby,
|
||||||
|
s.updated,
|
||||||
|
s.updatedby,
|
||||||
|
s.qtyonhand,
|
||||||
|
0 AS qtyreserved,
|
||||||
|
0 AS qtyordered,
|
||||||
|
s.datelastinventory,
|
||||||
|
s.m_attributesetinstance_id,
|
||||||
|
s.m_storageonhand_uu
|
||||||
|
FROM m_storageonhand s
|
||||||
|
UNION
|
||||||
|
SELECT sr.m_product_id,
|
||||||
|
w.m_reservelocator_id AS m_locator_id,
|
||||||
|
sr.ad_client_id,
|
||||||
|
sr.ad_org_id,
|
||||||
|
sr.isactive,
|
||||||
|
sr.created,
|
||||||
|
sr.createdby,
|
||||||
|
sr.updated,
|
||||||
|
sr.updatedby,
|
||||||
|
0 AS qtyonhand,
|
||||||
|
sr.qty AS qtyreserved,
|
||||||
|
0 AS qtyordered,
|
||||||
|
sr.datelastinventory,
|
||||||
|
sr.m_attributesetinstance_id,
|
||||||
|
sr.m_storagereservation_uu
|
||||||
|
FROM m_storagereservation sr
|
||||||
|
JOIN m_warehouse w
|
||||||
|
ON sr.m_warehouse_id = w.m_warehouse_id
|
||||||
|
WHERE sr.issotrx = 'Y'
|
||||||
|
UNION
|
||||||
|
SELECT so.m_product_id,
|
||||||
|
w.m_reservelocator_id AS m_locator_id,
|
||||||
|
so.ad_client_id,
|
||||||
|
so.ad_org_id,
|
||||||
|
so.isactive,
|
||||||
|
so.created,
|
||||||
|
so.createdby,
|
||||||
|
so.updated,
|
||||||
|
so.updatedby,
|
||||||
|
0 AS qtyonhand,
|
||||||
|
0 AS qtyreserved,
|
||||||
|
so.qty AS qtyordered,
|
||||||
|
so.datelastinventory,
|
||||||
|
so.m_attributesetinstance_id,
|
||||||
|
so.m_storagereservation_uu
|
||||||
|
FROM m_storagereservation so
|
||||||
|
JOIN m_warehouse w
|
||||||
|
ON so.m_warehouse_id = w.m_warehouse_id
|
||||||
|
WHERE so.issotrx = 'N'
|
||||||
|
;
|
|
@ -0,0 +1,14 @@
|
||||||
|
CREATE OR REPLACE VIEW rv_storage_per_product AS
|
||||||
|
SELECT strg.AD_Client_ID, strg.AD_Org_ID
|
||||||
|
, p.M_Product_ID, p.Value, p.Name
|
||||||
|
, p.Description, p.UPC, p.SKU
|
||||||
|
, p.C_UOM_ID, p.M_Product_Category_ID, p.Classification, p.Weight, p.Volume, p.VersionNo
|
||||||
|
, p.GuaranteeDays, p.GuaranteeDaysMin
|
||||||
|
, strg.SumQtyOnHand
|
||||||
|
FROM M_Product p
|
||||||
|
INNER JOIN ( SELECT M_Product_ID, M_Locator_ID, SUM (QtyOnHand) as SumQtyOnHand
|
||||||
|
, AD_Client_ID, AD_Org_ID
|
||||||
|
FROM RV_Storage
|
||||||
|
GROUP BY M_Product_ID, M_Locator_ID, AD_Client_ID, AD_Org_ID) strg ON (p.M_Product_ID = strg.M_Product_ID)
|
||||||
|
INNER JOIN M_Locator l ON (strg.M_Locator_ID=l.M_Locator_ID)
|
||||||
|
;
|
|
@ -0,0 +1,379 @@
|
||||||
|
-- Oct 16, 2012 11:14:31 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Table (IsSecurityEnabled,AccessLevel,LoadSeq,AD_Table_ID,IsHighVolume,IsView,IsChangeLog,EntityType,IsCentrallyMaintained,IsDeleteable,ReplicationType,TableName,Name,AD_Client_ID,IsActive,AD_Org_ID,CreatedBy,Updated,UpdatedBy,Created) VALUES ('N','3',145,200026,'N','N','N','U','Y','N','L','M_StorageOnHand','M_StorageOnHand',0,'Y',0,100,TO_DATE('2012-10-16 11:14:30','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2012-10-16 11:14:30','YYYY-MM-DD HH24:MI:SS'))
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:31 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Table_Trl (AD_Language,AD_Table_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Table_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Table t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Table_ID=200026 AND NOT EXISTS (SELECT * FROM AD_Table_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Table_ID=t.AD_Table_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:34 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Sequence (IncrementNo,StartNewYear,CurrentNextSys,IsTableID,CreatedBy,StartNo,CurrentNext,IsAudited,IsAutoSequence,AD_Sequence_ID,Description,Name,AD_Org_ID,AD_Client_ID,Updated,UpdatedBy,Created,IsActive) VALUES (1,'N',200000,'Y',100,1000000,1000000,'N','Y',200026,'Table M_StorageOnHand','M_StorageOnHand',0,0,TO_DATE('2012-10-16 11:14:31','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2012-10-16 11:14:31','YYYY-MM-DD HH24:MI:SS'),'Y')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:41 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (DefaultValue,AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,AD_Val_Rule_ID,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES ('@AD_Client_ID@',200026,200614,'U',1,'Y','N','N','A Client is a company or a legal entity. You cannot share data between Clients. Tenant is a synonym for Client.','N',22,'N',19,'N',129,'N',102,'N','Y','N','N','N','AD_Client_ID','Client/Tenant for this installation.','Client','N',100,TO_DATE('2012-10-16 11:14:40','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:14:40','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:41 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200614 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:42 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (DefaultValue,AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,AD_Val_Rule_ID,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES ('@AD_Org_ID@',200026,200615,'U',1,'Y','N','N','An organization is a unit of your client or legal entity - examples are store, department. You can share data between organizations.','N',22,'N',19,'N',130,'N',113,'N','Y','N','N','N','AD_Org_ID','Organizational entity within client','Organization','N',100,TO_DATE('2012-10-16 11:14:41','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:14:41','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:42 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200615 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:45 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200026,200616,'U',1,'Y','N','N','The Created field indicates the date that this record was created.','N',7,'N',16,'N','N',245,'N','Y','N','N','N','Created','Date this record was created','Created','N',100,TO_DATE('2012-10-16 11:14:42','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:14:42','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:45 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200616 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:46 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,AD_Reference_Value_ID,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200026,200617,'U',1,110,'Y','N','N','The Created By field indicates the user who created this record.','N',22,'N',18,'N','N',246,'N','Y','N','N','N','CreatedBy','User who created this records','Created By','N',100,TO_DATE('2012-10-16 11:14:45','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:14:45','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:46 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200617 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:48 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200026,200618,'U',1,'N','N','N','The Date Last Inventory Count indicates the last time an Inventory count was done.','N',7,'N',15,'N','N',1088,'N','Y','N','Y','N','DateLastInventory','Date of Last Inventory Count','Date last inventory count','Y',100,TO_DATE('2012-10-16 11:14:46','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:14:46','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:48 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200618 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:50 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (DefaultValue,AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES ('Y',200026,200619,'U',1,'Y','N','N','There are two methods of making records unavailable in the system: One is to delete the record, the other is to de-activate the record. A de-activated record is not available for selection, but available for reports.
|
||||||
|
There are two reasons for de-activating and not deleting records:
|
||||||
|
(1) The system requires the record for audit purposes.
|
||||||
|
(2) The record is referenced by other records. E.g., you cannot delete a Business Partner, if there are invoices for this partner record existing. You de-activate the Business Partner and prevent that this record is used for future entries.','N',1,'N',20,'N','N',348,'N','Y','N','N','N','IsActive','The record is active in the system','Active','N',100,TO_DATE('2012-10-16 11:14:48','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:14:48','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:50 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200619 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:51 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,SeqNo,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200026,200620,'U',1,'Y','N','N',0,'The values of the actual Product Attribute Instances. The product level attributes are defined on Product level.','Y',22,'N',35,'N','N',2019,'N','Y','N','N','N','M_AttributeSetInstance_ID','Product Attribute Set Instance','Attribute Set Instance','Y',100,TO_DATE('2012-10-16 11:14:50','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:14:50','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:51 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200620 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:52 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200026,200621,'U',1,'Y','N','N','The Locator indicates where in a Warehouse a product is located.','Y',22,'N',31,'N','N',448,'N','Y','N','N','N','M_Locator_ID','Warehouse Locator','Locator','Y',100,TO_DATE('2012-10-16 11:14:51','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:14:51','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:52 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200621 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:52 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,AD_Val_Rule_ID,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200026,200622,'U',1,'Y','N','N','Identifies an item which is either purchased or sold in this organization.','Y',22,'N',30,'N',231,'N',454,'N','Y','N','N','N','M_Product_ID','Product, Service, Item','Product','Y',100,TO_DATE('2012-10-16 11:14:52','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:14:52','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:52 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200622 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:53 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200026,200623,'U',1,'Y','N','N','The On Hand Quantity indicates the quantity of a product that is on hand in a warehouse.','N',22,'N',29,'N','N',530,'N','Y','N','N','N','QtyOnHand','On Hand Quantity','On Hand Quantity','Y',100,TO_DATE('2012-10-16 11:14:52','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:14:52','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:53 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200623 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:55 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200026,200624,'U',1,'Y','N','N','The Ordered Quantity indicates the quantity of a product that was ordered.','N',22,'N',29,'N','N',531,'N','Y','N','N','N','QtyOrdered','Ordered Quantity','Ordered Quantity','Y',100,TO_DATE('2012-10-16 11:14:53','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:14:53','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:55 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200624 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:56 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200026,200625,'U',1,'Y','N','N','The Reserved Quantity indicates the quantity of a product that is currently reserved.','N',22,'N',29,'N','N',532,'N','Y','N','N','N','QtyReserved','Reserved Quantity','Reserved Quantity','Y',100,TO_DATE('2012-10-16 11:14:55','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:14:55','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:56 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200625 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:56 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200026,200626,'U',1,'Y','N','N','The Updated field indicates the date that this record was updated.','N',7,'N',16,'N','N',607,'N','Y','N','N','N','Updated','Date this record was updated','Updated','N',100,TO_DATE('2012-10-16 11:14:56','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:14:56','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:56 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200626 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:57 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,AD_Reference_Value_ID,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200026,200627,'U',1,110,'Y','N','N','The Updated By field indicates the user who updated this record.','N',22,'N',18,'N','N',608,'N','Y','N','N','N','UpdatedBy','User who updated this records','Updated By','N',100,TO_DATE('2012-10-16 11:14:56','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:14:56','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:57 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200627 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:15:19 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
DELETE FROM AD_Column_Trl WHERE AD_Column_ID=200624
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:15:19 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
DELETE FROM AD_Column WHERE AD_Column_ID=200624
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:15:19 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
DELETE FROM AD_Column_Trl WHERE AD_Column_ID=200625
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:15:19 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
DELETE FROM AD_Column WHERE AD_Column_ID=200625
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:15:32 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
CREATE TABLE M_StorageOnHand (AD_Client_ID NUMBER(10) NOT NULL, AD_Org_ID NUMBER(10) NOT NULL, Created DATE NOT NULL, CreatedBy NUMBER(10) NOT NULL, DateLastInventory DATE DEFAULT NULL , IsActive CHAR(1) DEFAULT 'Y' CHECK (IsActive IN ('Y','N')) NOT NULL, M_AttributeSetInstance_ID NUMBER(10) NOT NULL, M_Locator_ID NUMBER(10) NOT NULL, M_Product_ID NUMBER(10) NOT NULL, QtyOnHand NUMBER NOT NULL, Updated DATE NOT NULL, UpdatedBy NUMBER(10) NOT NULL, CONSTRAINT M_StorageOnHand_Key PRIMARY KEY (M_AttributeSetInstance_ID, M_Locator_ID, M_Product_ID))
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:16 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Table (IsSecurityEnabled,AccessLevel,LoadSeq,AD_Table_ID,IsHighVolume,IsView,IsChangeLog,EntityType,IsCentrallyMaintained,IsDeleteable,ReplicationType,TableName,Name,AD_Client_ID,IsActive,AD_Org_ID,CreatedBy,Updated,UpdatedBy,Created) VALUES ('N','3',145,200027,'N','N','N','U','Y','N','L','M_StorageReservation','M_StorageReservation',0,'Y',0,100,TO_DATE('2012-10-16 11:16:15','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2012-10-16 11:16:15','YYYY-MM-DD HH24:MI:SS'))
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:16 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Table_Trl (AD_Language,AD_Table_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Table_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Table t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Table_ID=200027 AND NOT EXISTS (SELECT * FROM AD_Table_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Table_ID=t.AD_Table_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:17 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Sequence (IncrementNo,StartNewYear,CurrentNextSys,IsTableID,CreatedBy,StartNo,CurrentNext,IsAudited,IsAutoSequence,AD_Sequence_ID,Description,Name,AD_Org_ID,AD_Client_ID,Updated,UpdatedBy,Created,IsActive) VALUES (1,'N',200000,'Y',100,1000000,1000000,'N','Y',200027,'Table M_StorageReservation','M_StorageReservation',0,0,TO_DATE('2012-10-16 11:16:16','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2012-10-16 11:16:16','YYYY-MM-DD HH24:MI:SS'),'Y')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:24 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (DefaultValue,AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,AD_Val_Rule_ID,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES ('@AD_Client_ID@',200027,200628,'U',1,'Y','N','N','A Client is a company or a legal entity. You cannot share data between Clients. Tenant is a synonym for Client.','N',22,'N',19,'N',129,'N',102,'N','Y','N','N','N','AD_Client_ID','Client/Tenant for this installation.','Client','N',100,TO_DATE('2012-10-16 11:16:23','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:16:23','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:24 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200628 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:24 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (DefaultValue,AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,AD_Val_Rule_ID,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES ('@AD_Org_ID@',200027,200629,'U',1,'Y','N','N','An organization is a unit of your client or legal entity - examples are store, department. You can share data between organizations.','N',22,'N',19,'N',130,'N',113,'N','Y','N','N','N','AD_Org_ID','Organizational entity within client','Organization','N',100,TO_DATE('2012-10-16 11:16:24','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:16:24','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:24 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200629 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:25 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200027,200630,'U',1,'Y','N','N','The Created field indicates the date that this record was created.','N',7,'N',16,'N','N',245,'N','Y','N','N','N','Created','Date this record was created','Created','N',100,TO_DATE('2012-10-16 11:16:24','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:16:24','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:25 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200630 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:26 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,AD_Reference_Value_ID,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200027,200631,'U',1,110,'Y','N','N','The Created By field indicates the user who created this record.','N',22,'N',18,'N','N',246,'N','Y','N','N','N','CreatedBy','User who created this records','Created By','N',100,TO_DATE('2012-10-16 11:16:25','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:16:25','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:26 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200631 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:28 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200027,200632,'U',1,'N','N','N','The Date Last Inventory Count indicates the last time an Inventory count was done.','N',7,'N',15,'N','N',1088,'N','Y','N','Y','N','DateLastInventory','Date of Last Inventory Count','Date last inventory count','Y',100,TO_DATE('2012-10-16 11:16:26','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:16:26','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:28 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200632 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:29 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (DefaultValue,AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES ('Y',200027,200633,'U',1,'Y','N','N','There are two methods of making records unavailable in the system: One is to delete the record, the other is to de-activate the record. A de-activated record is not available for selection, but available for reports.
|
||||||
|
There are two reasons for de-activating and not deleting records:
|
||||||
|
(1) The system requires the record for audit purposes.
|
||||||
|
(2) The record is referenced by other records. E.g., you cannot delete a Business Partner, if there are invoices for this partner record existing. You de-activate the Business Partner and prevent that this record is used for future entries.','N',1,'N',20,'N','N',348,'N','Y','N','N','N','IsActive','The record is active in the system','Active','N',100,TO_DATE('2012-10-16 11:16:28','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:16:28','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:29 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200633 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:29 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,SeqNo,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200027,200634,'U',1,'Y','N','N',0,'The values of the actual Product Attribute Instances. The product level attributes are defined on Product level.','Y',22,'N',35,'N','N',2019,'N','Y','N','N','N','M_AttributeSetInstance_ID','Product Attribute Set Instance','Attribute Set Instance','Y',100,TO_DATE('2012-10-16 11:16:29','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:16:29','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:29 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200634 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:30 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200027,200635,'U',1,'Y','N','N','The Locator indicates where in a Warehouse a product is located.','Y',22,'N',31,'N','N',448,'N','Y','N','N','N','M_Locator_ID','Warehouse Locator','Locator','Y',100,TO_DATE('2012-10-16 11:16:29','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:16:29','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:30 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200635 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:31 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,AD_Val_Rule_ID,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200027,200636,'U',1,'Y','N','N','Identifies an item which is either purchased or sold in this organization.','Y',22,'N',30,'N',231,'N',454,'N','Y','N','N','N','M_Product_ID','Product, Service, Item','Product','Y',100,TO_DATE('2012-10-16 11:16:30','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:16:30','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:31 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200636 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:32 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200027,200637,'U',1,'Y','N','N','The On Hand Quantity indicates the quantity of a product that is on hand in a warehouse.','N',22,'N',29,'N','N',530,'N','Y','N','N','N','QtyOnHand','On Hand Quantity','On Hand Quantity','Y',100,TO_DATE('2012-10-16 11:16:31','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:16:31','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:32 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200637 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:33 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200027,200638,'U',1,'Y','N','N','The Updated field indicates the date that this record was updated.','N',7,'N',16,'N','N',607,'N','Y','N','N','N','Updated','Date this record was updated','Updated','N',100,TO_DATE('2012-10-16 11:16:32','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:16:32','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:33 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200638 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:33 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,AD_Reference_Value_ID,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200027,200639,'U',1,110,'Y','N','N','The Updated By field indicates the user who updated this record.','N',22,'N',18,'N','N',608,'N','Y','N','N','N','UpdatedBy','User who updated this records','Updated By','N',100,TO_DATE('2012-10-16 11:16:33','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:16:33','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:33 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200639 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:17:01 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Column SET Help='The Quantity indicates the number of a specific product or item for this document.', AD_Element_ID=526, ColumnName='Qty', Description='Quantity', Name='Quantity',Updated=TO_DATE('2012-10-16 11:17:01','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200637
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:17:01 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Column_Trl SET IsTranslated='N' WHERE AD_Column_ID=200637
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:17:01 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Field SET Name='Quantity', Description='Quantity', Help='The Quantity indicates the number of a specific product or item for this document.' WHERE AD_Column_ID=200637 AND IsCentrallyMaintained='Y'
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:17:12 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Column SET Help='The Warehouse identifies a unique Warehouse where products are stored or Services are provided.', AD_Element_ID=459, IsUpdateable='N', ColumnName='M_Warehouse_ID', Description='Storage Warehouse and Service Point', Name='Warehouse',Updated=TO_DATE('2012-10-16 11:17:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200635
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:17:12 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Column_Trl SET IsTranslated='N' WHERE AD_Column_ID=200635
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:17:12 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Field SET Name='Warehouse', Description='Storage Warehouse and Service Point', Help='The Warehouse identifies a unique Warehouse where products are stored or Services are provided.' WHERE AD_Column_ID=200635 AND IsCentrallyMaintained='Y'
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:17:20 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Column SET AD_Reference_ID=19, IsUpdateable='N',Updated=TO_DATE('2012-10-16 11:17:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200635
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:17:35 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Column SET AD_Val_Rule_ID=189, IsUpdateable='N',Updated=TO_DATE('2012-10-16 11:17:35','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200635
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:18:05 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (DefaultValue,AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,SeqNo,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES ('Y',200027,200640,'U',0,'N','N','N',0,'The Sales Transaction checkbox indicates if this item is a Sales Transaction.','N',1,'N',20,'N','N',1106,'N','Y','N','Y','N','IsSOTrx','This is a Sales Transaction','Sales Transaction','Y',100,TO_DATE('2012-10-16 11:18:04','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-16 11:18:04','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:18:05 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200640 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:18:28 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
CREATE TABLE M_StorageReservation (AD_Client_ID NUMBER(10) NOT NULL, AD_Org_ID NUMBER(10) NOT NULL, Created DATE NOT NULL, CreatedBy NUMBER(10) NOT NULL, DateLastInventory DATE DEFAULT NULL , IsActive CHAR(1) DEFAULT 'Y' CHECK (IsActive IN ('Y','N')) NOT NULL, IsSOTrx CHAR(1) DEFAULT 'Y' CHECK (IsSOTrx IN ('Y','N')), M_AttributeSetInstance_ID NUMBER(10) NOT NULL, M_Product_ID NUMBER(10) NOT NULL, M_Warehouse_ID NUMBER(10) NOT NULL, Qty NUMBER NOT NULL, Updated DATE NOT NULL, UpdatedBy NUMBER(10) NOT NULL, CONSTRAINT M_StorageReservation_Key PRIMARY KEY (M_AttributeSetInstance_ID, M_Product_ID, M_Warehouse_ID))
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201211141732_IDEMPIERE-385_m_storage.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
CREATE OR REPLACE VIEW m_product_stock_v AS
|
||||||
|
SELECT ms.isactive, ms.created, ms.createdby, ms.updated, ms.updatedby, mp.value, mp.help, ms.qtyonhand - NVL(mr.qty,0) AS qtyavailable, ms.qtyonhand, NVL(mr.qty,0) as qtyreserved, mp.description, mw.name AS warehouse, mw.m_warehouse_id, mw.ad_client_id, mw.ad_org_id, mp.documentnote
|
||||||
|
FROM m_storageonhand ms
|
||||||
|
JOIN m_product mp ON ms.m_product_id = mp.m_product_id
|
||||||
|
JOIN m_locator ml ON ms.m_locator_id = ml.m_locator_id
|
||||||
|
JOIN m_warehouse mw ON ml.m_warehouse_id = mw.m_warehouse_id
|
||||||
|
LEFT JOIN m_storagereservation mr ON ms.m_product_id = mr.m_product_id AND mw.m_warehouse_id = mr.m_warehouse_id AND mr.isSOTrx='Y'
|
||||||
|
ORDER BY mw.name;
|
||||||
|
|
||||||
|
CREATE OR REPLACE VIEW m_product_substituterelated_v AS
|
||||||
|
SELECT s.ad_client_id, s.ad_org_id, s.isactive, s.created, s.createdby, s.updated, s.updatedby, s.m_product_id, s.substitute_id, 'S' AS rowtype, mp.name, sum(ms.qtyonhand - NVL(mr.qty,0)) AS qtyavailable, sum(ms.qtyonhand) AS qtyonhand, NVL(sum(mr.qty),0) AS qtyreserved, round(max(mpr.pricestd), 0) AS pricestd, mpr.m_pricelist_version_id, mw.m_warehouse_id, org.name AS orgname
|
||||||
|
FROM m_substitute s
|
||||||
|
JOIN m_storageonhand ms ON ms.m_product_id = s.substitute_id
|
||||||
|
JOIN m_product mp ON ms.m_product_id = mp.m_product_id
|
||||||
|
JOIN m_locator ml ON ms.m_locator_id = ml.m_locator_id
|
||||||
|
JOIN m_warehouse mw ON ml.m_warehouse_id = mw.m_warehouse_id
|
||||||
|
JOIN m_productprice mpr ON ms.m_product_id = mpr.m_product_id
|
||||||
|
JOIN ad_org org ON org.ad_org_id = mw.ad_org_id
|
||||||
|
LEFT JOIN m_storagereservation mr ON ms.m_product_id = mr.m_product_id AND mw.m_warehouse_id = mr.m_warehouse_id AND mr.isSOTrx='Y'
|
||||||
|
GROUP BY s.ad_client_id, s.ad_org_id, s.isactive, s.created, s.createdby, s.updated, s.updatedby, s.m_product_id, s.substitute_id, mw.m_warehouse_id, mpr.m_pricelist_version_id, org.name, mp.name
|
||||||
|
UNION
|
||||||
|
SELECT r.ad_client_id, r.ad_org_id, r.isactive, r.created, r.createdby, r.updated, r.updatedby, r.m_product_id, r.relatedproduct_id AS substitute_id, 'R' AS rowtype, mp.name, sum(ms.qtyonhand - NVL(mr.qty,0)) AS qtyavailable, sum(ms.qtyonhand) AS qtyonhand, NVL(sum(mr.qty),0) AS qtyreserved, round(max(mpr.pricestd), 0) AS pricestd, mpr.m_pricelist_version_id, mw.m_warehouse_id, org.name AS orgname
|
||||||
|
FROM m_relatedproduct r
|
||||||
|
JOIN m_storageonhand ms ON ms.m_product_id = r.relatedproduct_id
|
||||||
|
JOIN m_product mp ON ms.m_product_id = mp.m_product_id
|
||||||
|
JOIN m_locator ml ON ms.m_locator_id = ml.m_locator_id
|
||||||
|
JOIN m_warehouse mw ON ml.m_warehouse_id = mw.m_warehouse_id
|
||||||
|
JOIN m_productprice mpr ON ms.m_product_id = mpr.m_product_id
|
||||||
|
JOIN ad_org org ON org.ad_org_id = mw.ad_org_id
|
||||||
|
LEFT JOIN m_storagereservation mr ON ms.m_product_id = mr.m_product_id AND mw.m_warehouse_id = mr.m_warehouse_id AND mr.isSOTrx='Y'
|
||||||
|
GROUP BY r.ad_client_id, r.ad_org_id, r.isactive, r.created, r.createdby, r.updated, r.updatedby, r.m_product_id, r.relatedproduct_id, mw.m_warehouse_id, mpr.m_pricelist_version_id, org.name, mp.name;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201211141733_IDEMPIERE-385_m_viewProduct.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
-- Oct 19, 2012 2:07:52 PM WIT
|
||||||
|
-- Reserve Locator
|
||||||
|
INSERT INTO AD_Element (AD_Element_ID,ColumnName,EntityType,Name,PrintName,AD_Client_ID,Created,Updated,IsActive,AD_Org_ID,CreatedBy,UpdatedBy) VALUES (200188,'M_ReserveLocator_ID','U','M_ReserveLocator_ID','Reserve Locator',0,TO_DATE('2012-10-19 14:07:51','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2012-10-19 14:07:51','YYYY-MM-DD HH24:MI:SS'),'Y',0,100,100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 19, 2012 2:07:52 PM WIT
|
||||||
|
-- Reserve Locator
|
||||||
|
INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Help,PO_Description,PO_Help,Name,Description,PrintName,PO_PrintName,PO_Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Element_ID, t.Help,t.PO_Description,t.PO_Help,t.Name,t.Description,t.PrintName,t.PO_PrintName,t.PO_Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=200188 AND NOT EXISTS (SELECT * FROM AD_Element_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Element_ID=t.AD_Element_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 19, 2012 2:08:25 PM WIT
|
||||||
|
-- Reserve Locator
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (190,200704,'U',0,'N','N','N',0,'N',10,'N',31,'N','N',200188,'N','Y','N','Y','N','M_ReserveLocator_ID','M_ReserveLocator_ID','Y',100,TO_DATE('2012-10-19 14:08:24','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_DATE('2012-10-19 14:08:24','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 19, 2012 2:08:25 PM WIT
|
||||||
|
-- Reserve Locator
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200704 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 19, 2012 2:08:28 PM WIT
|
||||||
|
-- Reserve Locator
|
||||||
|
ALTER TABLE M_Warehouse ADD M_ReserveLocator_ID NUMBER(10) DEFAULT NULL
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 19, 2012 2:08:49 PM WIT
|
||||||
|
-- Reserve Locator
|
||||||
|
INSERT INTO AD_Field (IsEncrypted,DisplayLength,AD_Tab_ID,IsDisplayed,IsSameLine,IsHeading,AD_Column_ID,IsFieldOnly,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,EntityType,Name,UpdatedBy,AD_Org_ID,IsActive,Created,AD_Client_ID,CreatedBy,Updated) VALUES ('N',10,177,'Y','N','N',200704,'N','Y',200649,'N','U','M_ReserveLocator_ID',100,0,'Y',TO_DATE('2012-10-19 14:08:48','YYYY-MM-DD HH24:MI:SS'),0,100,TO_DATE('2012-10-19 14:08:48','YYYY-MM-DD HH24:MI:SS'))
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 19, 2012 2:08:49 PM WIT
|
||||||
|
-- Reserve Locator
|
||||||
|
INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Field_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=200649 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 19, 2012 2:09:08 PM WIT
|
||||||
|
-- Reserve Locator
|
||||||
|
UPDATE AD_Field SET Name='Reserve Locator',Updated=TO_DATE('2012-10-19 14:09:08','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200649
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 19, 2012 2:09:08 PM WIT
|
||||||
|
-- Reserve Locator
|
||||||
|
UPDATE AD_Field_Trl SET IsTranslated='N' WHERE AD_Field_ID=200649
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201211141734_IDEMPIERE-385_reserveLocator.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,395 @@
|
||||||
|
-- Nov 19, 2012 10:56:55 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Element (ColumnName,AD_Element_ID,EntityType,Name,PrintName,AD_Element_UU,AD_Client_ID,Created,Updated,AD_Org_ID,CreatedBy,UpdatedBy,IsActive) VALUES ('M_StorageOnHand_UU',200233,'U','M_StorageOnHand_UU','M_StorageOnHand_UU','d22731f0-0762-43bf-9f29-66383f3038f8',0,TO_DATE('2012-11-19 10:56:54','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2012-11-19 10:56:54','YYYY-MM-DD HH24:MI:SS'),0,100,100,'Y')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 10:56:55 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Help,PO_Description,PO_Help,Name,Description,PrintName,PO_Name,PO_PrintName, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Element_Trl_UU ) SELECT l.AD_Language,t.AD_Element_ID, t.Help,t.PO_Description,t.PO_Help,t.Name,t.Description,t.PrintName,t.PO_Name,t.PO_PrintName, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=200233 AND NOT EXISTS (SELECT * FROM AD_Element_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Element_ID=t.AD_Element_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 10:56:56 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (IsEncrypted,Version,AD_Table_ID,AD_Column_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,AD_Element_ID,AD_Column_UU,IsUpdateable,IsAlwaysUpdateable,ColumnName,Name,Updated,CreatedBy,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Client_ID) VALUES ('N',1.00,200026,200917,'U','N','N','N','N',36,'N',10,'N',200233,'66058949-db74-48a6-a940-79ee28d0f0ed','Y','N','M_StorageOnHand_UU','M_StorageOnHand_UU',TO_DATE('2012-11-19 10:56:54','YYYY-MM-DD HH24:MI:SS'),100,0,'Y',TO_DATE('2012-11-19 10:56:54','YYYY-MM-DD HH24:MI:SS'),100,0)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 10:56:56 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Column_Trl_UU ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200917 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 10:56:56 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
ALTER TABLE M_StorageOnHand ADD M_StorageOnHand_UU NVARCHAR2(36) DEFAULT NULL
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 10:56:56 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
CREATE UNIQUE INDEX M_StorageOnHand_UU_idx ON m_storageonhand(M_StorageOnHand_UU)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 10:56:57 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Element (ColumnName,AD_Element_ID,EntityType,Name,PrintName,AD_Element_UU,AD_Client_ID,Created,Updated,AD_Org_ID,CreatedBy,UpdatedBy,IsActive) VALUES ('M_StorageReservation_UU',200234,'U','M_StorageReservation_UU','M_StorageReservation_UU','283bcf86-e8af-4ac7-aaff-efcfa104e700',0,TO_DATE('2012-11-19 10:56:56','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2012-11-19 10:56:56','YYYY-MM-DD HH24:MI:SS'),0,100,100,'Y')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 10:56:57 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Help,PO_Description,PO_Help,Name,Description,PrintName,PO_Name,PO_PrintName, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Element_Trl_UU ) SELECT l.AD_Language,t.AD_Element_ID, t.Help,t.PO_Description,t.PO_Help,t.Name,t.Description,t.PrintName,t.PO_Name,t.PO_PrintName, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=200234 AND NOT EXISTS (SELECT * FROM AD_Element_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Element_ID=t.AD_Element_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 10:56:57 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (IsEncrypted,Version,AD_Table_ID,AD_Column_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,AD_Element_ID,AD_Column_UU,IsUpdateable,IsAlwaysUpdateable,ColumnName,Name,Updated,CreatedBy,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Client_ID) VALUES ('N',1.00,200027,200918,'U','N','N','N','N',36,'N',10,'N',200234,'fb178aac-4ffe-4244-907c-89a0a527acf8','Y','N','M_StorageReservation_UU','M_StorageReservation_UU',TO_DATE('2012-11-19 10:56:56','YYYY-MM-DD HH24:MI:SS'),100,0,'Y',TO_DATE('2012-11-19 10:56:56','YYYY-MM-DD HH24:MI:SS'),100,0)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 10:56:57 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Column_Trl_UU ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200918 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 10:56:57 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
ALTER TABLE M_StorageReservation ADD M_StorageReservation_UU NVARCHAR2(36) DEFAULT NULL
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 10:56:57 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
CREATE UNIQUE INDEX M_StorageReservation_UU_idx ON m_storagereservation(M_StorageReservation_UU)
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE m_storageonhand DROP CONSTRAINT m_storageonhand_key
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE m_storageonhand ADD (CONSTRAINT m_storageonhand_pkey PRIMARY KEY (m_product_id, m_locator_id, m_attributesetinstance_id))
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE m_storagereservation DROP CONSTRAINT m_storagereservation_key
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE m_storagereservation ADD (CONSTRAINT m_storagereservation_pkey PRIMARY KEY (m_product_id, m_warehouse_id, issotrx, m_attributesetinstance_id))
|
||||||
|
;
|
||||||
|
|
||||||
|
insert into m_storageonhand (
|
||||||
|
ad_client_id,
|
||||||
|
ad_org_id,
|
||||||
|
created,
|
||||||
|
createdby,
|
||||||
|
datelastinventory,
|
||||||
|
isactive,
|
||||||
|
m_attributesetinstance_id,
|
||||||
|
m_locator_id,
|
||||||
|
m_product_id,
|
||||||
|
qtyonhand,
|
||||||
|
updated,
|
||||||
|
updatedby,
|
||||||
|
m_storageonhand_uu
|
||||||
|
)
|
||||||
|
select ad_client_id,
|
||||||
|
ad_org_id,
|
||||||
|
created,
|
||||||
|
createdby,
|
||||||
|
datelastinventory,
|
||||||
|
isactive,
|
||||||
|
m_attributesetinstance_id,
|
||||||
|
m_locator_id,
|
||||||
|
m_product_id,
|
||||||
|
qtyonhand,
|
||||||
|
updated,
|
||||||
|
updatedby,
|
||||||
|
generate_uuid()
|
||||||
|
from m_storage
|
||||||
|
;
|
||||||
|
|
||||||
|
insert into m_storagereservation (
|
||||||
|
ad_client_id,
|
||||||
|
ad_org_id,
|
||||||
|
created,
|
||||||
|
createdby,
|
||||||
|
datelastinventory,
|
||||||
|
isactive,
|
||||||
|
issotrx,
|
||||||
|
m_attributesetinstance_id,
|
||||||
|
m_product_id,
|
||||||
|
m_warehouse_id,
|
||||||
|
qty,
|
||||||
|
updated,
|
||||||
|
updatedby,
|
||||||
|
m_storagereservation_uu
|
||||||
|
)
|
||||||
|
select
|
||||||
|
min(s.ad_client_id),
|
||||||
|
min(s.ad_org_id),
|
||||||
|
min(s.created),
|
||||||
|
min(s.createdby),
|
||||||
|
null,
|
||||||
|
'Y',
|
||||||
|
'Y',
|
||||||
|
s.m_attributesetinstance_id,
|
||||||
|
s.m_product_id,
|
||||||
|
l.m_warehouse_id,
|
||||||
|
sum(s.qtyreserved),
|
||||||
|
max(s.updated),
|
||||||
|
max(s.updatedby),
|
||||||
|
generate_uuid()
|
||||||
|
from m_storage s
|
||||||
|
join m_locator l on (s.m_locator_id=l.m_locator_id)
|
||||||
|
where s.isactive='Y'
|
||||||
|
and s.qtyreserved!=0
|
||||||
|
group by s.m_attributesetinstance_id,
|
||||||
|
s.m_product_id,
|
||||||
|
l.m_warehouse_id
|
||||||
|
;
|
||||||
|
|
||||||
|
insert into m_storagereservation (
|
||||||
|
ad_client_id,
|
||||||
|
ad_org_id,
|
||||||
|
created,
|
||||||
|
createdby,
|
||||||
|
datelastinventory,
|
||||||
|
isactive,
|
||||||
|
issotrx,
|
||||||
|
m_attributesetinstance_id,
|
||||||
|
m_product_id,
|
||||||
|
m_warehouse_id,
|
||||||
|
qty,
|
||||||
|
updated,
|
||||||
|
updatedby,
|
||||||
|
m_storagereservation_uu
|
||||||
|
)
|
||||||
|
select
|
||||||
|
min(s.ad_client_id),
|
||||||
|
min(s.ad_org_id),
|
||||||
|
min(s.created),
|
||||||
|
min(s.createdby),
|
||||||
|
null,
|
||||||
|
'Y',
|
||||||
|
'N',
|
||||||
|
s.m_attributesetinstance_id,
|
||||||
|
s.m_product_id,
|
||||||
|
l.m_warehouse_id,
|
||||||
|
sum(s.qtyordered),
|
||||||
|
max(s.updated),
|
||||||
|
max(s.updatedby),
|
||||||
|
generate_uuid()
|
||||||
|
from m_storage s
|
||||||
|
join m_locator l on (s.m_locator_id=l.m_locator_id)
|
||||||
|
where s.isactive='Y'
|
||||||
|
and s.qtyordered!=0
|
||||||
|
group by s.m_attributesetinstance_id,
|
||||||
|
s.m_product_id,
|
||||||
|
l.m_warehouse_id
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE m_storage RENAME TO m_storage_to_drop
|
||||||
|
;
|
||||||
|
|
||||||
|
CREATE OR REPLACE VIEW m_storage
|
||||||
|
AS
|
||||||
|
SELECT s.m_product_id,
|
||||||
|
s.m_locator_id,
|
||||||
|
s.ad_client_id,
|
||||||
|
s.ad_org_id,
|
||||||
|
s.isactive,
|
||||||
|
s.created,
|
||||||
|
s.createdby,
|
||||||
|
s.updated,
|
||||||
|
s.updatedby,
|
||||||
|
s.qtyonhand,
|
||||||
|
0 AS qtyreserved,
|
||||||
|
0 AS qtyordered,
|
||||||
|
s.datelastinventory,
|
||||||
|
s.m_attributesetinstance_id,
|
||||||
|
s.m_storageonhand_uu
|
||||||
|
FROM m_storageonhand s
|
||||||
|
UNION
|
||||||
|
SELECT sr.m_product_id,
|
||||||
|
w.m_reservelocator_id AS m_locator_id,
|
||||||
|
sr.ad_client_id,
|
||||||
|
sr.ad_org_id,
|
||||||
|
sr.isactive,
|
||||||
|
sr.created,
|
||||||
|
sr.createdby,
|
||||||
|
sr.updated,
|
||||||
|
sr.updatedby,
|
||||||
|
0 AS qtyonhand,
|
||||||
|
sr.qty AS qtyreserved,
|
||||||
|
0 AS qtyordered,
|
||||||
|
sr.datelastinventory,
|
||||||
|
sr.m_attributesetinstance_id,
|
||||||
|
sr.m_storagereservation_uu
|
||||||
|
FROM m_storagereservation sr
|
||||||
|
JOIN m_warehouse w
|
||||||
|
ON sr.m_warehouse_id = w.m_warehouse_id
|
||||||
|
WHERE sr.issotrx = 'Y'
|
||||||
|
UNION
|
||||||
|
SELECT so.m_product_id,
|
||||||
|
w.m_reservelocator_id AS m_locator_id,
|
||||||
|
so.ad_client_id,
|
||||||
|
so.ad_org_id,
|
||||||
|
so.isactive,
|
||||||
|
so.created,
|
||||||
|
so.createdby,
|
||||||
|
so.updated,
|
||||||
|
so.updatedby,
|
||||||
|
0 AS qtyonhand,
|
||||||
|
0 AS qtyreserved,
|
||||||
|
so.qty AS qtyordered,
|
||||||
|
so.datelastinventory,
|
||||||
|
so.m_attributesetinstance_id,
|
||||||
|
so.m_storagereservation_uu
|
||||||
|
FROM m_storagereservation so
|
||||||
|
JOIN m_warehouse w
|
||||||
|
ON so.m_warehouse_id = w.m_warehouse_id
|
||||||
|
WHERE so.issotrx = 'N'
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Comment the next if you want to preserve a backup of the M_Storage table
|
||||||
|
DROP TABLE m_storage_to_drop
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 12:19:33 PM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Table SET IsView='Y',Updated=TO_DATE('2012-11-19 12:19:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=250
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 12:26:17 PM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Tab SET OrderByClause='M_Product_ID, M_AttributeSetInstance_ID, M_Locator_ID',Updated=TO_DATE('2012-11-19 12:26:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=179
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 12:26:42 PM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Tab SET OrderByClause='M_Product_ID, M_AttributeSetInstance_ID, M_Locator_ID',Updated=TO_DATE('2012-11-19 12:26:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=53244
|
||||||
|
;
|
||||||
|
|
||||||
|
update m_warehouse set m_reservelocator_id =
|
||||||
|
(select min(m_locator_id)
|
||||||
|
from m_locator
|
||||||
|
where m_warehouse_id =m_warehouse.m_warehouse_id and isactive='Y' and isdefault='Y')
|
||||||
|
where m_reservelocator_id is null
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 1:15:02 PM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Column SET AD_Reference_Value_ID=191, AD_Reference_ID=18, AD_Val_Rule_ID=127, IsToolbarButton='N',Updated=TO_DATE('2012-11-19 13:15:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200704
|
||||||
|
;
|
||||||
|
|
||||||
|
--create views
|
||||||
|
CREATE OR REPLACE VIEW M_PRODUCT_STOCK_V
|
||||||
|
AS
|
||||||
|
SELECT
|
||||||
|
ms.IsActive, ms.Created, ms.CreatedBy, ms.Updated, ms.UpdatedBy,
|
||||||
|
mp.VALUE, mp.help, (ms.qtyonhand - ms.qtyreserved) AS qtyavailable, ms.qtyonhand,
|
||||||
|
ms.qtyreserved, mp.description, mw.NAME AS warehouse, mw.m_warehouse_id, mw.ad_client_id,
|
||||||
|
mw.ad_org_id, mp.documentnote
|
||||||
|
FROM M_STORAGE ms
|
||||||
|
JOIN M_PRODUCT mp ON ms.m_product_id = mp.m_product_id
|
||||||
|
JOIN M_LOCATOR ml ON ms.m_locator_id = ml.m_locator_id
|
||||||
|
JOIN M_WAREHOUSE mw ON ml.m_warehouse_id = mw.m_warehouse_id
|
||||||
|
ORDER BY mw.NAME
|
||||||
|
;
|
||||||
|
|
||||||
|
CREATE OR REPLACE VIEW M_PRODUCT_SUBSTITUTERELATED_V AS
|
||||||
|
SELECT s.ad_client_id,
|
||||||
|
s.ad_org_id,
|
||||||
|
s.isactive,
|
||||||
|
s.created,
|
||||||
|
s.createdby,
|
||||||
|
s.updated,
|
||||||
|
s.updatedby,
|
||||||
|
s.m_product_id,
|
||||||
|
s.substitute_id,
|
||||||
|
'S' AS rowtype,
|
||||||
|
mp.name,
|
||||||
|
sum(ms.qtyonhand - ms.qtyreserved) AS qtyavailable,
|
||||||
|
sum(ms.qtyonhand) AS qtyonhand,
|
||||||
|
sum(ms.qtyreserved) AS qtyreserved,
|
||||||
|
ROUND(MAX(mpr.pricestd),0) AS pricestd,
|
||||||
|
mpr.m_pricelist_version_id,
|
||||||
|
mw.m_warehouse_id,
|
||||||
|
org.name AS orgname
|
||||||
|
FROM m_substitute s
|
||||||
|
JOIN m_storage ms ON ms.m_product_id = s.substitute_id
|
||||||
|
JOIN m_product mp ON ms.m_product_id = mp.m_product_id
|
||||||
|
JOIN m_locator ml ON ms.m_locator_id = ml.m_locator_id
|
||||||
|
JOIN m_warehouse mw ON ml.m_warehouse_id = mw.m_warehouse_id
|
||||||
|
JOIN m_productprice mpr ON ms.m_product_id = mpr.m_product_id
|
||||||
|
JOIN ad_org org ON org.ad_org_id = mw.ad_org_id
|
||||||
|
GROUP BY s.ad_client_id,
|
||||||
|
s.ad_org_id,
|
||||||
|
s.isactive,
|
||||||
|
s.created,
|
||||||
|
s.createdby,
|
||||||
|
s.updated,
|
||||||
|
s.updatedby,
|
||||||
|
s.m_product_id,
|
||||||
|
s.substitute_id,
|
||||||
|
mw.m_warehouse_id,
|
||||||
|
mpr.m_pricelist_version_id,
|
||||||
|
org.name,
|
||||||
|
mp.name
|
||||||
|
UNION
|
||||||
|
SELECT r.ad_client_id,
|
||||||
|
r.ad_org_id,
|
||||||
|
r.isactive,
|
||||||
|
r.created,
|
||||||
|
r.createdby,
|
||||||
|
r.updated,
|
||||||
|
r.updatedby,
|
||||||
|
r.m_product_id,
|
||||||
|
r.relatedproduct_id AS substitute_id,
|
||||||
|
'R' AS rowtype,
|
||||||
|
mp.name,
|
||||||
|
sum(ms.qtyonhand - ms.qtyreserved) AS qtyavailable,
|
||||||
|
sum(ms.qtyonhand) AS qtyonhand,
|
||||||
|
sum(ms.qtyreserved) AS qtyreserved,
|
||||||
|
ROUND(MAX(mpr.pricestd),0) AS pricestd,
|
||||||
|
mpr.m_pricelist_version_id,
|
||||||
|
mw.m_warehouse_id,
|
||||||
|
org.name AS orgname
|
||||||
|
FROM m_relatedproduct r
|
||||||
|
JOIN m_storage ms ON ms.m_product_id = r.relatedproduct_id
|
||||||
|
JOIN m_product mp ON ms.m_product_id = mp.m_product_id
|
||||||
|
JOIN m_locator ml ON ms.m_locator_id = ml.m_locator_id
|
||||||
|
JOIN m_warehouse mw ON ml.m_warehouse_id = mw.m_warehouse_id
|
||||||
|
JOIN m_productprice mpr ON ms.m_product_id = mpr.m_product_id
|
||||||
|
JOIN ad_org org ON org.ad_org_id = mw.ad_org_id
|
||||||
|
GROUP BY r.ad_client_id,
|
||||||
|
r.ad_org_id,
|
||||||
|
r.isactive,
|
||||||
|
r.created,
|
||||||
|
r.createdby,
|
||||||
|
r.updated,
|
||||||
|
r.updatedby,
|
||||||
|
r.m_product_id,
|
||||||
|
r.relatedproduct_id,
|
||||||
|
mw.m_warehouse_id,
|
||||||
|
mpr.m_pricelist_version_id,
|
||||||
|
org.name,
|
||||||
|
mp.name
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 20, 2012 5:06:02 PM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Column SET IsParent='Y', IsUpdateable='N', IsToolbarButton='N',Updated=TO_DATE('2012-11-20 17:06:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200640
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 20, 2012 5:28:27 PM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Column SET IsMandatory='Y', IsUpdateable='N',Updated=TO_DATE('2012-11-20 17:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200640
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 20, 2012 5:28:36 PM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
ALTER TABLE M_StorageReservation MODIFY IsSOTrx CHAR(1) DEFAULT 'Y'
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 20, 2012 5:28:36 PM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE M_StorageReservation SET IsSOTrx='Y' WHERE IsSOTrx IS NULL
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201211191100_IDEMPIERE-385_DB.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,428 @@
|
||||||
|
-- Nov 16, 2012 2:47:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_DATE('2012-11-16 14:47:07','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=53210
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 2:47:13 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_DATE('2012-11-16 14:47:13','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=331
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 2:49:20 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=40,Updated=TO_DATE('2012-11-16 14:49:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=549
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 2:49:27 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_DATE('2012-11-16 14:49:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=136
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 2:49:33 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_DATE('2012-11-16 14:49:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=215
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 2:50:55 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=40,Updated=TO_DATE('2012-11-16 14:50:55','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=557
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 2:51:30 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_DATE('2012-11-16 14:51:30','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=127
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 2:56:23 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_DATE('2012-11-16 14:56:23','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=303
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 2:56:28 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_DATE('2012-11-16 14:56:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=309
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 2:59:06 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_DATE('2012-11-16 14:59:06','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=233
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 2:59:10 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_DATE('2012-11-16 14:59:10','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=503
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:01:47 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=60,Updated=TO_DATE('2012-11-16 15:01:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=171
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:01:51 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_DATE('2012-11-16 15:01:51','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=104
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:01:56 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_DATE('2012-11-16 15:01:56','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=172
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:02:00 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=40,Updated=TO_DATE('2012-11-16 15:02:00','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=103
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:02:05 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=50,Updated=TO_DATE('2012-11-16 15:02:05','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=773
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:08:20 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_DATE('2012-11-16 15:08:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=246
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:08:29 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_DATE('2012-11-16 15:08:29','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=247
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:08:36 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=40,Updated=TO_DATE('2012-11-16 15:08:36','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=248
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:08:40 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=50,Updated=TO_DATE('2012-11-16 15:08:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=308
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:10:04 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_DATE('2012-11-16 15:10:04','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=101
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:10:10 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_DATE('2012-11-16 15:10:10','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=681
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:10:13 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=40,Updated=TO_DATE('2012-11-16 15:10:13','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=53298
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:10:17 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=50,Updated=TO_DATE('2012-11-16 15:10:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=53069
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:10:21 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=60,Updated=TO_DATE('2012-11-16 15:10:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=673
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:11:11 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_DATE('2012-11-16 15:11:11','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=333
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:11:15 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_DATE('2012-11-16 15:11:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=640
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:11:19 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=40,Updated=TO_DATE('2012-11-16 15:11:19','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=458
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:12:02 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_DATE('2012-11-16 15:12:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=134
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:12:06 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_DATE('2012-11-16 15:12:06','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=273
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:13:49 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_DATE('2012-11-16 15:13:49','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=106
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:13:53 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_DATE('2012-11-16 15:13:53','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=116
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:13:57 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=40,Updated=TO_DATE('2012-11-16 15:13:57','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=430
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:14:04 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=50,Updated=TO_DATE('2012-11-16 15:14:04','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=200009
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:14:08 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=60,Updated=TO_DATE('2012-11-16 15:14:08','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=107
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:14:25 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=70,Updated=TO_DATE('2012-11-16 15:14:25','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=115
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:14:30 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=80,Updated=TO_DATE('2012-11-16 15:14:30','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=200028
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:14:34 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=90,Updated=TO_DATE('2012-11-16 15:14:34','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=117
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:14:39 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=100,Updated=TO_DATE('2012-11-16 15:14:39','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=311
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:17:02 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_DATE('2012-11-16 15:17:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=107
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:17:24 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=70,Updated=TO_DATE('2012-11-16 15:17:24','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=116
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:17:28 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=60,Updated=TO_DATE('2012-11-16 15:17:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=115
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:06 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=275
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:06 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=6432
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:06 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=10,IsDisplayedGrid='Y' WHERE AD_Field_ID=1990
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=20,IsDisplayedGrid='Y' WHERE AD_Field_ID=126
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=30,IsDisplayedGrid='Y' WHERE AD_Field_ID=127
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=40,IsDisplayedGrid='Y' WHERE AD_Field_ID=128
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=50,IsDisplayedGrid='Y' WHERE AD_Field_ID=129
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=60,IsDisplayedGrid='Y' WHERE AD_Field_ID=274
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=70,IsDisplayedGrid='Y' WHERE AD_Field_ID=130
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=80,IsDisplayedGrid='Y' WHERE AD_Field_ID=5808
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=90,IsDisplayedGrid='Y' WHERE AD_Field_ID=4259
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=100,IsDisplayedGrid='Y' WHERE AD_Field_ID=1551
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=110,IsDisplayedGrid='Y' WHERE AD_Field_ID=132
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=120,IsDisplayedGrid='Y' WHERE AD_Field_ID=200276
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=130,IsDisplayedGrid='Y' WHERE AD_Field_ID=924
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=140,IsDisplayedGrid='Y' WHERE AD_Field_ID=133
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=150,IsDisplayedGrid='Y' WHERE AD_Field_ID=136
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=160,IsDisplayedGrid='Y' WHERE AD_Field_ID=142
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=170,IsDisplayedGrid='Y' WHERE AD_Field_ID=137
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=180,IsDisplayedGrid='Y' WHERE AD_Field_ID=200274
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=190,IsDisplayedGrid='Y' WHERE AD_Field_ID=139
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=200,IsDisplayedGrid='Y' WHERE AD_Field_ID=138
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=210,IsDisplayedGrid='Y' WHERE AD_Field_ID=8343
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=220,IsDisplayedGrid='Y' WHERE AD_Field_ID=140
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=230,IsDisplayedGrid='Y' WHERE AD_Field_ID=141
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=240,IsDisplayedGrid='Y' WHERE AD_Field_ID=13425
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=250,IsDisplayedGrid='Y' WHERE AD_Field_ID=54401
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=260,IsDisplayedGrid='Y' WHERE AD_Field_ID=54402
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=270,IsDisplayedGrid='Y' WHERE AD_Field_ID=13424
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=280,IsDisplayedGrid='Y' WHERE AD_Field_ID=62468
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=290,IsDisplayedGrid='Y' WHERE AD_Field_ID=200771
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=300,IsDisplayedGrid='Y' WHERE AD_Field_ID=53280
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=310,IsDisplayedGrid='Y' WHERE AD_Field_ID=200275
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=320,IsDisplayedGrid='Y' WHERE AD_Field_ID=200350
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=330,IsDisplayedGrid='Y' WHERE AD_Field_ID=200348
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=340,IsDisplayedGrid='Y' WHERE AD_Field_ID=200349
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:25:30 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=70,Updated=TO_DATE('2012-11-16 15:25:30','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=149
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:25:34 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=80,Updated=TO_DATE('2012-11-16 15:25:34','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=312
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:25:38 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_DATE('2012-11-16 15:25:38','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=122
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:25:43 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_DATE('2012-11-16 15:25:43','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=577
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:25:46 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=40,Updated=TO_DATE('2012-11-16 15:25:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=123
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:25:51 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=50,Updated=TO_DATE('2012-11-16 15:25:51','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=124
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:25:55 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=60,Updated=TO_DATE('2012-11-16 15:25:55','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=644
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201211231024_IDEMPIERE-369_ReorgTabs.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,379 @@
|
||||||
|
-- Oct 16, 2012 11:14:31 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Table (IsSecurityEnabled,AccessLevel,LoadSeq,AD_Table_ID,IsHighVolume,IsView,IsChangeLog,EntityType,IsCentrallyMaintained,IsDeleteable,ReplicationType,TableName,Name,AD_Client_ID,IsActive,AD_Org_ID,CreatedBy,Updated,UpdatedBy,Created) VALUES ('N','3',145,200026,'N','N','N','U','Y','N','L','M_StorageOnHand','M_StorageOnHand',0,'Y',0,100,TO_TIMESTAMP('2012-10-16 11:14:30','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2012-10-16 11:14:30','YYYY-MM-DD HH24:MI:SS'))
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:31 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Table_Trl (AD_Language,AD_Table_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Table_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Table t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Table_ID=200026 AND NOT EXISTS (SELECT * FROM AD_Table_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Table_ID=t.AD_Table_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:34 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Sequence (IncrementNo,StartNewYear,CurrentNextSys,IsTableID,CreatedBy,StartNo,CurrentNext,IsAudited,IsAutoSequence,AD_Sequence_ID,Description,Name,AD_Org_ID,AD_Client_ID,Updated,UpdatedBy,Created,IsActive) VALUES (1,'N',200000,'Y',100,1000000,1000000,'N','Y',200026,'Table M_StorageOnHand','M_StorageOnHand',0,0,TO_TIMESTAMP('2012-10-16 11:14:31','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2012-10-16 11:14:31','YYYY-MM-DD HH24:MI:SS'),'Y')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:41 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (DefaultValue,AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,AD_Val_Rule_ID,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES ('@AD_Client_ID@',200026,200614,'U',1,'Y','N','N','A Client is a company or a legal entity. You cannot share data between Clients. Tenant is a synonym for Client.','N',22,'N',19,'N',129,'N',102,'N','Y','N','N','N','AD_Client_ID','Client/Tenant for this installation.','Client','N',100,TO_TIMESTAMP('2012-10-16 11:14:40','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:14:40','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:41 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200614 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:42 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (DefaultValue,AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,AD_Val_Rule_ID,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES ('@AD_Org_ID@',200026,200615,'U',1,'Y','N','N','An organization is a unit of your client or legal entity - examples are store, department. You can share data between organizations.','N',22,'N',19,'N',130,'N',113,'N','Y','N','N','N','AD_Org_ID','Organizational entity within client','Organization','N',100,TO_TIMESTAMP('2012-10-16 11:14:41','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:14:41','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:42 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200615 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:45 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200026,200616,'U',1,'Y','N','N','The Created field indicates the date that this record was created.','N',7,'N',16,'N','N',245,'N','Y','N','N','N','Created','Date this record was created','Created','N',100,TO_TIMESTAMP('2012-10-16 11:14:42','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:14:42','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:45 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200616 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:46 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,AD_Reference_Value_ID,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200026,200617,'U',1,110,'Y','N','N','The Created By field indicates the user who created this record.','N',22,'N',18,'N','N',246,'N','Y','N','N','N','CreatedBy','User who created this records','Created By','N',100,TO_TIMESTAMP('2012-10-16 11:14:45','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:14:45','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:46 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200617 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:48 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200026,200618,'U',1,'N','N','N','The Date Last Inventory Count indicates the last time an Inventory count was done.','N',7,'N',15,'N','N',1088,'N','Y','N','Y','N','DateLastInventory','Date of Last Inventory Count','Date last inventory count','Y',100,TO_TIMESTAMP('2012-10-16 11:14:46','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:14:46','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:48 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200618 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:50 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (DefaultValue,AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES ('Y',200026,200619,'U',1,'Y','N','N','There are two methods of making records unavailable in the system: One is to delete the record, the other is to de-activate the record. A de-activated record is not available for selection, but available for reports.
|
||||||
|
There are two reasons for de-activating and not deleting records:
|
||||||
|
(1) The system requires the record for audit purposes.
|
||||||
|
(2) The record is referenced by other records. E.g., you cannot delete a Business Partner, if there are invoices for this partner record existing. You de-activate the Business Partner and prevent that this record is used for future entries.','N',1,'N',20,'N','N',348,'N','Y','N','N','N','IsActive','The record is active in the system','Active','N',100,TO_TIMESTAMP('2012-10-16 11:14:48','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:14:48','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:50 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200619 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:51 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,SeqNo,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200026,200620,'U',1,'Y','N','N',0,'The values of the actual Product Attribute Instances. The product level attributes are defined on Product level.','Y',22,'N',35,'N','N',2019,'N','Y','N','N','N','M_AttributeSetInstance_ID','Product Attribute Set Instance','Attribute Set Instance','Y',100,TO_TIMESTAMP('2012-10-16 11:14:50','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:14:50','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:51 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200620 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:52 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200026,200621,'U',1,'Y','N','N','The Locator indicates where in a Warehouse a product is located.','Y',22,'N',31,'N','N',448,'N','Y','N','N','N','M_Locator_ID','Warehouse Locator','Locator','Y',100,TO_TIMESTAMP('2012-10-16 11:14:51','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:14:51','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:52 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200621 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:52 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,AD_Val_Rule_ID,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200026,200622,'U',1,'Y','N','N','Identifies an item which is either purchased or sold in this organization.','Y',22,'N',30,'N',231,'N',454,'N','Y','N','N','N','M_Product_ID','Product, Service, Item','Product','Y',100,TO_TIMESTAMP('2012-10-16 11:14:52','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:14:52','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:52 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200622 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:53 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200026,200623,'U',1,'Y','N','N','The On Hand Quantity indicates the quantity of a product that is on hand in a warehouse.','N',22,'N',29,'N','N',530,'N','Y','N','N','N','QtyOnHand','On Hand Quantity','On Hand Quantity','Y',100,TO_TIMESTAMP('2012-10-16 11:14:52','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:14:52','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:53 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200623 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:55 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200026,200624,'U',1,'Y','N','N','The Ordered Quantity indicates the quantity of a product that was ordered.','N',22,'N',29,'N','N',531,'N','Y','N','N','N','QtyOrdered','Ordered Quantity','Ordered Quantity','Y',100,TO_TIMESTAMP('2012-10-16 11:14:53','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:14:53','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:55 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200624 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:56 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200026,200625,'U',1,'Y','N','N','The Reserved Quantity indicates the quantity of a product that is currently reserved.','N',22,'N',29,'N','N',532,'N','Y','N','N','N','QtyReserved','Reserved Quantity','Reserved Quantity','Y',100,TO_TIMESTAMP('2012-10-16 11:14:55','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:14:55','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:56 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200625 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:56 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200026,200626,'U',1,'Y','N','N','The Updated field indicates the date that this record was updated.','N',7,'N',16,'N','N',607,'N','Y','N','N','N','Updated','Date this record was updated','Updated','N',100,TO_TIMESTAMP('2012-10-16 11:14:56','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:14:56','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:56 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200626 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:57 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,AD_Reference_Value_ID,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200026,200627,'U',1,110,'Y','N','N','The Updated By field indicates the user who updated this record.','N',22,'N',18,'N','N',608,'N','Y','N','N','N','UpdatedBy','User who updated this records','Updated By','N',100,TO_TIMESTAMP('2012-10-16 11:14:56','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:14:56','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:14:57 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200627 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:15:19 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
DELETE FROM AD_Column_Trl WHERE AD_Column_ID=200624
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:15:19 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
DELETE FROM AD_Column WHERE AD_Column_ID=200624
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:15:19 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
DELETE FROM AD_Column_Trl WHERE AD_Column_ID=200625
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:15:19 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
DELETE FROM AD_Column WHERE AD_Column_ID=200625
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:15:32 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
CREATE TABLE M_StorageOnHand (AD_Client_ID NUMERIC(10) NOT NULL, AD_Org_ID NUMERIC(10) NOT NULL, Created TIMESTAMP NOT NULL, CreatedBy NUMERIC(10) NOT NULL, DateLastInventory TIMESTAMP DEFAULT NULL , IsActive CHAR(1) DEFAULT 'Y' CHECK (IsActive IN ('Y','N')) NOT NULL, M_AttributeSetInstance_ID NUMERIC(10) NOT NULL, M_Locator_ID NUMERIC(10) NOT NULL, M_Product_ID NUMERIC(10) NOT NULL, QtyOnHand NUMERIC NOT NULL, Updated TIMESTAMP NOT NULL, UpdatedBy NUMERIC(10) NOT NULL, CONSTRAINT M_StorageOnHand_Key PRIMARY KEY (M_AttributeSetInstance_ID, M_Locator_ID, M_Product_ID))
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:16 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Table (IsSecurityEnabled,AccessLevel,LoadSeq,AD_Table_ID,IsHighVolume,IsView,IsChangeLog,EntityType,IsCentrallyMaintained,IsDeleteable,ReplicationType,TableName,Name,AD_Client_ID,IsActive,AD_Org_ID,CreatedBy,Updated,UpdatedBy,Created) VALUES ('N','3',145,200027,'N','N','N','U','Y','N','L','M_StorageReservation','M_StorageReservation',0,'Y',0,100,TO_TIMESTAMP('2012-10-16 11:16:15','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2012-10-16 11:16:15','YYYY-MM-DD HH24:MI:SS'))
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:16 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Table_Trl (AD_Language,AD_Table_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Table_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Table t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Table_ID=200027 AND NOT EXISTS (SELECT * FROM AD_Table_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Table_ID=t.AD_Table_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:17 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Sequence (IncrementNo,StartNewYear,CurrentNextSys,IsTableID,CreatedBy,StartNo,CurrentNext,IsAudited,IsAutoSequence,AD_Sequence_ID,Description,Name,AD_Org_ID,AD_Client_ID,Updated,UpdatedBy,Created,IsActive) VALUES (1,'N',200000,'Y',100,1000000,1000000,'N','Y',200027,'Table M_StorageReservation','M_StorageReservation',0,0,TO_TIMESTAMP('2012-10-16 11:16:16','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2012-10-16 11:16:16','YYYY-MM-DD HH24:MI:SS'),'Y')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:24 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (DefaultValue,AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,AD_Val_Rule_ID,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES ('@AD_Client_ID@',200027,200628,'U',1,'Y','N','N','A Client is a company or a legal entity. You cannot share data between Clients. Tenant is a synonym for Client.','N',22,'N',19,'N',129,'N',102,'N','Y','N','N','N','AD_Client_ID','Client/Tenant for this installation.','Client','N',100,TO_TIMESTAMP('2012-10-16 11:16:23','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:16:23','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:24 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200628 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:24 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (DefaultValue,AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,AD_Val_Rule_ID,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES ('@AD_Org_ID@',200027,200629,'U',1,'Y','N','N','An organization is a unit of your client or legal entity - examples are store, department. You can share data between organizations.','N',22,'N',19,'N',130,'N',113,'N','Y','N','N','N','AD_Org_ID','Organizational entity within client','Organization','N',100,TO_TIMESTAMP('2012-10-16 11:16:24','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:16:24','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:24 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200629 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:25 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200027,200630,'U',1,'Y','N','N','The Created field indicates the date that this record was created.','N',7,'N',16,'N','N',245,'N','Y','N','N','N','Created','Date this record was created','Created','N',100,TO_TIMESTAMP('2012-10-16 11:16:24','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:16:24','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:25 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200630 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:26 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,AD_Reference_Value_ID,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200027,200631,'U',1,110,'Y','N','N','The Created By field indicates the user who created this record.','N',22,'N',18,'N','N',246,'N','Y','N','N','N','CreatedBy','User who created this records','Created By','N',100,TO_TIMESTAMP('2012-10-16 11:16:25','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:16:25','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:26 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200631 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:28 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200027,200632,'U',1,'N','N','N','The Date Last Inventory Count indicates the last time an Inventory count was done.','N',7,'N',15,'N','N',1088,'N','Y','N','Y','N','DateLastInventory','Date of Last Inventory Count','Date last inventory count','Y',100,TO_TIMESTAMP('2012-10-16 11:16:26','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:16:26','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:28 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200632 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:29 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (DefaultValue,AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES ('Y',200027,200633,'U',1,'Y','N','N','There are two methods of making records unavailable in the system: One is to delete the record, the other is to de-activate the record. A de-activated record is not available for selection, but available for reports.
|
||||||
|
There are two reasons for de-activating and not deleting records:
|
||||||
|
(1) The system requires the record for audit purposes.
|
||||||
|
(2) The record is referenced by other records. E.g., you cannot delete a Business Partner, if there are invoices for this partner record existing. You de-activate the Business Partner and prevent that this record is used for future entries.','N',1,'N',20,'N','N',348,'N','Y','N','N','N','IsActive','The record is active in the system','Active','N',100,TO_TIMESTAMP('2012-10-16 11:16:28','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:16:28','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:29 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200633 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:29 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,SeqNo,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200027,200634,'U',1,'Y','N','N',0,'The values of the actual Product Attribute Instances. The product level attributes are defined on Product level.','Y',22,'N',35,'N','N',2019,'N','Y','N','N','N','M_AttributeSetInstance_ID','Product Attribute Set Instance','Attribute Set Instance','Y',100,TO_TIMESTAMP('2012-10-16 11:16:29','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:16:29','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:29 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200634 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:30 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200027,200635,'U',1,'Y','N','N','The Locator indicates where in a Warehouse a product is located.','Y',22,'N',31,'N','N',448,'N','Y','N','N','N','M_Locator_ID','Warehouse Locator','Locator','Y',100,TO_TIMESTAMP('2012-10-16 11:16:29','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:16:29','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:30 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200635 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:31 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,AD_Val_Rule_ID,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200027,200636,'U',1,'Y','N','N','Identifies an item which is either purchased or sold in this organization.','Y',22,'N',30,'N',231,'N',454,'N','Y','N','N','N','M_Product_ID','Product, Service, Item','Product','Y',100,TO_TIMESTAMP('2012-10-16 11:16:30','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:16:30','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:31 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200636 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:32 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200027,200637,'U',1,'Y','N','N','The On Hand Quantity indicates the quantity of a product that is on hand in a warehouse.','N',22,'N',29,'N','N',530,'N','Y','N','N','N','QtyOnHand','On Hand Quantity','On Hand Quantity','Y',100,TO_TIMESTAMP('2012-10-16 11:16:31','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:16:31','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:32 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200637 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:33 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200027,200638,'U',1,'Y','N','N','The Updated field indicates the date that this record was updated.','N',7,'N',16,'N','N',607,'N','Y','N','N','N','Updated','Date this record was updated','Updated','N',100,TO_TIMESTAMP('2012-10-16 11:16:32','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:16:32','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:33 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200638 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:33 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,AD_Reference_Value_ID,IsMandatory,IsTranslated,IsIdentifier,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (200027,200639,'U',1,110,'Y','N','N','The Updated By field indicates the user who updated this record.','N',22,'N',18,'N','N',608,'N','Y','N','N','N','UpdatedBy','User who updated this records','Updated By','N',100,TO_TIMESTAMP('2012-10-16 11:16:33','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:16:33','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:16:33 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200639 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:17:01 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Column SET Help='The Quantity indicates the number of a specific product or item for this document.', AD_Element_ID=526, ColumnName='Qty', Description='Quantity', Name='Quantity',Updated=TO_TIMESTAMP('2012-10-16 11:17:01','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200637
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:17:01 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Column_Trl SET IsTranslated='N' WHERE AD_Column_ID=200637
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:17:01 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Field SET Name='Quantity', Description='Quantity', Help='The Quantity indicates the number of a specific product or item for this document.' WHERE AD_Column_ID=200637 AND IsCentrallyMaintained='Y'
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:17:12 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Column SET Help='The Warehouse identifies a unique Warehouse where products are stored or Services are provided.', AD_Element_ID=459, IsUpdateable='N', ColumnName='M_Warehouse_ID', Description='Storage Warehouse and Service Point', Name='Warehouse',Updated=TO_TIMESTAMP('2012-10-16 11:17:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200635
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:17:12 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Column_Trl SET IsTranslated='N' WHERE AD_Column_ID=200635
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:17:12 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Field SET Name='Warehouse', Description='Storage Warehouse and Service Point', Help='The Warehouse identifies a unique Warehouse where products are stored or Services are provided.' WHERE AD_Column_ID=200635 AND IsCentrallyMaintained='Y'
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:17:20 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Column SET AD_Reference_ID=19, IsUpdateable='N',Updated=TO_TIMESTAMP('2012-10-16 11:17:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200635
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:17:35 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Column SET AD_Val_Rule_ID=189, IsUpdateable='N',Updated=TO_TIMESTAMP('2012-10-16 11:17:35','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200635
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:18:05 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (DefaultValue,AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,SeqNo,Help,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Description,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES ('Y',200027,200640,'U',0,'N','N','N',0,'The Sales Transaction checkbox indicates if this item is a Sales Transaction.','N',1,'N',20,'N','N',1106,'N','Y','N','Y','N','IsSOTrx','This is a Sales Transaction','Sales Transaction','Y',100,TO_TIMESTAMP('2012-10-16 11:18:04','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-16 11:18:04','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:18:05 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200640 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 16, 2012 11:18:28 AM WIT
|
||||||
|
-- Resolve M_Storage locking and data consistency
|
||||||
|
CREATE TABLE M_StorageReservation (AD_Client_ID NUMERIC(10) NOT NULL, AD_Org_ID NUMERIC(10) NOT NULL, Created TIMESTAMP NOT NULL, CreatedBy NUMERIC(10) NOT NULL, DateLastInventory TIMESTAMP DEFAULT NULL , IsActive CHAR(1) DEFAULT 'Y' CHECK (IsActive IN ('Y','N')) NOT NULL, IsSOTrx CHAR(1) DEFAULT 'Y' CHECK (IsSOTrx IN ('Y','N')), M_AttributeSetInstance_ID NUMERIC(10) NOT NULL, M_Product_ID NUMERIC(10) NOT NULL, M_Warehouse_ID NUMERIC(10) NOT NULL, Qty NUMERIC NOT NULL, Updated TIMESTAMP NOT NULL, UpdatedBy NUMERIC(10) NOT NULL, CONSTRAINT M_StorageReservation_Key PRIMARY KEY (M_AttributeSetInstance_ID, M_Product_ID, M_Warehouse_ID))
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201211141732_IDEMPIERE-385_m_storage.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
CREATE OR REPLACE VIEW m_product_stock_v AS
|
||||||
|
SELECT ms.isactive, ms.created, ms.createdby, ms.updated, ms.updatedby, mp.value, mp.help, ms.qtyonhand - coalesce(mr.qty,0) AS qtyavailable, ms.qtyonhand, coalesce(mr.qty,0) as qtyreserved, mp.description, mw.name AS warehouse, mw.m_warehouse_id, mw.ad_client_id, mw.ad_org_id, mp.documentnote
|
||||||
|
FROM m_storageonhand ms
|
||||||
|
JOIN m_product mp ON ms.m_product_id = mp.m_product_id
|
||||||
|
JOIN m_locator ml ON ms.m_locator_id = ml.m_locator_id
|
||||||
|
JOIN m_warehouse mw ON ml.m_warehouse_id = mw.m_warehouse_id
|
||||||
|
LEFT JOIN m_storagereservation mr ON ms.m_product_id = mr.m_product_id AND mw.m_warehouse_id = mr.m_warehouse_id AND mr.isSOTrx='Y'
|
||||||
|
ORDER BY mw.name;
|
||||||
|
|
||||||
|
CREATE OR REPLACE VIEW m_product_substituterelated_v AS
|
||||||
|
SELECT s.ad_client_id, s.ad_org_id, s.isactive, s.created, s.createdby, s.updated, s.updatedby, s.m_product_id, s.substitute_id, 'S'::text AS rowtype, mp.name, sum(ms.qtyonhand - coalesce(mr.qty,0)) AS qtyavailable, sum(ms.qtyonhand) AS qtyonhand, coalesce(sum(mr.qty),0) AS qtyreserved, round(max(mpr.pricestd), 0) AS pricestd, mpr.m_pricelist_version_id, mw.m_warehouse_id, org.name AS orgname
|
||||||
|
FROM m_substitute s
|
||||||
|
JOIN m_storageonhand ms ON ms.m_product_id = s.substitute_id
|
||||||
|
JOIN m_product mp ON ms.m_product_id = mp.m_product_id
|
||||||
|
JOIN m_locator ml ON ms.m_locator_id = ml.m_locator_id
|
||||||
|
JOIN m_warehouse mw ON ml.m_warehouse_id = mw.m_warehouse_id
|
||||||
|
JOIN m_productprice mpr ON ms.m_product_id = mpr.m_product_id
|
||||||
|
JOIN ad_org org ON org.ad_org_id = mw.ad_org_id
|
||||||
|
LEFT JOIN m_storagereservation mr ON ms.m_product_id = mr.m_product_id AND mw.m_warehouse_id = mr.m_warehouse_id AND mr.isSOTrx='Y'
|
||||||
|
GROUP BY s.ad_client_id, s.ad_org_id, s.isactive, s.created, s.createdby, s.updated, s.updatedby, s.m_product_id, s.substitute_id, mw.m_warehouse_id, mpr.m_pricelist_version_id, org.name, mp.name
|
||||||
|
UNION
|
||||||
|
SELECT r.ad_client_id, r.ad_org_id, r.isactive, r.created, r.createdby, r.updated, r.updatedby, r.m_product_id, r.relatedproduct_id AS substitute_id, 'R'::text AS rowtype, mp.name, sum(ms.qtyonhand - coalesce(mr.qty,0)) AS qtyavailable, sum(ms.qtyonhand) AS qtyonhand, coalesce(sum(mr.qty),0) AS qtyreserved, round(max(mpr.pricestd), 0) AS pricestd, mpr.m_pricelist_version_id, mw.m_warehouse_id, org.name AS orgname
|
||||||
|
FROM m_relatedproduct r
|
||||||
|
JOIN m_storageonhand ms ON ms.m_product_id = r.relatedproduct_id
|
||||||
|
JOIN m_product mp ON ms.m_product_id = mp.m_product_id
|
||||||
|
JOIN m_locator ml ON ms.m_locator_id = ml.m_locator_id
|
||||||
|
JOIN m_warehouse mw ON ml.m_warehouse_id = mw.m_warehouse_id
|
||||||
|
JOIN m_productprice mpr ON ms.m_product_id = mpr.m_product_id
|
||||||
|
JOIN ad_org org ON org.ad_org_id = mw.ad_org_id
|
||||||
|
LEFT JOIN m_storagereservation mr ON ms.m_product_id = mr.m_product_id AND mw.m_warehouse_id = mr.m_warehouse_id AND mr.isSOTrx='Y'
|
||||||
|
GROUP BY r.ad_client_id, r.ad_org_id, r.isactive, r.created, r.createdby, r.updated, r.updatedby, r.m_product_id, r.relatedproduct_id, mw.m_warehouse_id, mpr.m_pricelist_version_id, org.name, mp.name;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201211141733_IDEMPIERE-385_m_viewProduct.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
-- Oct 19, 2012 2:07:52 PM WIT
|
||||||
|
-- Reserve Locator
|
||||||
|
INSERT INTO AD_Element (AD_Element_ID,ColumnName,EntityType,Name,PrintName,AD_Client_ID,Created,Updated,IsActive,AD_Org_ID,CreatedBy,UpdatedBy) VALUES (200188,'M_ReserveLocator_ID','U','M_ReserveLocator_ID','Reserve Locator',0,TO_TIMESTAMP('2012-10-19 14:07:51','YYYY-MM-DD HH24:MI:SS'),TO_TIMESTAMP('2012-10-19 14:07:51','YYYY-MM-DD HH24:MI:SS'),'Y',0,100,100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 19, 2012 2:07:52 PM WIT
|
||||||
|
-- Reserve Locator
|
||||||
|
INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Help,PO_Description,PO_Help,Name,Description,PrintName,PO_PrintName,PO_Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Element_ID, t.Help,t.PO_Description,t.PO_Help,t.Name,t.Description,t.PrintName,t.PO_PrintName,t.PO_Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=200188 AND NOT EXISTS (SELECT * FROM AD_Element_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Element_ID=t.AD_Element_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 19, 2012 2:08:25 PM WIT
|
||||||
|
-- Reserve Locator
|
||||||
|
INSERT INTO AD_Column (AD_Table_ID,AD_Column_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsSyncDatabase,IsKey,AD_Element_ID,IsAutocomplete,IsAllowLogging,IsEncrypted,IsUpdateable,IsAlwaysUpdateable,ColumnName,Name,IsAllowCopy,CreatedBy,Updated,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy) VALUES (190,200704,'U',0,'N','N','N',0,'N',10,'N',31,'N','N',200188,'N','Y','N','Y','N','M_ReserveLocator_ID','M_ReserveLocator_ID','Y',100,TO_TIMESTAMP('2012-10-19 14:08:24','YYYY-MM-DD HH24:MI:SS'),0,0,'Y',TO_TIMESTAMP('2012-10-19 14:08:24','YYYY-MM-DD HH24:MI:SS'),100)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 19, 2012 2:08:25 PM WIT
|
||||||
|
-- Reserve Locator
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200704 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 19, 2012 2:08:28 PM WIT
|
||||||
|
-- Reserve Locator
|
||||||
|
ALTER TABLE M_Warehouse ADD COLUMN M_ReserveLocator_ID NUMERIC(10) DEFAULT NULL
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 19, 2012 2:08:49 PM WIT
|
||||||
|
-- Reserve Locator
|
||||||
|
INSERT INTO AD_Field (IsEncrypted,DisplayLength,AD_Tab_ID,IsDisplayed,IsSameLine,IsHeading,AD_Column_ID,IsFieldOnly,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,EntityType,Name,UpdatedBy,AD_Org_ID,IsActive,Created,AD_Client_ID,CreatedBy,Updated) VALUES ('N',10,177,'Y','N','N',200704,'N','Y',200649,'N','U','M_ReserveLocator_ID',100,0,'Y',TO_TIMESTAMP('2012-10-19 14:08:48','YYYY-MM-DD HH24:MI:SS'),0,100,TO_TIMESTAMP('2012-10-19 14:08:48','YYYY-MM-DD HH24:MI:SS'))
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 19, 2012 2:08:49 PM WIT
|
||||||
|
-- Reserve Locator
|
||||||
|
INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Field_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=200649 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 19, 2012 2:09:08 PM WIT
|
||||||
|
-- Reserve Locator
|
||||||
|
UPDATE AD_Field SET Name='Reserve Locator',Updated=TO_TIMESTAMP('2012-10-19 14:09:08','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200649
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 19, 2012 2:09:08 PM WIT
|
||||||
|
-- Reserve Locator
|
||||||
|
UPDATE AD_Field_Trl SET IsTranslated='N' WHERE AD_Field_ID=200649
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201211141734_IDEMPIERE-385_reserveLocator.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,515 @@
|
||||||
|
-- Nov 19, 2012 10:56:55 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Element (ColumnName,AD_Element_ID,EntityType,Name,PrintName,AD_Element_UU,AD_Client_ID,Created,Updated,AD_Org_ID,CreatedBy,UpdatedBy,IsActive) VALUES ('M_StorageOnHand_UU',200233,'U','M_StorageOnHand_UU','M_StorageOnHand_UU','d22731f0-0762-43bf-9f29-66383f3038f8',0,TO_TIMESTAMP('2012-11-19 10:56:54','YYYY-MM-DD HH24:MI:SS'),TO_TIMESTAMP('2012-11-19 10:56:54','YYYY-MM-DD HH24:MI:SS'),0,100,100,'Y')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 10:56:55 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Help,PO_Description,PO_Help,Name,Description,PrintName,PO_Name,PO_PrintName, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Element_Trl_UU ) SELECT l.AD_Language,t.AD_Element_ID, t.Help,t.PO_Description,t.PO_Help,t.Name,t.Description,t.PrintName,t.PO_Name,t.PO_PrintName, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=200233 AND NOT EXISTS (SELECT * FROM AD_Element_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Element_ID=t.AD_Element_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 10:56:56 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (IsEncrypted,Version,AD_Table_ID,AD_Column_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,AD_Element_ID,AD_Column_UU,IsUpdateable,IsAlwaysUpdateable,ColumnName,Name,Updated,CreatedBy,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Client_ID) VALUES ('N',1.00,200026,200917,'U','N','N','N','N',36,'N',10,'N',200233,'66058949-db74-48a6-a940-79ee28d0f0ed','Y','N','M_StorageOnHand_UU','M_StorageOnHand_UU',TO_TIMESTAMP('2012-11-19 10:56:54','YYYY-MM-DD HH24:MI:SS'),100,0,'Y',TO_TIMESTAMP('2012-11-19 10:56:54','YYYY-MM-DD HH24:MI:SS'),100,0)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 10:56:56 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Column_Trl_UU ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200917 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 10:56:56 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
ALTER TABLE M_StorageOnHand ADD COLUMN M_StorageOnHand_UU VARCHAR(36) DEFAULT NULL
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 10:56:56 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
CREATE UNIQUE INDEX M_StorageOnHand_UU_idx ON m_storageonhand(M_StorageOnHand_UU)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 10:56:57 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Element (ColumnName,AD_Element_ID,EntityType,Name,PrintName,AD_Element_UU,AD_Client_ID,Created,Updated,AD_Org_ID,CreatedBy,UpdatedBy,IsActive) VALUES ('M_StorageReservation_UU',200234,'U','M_StorageReservation_UU','M_StorageReservation_UU','283bcf86-e8af-4ac7-aaff-efcfa104e700',0,TO_TIMESTAMP('2012-11-19 10:56:56','YYYY-MM-DD HH24:MI:SS'),TO_TIMESTAMP('2012-11-19 10:56:56','YYYY-MM-DD HH24:MI:SS'),0,100,100,'Y')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 10:56:57 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Help,PO_Description,PO_Help,Name,Description,PrintName,PO_Name,PO_PrintName, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Element_Trl_UU ) SELECT l.AD_Language,t.AD_Element_ID, t.Help,t.PO_Description,t.PO_Help,t.Name,t.Description,t.PrintName,t.PO_Name,t.PO_PrintName, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=200234 AND NOT EXISTS (SELECT * FROM AD_Element_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Element_ID=t.AD_Element_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 10:56:57 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column (IsEncrypted,Version,AD_Table_ID,AD_Column_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,AD_Element_ID,AD_Column_UU,IsUpdateable,IsAlwaysUpdateable,ColumnName,Name,Updated,CreatedBy,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Client_ID) VALUES ('N',1.00,200027,200918,'U','N','N','N','N',36,'N',10,'N',200234,'fb178aac-4ffe-4244-907c-89a0a527acf8','Y','N','M_StorageReservation_UU','M_StorageReservation_UU',TO_TIMESTAMP('2012-11-19 10:56:56','YYYY-MM-DD HH24:MI:SS'),100,0,'Y',TO_TIMESTAMP('2012-11-19 10:56:56','YYYY-MM-DD HH24:MI:SS'),100,0)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 10:56:57 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Column_Trl_UU ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200918 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 10:56:57 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
ALTER TABLE M_StorageReservation ADD COLUMN M_StorageReservation_UU VARCHAR(36) DEFAULT NULL
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 10:56:57 AM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
CREATE UNIQUE INDEX M_StorageReservation_UU_idx ON m_storagereservation(M_StorageReservation_UU)
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE m_storageonhand DROP CONSTRAINT m_storageonhand_key
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE m_storageonhand ADD CONSTRAINT m_storageonhand_pkey PRIMARY KEY (m_product_id, m_locator_id, m_attributesetinstance_id)
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE m_storagereservation DROP CONSTRAINT m_storagereservation_key
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE m_storagereservation ADD CONSTRAINT m_storagereservation_pkey PRIMARY KEY (m_product_id, m_warehouse_id, issotrx, m_attributesetinstance_id)
|
||||||
|
;
|
||||||
|
|
||||||
|
insert into m_storageonhand (
|
||||||
|
ad_client_id,
|
||||||
|
ad_org_id,
|
||||||
|
created,
|
||||||
|
createdby,
|
||||||
|
datelastinventory,
|
||||||
|
isactive,
|
||||||
|
m_attributesetinstance_id,
|
||||||
|
m_locator_id,
|
||||||
|
m_product_id,
|
||||||
|
qtyonhand,
|
||||||
|
updated,
|
||||||
|
updatedby,
|
||||||
|
m_storageonhand_uu
|
||||||
|
)
|
||||||
|
select ad_client_id,
|
||||||
|
ad_org_id,
|
||||||
|
created,
|
||||||
|
createdby,
|
||||||
|
datelastinventory,
|
||||||
|
isactive,
|
||||||
|
m_attributesetinstance_id,
|
||||||
|
m_locator_id,
|
||||||
|
m_product_id,
|
||||||
|
qtyonhand,
|
||||||
|
updated,
|
||||||
|
updatedby,
|
||||||
|
generate_uuid()
|
||||||
|
from m_storage
|
||||||
|
;
|
||||||
|
|
||||||
|
insert into m_storagereservation (
|
||||||
|
ad_client_id,
|
||||||
|
ad_org_id,
|
||||||
|
created,
|
||||||
|
createdby,
|
||||||
|
datelastinventory,
|
||||||
|
isactive,
|
||||||
|
issotrx,
|
||||||
|
m_attributesetinstance_id,
|
||||||
|
m_product_id,
|
||||||
|
m_warehouse_id,
|
||||||
|
qty,
|
||||||
|
updated,
|
||||||
|
updatedby,
|
||||||
|
m_storagereservation_uu
|
||||||
|
)
|
||||||
|
select
|
||||||
|
min(s.ad_client_id),
|
||||||
|
min(s.ad_org_id),
|
||||||
|
min(s.created),
|
||||||
|
min(s.createdby),
|
||||||
|
null,
|
||||||
|
'Y',
|
||||||
|
'Y',
|
||||||
|
s.m_attributesetinstance_id,
|
||||||
|
s.m_product_id,
|
||||||
|
l.m_warehouse_id,
|
||||||
|
sum(s.qtyreserved),
|
||||||
|
max(s.updated),
|
||||||
|
max(s.updatedby),
|
||||||
|
generate_uuid()
|
||||||
|
from m_storage s
|
||||||
|
join m_locator l on (s.m_locator_id=l.m_locator_id)
|
||||||
|
where s.isactive='Y'
|
||||||
|
and s.qtyreserved!=0
|
||||||
|
group by s.m_attributesetinstance_id,
|
||||||
|
s.m_product_id,
|
||||||
|
l.m_warehouse_id
|
||||||
|
;
|
||||||
|
|
||||||
|
insert into m_storagereservation (
|
||||||
|
ad_client_id,
|
||||||
|
ad_org_id,
|
||||||
|
created,
|
||||||
|
createdby,
|
||||||
|
datelastinventory,
|
||||||
|
isactive,
|
||||||
|
issotrx,
|
||||||
|
m_attributesetinstance_id,
|
||||||
|
m_product_id,
|
||||||
|
m_warehouse_id,
|
||||||
|
qty,
|
||||||
|
updated,
|
||||||
|
updatedby,
|
||||||
|
m_storagereservation_uu
|
||||||
|
)
|
||||||
|
select
|
||||||
|
min(s.ad_client_id),
|
||||||
|
min(s.ad_org_id),
|
||||||
|
min(s.created),
|
||||||
|
min(s.createdby),
|
||||||
|
null,
|
||||||
|
'Y',
|
||||||
|
'N',
|
||||||
|
s.m_attributesetinstance_id,
|
||||||
|
s.m_product_id,
|
||||||
|
l.m_warehouse_id,
|
||||||
|
sum(s.qtyordered),
|
||||||
|
max(s.updated),
|
||||||
|
max(s.updatedby),
|
||||||
|
generate_uuid()
|
||||||
|
from m_storage s
|
||||||
|
join m_locator l on (s.m_locator_id=l.m_locator_id)
|
||||||
|
where s.isactive='Y'
|
||||||
|
and s.qtyordered!=0
|
||||||
|
group by s.m_attributesetinstance_id,
|
||||||
|
s.m_product_id,
|
||||||
|
l.m_warehouse_id
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE m_storage RENAME TO m_storage_to_drop
|
||||||
|
;
|
||||||
|
|
||||||
|
CREATE OR REPLACE VIEW m_storage
|
||||||
|
AS
|
||||||
|
SELECT s.m_product_id,
|
||||||
|
s.m_locator_id,
|
||||||
|
s.ad_client_id,
|
||||||
|
s.ad_org_id,
|
||||||
|
s.isactive,
|
||||||
|
s.created,
|
||||||
|
s.createdby,
|
||||||
|
s.updated,
|
||||||
|
s.updatedby,
|
||||||
|
s.qtyonhand,
|
||||||
|
0 AS qtyreserved,
|
||||||
|
0 AS qtyordered,
|
||||||
|
s.datelastinventory,
|
||||||
|
s.m_attributesetinstance_id,
|
||||||
|
s.m_storageonhand_uu
|
||||||
|
FROM m_storageonhand s
|
||||||
|
UNION
|
||||||
|
SELECT sr.m_product_id,
|
||||||
|
w.m_reservelocator_id AS m_locator_id,
|
||||||
|
sr.ad_client_id,
|
||||||
|
sr.ad_org_id,
|
||||||
|
sr.isactive,
|
||||||
|
sr.created,
|
||||||
|
sr.createdby,
|
||||||
|
sr.updated,
|
||||||
|
sr.updatedby,
|
||||||
|
0 AS qtyonhand,
|
||||||
|
sr.qty AS qtyreserved,
|
||||||
|
0 AS qtyordered,
|
||||||
|
sr.datelastinventory,
|
||||||
|
sr.m_attributesetinstance_id,
|
||||||
|
sr.m_storagereservation_uu
|
||||||
|
FROM m_storagereservation sr
|
||||||
|
JOIN m_warehouse w
|
||||||
|
ON sr.m_warehouse_id = w.m_warehouse_id
|
||||||
|
WHERE sr.issotrx = 'Y'
|
||||||
|
UNION
|
||||||
|
SELECT so.m_product_id,
|
||||||
|
w.m_reservelocator_id AS m_locator_id,
|
||||||
|
so.ad_client_id,
|
||||||
|
so.ad_org_id,
|
||||||
|
so.isactive,
|
||||||
|
so.created,
|
||||||
|
so.createdby,
|
||||||
|
so.updated,
|
||||||
|
so.updatedby,
|
||||||
|
0 AS qtyonhand,
|
||||||
|
0 AS qtyreserved,
|
||||||
|
so.qty AS qtyordered,
|
||||||
|
so.datelastinventory,
|
||||||
|
so.m_attributesetinstance_id,
|
||||||
|
so.m_storagereservation_uu
|
||||||
|
FROM m_storagereservation so
|
||||||
|
JOIN m_warehouse w
|
||||||
|
ON so.m_warehouse_id = w.m_warehouse_id
|
||||||
|
WHERE so.issotrx = 'N'
|
||||||
|
;
|
||||||
|
|
||||||
|
-- PostgreSQL requires to recreate all views before dropping a table
|
||||||
|
CREATE OR REPLACE VIEW RV_STORAGE
|
||||||
|
(AD_CLIENT_ID, AD_ORG_ID, M_PRODUCT_ID, VALUE, NAME,
|
||||||
|
DESCRIPTION, UPC, SKU, C_UOM_ID, M_PRODUCT_CATEGORY_ID,
|
||||||
|
CLASSIFICATION, WEIGHT, VOLUME, VERSIONNO, GUARANTEEDAYS,
|
||||||
|
GUARANTEEDAYSMIN, M_LOCATOR_ID, M_WAREHOUSE_ID, X, Y,
|
||||||
|
Z, QTYONHAND, QTYRESERVED, QTYAVAILABLE, QTYORDERED,
|
||||||
|
DATELASTINVENTORY, M_ATTRIBUTESETINSTANCE_ID, M_ATTRIBUTESET_ID, SERNO, LOT,
|
||||||
|
M_LOT_ID, GUARANTEEDATE, SHELFLIFEDAYS, GOODFORDAYS, SHELFLIFEREMAININGPCT)
|
||||||
|
AS
|
||||||
|
SELECT s.AD_Client_ID, s.AD_Org_ID,
|
||||||
|
-- Product
|
||||||
|
s.M_Product_ID, p.Value,p.Name, p.Description, p.UPC, p.SKU,
|
||||||
|
p.C_UOM_ID, p.M_Product_Category_ID, p.Classification, p.Weight, p.Volume, p.VersionNo,
|
||||||
|
p.GuaranteeDays, p.GuaranteeDaysMin,
|
||||||
|
-- Locator
|
||||||
|
s.M_Locator_ID, l.M_Warehouse_ID, l.X, l.Y, l.Z,
|
||||||
|
-- Storage
|
||||||
|
s.QtyOnHand, s.QtyReserved, s.QtyOnHand-s.QtyReserved AS QtyAvailable,
|
||||||
|
s.QtyOrdered, s.DateLastInventory,
|
||||||
|
-- Instance
|
||||||
|
s.M_AttributeSetInstance_ID, asi.M_AttributeSet_ID, asi.SerNo, asi.Lot, asi.M_Lot_ID,
|
||||||
|
asi.GuaranteeDate, -- see PAttributeInstance.java
|
||||||
|
daysBetween(asi.GuaranteeDate,getdate()) AS ShelfLifeDays,
|
||||||
|
daysBetween(asi.GuaranteeDate,getdate())-p.GuaranteeDaysMin AS GoodForDays,
|
||||||
|
CASE WHEN COALESCE(p.GuaranteeDays,0)>0
|
||||||
|
THEN ROUND((daysBetween(asi.GuaranteeDate,getdate())/p.GuaranteeDays)*100,0)
|
||||||
|
ELSE NULL
|
||||||
|
END AS ShelfLifeRemainingPct
|
||||||
|
FROM M_Storage s
|
||||||
|
INNER JOIN M_Locator l ON (s.M_Locator_ID=l.M_Locator_ID)
|
||||||
|
INNER JOIN M_Product p ON (s.M_Product_ID=p.M_Product_ID)
|
||||||
|
LEFT OUTER JOIN M_AttributeSetInstance asi ON (s.M_AttributeSetInstance_ID=asi.M_AttributeSetInstance_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
CREATE OR REPLACE VIEW rv_pp_order_receipt_issue AS
|
||||||
|
SELECT obl.pp_order_bomline_id,
|
||||||
|
obl.iscritical,
|
||||||
|
p.value,
|
||||||
|
obl.m_product_id,
|
||||||
|
mos.name AS productname,
|
||||||
|
mos.m_attributesetinstance_id,
|
||||||
|
asi.description AS instancename,
|
||||||
|
mos.c_uom_id,
|
||||||
|
u.name AS uomname,
|
||||||
|
obl.qtyrequiered,
|
||||||
|
obl.qtyreserved AS qtyreserved_order,
|
||||||
|
mos.qtyonhand,
|
||||||
|
mos.qtyreserved AS qtyreserved_storage,
|
||||||
|
mos.qtyavailable,
|
||||||
|
mos.m_locator_id,
|
||||||
|
mos.m_warehouse_id,
|
||||||
|
w.name AS warehousename,
|
||||||
|
mos.qtybom,
|
||||||
|
mos.isqtypercentage,
|
||||||
|
mos.qtybatch,
|
||||||
|
obl.componenttype,
|
||||||
|
mos.qtyrequiered - obl.qtydelivered AS qtyopen,
|
||||||
|
obl.pp_order_id
|
||||||
|
FROM rv_pp_order_storage mos
|
||||||
|
JOIN pp_order_bomline obl ON mos.pp_order_bomline_id = obl.pp_order_bomline_id
|
||||||
|
JOIN m_attributesetinstance asi ON mos.m_attributesetinstance_id = asi.m_attributesetinstance_id
|
||||||
|
JOIN c_uom u ON mos.c_uom_id = u.c_uom_id
|
||||||
|
JOIN m_product p ON mos.m_product_id = p.m_product_id
|
||||||
|
JOIN m_warehouse w ON mos.m_warehouse_id = w.m_warehouse_id
|
||||||
|
;
|
||||||
|
|
||||||
|
CREATE OR REPLACE VIEW rv_pp_order_storage AS
|
||||||
|
SELECT
|
||||||
|
obl.ad_client_id,
|
||||||
|
obl.ad_org_id,
|
||||||
|
obl.createdby,
|
||||||
|
obl.updatedby,
|
||||||
|
obl.updated,
|
||||||
|
obl.created,
|
||||||
|
obl.isactive,
|
||||||
|
obl.pp_order_bom_id,
|
||||||
|
obl.pp_order_bomline_id,
|
||||||
|
obl.pp_order_id,
|
||||||
|
obl.iscritical,
|
||||||
|
obl.m_product_id,
|
||||||
|
( SELECT p.name FROM m_product p WHERE p.m_product_id = o.m_product_id) AS name,
|
||||||
|
obl.c_uom_id,
|
||||||
|
s.qtyonhand,
|
||||||
|
round(obl.qtyrequiered, 4) AS qtyrequiered,
|
||||||
|
CASE WHEN o.qtybatchs = 0 THEN 1 ELSE round(obl.qtyrequiered / o.qtybatchs, 4) END AS qtybatchsize,
|
||||||
|
round(bomqtyreserved(obl.m_product_id,obl.m_warehouse_id, 0), 4) AS qtyreserved,
|
||||||
|
round(bomqtyavailable(obl.m_product_id, obl.m_warehouse_id,0), 4) AS qtyavailable,
|
||||||
|
obl.m_warehouse_id,
|
||||||
|
obl.qtybom,
|
||||||
|
obl.isqtypercentage,
|
||||||
|
round(obl.qtybatch, 4) AS qtybatch,
|
||||||
|
obl.m_attributesetinstance_id,
|
||||||
|
l.m_locator_id,
|
||||||
|
l.x,
|
||||||
|
l.y,
|
||||||
|
l.z
|
||||||
|
FROM pp_order_bomline obl
|
||||||
|
JOIN pp_order o ON o.pp_order_id = obl.pp_order_id
|
||||||
|
LEFT JOIN m_storage s ON s.m_product_id = obl.m_product_id AND s.qtyonhand <> 0 AND obl.m_warehouse_id = (( SELECT ld.m_warehouse_id FROM m_locator ld WHERE s.m_locator_id = ld.m_locator_id))
|
||||||
|
LEFT JOIN m_locator l ON l.m_locator_id = s.m_locator_id
|
||||||
|
ORDER BY obl.m_product_id
|
||||||
|
;
|
||||||
|
|
||||||
|
CREATE OR REPLACE VIEW rv_storage_per_product AS
|
||||||
|
SELECT strg.AD_Client_ID, strg.AD_Org_ID
|
||||||
|
, p.M_Product_ID, p.Value, p.Name
|
||||||
|
, p.Description, p.UPC, p.SKU
|
||||||
|
, p.C_UOM_ID, p.M_Product_Category_ID, p.Classification, p.Weight, p.Volume, p.VersionNo
|
||||||
|
, p.GuaranteeDays, p.GuaranteeDaysMin
|
||||||
|
, strg.SumQtyOnHand
|
||||||
|
FROM M_Product p
|
||||||
|
INNER JOIN ( SELECT M_Product_ID, M_Locator_ID, SUM (QtyOnHand) as SumQtyOnHand
|
||||||
|
, AD_Client_ID, AD_Org_ID
|
||||||
|
FROM RV_Storage
|
||||||
|
GROUP BY M_Product_ID, M_Locator_ID, AD_Client_ID, AD_Org_ID) strg ON (p.M_Product_ID = strg.M_Product_ID)
|
||||||
|
INNER JOIN M_Locator l ON (strg.M_Locator_ID=l.M_Locator_ID)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Comment the next if you want to preserve a backup of the M_Storage table
|
||||||
|
DROP TABLE m_storage_to_drop
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 12:19:33 PM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Table SET IsView='Y',Updated=TO_TIMESTAMP('2012-11-19 12:19:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=250
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 12:26:17 PM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Tab SET OrderByClause='M_Product_ID, M_AttributeSetInstance_ID, M_Locator_ID',Updated=TO_TIMESTAMP('2012-11-19 12:26:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=179
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 12:26:42 PM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Tab SET OrderByClause='M_Product_ID, M_AttributeSetInstance_ID, M_Locator_ID',Updated=TO_TIMESTAMP('2012-11-19 12:26:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=53244
|
||||||
|
;
|
||||||
|
|
||||||
|
update m_warehouse set m_reservelocator_id =
|
||||||
|
(select min(m_locator_id)
|
||||||
|
from m_locator
|
||||||
|
where m_warehouse_id =m_warehouse.m_warehouse_id and isactive='Y' and isdefault='Y')
|
||||||
|
where m_reservelocator_id is null
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 19, 2012 1:15:02 PM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Column SET AD_Reference_Value_ID=191, AD_Reference_ID=18, AD_Val_Rule_ID=127, IsToolbarButton='N',Updated=TO_TIMESTAMP('2012-11-19 13:15:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200704
|
||||||
|
;
|
||||||
|
|
||||||
|
--create views
|
||||||
|
CREATE OR REPLACE VIEW M_PRODUCT_STOCK_V
|
||||||
|
AS
|
||||||
|
SELECT
|
||||||
|
ms.IsActive, ms.Created, ms.CreatedBy, ms.Updated, ms.UpdatedBy,
|
||||||
|
mp.VALUE, mp.help, (ms.qtyonhand - ms.qtyreserved) AS qtyavailable, ms.qtyonhand,
|
||||||
|
ms.qtyreserved, mp.description, mw.NAME AS warehouse, mw.m_warehouse_id, mw.ad_client_id,
|
||||||
|
mw.ad_org_id, mp.documentnote
|
||||||
|
FROM M_STORAGE ms
|
||||||
|
JOIN M_PRODUCT mp ON ms.m_product_id = mp.m_product_id
|
||||||
|
JOIN M_LOCATOR ml ON ms.m_locator_id = ml.m_locator_id
|
||||||
|
JOIN M_WAREHOUSE mw ON ml.m_warehouse_id = mw.m_warehouse_id
|
||||||
|
ORDER BY mw.NAME
|
||||||
|
;
|
||||||
|
|
||||||
|
CREATE OR REPLACE VIEW M_PRODUCT_SUBSTITUTERELATED_V AS
|
||||||
|
SELECT s.ad_client_id,
|
||||||
|
s.ad_org_id,
|
||||||
|
s.isactive,
|
||||||
|
s.created,
|
||||||
|
s.createdby,
|
||||||
|
s.updated,
|
||||||
|
s.updatedby,
|
||||||
|
s.m_product_id,
|
||||||
|
s.substitute_id,
|
||||||
|
'S' AS rowtype,
|
||||||
|
mp.name,
|
||||||
|
sum(ms.qtyonhand - ms.qtyreserved) AS qtyavailable,
|
||||||
|
sum(ms.qtyonhand) AS qtyonhand,
|
||||||
|
sum(ms.qtyreserved) AS qtyreserved,
|
||||||
|
ROUND(MAX(mpr.pricestd),0) AS pricestd,
|
||||||
|
mpr.m_pricelist_version_id,
|
||||||
|
mw.m_warehouse_id,
|
||||||
|
org.name AS orgname
|
||||||
|
FROM m_substitute s
|
||||||
|
JOIN m_storage ms ON ms.m_product_id = s.substitute_id
|
||||||
|
JOIN m_product mp ON ms.m_product_id = mp.m_product_id
|
||||||
|
JOIN m_locator ml ON ms.m_locator_id = ml.m_locator_id
|
||||||
|
JOIN m_warehouse mw ON ml.m_warehouse_id = mw.m_warehouse_id
|
||||||
|
JOIN m_productprice mpr ON ms.m_product_id = mpr.m_product_id
|
||||||
|
JOIN ad_org org ON org.ad_org_id = mw.ad_org_id
|
||||||
|
GROUP BY s.ad_client_id,
|
||||||
|
s.ad_org_id,
|
||||||
|
s.isactive,
|
||||||
|
s.created,
|
||||||
|
s.createdby,
|
||||||
|
s.updated,
|
||||||
|
s.updatedby,
|
||||||
|
s.m_product_id,
|
||||||
|
s.substitute_id,
|
||||||
|
mw.m_warehouse_id,
|
||||||
|
mpr.m_pricelist_version_id,
|
||||||
|
org.name,
|
||||||
|
mp.name
|
||||||
|
UNION
|
||||||
|
SELECT r.ad_client_id,
|
||||||
|
r.ad_org_id,
|
||||||
|
r.isactive,
|
||||||
|
r.created,
|
||||||
|
r.createdby,
|
||||||
|
r.updated,
|
||||||
|
r.updatedby,
|
||||||
|
r.m_product_id,
|
||||||
|
r.relatedproduct_id AS substitute_id,
|
||||||
|
'R' AS rowtype,
|
||||||
|
mp.name,
|
||||||
|
sum(ms.qtyonhand - ms.qtyreserved) AS qtyavailable,
|
||||||
|
sum(ms.qtyonhand) AS qtyonhand,
|
||||||
|
sum(ms.qtyreserved) AS qtyreserved,
|
||||||
|
ROUND(MAX(mpr.pricestd),0) AS pricestd,
|
||||||
|
mpr.m_pricelist_version_id,
|
||||||
|
mw.m_warehouse_id,
|
||||||
|
org.name AS orgname
|
||||||
|
FROM m_relatedproduct r
|
||||||
|
JOIN m_storage ms ON ms.m_product_id = r.relatedproduct_id
|
||||||
|
JOIN m_product mp ON ms.m_product_id = mp.m_product_id
|
||||||
|
JOIN m_locator ml ON ms.m_locator_id = ml.m_locator_id
|
||||||
|
JOIN m_warehouse mw ON ml.m_warehouse_id = mw.m_warehouse_id
|
||||||
|
JOIN m_productprice mpr ON ms.m_product_id = mpr.m_product_id
|
||||||
|
JOIN ad_org org ON org.ad_org_id = mw.ad_org_id
|
||||||
|
GROUP BY r.ad_client_id,
|
||||||
|
r.ad_org_id,
|
||||||
|
r.isactive,
|
||||||
|
r.created,
|
||||||
|
r.createdby,
|
||||||
|
r.updated,
|
||||||
|
r.updatedby,
|
||||||
|
r.m_product_id,
|
||||||
|
r.relatedproduct_id,
|
||||||
|
mw.m_warehouse_id,
|
||||||
|
mpr.m_pricelist_version_id,
|
||||||
|
org.name,
|
||||||
|
mp.name
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 20, 2012 5:06:02 PM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Column SET IsParent='Y', IsUpdateable='N', IsToolbarButton='N',Updated=TO_TIMESTAMP('2012-11-20 17:06:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200640
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 20, 2012 5:28:27 PM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE AD_Column SET IsMandatory='Y', IsUpdateable='N',Updated=TO_TIMESTAMP('2012-11-20 17:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200640
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 20, 2012 5:28:36 PM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
-- INSERT INTO t_alter_column values('m_storagereservation','IsSOTrx','CHAR(1)',null,'Y')
|
||||||
|
-- not needed - avoid ERROR: failed to recreate dependent view
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 20, 2012 5:28:36 PM COT
|
||||||
|
-- IDEMPIERE-385 Resolve M_Storage locking and data consistency
|
||||||
|
UPDATE M_StorageReservation SET IsSOTrx='Y' WHERE IsSOTrx IS NULL
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201211191100_IDEMPIERE-385_DB.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,428 @@
|
||||||
|
-- Nov 16, 2012 2:47:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_TIMESTAMP('2012-11-16 14:47:07','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=53210
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 2:47:13 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_TIMESTAMP('2012-11-16 14:47:13','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=331
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 2:49:20 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=40,Updated=TO_TIMESTAMP('2012-11-16 14:49:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=549
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 2:49:27 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_TIMESTAMP('2012-11-16 14:49:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=136
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 2:49:33 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_TIMESTAMP('2012-11-16 14:49:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=215
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 2:50:55 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=40,Updated=TO_TIMESTAMP('2012-11-16 14:50:55','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=557
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 2:51:30 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_TIMESTAMP('2012-11-16 14:51:30','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=127
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 2:56:23 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_TIMESTAMP('2012-11-16 14:56:23','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=303
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 2:56:28 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_TIMESTAMP('2012-11-16 14:56:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=309
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 2:59:06 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_TIMESTAMP('2012-11-16 14:59:06','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=233
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 2:59:10 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_TIMESTAMP('2012-11-16 14:59:10','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=503
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:01:47 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=60,Updated=TO_TIMESTAMP('2012-11-16 15:01:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=171
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:01:51 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_TIMESTAMP('2012-11-16 15:01:51','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=104
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:01:56 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_TIMESTAMP('2012-11-16 15:01:56','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=172
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:02:00 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=40,Updated=TO_TIMESTAMP('2012-11-16 15:02:00','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=103
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:02:05 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=50,Updated=TO_TIMESTAMP('2012-11-16 15:02:05','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=773
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:08:20 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_TIMESTAMP('2012-11-16 15:08:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=246
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:08:29 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_TIMESTAMP('2012-11-16 15:08:29','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=247
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:08:36 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=40,Updated=TO_TIMESTAMP('2012-11-16 15:08:36','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=248
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:08:40 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=50,Updated=TO_TIMESTAMP('2012-11-16 15:08:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=308
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:10:04 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_TIMESTAMP('2012-11-16 15:10:04','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=101
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:10:10 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_TIMESTAMP('2012-11-16 15:10:10','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=681
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:10:13 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=40,Updated=TO_TIMESTAMP('2012-11-16 15:10:13','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=53298
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:10:17 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=50,Updated=TO_TIMESTAMP('2012-11-16 15:10:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=53069
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:10:21 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=60,Updated=TO_TIMESTAMP('2012-11-16 15:10:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=673
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:11:11 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_TIMESTAMP('2012-11-16 15:11:11','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=333
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:11:15 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_TIMESTAMP('2012-11-16 15:11:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=640
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:11:19 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=40,Updated=TO_TIMESTAMP('2012-11-16 15:11:19','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=458
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:12:02 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_TIMESTAMP('2012-11-16 15:12:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=134
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:12:06 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_TIMESTAMP('2012-11-16 15:12:06','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=273
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:13:49 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_TIMESTAMP('2012-11-16 15:13:49','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=106
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:13:53 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_TIMESTAMP('2012-11-16 15:13:53','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=116
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:13:57 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=40,Updated=TO_TIMESTAMP('2012-11-16 15:13:57','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=430
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:14:04 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=50,Updated=TO_TIMESTAMP('2012-11-16 15:14:04','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=200009
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:14:08 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=60,Updated=TO_TIMESTAMP('2012-11-16 15:14:08','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=107
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:14:25 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=70,Updated=TO_TIMESTAMP('2012-11-16 15:14:25','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=115
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:14:30 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=80,Updated=TO_TIMESTAMP('2012-11-16 15:14:30','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=200028
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:14:34 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=90,Updated=TO_TIMESTAMP('2012-11-16 15:14:34','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=117
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:14:39 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=100,Updated=TO_TIMESTAMP('2012-11-16 15:14:39','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=311
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:17:02 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_TIMESTAMP('2012-11-16 15:17:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=107
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:17:24 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=70,Updated=TO_TIMESTAMP('2012-11-16 15:17:24','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=116
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:17:28 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=60,Updated=TO_TIMESTAMP('2012-11-16 15:17:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=115
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:06 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=275
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:06 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=6432
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:06 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=10,IsDisplayedGrid='Y' WHERE AD_Field_ID=1990
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=20,IsDisplayedGrid='Y' WHERE AD_Field_ID=126
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=30,IsDisplayedGrid='Y' WHERE AD_Field_ID=127
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=40,IsDisplayedGrid='Y' WHERE AD_Field_ID=128
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=50,IsDisplayedGrid='Y' WHERE AD_Field_ID=129
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=60,IsDisplayedGrid='Y' WHERE AD_Field_ID=274
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=70,IsDisplayedGrid='Y' WHERE AD_Field_ID=130
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=80,IsDisplayedGrid='Y' WHERE AD_Field_ID=5808
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=90,IsDisplayedGrid='Y' WHERE AD_Field_ID=4259
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=100,IsDisplayedGrid='Y' WHERE AD_Field_ID=1551
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=110,IsDisplayedGrid='Y' WHERE AD_Field_ID=132
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=120,IsDisplayedGrid='Y' WHERE AD_Field_ID=200276
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=130,IsDisplayedGrid='Y' WHERE AD_Field_ID=924
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=140,IsDisplayedGrid='Y' WHERE AD_Field_ID=133
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=150,IsDisplayedGrid='Y' WHERE AD_Field_ID=136
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=160,IsDisplayedGrid='Y' WHERE AD_Field_ID=142
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=170,IsDisplayedGrid='Y' WHERE AD_Field_ID=137
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=180,IsDisplayedGrid='Y' WHERE AD_Field_ID=200274
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=190,IsDisplayedGrid='Y' WHERE AD_Field_ID=139
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=200,IsDisplayedGrid='Y' WHERE AD_Field_ID=138
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=210,IsDisplayedGrid='Y' WHERE AD_Field_ID=8343
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=220,IsDisplayedGrid='Y' WHERE AD_Field_ID=140
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=230,IsDisplayedGrid='Y' WHERE AD_Field_ID=141
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=240,IsDisplayedGrid='Y' WHERE AD_Field_ID=13425
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=250,IsDisplayedGrid='Y' WHERE AD_Field_ID=54401
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=260,IsDisplayedGrid='Y' WHERE AD_Field_ID=54402
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=270,IsDisplayedGrid='Y' WHERE AD_Field_ID=13424
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=280,IsDisplayedGrid='Y' WHERE AD_Field_ID=62468
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=290,IsDisplayedGrid='Y' WHERE AD_Field_ID=200771
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=300,IsDisplayedGrid='Y' WHERE AD_Field_ID=53280
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=310,IsDisplayedGrid='Y' WHERE AD_Field_ID=200275
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=320,IsDisplayedGrid='Y' WHERE AD_Field_ID=200350
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=330,IsDisplayedGrid='Y' WHERE AD_Field_ID=200348
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:22:07 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=340,IsDisplayedGrid='Y' WHERE AD_Field_ID=200349
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:25:30 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=70,Updated=TO_TIMESTAMP('2012-11-16 15:25:30','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=149
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:25:34 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=80,Updated=TO_TIMESTAMP('2012-11-16 15:25:34','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=312
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:25:38 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=20,Updated=TO_TIMESTAMP('2012-11-16 15:25:38','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=122
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:25:43 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=30,Updated=TO_TIMESTAMP('2012-11-16 15:25:43','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=577
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:25:46 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=40,Updated=TO_TIMESTAMP('2012-11-16 15:25:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=123
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:25:51 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=50,Updated=TO_TIMESTAMP('2012-11-16 15:25:51','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=124
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Nov 16, 2012 3:25:55 PM COT
|
||||||
|
-- IDEMPIERE-369 Master Detail layout improvements
|
||||||
|
UPDATE AD_Tab SET SeqNo=60,Updated=TO_TIMESTAMP('2012-11-16 15:25:55','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=644
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201211231024_IDEMPIERE-369_ReorgTabs.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<booleanAttribute key="clearwslog" value="false"/>
|
<booleanAttribute key="clearwslog" value="false"/>
|
||||||
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/model.generator"/>
|
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/model.generator"/>
|
||||||
<booleanAttribute key="default" value="false"/>
|
<booleanAttribute key="default" value="false"/>
|
||||||
<stringAttribute key="deselected_workspace_plugins" value="com.trekglobal.ui.zk.theme,org.adempiere.base.callout,org.adempiere.base.process,org.adempiere.payment.processor,org.adempiere.pipo,org.adempiere.pipo.handlers,org.adempiere.plugin.utils,org.adempiere.replication,org.adempiere.replication.server,org.adempiere.report.jasper.swing,org.adempiere.report.jasper.webapp,org.adempiere.server,org.adempiere.tomcat.config,org.adempiere.ui,org.adempiere.ui.swing,org.adempiere.ui.zk,org.adempiere.ui.zk.example,org.adempiere.webstore,org.adempiere.webstore.resource,org.adempiere.webstore.servlet,org.idempiere.webservices,org.zkoss.zk.library"/>
|
<stringAttribute key="deselected_workspace_plugins" value="org.adempiere.base.callout,org.adempiere.base.process,org.adempiere.payment.processor,org.adempiere.pipo,org.adempiere.pipo.handlers,org.adempiere.replication,org.adempiere.replication.server,org.adempiere.report.jasper.swing,org.adempiere.report.jasper.webapp,org.adempiere.server,org.adempiere.tomcat.config,org.adempiere.ui.zk,org.adempiere.ui.zk.example,org.adempiere.webstore,org.adempiere.webstore.resource,org.adempiere.webstore.servlet,org.idempiere.webservices,org.zkoss.zk.library"/>
|
||||||
<booleanAttribute key="includeOptional" value="true"/>
|
<booleanAttribute key="includeOptional" value="true"/>
|
||||||
<stringAttribute key="location" value="${workspace_loc}/../runtime-model.generator"/>
|
<stringAttribute key="location" value="${workspace_loc}/../runtime-model.generator"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
|
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
|
||||||
|
@ -20,8 +20,8 @@
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc}"/>
|
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc}"/>
|
||||||
<stringAttribute key="pde.version" value="3.3"/>
|
<stringAttribute key="pde.version" value="3.3"/>
|
||||||
<stringAttribute key="product" value="org.adempiere.server.server_product"/>
|
<stringAttribute key="product" value="org.adempiere.server.server_product"/>
|
||||||
<stringAttribute key="selected_target_plugins" value="com.springsource.javax.ejb@default:default,com.springsource.javax.jms@default:default,com.springsource.javax.mail@default:default,com.springsource.javax.management.j2ee@default:default,com.springsource.javax.transaction@default:default,com.springsource.javax.xml.rpc@default:default,com.springsource.javax.xml.soap@default:default,com.springsource.net.sf.cglib@default:default,com.springsource.org.aopalliance@default:default,com.springsource.org.apache.activemq@default:default,com.springsource.org.apache.commons.logging@default:default,com.springsource.org.apache.kahadb@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.ant@default:default,org.apache.commons.codec@default:default,org.apache.commons.collections@default:default,org.apache.commons.logging@default:default,org.apache.commons.net@default:default,org.apache.poi@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.util@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.junit@default:default,org.restlet@default:default,org.springframework.aop@default:default,org.springframework.beans@default:default,org.springframework.context@default:default,org.springframework.core@default:default"/>
|
<stringAttribute key="selected_target_plugins" value="com.springsource.javax.ejb@default:default,com.springsource.javax.jms@default:default,com.springsource.javax.mail*1.4.0@default:default,com.springsource.javax.mail*1.4.5@default:default,com.springsource.javax.management.j2ee@default:default,com.springsource.javax.persistence@default:default,com.springsource.javax.transaction@default:default,com.springsource.javax.xml.rpc@default:default,com.springsource.javax.xml.soap@default:default,com.springsource.net.sf.cglib@default:default,com.springsource.org.aopalliance@default:default,com.springsource.org.apache.activemq@default:default,com.springsource.org.apache.commons.logging@default:default,com.springsource.org.apache.kahadb@default:default,javax.el@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.ant@default:default,org.apache.commons.codec@default:default,org.apache.commons.collections@default:default,org.apache.commons.logging@default:default,org.apache.commons.net@default:default,org.apache.poi@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.util@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.junit@default:default,org.restlet.ext.net@default:default,org.restlet@default:default,org.springframework.aop@default:default,org.springframework.beans@default:default,org.springframework.context@default:default,org.springframework.core@default:default"/>
|
||||||
<stringAttribute key="selected_workspace_plugins" value="org.adempiere.base@default:default,org.adempiere.eclipse.equinox.http.servlet@default:default,org.adempiere.eclipse.equinox.http.servletbridge@default:default,org.adempiere.eclipse.equinox.servletbridge@default:default,org.adempiere.extend@default:false,org.adempiere.install@default:default,org.adempiere.report.jasper.library@default:default,org.adempiere.report.jasper@default:default,org.apache.ecs@default:default,org.compiere.db.oracle.provider@default:default,org.compiere.db.postgresql.provider@default:default"/>
|
<stringAttribute key="selected_workspace_plugins" value="event.test@default:default,org.adempiere.base@default:default,org.adempiere.eclipse.equinox.http.servlet@default:default,org.adempiere.eclipse.equinox.http.servletbridge@default:default,org.adempiere.eclipse.equinox.servletbridge@default:default,org.adempiere.extend@default:false,org.adempiere.install@default:default,org.adempiere.pipo.legacy@default:default,org.adempiere.plugin.utils@default:default,org.adempiere.report.jasper.font.demo@default:false,org.adempiere.report.jasper.library@default:default,org.adempiere.report.jasper@default:default,org.adempiere.ui.swing.pluginlist@default:default,org.adempiere.ui.swing@default:default,org.adempiere.ui@default:default,org.apache.ecs@default:default,org.apache.poi@default:default,org.compiere.db.oracle.provider@default:default,org.compiere.db.postgresql.provider@default:default"/>
|
||||||
<booleanAttribute key="show_selected_only" value="false"/>
|
<booleanAttribute key="show_selected_only" value="false"/>
|
||||||
<stringAttribute key="templateConfig" value="${target_home}/configuration/config.ini"/>
|
<stringAttribute key="templateConfig" value="${target_home}/configuration/config.ini"/>
|
||||||
<booleanAttribute key="tracing" value="false"/>
|
<booleanAttribute key="tracing" value="false"/>
|
||||||
|
|
|
@ -147,12 +147,12 @@ public class CalloutInventory extends CalloutEngine
|
||||||
private BigDecimal setQtyBook (int M_AttributeSetInstance_ID, int M_Product_ID, int M_Locator_ID) throws Exception {
|
private BigDecimal setQtyBook (int M_AttributeSetInstance_ID, int M_Product_ID, int M_Locator_ID) throws Exception {
|
||||||
// Set QtyBook from first storage location
|
// Set QtyBook from first storage location
|
||||||
BigDecimal bd = null;
|
BigDecimal bd = null;
|
||||||
String sql = "SELECT QtyOnHand FROM M_Storage "
|
String sql = "SELECT QtyOnHand FROM M_StorageOnHand "
|
||||||
+ "WHERE M_Product_ID=?" // 1
|
+ "WHERE M_Product_ID=?" // 1
|
||||||
+ " AND M_Locator_ID=?" // 2
|
+ " AND M_Locator_ID=?" // 2
|
||||||
+ " AND M_AttributeSetInstance_ID=?";
|
+ " AND M_AttributeSetInstance_ID=?";
|
||||||
if (M_AttributeSetInstance_ID == 0)
|
if (M_AttributeSetInstance_ID == 0)
|
||||||
sql = "SELECT SUM(QtyOnHand) FROM M_Storage "
|
sql = "SELECT SUM(QtyOnHand) FROM M_StorageOnHand "
|
||||||
+ "WHERE M_Product_ID=?" // 1
|
+ "WHERE M_Product_ID=?" // 1
|
||||||
+ " AND M_Locator_ID=?"; // 2
|
+ " AND M_Locator_ID=?"; // 2
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ package org.compiere.model;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
|
||||||
|
import org.compiere.util.DB;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -121,7 +122,10 @@ public class CalloutMovement extends CalloutEngine
|
||||||
if (M_Locator_ID <= 0)
|
if (M_Locator_ID <= 0)
|
||||||
return;
|
return;
|
||||||
int M_AttributeSetInstance_ID = Env.getContextAsInt(ctx, WindowNo, "M_AttributeSetInstance_ID");
|
int M_AttributeSetInstance_ID = Env.getContextAsInt(ctx, WindowNo, "M_AttributeSetInstance_ID");
|
||||||
BigDecimal available = MStorage.getQtyAvailable(0, M_Locator_ID, M_Product_ID, M_AttributeSetInstance_ID, null);
|
BigDecimal available = Env.ZERO;
|
||||||
|
MStorageOnHand oh = MStorageOnHand.get(ctx, M_Locator_ID, M_Product_ID, M_AttributeSetInstance_ID, null);
|
||||||
|
if (oh != null)
|
||||||
|
available = oh.getQtyOnHand();
|
||||||
if (available == null)
|
if (available == null)
|
||||||
available = Env.ZERO;
|
available = Env.ZERO;
|
||||||
if (available.signum() == 0)
|
if (available.signum() == 0)
|
||||||
|
|
|
@ -821,8 +821,8 @@ public class CalloutOrder extends CalloutEngine
|
||||||
BigDecimal QtyOrdered = (BigDecimal)mTab.getValue("QtyOrdered");
|
BigDecimal QtyOrdered = (BigDecimal)mTab.getValue("QtyOrdered");
|
||||||
int M_Warehouse_ID = Env.getContextAsInt(ctx, WindowNo, "M_Warehouse_ID");
|
int M_Warehouse_ID = Env.getContextAsInt(ctx, WindowNo, "M_Warehouse_ID");
|
||||||
int M_AttributeSetInstance_ID = Env.getContextAsInt(ctx, WindowNo, "M_AttributeSetInstance_ID");
|
int M_AttributeSetInstance_ID = Env.getContextAsInt(ctx, WindowNo, "M_AttributeSetInstance_ID");
|
||||||
BigDecimal available = MStorage.getQtyAvailable
|
BigDecimal available = MStorageReservation.getQtyAvailable
|
||||||
(M_Warehouse_ID, 0, M_Product_ID.intValue(), M_AttributeSetInstance_ID, null);
|
(M_Warehouse_ID, M_Product_ID.intValue(), M_AttributeSetInstance_ID, null);
|
||||||
if (available == null)
|
if (available == null)
|
||||||
available = Env.ZERO;
|
available = Env.ZERO;
|
||||||
if (available.signum() == 0)
|
if (available.signum() == 0)
|
||||||
|
@ -1296,8 +1296,8 @@ public class CalloutOrder extends CalloutEngine
|
||||||
{
|
{
|
||||||
int M_Warehouse_ID = Env.getContextAsInt(ctx, WindowNo, "M_Warehouse_ID");
|
int M_Warehouse_ID = Env.getContextAsInt(ctx, WindowNo, "M_Warehouse_ID");
|
||||||
int M_AttributeSetInstance_ID = Env.getContextAsInt(ctx, WindowNo, "M_AttributeSetInstance_ID");
|
int M_AttributeSetInstance_ID = Env.getContextAsInt(ctx, WindowNo, "M_AttributeSetInstance_ID");
|
||||||
BigDecimal available = MStorage.getQtyAvailable
|
BigDecimal available = MStorageReservation.getQtyAvailable
|
||||||
(M_Warehouse_ID, 0, M_Product_ID, M_AttributeSetInstance_ID, null);
|
(M_Warehouse_ID, M_Product_ID, M_AttributeSetInstance_ID, null);
|
||||||
if (available == null)
|
if (available == null)
|
||||||
available = Env.ZERO;
|
available = Env.ZERO;
|
||||||
if (available.signum() == 0)
|
if (available.signum() == 0)
|
||||||
|
|
|
@ -27,12 +27,6 @@ import org.compiere.util.Env;
|
||||||
*/
|
*/
|
||||||
public class CalloutWindowCustomization extends CalloutEngine
|
public class CalloutWindowCustomization extends CalloutEngine
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set fields to current values from DB for selected window.
|
* Set fields to current values from DB for selected window.
|
||||||
* @param ctx context
|
* @param ctx context
|
||||||
|
@ -57,15 +51,15 @@ public class CalloutWindowCustomization extends CalloutEngine
|
||||||
ud_win.setDescription(window.get_Translation("Description", lang));
|
ud_win.setDescription(window.get_Translation("Description", lang));
|
||||||
ud_win.setHelp(window.get_Translation("Help", lang));
|
ud_win.setHelp(window.get_Translation("Help", lang));
|
||||||
|
|
||||||
// XXX what for?
|
// what for?
|
||||||
ud_win.setIsDefault(window.isDefault());
|
ud_win.setIsDefault(window.isDefault());
|
||||||
|
|
||||||
// default from menu, actual from role
|
// default from menu, actual from role
|
||||||
// XXX Read Only
|
// Read Only
|
||||||
// XXX User updateable
|
// User updateable
|
||||||
|
|
||||||
return NO_ERROR;
|
return NO_ERROR;
|
||||||
} // storeAttachmentOnFilesystem
|
} // window
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set fields to current values from DB for selected Tab
|
* Set fields to current values from DB for selected Tab
|
||||||
|
@ -93,9 +87,9 @@ public class CalloutWindowCustomization extends CalloutEngine
|
||||||
|
|
||||||
ud_tab.setIsSingleRow(tab.isSingleRow());
|
ud_tab.setIsSingleRow(tab.isSingleRow());
|
||||||
ud_tab.setIsReadOnly(tab.isReadOnly());
|
ud_tab.setIsReadOnly(tab.isReadOnly());
|
||||||
|
|
||||||
return NO_ERROR;
|
return NO_ERROR;
|
||||||
} // storeArchiveOnFileSystem
|
} // tab
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set fields to current values from DB for selected Tab
|
* Set fields to current values from DB for selected Tab
|
||||||
|
@ -113,25 +107,16 @@ public class CalloutWindowCustomization extends CalloutEngine
|
||||||
return "";
|
return "";
|
||||||
|
|
||||||
I_AD_UserDef_Field ud_field = GridTabWrapper.create(mTab, I_AD_UserDef_Field.class);
|
I_AD_UserDef_Field ud_field = GridTabWrapper.create(mTab, I_AD_UserDef_Field.class);
|
||||||
|
|
||||||
MField field = new MField(Env.getCtx(),p_AD_Field_ID, null);
|
MField field = new MField(ctx, p_AD_Field_ID, null);
|
||||||
String lang = Env.getContext(ctx, WindowNo, "AD_Language");
|
String lang = Env.getContext(ctx, WindowNo, "AD_Language");
|
||||||
|
|
||||||
ud_field.setName(field.get_Translation("Name", lang));
|
ud_field.setName(field.get_Translation("Name", lang));
|
||||||
ud_field.setDescription(field.get_Translation("Description", lang));
|
ud_field.setDescription(field.get_Translation("Description", lang));
|
||||||
ud_field.setHelp(field.get_Translation("Help", lang));
|
ud_field.setHelp(field.get_Translation("Help", lang));
|
||||||
|
//IDEMPIERE-163 / do not inherit configuration from field - all configuration was made nullable, if null it inherit the field/column config
|
||||||
ud_field.setIsDisplayed(field.isDisplayed());
|
|
||||||
ud_field.setDisplayLength(field.getDisplayLength());
|
|
||||||
ud_field.setDisplayLogic(field.getDisplayLogic());
|
|
||||||
ud_field.setIsReadOnly(field.isReadOnly());
|
|
||||||
// XXX from column? set to true for starters
|
|
||||||
ud_field.setIsUpdateable(true);
|
|
||||||
ud_field.setSeqNo(field.getSeqNo());
|
|
||||||
ud_field.setIsSameLine(field.isSameLine());
|
|
||||||
ud_field.setSortNo(field.getSortNo().intValue());
|
|
||||||
|
|
||||||
return NO_ERROR;
|
return NO_ERROR;
|
||||||
} // storeArchiveOnFileSystem
|
} // field
|
||||||
|
|
||||||
} // CalloutClient
|
} // CalloutClient
|
||||||
|
|
|
@ -30,7 +30,7 @@ import org.compiere.model.MInOutLine;
|
||||||
import org.compiere.model.MOrder;
|
import org.compiere.model.MOrder;
|
||||||
import org.compiere.model.MOrderLine;
|
import org.compiere.model.MOrderLine;
|
||||||
import org.compiere.model.MProduct;
|
import org.compiere.model.MProduct;
|
||||||
import org.compiere.model.MStorage;
|
import org.compiere.model.MStorageOnHand;
|
||||||
import org.compiere.util.AdempiereUserError;
|
import org.compiere.util.AdempiereUserError;
|
||||||
import org.compiere.util.DB;
|
import org.compiere.util.DB;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
|
@ -78,11 +78,11 @@ public class InOutGenerate extends SvrProcess
|
||||||
|
|
||||||
|
|
||||||
/** Storages temp space */
|
/** Storages temp space */
|
||||||
private HashMap<SParameter,MStorage[]> m_map = new HashMap<SParameter,MStorage[]>();
|
private HashMap<SParameter,MStorageOnHand[]> m_map = new HashMap<SParameter,MStorageOnHand[]>();
|
||||||
/** Last Parameter */
|
/** Last Parameter */
|
||||||
private SParameter m_lastPP = null;
|
private SParameter m_lastPP = null;
|
||||||
/** Last Storage */
|
/** Last Storage */
|
||||||
private MStorage[] m_lastStorages = null;
|
private MStorageOnHand[] m_lastStorages = null;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -299,13 +299,13 @@ public class InOutGenerate extends SvrProcess
|
||||||
// Stored Product
|
// Stored Product
|
||||||
String MMPolicy = product.getMMPolicy();
|
String MMPolicy = product.getMMPolicy();
|
||||||
|
|
||||||
MStorage[] storages = getStorages(line.getM_Warehouse_ID(),
|
MStorageOnHand[] storages = getStorages(line.getM_Warehouse_ID(),
|
||||||
line.getM_Product_ID(), line.getM_AttributeSetInstance_ID(),
|
line.getM_Product_ID(), line.getM_AttributeSetInstance_ID(),
|
||||||
minGuaranteeDate, MClient.MMPOLICY_FiFo.equals(MMPolicy));
|
minGuaranteeDate, MClient.MMPOLICY_FiFo.equals(MMPolicy));
|
||||||
|
|
||||||
for (int j = 0; j < storages.length; j++)
|
for (int j = 0; j < storages.length; j++)
|
||||||
{
|
{
|
||||||
MStorage storage = storages[j];
|
MStorageOnHand storage = storages[j];
|
||||||
onHand = onHand.add(storage.getQtyOnHand());
|
onHand = onHand.add(storage.getQtyOnHand());
|
||||||
}
|
}
|
||||||
boolean fullLine = onHand.compareTo(toDeliver) >= 0
|
boolean fullLine = onHand.compareTo(toDeliver) >= 0
|
||||||
|
@ -377,7 +377,7 @@ public class InOutGenerate extends SvrProcess
|
||||||
MProduct product = line.getProduct();
|
MProduct product = line.getProduct();
|
||||||
BigDecimal toDeliver = line.getQtyOrdered().subtract(line.getQtyDelivered());
|
BigDecimal toDeliver = line.getQtyOrdered().subtract(line.getQtyDelivered());
|
||||||
//
|
//
|
||||||
MStorage[] storages = null;
|
MStorageOnHand[] storages = null;
|
||||||
if (product != null && product.isStocked())
|
if (product != null && product.isStocked())
|
||||||
{
|
{
|
||||||
String MMPolicy = product.getMMPolicy();
|
String MMPolicy = product.getMMPolicy();
|
||||||
|
@ -425,7 +425,7 @@ public class InOutGenerate extends SvrProcess
|
||||||
* @param force force delivery
|
* @param force force delivery
|
||||||
*/
|
*/
|
||||||
private void createLine (MOrder order, MOrderLine orderLine, BigDecimal qty,
|
private void createLine (MOrder order, MOrderLine orderLine, BigDecimal qty,
|
||||||
MStorage[] storages, boolean force)
|
MStorageOnHand[] storages, boolean force)
|
||||||
{
|
{
|
||||||
// Complete last Shipment - can have multiple shipments
|
// Complete last Shipment - can have multiple shipments
|
||||||
if (m_lastC_BPartner_Location_ID != orderLine.getC_BPartner_Location_ID() )
|
if (m_lastC_BPartner_Location_ID != orderLine.getC_BPartner_Location_ID() )
|
||||||
|
@ -466,7 +466,7 @@ public class InOutGenerate extends SvrProcess
|
||||||
BigDecimal toDeliver = qty;
|
BigDecimal toDeliver = qty;
|
||||||
for (int i = 0; i < storages.length; i++)
|
for (int i = 0; i < storages.length; i++)
|
||||||
{
|
{
|
||||||
MStorage storage = storages[i];
|
MStorageOnHand storage = storages[i];
|
||||||
BigDecimal deliver = toDeliver;
|
BigDecimal deliver = toDeliver;
|
||||||
//skip negative storage record
|
//skip negative storage record
|
||||||
if (storage.getQtyOnHand().signum() < 0)
|
if (storage.getQtyOnHand().signum() < 0)
|
||||||
|
@ -550,7 +550,7 @@ public class InOutGenerate extends SvrProcess
|
||||||
* @param FiFo
|
* @param FiFo
|
||||||
* @return storages
|
* @return storages
|
||||||
*/
|
*/
|
||||||
private MStorage[] getStorages(int M_Warehouse_ID,
|
private MStorageOnHand[] getStorages(int M_Warehouse_ID,
|
||||||
int M_Product_ID, int M_AttributeSetInstance_ID,
|
int M_Product_ID, int M_AttributeSetInstance_ID,
|
||||||
Timestamp minGuaranteeDate, boolean FiFo)
|
Timestamp minGuaranteeDate, boolean FiFo)
|
||||||
{
|
{
|
||||||
|
@ -562,7 +562,7 @@ public class InOutGenerate extends SvrProcess
|
||||||
|
|
||||||
if (m_lastStorages == null)
|
if (m_lastStorages == null)
|
||||||
{
|
{
|
||||||
m_lastStorages = MStorage.getWarehouse(getCtx(),
|
m_lastStorages = MStorageOnHand.getWarehouse(getCtx(),
|
||||||
M_Warehouse_ID, M_Product_ID, M_AttributeSetInstance_ID,
|
M_Warehouse_ID, M_Product_ID, M_AttributeSetInstance_ID,
|
||||||
minGuaranteeDate, FiFo,false, 0, get_TrxName());
|
minGuaranteeDate, FiFo,false, 0, get_TrxName());
|
||||||
m_map.put(m_lastPP, m_lastStorages);
|
m_map.put(m_lastPP, m_lastStorages);
|
||||||
|
@ -590,7 +590,7 @@ public class InOutGenerate extends SvrProcess
|
||||||
m_created++;
|
m_created++;
|
||||||
|
|
||||||
//reset storage cache as MInOut.completeIt will update m_storage
|
//reset storage cache as MInOut.completeIt will update m_storage
|
||||||
m_map = new HashMap<SParameter,MStorage[]>();
|
m_map = new HashMap<SParameter,MStorageOnHand[]>();
|
||||||
m_lastPP = null;
|
m_lastPP = null;
|
||||||
m_lastStorages = null;
|
m_lastStorages = null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -135,13 +135,13 @@ public class InventoryCountCreate extends SvrProcess
|
||||||
// Create Null Storage records
|
// Create Null Storage records
|
||||||
if (p_QtyRange != null && p_QtyRange.equals("="))
|
if (p_QtyRange != null && p_QtyRange.equals("="))
|
||||||
{
|
{
|
||||||
StringBuilder sql = new StringBuilder("INSERT INTO M_Storage ");
|
StringBuilder sql = new StringBuilder("INSERT INTO M_StorageOnHand ");
|
||||||
sql.append("(AD_Client_ID, AD_Org_ID, IsActive, Created, CreatedBy, Updated, UpdatedBy,");
|
sql.append("(AD_Client_ID, AD_Org_ID, IsActive, Created, CreatedBy, Updated, UpdatedBy,");
|
||||||
sql.append(" M_Locator_ID, M_Product_ID, M_AttributeSetInstance_ID,");
|
sql.append(" M_Locator_ID, M_Product_ID, M_AttributeSetInstance_ID,");
|
||||||
sql.append(" QtyOnHand, QtyReserved, QtyOrdered, DateLastInventory) ");
|
sql.append(" QtyOnHand, DateLastInventory) ");
|
||||||
sql.append("SELECT l.AD_CLIENT_ID, l.AD_ORG_ID, 'Y', SysDate, 0,SysDate, 0,");
|
sql.append("SELECT l.AD_CLIENT_ID, l.AD_ORG_ID, 'Y', SysDate, 0,SysDate, 0,");
|
||||||
sql.append(" l.M_Locator_ID, p.M_Product_ID, 0,");
|
sql.append(" l.M_Locator_ID, p.M_Product_ID, 0,");
|
||||||
sql.append(" 0,0,0,null ");
|
sql.append(" 0,null ");
|
||||||
sql.append("FROM M_Locator l");
|
sql.append("FROM M_Locator l");
|
||||||
sql.append(" INNER JOIN M_Product p ON (l.AD_Client_ID=p.AD_Client_ID) ");
|
sql.append(" INNER JOIN M_Product p ON (l.AD_Client_ID=p.AD_Client_ID) ");
|
||||||
sql.append("WHERE l.M_Warehouse_ID=");
|
sql.append("WHERE l.M_Warehouse_ID=");
|
||||||
|
@ -151,7 +151,7 @@ public class InventoryCountCreate extends SvrProcess
|
||||||
sql.append(" AND l.M_Locator_ID=").append(p_M_Locator_ID);
|
sql.append(" AND l.M_Locator_ID=").append(p_M_Locator_ID);
|
||||||
sql.append(" AND l.IsDefault='Y'")
|
sql.append(" AND l.IsDefault='Y'")
|
||||||
.append(" AND p.IsActive='Y' AND p.IsStocked='Y' and p.ProductType='I'")
|
.append(" AND p.IsActive='Y' AND p.IsStocked='Y' and p.ProductType='I'")
|
||||||
.append(" AND NOT EXISTS (SELECT * FROM M_Storage s")
|
.append(" AND NOT EXISTS (SELECT * FROM M_StorageOnHand s")
|
||||||
.append(" INNER JOIN M_Locator sl ON (s.M_Locator_ID=sl.M_Locator_ID) ")
|
.append(" INNER JOIN M_Locator sl ON (s.M_Locator_ID=sl.M_Locator_ID) ")
|
||||||
.append("WHERE sl.M_Warehouse_ID=l.M_Warehouse_ID")
|
.append("WHERE sl.M_Warehouse_ID=l.M_Warehouse_ID")
|
||||||
.append(" AND s.M_Product_ID=p.M_Product_ID)");
|
.append(" AND s.M_Product_ID=p.M_Product_ID)");
|
||||||
|
@ -162,7 +162,7 @@ public class InventoryCountCreate extends SvrProcess
|
||||||
StringBuilder sql = new StringBuilder("SELECT s.M_Product_ID, s.M_Locator_ID, s.M_AttributeSetInstance_ID,");
|
StringBuilder sql = new StringBuilder("SELECT s.M_Product_ID, s.M_Locator_ID, s.M_AttributeSetInstance_ID,");
|
||||||
sql.append(" s.QtyOnHand, p.M_AttributeSet_ID ");
|
sql.append(" s.QtyOnHand, p.M_AttributeSet_ID ");
|
||||||
sql.append("FROM M_Product p");
|
sql.append("FROM M_Product p");
|
||||||
sql.append(" INNER JOIN M_Storage s ON (s.M_Product_ID=p.M_Product_ID)");
|
sql.append(" INNER JOIN M_StorageOnHand s ON (s.M_Product_ID=p.M_Product_ID)");
|
||||||
sql.append(" INNER JOIN M_Locator l ON (s.M_Locator_ID=l.M_Locator_ID) ");
|
sql.append(" INNER JOIN M_Locator l ON (s.M_Locator_ID=l.M_Locator_ID) ");
|
||||||
sql.append("WHERE l.M_Warehouse_ID=?");
|
sql.append("WHERE l.M_Warehouse_ID=?");
|
||||||
sql.append(" AND p.IsActive='Y' AND p.IsStocked='Y' and p.ProductType='I'");
|
sql.append(" AND p.IsActive='Y' AND p.IsStocked='Y' and p.ProductType='I'");
|
||||||
|
|
|
@ -24,7 +24,7 @@ import java.util.logging.Level;
|
||||||
import org.compiere.model.MInventory;
|
import org.compiere.model.MInventory;
|
||||||
import org.compiere.model.MInventoryLine;
|
import org.compiere.model.MInventoryLine;
|
||||||
import org.compiere.model.MInventoryLineMA;
|
import org.compiere.model.MInventoryLineMA;
|
||||||
import org.compiere.model.MStorage;
|
import org.compiere.model.MStorageOnHand;
|
||||||
import org.compiere.util.AdempiereSystemError;
|
import org.compiere.util.AdempiereSystemError;
|
||||||
import org.compiere.util.DB;
|
import org.compiere.util.DB;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
|
@ -92,14 +92,14 @@ public class InventoryCountUpdate extends SvrProcess
|
||||||
// ASI
|
// ASI
|
||||||
sql = new StringBuilder("UPDATE M_InventoryLine l ")
|
sql = new StringBuilder("UPDATE M_InventoryLine l ")
|
||||||
.append("SET (QtyBook,QtyCount) = ")
|
.append("SET (QtyBook,QtyCount) = ")
|
||||||
.append("(SELECT QtyOnHand,QtyOnHand FROM M_Storage s ")
|
.append("(SELECT QtyOnHand,QtyOnHand FROM M_StorageOnHand s ")
|
||||||
.append("WHERE s.M_Product_ID=l.M_Product_ID AND s.M_Locator_ID=l.M_Locator_ID")
|
.append("WHERE s.M_Product_ID=l.M_Product_ID AND s.M_Locator_ID=l.M_Locator_ID")
|
||||||
.append(" AND s.M_AttributeSetInstance_ID=l.M_AttributeSetInstance_ID),")
|
.append(" AND s.M_AttributeSetInstance_ID=l.M_AttributeSetInstance_ID),")
|
||||||
.append(" Updated=SysDate,")
|
.append(" Updated=SysDate,")
|
||||||
.append(" UpdatedBy=").append(getAD_User_ID())
|
.append(" UpdatedBy=").append(getAD_User_ID())
|
||||||
//
|
//
|
||||||
.append(" WHERE M_Inventory_ID=").append(p_M_Inventory_ID)
|
.append(" WHERE M_Inventory_ID=").append(p_M_Inventory_ID)
|
||||||
.append(" AND EXISTS (SELECT * FROM M_Storage s ")
|
.append(" AND EXISTS (SELECT * FROM M_StorageOnHand s ")
|
||||||
.append("WHERE s.M_Product_ID=l.M_Product_ID AND s.M_Locator_ID=l.M_Locator_ID")
|
.append("WHERE s.M_Product_ID=l.M_Product_ID AND s.M_Locator_ID=l.M_Locator_ID")
|
||||||
.append(" AND s.M_AttributeSetInstance_ID=l.M_AttributeSetInstance_ID)");
|
.append(" AND s.M_AttributeSetInstance_ID=l.M_AttributeSetInstance_ID)");
|
||||||
int no = DB.executeUpdate(sql.toString(), get_TrxName());
|
int no = DB.executeUpdate(sql.toString(), get_TrxName());
|
||||||
|
@ -145,11 +145,11 @@ public class InventoryCountUpdate extends SvrProcess
|
||||||
{
|
{
|
||||||
MInventoryLine il = new MInventoryLine (getCtx(), rs, get_TrxName());
|
MInventoryLine il = new MInventoryLine (getCtx(), rs, get_TrxName());
|
||||||
BigDecimal onHand = Env.ZERO;
|
BigDecimal onHand = Env.ZERO;
|
||||||
MStorage[] storages = MStorage.getAll(getCtx(), il.getM_Product_ID(), il.getM_Locator_ID(), get_TrxName());
|
MStorageOnHand[] storages = MStorageOnHand.getAll(getCtx(), il.getM_Product_ID(), il.getM_Locator_ID(), get_TrxName());
|
||||||
MInventoryLineMA ma = null;
|
MInventoryLineMA ma = null;
|
||||||
for (int i = 0; i < storages.length; i++)
|
for (int i = 0; i < storages.length; i++)
|
||||||
{
|
{
|
||||||
MStorage storage = storages[i];
|
MStorageOnHand storage = storages[i];
|
||||||
if (storage.getQtyOnHand().signum() == 0)
|
if (storage.getQtyOnHand().signum() == 0)
|
||||||
continue;
|
continue;
|
||||||
onHand = onHand.add(storage.getQtyOnHand());
|
onHand = onHand.add(storage.getQtyOnHand());
|
||||||
|
|
|
@ -175,7 +175,7 @@ public class InventoryValue extends SvrProcess
|
||||||
|
|
||||||
// Get current QtyOnHand with ASI
|
// Get current QtyOnHand with ASI
|
||||||
sql = new StringBuilder ("UPDATE T_InventoryValue iv SET QtyOnHand = ")
|
sql = new StringBuilder ("UPDATE T_InventoryValue iv SET QtyOnHand = ")
|
||||||
.append("(SELECT SUM(QtyOnHand) FROM M_Storage s")
|
.append("(SELECT SUM(QtyOnHand) FROM M_StorageOnHand s")
|
||||||
.append(" INNER JOIN M_Locator l ON (l.M_Locator_ID=s.M_Locator_ID) ")
|
.append(" INNER JOIN M_Locator l ON (l.M_Locator_ID=s.M_Locator_ID) ")
|
||||||
.append("WHERE iv.M_Product_ID=s.M_Product_ID")
|
.append("WHERE iv.M_Product_ID=s.M_Product_ID")
|
||||||
.append(" AND iv.M_Warehouse_ID=l.M_Warehouse_ID")
|
.append(" AND iv.M_Warehouse_ID=l.M_Warehouse_ID")
|
||||||
|
@ -186,7 +186,7 @@ public class InventoryValue extends SvrProcess
|
||||||
log.fine("QtHand with ASI=" + no);
|
log.fine("QtHand with ASI=" + no);
|
||||||
// Get current QtyOnHand without ASI
|
// Get current QtyOnHand without ASI
|
||||||
sql = new StringBuilder ("UPDATE T_InventoryValue iv SET QtyOnHand = ")
|
sql = new StringBuilder ("UPDATE T_InventoryValue iv SET QtyOnHand = ")
|
||||||
.append("(SELECT SUM(QtyOnHand) FROM M_Storage s")
|
.append("(SELECT SUM(QtyOnHand) FROM M_StorageOnHand s")
|
||||||
.append(" INNER JOIN M_Locator l ON (l.M_Locator_ID=s.M_Locator_ID) ")
|
.append(" INNER JOIN M_Locator l ON (l.M_Locator_ID=s.M_Locator_ID) ")
|
||||||
.append("WHERE iv.M_Product_ID=s.M_Product_ID")
|
.append("WHERE iv.M_Product_ID=s.M_Product_ID")
|
||||||
.append(" AND iv.M_Warehouse_ID=l.M_Warehouse_ID) ")
|
.append(" AND iv.M_Warehouse_ID=l.M_Warehouse_ID) ")
|
||||||
|
|
|
@ -24,7 +24,8 @@ import java.util.logging.Level;
|
||||||
import org.compiere.model.MClient;
|
import org.compiere.model.MClient;
|
||||||
import org.compiere.model.MLocator;
|
import org.compiere.model.MLocator;
|
||||||
import org.compiere.model.MProduct;
|
import org.compiere.model.MProduct;
|
||||||
import org.compiere.model.MStorage;
|
import org.compiere.model.MStorageOnHand;
|
||||||
|
import org.compiere.model.MStorageReservation;
|
||||||
import org.compiere.model.MTransaction;
|
import org.compiere.model.MTransaction;
|
||||||
import org.compiere.model.Query;
|
import org.compiere.model.Query;
|
||||||
import org.compiere.model.X_M_Production;
|
import org.compiere.model.X_M_Production;
|
||||||
|
@ -140,9 +141,8 @@ public class M_Production_Run extends SvrProcess {
|
||||||
continue ;
|
continue ;
|
||||||
else if(MovementQty.signum() < 0)
|
else if(MovementQty.signum() < 0)
|
||||||
{
|
{
|
||||||
BigDecimal QtyAvailable = MStorage.getQtyAvailable(
|
BigDecimal QtyAvailable = MStorageReservation.getQtyAvailable(
|
||||||
locator.getM_Warehouse_ID(),
|
locator.getM_Warehouse_ID(),
|
||||||
locator.getM_Locator_ID(),
|
|
||||||
pline.getM_Product_ID(),
|
pline.getM_Product_ID(),
|
||||||
pline.getM_AttributeSetInstance_ID(),
|
pline.getM_AttributeSetInstance_ID(),
|
||||||
get_TrxName());
|
get_TrxName());
|
||||||
|
@ -155,13 +155,11 @@ public class M_Production_Run extends SvrProcess {
|
||||||
MovementType = MTransaction.MOVEMENTTYPE_Production_;
|
MovementType = MTransaction.MOVEMENTTYPE_Production_;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!MStorage.add(getCtx(), locator.getM_Warehouse_ID(),
|
if (!MStorageOnHand.add(getCtx(), locator.getM_Warehouse_ID(),
|
||||||
locator.getM_Locator_ID(),
|
locator.getM_Locator_ID(),
|
||||||
pline.getM_Product_ID(),
|
pline.getM_Product_ID(),
|
||||||
pline.getM_AttributeSetInstance_ID(), 0 ,
|
pline.getM_AttributeSetInstance_ID(), 0 ,
|
||||||
MovementQty,
|
MovementQty,
|
||||||
Env.ZERO,
|
|
||||||
Env.ZERO,
|
|
||||||
get_TrxName()))
|
get_TrxName()))
|
||||||
{
|
{
|
||||||
raiseError("Cannot correct Inventory", "");
|
raiseError("Cannot correct Inventory", "");
|
||||||
|
|
|
@ -140,7 +140,7 @@ public class OrgOwnership extends SvrProcess
|
||||||
|
|
||||||
// Set Storage
|
// Set Storage
|
||||||
sql = new StringBuilder();
|
sql = new StringBuilder();
|
||||||
sql.append("UPDATE M_Storage s ")
|
sql.append("UPDATE M_StorageOnHand s ")
|
||||||
.append("SET AD_Org_ID=").append(p_AD_Org_ID)
|
.append("SET AD_Org_ID=").append(p_AD_Org_ID)
|
||||||
.append(" WHERE EXISTS ")
|
.append(" WHERE EXISTS ")
|
||||||
.append("(SELECT * FROM M_Locator l WHERE l.M_Locator_ID=s.M_Locator_ID")
|
.append("(SELECT * FROM M_Locator l WHERE l.M_Locator_ID=s.M_Locator_ID")
|
||||||
|
@ -150,6 +150,16 @@ public class OrgOwnership extends SvrProcess
|
||||||
no = DB.executeUpdate(sql.toString(), get_TrxName());
|
no = DB.executeUpdate(sql.toString(), get_TrxName());
|
||||||
addLog (0,null, new BigDecimal(no), Msg.translate(getCtx(), "Storage"));
|
addLog (0,null, new BigDecimal(no), Msg.translate(getCtx(), "Storage"));
|
||||||
|
|
||||||
|
// Set Storage Reservation
|
||||||
|
sql = new StringBuilder();
|
||||||
|
sql.append("UPDATE M_StorageReservation s ")
|
||||||
|
.append("SET AD_Org_ID=").append(p_AD_Org_ID)
|
||||||
|
.append(" WHERE M_Warehouse_ID=").append(p_M_Warehouse_ID)
|
||||||
|
.append(" AND AD_Client_ID=").append(getAD_Client_ID())
|
||||||
|
.append(" AND AD_Org_ID<>").append(p_AD_Org_ID);
|
||||||
|
no = DB.executeUpdate(sql.toString(), get_TrxName());
|
||||||
|
addLog (0,null, new BigDecimal(no), Msg.translate(getCtx(), "StorageReservation"));
|
||||||
|
|
||||||
return "";
|
return "";
|
||||||
} // warehouseOwnership
|
} // warehouseOwnership
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ import org.compiere.model.MInOutLine;
|
||||||
import org.compiere.model.MProject;
|
import org.compiere.model.MProject;
|
||||||
import org.compiere.model.MProjectIssue;
|
import org.compiere.model.MProjectIssue;
|
||||||
import org.compiere.model.MProjectLine;
|
import org.compiere.model.MProjectLine;
|
||||||
import org.compiere.model.MStorage;
|
import org.compiere.model.MStorageOnHand;
|
||||||
import org.compiere.model.MTimeExpense;
|
import org.compiere.model.MTimeExpense;
|
||||||
import org.compiere.model.MTimeExpenseLine;
|
import org.compiere.model.MTimeExpenseLine;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
|
@ -234,7 +234,7 @@ public class ProjectIssue extends SvrProcess
|
||||||
int M_Locator_ID = 0;
|
int M_Locator_ID = 0;
|
||||||
// MProduct product = new MProduct (getCtx(), expenseLines[i].getM_Product_ID());
|
// MProduct product = new MProduct (getCtx(), expenseLines[i].getM_Product_ID());
|
||||||
// if (product.isStocked())
|
// if (product.isStocked())
|
||||||
M_Locator_ID = MStorage.getM_Locator_ID(expense.getM_Warehouse_ID(),
|
M_Locator_ID = MStorageOnHand.getM_Locator_ID(expense.getM_Warehouse_ID(),
|
||||||
expenseLines[i].getM_Product_ID(), 0, // no ASI
|
expenseLines[i].getM_Product_ID(), 0, // no ASI
|
||||||
expenseLines[i].getQty(), null);
|
expenseLines[i].getQty(), null);
|
||||||
if (M_Locator_ID == 0) // Service/Expense - get default (and fallback)
|
if (M_Locator_ID == 0) // Service/Expense - get default (and fallback)
|
||||||
|
|
|
@ -35,7 +35,7 @@ import org.compiere.model.MOrg;
|
||||||
import org.compiere.model.MProduct;
|
import org.compiere.model.MProduct;
|
||||||
import org.compiere.model.MRequisition;
|
import org.compiere.model.MRequisition;
|
||||||
import org.compiere.model.MRequisitionLine;
|
import org.compiere.model.MRequisitionLine;
|
||||||
import org.compiere.model.MStorage;
|
import org.compiere.model.MStorageOnHand;
|
||||||
import org.compiere.model.MWarehouse;
|
import org.compiere.model.MWarehouse;
|
||||||
import org.compiere.model.X_T_Replenish;
|
import org.compiere.model.X_T_Replenish;
|
||||||
import org.compiere.util.AdempiereSystemError;
|
import org.compiere.util.AdempiereSystemError;
|
||||||
|
@ -249,12 +249,12 @@ public class ReplenishReport extends SvrProcess
|
||||||
log.fine("Insert (BP) #" + no);
|
log.fine("Insert (BP) #" + no);
|
||||||
}
|
}
|
||||||
sql = new StringBuilder("UPDATE T_Replenish t SET ");
|
sql = new StringBuilder("UPDATE T_Replenish t SET ");
|
||||||
sql.append("QtyOnHand = (SELECT COALESCE(SUM(QtyOnHand),0) FROM M_Storage s, M_Locator l WHERE t.M_Product_ID=s.M_Product_ID");
|
sql.append("QtyOnHand = (SELECT COALESCE(SUM(QtyOnHand),0) FROM M_StorageOnHand s, M_Locator l WHERE t.M_Product_ID=s.M_Product_ID");
|
||||||
sql.append(" AND l.M_Locator_ID=s.M_Locator_ID AND l.M_Warehouse_ID=t.M_Warehouse_ID),");
|
sql.append(" AND l.M_Locator_ID=s.M_Locator_ID AND l.M_Warehouse_ID=t.M_Warehouse_ID),");
|
||||||
sql.append("QtyReserved = (SELECT COALESCE(SUM(QtyReserved),0) FROM M_Storage s, M_Locator l WHERE t.M_Product_ID=s.M_Product_ID");
|
sql.append("QtyReserved = (SELECT COALESCE(SUM(Qty),0) FROM M_StorageReservation s WHERE t.M_Product_ID=s.M_Product_ID");
|
||||||
sql.append(" AND l.M_Locator_ID=s.M_Locator_ID AND l.M_Warehouse_ID=t.M_Warehouse_ID),");
|
sql.append(" AND t.M_Warehouse_ID=s.M_Warehouse_ID),");
|
||||||
sql.append("QtyOrdered = (SELECT COALESCE(SUM(QtyOrdered),0) FROM M_Storage s, M_Locator l WHERE t.M_Product_ID=s.M_Product_ID");
|
sql.append("QtyOrdered = (SELECT COALESCE(SUM(Qty),0) FROM M_StorageReservation s WHERE t.M_Product_ID=s.M_Product_ID");
|
||||||
sql.append(" AND l.M_Locator_ID=s.M_Locator_ID AND l.M_Warehouse_ID=t.M_Warehouse_ID)");
|
sql.append(" AND t.M_Warehouse_ID=s.M_Warehouse_ID)");
|
||||||
if (p_C_DocType_ID != 0)
|
if (p_C_DocType_ID != 0)
|
||||||
sql.append(", C_DocType_ID=").append(p_C_DocType_ID);
|
sql.append(", C_DocType_ID=").append(p_C_DocType_ID);
|
||||||
sql.append(" WHERE AD_PInstance_ID=").append(getAD_PInstance_ID());
|
sql.append(" WHERE AD_PInstance_ID=").append(getAD_PInstance_ID());
|
||||||
|
@ -534,15 +534,14 @@ public class ReplenishReport extends SvrProcess
|
||||||
// From: Look-up Storage
|
// From: Look-up Storage
|
||||||
MProduct product = MProduct.get(getCtx(), replenish.getM_Product_ID());
|
MProduct product = MProduct.get(getCtx(), replenish.getM_Product_ID());
|
||||||
String MMPolicy = product.getMMPolicy();
|
String MMPolicy = product.getMMPolicy();
|
||||||
MStorage[] storages = MStorage.getWarehouse(getCtx(),
|
MStorageOnHand[] storages = MStorageOnHand.getWarehouse(getCtx(),
|
||||||
whSource.getM_Warehouse_ID(), replenish.getM_Product_ID(), 0, 0,
|
whSource.getM_Warehouse_ID(), replenish.getM_Product_ID(), 0, null,
|
||||||
true, null,
|
MClient.MMPOLICY_FiFo.equals(MMPolicy), false, 0, get_TrxName());
|
||||||
MClient.MMPOLICY_FiFo.equals(MMPolicy), get_TrxName());
|
|
||||||
//
|
//
|
||||||
BigDecimal target = replenish.getQtyToOrder();
|
BigDecimal target = replenish.getQtyToOrder();
|
||||||
for (int j = 0; j < storages.length; j++)
|
for (int j = 0; j < storages.length; j++)
|
||||||
{
|
{
|
||||||
MStorage storage = storages[j];
|
MStorageOnHand storage = storages[j];
|
||||||
if (storage.getQtyOnHand().signum() <= 0)
|
if (storage.getQtyOnHand().signum() <= 0)
|
||||||
continue;
|
continue;
|
||||||
BigDecimal moveQty = target;
|
BigDecimal moveQty = target;
|
||||||
|
|
|
@ -38,7 +38,7 @@ import org.compiere.model.MProduction;
|
||||||
import org.compiere.model.MReplenish;
|
import org.compiere.model.MReplenish;
|
||||||
import org.compiere.model.MRequisition;
|
import org.compiere.model.MRequisition;
|
||||||
import org.compiere.model.MRequisitionLine;
|
import org.compiere.model.MRequisitionLine;
|
||||||
import org.compiere.model.MStorage;
|
import org.compiere.model.MStorageOnHand;
|
||||||
import org.compiere.model.MWarehouse;
|
import org.compiere.model.MWarehouse;
|
||||||
import org.compiere.model.X_T_Replenish;
|
import org.compiere.model.X_T_Replenish;
|
||||||
import org.compiere.util.AdempiereSystemError;
|
import org.compiere.util.AdempiereSystemError;
|
||||||
|
@ -269,12 +269,12 @@ public class ReplenishReportProduction extends SvrProcess
|
||||||
}
|
}
|
||||||
|
|
||||||
sql = new StringBuilder("UPDATE T_Replenish t SET ");
|
sql = new StringBuilder("UPDATE T_Replenish t SET ");
|
||||||
sql.append("QtyOnHand = (SELECT COALESCE(SUM(QtyOnHand),0) FROM M_Storage s, M_Locator l WHERE t.M_Product_ID=s.M_Product_ID");
|
sql.append("QtyOnHand = (SELECT COALESCE(SUM(QtyOnHand),0) FROM M_StorageOnHand s, M_Locator l WHERE t.M_Product_ID=s.M_Product_ID");
|
||||||
sql.append(" AND l.M_Locator_ID=s.M_Locator_ID AND l.M_Warehouse_ID=t.M_Warehouse_ID),");
|
sql.append(" AND l.M_Locator_ID=s.M_Locator_ID AND l.M_Warehouse_ID=t.M_Warehouse_ID),");
|
||||||
sql.append("QtyReserved = (SELECT COALESCE(SUM(QtyReserved),0) FROM M_Storage s, M_Locator l WHERE t.M_Product_ID=s.M_Product_ID");
|
sql.append("QtyReserved = (SELECT COALESCE(SUM(Qty),0) FROM M_StorageReservation s WHERE t.M_Product_ID=s.M_Product_ID");
|
||||||
sql.append(" AND l.M_Locator_ID=s.M_Locator_ID AND l.M_Warehouse_ID=t.M_Warehouse_ID),");
|
sql.append(" AND t.M_Warehouse_ID=s.M_Warehouse_ID),");
|
||||||
sql.append("QtyOrdered = (SELECT COALESCE(SUM(QtyOrdered),0) FROM M_Storage s, M_Locator l WHERE t.M_Product_ID=s.M_Product_ID");
|
sql.append("QtyOrdered = (SELECT COALESCE(SUM(Qty),0) FROM M_StorageReservation s WHERE t.M_Product_ID=s.M_Product_ID");
|
||||||
sql.append(" AND l.M_Locator_ID=s.M_Locator_ID AND l.M_Warehouse_ID=t.M_Warehouse_ID)");
|
sql.append(" AND t.M_Warehouse_ID=s.M_Warehouse_ID)");
|
||||||
if (p_C_DocType_ID != 0)
|
if (p_C_DocType_ID != 0)
|
||||||
sql.append(", C_DocType_ID=").append(p_C_DocType_ID);
|
sql.append(", C_DocType_ID=").append(p_C_DocType_ID);
|
||||||
sql.append(" WHERE AD_PInstance_ID=").append(getAD_PInstance_ID());
|
sql.append(" WHERE AD_PInstance_ID=").append(getAD_PInstance_ID());
|
||||||
|
@ -570,15 +570,14 @@ public class ReplenishReportProduction extends SvrProcess
|
||||||
// From: Look-up Storage
|
// From: Look-up Storage
|
||||||
MProduct product = MProduct.get(getCtx(), replenish.getM_Product_ID());
|
MProduct product = MProduct.get(getCtx(), replenish.getM_Product_ID());
|
||||||
String MMPolicy = product.getMMPolicy();
|
String MMPolicy = product.getMMPolicy();
|
||||||
MStorage[] storages = MStorage.getWarehouse(getCtx(),
|
MStorageOnHand[] storages = MStorageOnHand.getWarehouse(getCtx(),
|
||||||
whSource.getM_Warehouse_ID(), replenish.getM_Product_ID(), 0, 0,
|
whSource.getM_Warehouse_ID(), replenish.getM_Product_ID(), 0, null,
|
||||||
true, null,
|
MClient.MMPOLICY_FiFo.equals(MMPolicy), false, 0, get_TrxName());
|
||||||
MClient.MMPOLICY_FiFo.equals(MMPolicy), get_TrxName());
|
|
||||||
//
|
//
|
||||||
BigDecimal target = replenish.getQtyToOrder();
|
BigDecimal target = replenish.getQtyToOrder();
|
||||||
for (int j = 0; j < storages.length; j++)
|
for (int j = 0; j < storages.length; j++)
|
||||||
{
|
{
|
||||||
MStorage storage = storages[j];
|
MStorageOnHand storage = storages[j];
|
||||||
if (storage.getQtyOnHand().signum() <= 0)
|
if (storage.getQtyOnHand().signum() <= 0)
|
||||||
continue;
|
continue;
|
||||||
BigDecimal moveQty = target;
|
BigDecimal moveQty = target;
|
||||||
|
|
|
@ -26,7 +26,7 @@ import org.compiere.model.MLocator;
|
||||||
import org.compiere.model.MMovement;
|
import org.compiere.model.MMovement;
|
||||||
import org.compiere.model.MMovementLine;
|
import org.compiere.model.MMovementLine;
|
||||||
import org.compiere.model.MRefList;
|
import org.compiere.model.MRefList;
|
||||||
import org.compiere.model.MStorage;
|
import org.compiere.model.MStorageOnHand;
|
||||||
import org.compiere.util.DB;
|
import org.compiere.util.DB;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
|
|
||||||
|
@ -68,15 +68,22 @@ public class StorageCleanup extends SvrProcess
|
||||||
{
|
{
|
||||||
log.info("");
|
log.info("");
|
||||||
// Clean up empty Storage
|
// Clean up empty Storage
|
||||||
String sql = "DELETE FROM M_Storage "
|
String sql = "DELETE FROM M_StorageOnHand "
|
||||||
+ "WHERE QtyOnHand = 0 AND QtyReserved = 0 AND QtyOrdered = 0"
|
+ "WHERE QtyOnHand = 0"
|
||||||
+ " AND Created < SysDate-3";
|
+ " AND Created < SysDate-3";
|
||||||
int no = DB.executeUpdate(sql, get_TrxName());
|
int no = DB.executeUpdate(sql, get_TrxName());
|
||||||
log.info("Delete Empty #" + no);
|
log.info("Delete Empty #" + no);
|
||||||
|
|
||||||
|
// Clean up empty Reservation Storage
|
||||||
|
sql = "DELETE FROM M_StorageReservation "
|
||||||
|
+ "WHERE Qty = 0"
|
||||||
|
+ " AND Created < SysDate-3";
|
||||||
|
no = DB.executeUpdate(sql, get_TrxName());
|
||||||
|
log.info("Delete Empty #" + no);
|
||||||
|
|
||||||
//
|
//
|
||||||
sql = "SELECT * "
|
sql = "SELECT * "
|
||||||
+ "FROM M_Storage s "
|
+ "FROM M_StorageOnHand s "
|
||||||
+ "WHERE AD_Client_ID = ?"
|
+ "WHERE AD_Client_ID = ?"
|
||||||
+ " AND QtyOnHand < 0"
|
+ " AND QtyOnHand < 0"
|
||||||
// Instance Attribute
|
// Instance Attribute
|
||||||
|
@ -89,7 +96,7 @@ public class StorageCleanup extends SvrProcess
|
||||||
// + " AND s.M_Product_ID=sl.M_Product_ID"
|
// + " AND s.M_Product_ID=sl.M_Product_ID"
|
||||||
// + " AND s.M_Locator_ID=sl.M_Locator_ID)"
|
// + " AND s.M_Locator_ID=sl.M_Locator_ID)"
|
||||||
// Stock in same Warehouse
|
// Stock in same Warehouse
|
||||||
+ " AND EXISTS (SELECT * FROM M_Storage sw"
|
+ " AND EXISTS (SELECT * FROM M_StorageOnHand sw"
|
||||||
+ " INNER JOIN M_Locator swl ON (sw.M_Locator_ID=swl.M_Locator_ID), M_Locator sl "
|
+ " INNER JOIN M_Locator swl ON (sw.M_Locator_ID=swl.M_Locator_ID), M_Locator sl "
|
||||||
+ "WHERE sw.QtyOnHand > 0"
|
+ "WHERE sw.QtyOnHand > 0"
|
||||||
+ " AND s.M_Product_ID=sw.M_Product_ID"
|
+ " AND s.M_Product_ID=sw.M_Product_ID"
|
||||||
|
@ -105,7 +112,7 @@ public class StorageCleanup extends SvrProcess
|
||||||
rs = pstmt.executeQuery ();
|
rs = pstmt.executeQuery ();
|
||||||
while (rs.next ())
|
while (rs.next ())
|
||||||
{
|
{
|
||||||
lines += move (new MStorage(getCtx(), rs, get_TrxName()));
|
lines += move (new MStorageOnHand(getCtx(), rs, get_TrxName()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
|
@ -126,7 +133,7 @@ public class StorageCleanup extends SvrProcess
|
||||||
* @param target target storage
|
* @param target target storage
|
||||||
* @return no of movements
|
* @return no of movements
|
||||||
*/
|
*/
|
||||||
private int move (MStorage target)
|
private int move (MStorageOnHand target)
|
||||||
{
|
{
|
||||||
log.info(target.toString());
|
log.info(target.toString());
|
||||||
BigDecimal qty = target.getQtyOnHand().negate();
|
BigDecimal qty = target.getQtyOnHand().negate();
|
||||||
|
@ -140,10 +147,10 @@ public class StorageCleanup extends SvrProcess
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
int lines = 0;
|
int lines = 0;
|
||||||
MStorage[] sources = getSources(target.getM_Product_ID(), target.getM_Locator_ID());
|
MStorageOnHand[] sources = getSources(target.getM_Product_ID(), target.getM_Locator_ID());
|
||||||
for (int i = 0; i < sources.length; i++)
|
for (int i = 0; i < sources.length; i++)
|
||||||
{
|
{
|
||||||
MStorage source = sources[i];
|
MStorageOnHand source = sources[i];
|
||||||
|
|
||||||
// Movement Line
|
// Movement Line
|
||||||
MMovementLine ml = new MMovementLine(mh);
|
MMovementLine ml = new MMovementLine(mh);
|
||||||
|
@ -189,13 +196,14 @@ public class StorageCleanup extends SvrProcess
|
||||||
* Eliminate Reserved/Ordered
|
* Eliminate Reserved/Ordered
|
||||||
* @param target target Storage
|
* @param target target Storage
|
||||||
*/
|
*/
|
||||||
private void eliminateReservation(MStorage target)
|
private void eliminateReservation(MStorageOnHand target)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
// Negative Ordered / Reserved Qty
|
// Negative Ordered / Reserved Qty
|
||||||
if (target.getQtyReserved().signum() != 0 || target.getQtyOrdered().signum() != 0)
|
if (target.getQtyReserved().signum() != 0 || target.getQtyOrdered().signum() != 0)
|
||||||
{
|
{
|
||||||
int M_Locator_ID = target.getM_Locator_ID();
|
int M_Locator_ID = target.getM_Locator_ID();
|
||||||
MStorage storage0 = MStorage.get(getCtx(), M_Locator_ID,
|
MStorageOnHand storage0 = MStorageOnHand.get(getCtx(), M_Locator_ID,
|
||||||
target.getM_Product_ID(), 0, get_TrxName());
|
target.getM_Product_ID(), 0, get_TrxName());
|
||||||
if (storage0 == null)
|
if (storage0 == null)
|
||||||
{
|
{
|
||||||
|
@ -203,7 +211,7 @@ public class StorageCleanup extends SvrProcess
|
||||||
if (M_Locator_ID != defaultLoc.getM_Locator_ID())
|
if (M_Locator_ID != defaultLoc.getM_Locator_ID())
|
||||||
{
|
{
|
||||||
M_Locator_ID = defaultLoc.getM_Locator_ID();
|
M_Locator_ID = defaultLoc.getM_Locator_ID();
|
||||||
storage0 = MStorage.get(getCtx(), M_Locator_ID,
|
storage0 = MStorageOnHand.get(getCtx(), M_Locator_ID,
|
||||||
target.getM_Product_ID(), 0, get_TrxName());
|
target.getM_Product_ID(), 0, get_TrxName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -218,15 +226,15 @@ public class StorageCleanup extends SvrProcess
|
||||||
// Eliminate Reservation
|
// Eliminate Reservation
|
||||||
if (reserved.signum() != 0 || ordered.signum() != 0)
|
if (reserved.signum() != 0 || ordered.signum() != 0)
|
||||||
{
|
{
|
||||||
if (MStorage.add(getCtx(), target.getM_Warehouse_ID(), target.getM_Locator_ID(),
|
if (MStorageOnHand.add(getCtx(), target.getM_Warehouse_ID(), target.getM_Locator_ID(),
|
||||||
target.getM_Product_ID(),
|
target.getM_Product_ID(),
|
||||||
target.getM_AttributeSetInstance_ID(), target.getM_AttributeSetInstance_ID(),
|
target.getM_AttributeSetInstance_ID(), target.getM_AttributeSetInstance_ID(),
|
||||||
Env.ZERO, reserved.negate(), ordered.negate(), get_TrxName()))
|
Env.ZERO, get_TrxName()))
|
||||||
{
|
{
|
||||||
if (MStorage.add(getCtx(), storage0.getM_Warehouse_ID(), storage0.getM_Locator_ID(),
|
if (MStorageOnHand.add(getCtx(), storage0.getM_Warehouse_ID(), storage0.getM_Locator_ID(),
|
||||||
storage0.getM_Product_ID(),
|
storage0.getM_Product_ID(),
|
||||||
storage0.getM_AttributeSetInstance_ID(), storage0.getM_AttributeSetInstance_ID(),
|
storage0.getM_AttributeSetInstance_ID(), storage0.getM_AttributeSetInstance_ID(),
|
||||||
Env.ZERO, reserved, ordered, get_TrxName()))
|
Env.ZERO, get_TrxName()))
|
||||||
log.info("Reserved=" + reserved + ",Ordered=" + ordered);
|
log.info("Reserved=" + reserved + ",Ordered=" + ordered);
|
||||||
else
|
else
|
||||||
log.warning("Failed Storage0 Update");
|
log.warning("Failed Storage0 Update");
|
||||||
|
@ -236,6 +244,7 @@ public class StorageCleanup extends SvrProcess
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
} // eliminateReservation
|
} // eliminateReservation
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -244,11 +253,11 @@ public class StorageCleanup extends SvrProcess
|
||||||
* @param M_Locator_ID locator
|
* @param M_Locator_ID locator
|
||||||
* @return sources
|
* @return sources
|
||||||
*/
|
*/
|
||||||
private MStorage[] getSources (int M_Product_ID, int M_Locator_ID)
|
private MStorageOnHand[] getSources (int M_Product_ID, int M_Locator_ID)
|
||||||
{
|
{
|
||||||
ArrayList<MStorage> list = new ArrayList<MStorage>();
|
ArrayList<MStorageOnHand> list = new ArrayList<MStorageOnHand>();
|
||||||
String sql = "SELECT * "
|
String sql = "SELECT * "
|
||||||
+ "FROM M_Storage s "
|
+ "FROM M_StorageOnHand s "
|
||||||
+ "WHERE QtyOnHand > 0"
|
+ "WHERE QtyOnHand > 0"
|
||||||
+ " AND M_Product_ID=?"
|
+ " AND M_Product_ID=?"
|
||||||
// Empty ASI
|
// Empty ASI
|
||||||
|
@ -272,7 +281,7 @@ public class StorageCleanup extends SvrProcess
|
||||||
rs = pstmt.executeQuery ();
|
rs = pstmt.executeQuery ();
|
||||||
while (rs.next ())
|
while (rs.next ())
|
||||||
{
|
{
|
||||||
list.add (new MStorage (getCtx(), rs, get_TrxName()));
|
list.add (new MStorageOnHand (getCtx(), rs, get_TrxName()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
|
@ -284,7 +293,7 @@ public class StorageCleanup extends SvrProcess
|
||||||
DB.close(rs, pstmt);
|
DB.close(rs, pstmt);
|
||||||
rs = null; pstmt = null;
|
rs = null; pstmt = null;
|
||||||
}
|
}
|
||||||
MStorage[] retValue = new MStorage[list.size()];
|
MStorageOnHand[] retValue = new MStorageOnHand[list.size()];
|
||||||
list.toArray(retValue);
|
list.toArray(retValue);
|
||||||
return retValue;
|
return retValue;
|
||||||
} // getSources
|
} // getSources
|
||||||
|
|
|
@ -188,9 +188,9 @@ public class AccessSqlParserTest extends TestCase
|
||||||
*/
|
*/
|
||||||
public void testProductInstanceAttributeQuery()
|
public void testProductInstanceAttributeQuery()
|
||||||
{
|
{
|
||||||
String sql = "SELECT p.M_Product_ID, p.Discontinued, p.Value, p.Name, BOM_Qty_Available(p.M_Product_ID,?) AS QtyAvailable, bomQtyList(p.M_Product_ID, pr.M_PriceList_Version_ID) AS PriceList, bomQtyStd(p.M_Product_ID, pr.M_PriceList_Version_ID) AS PriceStd, BOM_Qty_OnHand(p.M_Product_ID,?) AS QtyOnHand, BOM_Qty_Reserved(p.M_Product_ID,?) AS QtyReserved, BOM_Qty_Ordered(p.M_Product_ID,?) AS QtyOrdered, bomQtyStd(p.M_Product_ID, pr.M_PriceList_Version_ID)-bomQtyLimit(p.M_Product_ID, pr.M_PriceList_Version_ID) AS Margin, bomQtyLimit(p.M_Product_ID, pr.M_PriceList_Version_ID) AS PriceLimit, pa.IsInstanceAttribute FROM M_Product p INNER JOIN M_ProductPrice pr ON (p.M_Product_ID=pr.M_Product_ID) LEFT OUTER JOIN M_AttributeSet pa ON (p.M_AttributeSet_ID=pa.M_AttributeSet_ID) WHERE p.IsSummary='N' AND p.IsActive='Y' AND pr.IsActive='Y' AND pr.M_PriceList_Version_ID=? AND EXISTS (SELECT * FROM M_Storage s INNER JOIN M_AttributeSetInstance asi ON (s.M_AttributeSetInstance_ID=asi.M_AttributeSetInstance_ID) WHERE s.M_Product_ID=p.M_Product_ID AND asi.SerNo LIKE '33' AND asi.Lot LIKE '33' AND asi.M_Lot_ID=101 AND TRUNC(asi.GuaranteeDate)<TO_DATE('2003-10-16','YYYY-MM-DD') AND asi.M_AttributeSetInstance_ID IN (SELECT M_AttributeSetInstance_ID FROM M_AttributeInstance WHERE (M_Attribute_ID=103 AND Value LIKE '33') AND (M_Attribute_ID=102 AND M_AttributeValue_ID=106))) AND p.M_AttributeSetInstance_ID IN (SELECT M_AttributeSetInstance_ID FROM M_AttributeInstance WHERE (M_Attribute_ID=101 AND M_AttributeValue_ID=105) AND (M_Attribute_ID=100 AND M_AttributeValue_ID=102)) AND p.AD_Client_ID IN(0,11) AND p.AD_Org_ID IN(0,11,12) ORDER BY QtyAvailable DESC, Margin DESC";
|
String sql = "SELECT p.M_Product_ID, p.Discontinued, p.Value, p.Name, BOM_Qty_Available(p.M_Product_ID,?) AS QtyAvailable, bomQtyList(p.M_Product_ID, pr.M_PriceList_Version_ID) AS PriceList, bomQtyStd(p.M_Product_ID, pr.M_PriceList_Version_ID) AS PriceStd, BOM_Qty_OnHand(p.M_Product_ID,?) AS QtyOnHand, BOM_Qty_Reserved(p.M_Product_ID,?) AS QtyReserved, BOM_Qty_Ordered(p.M_Product_ID,?) AS QtyOrdered, bomQtyStd(p.M_Product_ID, pr.M_PriceList_Version_ID)-bomQtyLimit(p.M_Product_ID, pr.M_PriceList_Version_ID) AS Margin, bomQtyLimit(p.M_Product_ID, pr.M_PriceList_Version_ID) AS PriceLimit, pa.IsInstanceAttribute FROM M_Product p INNER JOIN M_ProductPrice pr ON (p.M_Product_ID=pr.M_Product_ID) LEFT OUTER JOIN M_AttributeSet pa ON (p.M_AttributeSet_ID=pa.M_AttributeSet_ID) WHERE p.IsSummary='N' AND p.IsActive='Y' AND pr.IsActive='Y' AND pr.M_PriceList_Version_ID=? AND EXISTS (SELECT * FROM M_StorageOnHand s INNER JOIN M_AttributeSetInstance asi ON (s.M_AttributeSetInstance_ID=asi.M_AttributeSetInstance_ID) WHERE s.M_Product_ID=p.M_Product_ID AND asi.SerNo LIKE '33' AND asi.Lot LIKE '33' AND asi.M_Lot_ID=101 AND TRUNC(asi.GuaranteeDate)<TO_DATE('2003-10-16','YYYY-MM-DD') AND asi.M_AttributeSetInstance_ID IN (SELECT M_AttributeSetInstance_ID FROM M_AttributeInstance WHERE (M_Attribute_ID=103 AND Value LIKE '33') AND (M_Attribute_ID=102 AND M_AttributeValue_ID=106))) AND p.M_AttributeSetInstance_ID IN (SELECT M_AttributeSetInstance_ID FROM M_AttributeInstance WHERE (M_Attribute_ID=101 AND M_AttributeValue_ID=105) AND (M_Attribute_ID=100 AND M_AttributeValue_ID=102)) AND p.AD_Client_ID IN(0,11) AND p.AD_Org_ID IN(0,11,12) ORDER BY QtyAvailable DESC, Margin DESC";
|
||||||
AccessSqlParser fixture = new AccessSqlParser(sql);
|
AccessSqlParser fixture = new AccessSqlParser(sql);
|
||||||
assertEquals("AccessSqlParser[M_AttributeInstance|M_Storage=s,M_AttributeSetInstance=asi|M_AttributeInstance|M_Product=p,M_ProductPrice=pr,M_AttributeSet=pa|3]", fixture.toString());
|
assertEquals("AccessSqlParser[M_AttributeInstance|M_StorageOnHand=s,M_AttributeSetInstance=asi|M_AttributeInstance|M_Product=p,M_ProductPrice=pr,M_AttributeSet=pa|3]", fixture.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -42,12 +42,10 @@ import static org.compiere.model.SystemIDs.*;
|
||||||
*/
|
*/
|
||||||
public class GridFieldVO implements Serializable
|
public class GridFieldVO implements Serializable
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = -6196878184196075974L;
|
private static final long serialVersionUID = 542767511640866058L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the SQL statement used for the MFieldVO.create
|
* Return the SQL statement used for the MFieldVO.create
|
||||||
|
@ -232,16 +230,12 @@ public class GridFieldVO implements Serializable
|
||||||
userDef = MUserDefField.get(vo.ctx,AD_Field_ID, AD_Tab_ID, AD_Window_ID);
|
userDef = MUserDefField.get(vo.ctx,AD_Field_ID, AD_Tab_ID, AD_Window_ID);
|
||||||
if (userDef != null)
|
if (userDef != null)
|
||||||
{
|
{
|
||||||
vo.IsDisplayed = userDef.isDisplayed();
|
|
||||||
if (userDef.getName() != null)
|
if (userDef.getName() != null)
|
||||||
vo.Header = userDef.getName();
|
vo.Header = userDef.getName();
|
||||||
if (userDef.getDescription() != null)
|
if (userDef.getDescription() != null)
|
||||||
vo.Description = userDef.getDescription();
|
vo.Description = userDef.getDescription();
|
||||||
if (userDef.getHelp() != null)
|
if (userDef.getHelp() != null)
|
||||||
vo.Help = userDef.getHelp();
|
vo.Help = userDef.getHelp();
|
||||||
vo.IsReadOnly = userDef.isReadOnly();
|
|
||||||
vo.IsSameLine = userDef.isSameLine();
|
|
||||||
vo.IsUpdateable = userDef.isUpdateable();
|
|
||||||
if (userDef.getDisplayLength() > 0)
|
if (userDef.getDisplayLength() > 0)
|
||||||
vo.DisplayLength = userDef.getDisplayLength();
|
vo.DisplayLength = userDef.getDisplayLength();
|
||||||
if (userDef.getDisplayLogic() != null)
|
if (userDef.getDisplayLogic() != null)
|
||||||
|
@ -250,9 +244,35 @@ public class GridFieldVO implements Serializable
|
||||||
vo.DefaultValue = userDef.getDefaultValue();
|
vo.DefaultValue = userDef.getDefaultValue();
|
||||||
if (userDef.getSortNo() > 0)
|
if (userDef.getSortNo() > 0)
|
||||||
vo.SortNo = userDef.getSortNo();
|
vo.SortNo = userDef.getSortNo();
|
||||||
// ToDo SeqNo
|
//IDEMPIERE-163
|
||||||
//if (userDef.getSeqNo() > 0)
|
if (userDef.getIsDisplayed()!= null)
|
||||||
// vo.SeqNo = userDef.getSeqNo();
|
vo.IsDisplayed = "Y".equals(userDef.getIsDisplayed());
|
||||||
|
if (userDef.getIsReadOnly()!= null)
|
||||||
|
vo.IsReadOnly = "Y".equals(userDef.getIsReadOnly());
|
||||||
|
if (userDef.getIsSameLine()!= null)
|
||||||
|
vo.IsSameLine = "Y".equals(userDef.getIsSameLine());
|
||||||
|
if (userDef.getIsUpdateable()!= null)
|
||||||
|
vo.IsUpdateable = "Y".equals(userDef.getIsUpdateable());
|
||||||
|
if (userDef.getIsAlwaysUpdateable()!= null)
|
||||||
|
vo.IsAlwaysUpdateable = "Y".equals(userDef.getIsAlwaysUpdateable());
|
||||||
|
if (userDef.getReadOnlyLogic()!= null)
|
||||||
|
vo.ReadOnlyLogic = userDef.getReadOnlyLogic();
|
||||||
|
if (userDef.getMandatoryLogic()!= null )
|
||||||
|
vo.MandatoryLogic = userDef.getMandatoryLogic();
|
||||||
|
if (userDef.getAD_Reference_ID()>0)
|
||||||
|
vo.displayType = userDef.getAD_Reference_ID();
|
||||||
|
if (userDef.getAD_Reference_Value_ID()>0)
|
||||||
|
vo.AD_Reference_Value_ID = userDef.getAD_Reference_Value_ID();
|
||||||
|
if (userDef.getIsMandatory()!= null)
|
||||||
|
vo.IsMandatory = "Y".equals(userDef.getIsMandatory());
|
||||||
|
if (userDef.getXPosition() > 0)
|
||||||
|
vo.XPosition = userDef.getXPosition();
|
||||||
|
if (userDef.getColumnSpan() > 0)
|
||||||
|
vo.ColumnSpan=userDef.getColumnSpan();
|
||||||
|
if (userDef.getNumLines() > 0)
|
||||||
|
vo.NumLines=userDef.getNumLines();
|
||||||
|
if (userDef.getIsToolbarButton() != null)
|
||||||
|
vo.IsToolbarButton = "Y".equals(userDef.getIsToolbarButton());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
|
|
|
@ -339,6 +339,19 @@ public interface I_AD_Field
|
||||||
*/
|
*/
|
||||||
public String getIsAllowCopy();
|
public String getIsAllowCopy();
|
||||||
|
|
||||||
|
/** Column name IsAlwaysUpdateable */
|
||||||
|
public static final String COLUMNNAME_IsAlwaysUpdateable = "IsAlwaysUpdateable";
|
||||||
|
|
||||||
|
/** Set Always Updateable.
|
||||||
|
* The column is always updateable, even if the record is not active or processed
|
||||||
|
*/
|
||||||
|
public void setIsAlwaysUpdateable (String IsAlwaysUpdateable);
|
||||||
|
|
||||||
|
/** Get Always Updateable.
|
||||||
|
* The column is always updateable, even if the record is not active or processed
|
||||||
|
*/
|
||||||
|
public String getIsAlwaysUpdateable();
|
||||||
|
|
||||||
/** Column name IsCentrallyMaintained */
|
/** Column name IsCentrallyMaintained */
|
||||||
public static final String COLUMNNAME_IsCentrallyMaintained = "IsCentrallyMaintained";
|
public static final String COLUMNNAME_IsCentrallyMaintained = "IsCentrallyMaintained";
|
||||||
|
|
||||||
|
@ -461,6 +474,41 @@ public interface I_AD_Field
|
||||||
*/
|
*/
|
||||||
public boolean isSameLine();
|
public boolean isSameLine();
|
||||||
|
|
||||||
|
/** Column name IsToolbarButton */
|
||||||
|
public static final String COLUMNNAME_IsToolbarButton = "IsToolbarButton";
|
||||||
|
|
||||||
|
/** Set Toolbar Button.
|
||||||
|
* Add the column button to the toolbar
|
||||||
|
*/
|
||||||
|
public void setIsToolbarButton (String IsToolbarButton);
|
||||||
|
|
||||||
|
/** Get Toolbar Button.
|
||||||
|
* Add the column button to the toolbar
|
||||||
|
*/
|
||||||
|
public String getIsToolbarButton();
|
||||||
|
|
||||||
|
/** Column name IsUpdateable */
|
||||||
|
public static final String COLUMNNAME_IsUpdateable = "IsUpdateable";
|
||||||
|
|
||||||
|
/** Set Updatable.
|
||||||
|
* Determines, if the field can be updated
|
||||||
|
*/
|
||||||
|
public void setIsUpdateable (String IsUpdateable);
|
||||||
|
|
||||||
|
/** Get Updatable.
|
||||||
|
* Determines, if the field can be updated
|
||||||
|
*/
|
||||||
|
public String getIsUpdateable();
|
||||||
|
|
||||||
|
/** Column name MandatoryLogic */
|
||||||
|
public static final String COLUMNNAME_MandatoryLogic = "MandatoryLogic";
|
||||||
|
|
||||||
|
/** Set Mandatory Logic */
|
||||||
|
public void setMandatoryLogic (String MandatoryLogic);
|
||||||
|
|
||||||
|
/** Get Mandatory Logic */
|
||||||
|
public String getMandatoryLogic();
|
||||||
|
|
||||||
/** Column name Name */
|
/** Column name Name */
|
||||||
public static final String COLUMNNAME_Name = "Name";
|
public static final String COLUMNNAME_Name = "Name";
|
||||||
|
|
||||||
|
@ -500,6 +548,19 @@ public interface I_AD_Field
|
||||||
*/
|
*/
|
||||||
public String getObscureType();
|
public String getObscureType();
|
||||||
|
|
||||||
|
/** Column name ReadOnlyLogic */
|
||||||
|
public static final String COLUMNNAME_ReadOnlyLogic = "ReadOnlyLogic";
|
||||||
|
|
||||||
|
/** Set Read Only Logic.
|
||||||
|
* Logic to determine if field is read only (applies only when field is read-write)
|
||||||
|
*/
|
||||||
|
public void setReadOnlyLogic (String ReadOnlyLogic);
|
||||||
|
|
||||||
|
/** Get Read Only Logic.
|
||||||
|
* Logic to determine if field is read only (applies only when field is read-write)
|
||||||
|
*/
|
||||||
|
public String getReadOnlyLogic();
|
||||||
|
|
||||||
/** Column name SeqNo */
|
/** Column name SeqNo */
|
||||||
public static final String COLUMNNAME_SeqNo = "SeqNo";
|
public static final String COLUMNNAME_SeqNo = "SeqNo";
|
||||||
|
|
||||||
|
|
|
@ -77,6 +77,36 @@ public interface I_AD_UserDef_Field
|
||||||
*/
|
*/
|
||||||
public int getAD_Org_ID();
|
public int getAD_Org_ID();
|
||||||
|
|
||||||
|
/** Column name AD_Reference_ID */
|
||||||
|
public static final String COLUMNNAME_AD_Reference_ID = "AD_Reference_ID";
|
||||||
|
|
||||||
|
/** Set Reference.
|
||||||
|
* System Reference and Validation
|
||||||
|
*/
|
||||||
|
public void setAD_Reference_ID (int AD_Reference_ID);
|
||||||
|
|
||||||
|
/** Get Reference.
|
||||||
|
* System Reference and Validation
|
||||||
|
*/
|
||||||
|
public int getAD_Reference_ID();
|
||||||
|
|
||||||
|
public org.compiere.model.I_AD_Reference getAD_Reference() throws RuntimeException;
|
||||||
|
|
||||||
|
/** Column name AD_Reference_Value_ID */
|
||||||
|
public static final String COLUMNNAME_AD_Reference_Value_ID = "AD_Reference_Value_ID";
|
||||||
|
|
||||||
|
/** Set Reference Key.
|
||||||
|
* Required to specify, if data type is Table or List
|
||||||
|
*/
|
||||||
|
public void setAD_Reference_Value_ID (int AD_Reference_Value_ID);
|
||||||
|
|
||||||
|
/** Get Reference Key.
|
||||||
|
* Required to specify, if data type is Table or List
|
||||||
|
*/
|
||||||
|
public int getAD_Reference_Value_ID();
|
||||||
|
|
||||||
|
public org.compiere.model.I_AD_Reference getAD_Reference_Value() throws RuntimeException;
|
||||||
|
|
||||||
/** Column name AD_UserDef_Field_ID */
|
/** Column name AD_UserDef_Field_ID */
|
||||||
public static final String COLUMNNAME_AD_UserDef_Field_ID = "AD_UserDef_Field_ID";
|
public static final String COLUMNNAME_AD_UserDef_Field_ID = "AD_UserDef_Field_ID";
|
||||||
|
|
||||||
|
@ -106,6 +136,19 @@ public interface I_AD_UserDef_Field
|
||||||
|
|
||||||
public org.compiere.model.I_AD_UserDef_Tab getAD_UserDef_Tab() throws RuntimeException;
|
public org.compiere.model.I_AD_UserDef_Tab getAD_UserDef_Tab() throws RuntimeException;
|
||||||
|
|
||||||
|
/** Column name ColumnSpan */
|
||||||
|
public static final String COLUMNNAME_ColumnSpan = "ColumnSpan";
|
||||||
|
|
||||||
|
/** Set Column Span.
|
||||||
|
* Number of column for a box of field
|
||||||
|
*/
|
||||||
|
public void setColumnSpan (int ColumnSpan);
|
||||||
|
|
||||||
|
/** Get Column Span.
|
||||||
|
* Number of column for a box of field
|
||||||
|
*/
|
||||||
|
public int getColumnSpan();
|
||||||
|
|
||||||
/** Column name Created */
|
/** Column name Created */
|
||||||
public static final String COLUMNNAME_Created = "Created";
|
public static final String COLUMNNAME_Created = "Created";
|
||||||
|
|
||||||
|
@ -202,18 +245,44 @@ public interface I_AD_UserDef_Field
|
||||||
*/
|
*/
|
||||||
public boolean isActive();
|
public boolean isActive();
|
||||||
|
|
||||||
|
/** Column name IsAlwaysUpdateable */
|
||||||
|
public static final String COLUMNNAME_IsAlwaysUpdateable = "IsAlwaysUpdateable";
|
||||||
|
|
||||||
|
/** Set Always Updatable.
|
||||||
|
* The column is always updateable, even if the record is not active or processed
|
||||||
|
*/
|
||||||
|
public void setIsAlwaysUpdateable (String IsAlwaysUpdateable);
|
||||||
|
|
||||||
|
/** Get Always Updatable.
|
||||||
|
* The column is always updateable, even if the record is not active or processed
|
||||||
|
*/
|
||||||
|
public String getIsAlwaysUpdateable();
|
||||||
|
|
||||||
/** Column name IsDisplayed */
|
/** Column name IsDisplayed */
|
||||||
public static final String COLUMNNAME_IsDisplayed = "IsDisplayed";
|
public static final String COLUMNNAME_IsDisplayed = "IsDisplayed";
|
||||||
|
|
||||||
/** Set Displayed.
|
/** Set Displayed.
|
||||||
* Determines, if this field is displayed
|
* Determines, if this field is displayed
|
||||||
*/
|
*/
|
||||||
public void setIsDisplayed (boolean IsDisplayed);
|
public void setIsDisplayed (String IsDisplayed);
|
||||||
|
|
||||||
/** Get Displayed.
|
/** Get Displayed.
|
||||||
* Determines, if this field is displayed
|
* Determines, if this field is displayed
|
||||||
*/
|
*/
|
||||||
public boolean isDisplayed();
|
public String getIsDisplayed();
|
||||||
|
|
||||||
|
/** Column name IsMandatory */
|
||||||
|
public static final String COLUMNNAME_IsMandatory = "IsMandatory";
|
||||||
|
|
||||||
|
/** Set Mandatory.
|
||||||
|
* Data entry is required in this column
|
||||||
|
*/
|
||||||
|
public void setIsMandatory (String IsMandatory);
|
||||||
|
|
||||||
|
/** Get Mandatory.
|
||||||
|
* Data entry is required in this column
|
||||||
|
*/
|
||||||
|
public String getIsMandatory();
|
||||||
|
|
||||||
/** Column name IsReadOnly */
|
/** Column name IsReadOnly */
|
||||||
public static final String COLUMNNAME_IsReadOnly = "IsReadOnly";
|
public static final String COLUMNNAME_IsReadOnly = "IsReadOnly";
|
||||||
|
@ -221,12 +290,12 @@ public interface I_AD_UserDef_Field
|
||||||
/** Set Read Only.
|
/** Set Read Only.
|
||||||
* Field is read only
|
* Field is read only
|
||||||
*/
|
*/
|
||||||
public void setIsReadOnly (boolean IsReadOnly);
|
public void setIsReadOnly (String IsReadOnly);
|
||||||
|
|
||||||
/** Get Read Only.
|
/** Get Read Only.
|
||||||
* Field is read only
|
* Field is read only
|
||||||
*/
|
*/
|
||||||
public boolean isReadOnly();
|
public String getIsReadOnly();
|
||||||
|
|
||||||
/** Column name IsSameLine */
|
/** Column name IsSameLine */
|
||||||
public static final String COLUMNNAME_IsSameLine = "IsSameLine";
|
public static final String COLUMNNAME_IsSameLine = "IsSameLine";
|
||||||
|
@ -234,12 +303,25 @@ public interface I_AD_UserDef_Field
|
||||||
/** Set Same Line.
|
/** Set Same Line.
|
||||||
* Displayed on same line as previous field
|
* Displayed on same line as previous field
|
||||||
*/
|
*/
|
||||||
public void setIsSameLine (boolean IsSameLine);
|
public void setIsSameLine (String IsSameLine);
|
||||||
|
|
||||||
/** Get Same Line.
|
/** Get Same Line.
|
||||||
* Displayed on same line as previous field
|
* Displayed on same line as previous field
|
||||||
*/
|
*/
|
||||||
public boolean isSameLine();
|
public String getIsSameLine();
|
||||||
|
|
||||||
|
/** Column name IsToolbarButton */
|
||||||
|
public static final String COLUMNNAME_IsToolbarButton = "IsToolbarButton";
|
||||||
|
|
||||||
|
/** Set Toolbar Button.
|
||||||
|
* Add the column button to the toolbar
|
||||||
|
*/
|
||||||
|
public void setIsToolbarButton (String IsToolbarButton);
|
||||||
|
|
||||||
|
/** Get Toolbar Button.
|
||||||
|
* Add the column button to the toolbar
|
||||||
|
*/
|
||||||
|
public String getIsToolbarButton();
|
||||||
|
|
||||||
/** Column name IsUpdateable */
|
/** Column name IsUpdateable */
|
||||||
public static final String COLUMNNAME_IsUpdateable = "IsUpdateable";
|
public static final String COLUMNNAME_IsUpdateable = "IsUpdateable";
|
||||||
|
@ -247,12 +329,21 @@ public interface I_AD_UserDef_Field
|
||||||
/** Set Updatable.
|
/** Set Updatable.
|
||||||
* Determines, if the field can be updated
|
* Determines, if the field can be updated
|
||||||
*/
|
*/
|
||||||
public void setIsUpdateable (boolean IsUpdateable);
|
public void setIsUpdateable (String IsUpdateable);
|
||||||
|
|
||||||
/** Get Updatable.
|
/** Get Updatable.
|
||||||
* Determines, if the field can be updated
|
* Determines, if the field can be updated
|
||||||
*/
|
*/
|
||||||
public boolean isUpdateable();
|
public String getIsUpdateable();
|
||||||
|
|
||||||
|
/** Column name MandatoryLogic */
|
||||||
|
public static final String COLUMNNAME_MandatoryLogic = "MandatoryLogic";
|
||||||
|
|
||||||
|
/** Set Mandatory Logic */
|
||||||
|
public void setMandatoryLogic (String MandatoryLogic);
|
||||||
|
|
||||||
|
/** Get Mandatory Logic */
|
||||||
|
public String getMandatoryLogic();
|
||||||
|
|
||||||
/** Column name Name */
|
/** Column name Name */
|
||||||
public static final String COLUMNNAME_Name = "Name";
|
public static final String COLUMNNAME_Name = "Name";
|
||||||
|
@ -267,6 +358,32 @@ public interface I_AD_UserDef_Field
|
||||||
*/
|
*/
|
||||||
public String getName();
|
public String getName();
|
||||||
|
|
||||||
|
/** Column name NumLines */
|
||||||
|
public static final String COLUMNNAME_NumLines = "NumLines";
|
||||||
|
|
||||||
|
/** Set Number of Lines.
|
||||||
|
* Number of lines for a field
|
||||||
|
*/
|
||||||
|
public void setNumLines (int NumLines);
|
||||||
|
|
||||||
|
/** Get Number of Lines.
|
||||||
|
* Number of lines for a field
|
||||||
|
*/
|
||||||
|
public int getNumLines();
|
||||||
|
|
||||||
|
/** Column name ReadOnlyLogic */
|
||||||
|
public static final String COLUMNNAME_ReadOnlyLogic = "ReadOnlyLogic";
|
||||||
|
|
||||||
|
/** Set Read Only Logic.
|
||||||
|
* Logic to determine if field is read only (applies only when field is read-write)
|
||||||
|
*/
|
||||||
|
public void setReadOnlyLogic (String ReadOnlyLogic);
|
||||||
|
|
||||||
|
/** Get Read Only Logic.
|
||||||
|
* Logic to determine if field is read only (applies only when field is read-write)
|
||||||
|
*/
|
||||||
|
public String getReadOnlyLogic();
|
||||||
|
|
||||||
/** Column name SeqNo */
|
/** Column name SeqNo */
|
||||||
public static final String COLUMNNAME_SeqNo = "SeqNo";
|
public static final String COLUMNNAME_SeqNo = "SeqNo";
|
||||||
|
|
||||||
|
@ -310,4 +427,17 @@ public interface I_AD_UserDef_Field
|
||||||
* User who updated this records
|
* User who updated this records
|
||||||
*/
|
*/
|
||||||
public int getUpdatedBy();
|
public int getUpdatedBy();
|
||||||
|
|
||||||
|
/** Column name XPosition */
|
||||||
|
public static final String COLUMNNAME_XPosition = "XPosition";
|
||||||
|
|
||||||
|
/** Set X Position.
|
||||||
|
* Absolute X (horizontal) position in 1/72 of an inch
|
||||||
|
*/
|
||||||
|
public void setXPosition (int XPosition);
|
||||||
|
|
||||||
|
/** Get X Position.
|
||||||
|
* Absolute X (horizontal) position in 1/72 of an inch
|
||||||
|
*/
|
||||||
|
public int getXPosition();
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,18 +20,18 @@ import java.math.BigDecimal;
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
import org.compiere.util.KeyNamePair;
|
import org.compiere.util.KeyNamePair;
|
||||||
|
|
||||||
/** Generated Interface for M_Storage
|
/** Generated Interface for M_StorageOnHand
|
||||||
* @author iDempiere (generated)
|
* @author iDempiere (generated)
|
||||||
* @version Release 1.0a
|
* @version Release 1.0a
|
||||||
*/
|
*/
|
||||||
public interface I_M_Storage
|
public interface I_M_StorageOnHand
|
||||||
{
|
{
|
||||||
|
|
||||||
/** TableName=M_Storage */
|
/** TableName=M_StorageOnHand */
|
||||||
public static final String Table_Name = "M_Storage";
|
public static final String Table_Name = "M_StorageOnHand";
|
||||||
|
|
||||||
/** AD_Table_ID=250 */
|
/** AD_Table_ID=200026 */
|
||||||
public static final int Table_ID = 250;
|
public static final int Table_ID = 200026;
|
||||||
|
|
||||||
KeyNamePair Model = new KeyNamePair(Table_ID, Table_Name);
|
KeyNamePair Model = new KeyNamePair(Table_ID, Table_Name);
|
||||||
|
|
||||||
|
@ -149,14 +149,14 @@ public interface I_M_Storage
|
||||||
|
|
||||||
public org.compiere.model.I_M_Product getM_Product() throws RuntimeException;
|
public org.compiere.model.I_M_Product getM_Product() throws RuntimeException;
|
||||||
|
|
||||||
/** Column name M_Storage_UU */
|
/** Column name M_StorageOnHand_UU */
|
||||||
public static final String COLUMNNAME_M_Storage_UU = "M_Storage_UU";
|
public static final String COLUMNNAME_M_StorageOnHand_UU = "M_StorageOnHand_UU";
|
||||||
|
|
||||||
/** Set M_Storage_UU */
|
/** Set M_StorageOnHand_UU */
|
||||||
public void setM_Storage_UU (String M_Storage_UU);
|
public void setM_StorageOnHand_UU (String M_StorageOnHand_UU);
|
||||||
|
|
||||||
/** Get M_Storage_UU */
|
/** Get M_StorageOnHand_UU */
|
||||||
public String getM_Storage_UU();
|
public String getM_StorageOnHand_UU();
|
||||||
|
|
||||||
/** Column name QtyOnHand */
|
/** Column name QtyOnHand */
|
||||||
public static final String COLUMNNAME_QtyOnHand = "QtyOnHand";
|
public static final String COLUMNNAME_QtyOnHand = "QtyOnHand";
|
||||||
|
@ -171,32 +171,6 @@ public interface I_M_Storage
|
||||||
*/
|
*/
|
||||||
public BigDecimal getQtyOnHand();
|
public BigDecimal getQtyOnHand();
|
||||||
|
|
||||||
/** Column name QtyOrdered */
|
|
||||||
public static final String COLUMNNAME_QtyOrdered = "QtyOrdered";
|
|
||||||
|
|
||||||
/** Set Ordered Quantity.
|
|
||||||
* Ordered Quantity
|
|
||||||
*/
|
|
||||||
public void setQtyOrdered (BigDecimal QtyOrdered);
|
|
||||||
|
|
||||||
/** Get Ordered Quantity.
|
|
||||||
* Ordered Quantity
|
|
||||||
*/
|
|
||||||
public BigDecimal getQtyOrdered();
|
|
||||||
|
|
||||||
/** Column name QtyReserved */
|
|
||||||
public static final String COLUMNNAME_QtyReserved = "QtyReserved";
|
|
||||||
|
|
||||||
/** Set Reserved Quantity.
|
|
||||||
* Reserved Quantity
|
|
||||||
*/
|
|
||||||
public void setQtyReserved (BigDecimal QtyReserved);
|
|
||||||
|
|
||||||
/** Get Reserved Quantity.
|
|
||||||
* Reserved Quantity
|
|
||||||
*/
|
|
||||||
public BigDecimal getQtyReserved();
|
|
||||||
|
|
||||||
/** Column name Updated */
|
/** Column name Updated */
|
||||||
public static final String COLUMNNAME_Updated = "Updated";
|
public static final String COLUMNNAME_Updated = "Updated";
|
||||||
|
|
|
@ -0,0 +1,202 @@
|
||||||
|
/******************************************************************************
|
||||||
|
* Product: iDempiere ERP & CRM Smart Business Solution *
|
||||||
|
* Copyright (C) 1999-2012 ComPiere, Inc. All Rights Reserved. *
|
||||||
|
* This program is free software, you can redistribute it and/or modify it *
|
||||||
|
* under the terms version 2 of the GNU General Public License as published *
|
||||||
|
* by the Free Software Foundation. This program is distributed in the hope *
|
||||||
|
* that it will be useful, but WITHOUT ANY WARRANTY, without even the implied *
|
||||||
|
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||||
|
* See the GNU General Public License for more details. *
|
||||||
|
* You should have received a copy of the GNU General Public License along *
|
||||||
|
* with this program, if not, write to the Free Software Foundation, Inc., *
|
||||||
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
|
||||||
|
* For the text or an alternative of this public license, you may reach us *
|
||||||
|
* ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA *
|
||||||
|
* or via info@compiere.org or http://www.compiere.org/license.html *
|
||||||
|
*****************************************************************************/
|
||||||
|
package org.compiere.model;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import org.compiere.util.KeyNamePair;
|
||||||
|
|
||||||
|
/** Generated Interface for M_StorageReservation
|
||||||
|
* @author iDempiere (generated)
|
||||||
|
* @version Release 1.0a
|
||||||
|
*/
|
||||||
|
public interface I_M_StorageReservation
|
||||||
|
{
|
||||||
|
|
||||||
|
/** TableName=M_StorageReservation */
|
||||||
|
public static final String Table_Name = "M_StorageReservation";
|
||||||
|
|
||||||
|
/** AD_Table_ID=200027 */
|
||||||
|
public static final int Table_ID = 200027;
|
||||||
|
|
||||||
|
KeyNamePair Model = new KeyNamePair(Table_ID, Table_Name);
|
||||||
|
|
||||||
|
/** AccessLevel = 3 - Client - Org
|
||||||
|
*/
|
||||||
|
BigDecimal accessLevel = BigDecimal.valueOf(3);
|
||||||
|
|
||||||
|
/** Load Meta Data */
|
||||||
|
|
||||||
|
/** Column name AD_Client_ID */
|
||||||
|
public static final String COLUMNNAME_AD_Client_ID = "AD_Client_ID";
|
||||||
|
|
||||||
|
/** Get Client.
|
||||||
|
* Client/Tenant for this installation.
|
||||||
|
*/
|
||||||
|
public int getAD_Client_ID();
|
||||||
|
|
||||||
|
/** Column name AD_Org_ID */
|
||||||
|
public static final String COLUMNNAME_AD_Org_ID = "AD_Org_ID";
|
||||||
|
|
||||||
|
/** Set Organization.
|
||||||
|
* Organizational entity within client
|
||||||
|
*/
|
||||||
|
public void setAD_Org_ID (int AD_Org_ID);
|
||||||
|
|
||||||
|
/** Get Organization.
|
||||||
|
* Organizational entity within client
|
||||||
|
*/
|
||||||
|
public int getAD_Org_ID();
|
||||||
|
|
||||||
|
/** Column name Created */
|
||||||
|
public static final String COLUMNNAME_Created = "Created";
|
||||||
|
|
||||||
|
/** Get Created.
|
||||||
|
* Date this record was created
|
||||||
|
*/
|
||||||
|
public Timestamp getCreated();
|
||||||
|
|
||||||
|
/** Column name CreatedBy */
|
||||||
|
public static final String COLUMNNAME_CreatedBy = "CreatedBy";
|
||||||
|
|
||||||
|
/** Get Created By.
|
||||||
|
* User who created this records
|
||||||
|
*/
|
||||||
|
public int getCreatedBy();
|
||||||
|
|
||||||
|
/** Column name DateLastInventory */
|
||||||
|
public static final String COLUMNNAME_DateLastInventory = "DateLastInventory";
|
||||||
|
|
||||||
|
/** Set Date last inventory count.
|
||||||
|
* Date of Last Inventory Count
|
||||||
|
*/
|
||||||
|
public void setDateLastInventory (Timestamp DateLastInventory);
|
||||||
|
|
||||||
|
/** Get Date last inventory count.
|
||||||
|
* Date of Last Inventory Count
|
||||||
|
*/
|
||||||
|
public Timestamp getDateLastInventory();
|
||||||
|
|
||||||
|
/** Column name IsActive */
|
||||||
|
public static final String COLUMNNAME_IsActive = "IsActive";
|
||||||
|
|
||||||
|
/** Set Active.
|
||||||
|
* The record is active in the system
|
||||||
|
*/
|
||||||
|
public void setIsActive (boolean IsActive);
|
||||||
|
|
||||||
|
/** Get Active.
|
||||||
|
* The record is active in the system
|
||||||
|
*/
|
||||||
|
public boolean isActive();
|
||||||
|
|
||||||
|
/** Column name IsSOTrx */
|
||||||
|
public static final String COLUMNNAME_IsSOTrx = "IsSOTrx";
|
||||||
|
|
||||||
|
/** Set Sales Transaction.
|
||||||
|
* This is a Sales Transaction
|
||||||
|
*/
|
||||||
|
public void setIsSOTrx (boolean IsSOTrx);
|
||||||
|
|
||||||
|
/** Get Sales Transaction.
|
||||||
|
* This is a Sales Transaction
|
||||||
|
*/
|
||||||
|
public boolean isSOTrx();
|
||||||
|
|
||||||
|
/** Column name M_AttributeSetInstance_ID */
|
||||||
|
public static final String COLUMNNAME_M_AttributeSetInstance_ID = "M_AttributeSetInstance_ID";
|
||||||
|
|
||||||
|
/** Set Attribute Set Instance.
|
||||||
|
* Product Attribute Set Instance
|
||||||
|
*/
|
||||||
|
public void setM_AttributeSetInstance_ID (int M_AttributeSetInstance_ID);
|
||||||
|
|
||||||
|
/** Get Attribute Set Instance.
|
||||||
|
* Product Attribute Set Instance
|
||||||
|
*/
|
||||||
|
public int getM_AttributeSetInstance_ID();
|
||||||
|
|
||||||
|
public I_M_AttributeSetInstance getM_AttributeSetInstance() throws RuntimeException;
|
||||||
|
|
||||||
|
/** Column name M_Product_ID */
|
||||||
|
public static final String COLUMNNAME_M_Product_ID = "M_Product_ID";
|
||||||
|
|
||||||
|
/** Set Product.
|
||||||
|
* Product, Service, Item
|
||||||
|
*/
|
||||||
|
public void setM_Product_ID (int M_Product_ID);
|
||||||
|
|
||||||
|
/** Get Product.
|
||||||
|
* Product, Service, Item
|
||||||
|
*/
|
||||||
|
public int getM_Product_ID();
|
||||||
|
|
||||||
|
public org.compiere.model.I_M_Product getM_Product() throws RuntimeException;
|
||||||
|
|
||||||
|
/** Column name M_StorageReservation_UU */
|
||||||
|
public static final String COLUMNNAME_M_StorageReservation_UU = "M_StorageReservation_UU";
|
||||||
|
|
||||||
|
/** Set M_StorageReservation_UU */
|
||||||
|
public void setM_StorageReservation_UU (String M_StorageReservation_UU);
|
||||||
|
|
||||||
|
/** Get M_StorageReservation_UU */
|
||||||
|
public String getM_StorageReservation_UU();
|
||||||
|
|
||||||
|
/** Column name M_Warehouse_ID */
|
||||||
|
public static final String COLUMNNAME_M_Warehouse_ID = "M_Warehouse_ID";
|
||||||
|
|
||||||
|
/** Set Warehouse.
|
||||||
|
* Storage Warehouse and Service Point
|
||||||
|
*/
|
||||||
|
public void setM_Warehouse_ID (int M_Warehouse_ID);
|
||||||
|
|
||||||
|
/** Get Warehouse.
|
||||||
|
* Storage Warehouse and Service Point
|
||||||
|
*/
|
||||||
|
public int getM_Warehouse_ID();
|
||||||
|
|
||||||
|
public org.compiere.model.I_M_Warehouse getM_Warehouse() throws RuntimeException;
|
||||||
|
|
||||||
|
/** Column name Qty */
|
||||||
|
public static final String COLUMNNAME_Qty = "Qty";
|
||||||
|
|
||||||
|
/** Set Quantity.
|
||||||
|
* Quantity
|
||||||
|
*/
|
||||||
|
public void setQty (BigDecimal Qty);
|
||||||
|
|
||||||
|
/** Get Quantity.
|
||||||
|
* Quantity
|
||||||
|
*/
|
||||||
|
public BigDecimal getQty();
|
||||||
|
|
||||||
|
/** Column name Updated */
|
||||||
|
public static final String COLUMNNAME_Updated = "Updated";
|
||||||
|
|
||||||
|
/** Get Updated.
|
||||||
|
* Date this record was updated
|
||||||
|
*/
|
||||||
|
public Timestamp getUpdated();
|
||||||
|
|
||||||
|
/** Column name UpdatedBy */
|
||||||
|
public static final String COLUMNNAME_UpdatedBy = "UpdatedBy";
|
||||||
|
|
||||||
|
/** Get Updated By.
|
||||||
|
* User who updated this records
|
||||||
|
*/
|
||||||
|
public int getUpdatedBy();
|
||||||
|
}
|
|
@ -1002,7 +1002,7 @@ public class MCostDetail extends X_M_CostDetail
|
||||||
* Solution:
|
* Solution:
|
||||||
* Make sure the current qty is reflecting the actual qty in storage
|
* Make sure the current qty is reflecting the actual qty in storage
|
||||||
*/
|
*/
|
||||||
StringBuilder sql = new StringBuilder("SELECT COALESCE(SUM(QtyOnHand),0) FROM M_Storage")
|
StringBuilder sql = new StringBuilder("SELECT COALESCE(SUM(QtyOnHand),0) FROM M_StorageOnHand")
|
||||||
.append(" WHERE AD_Client_ID=").append(cost.getAD_Client_ID())
|
.append(" WHERE AD_Client_ID=").append(cost.getAD_Client_ID())
|
||||||
.append(" AND M_Product_ID=").append(cost.getM_Product_ID());
|
.append(" AND M_Product_ID=").append(cost.getM_Product_ID());
|
||||||
//Costing Level
|
//Costing Level
|
||||||
|
@ -1159,7 +1159,7 @@ public class MCostDetail extends X_M_CostDetail
|
||||||
MCostElement[] lce = MCostElement.getNonCostingMethods(this);
|
MCostElement[] lce = MCostElement.getNonCostingMethods(this);
|
||||||
if (lce.length > 0)
|
if (lce.length > 0)
|
||||||
{
|
{
|
||||||
StringBuilder sql = new StringBuilder("SELECT COALESCE(SUM(QtyOnHand),0) FROM M_Storage")
|
StringBuilder sql = new StringBuilder("SELECT COALESCE(SUM(QtyOnHand),0) FROM M_StorageOnHand")
|
||||||
.append(" WHERE AD_Client_ID=").append(cost.getAD_Client_ID())
|
.append(" WHERE AD_Client_ID=").append(cost.getAD_Client_ID())
|
||||||
.append(" AND M_Product_ID=").append(cost.getM_Product_ID());
|
.append(" AND M_Product_ID=").append(cost.getM_Product_ID());
|
||||||
//Costing Level
|
//Costing Level
|
||||||
|
|
|
@ -101,12 +101,12 @@ public class MInOut extends X_M_InOut implements DocAction
|
||||||
if (qty.signum() == 0)
|
if (qty.signum() == 0)
|
||||||
continue;
|
continue;
|
||||||
// Stock Info
|
// Stock Info
|
||||||
MStorage[] storages = null;
|
MStorageOnHand[] storages = null;
|
||||||
MProduct product = oLines[i].getProduct();
|
MProduct product = oLines[i].getProduct();
|
||||||
if (product != null && product.get_ID() != 0 && product.isStocked())
|
if (product != null && product.get_ID() != 0 && product.isStocked())
|
||||||
{
|
{
|
||||||
String MMPolicy = product.getMMPolicy();
|
String MMPolicy = product.getMMPolicy();
|
||||||
storages = MStorage.getWarehouse (order.getCtx(), order.getM_Warehouse_ID(),
|
storages = MStorageOnHand.getWarehouse (order.getCtx(), order.getM_Warehouse_ID(),
|
||||||
oLines[i].getM_Product_ID(), oLines[i].getM_AttributeSetInstance_ID(),
|
oLines[i].getM_Product_ID(), oLines[i].getM_AttributeSetInstance_ID(),
|
||||||
minGuaranteeDate, MClient.MMPOLICY_FiFo.equals(MMPolicy), true, 0, trxName);
|
minGuaranteeDate, MClient.MMPOLICY_FiFo.equals(MMPolicy), true, 0, trxName);
|
||||||
} else {
|
} else {
|
||||||
|
@ -1353,31 +1353,67 @@ public class MInOut extends X_M_InOut implements DocAction
|
||||||
|
|
||||||
|
|
||||||
// Update Storage - see also VMatch.createMatchRecord
|
// Update Storage - see also VMatch.createMatchRecord
|
||||||
if (!MStorage.add(getCtx(), getM_Warehouse_ID(),
|
if (!MStorageOnHand.add(getCtx(), getM_Warehouse_ID(),
|
||||||
sLine.getM_Locator_ID(),
|
sLine.getM_Locator_ID(),
|
||||||
sLine.getM_Product_ID(),
|
sLine.getM_Product_ID(),
|
||||||
ma.getM_AttributeSetInstance_ID(), reservationAttributeSetInstance_ID,
|
ma.getM_AttributeSetInstance_ID(), reservationAttributeSetInstance_ID,
|
||||||
QtyMA,
|
QtyMA,
|
||||||
sameWarehouse ? reservedDiff : Env.ZERO,
|
|
||||||
sameWarehouse ? orderedDiff : Env.ZERO,
|
|
||||||
get_TrxName()))
|
get_TrxName()))
|
||||||
{
|
{
|
||||||
String lastError = CLogger.retrieveErrorString("");
|
String lastError = CLogger.retrieveErrorString("");
|
||||||
m_processMsg = "Cannot correct Inventory (MA) - " + lastError;
|
m_processMsg = "Cannot correct Inventory OnHand (MA) - " + lastError;
|
||||||
return DocAction.STATUS_Invalid;
|
return DocAction.STATUS_Invalid;
|
||||||
}
|
}
|
||||||
|
if (sameWarehouse && reservedDiff.signum() != 0) {
|
||||||
|
if (!MStorageReservation.add(getCtx(), getM_Warehouse_ID(),
|
||||||
|
sLine.getM_Product_ID(),
|
||||||
|
ma.getM_AttributeSetInstance_ID(), reservationAttributeSetInstance_ID,
|
||||||
|
reservedDiff,
|
||||||
|
true,
|
||||||
|
get_TrxName()))
|
||||||
|
{
|
||||||
|
String lastError = CLogger.retrieveErrorString("");
|
||||||
|
m_processMsg = "Cannot correct Inventory Reserved (MA) - " + lastError;
|
||||||
|
return DocAction.STATUS_Invalid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (sameWarehouse && orderedDiff.signum() != 0) {
|
||||||
|
if (!MStorageReservation.add(getCtx(), getM_Warehouse_ID(),
|
||||||
|
sLine.getM_Product_ID(),
|
||||||
|
ma.getM_AttributeSetInstance_ID(), reservationAttributeSetInstance_ID,
|
||||||
|
orderedDiff,
|
||||||
|
false,
|
||||||
|
get_TrxName()))
|
||||||
|
{
|
||||||
|
String lastError = CLogger.retrieveErrorString("");
|
||||||
|
m_processMsg = "Cannot correct Inventory Ordered (MA) - " + lastError;
|
||||||
|
return DocAction.STATUS_Invalid;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (!sameWarehouse) {
|
if (!sameWarehouse) {
|
||||||
//correct qtyOrdered in warehouse of order
|
//correct qtyOrdered in warehouse of order
|
||||||
MWarehouse wh = MWarehouse.get(getCtx(), oLine.getM_Warehouse_ID());
|
MWarehouse wh = MWarehouse.get(getCtx(), oLine.getM_Warehouse_ID());
|
||||||
if (!MStorage.add(getCtx(), oLine.getM_Warehouse_ID(),
|
if (reservedDiff.signum() != 0) {
|
||||||
wh.getDefaultLocator().getM_Locator_ID(),
|
if (!MStorageReservation.add(getCtx(), oLine.getM_Warehouse_ID(),
|
||||||
sLine.getM_Product_ID(),
|
sLine.getM_Product_ID(),
|
||||||
ma.getM_AttributeSetInstance_ID(), reservationAttributeSetInstance_ID,
|
ma.getM_AttributeSetInstance_ID(), reservationAttributeSetInstance_ID,
|
||||||
Env.ZERO, reservedDiff, orderedDiff, get_TrxName()))
|
reservedDiff, true, get_TrxName()))
|
||||||
{
|
{
|
||||||
m_processMsg = "Cannot correct Inventory (MA) in order warehouse";
|
m_processMsg = "Cannot correct Inventory Reserved (MA) in order warehouse";
|
||||||
return DocAction.STATUS_Invalid;
|
return DocAction.STATUS_Invalid;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if (orderedDiff.signum() != 0) {
|
||||||
|
if (!MStorageReservation.add(getCtx(), oLine.getM_Warehouse_ID(),
|
||||||
|
sLine.getM_Product_ID(),
|
||||||
|
ma.getM_AttributeSetInstance_ID(), reservationAttributeSetInstance_ID,
|
||||||
|
orderedDiff, false, get_TrxName()))
|
||||||
|
{
|
||||||
|
m_processMsg = "Cannot correct Inventory Ordered (MA) in order warehouse";
|
||||||
|
return DocAction.STATUS_Invalid;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// Create Transaction
|
// Create Transaction
|
||||||
mtrx = new MTransaction (getCtx(), sLine.getAD_Org_ID(),
|
mtrx = new MTransaction (getCtx(), sLine.getAD_Org_ID(),
|
||||||
|
@ -1399,27 +1435,59 @@ public class MInOut extends X_M_InOut implements DocAction
|
||||||
BigDecimal orderedDiff = sameWarehouse ? QtyPO.negate(): Env.ZERO;
|
BigDecimal orderedDiff = sameWarehouse ? QtyPO.negate(): Env.ZERO;
|
||||||
|
|
||||||
// Fallback: Update Storage - see also VMatch.createMatchRecord
|
// Fallback: Update Storage - see also VMatch.createMatchRecord
|
||||||
if (!MStorage.add(getCtx(), getM_Warehouse_ID(),
|
if (!MStorageOnHand.add(getCtx(), getM_Warehouse_ID(),
|
||||||
sLine.getM_Locator_ID(),
|
sLine.getM_Locator_ID(),
|
||||||
sLine.getM_Product_ID(),
|
sLine.getM_Product_ID(),
|
||||||
sLine.getM_AttributeSetInstance_ID(), reservationAttributeSetInstance_ID,
|
sLine.getM_AttributeSetInstance_ID(), reservationAttributeSetInstance_ID,
|
||||||
Qty, reservedDiff, orderedDiff, get_TrxName()))
|
Qty, get_TrxName()))
|
||||||
{
|
{
|
||||||
m_processMsg = "Cannot correct Inventory";
|
String lastError = CLogger.retrieveErrorString("");
|
||||||
|
m_processMsg = "Cannot correct Inventory OnHand - " + lastError;
|
||||||
return DocAction.STATUS_Invalid;
|
return DocAction.STATUS_Invalid;
|
||||||
}
|
}
|
||||||
|
if (reservedDiff.signum() != 0) {
|
||||||
|
if (!MStorageReservation.add(getCtx(), getM_Warehouse_ID(),
|
||||||
|
sLine.getM_Product_ID(),
|
||||||
|
sLine.getM_AttributeSetInstance_ID(), reservationAttributeSetInstance_ID,
|
||||||
|
reservedDiff, true, get_TrxName()))
|
||||||
|
{
|
||||||
|
m_processMsg = "Cannot correct Inventory Reserved";
|
||||||
|
return DocAction.STATUS_Invalid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (orderedDiff.signum() != 0) {
|
||||||
|
if (!MStorageReservation.add(getCtx(), getM_Warehouse_ID(),
|
||||||
|
sLine.getM_Product_ID(),
|
||||||
|
sLine.getM_AttributeSetInstance_ID(), reservationAttributeSetInstance_ID,
|
||||||
|
orderedDiff, false, get_TrxName()))
|
||||||
|
{
|
||||||
|
m_processMsg = "Cannot correct Inventory Ordered";
|
||||||
|
return DocAction.STATUS_Invalid;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (!sameWarehouse) {
|
if (!sameWarehouse) {
|
||||||
//correct qtyOrdered in warehouse of order
|
//correct qtyOrdered in warehouse of order
|
||||||
MWarehouse wh = MWarehouse.get(getCtx(), oLine.getM_Warehouse_ID());
|
MWarehouse wh = MWarehouse.get(getCtx(), oLine.getM_Warehouse_ID());
|
||||||
if (!MStorage.add(getCtx(), oLine.getM_Warehouse_ID(),
|
if (QtySO.signum() != 0) {
|
||||||
wh.getDefaultLocator().getM_Locator_ID(),
|
if (!MStorageReservation.add(getCtx(), oLine.getM_Warehouse_ID(),
|
||||||
sLine.getM_Product_ID(),
|
sLine.getM_Product_ID(),
|
||||||
sLine.getM_AttributeSetInstance_ID(), reservationAttributeSetInstance_ID,
|
sLine.getM_AttributeSetInstance_ID(), reservationAttributeSetInstance_ID,
|
||||||
Env.ZERO, QtySO.negate(), QtyPO.negate(), get_TrxName()))
|
QtySO.negate(), true, get_TrxName()))
|
||||||
{
|
{
|
||||||
m_processMsg = "Cannot correct Inventory";
|
m_processMsg = "Cannot correct Inventory Reserved";
|
||||||
return DocAction.STATUS_Invalid;
|
return DocAction.STATUS_Invalid;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if (QtyPO.signum() != 0) {
|
||||||
|
if (!MStorageReservation.add(getCtx(), oLine.getM_Warehouse_ID(),
|
||||||
|
sLine.getM_Product_ID(),
|
||||||
|
sLine.getM_AttributeSetInstance_ID(), reservationAttributeSetInstance_ID,
|
||||||
|
QtyPO.negate(), false, get_TrxName()))
|
||||||
|
{
|
||||||
|
m_processMsg = "Cannot correct Inventory Ordered";
|
||||||
|
return DocAction.STATUS_Invalid;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// FallBack: Create Transaction
|
// FallBack: Create Transaction
|
||||||
mtrx = new MTransaction (getCtx(), sLine.getAD_Org_ID(),
|
mtrx = new MTransaction (getCtx(), sLine.getAD_Org_ID(),
|
||||||
|
@ -1775,9 +1843,9 @@ public class MInOut extends X_M_InOut implements DocAction
|
||||||
{
|
{
|
||||||
MAttributeSetInstance asi = null;
|
MAttributeSetInstance asi = null;
|
||||||
//auto balance negative on hand
|
//auto balance negative on hand
|
||||||
MStorage[] storages = MStorage.getWarehouse(getCtx(), getM_Warehouse_ID(), line.getM_Product_ID(), 0,
|
MStorageOnHand[] storages = MStorageOnHand.getWarehouse(getCtx(), getM_Warehouse_ID(), line.getM_Product_ID(), 0,
|
||||||
null, MClient.MMPOLICY_FiFo.equals(product.getMMPolicy()), false, line.getM_Locator_ID(), get_TrxName());
|
null, MClient.MMPOLICY_FiFo.equals(product.getMMPolicy()), false, line.getM_Locator_ID(), get_TrxName());
|
||||||
for (MStorage storage : storages)
|
for (MStorageOnHand storage : storages)
|
||||||
{
|
{
|
||||||
if (storage.getQtyOnHand().signum() < 0)
|
if (storage.getQtyOnHand().signum() < 0)
|
||||||
{
|
{
|
||||||
|
@ -1799,10 +1867,10 @@ public class MInOut extends X_M_InOut implements DocAction
|
||||||
{
|
{
|
||||||
String MMPolicy = product.getMMPolicy();
|
String MMPolicy = product.getMMPolicy();
|
||||||
Timestamp minGuaranteeDate = getMovementDate();
|
Timestamp minGuaranteeDate = getMovementDate();
|
||||||
MStorage[] storages = MStorage.getWarehouse(getCtx(), getM_Warehouse_ID(), line.getM_Product_ID(), line.getM_AttributeSetInstance_ID(),
|
MStorageOnHand[] storages = MStorageOnHand.getWarehouse(getCtx(), getM_Warehouse_ID(), line.getM_Product_ID(), line.getM_AttributeSetInstance_ID(),
|
||||||
minGuaranteeDate, MClient.MMPOLICY_FiFo.equals(MMPolicy), true, line.getM_Locator_ID(), get_TrxName());
|
minGuaranteeDate, MClient.MMPOLICY_FiFo.equals(MMPolicy), true, line.getM_Locator_ID(), get_TrxName());
|
||||||
BigDecimal qtyToDeliver = line.getMovementQty();
|
BigDecimal qtyToDeliver = line.getMovementQty();
|
||||||
for (MStorage storage: storages)
|
for (MStorageOnHand storage: storages)
|
||||||
{
|
{
|
||||||
if (storage.getQtyOnHand().compareTo(qtyToDeliver) >= 0)
|
if (storage.getQtyOnHand().compareTo(qtyToDeliver) >= 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -304,7 +304,7 @@ public class MInOutLine extends X_M_InOutLine
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get existing Location
|
// Get existing Location
|
||||||
int M_Locator_ID = MStorage.getM_Locator_ID (getM_Warehouse_ID(),
|
int M_Locator_ID = MStorageOnHand.getM_Locator_ID (getM_Warehouse_ID(),
|
||||||
getM_Product_ID(), getM_AttributeSetInstance_ID(),
|
getM_Product_ID(), getM_AttributeSetInstance_ID(),
|
||||||
Qty, get_TrxName());
|
Qty, get_TrxName());
|
||||||
// Get default Location
|
// Get default Location
|
||||||
|
|
|
@ -437,11 +437,11 @@ public class MInventory extends X_M_Inventory implements DocAction
|
||||||
log.fine("Diff=" + qtyDiff
|
log.fine("Diff=" + qtyDiff
|
||||||
+ " - Instance OnHand=" + QtyMA + "->" + QtyNew);
|
+ " - Instance OnHand=" + QtyMA + "->" + QtyNew);
|
||||||
|
|
||||||
if (!MStorage.add(getCtx(), getM_Warehouse_ID(),
|
if (!MStorageOnHand.add(getCtx(), getM_Warehouse_ID(),
|
||||||
line.getM_Locator_ID(),
|
line.getM_Locator_ID(),
|
||||||
line.getM_Product_ID(),
|
line.getM_Product_ID(),
|
||||||
ma.getM_AttributeSetInstance_ID(), 0,
|
ma.getM_AttributeSetInstance_ID(), 0,
|
||||||
QtyMA.negate(), Env.ZERO, Env.ZERO, get_TrxName()))
|
QtyMA.negate(), get_TrxName()))
|
||||||
{
|
{
|
||||||
String lastError = CLogger.retrieveErrorString("");
|
String lastError = CLogger.retrieveErrorString("");
|
||||||
m_processMsg = "Cannot correct Inventory (MA) - " + lastError;
|
m_processMsg = "Cannot correct Inventory (MA) - " + lastError;
|
||||||
|
@ -451,7 +451,7 @@ public class MInventory extends X_M_Inventory implements DocAction
|
||||||
// Only Update Date Last Inventory if is a Physical Inventory
|
// Only Update Date Last Inventory if is a Physical Inventory
|
||||||
if(line.getQtyInternalUse().compareTo(Env.ZERO) == 0)
|
if(line.getQtyInternalUse().compareTo(Env.ZERO) == 0)
|
||||||
{
|
{
|
||||||
MStorage storage = MStorage.get(getCtx(), line.getM_Locator_ID(),
|
MStorageOnHand storage = MStorageOnHand.get(getCtx(), line.getM_Locator_ID(),
|
||||||
line.getM_Product_ID(), ma.getM_AttributeSetInstance_ID(), get_TrxName());
|
line.getM_Product_ID(), ma.getM_AttributeSetInstance_ID(), get_TrxName());
|
||||||
storage.setDateLastInventory(getMovementDate());
|
storage.setDateLastInventory(getMovementDate());
|
||||||
if (!storage.save(get_TrxName()))
|
if (!storage.save(get_TrxName()))
|
||||||
|
@ -488,20 +488,21 @@ public class MInventory extends X_M_Inventory implements DocAction
|
||||||
if (mtrx == null)
|
if (mtrx == null)
|
||||||
{
|
{
|
||||||
//Fallback: Update Storage - see also VMatch.createMatchRecord
|
//Fallback: Update Storage - see also VMatch.createMatchRecord
|
||||||
if (!MStorage.add(getCtx(), getM_Warehouse_ID(),
|
if (!MStorageOnHand.add(getCtx(), getM_Warehouse_ID(),
|
||||||
line.getM_Locator_ID(),
|
line.getM_Locator_ID(),
|
||||||
line.getM_Product_ID(),
|
line.getM_Product_ID(),
|
||||||
line.getM_AttributeSetInstance_ID(), 0,
|
line.getM_AttributeSetInstance_ID(), 0,
|
||||||
qtyDiff, Env.ZERO, Env.ZERO, get_TrxName()))
|
qtyDiff,get_TrxName()))
|
||||||
{
|
{
|
||||||
m_processMsg = "Cannot correct Inventory (MA)";
|
String lastError = CLogger.retrieveErrorString("");
|
||||||
|
m_processMsg = "Cannot correct Inventory OnHand (MA) - " + lastError;
|
||||||
return DocAction.STATUS_Invalid;
|
return DocAction.STATUS_Invalid;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Only Update Date Last Inventory if is a Physical Inventory
|
// Only Update Date Last Inventory if is a Physical Inventory
|
||||||
if(line.getQtyInternalUse().compareTo(Env.ZERO) == 0)
|
if(line.getQtyInternalUse().compareTo(Env.ZERO) == 0)
|
||||||
{
|
{
|
||||||
MStorage storage = MStorage.get(getCtx(), line.getM_Locator_ID(),
|
MStorageOnHand storage = MStorageOnHand.get(getCtx(), line.getM_Locator_ID(),
|
||||||
line.getM_Product_ID(), line.getM_AttributeSetInstance_ID(), get_TrxName());
|
line.getM_Product_ID(), line.getM_AttributeSetInstance_ID(), get_TrxName());
|
||||||
|
|
||||||
storage.setDateLastInventory(getMovementDate());
|
storage.setDateLastInventory(getMovementDate());
|
||||||
|
@ -583,9 +584,9 @@ public class MInventory extends X_M_Inventory implements DocAction
|
||||||
{
|
{
|
||||||
MAttributeSetInstance asi = null;
|
MAttributeSetInstance asi = null;
|
||||||
//auto balance negative on hand
|
//auto balance negative on hand
|
||||||
MStorage[] storages = MStorage.getWarehouse(getCtx(), getM_Warehouse_ID(), line.getM_Product_ID(), 0,
|
MStorageOnHand[] storages = MStorageOnHand.getWarehouse(getCtx(), getM_Warehouse_ID(), line.getM_Product_ID(), 0,
|
||||||
null, MClient.MMPOLICY_FiFo.equals(product.getMMPolicy()), false, line.getM_Locator_ID(), get_TrxName());
|
null, MClient.MMPOLICY_FiFo.equals(product.getMMPolicy()), false, line.getM_Locator_ID(), get_TrxName());
|
||||||
for (MStorage storage : storages)
|
for (MStorageOnHand storage : storages)
|
||||||
{
|
{
|
||||||
if (storage.getQtyOnHand().signum() < 0)
|
if (storage.getQtyOnHand().signum() < 0)
|
||||||
{
|
{
|
||||||
|
@ -603,12 +604,12 @@ public class MInventory extends X_M_Inventory implements DocAction
|
||||||
else // Outgoing Trx
|
else // Outgoing Trx
|
||||||
{
|
{
|
||||||
String MMPolicy = product.getMMPolicy();
|
String MMPolicy = product.getMMPolicy();
|
||||||
MStorage[] storages = MStorage.getWarehouse(getCtx(), getM_Warehouse_ID(), line.getM_Product_ID(), 0,
|
MStorageOnHand[] storages = MStorageOnHand.getWarehouse(getCtx(), getM_Warehouse_ID(), line.getM_Product_ID(), 0,
|
||||||
null, MClient.MMPOLICY_FiFo.equals(MMPolicy), true, line.getM_Locator_ID(), get_TrxName());
|
null, MClient.MMPOLICY_FiFo.equals(MMPolicy), true, line.getM_Locator_ID(), get_TrxName());
|
||||||
|
|
||||||
BigDecimal qtyToDeliver = qtyDiff.negate();
|
BigDecimal qtyToDeliver = qtyDiff.negate();
|
||||||
|
|
||||||
for (MStorage storage: storages)
|
for (MStorageOnHand storage: storages)
|
||||||
{
|
{
|
||||||
if (storage.getQtyOnHand().compareTo(qtyToDeliver) >= 0)
|
if (storage.getQtyOnHand().compareTo(qtyToDeliver) >= 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -350,7 +350,7 @@ public class MInventoryLine extends X_M_InventoryLine
|
||||||
*/
|
*/
|
||||||
private void createMA()
|
private void createMA()
|
||||||
{
|
{
|
||||||
MStorage[] storages = MStorage.getAll(getCtx(), getM_Product_ID(),
|
MStorageOnHand[] storages = MStorageOnHand.getAll(getCtx(), getM_Product_ID(),
|
||||||
getM_Locator_ID(), get_TrxName());
|
getM_Locator_ID(), get_TrxName());
|
||||||
boolean allZeroASI = true;
|
boolean allZeroASI = true;
|
||||||
for (int i = 0; i < storages.length; i++)
|
for (int i = 0; i < storages.length; i++)
|
||||||
|
@ -368,7 +368,7 @@ public class MInventoryLine extends X_M_InventoryLine
|
||||||
BigDecimal sum = Env.ZERO;
|
BigDecimal sum = Env.ZERO;
|
||||||
for (int i = 0; i < storages.length; i++)
|
for (int i = 0; i < storages.length; i++)
|
||||||
{
|
{
|
||||||
MStorage storage = storages[i];
|
MStorageOnHand storage = storages[i];
|
||||||
if (storage.getQtyOnHand().signum() == 0)
|
if (storage.getQtyOnHand().signum() == 0)
|
||||||
continue;
|
continue;
|
||||||
if (ma != null
|
if (ma != null
|
||||||
|
|
|
@ -25,6 +25,7 @@ import java.util.Properties;
|
||||||
|
|
||||||
import org.compiere.process.DocAction;
|
import org.compiere.process.DocAction;
|
||||||
import org.compiere.process.DocumentEngine;
|
import org.compiere.process.DocumentEngine;
|
||||||
|
import org.compiere.util.CLogger;
|
||||||
import org.compiere.util.DB;
|
import org.compiere.util.DB;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
import org.compiere.util.Msg;
|
import org.compiere.util.Msg;
|
||||||
|
@ -399,13 +400,14 @@ public class MMovement extends X_M_Movement implements DocAction
|
||||||
//
|
//
|
||||||
MLocator locator = new MLocator (getCtx(), line.getM_Locator_ID(), get_TrxName());
|
MLocator locator = new MLocator (getCtx(), line.getM_Locator_ID(), get_TrxName());
|
||||||
//Update Storage
|
//Update Storage
|
||||||
if (!MStorage.add(getCtx(),locator.getM_Warehouse_ID(),
|
if (!MStorageOnHand.add(getCtx(),locator.getM_Warehouse_ID(),
|
||||||
line.getM_Locator_ID(),
|
line.getM_Locator_ID(),
|
||||||
line.getM_Product_ID(),
|
line.getM_Product_ID(),
|
||||||
ma.getM_AttributeSetInstance_ID(), 0,
|
ma.getM_AttributeSetInstance_ID(), 0,
|
||||||
ma.getMovementQty().negate(), Env.ZERO , Env.ZERO , get_TrxName()))
|
ma.getMovementQty().negate(), get_TrxName()))
|
||||||
{
|
{
|
||||||
m_processMsg = "Cannot correct Inventory (MA)";
|
String lastError = CLogger.retrieveErrorString("");
|
||||||
|
m_processMsg = "Cannot correct Inventory OnHand (MA) - " + lastError;
|
||||||
return DocAction.STATUS_Invalid;
|
return DocAction.STATUS_Invalid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -416,13 +418,14 @@ public class MMovement extends X_M_Movement implements DocAction
|
||||||
M_AttributeSetInstanceTo_ID = ma.getM_AttributeSetInstance_ID();
|
M_AttributeSetInstanceTo_ID = ma.getM_AttributeSetInstance_ID();
|
||||||
}
|
}
|
||||||
//Update Storage
|
//Update Storage
|
||||||
if (!MStorage.add(getCtx(),locator.getM_Warehouse_ID(),
|
if (!MStorageOnHand.add(getCtx(),locator.getM_Warehouse_ID(),
|
||||||
line.getM_LocatorTo_ID(),
|
line.getM_LocatorTo_ID(),
|
||||||
line.getM_Product_ID(),
|
line.getM_Product_ID(),
|
||||||
M_AttributeSetInstanceTo_ID, 0,
|
M_AttributeSetInstanceTo_ID, 0,
|
||||||
ma.getMovementQty(), Env.ZERO , Env.ZERO , get_TrxName()))
|
ma.getMovementQty(), get_TrxName()))
|
||||||
{
|
{
|
||||||
m_processMsg = "Cannot correct Inventory (MA)";
|
String lastError = CLogger.retrieveErrorString("");
|
||||||
|
m_processMsg = "Cannot correct Inventory OnHand (MA) - " + lastError;
|
||||||
return DocAction.STATUS_Invalid;
|
return DocAction.STATUS_Invalid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -455,24 +458,26 @@ public class MMovement extends X_M_Movement implements DocAction
|
||||||
{
|
{
|
||||||
MLocator locator = new MLocator (getCtx(), line.getM_Locator_ID(), get_TrxName());
|
MLocator locator = new MLocator (getCtx(), line.getM_Locator_ID(), get_TrxName());
|
||||||
//Update Storage
|
//Update Storage
|
||||||
if (!MStorage.add(getCtx(),locator.getM_Warehouse_ID(),
|
if (!MStorageOnHand.add(getCtx(),locator.getM_Warehouse_ID(),
|
||||||
line.getM_Locator_ID(),
|
line.getM_Locator_ID(),
|
||||||
line.getM_Product_ID(),
|
line.getM_Product_ID(),
|
||||||
line.getM_AttributeSetInstance_ID(), 0,
|
line.getM_AttributeSetInstance_ID(), 0,
|
||||||
line.getMovementQty().negate(), Env.ZERO , Env.ZERO , get_TrxName()))
|
line.getMovementQty().negate(), get_TrxName()))
|
||||||
{
|
{
|
||||||
m_processMsg = "Cannot correct Inventory (MA)";
|
String lastError = CLogger.retrieveErrorString("");
|
||||||
|
m_processMsg = "Cannot correct Inventory OnHand (MA) - " + lastError;
|
||||||
return DocAction.STATUS_Invalid;
|
return DocAction.STATUS_Invalid;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Update Storage
|
//Update Storage
|
||||||
if (!MStorage.add(getCtx(),locator.getM_Warehouse_ID(),
|
if (!MStorageOnHand.add(getCtx(),locator.getM_Warehouse_ID(),
|
||||||
line.getM_LocatorTo_ID(),
|
line.getM_LocatorTo_ID(),
|
||||||
line.getM_Product_ID(),
|
line.getM_Product_ID(),
|
||||||
line.getM_AttributeSetInstanceTo_ID(), 0,
|
line.getM_AttributeSetInstanceTo_ID(), 0,
|
||||||
line.getMovementQty(), Env.ZERO , Env.ZERO , get_TrxName()))
|
line.getMovementQty(), get_TrxName()))
|
||||||
{
|
{
|
||||||
m_processMsg = "Cannot correct Inventory (MA)";
|
String lastError = CLogger.retrieveErrorString("");
|
||||||
|
m_processMsg = "Cannot correct Inventory OnHand (MA) - " + lastError;
|
||||||
return DocAction.STATUS_Invalid;
|
return DocAction.STATUS_Invalid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -550,12 +555,12 @@ public class MMovement extends X_M_Movement implements DocAction
|
||||||
{
|
{
|
||||||
MProduct product = MProduct.get(getCtx(), line.getM_Product_ID());
|
MProduct product = MProduct.get(getCtx(), line.getM_Product_ID());
|
||||||
String MMPolicy = product.getMMPolicy();
|
String MMPolicy = product.getMMPolicy();
|
||||||
MStorage[] storages = MStorage.getWarehouse(getCtx(), 0, line.getM_Product_ID(), 0,
|
MStorageOnHand[] storages = MStorageOnHand.getWarehouse(getCtx(), 0, line.getM_Product_ID(), 0,
|
||||||
null, MClient.MMPOLICY_FiFo.equals(MMPolicy), true, line.getM_Locator_ID(), get_TrxName());
|
null, MClient.MMPOLICY_FiFo.equals(MMPolicy), true, line.getM_Locator_ID(), get_TrxName());
|
||||||
|
|
||||||
BigDecimal qtyToDeliver = line.getMovementQty();
|
BigDecimal qtyToDeliver = line.getMovementQty();
|
||||||
|
|
||||||
for (MStorage storage: storages)
|
for (MStorageOnHand storage: storages)
|
||||||
{
|
{
|
||||||
if (storage.getQtyOnHand().compareTo(qtyToDeliver) >= 0)
|
if (storage.getQtyOnHand().compareTo(qtyToDeliver) >= 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -137,9 +137,9 @@ public class MOrder extends X_C_Order implements DocAction
|
||||||
if (to.copyLinesFrom(from, counter, copyASI) == 0)
|
if (to.copyLinesFrom(from, counter, copyASI) == 0)
|
||||||
throw new IllegalStateException("Could not create Order Lines");
|
throw new IllegalStateException("Could not create Order Lines");
|
||||||
|
|
||||||
// don't copy linked PO/SO
|
// don't copy linked PO/SO
|
||||||
to.setLink_Order_ID(0);
|
to.setLink_Order_ID(0);
|
||||||
|
|
||||||
return to;
|
return to;
|
||||||
} // copyFrom
|
} // copyFrom
|
||||||
|
|
||||||
|
@ -543,8 +543,8 @@ public class MOrder extends X_C_Order implements DocAction
|
||||||
else
|
else
|
||||||
line.setRef_OrderLine_ID(0);
|
line.setRef_OrderLine_ID(0);
|
||||||
|
|
||||||
// don't copy linked lines
|
// don't copy linked lines
|
||||||
line.setLink_OrderLine_ID(0);
|
line.setLink_OrderLine_ID(0);
|
||||||
// Tax
|
// Tax
|
||||||
if (getC_BPartner_ID() != otherOrder.getC_BPartner_ID())
|
if (getC_BPartner_ID() != otherOrder.getC_BPartner_ID())
|
||||||
line.setTax(); // recalculate
|
line.setTax(); // recalculate
|
||||||
|
@ -1514,7 +1514,7 @@ public class MOrder extends X_C_Order implements DocAction
|
||||||
// Closing Binding Quotation
|
// Closing Binding Quotation
|
||||||
|| (MDocType.DOCSUBTYPESO_Quotation.equals(dt.getDocSubTypeSO())
|
|| (MDocType.DOCSUBTYPESO_Quotation.equals(dt.getDocSubTypeSO())
|
||||||
&& DOCACTION_Close.equals(getDocAction()))
|
&& DOCACTION_Close.equals(getDocAction()))
|
||||||
) // || isDropShip() )
|
) // || isDropShip() )
|
||||||
binding = false;
|
binding = false;
|
||||||
boolean isSOTrx = isSOTrx();
|
boolean isSOTrx = isSOTrx();
|
||||||
log.fine("Binding=" + binding + " - IsSOTrx=" + isSOTrx);
|
log.fine("Binding=" + binding + " - IsSOTrx=" + isSOTrx);
|
||||||
|
@ -1566,38 +1566,13 @@ public class MOrder extends X_C_Order implements DocAction
|
||||||
{
|
{
|
||||||
if (product.isStocked())
|
if (product.isStocked())
|
||||||
{
|
{
|
||||||
BigDecimal ordered = isSOTrx ? Env.ZERO : difference;
|
// Update Reservation Storage
|
||||||
BigDecimal reserved = isSOTrx ? difference : Env.ZERO;
|
if (!MStorageReservation.add(getCtx(), line.getM_Warehouse_ID(),
|
||||||
int M_Locator_ID = 0;
|
|
||||||
// Get Locator to reserve
|
|
||||||
if (line.getM_AttributeSetInstance_ID() != 0) // Get existing Location
|
|
||||||
M_Locator_ID = MStorage.getM_Locator_ID (line.getM_Warehouse_ID(),
|
|
||||||
line.getM_Product_ID(), line.getM_AttributeSetInstance_ID(),
|
|
||||||
ordered, get_TrxName());
|
|
||||||
// Get default Location
|
|
||||||
if (M_Locator_ID == 0)
|
|
||||||
{
|
|
||||||
// try to take default locator for product first
|
|
||||||
// if it is from the selected warehouse
|
|
||||||
MWarehouse wh = MWarehouse.get(getCtx(), line.getM_Warehouse_ID());
|
|
||||||
M_Locator_ID = product.getM_Locator_ID();
|
|
||||||
if (M_Locator_ID!=0) {
|
|
||||||
MLocator locator = new MLocator(getCtx(), product.getM_Locator_ID(), get_TrxName());
|
|
||||||
//product has default locator defined but is not from the order warehouse
|
|
||||||
if(locator.getM_Warehouse_ID()!=wh.get_ID()) {
|
|
||||||
M_Locator_ID = wh.getDefaultLocator().getM_Locator_ID();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
M_Locator_ID = wh.getDefaultLocator().getM_Locator_ID();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Update Storage
|
|
||||||
if (!MStorage.add(getCtx(), line.getM_Warehouse_ID(), M_Locator_ID,
|
|
||||||
line.getM_Product_ID(),
|
line.getM_Product_ID(),
|
||||||
line.getM_AttributeSetInstance_ID(), line.getM_AttributeSetInstance_ID(),
|
line.getM_AttributeSetInstance_ID(), line.getM_AttributeSetInstance_ID(),
|
||||||
Env.ZERO, reserved, ordered, get_TrxName()))
|
difference, isSOTrx, get_TrxName()))
|
||||||
return false;
|
return false;
|
||||||
} // stockec
|
} // stocked
|
||||||
// update line
|
// update line
|
||||||
line.setQtyReserved(line.getQtyReserved().add(difference));
|
line.setQtyReserved(line.getQtyReserved().add(difference));
|
||||||
if (!line.save(get_TrxName()))
|
if (!line.save(get_TrxName()))
|
||||||
|
@ -2036,7 +2011,7 @@ public class MOrder extends X_C_Order implements DocAction
|
||||||
// Qty = Ordered - Delivered
|
// Qty = Ordered - Delivered
|
||||||
BigDecimal MovementQty = oLine.getQtyOrdered().subtract(oLine.getQtyDelivered());
|
BigDecimal MovementQty = oLine.getQtyOrdered().subtract(oLine.getQtyDelivered());
|
||||||
// Location
|
// Location
|
||||||
int M_Locator_ID = MStorage.getM_Locator_ID (oLine.getM_Warehouse_ID(),
|
int M_Locator_ID = MStorageOnHand.getM_Locator_ID (oLine.getM_Warehouse_ID(),
|
||||||
oLine.getM_Product_ID(), oLine.getM_AttributeSetInstance_ID(),
|
oLine.getM_Product_ID(), oLine.getM_AttributeSetInstance_ID(),
|
||||||
MovementQty, get_TrxName());
|
MovementQty, get_TrxName());
|
||||||
if (M_Locator_ID == 0) // Get default Location
|
if (M_Locator_ID == 0) // Get default Location
|
||||||
|
|
|
@ -19,6 +19,7 @@ package org.compiere.model;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.Timestamp;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
@ -200,9 +201,9 @@ public class MOrderLine extends X_C_OrderLine
|
||||||
private boolean m_IsSOTrx = true;
|
private boolean m_IsSOTrx = true;
|
||||||
// Product Pricing
|
// Product Pricing
|
||||||
private MProductPricing m_productPrice = null;
|
private MProductPricing m_productPrice = null;
|
||||||
|
|
||||||
/** Tax */
|
/** Tax */
|
||||||
private MTax m_tax = null;
|
private MTax m_tax = null;
|
||||||
|
|
||||||
/** Cached Currency Precision */
|
/** Cached Currency Precision */
|
||||||
private Integer m_precision = null;
|
private Integer m_precision = null;
|
||||||
|
@ -418,17 +419,17 @@ public class MOrderLine extends X_C_OrderLine
|
||||||
if (m_charge == null && getC_Charge_ID() != 0)
|
if (m_charge == null && getC_Charge_ID() != 0)
|
||||||
m_charge = MCharge.get (getCtx(), getC_Charge_ID());
|
m_charge = MCharge.get (getCtx(), getC_Charge_ID());
|
||||||
return m_charge;
|
return m_charge;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Get Tax
|
* Get Tax
|
||||||
* @return tax
|
* @return tax
|
||||||
*/
|
*/
|
||||||
protected MTax getTax()
|
protected MTax getTax()
|
||||||
{
|
{
|
||||||
if (m_tax == null)
|
if (m_tax == null)
|
||||||
m_tax = MTax.get(getCtx(), getC_Tax_ID());
|
m_tax = MTax.get(getCtx(), getC_Tax_ID());
|
||||||
return m_tax;
|
return m_tax;
|
||||||
} // getTax
|
} // getTax
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Currency Precision from Currency
|
* Get Currency Precision from Currency
|
||||||
|
@ -873,9 +874,9 @@ public class MOrderLine extends X_C_OrderLine
|
||||||
// Max
|
// Max
|
||||||
if (isInstance)
|
if (isInstance)
|
||||||
{
|
{
|
||||||
MStorage[] storages = MStorage.getWarehouse(getCtx(),
|
MStorageOnHand[] storages = MStorageOnHand.getWarehouse(getCtx(),
|
||||||
getM_Warehouse_ID(), getM_Product_ID(), getM_AttributeSetInstance_ID(),
|
getM_Warehouse_ID(), getM_Product_ID(), getM_AttributeSetInstance_ID(),
|
||||||
M_AttributeSet_ID, false, null, true, get_TrxName());
|
null, true, false, 0, get_TrxName());
|
||||||
BigDecimal qty = Env.ZERO;
|
BigDecimal qty = Env.ZERO;
|
||||||
for (int i = 0; i < storages.length; i++)
|
for (int i = 0; i < storages.length; i++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -26,6 +26,7 @@ import org.compiere.util.CCache;
|
||||||
import org.compiere.util.DB;
|
import org.compiere.util.DB;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
import org.compiere.util.Msg;
|
import org.compiere.util.Msg;
|
||||||
|
import org.compiere.util.Util;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Product Model
|
* Product Model
|
||||||
|
@ -571,24 +572,8 @@ public class MProduct extends X_M_Product
|
||||||
|| (is_ValueChanged("ProductType") // from Item
|
|| (is_ValueChanged("ProductType") // from Item
|
||||||
&& PRODUCTTYPE_Item.equals(get_ValueOld("ProductType")))))
|
&& PRODUCTTYPE_Item.equals(get_ValueOld("ProductType")))))
|
||||||
{
|
{
|
||||||
MStorage[] storages = MStorage.getOfProduct(getCtx(), get_ID(), get_TrxName());
|
String errMsg = verifyStorage();
|
||||||
BigDecimal OnHand = Env.ZERO;
|
if (! Util.isEmpty(errMsg))
|
||||||
BigDecimal Ordered = Env.ZERO;
|
|
||||||
BigDecimal Reserved = Env.ZERO;
|
|
||||||
for (int i = 0; i < storages.length; i++)
|
|
||||||
{
|
|
||||||
OnHand = OnHand.add(storages[i].getQtyOnHand());
|
|
||||||
Ordered = Ordered.add(storages[i].getQtyOrdered());
|
|
||||||
Reserved = Reserved.add(storages[i].getQtyReserved());
|
|
||||||
}
|
|
||||||
String errMsg = "";
|
|
||||||
if (OnHand.signum() != 0)
|
|
||||||
errMsg = "@QtyOnHand@ = " + OnHand;
|
|
||||||
if (Ordered.signum() != 0)
|
|
||||||
errMsg += " - @QtyOrdered@ = " + Ordered;
|
|
||||||
if (Reserved.signum() != 0)
|
|
||||||
errMsg += " - @QtyReserved@" + Reserved;
|
|
||||||
if (errMsg.length() > 0)
|
|
||||||
{
|
{
|
||||||
log.saveError("Error", Msg.parseTranslation(getCtx(), errMsg));
|
log.saveError("Error", Msg.parseTranslation(getCtx(), errMsg));
|
||||||
return false;
|
return false;
|
||||||
|
@ -629,6 +614,32 @@ public class MProduct extends X_M_Product
|
||||||
return true;
|
return true;
|
||||||
} // beforeSave
|
} // beforeSave
|
||||||
|
|
||||||
|
private String verifyStorage() {
|
||||||
|
BigDecimal qtyOnHand = Env.ZERO;
|
||||||
|
BigDecimal qtyOrdered = Env.ZERO;
|
||||||
|
BigDecimal qtyReserved = Env.ZERO;
|
||||||
|
for (MStorageOnHand ohs: MStorageOnHand.getOfProduct(getCtx(), get_ID(), get_TrxName()))
|
||||||
|
{
|
||||||
|
qtyOnHand = qtyOnHand.add(ohs.getQtyOnHand());
|
||||||
|
}
|
||||||
|
for (MStorageReservation rs : MStorageReservation.getOfProduct(getCtx(), get_ID(), get_TrxName()))
|
||||||
|
{
|
||||||
|
if (rs.isSOTrx())
|
||||||
|
qtyReserved = qtyReserved.add(rs.getQty());
|
||||||
|
else
|
||||||
|
qtyOrdered = qtyOrdered.add(rs.getQty());
|
||||||
|
}
|
||||||
|
|
||||||
|
StringBuilder errMsg = new StringBuilder();
|
||||||
|
if (qtyOnHand.signum() != 0)
|
||||||
|
errMsg.append("@QtyOnHand@ = ").append(qtyOnHand);
|
||||||
|
if (qtyOrdered.signum() != 0)
|
||||||
|
errMsg.append(" - @QtyOrdered@ = ").append(qtyOrdered);
|
||||||
|
if (qtyReserved.signum() != 0)
|
||||||
|
errMsg.append(" - @QtyReserved@").append(qtyReserved);
|
||||||
|
return errMsg.toString();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* HasInventoryOrCost
|
* HasInventoryOrCost
|
||||||
* @return true if it has Inventory or Cost
|
* @return true if it has Inventory or Cost
|
||||||
|
@ -710,24 +721,8 @@ public class MProduct extends X_M_Product
|
||||||
// Check Storage
|
// Check Storage
|
||||||
if (isStocked() || PRODUCTTYPE_Item.equals(getProductType()))
|
if (isStocked() || PRODUCTTYPE_Item.equals(getProductType()))
|
||||||
{
|
{
|
||||||
MStorage[] storages = MStorage.getOfProduct(getCtx(), get_ID(), get_TrxName());
|
String errMsg = verifyStorage();
|
||||||
BigDecimal OnHand = Env.ZERO;
|
if (! Util.isEmpty(errMsg))
|
||||||
BigDecimal Ordered = Env.ZERO;
|
|
||||||
BigDecimal Reserved = Env.ZERO;
|
|
||||||
for (int i = 0; i < storages.length; i++)
|
|
||||||
{
|
|
||||||
OnHand = OnHand.add(storages[i].getQtyOnHand());
|
|
||||||
Ordered = OnHand.add(storages[i].getQtyOrdered());
|
|
||||||
Reserved = OnHand.add(storages[i].getQtyReserved());
|
|
||||||
}
|
|
||||||
String errMsg = "";
|
|
||||||
if (OnHand.signum() != 0)
|
|
||||||
errMsg = "@QtyOnHand@ = " + OnHand;
|
|
||||||
if (Ordered.signum() != 0)
|
|
||||||
errMsg += " - @QtyOrdered@ = " + Ordered;
|
|
||||||
if (Reserved.signum() != 0)
|
|
||||||
errMsg += " - @QtyReserved@" + Reserved;
|
|
||||||
if (errMsg.length() > 0)
|
|
||||||
{
|
{
|
||||||
log.saveError("Error", Msg.parseTranslation(getCtx(), errMsg));
|
log.saveError("Error", Msg.parseTranslation(getCtx(), errMsg));
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -186,7 +186,7 @@ public class MProduction extends X_M_Production {
|
||||||
{
|
{
|
||||||
|
|
||||||
// BOM stock info
|
// BOM stock info
|
||||||
MStorage[] storages = null;
|
MStorageOnHand[] storages = null;
|
||||||
MProduct usedProduct = MProduct.get(getCtx(), BOMProduct_ID);
|
MProduct usedProduct = MProduct.get(getCtx(), BOMProduct_ID);
|
||||||
defaultLocator = usedProduct.getM_Locator_ID();
|
defaultLocator = usedProduct.getM_Locator_ID();
|
||||||
if ( defaultLocator == 0 )
|
if ( defaultLocator == 0 )
|
||||||
|
@ -203,7 +203,7 @@ public class MProduction extends X_M_Production {
|
||||||
MMPolicy = client.getMMPolicy();
|
MMPolicy = client.getMMPolicy();
|
||||||
}
|
}
|
||||||
|
|
||||||
storages = MStorage.getWarehouse(getCtx(), M_Warehouse_ID, BOMProduct_ID, 0, null,
|
storages = MStorageOnHand.getWarehouse(getCtx(), M_Warehouse_ID, BOMProduct_ID, 0, null,
|
||||||
MProductCategory.MMPOLICY_FiFo.equals(MMPolicy), true, 0, get_TrxName());
|
MProductCategory.MMPOLICY_FiFo.equals(MMPolicy), true, 0, get_TrxName());
|
||||||
|
|
||||||
MProductionLine BOMLine = null;
|
MProductionLine BOMLine = null;
|
||||||
|
|
|
@ -104,7 +104,7 @@ public class MProductionLine extends X_M_ProductionLine {
|
||||||
log.log(Level.SEVERE, "Could not save transaction for " + toString());
|
log.log(Level.SEVERE, "Could not save transaction for " + toString());
|
||||||
errorString.append("Could not save transaction for " + toString() + "\n");
|
errorString.append("Could not save transaction for " + toString() + "\n");
|
||||||
}
|
}
|
||||||
MStorage storage = MStorage.getCreate(getCtx(), getM_Locator_ID(),
|
MStorageOnHand storage = MStorageOnHand.getCreate(getCtx(), getM_Locator_ID(),
|
||||||
getM_Product_ID(), asi.get_ID(), get_TrxName());
|
getM_Product_ID(), asi.get_ID(), get_TrxName());
|
||||||
storage.changeQtyOnHand(getMovementQty(), true);
|
storage.changeQtyOnHand(getMovementQty(), true);
|
||||||
if ( !storage.save(get_TrxName()) ) {
|
if ( !storage.save(get_TrxName()) ) {
|
||||||
|
@ -117,7 +117,7 @@ public class MProductionLine extends X_M_ProductionLine {
|
||||||
}
|
}
|
||||||
|
|
||||||
// create transactions and update stock used in production
|
// create transactions and update stock used in production
|
||||||
MStorage[] storages = MStorage.getAll( getCtx(), getM_Product_ID(),
|
MStorageOnHand[] storages = MStorageOnHand.getAll( getCtx(), getM_Product_ID(),
|
||||||
getM_Locator_ID(), get_TrxName());
|
getM_Locator_ID(), get_TrxName());
|
||||||
|
|
||||||
MProductionLineMA lineMA = null;
|
MProductionLineMA lineMA = null;
|
||||||
|
@ -192,10 +192,10 @@ public class MProductionLine extends X_M_ProductionLine {
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MStorage storage = MStorage.get(Env.getCtx(), getM_Locator_ID(), getM_Product_ID(), 0, get_TrxName());
|
MStorageOnHand storage = MStorageOnHand.get(Env.getCtx(), getM_Locator_ID(), getM_Product_ID(), 0, get_TrxName());
|
||||||
if (storage == null)
|
if (storage == null)
|
||||||
{
|
{
|
||||||
storage = new MStorage(Env.getCtx(), 0, get_TrxName());
|
storage = new MStorageOnHand(Env.getCtx(), 0, get_TrxName());
|
||||||
storage.setM_Locator_ID(getM_Locator_ID());
|
storage.setM_Locator_ID(getM_Locator_ID());
|
||||||
storage.setM_Product_ID(getM_Product_ID());
|
storage.setM_Product_ID(getM_Product_ID());
|
||||||
storage.setM_AttributeSetInstance_ID(0);
|
storage.setM_AttributeSetInstance_ID(0);
|
||||||
|
|
|
@ -163,9 +163,9 @@ public class MProjectIssue extends X_C_ProjectIssue
|
||||||
mTrx.setC_ProjectIssue_ID(getC_ProjectIssue_ID());
|
mTrx.setC_ProjectIssue_ID(getC_ProjectIssue_ID());
|
||||||
//
|
//
|
||||||
MLocator loc = MLocator.get(getCtx(), getM_Locator_ID());
|
MLocator loc = MLocator.get(getCtx(), getM_Locator_ID());
|
||||||
if (MStorage.add(getCtx(), loc.getM_Warehouse_ID(), getM_Locator_ID(),
|
if (MStorageOnHand.add(getCtx(), loc.getM_Warehouse_ID(), getM_Locator_ID(),
|
||||||
getM_Product_ID(), getM_AttributeSetInstance_ID(), getM_AttributeSetInstance_ID(),
|
getM_Product_ID(), getM_AttributeSetInstance_ID(), getM_AttributeSetInstance_ID(),
|
||||||
getMovementQty().negate(), null, null, get_TrxName()))
|
getMovementQty().negate(), get_TrxName()))
|
||||||
{
|
{
|
||||||
if (mTrx.save(get_TrxName()))
|
if (mTrx.save(get_TrxName()))
|
||||||
{
|
{
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,318 @@
|
||||||
|
/******************************************************************************
|
||||||
|
* Product: iDempiere ERP & CRM Smart Business Solution *
|
||||||
|
* Copyright (C) 1999-2012 iDempiere All Rights Reserved. *
|
||||||
|
* This program is free software; you can redistribute it and/or modify it *
|
||||||
|
* under the terms version 2 of the GNU General Public License as published *
|
||||||
|
* by the Free Software Foundation. This program is distributed in the hope *
|
||||||
|
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied *
|
||||||
|
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||||
|
* See the GNU General Public License for more details. *
|
||||||
|
* You should have received a copy of the GNU General Public License along *
|
||||||
|
* with this program; if not, write to the Free Software Foundation, Inc., *
|
||||||
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
|
||||||
|
*****************************************************************************/
|
||||||
|
package org.compiere.model;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Properties;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
import org.compiere.util.CLogger;
|
||||||
|
import org.compiere.util.DB;
|
||||||
|
import org.compiere.util.Env;
|
||||||
|
|
||||||
|
public class MStorageReservation extends X_M_StorageReservation {
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = -8646802850122507899L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Storage Info
|
||||||
|
* @param ctx context
|
||||||
|
* @param M_Warehouse_ID warehouse
|
||||||
|
* @param M_Product_ID product
|
||||||
|
* @param M_AttributeSetInstance_ID instance
|
||||||
|
* @param isSOTrx
|
||||||
|
* @param trxName transaction
|
||||||
|
* @return existing or null
|
||||||
|
*/
|
||||||
|
public static MStorageReservation get (Properties ctx, int M_Warehouse_ID,
|
||||||
|
int M_Product_ID, int M_AttributeSetInstance_ID, boolean isSOTrx, String trxName)
|
||||||
|
{
|
||||||
|
MStorageReservation retValue = null;
|
||||||
|
String sql = "SELECT * FROM M_StorageReservation "
|
||||||
|
+ "WHERE M_Warehouse_ID=? AND M_Product_ID=? AND IsSOTrx=? AND ";
|
||||||
|
if (M_AttributeSetInstance_ID == 0)
|
||||||
|
sql += "(M_AttributeSetInstance_ID=? OR M_AttributeSetInstance_ID IS NULL)";
|
||||||
|
else
|
||||||
|
sql += "M_AttributeSetInstance_ID=?";
|
||||||
|
PreparedStatement pstmt = null;
|
||||||
|
ResultSet rs = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
pstmt = DB.prepareStatement (sql, trxName);
|
||||||
|
pstmt.setInt (1, M_Warehouse_ID);
|
||||||
|
pstmt.setInt (2, M_Product_ID);
|
||||||
|
pstmt.setString (3, isSOTrx ? "Y" : "N");
|
||||||
|
pstmt.setInt (4, M_AttributeSetInstance_ID);
|
||||||
|
rs = pstmt.executeQuery ();
|
||||||
|
if (rs.next ())
|
||||||
|
retValue = new MStorageReservation (ctx, rs, trxName);
|
||||||
|
}
|
||||||
|
catch (SQLException ex)
|
||||||
|
{
|
||||||
|
s_log.log(Level.SEVERE, sql, ex);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
DB.close(rs, pstmt);
|
||||||
|
rs = null; pstmt = null;
|
||||||
|
}
|
||||||
|
if (retValue == null)
|
||||||
|
s_log.fine("Not Found - M_Warehouse_ID=" + M_Warehouse_ID
|
||||||
|
+ ", M_Product_ID=" + M_Product_ID + ", M_AttributeSetInstance_ID=" + M_AttributeSetInstance_ID + ", IsSOTrx=" + isSOTrx);
|
||||||
|
else
|
||||||
|
s_log.fine("M_Warehouse_ID=" + M_Warehouse_ID
|
||||||
|
+ ", M_Product_ID=" + M_Product_ID + ", M_AttributeSetInstance_ID=" + M_AttributeSetInstance_ID + ", IsSOTrx=" + isSOTrx);
|
||||||
|
return retValue;
|
||||||
|
} // get
|
||||||
|
|
||||||
|
private static CLogger s_log = CLogger.getCLogger(MStorageReservation.class);
|
||||||
|
|
||||||
|
public MStorageReservation(Properties ctx, int M_StorageReservation_ID,
|
||||||
|
String trxName) {
|
||||||
|
super(ctx, M_StorageReservation_ID, trxName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public MStorageReservation(Properties ctx, ResultSet rs,
|
||||||
|
String trxName) {
|
||||||
|
super(ctx, rs, trxName);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Full NEW Constructor
|
||||||
|
* @param warehouse (parent) warehouse
|
||||||
|
* @param M_Product_ID product
|
||||||
|
* @param M_AttributeSetInstance_ID attribute
|
||||||
|
* @param isSOTrx
|
||||||
|
*/
|
||||||
|
private MStorageReservation (MWarehouse warehouse, int M_Product_ID, int M_AttributeSetInstance_ID, boolean isSOTrx)
|
||||||
|
{
|
||||||
|
this (warehouse.getCtx(), 0, warehouse.get_TrxName());
|
||||||
|
setClientOrg(warehouse);
|
||||||
|
setM_Warehouse_ID(warehouse.getM_Warehouse_ID());
|
||||||
|
setM_Product_ID (M_Product_ID);
|
||||||
|
setM_AttributeSetInstance_ID (M_AttributeSetInstance_ID);
|
||||||
|
setIsSOTrx(isSOTrx);
|
||||||
|
setQty(Env.ZERO);
|
||||||
|
} // MStorageReservation
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Storage Info for Product on specified Warehouse
|
||||||
|
* @param ctx
|
||||||
|
* @param m_Warehouse_ID
|
||||||
|
* @param m_Product_ID
|
||||||
|
* @param i
|
||||||
|
* @param get_TrxName
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static MStorageReservation[] get(Properties ctx, int m_Warehouse_ID,
|
||||||
|
int m_Product_ID, int i, String trxName) {
|
||||||
|
String sqlWhere = "M_Product_ID=? AND M_Warehouse_ID=?";
|
||||||
|
|
||||||
|
List<MStorageReservation> list = new Query(ctx, MStorageReservation.Table_Name, sqlWhere, trxName)
|
||||||
|
.setParameters(m_Product_ID, m_Warehouse_ID)
|
||||||
|
.list();
|
||||||
|
|
||||||
|
MStorageReservation[] retValue = new MStorageReservation[list.size()];
|
||||||
|
list.toArray(retValue);
|
||||||
|
return retValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Storage Info for Product across warehouses
|
||||||
|
* @param ctx context
|
||||||
|
* @param M_Product_ID product
|
||||||
|
* @param trxName transaction
|
||||||
|
* @return existing or null
|
||||||
|
*/
|
||||||
|
public static MStorageReservation[] getOfProduct (Properties ctx, int M_Product_ID, String trxName)
|
||||||
|
{
|
||||||
|
String sqlWhere = "M_Product_ID=?";
|
||||||
|
|
||||||
|
List<MStorageReservation> list = new Query(ctx, MStorageReservation.Table_Name, sqlWhere, trxName)
|
||||||
|
.setParameters(M_Product_ID)
|
||||||
|
.list();
|
||||||
|
|
||||||
|
MStorageReservation[] retValue = new MStorageReservation[list.size()];
|
||||||
|
list.toArray(retValue);
|
||||||
|
return retValue;
|
||||||
|
|
||||||
|
} // getOfProduct
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Quantity Reserved of Warehouse
|
||||||
|
* @param M_Product_ID
|
||||||
|
* @param M_Warehouse_ID
|
||||||
|
* @param M_AttributeSetInstance_ID
|
||||||
|
* @param isSOTrx - true to get reserved, false to get ordered
|
||||||
|
* @param trxName
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private static BigDecimal getQty(int M_Product_ID, int M_Warehouse_ID, int M_AttributeSetInstance_ID, boolean isSOTrx, String trxName) {
|
||||||
|
ArrayList<Object> params = new ArrayList<Object>();
|
||||||
|
StringBuffer sql = new StringBuffer();
|
||||||
|
sql.append(" SELECT SUM(Qty) FROM M_StorageReservation sr")
|
||||||
|
.append(" WHERE sr.M_Product_ID=? AND sr.M_Warehouse_ID=?")
|
||||||
|
.append(" AND sr.IsSOTrx=?");
|
||||||
|
|
||||||
|
params.add(M_Product_ID);
|
||||||
|
params.add(M_Warehouse_ID);
|
||||||
|
params.add(isSOTrx ? "Y" : "N");
|
||||||
|
|
||||||
|
// With ASI
|
||||||
|
if (M_AttributeSetInstance_ID != 0) {
|
||||||
|
sql.append(" AND M_AttributeSetInstance_ID=?");
|
||||||
|
params.add(M_AttributeSetInstance_ID);
|
||||||
|
}
|
||||||
|
|
||||||
|
BigDecimal qty = DB.getSQLValueBD(trxName, sql.toString(), params);
|
||||||
|
if (qty==null)
|
||||||
|
qty = Env.ZERO;
|
||||||
|
|
||||||
|
return qty;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Available Qty.
|
||||||
|
* The call is accurate only if there is a storage record
|
||||||
|
* and assumes that the product is stocked
|
||||||
|
* @param M_Warehouse_ID wh
|
||||||
|
* @param M_Product_ID product
|
||||||
|
* @param M_AttributeSetInstance_ID masi
|
||||||
|
* @param trxName transaction
|
||||||
|
* @return qty available (QtyOnHand-QtyReserved) or null
|
||||||
|
*/
|
||||||
|
public static BigDecimal getQtyAvailable (int M_Warehouse_ID,
|
||||||
|
int M_Product_ID, int M_AttributeSetInstance_ID, String trxName)
|
||||||
|
{
|
||||||
|
BigDecimal qtyOnHand = MStorageOnHand.getQtyOnHand(M_Product_ID, M_Warehouse_ID, M_AttributeSetInstance_ID, trxName);
|
||||||
|
BigDecimal qtyReserved = MStorageReservation.getQty(M_Product_ID, M_Warehouse_ID, M_AttributeSetInstance_ID, true, trxName);
|
||||||
|
BigDecimal retValue = qtyOnHand.subtract(qtyReserved);
|
||||||
|
return retValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update Storage Info add.
|
||||||
|
* Called from MProjectIssue
|
||||||
|
* @param ctx context
|
||||||
|
* @param M_Warehouse_ID warehouse
|
||||||
|
* @param M_Product_ID product
|
||||||
|
* @param M_AttributeSetInstance_ID AS Instance
|
||||||
|
* @param reservationAttributeSetInstance_ID reservation AS Instance
|
||||||
|
* @param diffQty add
|
||||||
|
* @param isSOTrx
|
||||||
|
* @param trxName transaction
|
||||||
|
* @return true if updated
|
||||||
|
*/
|
||||||
|
public static boolean add (Properties ctx, int M_Warehouse_ID,
|
||||||
|
int M_Product_ID, int M_AttributeSetInstance_ID, int reservationAttributeSetInstance_ID,
|
||||||
|
BigDecimal diffQty, boolean isSOTrx, String trxName)
|
||||||
|
{
|
||||||
|
/* Do NOT use FIFO ASI for reservation */
|
||||||
|
MProduct prd = new MProduct(ctx, M_Product_ID, trxName);
|
||||||
|
if (prd.getM_AttributeSet_ID() == 0 || ! prd.getM_AttributeSet().isInstanceAttribute()) {
|
||||||
|
// Product doesn't manage attribute set, always reserved with 0
|
||||||
|
reservationAttributeSetInstance_ID = 0;
|
||||||
|
M_AttributeSetInstance_ID = 0;
|
||||||
|
}
|
||||||
|
//
|
||||||
|
|
||||||
|
MStorageReservation storage = null;
|
||||||
|
StringBuffer diffText = new StringBuffer("(");
|
||||||
|
|
||||||
|
// Get Storage
|
||||||
|
if (storage == null)
|
||||||
|
storage = getCreate (ctx, M_Warehouse_ID,
|
||||||
|
M_Product_ID, M_AttributeSetInstance_ID, isSOTrx, trxName);
|
||||||
|
// Verify
|
||||||
|
if (storage.getM_Warehouse_ID() != M_Warehouse_ID
|
||||||
|
&& storage.getM_Product_ID() != M_Product_ID
|
||||||
|
&& storage.getM_AttributeSetInstance_ID() != M_AttributeSetInstance_ID)
|
||||||
|
{
|
||||||
|
s_log.severe ("No Storage found - M_Warehouse_ID=" + M_Warehouse_ID
|
||||||
|
+ ",M_Product_ID=" + M_Product_ID + ",ASI=" + M_AttributeSetInstance_ID);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
MStorageReservation storage0 = null;
|
||||||
|
if (M_AttributeSetInstance_ID != reservationAttributeSetInstance_ID)
|
||||||
|
{
|
||||||
|
storage0 = get(ctx, M_Warehouse_ID,
|
||||||
|
M_Product_ID, reservationAttributeSetInstance_ID, isSOTrx, trxName);
|
||||||
|
if (storage0 == null) // create if not existing - should not happen
|
||||||
|
{
|
||||||
|
storage0 = getCreate (ctx, M_Warehouse_ID,
|
||||||
|
M_Product_ID, reservationAttributeSetInstance_ID, isSOTrx, trxName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
boolean changed = false;
|
||||||
|
if (diffQty != null && diffQty.signum() != 0)
|
||||||
|
{
|
||||||
|
if (storage0 == null)
|
||||||
|
storage.setQty (storage.getQty().add(diffQty));
|
||||||
|
else
|
||||||
|
storage0.setQty (storage0.getQty().add (diffQty));
|
||||||
|
diffText.append(" Qty=").append(diffQty);
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
if (changed)
|
||||||
|
{
|
||||||
|
diffText.append(") -> ").append(storage.toString());
|
||||||
|
s_log.fine(diffText.toString());
|
||||||
|
if (storage0 != null)
|
||||||
|
storage0.saveEx(trxName); // No AttributeSetInstance
|
||||||
|
return storage.save (trxName);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
} // add
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create or Get Storage Info
|
||||||
|
* @param ctx context
|
||||||
|
* @param M_Locator_ID locator
|
||||||
|
* @param M_Product_ID product
|
||||||
|
* @param M_AttributeSetInstance_ID instance
|
||||||
|
* @param trxName transaction
|
||||||
|
* @return existing/new or null
|
||||||
|
*/
|
||||||
|
public static MStorageReservation getCreate (Properties ctx, int M_Warehouse_ID,
|
||||||
|
int M_Product_ID, int M_AttributeSetInstance_ID, boolean isSOTrx, String trxName)
|
||||||
|
{
|
||||||
|
if (M_Warehouse_ID == 0)
|
||||||
|
throw new IllegalArgumentException("M_Warehouse_ID=0");
|
||||||
|
if (M_Product_ID == 0)
|
||||||
|
throw new IllegalArgumentException("M_Product_ID=0");
|
||||||
|
MStorageReservation retValue = get(ctx, M_Warehouse_ID, M_Product_ID, M_AttributeSetInstance_ID, isSOTrx, trxName);
|
||||||
|
if (retValue != null)
|
||||||
|
return retValue;
|
||||||
|
|
||||||
|
// Insert row based on warehouse
|
||||||
|
MWarehouse warehouse = new MWarehouse (ctx, M_Warehouse_ID, trxName);
|
||||||
|
if (warehouse.get_ID() != M_Warehouse_ID)
|
||||||
|
throw new IllegalArgumentException("Not found M_Warehouse_ID=" + M_Warehouse_ID);
|
||||||
|
//
|
||||||
|
retValue = new MStorageReservation (warehouse, M_Product_ID, M_AttributeSetInstance_ID, isSOTrx);
|
||||||
|
retValue.saveEx(trxName);
|
||||||
|
s_log.fine("New " + retValue);
|
||||||
|
return retValue;
|
||||||
|
} // getCreate
|
||||||
|
|
||||||
|
}
|
|
@ -213,7 +213,7 @@ public class MWarehouse extends X_M_Warehouse
|
||||||
with negative onhand. */
|
with negative onhand. */
|
||||||
if (is_ValueChanged("IsDisallowNegativeInv") && isDisallowNegativeInv())
|
if (is_ValueChanged("IsDisallowNegativeInv") && isDisallowNegativeInv())
|
||||||
{
|
{
|
||||||
String sql = "SELECT M_Product_ID FROM M_Storage s "+
|
String sql = "SELECT M_Product_ID FROM M_StorageOnHand s "+
|
||||||
"WHERE s.M_Locator_ID IN (SELECT M_Locator_ID FROM M_Locator l " +
|
"WHERE s.M_Locator_ID IN (SELECT M_Locator_ID FROM M_Locator l " +
|
||||||
"WHERE M_Warehouse_ID=? )" +
|
"WHERE M_Warehouse_ID=? )" +
|
||||||
" GROUP BY M_Product_ID, M_Locator_ID, M_AttributeSetInstance_ID " +
|
" GROUP BY M_Product_ID, M_Locator_ID, M_AttributeSetInstance_ID " +
|
||||||
|
|
|
@ -1321,6 +1321,8 @@ public abstract class PO
|
||||||
Object oo = m_IDs[i];
|
Object oo = m_IDs[i];
|
||||||
if (oo instanceof Integer)
|
if (oo instanceof Integer)
|
||||||
pstmt.setInt(i+1, ((Integer)m_IDs[i]).intValue());
|
pstmt.setInt(i+1, ((Integer)m_IDs[i]).intValue());
|
||||||
|
else if (oo instanceof Boolean)
|
||||||
|
pstmt.setString(i+1, ((Boolean) m_IDs[i] ? "Y" : "N"));
|
||||||
else
|
else
|
||||||
pstmt.setString(i+1, m_IDs[i].toString());
|
pstmt.setString(i+1, m_IDs[i].toString());
|
||||||
}
|
}
|
||||||
|
@ -2955,8 +2957,19 @@ public abstract class PO
|
||||||
{
|
{
|
||||||
if (m_KeyColumns[i].endsWith("_ID"))
|
if (m_KeyColumns[i].endsWith("_ID"))
|
||||||
sb.append(m_IDs[i]);
|
sb.append(m_IDs[i]);
|
||||||
else
|
else {
|
||||||
sb.append("'").append(m_IDs[i]).append("'");
|
sb.append("'");
|
||||||
|
if (m_IDs[i] instanceof Boolean) {
|
||||||
|
if ((Boolean) m_IDs[i]) {
|
||||||
|
sb.append("Y");
|
||||||
|
} else {
|
||||||
|
sb.append("N");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
sb.append(m_IDs[i]);
|
||||||
|
}
|
||||||
|
sb.append("'");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
sb.append("?");
|
sb.append("?");
|
||||||
|
|
|
@ -32,7 +32,7 @@ public class X_AD_Field extends PO implements I_AD_Field, I_Persistent
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 20121101L;
|
private static final long serialVersionUID = 20121120L;
|
||||||
|
|
||||||
/** Standard Constructor */
|
/** Standard Constructor */
|
||||||
public X_AD_Field (Properties ctx, int AD_Field_ID, String trxName)
|
public X_AD_Field (Properties ctx, int AD_Field_ID, String trxName)
|
||||||
|
@ -490,6 +490,30 @@ public class X_AD_Field extends PO implements I_AD_Field, I_Persistent
|
||||||
return (String)get_Value(COLUMNNAME_IsAllowCopy);
|
return (String)get_Value(COLUMNNAME_IsAllowCopy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** IsAlwaysUpdateable AD_Reference_ID=319 */
|
||||||
|
public static final int ISALWAYSUPDATEABLE_AD_Reference_ID=319;
|
||||||
|
/** Yes = Y */
|
||||||
|
public static final String ISALWAYSUPDATEABLE_Yes = "Y";
|
||||||
|
/** No = N */
|
||||||
|
public static final String ISALWAYSUPDATEABLE_No = "N";
|
||||||
|
/** Set Always Updateable.
|
||||||
|
@param IsAlwaysUpdateable
|
||||||
|
The column is always updateable, even if the record is not active or processed
|
||||||
|
*/
|
||||||
|
public void setIsAlwaysUpdateable (String IsAlwaysUpdateable)
|
||||||
|
{
|
||||||
|
|
||||||
|
set_Value (COLUMNNAME_IsAlwaysUpdateable, IsAlwaysUpdateable);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Always Updateable.
|
||||||
|
@return The column is always updateable, even if the record is not active or processed
|
||||||
|
*/
|
||||||
|
public String getIsAlwaysUpdateable ()
|
||||||
|
{
|
||||||
|
return (String)get_Value(COLUMNNAME_IsAlwaysUpdateable);
|
||||||
|
}
|
||||||
|
|
||||||
/** Set Centrally maintained.
|
/** Set Centrally maintained.
|
||||||
@param IsCentrallyMaintained
|
@param IsCentrallyMaintained
|
||||||
Information maintained in System Element table
|
Information maintained in System Element table
|
||||||
|
@ -724,6 +748,68 @@ public class X_AD_Field extends PO implements I_AD_Field, I_Persistent
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** IsToolbarButton AD_Reference_ID=319 */
|
||||||
|
public static final int ISTOOLBARBUTTON_AD_Reference_ID=319;
|
||||||
|
/** Yes = Y */
|
||||||
|
public static final String ISTOOLBARBUTTON_Yes = "Y";
|
||||||
|
/** No = N */
|
||||||
|
public static final String ISTOOLBARBUTTON_No = "N";
|
||||||
|
/** Set Toolbar Button.
|
||||||
|
@param IsToolbarButton
|
||||||
|
Add the column button to the toolbar
|
||||||
|
*/
|
||||||
|
public void setIsToolbarButton (String IsToolbarButton)
|
||||||
|
{
|
||||||
|
|
||||||
|
set_Value (COLUMNNAME_IsToolbarButton, IsToolbarButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Toolbar Button.
|
||||||
|
@return Add the column button to the toolbar
|
||||||
|
*/
|
||||||
|
public String getIsToolbarButton ()
|
||||||
|
{
|
||||||
|
return (String)get_Value(COLUMNNAME_IsToolbarButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** IsUpdateable AD_Reference_ID=319 */
|
||||||
|
public static final int ISUPDATEABLE_AD_Reference_ID=319;
|
||||||
|
/** Yes = Y */
|
||||||
|
public static final String ISUPDATEABLE_Yes = "Y";
|
||||||
|
/** No = N */
|
||||||
|
public static final String ISUPDATEABLE_No = "N";
|
||||||
|
/** Set Updatable.
|
||||||
|
@param IsUpdateable
|
||||||
|
Determines, if the field can be updated
|
||||||
|
*/
|
||||||
|
public void setIsUpdateable (String IsUpdateable)
|
||||||
|
{
|
||||||
|
|
||||||
|
set_Value (COLUMNNAME_IsUpdateable, IsUpdateable);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Updatable.
|
||||||
|
@return Determines, if the field can be updated
|
||||||
|
*/
|
||||||
|
public String getIsUpdateable ()
|
||||||
|
{
|
||||||
|
return (String)get_Value(COLUMNNAME_IsUpdateable);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Set Mandatory Logic.
|
||||||
|
@param MandatoryLogic Mandatory Logic */
|
||||||
|
public void setMandatoryLogic (String MandatoryLogic)
|
||||||
|
{
|
||||||
|
set_Value (COLUMNNAME_MandatoryLogic, MandatoryLogic);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Mandatory Logic.
|
||||||
|
@return Mandatory Logic */
|
||||||
|
public String getMandatoryLogic ()
|
||||||
|
{
|
||||||
|
return (String)get_Value(COLUMNNAME_MandatoryLogic);
|
||||||
|
}
|
||||||
|
|
||||||
/** Set Name.
|
/** Set Name.
|
||||||
@param Name
|
@param Name
|
||||||
Alphanumeric identifier of the entity
|
Alphanumeric identifier of the entity
|
||||||
|
@ -797,6 +883,23 @@ public class X_AD_Field extends PO implements I_AD_Field, I_Persistent
|
||||||
return (String)get_Value(COLUMNNAME_ObscureType);
|
return (String)get_Value(COLUMNNAME_ObscureType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Set Read Only Logic.
|
||||||
|
@param ReadOnlyLogic
|
||||||
|
Logic to determine if field is read only (applies only when field is read-write)
|
||||||
|
*/
|
||||||
|
public void setReadOnlyLogic (String ReadOnlyLogic)
|
||||||
|
{
|
||||||
|
set_Value (COLUMNNAME_ReadOnlyLogic, ReadOnlyLogic);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Read Only Logic.
|
||||||
|
@return Logic to determine if field is read only (applies only when field is read-write)
|
||||||
|
*/
|
||||||
|
public String getReadOnlyLogic ()
|
||||||
|
{
|
||||||
|
return (String)get_Value(COLUMNNAME_ReadOnlyLogic);
|
||||||
|
}
|
||||||
|
|
||||||
/** Set Sequence.
|
/** Set Sequence.
|
||||||
@param SeqNo
|
@param SeqNo
|
||||||
Method of ordering records; lowest number comes first
|
Method of ordering records; lowest number comes first
|
||||||
|
|
|
@ -30,7 +30,7 @@ public class X_AD_UserDef_Field extends PO implements I_AD_UserDef_Field, I_Pers
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 20121031L;
|
private static final long serialVersionUID = 20121122L;
|
||||||
|
|
||||||
/** Standard Constructor */
|
/** Standard Constructor */
|
||||||
public X_AD_UserDef_Field (Properties ctx, int AD_UserDef_Field_ID, String trxName)
|
public X_AD_UserDef_Field (Properties ctx, int AD_UserDef_Field_ID, String trxName)
|
||||||
|
@ -41,12 +41,6 @@ public class X_AD_UserDef_Field extends PO implements I_AD_UserDef_Field, I_Pers
|
||||||
setAD_Field_ID (0);
|
setAD_Field_ID (0);
|
||||||
setAD_UserDef_Field_ID (0);
|
setAD_UserDef_Field_ID (0);
|
||||||
setAD_UserDef_Tab_ID (0);
|
setAD_UserDef_Tab_ID (0);
|
||||||
setIsDisplayed (true);
|
|
||||||
// 'Y'
|
|
||||||
setIsReadOnly (false);
|
|
||||||
// 'N'
|
|
||||||
setIsSameLine (false);
|
|
||||||
// 'N'
|
|
||||||
setSeqNo (0);
|
setSeqNo (0);
|
||||||
// 0
|
// 0
|
||||||
} */
|
} */
|
||||||
|
@ -116,6 +110,62 @@ public class X_AD_UserDef_Field extends PO implements I_AD_UserDef_Field, I_Pers
|
||||||
return new KeyNamePair(get_ID(), String.valueOf(getAD_Field_ID()));
|
return new KeyNamePair(get_ID(), String.valueOf(getAD_Field_ID()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public org.compiere.model.I_AD_Reference getAD_Reference() throws RuntimeException
|
||||||
|
{
|
||||||
|
return (org.compiere.model.I_AD_Reference)MTable.get(getCtx(), org.compiere.model.I_AD_Reference.Table_Name)
|
||||||
|
.getPO(getAD_Reference_ID(), get_TrxName()); }
|
||||||
|
|
||||||
|
/** Set Reference.
|
||||||
|
@param AD_Reference_ID
|
||||||
|
System Reference and Validation
|
||||||
|
*/
|
||||||
|
public void setAD_Reference_ID (int AD_Reference_ID)
|
||||||
|
{
|
||||||
|
if (AD_Reference_ID < 1)
|
||||||
|
set_Value (COLUMNNAME_AD_Reference_ID, null);
|
||||||
|
else
|
||||||
|
set_Value (COLUMNNAME_AD_Reference_ID, Integer.valueOf(AD_Reference_ID));
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Reference.
|
||||||
|
@return System Reference and Validation
|
||||||
|
*/
|
||||||
|
public int getAD_Reference_ID ()
|
||||||
|
{
|
||||||
|
Integer ii = (Integer)get_Value(COLUMNNAME_AD_Reference_ID);
|
||||||
|
if (ii == null)
|
||||||
|
return 0;
|
||||||
|
return ii.intValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
public org.compiere.model.I_AD_Reference getAD_Reference_Value() throws RuntimeException
|
||||||
|
{
|
||||||
|
return (org.compiere.model.I_AD_Reference)MTable.get(getCtx(), org.compiere.model.I_AD_Reference.Table_Name)
|
||||||
|
.getPO(getAD_Reference_Value_ID(), get_TrxName()); }
|
||||||
|
|
||||||
|
/** Set Reference Key.
|
||||||
|
@param AD_Reference_Value_ID
|
||||||
|
Required to specify, if data type is Table or List
|
||||||
|
*/
|
||||||
|
public void setAD_Reference_Value_ID (int AD_Reference_Value_ID)
|
||||||
|
{
|
||||||
|
if (AD_Reference_Value_ID < 1)
|
||||||
|
set_Value (COLUMNNAME_AD_Reference_Value_ID, null);
|
||||||
|
else
|
||||||
|
set_Value (COLUMNNAME_AD_Reference_Value_ID, Integer.valueOf(AD_Reference_Value_ID));
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Reference Key.
|
||||||
|
@return Required to specify, if data type is Table or List
|
||||||
|
*/
|
||||||
|
public int getAD_Reference_Value_ID ()
|
||||||
|
{
|
||||||
|
Integer ii = (Integer)get_Value(COLUMNNAME_AD_Reference_Value_ID);
|
||||||
|
if (ii == null)
|
||||||
|
return 0;
|
||||||
|
return ii.intValue();
|
||||||
|
}
|
||||||
|
|
||||||
/** Set User defined Field.
|
/** Set User defined Field.
|
||||||
@param AD_UserDef_Field_ID User defined Field */
|
@param AD_UserDef_Field_ID User defined Field */
|
||||||
public void setAD_UserDef_Field_ID (int AD_UserDef_Field_ID)
|
public void setAD_UserDef_Field_ID (int AD_UserDef_Field_ID)
|
||||||
|
@ -175,6 +225,26 @@ public class X_AD_UserDef_Field extends PO implements I_AD_UserDef_Field, I_Pers
|
||||||
return ii.intValue();
|
return ii.intValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Set Column Span.
|
||||||
|
@param ColumnSpan
|
||||||
|
Number of column for a box of field
|
||||||
|
*/
|
||||||
|
public void setColumnSpan (int ColumnSpan)
|
||||||
|
{
|
||||||
|
set_Value (COLUMNNAME_ColumnSpan, Integer.valueOf(ColumnSpan));
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Column Span.
|
||||||
|
@return Number of column for a box of field
|
||||||
|
*/
|
||||||
|
public int getColumnSpan ()
|
||||||
|
{
|
||||||
|
Integer ii = (Integer)get_Value(COLUMNNAME_ColumnSpan);
|
||||||
|
if (ii == null)
|
||||||
|
return 0;
|
||||||
|
return ii.intValue();
|
||||||
|
}
|
||||||
|
|
||||||
/** Set Default Logic.
|
/** Set Default Logic.
|
||||||
@param DefaultValue
|
@param DefaultValue
|
||||||
Default value hierarchy, separated by ;
|
Default value hierarchy, separated by ;
|
||||||
|
@ -263,100 +333,186 @@ public class X_AD_UserDef_Field extends PO implements I_AD_UserDef_Field, I_Pers
|
||||||
return (String)get_Value(COLUMNNAME_Help);
|
return (String)get_Value(COLUMNNAME_Help);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** IsAlwaysUpdateable AD_Reference_ID=319 */
|
||||||
|
public static final int ISALWAYSUPDATEABLE_AD_Reference_ID=319;
|
||||||
|
/** Yes = Y */
|
||||||
|
public static final String ISALWAYSUPDATEABLE_Yes = "Y";
|
||||||
|
/** No = N */
|
||||||
|
public static final String ISALWAYSUPDATEABLE_No = "N";
|
||||||
|
/** Set Always Updatable.
|
||||||
|
@param IsAlwaysUpdateable
|
||||||
|
The column is always updateable, even if the record is not active or processed
|
||||||
|
*/
|
||||||
|
public void setIsAlwaysUpdateable (String IsAlwaysUpdateable)
|
||||||
|
{
|
||||||
|
|
||||||
|
set_Value (COLUMNNAME_IsAlwaysUpdateable, IsAlwaysUpdateable);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Always Updatable.
|
||||||
|
@return The column is always updateable, even if the record is not active or processed
|
||||||
|
*/
|
||||||
|
public String getIsAlwaysUpdateable ()
|
||||||
|
{
|
||||||
|
return (String)get_Value(COLUMNNAME_IsAlwaysUpdateable);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** IsDisplayed AD_Reference_ID=319 */
|
||||||
|
public static final int ISDISPLAYED_AD_Reference_ID=319;
|
||||||
|
/** Yes = Y */
|
||||||
|
public static final String ISDISPLAYED_Yes = "Y";
|
||||||
|
/** No = N */
|
||||||
|
public static final String ISDISPLAYED_No = "N";
|
||||||
/** Set Displayed.
|
/** Set Displayed.
|
||||||
@param IsDisplayed
|
@param IsDisplayed
|
||||||
Determines, if this field is displayed
|
Determines, if this field is displayed
|
||||||
*/
|
*/
|
||||||
public void setIsDisplayed (boolean IsDisplayed)
|
public void setIsDisplayed (String IsDisplayed)
|
||||||
{
|
{
|
||||||
set_Value (COLUMNNAME_IsDisplayed, Boolean.valueOf(IsDisplayed));
|
|
||||||
|
set_Value (COLUMNNAME_IsDisplayed, IsDisplayed);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Get Displayed.
|
/** Get Displayed.
|
||||||
@return Determines, if this field is displayed
|
@return Determines, if this field is displayed
|
||||||
*/
|
*/
|
||||||
public boolean isDisplayed ()
|
public String getIsDisplayed ()
|
||||||
{
|
{
|
||||||
Object oo = get_Value(COLUMNNAME_IsDisplayed);
|
return (String)get_Value(COLUMNNAME_IsDisplayed);
|
||||||
if (oo != null)
|
|
||||||
{
|
|
||||||
if (oo instanceof Boolean)
|
|
||||||
return ((Boolean)oo).booleanValue();
|
|
||||||
return "Y".equals(oo);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** IsMandatory AD_Reference_ID=319 */
|
||||||
|
public static final int ISMANDATORY_AD_Reference_ID=319;
|
||||||
|
/** Yes = Y */
|
||||||
|
public static final String ISMANDATORY_Yes = "Y";
|
||||||
|
/** No = N */
|
||||||
|
public static final String ISMANDATORY_No = "N";
|
||||||
|
/** Set Mandatory.
|
||||||
|
@param IsMandatory
|
||||||
|
Data entry is required in this column
|
||||||
|
*/
|
||||||
|
public void setIsMandatory (String IsMandatory)
|
||||||
|
{
|
||||||
|
|
||||||
|
set_Value (COLUMNNAME_IsMandatory, IsMandatory);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Mandatory.
|
||||||
|
@return Data entry is required in this column
|
||||||
|
*/
|
||||||
|
public String getIsMandatory ()
|
||||||
|
{
|
||||||
|
return (String)get_Value(COLUMNNAME_IsMandatory);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** IsReadOnly AD_Reference_ID=319 */
|
||||||
|
public static final int ISREADONLY_AD_Reference_ID=319;
|
||||||
|
/** Yes = Y */
|
||||||
|
public static final String ISREADONLY_Yes = "Y";
|
||||||
|
/** No = N */
|
||||||
|
public static final String ISREADONLY_No = "N";
|
||||||
/** Set Read Only.
|
/** Set Read Only.
|
||||||
@param IsReadOnly
|
@param IsReadOnly
|
||||||
Field is read only
|
Field is read only
|
||||||
*/
|
*/
|
||||||
public void setIsReadOnly (boolean IsReadOnly)
|
public void setIsReadOnly (String IsReadOnly)
|
||||||
{
|
{
|
||||||
set_Value (COLUMNNAME_IsReadOnly, Boolean.valueOf(IsReadOnly));
|
|
||||||
|
set_Value (COLUMNNAME_IsReadOnly, IsReadOnly);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Get Read Only.
|
/** Get Read Only.
|
||||||
@return Field is read only
|
@return Field is read only
|
||||||
*/
|
*/
|
||||||
public boolean isReadOnly ()
|
public String getIsReadOnly ()
|
||||||
{
|
{
|
||||||
Object oo = get_Value(COLUMNNAME_IsReadOnly);
|
return (String)get_Value(COLUMNNAME_IsReadOnly);
|
||||||
if (oo != null)
|
|
||||||
{
|
|
||||||
if (oo instanceof Boolean)
|
|
||||||
return ((Boolean)oo).booleanValue();
|
|
||||||
return "Y".equals(oo);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** IsSameLine AD_Reference_ID=319 */
|
||||||
|
public static final int ISSAMELINE_AD_Reference_ID=319;
|
||||||
|
/** Yes = Y */
|
||||||
|
public static final String ISSAMELINE_Yes = "Y";
|
||||||
|
/** No = N */
|
||||||
|
public static final String ISSAMELINE_No = "N";
|
||||||
/** Set Same Line.
|
/** Set Same Line.
|
||||||
@param IsSameLine
|
@param IsSameLine
|
||||||
Displayed on same line as previous field
|
Displayed on same line as previous field
|
||||||
*/
|
*/
|
||||||
public void setIsSameLine (boolean IsSameLine)
|
public void setIsSameLine (String IsSameLine)
|
||||||
{
|
{
|
||||||
set_Value (COLUMNNAME_IsSameLine, Boolean.valueOf(IsSameLine));
|
|
||||||
|
set_Value (COLUMNNAME_IsSameLine, IsSameLine);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Get Same Line.
|
/** Get Same Line.
|
||||||
@return Displayed on same line as previous field
|
@return Displayed on same line as previous field
|
||||||
*/
|
*/
|
||||||
public boolean isSameLine ()
|
public String getIsSameLine ()
|
||||||
{
|
{
|
||||||
Object oo = get_Value(COLUMNNAME_IsSameLine);
|
return (String)get_Value(COLUMNNAME_IsSameLine);
|
||||||
if (oo != null)
|
|
||||||
{
|
|
||||||
if (oo instanceof Boolean)
|
|
||||||
return ((Boolean)oo).booleanValue();
|
|
||||||
return "Y".equals(oo);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** IsToolbarButton AD_Reference_ID=319 */
|
||||||
|
public static final int ISTOOLBARBUTTON_AD_Reference_ID=319;
|
||||||
|
/** Yes = Y */
|
||||||
|
public static final String ISTOOLBARBUTTON_Yes = "Y";
|
||||||
|
/** No = N */
|
||||||
|
public static final String ISTOOLBARBUTTON_No = "N";
|
||||||
|
/** Set Toolbar Button.
|
||||||
|
@param IsToolbarButton
|
||||||
|
Add the column button to the toolbar
|
||||||
|
*/
|
||||||
|
public void setIsToolbarButton (String IsToolbarButton)
|
||||||
|
{
|
||||||
|
|
||||||
|
set_Value (COLUMNNAME_IsToolbarButton, IsToolbarButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Toolbar Button.
|
||||||
|
@return Add the column button to the toolbar
|
||||||
|
*/
|
||||||
|
public String getIsToolbarButton ()
|
||||||
|
{
|
||||||
|
return (String)get_Value(COLUMNNAME_IsToolbarButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** IsUpdateable AD_Reference_ID=319 */
|
||||||
|
public static final int ISUPDATEABLE_AD_Reference_ID=319;
|
||||||
|
/** Yes = Y */
|
||||||
|
public static final String ISUPDATEABLE_Yes = "Y";
|
||||||
|
/** No = N */
|
||||||
|
public static final String ISUPDATEABLE_No = "N";
|
||||||
/** Set Updatable.
|
/** Set Updatable.
|
||||||
@param IsUpdateable
|
@param IsUpdateable
|
||||||
Determines, if the field can be updated
|
Determines, if the field can be updated
|
||||||
*/
|
*/
|
||||||
public void setIsUpdateable (boolean IsUpdateable)
|
public void setIsUpdateable (String IsUpdateable)
|
||||||
{
|
{
|
||||||
set_Value (COLUMNNAME_IsUpdateable, Boolean.valueOf(IsUpdateable));
|
|
||||||
|
set_Value (COLUMNNAME_IsUpdateable, IsUpdateable);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Get Updatable.
|
/** Get Updatable.
|
||||||
@return Determines, if the field can be updated
|
@return Determines, if the field can be updated
|
||||||
*/
|
*/
|
||||||
public boolean isUpdateable ()
|
public String getIsUpdateable ()
|
||||||
{
|
{
|
||||||
Object oo = get_Value(COLUMNNAME_IsUpdateable);
|
return (String)get_Value(COLUMNNAME_IsUpdateable);
|
||||||
if (oo != null)
|
}
|
||||||
{
|
|
||||||
if (oo instanceof Boolean)
|
/** Set Mandatory Logic.
|
||||||
return ((Boolean)oo).booleanValue();
|
@param MandatoryLogic Mandatory Logic */
|
||||||
return "Y".equals(oo);
|
public void setMandatoryLogic (String MandatoryLogic)
|
||||||
}
|
{
|
||||||
return false;
|
set_Value (COLUMNNAME_MandatoryLogic, MandatoryLogic);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Mandatory Logic.
|
||||||
|
@return Mandatory Logic */
|
||||||
|
public String getMandatoryLogic ()
|
||||||
|
{
|
||||||
|
return (String)get_Value(COLUMNNAME_MandatoryLogic);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Set Name.
|
/** Set Name.
|
||||||
|
@ -376,6 +532,43 @@ public class X_AD_UserDef_Field extends PO implements I_AD_UserDef_Field, I_Pers
|
||||||
return (String)get_Value(COLUMNNAME_Name);
|
return (String)get_Value(COLUMNNAME_Name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Set Number of Lines.
|
||||||
|
@param NumLines
|
||||||
|
Number of lines for a field
|
||||||
|
*/
|
||||||
|
public void setNumLines (int NumLines)
|
||||||
|
{
|
||||||
|
set_Value (COLUMNNAME_NumLines, Integer.valueOf(NumLines));
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Number of Lines.
|
||||||
|
@return Number of lines for a field
|
||||||
|
*/
|
||||||
|
public int getNumLines ()
|
||||||
|
{
|
||||||
|
Integer ii = (Integer)get_Value(COLUMNNAME_NumLines);
|
||||||
|
if (ii == null)
|
||||||
|
return 0;
|
||||||
|
return ii.intValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Set Read Only Logic.
|
||||||
|
@param ReadOnlyLogic
|
||||||
|
Logic to determine if field is read only (applies only when field is read-write)
|
||||||
|
*/
|
||||||
|
public void setReadOnlyLogic (String ReadOnlyLogic)
|
||||||
|
{
|
||||||
|
set_Value (COLUMNNAME_ReadOnlyLogic, ReadOnlyLogic);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Read Only Logic.
|
||||||
|
@return Logic to determine if field is read only (applies only when field is read-write)
|
||||||
|
*/
|
||||||
|
public String getReadOnlyLogic ()
|
||||||
|
{
|
||||||
|
return (String)get_Value(COLUMNNAME_ReadOnlyLogic);
|
||||||
|
}
|
||||||
|
|
||||||
/** Set Sequence.
|
/** Set Sequence.
|
||||||
@param SeqNo
|
@param SeqNo
|
||||||
Method of ordering records; lowest number comes first
|
Method of ordering records; lowest number comes first
|
||||||
|
@ -415,4 +608,24 @@ public class X_AD_UserDef_Field extends PO implements I_AD_UserDef_Field, I_Pers
|
||||||
return 0;
|
return 0;
|
||||||
return ii.intValue();
|
return ii.intValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Set X Position.
|
||||||
|
@param XPosition
|
||||||
|
Absolute X (horizontal) position in 1/72 of an inch
|
||||||
|
*/
|
||||||
|
public void setXPosition (int XPosition)
|
||||||
|
{
|
||||||
|
set_Value (COLUMNNAME_XPosition, Integer.valueOf(XPosition));
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get X Position.
|
||||||
|
@return Absolute X (horizontal) position in 1/72 of an inch
|
||||||
|
*/
|
||||||
|
public int getXPosition ()
|
||||||
|
{
|
||||||
|
Integer ii = (Integer)get_Value(COLUMNNAME_XPosition);
|
||||||
|
if (ii == null)
|
||||||
|
return 0;
|
||||||
|
return ii.intValue();
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -23,34 +23,32 @@ import java.sql.Timestamp;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
|
|
||||||
/** Generated Model for M_Storage
|
/** Generated Model for M_StorageOnHand
|
||||||
* @author iDempiere (generated)
|
* @author iDempiere (generated)
|
||||||
* @version Release 1.0a - $Id$ */
|
* @version Release 1.0a - $Id$ */
|
||||||
public class X_M_Storage extends PO implements I_M_Storage, I_Persistent
|
public class X_M_StorageOnHand extends PO implements I_M_StorageOnHand, I_Persistent
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 20121031L;
|
private static final long serialVersionUID = 20121119L;
|
||||||
|
|
||||||
/** Standard Constructor */
|
/** Standard Constructor */
|
||||||
public X_M_Storage (Properties ctx, int M_Storage_ID, String trxName)
|
public X_M_StorageOnHand (Properties ctx, int M_StorageOnHand_ID, String trxName)
|
||||||
{
|
{
|
||||||
super (ctx, M_Storage_ID, trxName);
|
super (ctx, M_StorageOnHand_ID, trxName);
|
||||||
/** if (M_Storage_ID == 0)
|
/** if (M_StorageOnHand_ID == 0)
|
||||||
{
|
{
|
||||||
setM_AttributeSetInstance_ID (0);
|
setM_AttributeSetInstance_ID (0);
|
||||||
setM_Locator_ID (0);
|
setM_Locator_ID (0);
|
||||||
setM_Product_ID (0);
|
setM_Product_ID (0);
|
||||||
setQtyOnHand (Env.ZERO);
|
setQtyOnHand (Env.ZERO);
|
||||||
setQtyOrdered (Env.ZERO);
|
|
||||||
setQtyReserved (Env.ZERO);
|
|
||||||
} */
|
} */
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Load Constructor */
|
/** Load Constructor */
|
||||||
public X_M_Storage (Properties ctx, ResultSet rs, String trxName)
|
public X_M_StorageOnHand (Properties ctx, ResultSet rs, String trxName)
|
||||||
{
|
{
|
||||||
super (ctx, rs, trxName);
|
super (ctx, rs, trxName);
|
||||||
}
|
}
|
||||||
|
@ -72,7 +70,7 @@ public class X_M_Storage extends PO implements I_M_Storage, I_Persistent
|
||||||
|
|
||||||
public String toString()
|
public String toString()
|
||||||
{
|
{
|
||||||
StringBuffer sb = new StringBuffer ("X_M_Storage[")
|
StringBuffer sb = new StringBuffer ("X_M_StorageOnHand[")
|
||||||
.append(get_ID()).append("]");
|
.append(get_ID()).append("]");
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
@ -178,18 +176,18 @@ public class X_M_Storage extends PO implements I_M_Storage, I_Persistent
|
||||||
return ii.intValue();
|
return ii.intValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Set M_Storage_UU.
|
/** Set M_StorageOnHand_UU.
|
||||||
@param M_Storage_UU M_Storage_UU */
|
@param M_StorageOnHand_UU M_StorageOnHand_UU */
|
||||||
public void setM_Storage_UU (String M_Storage_UU)
|
public void setM_StorageOnHand_UU (String M_StorageOnHand_UU)
|
||||||
{
|
{
|
||||||
set_Value (COLUMNNAME_M_Storage_UU, M_Storage_UU);
|
set_Value (COLUMNNAME_M_StorageOnHand_UU, M_StorageOnHand_UU);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Get M_Storage_UU.
|
/** Get M_StorageOnHand_UU.
|
||||||
@return M_Storage_UU */
|
@return M_StorageOnHand_UU */
|
||||||
public String getM_Storage_UU ()
|
public String getM_StorageOnHand_UU ()
|
||||||
{
|
{
|
||||||
return (String)get_Value(COLUMNNAME_M_Storage_UU);
|
return (String)get_Value(COLUMNNAME_M_StorageOnHand_UU);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Set On Hand Quantity.
|
/** Set On Hand Quantity.
|
||||||
|
@ -211,44 +209,4 @@ public class X_M_Storage extends PO implements I_M_Storage, I_Persistent
|
||||||
return Env.ZERO;
|
return Env.ZERO;
|
||||||
return bd;
|
return bd;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Set Ordered Quantity.
|
|
||||||
@param QtyOrdered
|
|
||||||
Ordered Quantity
|
|
||||||
*/
|
|
||||||
public void setQtyOrdered (BigDecimal QtyOrdered)
|
|
||||||
{
|
|
||||||
set_ValueNoCheck (COLUMNNAME_QtyOrdered, QtyOrdered);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Get Ordered Quantity.
|
|
||||||
@return Ordered Quantity
|
|
||||||
*/
|
|
||||||
public BigDecimal getQtyOrdered ()
|
|
||||||
{
|
|
||||||
BigDecimal bd = (BigDecimal)get_Value(COLUMNNAME_QtyOrdered);
|
|
||||||
if (bd == null)
|
|
||||||
return Env.ZERO;
|
|
||||||
return bd;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Set Reserved Quantity.
|
|
||||||
@param QtyReserved
|
|
||||||
Reserved Quantity
|
|
||||||
*/
|
|
||||||
public void setQtyReserved (BigDecimal QtyReserved)
|
|
||||||
{
|
|
||||||
set_ValueNoCheck (COLUMNNAME_QtyReserved, QtyReserved);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Get Reserved Quantity.
|
|
||||||
@return Reserved Quantity
|
|
||||||
*/
|
|
||||||
public BigDecimal getQtyReserved ()
|
|
||||||
{
|
|
||||||
BigDecimal bd = (BigDecimal)get_Value(COLUMNNAME_QtyReserved);
|
|
||||||
if (bd == null)
|
|
||||||
return Env.ZERO;
|
|
||||||
return bd;
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -0,0 +1,236 @@
|
||||||
|
/******************************************************************************
|
||||||
|
* Product: iDempiere ERP & CRM Smart Business Solution *
|
||||||
|
* Copyright (C) 1999-2012 ComPiere, Inc. All Rights Reserved. *
|
||||||
|
* This program is free software, you can redistribute it and/or modify it *
|
||||||
|
* under the terms version 2 of the GNU General Public License as published *
|
||||||
|
* by the Free Software Foundation. This program is distributed in the hope *
|
||||||
|
* that it will be useful, but WITHOUT ANY WARRANTY, without even the implied *
|
||||||
|
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||||
|
* See the GNU General Public License for more details. *
|
||||||
|
* You should have received a copy of the GNU General Public License along *
|
||||||
|
* with this program, if not, write to the Free Software Foundation, Inc., *
|
||||||
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
|
||||||
|
* For the text or an alternative of this public license, you may reach us *
|
||||||
|
* ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA *
|
||||||
|
* or via info@compiere.org or http://www.compiere.org/license.html *
|
||||||
|
*****************************************************************************/
|
||||||
|
/** Generated Model - DO NOT CHANGE */
|
||||||
|
package org.compiere.model;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import java.util.Properties;
|
||||||
|
import org.compiere.util.Env;
|
||||||
|
|
||||||
|
/** Generated Model for M_StorageReservation
|
||||||
|
* @author iDempiere (generated)
|
||||||
|
* @version Release 1.0a - $Id$ */
|
||||||
|
public class X_M_StorageReservation extends PO implements I_M_StorageReservation, I_Persistent
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = 20121119L;
|
||||||
|
|
||||||
|
/** Standard Constructor */
|
||||||
|
public X_M_StorageReservation (Properties ctx, int M_StorageReservation_ID, String trxName)
|
||||||
|
{
|
||||||
|
super (ctx, M_StorageReservation_ID, trxName);
|
||||||
|
/** if (M_StorageReservation_ID == 0)
|
||||||
|
{
|
||||||
|
setM_AttributeSetInstance_ID (0);
|
||||||
|
setM_Product_ID (0);
|
||||||
|
setM_Warehouse_ID (0);
|
||||||
|
setQty (Env.ZERO);
|
||||||
|
} */
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Load Constructor */
|
||||||
|
public X_M_StorageReservation (Properties ctx, ResultSet rs, String trxName)
|
||||||
|
{
|
||||||
|
super (ctx, rs, trxName);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** AccessLevel
|
||||||
|
* @return 3 - Client - Org
|
||||||
|
*/
|
||||||
|
protected int get_AccessLevel()
|
||||||
|
{
|
||||||
|
return accessLevel.intValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Load Meta Data */
|
||||||
|
protected POInfo initPO (Properties ctx)
|
||||||
|
{
|
||||||
|
POInfo poi = POInfo.getPOInfo (ctx, Table_ID, get_TrxName());
|
||||||
|
return poi;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
StringBuffer sb = new StringBuffer ("X_M_StorageReservation[")
|
||||||
|
.append(get_ID()).append("]");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Set Date last inventory count.
|
||||||
|
@param DateLastInventory
|
||||||
|
Date of Last Inventory Count
|
||||||
|
*/
|
||||||
|
public void setDateLastInventory (Timestamp DateLastInventory)
|
||||||
|
{
|
||||||
|
set_Value (COLUMNNAME_DateLastInventory, DateLastInventory);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Date last inventory count.
|
||||||
|
@return Date of Last Inventory Count
|
||||||
|
*/
|
||||||
|
public Timestamp getDateLastInventory ()
|
||||||
|
{
|
||||||
|
return (Timestamp)get_Value(COLUMNNAME_DateLastInventory);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Set Sales Transaction.
|
||||||
|
@param IsSOTrx
|
||||||
|
This is a Sales Transaction
|
||||||
|
*/
|
||||||
|
public void setIsSOTrx (boolean IsSOTrx)
|
||||||
|
{
|
||||||
|
set_Value (COLUMNNAME_IsSOTrx, Boolean.valueOf(IsSOTrx));
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Sales Transaction.
|
||||||
|
@return This is a Sales Transaction
|
||||||
|
*/
|
||||||
|
public boolean isSOTrx ()
|
||||||
|
{
|
||||||
|
Object oo = get_Value(COLUMNNAME_IsSOTrx);
|
||||||
|
if (oo != null)
|
||||||
|
{
|
||||||
|
if (oo instanceof Boolean)
|
||||||
|
return ((Boolean)oo).booleanValue();
|
||||||
|
return "Y".equals(oo);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public I_M_AttributeSetInstance getM_AttributeSetInstance() throws RuntimeException
|
||||||
|
{
|
||||||
|
return (I_M_AttributeSetInstance)MTable.get(getCtx(), I_M_AttributeSetInstance.Table_Name)
|
||||||
|
.getPO(getM_AttributeSetInstance_ID(), get_TrxName()); }
|
||||||
|
|
||||||
|
/** Set Attribute Set Instance.
|
||||||
|
@param M_AttributeSetInstance_ID
|
||||||
|
Product Attribute Set Instance
|
||||||
|
*/
|
||||||
|
public void setM_AttributeSetInstance_ID (int M_AttributeSetInstance_ID)
|
||||||
|
{
|
||||||
|
if (M_AttributeSetInstance_ID < 0)
|
||||||
|
set_ValueNoCheck (COLUMNNAME_M_AttributeSetInstance_ID, null);
|
||||||
|
else
|
||||||
|
set_ValueNoCheck (COLUMNNAME_M_AttributeSetInstance_ID, Integer.valueOf(M_AttributeSetInstance_ID));
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Attribute Set Instance.
|
||||||
|
@return Product Attribute Set Instance
|
||||||
|
*/
|
||||||
|
public int getM_AttributeSetInstance_ID ()
|
||||||
|
{
|
||||||
|
Integer ii = (Integer)get_Value(COLUMNNAME_M_AttributeSetInstance_ID);
|
||||||
|
if (ii == null)
|
||||||
|
return 0;
|
||||||
|
return ii.intValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
public org.compiere.model.I_M_Product getM_Product() throws RuntimeException
|
||||||
|
{
|
||||||
|
return (org.compiere.model.I_M_Product)MTable.get(getCtx(), org.compiere.model.I_M_Product.Table_Name)
|
||||||
|
.getPO(getM_Product_ID(), get_TrxName()); }
|
||||||
|
|
||||||
|
/** Set Product.
|
||||||
|
@param M_Product_ID
|
||||||
|
Product, Service, Item
|
||||||
|
*/
|
||||||
|
public void setM_Product_ID (int M_Product_ID)
|
||||||
|
{
|
||||||
|
if (M_Product_ID < 1)
|
||||||
|
set_ValueNoCheck (COLUMNNAME_M_Product_ID, null);
|
||||||
|
else
|
||||||
|
set_ValueNoCheck (COLUMNNAME_M_Product_ID, Integer.valueOf(M_Product_ID));
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Product.
|
||||||
|
@return Product, Service, Item
|
||||||
|
*/
|
||||||
|
public int getM_Product_ID ()
|
||||||
|
{
|
||||||
|
Integer ii = (Integer)get_Value(COLUMNNAME_M_Product_ID);
|
||||||
|
if (ii == null)
|
||||||
|
return 0;
|
||||||
|
return ii.intValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Set M_StorageReservation_UU.
|
||||||
|
@param M_StorageReservation_UU M_StorageReservation_UU */
|
||||||
|
public void setM_StorageReservation_UU (String M_StorageReservation_UU)
|
||||||
|
{
|
||||||
|
set_Value (COLUMNNAME_M_StorageReservation_UU, M_StorageReservation_UU);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get M_StorageReservation_UU.
|
||||||
|
@return M_StorageReservation_UU */
|
||||||
|
public String getM_StorageReservation_UU ()
|
||||||
|
{
|
||||||
|
return (String)get_Value(COLUMNNAME_M_StorageReservation_UU);
|
||||||
|
}
|
||||||
|
|
||||||
|
public org.compiere.model.I_M_Warehouse getM_Warehouse() throws RuntimeException
|
||||||
|
{
|
||||||
|
return (org.compiere.model.I_M_Warehouse)MTable.get(getCtx(), org.compiere.model.I_M_Warehouse.Table_Name)
|
||||||
|
.getPO(getM_Warehouse_ID(), get_TrxName()); }
|
||||||
|
|
||||||
|
/** Set Warehouse.
|
||||||
|
@param M_Warehouse_ID
|
||||||
|
Storage Warehouse and Service Point
|
||||||
|
*/
|
||||||
|
public void setM_Warehouse_ID (int M_Warehouse_ID)
|
||||||
|
{
|
||||||
|
if (M_Warehouse_ID < 1)
|
||||||
|
set_ValueNoCheck (COLUMNNAME_M_Warehouse_ID, null);
|
||||||
|
else
|
||||||
|
set_ValueNoCheck (COLUMNNAME_M_Warehouse_ID, Integer.valueOf(M_Warehouse_ID));
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Warehouse.
|
||||||
|
@return Storage Warehouse and Service Point
|
||||||
|
*/
|
||||||
|
public int getM_Warehouse_ID ()
|
||||||
|
{
|
||||||
|
Integer ii = (Integer)get_Value(COLUMNNAME_M_Warehouse_ID);
|
||||||
|
if (ii == null)
|
||||||
|
return 0;
|
||||||
|
return ii.intValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Set Quantity.
|
||||||
|
@param Qty
|
||||||
|
Quantity
|
||||||
|
*/
|
||||||
|
public void setQty (BigDecimal Qty)
|
||||||
|
{
|
||||||
|
set_ValueNoCheck (COLUMNNAME_Qty, Qty);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Quantity.
|
||||||
|
@return Quantity
|
||||||
|
*/
|
||||||
|
public BigDecimal getQty ()
|
||||||
|
{
|
||||||
|
BigDecimal bd = (BigDecimal)get_Value(COLUMNNAME_Qty);
|
||||||
|
if (bd == null)
|
||||||
|
return Env.ZERO;
|
||||||
|
return bd;
|
||||||
|
}
|
||||||
|
}
|
|
@ -36,7 +36,7 @@ import org.compiere.model.MPeriod;
|
||||||
import org.compiere.model.MProduct;
|
import org.compiere.model.MProduct;
|
||||||
import org.compiere.model.MProject;
|
import org.compiere.model.MProject;
|
||||||
import org.compiere.model.MRefList;
|
import org.compiere.model.MRefList;
|
||||||
import org.compiere.model.MStorage;
|
import org.compiere.model.MStorageOnHand;
|
||||||
import org.compiere.model.MUser;
|
import org.compiere.model.MUser;
|
||||||
import org.compiere.model.ModelValidationEngine;
|
import org.compiere.model.ModelValidationEngine;
|
||||||
import org.compiere.model.ModelValidator;
|
import org.compiere.model.ModelValidator;
|
||||||
|
@ -883,18 +883,18 @@ public class MDDOrder extends X_DD_Order implements DocAction
|
||||||
if (product.isStocked())
|
if (product.isStocked())
|
||||||
{
|
{
|
||||||
// Update Storage
|
// Update Storage
|
||||||
if (!MStorage.add(getCtx(), locator_to.getM_Warehouse_ID(), locator_to.getM_Locator_ID(),
|
if (!MStorageOnHand.add(getCtx(), locator_to.getM_Warehouse_ID(), locator_to.getM_Locator_ID(),
|
||||||
line.getM_Product_ID(),
|
line.getM_Product_ID(),
|
||||||
line.getM_AttributeSetInstance_ID(), line.getM_AttributeSetInstance_ID(),
|
line.getM_AttributeSetInstance_ID(), line.getM_AttributeSetInstance_ID(),
|
||||||
Env.ZERO, Env.ZERO , reserved_ordered , get_TrxName()))
|
Env.ZERO, get_TrxName()))
|
||||||
{
|
{
|
||||||
throw new AdempiereException();
|
throw new AdempiereException();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!MStorage.add(getCtx(), locator_from.getM_Warehouse_ID(), locator_from.getM_Locator_ID(),
|
if (!MStorageOnHand.add(getCtx(), locator_from.getM_Warehouse_ID(), locator_from.getM_Locator_ID(),
|
||||||
line.getM_Product_ID(),
|
line.getM_Product_ID(),
|
||||||
line.getM_AttributeSetInstanceTo_ID(), line.getM_AttributeSetInstance_ID(),
|
line.getM_AttributeSetInstanceTo_ID(), line.getM_AttributeSetInstance_ID(),
|
||||||
Env.ZERO, reserved_ordered, Env.ZERO , get_TrxName()))
|
Env.ZERO, get_TrxName()))
|
||||||
{
|
{
|
||||||
throw new AdempiereException();
|
throw new AdempiereException();
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,9 +23,10 @@ import java.util.Properties;
|
||||||
|
|
||||||
import org.compiere.model.MAttributeSet;
|
import org.compiere.model.MAttributeSet;
|
||||||
import org.compiere.model.MCharge;
|
import org.compiere.model.MCharge;
|
||||||
|
import org.compiere.model.MClient;
|
||||||
import org.compiere.model.MLocator;
|
import org.compiere.model.MLocator;
|
||||||
import org.compiere.model.MProduct;
|
import org.compiere.model.MProduct;
|
||||||
import org.compiere.model.MStorage;
|
import org.compiere.model.MStorageOnHand;
|
||||||
import org.compiere.model.MUOM;
|
import org.compiere.model.MUOM;
|
||||||
import org.compiere.util.CLogger;
|
import org.compiere.util.CLogger;
|
||||||
import org.compiere.util.DB;
|
import org.compiere.util.DB;
|
||||||
|
@ -577,9 +578,9 @@ public class MDDOrderLine extends X_DD_OrderLine
|
||||||
if (isInstance)
|
if (isInstance)
|
||||||
{
|
{
|
||||||
MLocator locator_from = MLocator.get(getCtx(), getM_Locator_ID());
|
MLocator locator_from = MLocator.get(getCtx(), getM_Locator_ID());
|
||||||
MStorage[] storages = MStorage.getWarehouse(getCtx(),
|
MStorageOnHand[] storages = MStorageOnHand.getWarehouse(getCtx(),
|
||||||
locator_from.getM_Warehouse_ID(), getM_Product_ID(), getM_AttributeSetInstance_ID(),
|
locator_from.getM_Warehouse_ID(), getM_Product_ID(), getM_AttributeSetInstance_ID(),
|
||||||
M_AttributeSet_ID, false, null, true, get_TrxName());
|
null, true, false, 0, get_TrxName());
|
||||||
BigDecimal qty = Env.ZERO;
|
BigDecimal qty = Env.ZERO;
|
||||||
for (int i = 0; i < storages.length; i++)
|
for (int i = 0; i < storages.length; i++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,7 +16,8 @@ package test.functional;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
import org.compiere.model.MLocator;
|
import org.compiere.model.MLocator;
|
||||||
import org.compiere.model.MStorage;
|
import org.compiere.model.MStorageOnHand;
|
||||||
|
import org.compiere.model.MStorageReservation;
|
||||||
import org.compiere.model.MWarehouse;
|
import org.compiere.model.MWarehouse;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
|
|
||||||
|
@ -44,18 +45,18 @@ public class MStorageTest extends AdempiereTestCase
|
||||||
loc.saveEx();
|
loc.saveEx();
|
||||||
//
|
//
|
||||||
BigDecimal targetQty = BigDecimal.valueOf(qtyOnHand).setScale(12, BigDecimal.ROUND_HALF_UP);
|
BigDecimal targetQty = BigDecimal.valueOf(qtyOnHand).setScale(12, BigDecimal.ROUND_HALF_UP);
|
||||||
MStorage s1 = MStorage.getCreate(getCtx(), loc.get_ID(), product_id, 0, getTrxName());
|
MStorageOnHand s1 = MStorageOnHand.getCreate(getCtx(), loc.get_ID(), product_id, 0, getTrxName());
|
||||||
s1.setQtyOnHand(targetQty);
|
s1.setQtyOnHand(targetQty);
|
||||||
s1.saveEx();
|
s1.saveEx();
|
||||||
//
|
//
|
||||||
BigDecimal qty = MStorage.getQtyAvailable(wh.get_ID(), loc.get_ID(), product_id, 0, getTrxName()).setScale(12, BigDecimal.ROUND_HALF_UP);
|
BigDecimal qty = MStorageReservation.getQtyAvailable(wh.get_ID(), product_id, 0, getTrxName()).setScale(12, BigDecimal.ROUND_HALF_UP);
|
||||||
assertEquals("Error on locator "+locatorValue, targetQty, qty);
|
assertEquals("Error on locator "+locatorValue, targetQty, qty);
|
||||||
//
|
//
|
||||||
return loc;
|
return loc;
|
||||||
}
|
}
|
||||||
private void assertWarehouseQty(MWarehouse wh, BigDecimal targetQty)
|
private void assertWarehouseQty(MWarehouse wh, BigDecimal targetQty)
|
||||||
{
|
{
|
||||||
BigDecimal qty = MStorage.getQtyAvailable(wh.get_ID(), 0, product_id, 0, getTrxName());
|
BigDecimal qty = MStorageReservation.getQtyAvailable(wh.get_ID(), product_id, 0, getTrxName());
|
||||||
qty = qty.setScale(12, BigDecimal.ROUND_HALF_UP);
|
qty = qty.setScale(12, BigDecimal.ROUND_HALF_UP);
|
||||||
targetQty = targetQty.setScale(12, BigDecimal.ROUND_HALF_UP);
|
targetQty = targetQty.setScale(12, BigDecimal.ROUND_HALF_UP);
|
||||||
assertEquals(targetQty, qty);
|
assertEquals(targetQty, qty);
|
||||||
|
|
|
@ -28,7 +28,7 @@ import org.adempiere.exceptions.DBException;
|
||||||
import org.compiere.model.MDocType;
|
import org.compiere.model.MDocType;
|
||||||
import org.compiere.model.MLocator;
|
import org.compiere.model.MLocator;
|
||||||
import org.compiere.model.MProduct;
|
import org.compiere.model.MProduct;
|
||||||
import org.compiere.model.MStorage;
|
import org.compiere.model.MStorageOnHand;
|
||||||
import org.compiere.process.DocAction;
|
import org.compiere.process.DocAction;
|
||||||
import org.compiere.util.DB;
|
import org.compiere.util.DB;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
|
@ -185,22 +185,18 @@ public class InventoryTest extends AdempiereTestCase
|
||||||
ArrayList<Object> params = new ArrayList<Object>();
|
ArrayList<Object> params = new ArrayList<Object>();
|
||||||
String sql = "SELECT"
|
String sql = "SELECT"
|
||||||
+" COALESCE(SUM(QtyOnHand),0)"
|
+" COALESCE(SUM(QtyOnHand),0)"
|
||||||
+",COALESCE(SUM(QtyReserved),0)"
|
+" FROM M_StorageOnHand"
|
||||||
+",COALESCE(SUM(QtyOrdered),0)"
|
|
||||||
+" FROM M_Storage"
|
|
||||||
+" WHERE M_Locator_ID=? AND M_Product_ID=?";
|
+" WHERE M_Locator_ID=? AND M_Product_ID=?";
|
||||||
params.add(locator.get_ID());
|
params.add(locator.get_ID());
|
||||||
params.add(product.get_ID());
|
params.add(product.get_ID());
|
||||||
if (M_ASI_ID >= 0)
|
if (M_ASI_ID >= 0)
|
||||||
{
|
{
|
||||||
sql += " AND "+MStorage.COLUMNNAME_M_AttributeSetInstance_ID+"=?";
|
sql += " AND "+MStorageOnHand.COLUMNNAME_M_AttributeSetInstance_ID+"=?";
|
||||||
params.add(M_ASI_ID);
|
params.add(M_ASI_ID);
|
||||||
}
|
}
|
||||||
PreparedStatement pstmt = null;
|
PreparedStatement pstmt = null;
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
BigDecimal qtyOnHand = Env.ZERO;
|
BigDecimal qtyOnHand = Env.ZERO;
|
||||||
BigDecimal qtyOrdered = Env.ZERO;
|
|
||||||
BigDecimal qtyReserved = Env.ZERO;
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
pstmt = DB.prepareStatement(sql, trxName);
|
pstmt = DB.prepareStatement(sql, trxName);
|
||||||
|
@ -209,8 +205,6 @@ public class InventoryTest extends AdempiereTestCase
|
||||||
if (rs.next())
|
if (rs.next())
|
||||||
{
|
{
|
||||||
qtyOnHand = rs.getBigDecimal(1);
|
qtyOnHand = rs.getBigDecimal(1);
|
||||||
qtyReserved = rs.getBigDecimal(2);
|
|
||||||
qtyOrdered = rs.getBigDecimal(3);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (SQLException e)
|
catch (SQLException e)
|
||||||
|
@ -225,18 +219,17 @@ public class InventoryTest extends AdempiereTestCase
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
assertEquals("QtyOnHand not match "+doc, doc.Qty, qtyOnHand);
|
assertEquals("QtyOnHand not match "+doc, doc.Qty, qtyOnHand);
|
||||||
assertEquals("QtyReserved not match "+doc, doc.QtyReserved, qtyReserved);
|
|
||||||
assertEquals("QtyOrdered not match "+doc, doc.QtyOrdered, qtyOrdered);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void dumpStatus(MMDocument doc, String trxName)
|
private void dumpStatus(MMDocument doc, String trxName)
|
||||||
{
|
{
|
||||||
MProduct product = InventoryUtil.getCreateProduct(doc.ProductValue, null);
|
MProduct product = InventoryUtil.getCreateProduct(doc.ProductValue, null);
|
||||||
MStorage[] storage = MStorage.getOfProduct(getCtx(), product.get_ID(), trxName);
|
MStorageOnHand[] storage = MStorageOnHand.getOfProduct(getCtx(), product.get_ID(), trxName);
|
||||||
|
|
||||||
System.err.println("STORAGE____________________________________________________");
|
System.err.println("STORAGE____________________________________________________");
|
||||||
System.err.println(" "+doc);
|
System.err.println(" "+doc);
|
||||||
for (MStorage s : storage)
|
for (MStorageOnHand s : storage)
|
||||||
{
|
{
|
||||||
System.err.println(""+s);
|
System.err.println(""+s);
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,7 +50,8 @@ import org.compiere.model.MAttributeValue;
|
||||||
import org.compiere.model.MProduct;
|
import org.compiere.model.MProduct;
|
||||||
import org.compiere.model.MProductPrice;
|
import org.compiere.model.MProductPrice;
|
||||||
import org.compiere.model.MRole;
|
import org.compiere.model.MRole;
|
||||||
import org.compiere.model.MStorage;
|
import org.compiere.model.MStorageOnHand;
|
||||||
|
import org.compiere.model.MStorageReservation;
|
||||||
import org.compiere.swing.CComboBox;
|
import org.compiere.swing.CComboBox;
|
||||||
import org.compiere.swing.CLabel;
|
import org.compiere.swing.CLabel;
|
||||||
import org.compiere.swing.CPanel;
|
import org.compiere.swing.CPanel;
|
||||||
|
@ -518,7 +519,7 @@ public class VAttributeGrid extends CPanel
|
||||||
formatted = "";
|
formatted = "";
|
||||||
if (m_M_Warehouse_ID != 0)
|
if (m_M_Warehouse_ID != 0)
|
||||||
{
|
{
|
||||||
BigDecimal qty = MStorage.getQtyAvailable(m_M_Warehouse_ID, M_Product_ID, 0, null);
|
BigDecimal qty = MStorageReservation.getQtyAvailable(m_M_Warehouse_ID, M_Product_ID, 0, null);
|
||||||
if (qty == null)
|
if (qty == null)
|
||||||
formatted = "-";
|
formatted = "-";
|
||||||
else
|
else
|
||||||
|
|
|
@ -43,7 +43,8 @@ import org.compiere.model.MAttributeValue;
|
||||||
import org.compiere.model.MProduct;
|
import org.compiere.model.MProduct;
|
||||||
import org.compiere.model.MProductPrice;
|
import org.compiere.model.MProductPrice;
|
||||||
import org.compiere.model.MRole;
|
import org.compiere.model.MRole;
|
||||||
import org.compiere.model.MStorage;
|
import org.compiere.model.MStorageOnHand;
|
||||||
|
import org.compiere.model.MStorageReservation;
|
||||||
import org.compiere.util.CLogger;
|
import org.compiere.util.CLogger;
|
||||||
import org.compiere.util.DB;
|
import org.compiere.util.DB;
|
||||||
import org.compiere.util.DisplayType;
|
import org.compiere.util.DisplayType;
|
||||||
|
@ -607,7 +608,7 @@ public class WAttributeGrid extends ADForm implements EventListener
|
||||||
formatted = "";
|
formatted = "";
|
||||||
if (m_M_Warehouse_ID != 0)
|
if (m_M_Warehouse_ID != 0)
|
||||||
{
|
{
|
||||||
BigDecimal qty = MStorage.getQtyAvailable(m_M_Warehouse_ID, M_Product_ID, 0, null);
|
BigDecimal qty = MStorageReservation.getQtyAvailable(m_M_Warehouse_ID, M_Product_ID, 0, null);
|
||||||
if (qty == null)
|
if (qty == null)
|
||||||
formatted = "-";
|
formatted = "-";
|
||||||
else
|
else
|
||||||
|
|
|
@ -64,6 +64,9 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis
|
||||||
/** Logger. */
|
/** Logger. */
|
||||||
private static CLogger logger = CLogger.getCLogger(WListbox.class);
|
private static CLogger logger = CLogger.getCLogger(WListbox.class);
|
||||||
|
|
||||||
|
/** Is Total Show */
|
||||||
|
private boolean showTotals = false;
|
||||||
|
|
||||||
/** Model Index of Key Column. */
|
/** Model Index of Key Column. */
|
||||||
protected int m_keyColumnIndex = -1;
|
protected int m_keyColumnIndex = -1;
|
||||||
|
|
||||||
|
@ -623,6 +626,8 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis
|
||||||
{
|
{
|
||||||
logger.log(Level.SEVERE, "", exception);
|
logger.log(Level.SEVERE, "", exception);
|
||||||
}
|
}
|
||||||
|
if (getShowTotals())
|
||||||
|
addTotals(m_layout);
|
||||||
// TODO implement this
|
// TODO implement this
|
||||||
//autoSize();
|
//autoSize();
|
||||||
|
|
||||||
|
@ -700,6 +705,8 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis
|
||||||
getModel().setDataAt(data, row, col);
|
getModel().setDataAt(data, row, col);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (getShowTotals())
|
||||||
|
addTotals(m_layout);
|
||||||
// TODO implement this
|
// TODO implement this
|
||||||
//autoSize();
|
//autoSize();
|
||||||
|
|
||||||
|
@ -850,6 +857,23 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis
|
||||||
return this.isMultiple();
|
return this.isMultiple();
|
||||||
} // isMultiSelection
|
} // isMultiSelection
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set if Totals is Show
|
||||||
|
* @param boolean Show
|
||||||
|
*/
|
||||||
|
public void setShowTotals(boolean show)
|
||||||
|
{
|
||||||
|
showTotals= show;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* get if Totals is Show
|
||||||
|
* @param boolean Show
|
||||||
|
*/
|
||||||
|
public boolean getShowTotals()
|
||||||
|
{
|
||||||
|
return showTotals;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set ColorColumn comparison criteria.
|
* Set ColorColumn comparison criteria.
|
||||||
*
|
*
|
||||||
|
@ -1061,4 +1085,79 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis
|
||||||
return m_keyColumnIndex;
|
return m_keyColumnIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adding a new row with the totals
|
||||||
|
*/
|
||||||
|
public void addTotals(ColumnInfo[] layout)
|
||||||
|
{
|
||||||
|
if (getRowCount() == 0 || layout.length == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Object[] total = new Object[layout.length];
|
||||||
|
|
||||||
|
for (int row = 0 ; row < getRowCount(); row ++)
|
||||||
|
{
|
||||||
|
|
||||||
|
for (int col = 0; col < layout.length; col++)
|
||||||
|
{
|
||||||
|
Object data = getModel().getValueAt(row, col);
|
||||||
|
Class<?> c = layout[col].getColClass();
|
||||||
|
if (c == BigDecimal.class)
|
||||||
|
{
|
||||||
|
BigDecimal subtotal = Env.ZERO;
|
||||||
|
if(total[col]!= null)
|
||||||
|
subtotal = (BigDecimal)(total[col]);
|
||||||
|
|
||||||
|
BigDecimal amt = (BigDecimal) data;
|
||||||
|
if(subtotal == null)
|
||||||
|
subtotal = Env.ZERO;
|
||||||
|
if(amt == null )
|
||||||
|
amt = Env.ZERO;
|
||||||
|
total[col] = subtotal.add(amt);
|
||||||
|
}
|
||||||
|
else if (c == Double.class)
|
||||||
|
{
|
||||||
|
Double subtotal = new Double(0);
|
||||||
|
if(total[col] != null)
|
||||||
|
subtotal = (Double)(total[col]);
|
||||||
|
|
||||||
|
Double amt = (Double) data;
|
||||||
|
if(subtotal == null)
|
||||||
|
subtotal = new Double(0);
|
||||||
|
if(amt == null )
|
||||||
|
subtotal = new Double(0);
|
||||||
|
total[col] = subtotal + amt;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//adding total row
|
||||||
|
|
||||||
|
int row = getRowCount() + 1;
|
||||||
|
setRowCount(row);
|
||||||
|
for (int col = 0; col < layout.length; col++)
|
||||||
|
{
|
||||||
|
Class<?> c = layout[col].getColClass();
|
||||||
|
if (c == BigDecimal.class)
|
||||||
|
{
|
||||||
|
setValueAt(total[col] , row - 1, col);
|
||||||
|
}
|
||||||
|
else if (c == Double.class)
|
||||||
|
{
|
||||||
|
setValueAt(total[col] , row -1 , col);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(col == 0 )
|
||||||
|
{
|
||||||
|
setValueAt(" Σ " , row -1 , col);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
setValueAt(null , row - 1, col );
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,7 +88,11 @@ public class DashboardRunnable implements Runnable, Serializable
|
||||||
boolean isEventThread = Events.inEventListener();
|
boolean isEventThread = Events.inEventListener();
|
||||||
if (!isEventThread)
|
if (!isEventThread)
|
||||||
{
|
{
|
||||||
ctx = (Properties)template.getDesktop().getSession().getAttribute(SessionContextListener.SESSION_CTX);
|
try {
|
||||||
|
ctx = (Properties)template.getDesktop().getSession().getAttribute(SessionContextListener.SESSION_CTX);
|
||||||
|
} catch (Exception e) {
|
||||||
|
ctx = null;
|
||||||
|
}
|
||||||
if (ctx == null)
|
if (ctx == null)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -349,7 +349,7 @@ public class WLocatorEditor extends WEditor implements EventListener<Event>, Pro
|
||||||
sql.append(" AND (IsDefault='Y' ") // Default Locator
|
sql.append(" AND (IsDefault='Y' ") // Default Locator
|
||||||
.append("OR EXISTS (SELECT * FROM M_Product p ") // Product Locator
|
.append("OR EXISTS (SELECT * FROM M_Product p ") // Product Locator
|
||||||
.append("WHERE p.M_Locator_ID=M_Locator.M_Locator_ID AND p.M_Product_ID=?)")
|
.append("WHERE p.M_Locator_ID=M_Locator.M_Locator_ID AND p.M_Product_ID=?)")
|
||||||
.append("OR EXISTS (SELECT * FROM M_Storage s ") // Storage Locator
|
.append("OR EXISTS (SELECT * FROM M_StorageOnHand s ") // Storage Locator
|
||||||
.append("WHERE s.M_Locator_ID=M_Locator.M_Locator_ID AND s.M_Product_ID=?))");
|
.append("WHERE s.M_Locator_ID=M_Locator.M_Locator_ID AND s.M_Product_ID=?))");
|
||||||
|
|
||||||
String finalSql = MRole.getDefault(Env.getCtx(), false).addAccessSQL(
|
String finalSql = MRole.getDefault(Env.getCtx(), false).addAccessSQL(
|
||||||
|
|
|
@ -376,7 +376,8 @@ public class InfoProductPanel extends InfoPanel implements EventListener
|
||||||
m_sqlWarehouse = warehouseTbl.prepareTable(s_layoutWarehouse, s_sqlFrom, s_sqlWhere, false, "M_PRODUCT_STOCK_V");
|
m_sqlWarehouse = warehouseTbl.prepareTable(s_layoutWarehouse, s_sqlFrom, s_sqlWhere, false, "M_PRODUCT_STOCK_V");
|
||||||
m_sqlWarehouse += " Group By Warehouse, documentnote ";
|
m_sqlWarehouse += " Group By Warehouse, documentnote ";
|
||||||
warehouseTbl.setMultiSelection(false);
|
warehouseTbl.setMultiSelection(false);
|
||||||
warehouseTbl.autoSize();
|
warehouseTbl.setShowTotals(true);
|
||||||
|
warehouseTbl.autoSize();
|
||||||
warehouseTbl.getModel().addTableModelListener(this);
|
warehouseTbl.getModel().addTableModelListener(this);
|
||||||
|
|
||||||
ColumnInfo[] s_layoutSubstitute = new ColumnInfo[]{
|
ColumnInfo[] s_layoutSubstitute = new ColumnInfo[]{
|
||||||
|
|
|
@ -31,7 +31,8 @@ import org.compiere.model.MMatchInv;
|
||||||
import org.compiere.model.MMatchPO;
|
import org.compiere.model.MMatchPO;
|
||||||
import org.compiere.model.MOrderLine;
|
import org.compiere.model.MOrderLine;
|
||||||
import org.compiere.model.MRole;
|
import org.compiere.model.MRole;
|
||||||
import org.compiere.model.MStorage;
|
import org.compiere.model.MStorageOnHand;
|
||||||
|
import org.compiere.model.MStorageReservation;
|
||||||
import org.compiere.process.DocumentEngine;
|
import org.compiere.process.DocumentEngine;
|
||||||
import org.compiere.util.CLogger;
|
import org.compiere.util.CLogger;
|
||||||
import org.compiere.util.DB;
|
import org.compiere.util.DB;
|
||||||
|
@ -491,11 +492,10 @@ public class Match
|
||||||
success = true;
|
success = true;
|
||||||
// Correct Ordered Qty for Stocked Products (see MOrder.reserveStock / MInOut.processIt)
|
// Correct Ordered Qty for Stocked Products (see MOrder.reserveStock / MInOut.processIt)
|
||||||
if (sLine.getProduct() != null && sLine.getProduct().isStocked())
|
if (sLine.getProduct() != null && sLine.getProduct().isStocked())
|
||||||
success = MStorage.add (Env.getCtx(), sLine.getM_Warehouse_ID(),
|
success = MStorageReservation.add (Env.getCtx(), sLine.getM_Warehouse_ID(),
|
||||||
sLine.getM_Locator_ID(),
|
sLine.getM_Product_ID(),
|
||||||
sLine.getM_Product_ID(),
|
sLine.getM_AttributeSetInstance_ID(), oLine.getM_AttributeSetInstance_ID(),
|
||||||
sLine.getM_AttributeSetInstance_ID(), oLine.getM_AttributeSetInstance_ID(),
|
qty.negate(), false, trxName);
|
||||||
null, null, qty.negate(), trxName);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -51,4 +51,7 @@ public interface IMiniTable
|
||||||
public void repaint();
|
public void repaint();
|
||||||
|
|
||||||
public void autoSize();
|
public void autoSize();
|
||||||
|
|
||||||
|
public void setShowTotals(boolean show);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue