From 29f0a5810ef9927ea5f8a0c0d578d266329980a9 Mon Sep 17 00:00:00 2001 From: Deepak Pansheriya Date: Tue, 1 Jul 2014 21:07:07 -0500 Subject: [PATCH] IDEMPIERE-1770 Allowing manual entry from Attributes tab on shipment/MR line --- .../oracle/views/M_InoutLineMA_Returned.sql | 9 + .../views/M_InoutLineMA_Returned.sql | 9 + .../oracle/201404170743_IDEMPIERE-1770.sql | 272 ++++++++++++++++++ .../oracle/201404200408_IDEMPIERE-1770.sql | 84 ++++++ .../oracle/201405310538_IDEMPIERE-1770.sql | 91 ++++++ .../201404170743_IDEMPIERE-1770.sql | 263 +++++++++++++++++ .../201404200408_IDEMPIERE-1770.sql | 80 ++++++ .../201405310538_IDEMPIERE-1770.sql | 85 ++++++ .../process/InventoryCountCreate.java | 4 +- .../process/InventoryCountUpdate.java | 2 +- .../org/compiere/model/I_M_InOutLineMA.java | 9 + .../compiere/model/I_M_InventoryLineMA.java | 9 + .../compiere/model/I_M_MovementLineMA.java | 9 + .../src/org/compiere/model/MInOut.java | 55 ++-- .../src/org/compiere/model/MInOutLineMA.java | 119 +++++++- .../src/org/compiere/model/MInventory.java | 41 ++- .../org/compiere/model/MInventoryLineMA.java | 66 ++++- .../src/org/compiere/model/MMovement.java | 32 ++- .../org/compiere/model/MMovementLineMA.java | 70 ++++- .../org/compiere/model/MStorageOnHand.java | 36 +++ .../org/compiere/model/X_M_InOutLineMA.java | 23 +- .../compiere/model/X_M_InventoryLineMA.java | 23 +- .../compiere/model/X_M_MovementLineMA.java | 23 +- 23 files changed, 1359 insertions(+), 55 deletions(-) create mode 100644 db/ddlutils/oracle/views/M_InoutLineMA_Returned.sql create mode 100644 db/ddlutils/postgresql/views/M_InoutLineMA_Returned.sql create mode 100644 migration/i2.0z/oracle/201404170743_IDEMPIERE-1770.sql create mode 100644 migration/i2.0z/oracle/201404200408_IDEMPIERE-1770.sql create mode 100644 migration/i2.0z/oracle/201405310538_IDEMPIERE-1770.sql create mode 100644 migration/i2.0z/postgresql/201404170743_IDEMPIERE-1770.sql create mode 100644 migration/i2.0z/postgresql/201404200408_IDEMPIERE-1770.sql create mode 100644 migration/i2.0z/postgresql/201405310538_IDEMPIERE-1770.sql diff --git a/db/ddlutils/oracle/views/M_InoutLineMA_Returned.sql b/db/ddlutils/oracle/views/M_InoutLineMA_Returned.sql new file mode 100644 index 0000000000..9e0d1db11b --- /dev/null +++ b/db/ddlutils/oracle/views/M_InoutLineMA_Returned.sql @@ -0,0 +1,9 @@ +create view M_InoutLineMA_Returned as +SELECT sma.*, sum (crma.movementqty) returnedQty FROM M_InoutLineMA sma inner join M_InoutLine sl on (sma.M_InoutLine_ID =sl.M_InoutLine_ID) +inner join M_InOut sio on (sio.M_InOut_ID=sl.M_InOut_ID) left join M_RMALine rl on (rl.M_InOutLine_ID = sl.M_InOutLine_ID ) +left join M_InoutLine crl on (rl.M_RMALine_ID =crl.M_RMALine_ID) +left join M_inout cr on (cr.M_Inout_ID = crl.M_Inout_ID and not cr.docstatus in ('CO','RE')) +left join M_InoutLineMA crma on (crma.M_InoutLine_Id = crl.M_InoutLine_ID and sma.M_AttributeSetInstance_ID=crma.M_AttributeSetInstance_ID) +group by sma.M_AttributeSetInstance_ID,sma.m_inoutline_id,sma.ad_client_id,sma.ad_org_id,sma.isactive,sma.created,sma.createdby,sma.updated +,sma.updatedby,sma.movementqty,sma.m_inoutlinema_uu,sma.datematerialpolicy; + diff --git a/db/ddlutils/postgresql/views/M_InoutLineMA_Returned.sql b/db/ddlutils/postgresql/views/M_InoutLineMA_Returned.sql new file mode 100644 index 0000000000..9e0d1db11b --- /dev/null +++ b/db/ddlutils/postgresql/views/M_InoutLineMA_Returned.sql @@ -0,0 +1,9 @@ +create view M_InoutLineMA_Returned as +SELECT sma.*, sum (crma.movementqty) returnedQty FROM M_InoutLineMA sma inner join M_InoutLine sl on (sma.M_InoutLine_ID =sl.M_InoutLine_ID) +inner join M_InOut sio on (sio.M_InOut_ID=sl.M_InOut_ID) left join M_RMALine rl on (rl.M_InOutLine_ID = sl.M_InOutLine_ID ) +left join M_InoutLine crl on (rl.M_RMALine_ID =crl.M_RMALine_ID) +left join M_inout cr on (cr.M_Inout_ID = crl.M_Inout_ID and not cr.docstatus in ('CO','RE')) +left join M_InoutLineMA crma on (crma.M_InoutLine_Id = crl.M_InoutLine_ID and sma.M_AttributeSetInstance_ID=crma.M_AttributeSetInstance_ID) +group by sma.M_AttributeSetInstance_ID,sma.m_inoutline_id,sma.ad_client_id,sma.ad_org_id,sma.isactive,sma.created,sma.createdby,sma.updated +,sma.updatedby,sma.movementqty,sma.m_inoutlinema_uu,sma.datematerialpolicy; + diff --git a/migration/i2.0z/oracle/201404170743_IDEMPIERE-1770.sql b/migration/i2.0z/oracle/201404170743_IDEMPIERE-1770.sql new file mode 100644 index 0000000000..670f3793e0 --- /dev/null +++ b/migration/i2.0z/oracle/201404170743_IDEMPIERE-1770.sql @@ -0,0 +1,272 @@ +SET SQLBLANKLINES ON +SET DEFINE OFF + +-- Apr 14, 2014 5:56:06 PM IST +-- IDEMPIERE-1770 Making Attribute tab Manually editable +INSERT INTO AD_Message (MsgType,MsgText,AD_Message_ID,EntityType,AD_Message_UU,Value,IsActive,Updated,CreatedBy,UpdatedBy,Created,AD_Org_ID,AD_Client_ID) VALUES ('I','More than line qty on attribute tab for line ',200270,'D','4726e9ac-3831-4ca4-b860-23b2364160f0','Over_Qty_On_Attribute_Tab','Y',TO_DATE('2014-04-14 17:56:04','YYYY-MM-DD HH24:MI:SS'),100,100,TO_DATE('2014-04-14 17:56:04','YYYY-MM-DD HH24:MI:SS'),0,0) +; + +-- Apr 14, 2014 5:56:27 PM IST +UPDATE AD_Tab SET IsReadOnly='N',Updated=TO_DATE('2014-04-14 17:56:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=751 +; + +-- Apr 14, 2014 6:01:47 PM IST +UPDATE AD_Tab SET IsInsertRecord='Y',Updated=TO_DATE('2014-04-14 18:01:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=751 +; + +-- Apr 14, 2014 6:15:24 PM IST +UPDATE AD_Field SET IsReadOnly='N',Updated=TO_DATE('2014-04-14 18:15:24','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12194 +; + +-- Apr 14, 2014 6:15:38 PM IST +UPDATE AD_Field SET IsReadOnly='N',Updated=TO_DATE('2014-04-14 18:15:38','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12196 +; + + +-- Apr 14, 2014 7:48:10 PM IST +-- IDEMPIERE-1770 Making Attribute tab Manually editable +UPDATE AD_Column SET DefaultValue='@AD_Org_ID@',Updated=TO_DATE('2014-04-14 19:48:10','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=13325 +; + +-- Apr 14, 2014 7:54:02 PM IST +UPDATE AD_Column SET IsParent='N',Updated=TO_DATE('2014-04-14 19:54:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=208342 +; + +-- Apr 14, 2014 7:56:15 PM IST +UPDATE AD_Column SET IsUpdateable='Y',Updated=TO_DATE('2014-04-14 19:56:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=208342 +; + + +-- Apr 15, 2014 4:26:24 PM IST +-- IDEMPIERE-1770 Making Attribute tab Manually editable +INSERT INTO AD_Tab (ImportFields,Processing,IsSingleRow,SeqNo,IsTranslationTab,IsSortTab,HasTree,IsInfoTab,IsReadOnly,IsInsertRecord,IsAdvancedTab,TabLevel,AD_Tab_UU,EntityType,Name,Description,AD_Tab_ID,AD_Org_ID,Created,CreatedBy,Updated,UpdatedBy,IsActive,AD_Table_ID,AD_Client_ID,AD_Window_ID,TreeDisplayedOn) VALUES ('N','N','Y',40,'N','N','N','N','N','Y','N',2,'d771d2e8-42a0-426e-ba58-c4f459bbbc1e','D','Attributes','Product Instance Attribute Material Allocation',200137,0,TO_DATE('2014-04-15 16:26:23','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-04-15 16:26:23','YYYY-MM-DD HH24:MI:SS'),100,'Y',762,0,184,'B') +; + +-- Apr 15, 2014 4:27:05 PM IST +UPDATE AD_Tab SET SeqNo=50,Updated=TO_DATE('2014-04-15 16:27:05','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=688 +; + +-- Apr 15, 2014 4:27:20 PM IST +UPDATE AD_Tab SET SeqNo=60,Updated=TO_DATE('2014-04-15 16:27:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=689 +; + +-- Apr 15, 2014 4:27:56 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,IsDisplayedGrid,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',22,'N','N',13324,10,'Y',202855,'N','A Client is a company or a legal entity. You cannot share data between Clients. Tenant is a synonym for Client.','Client/Tenant for this installation.','Client','59fa77cd-26e2-4603-abf3-371353ba0006','Y','N',100,0,TO_DATE('2014-04-15 16:27:55','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-04-15 16:27:55','YYYY-MM-DD HH24:MI:SS'),'Y','N',0,2,'D',200137) +; + +-- Apr 15, 2014 4:27:57 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,IsAllowCopy,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,XPosition,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',22,'N','N',13325,20,'Y',202856,'N','An organization is a unit of your client or legal entity - examples are store, department. You can share data between organizations.','Organizational entity within client','Organization','e46f8fd7-d445-4664-8232-cef0e6bc362b','Y','N','Y',100,0,TO_DATE('2014-04-15 16:27:56','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-04-15 16:27:56','YYYY-MM-DD HH24:MI:SS'),'Y',4,0,2,'D',200137) +; + +-- Apr 15, 2014 4:27:59 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',22,'N','N',13322,30,'Y',202857,'N','The Shipment/Receipt Line indicates a unique line in a Shipment/Receipt document','Line on Shipment or Receipt document','Shipment/Receipt Line','726ab1f8-fd3f-49b1-a927-b33abb65747e','Y','N',100,0,TO_DATE('2014-04-15 16:27:57','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-04-15 16:27:57','YYYY-MM-DD HH24:MI:SS'),'Y',0,2,'D',200137) +; + +-- Apr 15, 2014 4:27:59 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',22,'N','N',13323,40,'Y',202858,'N','The values of the actual Product Attribute Instances. The product level attributes are defined on Product level.','Product Attribute Set Instance','Attribute Set Instance','b9e93296-2cd5-47d0-81e3-0923434e82c2','Y','N',100,0,TO_DATE('2014-04-15 16:27:59','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-04-15 16:27:59','YYYY-MM-DD HH24:MI:SS'),'Y',0,2,'D',200137) +; + +-- Apr 15, 2014 4:28:00 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',22,'N','N',13331,50,'Y',202859,'N','The Movement Quantity indicates the quantity of a product that has been moved.','Quantity of a product moved.','Movement Quantity','92faf768-01a2-4ad7-b4f4-44161d9c6460','Y','N',100,0,TO_DATE('2014-04-15 16:27:59','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-04-15 16:27:59','YYYY-MM-DD HH24:MI:SS'),'Y',0,2,'D',200137) +; + +-- Apr 15, 2014 4:28:01 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,IsDisplayedGrid,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',36,'N','N',60900,60,'Y',202860,'N','M_InOutLineMA_UU','0c446edf-38f0-4948-8871-591260db1db9','N','N',100,0,TO_DATE('2014-04-15 16:28:00','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-04-15 16:28:00','YYYY-MM-DD HH24:MI:SS'),'Y','N',0,2,'D',200137) +; + +-- Apr 15, 2014 4:28:01 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',7,'N','N',208342,70,'Y',202861,'N','This field is used to record time used for LIFO and FIFO material policy','Time used for LIFO and FIFO Material Policy','Date Material Policy','92265f55-892e-4814-9922-9bf1c35fd43b','Y','N',100,0,TO_DATE('2014-04-15 16:28:01','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-04-15 16:28:01','YYYY-MM-DD HH24:MI:SS'),'Y',0,2,'D',200137) +; + +-- Apr 15, 2014 4:28:02 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,XPosition,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',1,'N','N',13326,80,'Y',202862,'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.','The record is active in the system','Active','13f448e6-c398-4ea2-97e8-89c901f24124','Y','N',100,0,TO_DATE('2014-04-15 16:28:01','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-04-15 16:28:01','YYYY-MM-DD HH24:MI:SS'),'Y',2,0,2,'D',200137) +; + +-- Apr 15, 2014 4:28:44 PM IST +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=202862 +; + +-- Apr 15, 2014 4:28:44 PM IST +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=202860 +; + +-- Apr 15, 2014 4:28:44 PM IST +UPDATE AD_Field SET SeqNo=60,IsDisplayed='Y' WHERE AD_Field_ID=202861 +; + +-- Apr 15, 2014 4:29:26 PM IST +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=202862 +; + +-- Apr 15, 2014 4:29:26 PM IST +UPDATE AD_Field SET SeqNoGrid=10,IsDisplayedGrid='Y' WHERE AD_Field_ID=202858 +; + +-- Apr 15, 2014 4:29:26 PM IST +UPDATE AD_Field SET SeqNoGrid=20,IsDisplayedGrid='Y' WHERE AD_Field_ID=202861 +; + +-- Apr 15, 2014 4:29:26 PM IST +UPDATE AD_Field SET SeqNoGrid=30,IsDisplayedGrid='Y' WHERE AD_Field_ID=202859 +; + +-- Apr 15, 2014 4:29:26 PM IST +UPDATE AD_Field SET SeqNoGrid=40,IsDisplayedGrid='Y' WHERE AD_Field_ID=202856 +; + +-- Apr 15, 2014 4:29:26 PM IST +UPDATE AD_Field SET SeqNoGrid=50,IsDisplayedGrid='Y' WHERE AD_Field_ID=202857 +; + +-- Apr 15, 2014 4:30:34 PM IST +UPDATE AD_Field SET IsReadOnly='Y',Updated=TO_DATE('2014-04-15 16:30:34','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202857 +; + +-- Apr 15, 2014 4:53:49 PM IST +UPDATE AD_Field SET XPosition=4,Updated=TO_DATE('2014-04-15 16:53:49','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202858 +; + +-- Apr 15, 2014 4:54:23 PM IST +UPDATE AD_Field SET XPosition=4,Updated=TO_DATE('2014-04-15 16:54:23','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202861 +; + + +-- Apr 16, 2014 6:24:54 PM IST +-- IDEMPIERE-1770 Making Attribute tab Manually editable +INSERT INTO AD_Tab (ImportFields,Processing,IsSingleRow,SeqNo,IsTranslationTab,IsSortTab,HasTree,IsInfoTab,IsReadOnly,IsInsertRecord,IsAdvancedTab,TabLevel,AD_Tab_UU,EntityType,Name,Description,AD_Tab_ID,AD_Org_ID,Created,CreatedBy,Updated,UpdatedBy,IsActive,AD_Table_ID,AD_Client_ID,AD_Window_ID,TreeDisplayedOn) VALUES ('N','N','Y',40,'N','N','N','N','N','Y','N',2,'8cf5abeb-4146-4581-b353-24ee510bcaff','D','Attributes','Product Instance Attribute Material Allocation',200138,0,TO_DATE('2014-04-16 18:24:52','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-04-16 18:24:52','YYYY-MM-DD HH24:MI:SS'),100,'Y',762,0,53097,'B') +; + +-- Apr 16, 2014 6:25:03 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,IsDisplayedGrid,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',22,'N','N',13324,10,'Y',202863,'N','A Client is a company or a legal entity. You cannot share data between Clients. Tenant is a synonym for Client.','Client/Tenant for this installation.','Client','490b0733-4890-4e19-af23-acd31c1adb2e','Y','N',100,0,TO_DATE('2014-04-16 18:25:02','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-04-16 18:25:02','YYYY-MM-DD HH24:MI:SS'),'Y','N',0,2,'D',200138) +; + +-- Apr 16, 2014 6:25:04 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,IsAllowCopy,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,XPosition,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',22,'N','N',13325,20,'Y',202864,'N','An organization is a unit of your client or legal entity - examples are store, department. You can share data between organizations.','Organizational entity within client','Organization','b4f28546-657c-47cc-9d41-0631c71c1616','Y','N','Y',100,0,TO_DATE('2014-04-16 18:25:03','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-04-16 18:25:03','YYYY-MM-DD HH24:MI:SS'),'Y',4,0,2,'D',200138) +; + +-- Apr 16, 2014 6:25:04 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',22,'N','N',13322,30,'Y',202865,'N','The Shipment/Receipt Line indicates a unique line in a Shipment/Receipt document','Line on Shipment or Receipt document','Shipment/Receipt Line','f83a86f6-472d-494f-8abf-6b5b84f71f99','Y','N',100,0,TO_DATE('2014-04-16 18:25:04','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-04-16 18:25:04','YYYY-MM-DD HH24:MI:SS'),'Y',0,2,'D',200138) +; + +-- Apr 16, 2014 6:25:05 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',22,'N','N',13323,40,'Y',202866,'N','The values of the actual Product Attribute Instances. The product level attributes are defined on Product level.','Product Attribute Set Instance','Attribute Set Instance','a81d331b-79d1-450d-9856-945b0d713556','Y','N',100,0,TO_DATE('2014-04-16 18:25:04','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-04-16 18:25:04','YYYY-MM-DD HH24:MI:SS'),'Y',0,2,'D',200138) +; + +-- Apr 16, 2014 6:25:06 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',22,'N','N',13331,50,'Y',202867,'N','The Movement Quantity indicates the quantity of a product that has been moved.','Quantity of a product moved.','Movement Quantity','637b8625-8cba-4a2c-b67e-fb6d2537e3ae','Y','N',100,0,TO_DATE('2014-04-16 18:25:05','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-04-16 18:25:05','YYYY-MM-DD HH24:MI:SS'),'Y',0,2,'D',200138) +; + +-- Apr 16, 2014 6:25:07 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,IsDisplayedGrid,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',36,'N','N',60900,60,'Y',202868,'N','M_InOutLineMA_UU','153a008e-e046-4014-b466-7c03e7694ff1','N','N',100,0,TO_DATE('2014-04-16 18:25:06','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-04-16 18:25:06','YYYY-MM-DD HH24:MI:SS'),'Y','N',0,2,'D',200138) +; + +-- Apr 16, 2014 6:25:07 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',7,'N','N',208342,70,'Y',202869,'N','This field is used to record time used for LIFO and FIFO material policy','Time used for LIFO and FIFO Material Policy','Date Material Policy','74d11884-f339-481d-a278-3eadc2c7cfde','Y','N',100,0,TO_DATE('2014-04-16 18:25:07','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-04-16 18:25:07','YYYY-MM-DD HH24:MI:SS'),'Y',0,2,'D',200138) +; + +-- Apr 16, 2014 6:25:08 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,XPosition,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',1,'N','N',13326,80,'Y',202870,'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.','The record is active in the system','Active','381c7afe-31bd-4499-a5b5-fbdae4afefaf','Y','N',100,0,TO_DATE('2014-04-16 18:25:07','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-04-16 18:25:07','YYYY-MM-DD HH24:MI:SS'),'Y',2,0,2,'D',200138) +; + +-- Apr 16, 2014 6:25:49 PM IST +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=202870 +; + +-- Apr 16, 2014 6:25:49 PM IST +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=202868 +; + +-- Apr 16, 2014 6:25:49 PM IST +UPDATE AD_Field SET SeqNo=60,IsDisplayed='Y' WHERE AD_Field_ID=202869 +; + +-- Apr 16, 2014 6:27:46 PM IST +UPDATE AD_Field SET IsReadOnly='Y',Updated=TO_DATE('2014-04-16 18:27:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202863 +; + +-- Apr 16, 2014 6:28:41 PM IST +UPDATE AD_Field SET IsReadOnly='Y',Updated=TO_DATE('2014-04-16 18:28:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202864 +; + +-- Apr 16, 2014 6:29:03 PM IST +UPDATE AD_Field SET IsReadOnly='Y',Updated=TO_DATE('2014-04-16 18:29:03','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202865 +; + +-- Apr 16, 2014 6:29:21 PM IST +UPDATE AD_Field SET XPosition=4,Updated=TO_DATE('2014-04-16 18:29:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202866 +; + +-- Apr 16, 2014 6:29:45 PM IST +UPDATE AD_Field SET XPosition=4,Updated=TO_DATE('2014-04-16 18:29:45','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202869 +; + +-- Apr 16, 2014 6:30:00 PM IST +UPDATE AD_Tab SET SeqNo=50,Updated=TO_DATE('2014-04-16 18:30:00','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=53274 +; + +-- Apr 16, 2014 6:30:21 PM IST +UPDATE AD_Tab SET SeqNo=30,Updated=TO_DATE('2014-04-16 18:30:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=200138 +; + +-- Apr 16, 2014 6:30:27 PM IST +UPDATE AD_Tab SET SeqNo=40,Updated=TO_DATE('2014-04-16 18:30:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=53273 +; + +-- Apr 16, 2014 6:30:48 PM IST +UPDATE AD_Tab SET SeqNo=60,Updated=TO_DATE('2014-04-16 18:30:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=53275 +; + + +-- Apr 16, 2014 7:52:20 PM IST +-- IDEMPIERE-1770 Making Attribute tab Manually editable +UPDATE AD_Tab SET IsReadOnly='N', IsInsertRecord='Y',Updated=TO_DATE('2014-04-16 19:52:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=53279 +; + +-- Apr 16, 2014 7:52:44 PM IST +UPDATE AD_Field SET IsReadOnly='N',Updated=TO_DATE('2014-04-16 19:52:44','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=57942 +; + +-- Apr 16, 2014 7:52:52 PM IST +UPDATE AD_Field SET IsReadOnly='N',Updated=TO_DATE('2014-04-16 19:52:52','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=57943 +; + +-- Apr 16, 2014 7:53:07 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,IsDisplayedGrid,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',36,'N','N',60900,60,'Y',202871,'N','M_InOutLineMA_UU','966b40fa-a67b-4014-adf6-6e4e549357e2','N','N',100,0,TO_DATE('2014-04-16 19:53:06','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-04-16 19:53:06','YYYY-MM-DD HH24:MI:SS'),'Y','N',0,2,'D',53279) +; + +-- Apr 16, 2014 7:53:08 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',7,'N','N',208342,70,'Y',202872,'N','This field is used to record time used for LIFO and FIFO material policy','Time used for LIFO and FIFO Material Policy','Date Material Policy','1a789397-4670-40f6-9dfd-2f366bd1deb7','Y','N',100,0,TO_DATE('2014-04-16 19:53:07','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-04-16 19:53:07','YYYY-MM-DD HH24:MI:SS'),'Y',0,2,'D',53279) +; + +-- Apr 16, 2014 7:53:43 PM IST +UPDATE AD_Field SET XPosition=4,Updated=TO_DATE('2014-04-16 19:53:43','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202872 +; + +-- Apr 16, 2014 8:16:21 PM IST +UPDATE AD_Field SET XPosition=4,Updated=TO_DATE('2014-04-16 20:16:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=57942 +; + +-- Apr 16, 2014 8:17:03 PM IST +UPDATE AD_Field SET XPosition=1,Updated=TO_DATE('2014-04-16 20:17:03','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=57943 +; + + +create view M_InoutLineMA_Returned as +SELECT sma.*, sum (crma.movementqty) returnedQty FROM M_InoutLineMA sma inner join M_InoutLine sl on (sma.M_InoutLine_ID =sl.M_InoutLine_ID) +inner join M_InOut sio on (sio.M_InOut_ID=sl.M_InOut_ID) left join M_RMALine rl on (rl.M_InOutLine_ID = sl.M_InOutLine_ID ) +left join M_InoutLine crl on (rl.M_RMALine_ID =crl.M_RMALine_ID) +left join M_inout cr on (cr.M_Inout_ID = crl.M_Inout_ID and not cr.docstatus in ('CO','RE')) +left join M_InoutLineMA crma on (crma.M_InoutLine_Id = crl.M_InoutLine_ID and sma.M_AttributeSetInstance_ID=crma.M_AttributeSetInstance_ID) +group by sma.M_AttributeSetInstance_ID,sma.m_inoutline_id,sma.ad_client_id,sma.ad_org_id,sma.isactive,sma.created,sma.createdby,sma.updated +,sma.updatedby,sma.movementqty,sma.m_inoutlinema_uu,sma.datematerialpolicy; + +SELECT register_migration_script('201404170743_IDEMPIERE-1770.sql') FROM dual +; + + diff --git a/migration/i2.0z/oracle/201404200408_IDEMPIERE-1770.sql b/migration/i2.0z/oracle/201404200408_IDEMPIERE-1770.sql new file mode 100644 index 0000000000..bca43e01ed --- /dev/null +++ b/migration/i2.0z/oracle/201404200408_IDEMPIERE-1770.sql @@ -0,0 +1,84 @@ +SET SQLBLANKLINES ON +SET DEFINE OFF + +-- Apr 18, 2014 12:49:29 AM IST +-- IDEMPIERE-1770 Making Attribute tab Manually editable +UPDATE AD_Tab SET IsReadOnly='N', IsInsertRecord='Y',Updated=TO_DATE('2014-04-18 00:49:29','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=749 +; + +-- Apr 18, 2014 12:49:54 AM IST +UPDATE AD_Field SET IsReadOnly='N',Updated=TO_DATE('2014-04-18 00:49:54','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12182 +; + +-- Apr 18, 2014 12:49:59 AM IST +UPDATE AD_Field SET IsReadOnly='N',Updated=TO_DATE('2014-04-18 00:49:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12184 +; + +-- Apr 18, 2014 12:54:05 AM IST +UPDATE AD_Tab SET IsReadOnly='N', IsInsertRecord='Y',Updated=TO_DATE('2014-04-18 00:54:05','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=750 +; + +-- Apr 18, 2014 12:54:25 AM IST +UPDATE AD_Field SET IsReadOnly='N',Updated=TO_DATE('2014-04-18 00:54:25','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12188 +; + +-- Apr 18, 2014 12:54:27 AM IST +UPDATE AD_Field SET IsReadOnly='N',Updated=TO_DATE('2014-04-18 00:54:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12191 +; + +-- Apr 18, 2014 2:37:40 PM IST +UPDATE AD_Column SET DefaultValue='@AD_Org_ID@',Updated=TO_DATE('2014-04-18 14:37:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=13357 +; + +-- Apr 18, 2014 3:53:52 PM IST +UPDATE AD_Column SET DefaultValue='@AD_Org_ID@',Updated=TO_DATE('2014-04-18 15:53:52','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=13305 +; + + +-- Apr 20, 2014 11:44:44 AM IST +-- IDEMPIERE-1770 Making Attribute tab Manually editable +UPDATE AD_Column SET IsUpdateable='N',Updated=TO_DATE('2014-04-20 11:44:44','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=13355 +; + +-- Apr 20, 2014 11:45:36 AM IST +UPDATE AD_Column SET IsUpdateable='N',Updated=TO_DATE('2014-04-20 11:45:36','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=210653 +; + +-- Apr 20, 2014 11:46:25 AM IST +UPDATE AD_Column SET IsUpdateable='N',Updated=TO_DATE('2014-04-20 11:46:25','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=13303 +; + +-- Apr 20, 2014 11:46:56 AM IST +UPDATE AD_Column SET IsUpdateable='N',Updated=TO_DATE('2014-04-20 11:46:56','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=210651 +; + +-- Apr 20, 2014 12:43:45 PM IST +UPDATE AD_Tab SET IsReadOnly='N', IsInsertRecord='Y',Updated=TO_DATE('2014-04-20 12:43:45','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=53134 +; + +-- Apr 20, 2014 12:43:57 PM IST +UPDATE AD_Field SET IsReadOnly='Y',Updated=TO_DATE('2014-04-20 12:43:57','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=55368 +; + +-- Apr 20, 2014 12:44:24 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,IsDisplayedGrid,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',36,'N','N',60903,60,'Y',202873,'N','M_InventoryLineMA_UU','56f2de3d-9fa1-4e67-bcd5-cdbfc3199071','N','N',100,0,TO_DATE('2014-04-20 12:44:22','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-04-20 12:44:22','YYYY-MM-DD HH24:MI:SS'),'Y','N',0,2,'D',53134) +; + +-- Apr 20, 2014 12:44:25 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',7,'N','N',210653,70,'Y',202874,'N','This field is used to record time used for LIFO and FIFO material policy','Time used for LIFO and FIFO Material Policy','Date Material Policy','0d13babb-408e-43c1-ad73-8b5056ef3f5d','Y','N',100,0,TO_DATE('2014-04-20 12:44:24','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-04-20 12:44:24','YYYY-MM-DD HH24:MI:SS'),'Y',0,2,'D',53134) +; + +-- Apr 20, 2014 12:45:00 PM IST +UPDATE AD_Field SET XPosition=4,Updated=TO_DATE('2014-04-20 12:45:00','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202874 +; + +-- Apr 20, 2014 12:46:49 PM IST +UPDATE AD_Field SET XPosition=4,Updated=TO_DATE('2014-04-20 12:46:49','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=55364 +; + +-- Apr 20, 2014 12:48:30 PM IST +UPDATE AD_Field SET XPosition=1,Updated=TO_DATE('2014-04-20 12:48:30','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=55366 +; + +SELECT register_migration_script('201404200408_IDEMPIERE-1770.sql') FROM dual +; diff --git a/migration/i2.0z/oracle/201405310538_IDEMPIERE-1770.sql b/migration/i2.0z/oracle/201405310538_IDEMPIERE-1770.sql new file mode 100644 index 0000000000..509f947174 --- /dev/null +++ b/migration/i2.0z/oracle/201405310538_IDEMPIERE-1770.sql @@ -0,0 +1,91 @@ +SET SQLBLANKLINES ON +SET DEFINE OFF + +-- May 29, 2014 10:41:22 PM IST +-- I forgot to set the DICTIONARY_ID_COMMENTS System Configurator +INSERT INTO AD_Element (ColumnName,AD_Element_ID,Help,Name,PrintName,AD_Element_UU,Created,Updated,AD_Org_ID,CreatedBy,UpdatedBy,IsActive,AD_Client_ID,EntityType) VALUES ('IsAutoGenerated',202701,'Record is Auto Generated by System.','Auto Generated','Auto Generated','88bf1864-a7b4-490d-836d-ae2eb3a08a97',TO_DATE('2014-05-29 22:41:22','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-05-29 22:41:22','YYYY-MM-DD HH24:MI:SS'),0,100,100,'Y',0,'D') +; + +-- May 29, 2014 10:41:23 PM IST +INSERT INTO AD_Column (SeqNoSelection,IsSyncDatabase,Version,AD_Column_ID,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsUpdateable,ColumnName,DefaultValue,Help,Name,IsAllowCopy,CreatedBy,Updated,AD_Org_ID,IsActive,Created,UpdatedBy,IsToolbarButton,IsAlwaysUpdateable,AD_Client_ID,EntityType,IsEncrypted,IsSecure,FKConstraintType,AD_Element_ID,AD_Table_ID) VALUES (0,'Y',0,211211,'N','N','N',0,'N',1,'N',20,'N','N','N','5fa29a45-c0e0-44a6-be20-63a8e05bb836','N','IsAutoGenerated','N','Record is Auto Generated by System.','Auto Generated','N',100,TO_DATE('2014-05-29 22:41:23','YYYY-MM-DD HH24:MI:SS'),0,'Y',TO_DATE('2014-05-29 22:41:23','YYYY-MM-DD HH24:MI:SS'),100,'N','N',0,'D','N','N','N',202701,762) +; + +-- May 29, 2014 10:41:23 PM IST +ALTER TABLE M_InOutLineMA ADD IsAutoGenerated CHAR(1) DEFAULT 'N' CHECK (IsAutoGenerated IN ('Y','N')) +; + +-- May 29, 2014 10:41:24 PM IST +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,IsDisplayedGrid,XPosition,IsQuickEntry,AD_Client_ID,ColumnSpan,NumLines,IsAdvancedField,IsDefaultFocus,EntityType) VALUES ('N',751,1,'N','N',211211,70,'Y',202878,'Y','Record is Auto Generated by System.','Auto Generated','d94f1477-cb26-41ec-a677-4162d13f5339','Y','N',100,0,TO_DATE('2014-05-29 22:41:24','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-05-29 22:41:24','YYYY-MM-DD HH24:MI:SS'),'Y','Y',2,'N',0,2,1,'N','N','D') +; + +-- May 29, 2014 10:41:24 PM IST +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,IsDisplayedGrid,XPosition,IsQuickEntry,AD_Client_ID,ColumnSpan,NumLines,IsAdvancedField,IsDefaultFocus,EntityType) VALUES ('N',200137,1,'N','N',211211,70,'Y',202879,'Y','Record is Auto Generated by System.','Auto Generated','c50c3d51-cc6a-49a1-919a-2ebd13fbc994','Y','N',100,0,TO_DATE('2014-05-29 22:41:24','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-05-29 22:41:24','YYYY-MM-DD HH24:MI:SS'),'Y','Y',2,'N',0,2,1,'N','N','D') +; + +-- May 29, 2014 10:41:25 PM IST +INSERT INTO AD_Column (SeqNoSelection,IsSyncDatabase,Version,AD_Column_ID,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsUpdateable,ColumnName,DefaultValue,Help,Name,IsAllowCopy,CreatedBy,Updated,AD_Org_ID,IsActive,Created,UpdatedBy,IsToolbarButton,IsAlwaysUpdateable,AD_Client_ID,EntityType,IsEncrypted,IsSecure,FKConstraintType,AD_Element_ID,AD_Table_ID) VALUES (0,'Y',0,211212,'N','N','N',0,'N',1,'N',20,'N','N','N','6d814e7b-3f7e-4f51-91f0-f5d6a80a9ec8','N','IsAutoGenerated','N','Record is Auto Generated by System.','Auto Generated','N',100,TO_DATE('2014-05-29 22:41:25','YYYY-MM-DD HH24:MI:SS'),0,'Y',TO_DATE('2014-05-29 22:41:25','YYYY-MM-DD HH24:MI:SS'),100,'N','N',0,'U','N','N','N',202701,763) +; + +-- May 29, 2014 10:41:25 PM IST +ALTER TABLE M_InventoryLineMA ADD IsAutoGenerated CHAR(1) DEFAULT 'N' CHECK (IsAutoGenerated IN ('Y','N')) +; + +-- May 29, 2014 10:41:25 PM IST +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,IsDisplayedGrid,XPosition,IsQuickEntry,AD_Client_ID,ColumnSpan,NumLines,IsAdvancedField,IsDefaultFocus,EntityType) VALUES ('N',749,1,'N','N',211212,70,'Y',202880,'Y','Record is Auto Generated by System.','Auto Generated','040f311d-d321-46ac-a1b8-0650df7b9b8b','Y','N',100,0,TO_DATE('2014-05-29 22:41:25','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-05-29 22:41:25','YYYY-MM-DD HH24:MI:SS'),'Y','Y',2,'N',0,2,1,'N','N','U') +; + +-- May 29, 2014 10:41:25 PM IST +INSERT INTO AD_Column (SeqNoSelection,IsSyncDatabase,Version,AD_Column_ID,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsUpdateable,ColumnName,DefaultValue,Help,Name,IsAllowCopy,CreatedBy,Updated,AD_Org_ID,IsActive,Created,UpdatedBy,IsToolbarButton,IsAlwaysUpdateable,AD_Client_ID,EntityType,IsEncrypted,IsSecure,FKConstraintType,AD_Element_ID,AD_Table_ID) VALUES (0,'Y',0,211213,'N','N','N',0,'N',1,'N',20,'N','N','N','b41d414b-71e2-4df9-a8b7-1c30119eebbf','N','IsAutoGenerated','N','Record is Auto Generated by System.','Auto Generated','N',100,TO_DATE('2014-05-29 22:41:25','YYYY-MM-DD HH24:MI:SS'),0,'Y',TO_DATE('2014-05-29 22:41:25','YYYY-MM-DD HH24:MI:SS'),100,'N','N',0,'U','N','N','N',202701,764) +; + +-- May 29, 2014 10:41:25 PM IST +ALTER TABLE M_MovementLineMA ADD IsAutoGenerated CHAR(1) DEFAULT 'N' CHECK (IsAutoGenerated IN ('Y','N')) +; + +-- May 29, 2014 10:41:25 PM IST +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,IsDisplayedGrid,XPosition,IsQuickEntry,AD_Client_ID,ColumnSpan,NumLines,IsAdvancedField,IsDefaultFocus,EntityType) VALUES ('N',750,1,'N','N',211213,70,'Y',202881,'Y','Record is Auto Generated by System.','Auto Generated','9e2cc848-53dc-4ad8-916a-bf58ff5c3184','Y','N',100,0,TO_DATE('2014-05-29 22:41:25','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-05-29 22:41:25','YYYY-MM-DD HH24:MI:SS'),'Y','Y',2,'N',0,2,1,'N','N','U') +; + +-- May 29, 2014 10:41:26 PM IST +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,IsDisplayedGrid,XPosition,IsQuickEntry,AD_Client_ID,ColumnSpan,NumLines,IsAdvancedField,IsDefaultFocus,EntityType) VALUES ('N',53134,1,'N','N',211212,80,'Y',202882,'Y','Record is Auto Generated by System.','Auto Generated','c597cd68-10ed-46b0-8d80-f50e68d5f89b','Y','N',100,0,TO_DATE('2014-05-29 22:41:25','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-05-29 22:41:25','YYYY-MM-DD HH24:MI:SS'),'Y','Y',2,'N',0,2,1,'N','N','U') +; + + +-- May 29, 2014 11:01:22 PM IST +-- I forgot to set the DICTIONARY_ID_COMMENTS System Configurator +UPDATE AD_Column SET DefaultValue='1',Updated=TO_DATE('2014-05-29 23:01:22','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=13331 +; + +-- May 29, 2014 11:01:27 PM IST +ALTER TABLE M_InOutLineMA MODIFY MovementQty NUMBER DEFAULT 1 +; + +-- May 29, 2014 11:01:27 PM IST +UPDATE M_InOutLineMA SET MovementQty=1 WHERE MovementQty IS NULL +; + +-- May 29, 2014 11:04:42 PM IST +UPDATE AD_Column SET DefaultValue='1',Updated=TO_DATE('2014-05-29 23:04:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=13363 +; + +-- May 29, 2014 11:04:47 PM IST +ALTER TABLE M_InventoryLineMA MODIFY MovementQty NUMBER DEFAULT 1 +; + +-- May 29, 2014 11:04:47 PM IST +UPDATE M_InventoryLineMA SET MovementQty=1 WHERE MovementQty IS NULL +; + +-- May 29, 2014 11:06:10 PM IST +UPDATE AD_Column SET DefaultValue='1',Updated=TO_DATE('2014-05-29 23:06:10','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=13311 +; + +-- May 29, 2014 11:06:14 PM IST +ALTER TABLE M_MovementLineMA MODIFY MovementQty NUMBER DEFAULT 1 +; + + + + +SELECT register_migration_script('201405310538_IDEMPIERE-1770.sql') FROM dual +; \ No newline at end of file diff --git a/migration/i2.0z/postgresql/201404170743_IDEMPIERE-1770.sql b/migration/i2.0z/postgresql/201404170743_IDEMPIERE-1770.sql new file mode 100644 index 0000000000..cb2b2a93cb --- /dev/null +++ b/migration/i2.0z/postgresql/201404170743_IDEMPIERE-1770.sql @@ -0,0 +1,263 @@ +-- Apr 14, 2014 5:56:06 PM IST +-- IDEMPIERE-1770 Making Attribute tab Manually editable +INSERT INTO AD_Message (MsgType,MsgText,AD_Message_ID,EntityType,AD_Message_UU,Value,IsActive,Updated,CreatedBy,UpdatedBy,Created,AD_Org_ID,AD_Client_ID) VALUES ('I','More than line qty on attribute tab for line ',200270,'D','4726e9ac-3831-4ca4-b860-23b2364160f0','Over_Qty_On_Attribute_Tab','Y',TO_TIMESTAMP('2014-04-14 17:56:04','YYYY-MM-DD HH24:MI:SS'),100,100,TO_TIMESTAMP('2014-04-14 17:56:04','YYYY-MM-DD HH24:MI:SS'),0,0) +; + +-- Apr 14, 2014 5:56:27 PM IST +UPDATE AD_Tab SET IsReadOnly='N',Updated=TO_TIMESTAMP('2014-04-14 17:56:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=751 +; + +-- Apr 14, 2014 6:01:47 PM IST +UPDATE AD_Tab SET IsInsertRecord='Y',Updated=TO_TIMESTAMP('2014-04-14 18:01:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=751 +; + +-- Apr 14, 2014 6:15:24 PM IST +UPDATE AD_Field SET IsReadOnly='N',Updated=TO_TIMESTAMP('2014-04-14 18:15:24','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12194 +; + +-- Apr 14, 2014 6:15:38 PM IST +UPDATE AD_Field SET IsReadOnly='N',Updated=TO_TIMESTAMP('2014-04-14 18:15:38','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12196 +; + +-- Apr 14, 2014 7:48:10 PM IST +-- IDEMPIERE-1770 Making Attribute tab Manually editable +UPDATE AD_Column SET DefaultValue='@AD_Org_ID@',Updated=TO_TIMESTAMP('2014-04-14 19:48:10','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=13325 +; + +-- Apr 14, 2014 7:54:02 PM IST +UPDATE AD_Column SET IsParent='N',Updated=TO_TIMESTAMP('2014-04-14 19:54:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=208342 +; + +-- Apr 14, 2014 7:56:15 PM IST +UPDATE AD_Column SET IsUpdateable='Y',Updated=TO_TIMESTAMP('2014-04-14 19:56:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=208342 +; + +-- Apr 15, 2014 4:26:24 PM IST +-- IDEMPIERE-1770 Making Attribute tab Manually editable +INSERT INTO AD_Tab (ImportFields,Processing,IsSingleRow,SeqNo,IsTranslationTab,IsSortTab,HasTree,IsInfoTab,IsReadOnly,IsInsertRecord,IsAdvancedTab,TabLevel,AD_Tab_UU,EntityType,Name,Description,AD_Tab_ID,AD_Org_ID,Created,CreatedBy,Updated,UpdatedBy,IsActive,AD_Table_ID,AD_Client_ID,AD_Window_ID,TreeDisplayedOn) VALUES ('N','N','Y',40,'N','N','N','N','N','Y','N',2,'d771d2e8-42a0-426e-ba58-c4f459bbbc1e','D','Attributes','Product Instance Attribute Material Allocation',200137,0,TO_TIMESTAMP('2014-04-15 16:26:23','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-04-15 16:26:23','YYYY-MM-DD HH24:MI:SS'),100,'Y',762,0,184,'B') +; + +-- Apr 15, 2014 4:27:05 PM IST +UPDATE AD_Tab SET SeqNo=50,Updated=TO_TIMESTAMP('2014-04-15 16:27:05','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=688 +; + +-- Apr 15, 2014 4:27:20 PM IST +UPDATE AD_Tab SET SeqNo=60,Updated=TO_TIMESTAMP('2014-04-15 16:27:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=689 +; + +-- Apr 15, 2014 4:27:56 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,IsDisplayedGrid,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',22,'N','N',13324,10,'Y',202855,'N','A Client is a company or a legal entity. You cannot share data between Clients. Tenant is a synonym for Client.','Client/Tenant for this installation.','Client','59fa77cd-26e2-4603-abf3-371353ba0006','Y','N',100,0,TO_TIMESTAMP('2014-04-15 16:27:55','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-04-15 16:27:55','YYYY-MM-DD HH24:MI:SS'),'Y','N',0,2,'D',200137) +; + +-- Apr 15, 2014 4:27:57 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,IsAllowCopy,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,XPosition,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',22,'N','N',13325,20,'Y',202856,'N','An organization is a unit of your client or legal entity - examples are store, department. You can share data between organizations.','Organizational entity within client','Organization','e46f8fd7-d445-4664-8232-cef0e6bc362b','Y','N','Y',100,0,TO_TIMESTAMP('2014-04-15 16:27:56','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-04-15 16:27:56','YYYY-MM-DD HH24:MI:SS'),'Y',4,0,2,'D',200137) +; + +-- Apr 15, 2014 4:27:59 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',22,'N','N',13322,30,'Y',202857,'N','The Shipment/Receipt Line indicates a unique line in a Shipment/Receipt document','Line on Shipment or Receipt document','Shipment/Receipt Line','726ab1f8-fd3f-49b1-a927-b33abb65747e','Y','N',100,0,TO_TIMESTAMP('2014-04-15 16:27:57','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-04-15 16:27:57','YYYY-MM-DD HH24:MI:SS'),'Y',0,2,'D',200137) +; + +-- Apr 15, 2014 4:27:59 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',22,'N','N',13323,40,'Y',202858,'N','The values of the actual Product Attribute Instances. The product level attributes are defined on Product level.','Product Attribute Set Instance','Attribute Set Instance','b9e93296-2cd5-47d0-81e3-0923434e82c2','Y','N',100,0,TO_TIMESTAMP('2014-04-15 16:27:59','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-04-15 16:27:59','YYYY-MM-DD HH24:MI:SS'),'Y',0,2,'D',200137) +; + +-- Apr 15, 2014 4:28:00 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',22,'N','N',13331,50,'Y',202859,'N','The Movement Quantity indicates the quantity of a product that has been moved.','Quantity of a product moved.','Movement Quantity','92faf768-01a2-4ad7-b4f4-44161d9c6460','Y','N',100,0,TO_TIMESTAMP('2014-04-15 16:27:59','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-04-15 16:27:59','YYYY-MM-DD HH24:MI:SS'),'Y',0,2,'D',200137) +; + +-- Apr 15, 2014 4:28:01 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,IsDisplayedGrid,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',36,'N','N',60900,60,'Y',202860,'N','M_InOutLineMA_UU','0c446edf-38f0-4948-8871-591260db1db9','N','N',100,0,TO_TIMESTAMP('2014-04-15 16:28:00','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-04-15 16:28:00','YYYY-MM-DD HH24:MI:SS'),'Y','N',0,2,'D',200137) +; + +-- Apr 15, 2014 4:28:01 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',7,'N','N',208342,70,'Y',202861,'N','This field is used to record time used for LIFO and FIFO material policy','Time used for LIFO and FIFO Material Policy','Date Material Policy','92265f55-892e-4814-9922-9bf1c35fd43b','Y','N',100,0,TO_TIMESTAMP('2014-04-15 16:28:01','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-04-15 16:28:01','YYYY-MM-DD HH24:MI:SS'),'Y',0,2,'D',200137) +; + +-- Apr 15, 2014 4:28:02 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,XPosition,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',1,'N','N',13326,80,'Y',202862,'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.','The record is active in the system','Active','13f448e6-c398-4ea2-97e8-89c901f24124','Y','N',100,0,TO_TIMESTAMP('2014-04-15 16:28:01','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-04-15 16:28:01','YYYY-MM-DD HH24:MI:SS'),'Y',2,0,2,'D',200137) +; + +-- Apr 15, 2014 4:28:44 PM IST +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=202862 +; + +-- Apr 15, 2014 4:28:44 PM IST +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=202860 +; + +-- Apr 15, 2014 4:28:44 PM IST +UPDATE AD_Field SET SeqNo=60,IsDisplayed='Y' WHERE AD_Field_ID=202861 +; + +-- Apr 15, 2014 4:29:26 PM IST +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=202862 +; + +-- Apr 15, 2014 4:29:26 PM IST +UPDATE AD_Field SET SeqNoGrid=10,IsDisplayedGrid='Y' WHERE AD_Field_ID=202858 +; + +-- Apr 15, 2014 4:29:26 PM IST +UPDATE AD_Field SET SeqNoGrid=20,IsDisplayedGrid='Y' WHERE AD_Field_ID=202861 +; + +-- Apr 15, 2014 4:29:26 PM IST +UPDATE AD_Field SET SeqNoGrid=30,IsDisplayedGrid='Y' WHERE AD_Field_ID=202859 +; + +-- Apr 15, 2014 4:29:26 PM IST +UPDATE AD_Field SET SeqNoGrid=40,IsDisplayedGrid='Y' WHERE AD_Field_ID=202856 +; + +-- Apr 15, 2014 4:29:26 PM IST +UPDATE AD_Field SET SeqNoGrid=50,IsDisplayedGrid='Y' WHERE AD_Field_ID=202857 +; + +-- Apr 15, 2014 4:30:34 PM IST +UPDATE AD_Field SET IsReadOnly='Y',Updated=TO_TIMESTAMP('2014-04-15 16:30:34','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202857 +; + +-- Apr 15, 2014 4:53:49 PM IST +UPDATE AD_Field SET XPosition=4,Updated=TO_TIMESTAMP('2014-04-15 16:53:49','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202858 +; + +-- Apr 15, 2014 4:54:23 PM IST +UPDATE AD_Field SET XPosition=4,Updated=TO_TIMESTAMP('2014-04-15 16:54:23','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202861 +; + +-- Apr 16, 2014 6:24:54 PM IST +-- IDEMPIERE-1770 Making Attribute tab Manually editable +INSERT INTO AD_Tab (ImportFields,Processing,IsSingleRow,SeqNo,IsTranslationTab,IsSortTab,HasTree,IsInfoTab,IsReadOnly,IsInsertRecord,IsAdvancedTab,TabLevel,AD_Tab_UU,EntityType,Name,Description,AD_Tab_ID,AD_Org_ID,Created,CreatedBy,Updated,UpdatedBy,IsActive,AD_Table_ID,AD_Client_ID,AD_Window_ID,TreeDisplayedOn) VALUES ('N','N','Y',40,'N','N','N','N','N','Y','N',2,'8cf5abeb-4146-4581-b353-24ee510bcaff','D','Attributes','Product Instance Attribute Material Allocation',200138,0,TO_TIMESTAMP('2014-04-16 18:24:52','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-04-16 18:24:52','YYYY-MM-DD HH24:MI:SS'),100,'Y',762,0,53097,'B') +; + +-- Apr 16, 2014 6:25:03 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,IsDisplayedGrid,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',22,'N','N',13324,10,'Y',202863,'N','A Client is a company or a legal entity. You cannot share data between Clients. Tenant is a synonym for Client.','Client/Tenant for this installation.','Client','490b0733-4890-4e19-af23-acd31c1adb2e','Y','N',100,0,TO_TIMESTAMP('2014-04-16 18:25:02','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-04-16 18:25:02','YYYY-MM-DD HH24:MI:SS'),'Y','N',0,2,'D',200138) +; + +-- Apr 16, 2014 6:25:04 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,IsAllowCopy,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,XPosition,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',22,'N','N',13325,20,'Y',202864,'N','An organization is a unit of your client or legal entity - examples are store, department. You can share data between organizations.','Organizational entity within client','Organization','b4f28546-657c-47cc-9d41-0631c71c1616','Y','N','Y',100,0,TO_TIMESTAMP('2014-04-16 18:25:03','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-04-16 18:25:03','YYYY-MM-DD HH24:MI:SS'),'Y',4,0,2,'D',200138) +; + +-- Apr 16, 2014 6:25:04 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',22,'N','N',13322,30,'Y',202865,'N','The Shipment/Receipt Line indicates a unique line in a Shipment/Receipt document','Line on Shipment or Receipt document','Shipment/Receipt Line','f83a86f6-472d-494f-8abf-6b5b84f71f99','Y','N',100,0,TO_TIMESTAMP('2014-04-16 18:25:04','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-04-16 18:25:04','YYYY-MM-DD HH24:MI:SS'),'Y',0,2,'D',200138) +; + +-- Apr 16, 2014 6:25:05 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',22,'N','N',13323,40,'Y',202866,'N','The values of the actual Product Attribute Instances. The product level attributes are defined on Product level.','Product Attribute Set Instance','Attribute Set Instance','a81d331b-79d1-450d-9856-945b0d713556','Y','N',100,0,TO_TIMESTAMP('2014-04-16 18:25:04','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-04-16 18:25:04','YYYY-MM-DD HH24:MI:SS'),'Y',0,2,'D',200138) +; + +-- Apr 16, 2014 6:25:06 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',22,'N','N',13331,50,'Y',202867,'N','The Movement Quantity indicates the quantity of a product that has been moved.','Quantity of a product moved.','Movement Quantity','637b8625-8cba-4a2c-b67e-fb6d2537e3ae','Y','N',100,0,TO_TIMESTAMP('2014-04-16 18:25:05','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-04-16 18:25:05','YYYY-MM-DD HH24:MI:SS'),'Y',0,2,'D',200138) +; + +-- Apr 16, 2014 6:25:07 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,IsDisplayedGrid,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',36,'N','N',60900,60,'Y',202868,'N','M_InOutLineMA_UU','153a008e-e046-4014-b466-7c03e7694ff1','N','N',100,0,TO_TIMESTAMP('2014-04-16 18:25:06','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-04-16 18:25:06','YYYY-MM-DD HH24:MI:SS'),'Y','N',0,2,'D',200138) +; + +-- Apr 16, 2014 6:25:07 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',7,'N','N',208342,70,'Y',202869,'N','This field is used to record time used for LIFO and FIFO material policy','Time used for LIFO and FIFO Material Policy','Date Material Policy','74d11884-f339-481d-a278-3eadc2c7cfde','Y','N',100,0,TO_TIMESTAMP('2014-04-16 18:25:07','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-04-16 18:25:07','YYYY-MM-DD HH24:MI:SS'),'Y',0,2,'D',200138) +; + +-- Apr 16, 2014 6:25:08 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,XPosition,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',1,'N','N',13326,80,'Y',202870,'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.','The record is active in the system','Active','381c7afe-31bd-4499-a5b5-fbdae4afefaf','Y','N',100,0,TO_TIMESTAMP('2014-04-16 18:25:07','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-04-16 18:25:07','YYYY-MM-DD HH24:MI:SS'),'Y',2,0,2,'D',200138) +; + +-- Apr 16, 2014 6:25:49 PM IST +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=202870 +; + +-- Apr 16, 2014 6:25:49 PM IST +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=202868 +; + +-- Apr 16, 2014 6:25:49 PM IST +UPDATE AD_Field SET SeqNo=60,IsDisplayed='Y' WHERE AD_Field_ID=202869 +; + +-- Apr 16, 2014 6:27:46 PM IST +UPDATE AD_Field SET IsReadOnly='Y',Updated=TO_TIMESTAMP('2014-04-16 18:27:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202863 +; + +-- Apr 16, 2014 6:28:41 PM IST +UPDATE AD_Field SET IsReadOnly='Y',Updated=TO_TIMESTAMP('2014-04-16 18:28:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202864 +; + +-- Apr 16, 2014 6:29:03 PM IST +UPDATE AD_Field SET IsReadOnly='Y',Updated=TO_TIMESTAMP('2014-04-16 18:29:03','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202865 +; + +-- Apr 16, 2014 6:29:21 PM IST +UPDATE AD_Field SET XPosition=4,Updated=TO_TIMESTAMP('2014-04-16 18:29:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202866 +; + +-- Apr 16, 2014 6:29:45 PM IST +UPDATE AD_Field SET XPosition=4,Updated=TO_TIMESTAMP('2014-04-16 18:29:45','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202869 +; + +-- Apr 16, 2014 6:30:00 PM IST +UPDATE AD_Tab SET SeqNo=50,Updated=TO_TIMESTAMP('2014-04-16 18:30:00','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=53274 +; + +-- Apr 16, 2014 6:30:21 PM IST +UPDATE AD_Tab SET SeqNo=30,Updated=TO_TIMESTAMP('2014-04-16 18:30:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=200138 +; + +-- Apr 16, 2014 6:30:27 PM IST +UPDATE AD_Tab SET SeqNo=40,Updated=TO_TIMESTAMP('2014-04-16 18:30:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=53273 +; + +-- Apr 16, 2014 6:30:48 PM IST +UPDATE AD_Tab SET SeqNo=60,Updated=TO_TIMESTAMP('2014-04-16 18:30:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=53275 +; + +-- Apr 16, 2014 7:52:20 PM IST +-- IDEMPIERE-1770 Making Attribute tab Manually editable +UPDATE AD_Tab SET IsReadOnly='N', IsInsertRecord='Y',Updated=TO_TIMESTAMP('2014-04-16 19:52:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=53279 +; + +-- Apr 16, 2014 7:52:44 PM IST +UPDATE AD_Field SET IsReadOnly='N',Updated=TO_TIMESTAMP('2014-04-16 19:52:44','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=57942 +; + +-- Apr 16, 2014 7:52:52 PM IST +UPDATE AD_Field SET IsReadOnly='N',Updated=TO_TIMESTAMP('2014-04-16 19:52:52','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=57943 +; + +-- Apr 16, 2014 7:53:07 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,IsDisplayedGrid,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',36,'N','N',60900,60,'Y',202871,'N','M_InOutLineMA_UU','966b40fa-a67b-4014-adf6-6e4e549357e2','N','N',100,0,TO_TIMESTAMP('2014-04-16 19:53:06','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-04-16 19:53:06','YYYY-MM-DD HH24:MI:SS'),'Y','N',0,2,'D',53279) +; + +-- Apr 16, 2014 7:53:08 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',7,'N','N',208342,70,'Y',202872,'N','This field is used to record time used for LIFO and FIFO material policy','Time used for LIFO and FIFO Material Policy','Date Material Policy','1a789397-4670-40f6-9dfd-2f366bd1deb7','Y','N',100,0,TO_TIMESTAMP('2014-04-16 19:53:07','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-04-16 19:53:07','YYYY-MM-DD HH24:MI:SS'),'Y',0,2,'D',53279) +; + +-- Apr 16, 2014 7:53:43 PM IST +UPDATE AD_Field SET XPosition=4,Updated=TO_TIMESTAMP('2014-04-16 19:53:43','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202872 +; + +-- Apr 16, 2014 8:16:21 PM IST +UPDATE AD_Field SET XPosition=4,Updated=TO_TIMESTAMP('2014-04-16 20:16:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=57942 +; + +-- Apr 16, 2014 8:17:03 PM IST +UPDATE AD_Field SET XPosition=1,Updated=TO_TIMESTAMP('2014-04-16 20:17:03','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=57943 +; + +create view M_InoutLineMA_Returned as +SELECT sma.*, sum (crma.movementqty) returnedQty FROM M_InoutLineMA sma inner join M_InoutLine sl on (sma.M_InoutLine_ID =sl.M_InoutLine_ID) +inner join M_InOut sio on (sio.M_InOut_ID=sl.M_InOut_ID) left join M_RMALine rl on (rl.M_InOutLine_ID = sl.M_InOutLine_ID ) +left join M_InoutLine crl on (rl.M_RMALine_ID =crl.M_RMALine_ID) +left join M_inout cr on (cr.M_Inout_ID = crl.M_Inout_ID and not cr.docstatus in ('CO','RE')) +left join M_InoutLineMA crma on (crma.M_InoutLine_Id = crl.M_InoutLine_ID and sma.M_AttributeSetInstance_ID=crma.M_AttributeSetInstance_ID) +group by sma.M_AttributeSetInstance_ID,sma.m_inoutline_id,sma.ad_client_id,sma.ad_org_id,sma.isactive,sma.created,sma.createdby,sma.updated +,sma.updatedby,sma.movementqty,sma.m_inoutlinema_uu,sma.datematerialpolicy; + +SELECT register_migration_script('201404170743_IDEMPIERE-1770.sql') FROM dual +; + diff --git a/migration/i2.0z/postgresql/201404200408_IDEMPIERE-1770.sql b/migration/i2.0z/postgresql/201404200408_IDEMPIERE-1770.sql new file mode 100644 index 0000000000..0e7b97979c --- /dev/null +++ b/migration/i2.0z/postgresql/201404200408_IDEMPIERE-1770.sql @@ -0,0 +1,80 @@ +-- Apr 18, 2014 12:49:29 AM IST +-- IDEMPIERE-1770 Making Attribute tab Manually editable +UPDATE AD_Tab SET IsReadOnly='N', IsInsertRecord='Y',Updated=TO_TIMESTAMP('2014-04-18 00:49:29','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=749 +; + +-- Apr 18, 2014 12:49:54 AM IST +UPDATE AD_Field SET IsReadOnly='N',Updated=TO_TIMESTAMP('2014-04-18 00:49:54','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12182 +; + +-- Apr 18, 2014 12:49:59 AM IST +UPDATE AD_Field SET IsReadOnly='N',Updated=TO_TIMESTAMP('2014-04-18 00:49:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12184 +; + +-- Apr 18, 2014 12:54:05 AM IST +UPDATE AD_Tab SET IsReadOnly='N', IsInsertRecord='Y',Updated=TO_TIMESTAMP('2014-04-18 00:54:05','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=750 +; + +-- Apr 18, 2014 12:54:25 AM IST +UPDATE AD_Field SET IsReadOnly='N',Updated=TO_TIMESTAMP('2014-04-18 00:54:25','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12188 +; + +-- Apr 18, 2014 12:54:27 AM IST +UPDATE AD_Field SET IsReadOnly='N',Updated=TO_TIMESTAMP('2014-04-18 00:54:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12191 +; + +-- Apr 18, 2014 2:37:40 PM IST +UPDATE AD_Column SET DefaultValue='@AD_Org_ID@',Updated=TO_TIMESTAMP('2014-04-18 14:37:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=13357 +; + +-- Apr 18, 2014 3:53:52 PM IST +UPDATE AD_Column SET DefaultValue='@AD_Org_ID@',Updated=TO_TIMESTAMP('2014-04-18 15:53:52','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=13305 +; + +-- Apr 20, 2014 11:44:45 AM IST +-- IDEMPIERE-1770 Making Attribute tab Manually editable +UPDATE AD_Column SET IsUpdateable='N',Updated=TO_TIMESTAMP('2014-04-20 11:44:44','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=13355 +; + +-- Apr 20, 2014 11:45:36 AM IST +UPDATE AD_Column SET IsUpdateable='N',Updated=TO_TIMESTAMP('2014-04-20 11:45:36','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=210653 +; + +-- Apr 20, 2014 11:46:25 AM IST +UPDATE AD_Column SET IsUpdateable='N',Updated=TO_TIMESTAMP('2014-04-20 11:46:25','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=13303 +; + +-- Apr 20, 2014 11:46:56 AM IST +UPDATE AD_Column SET IsUpdateable='N',Updated=TO_TIMESTAMP('2014-04-20 11:46:56','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=210651 +; + +-- Apr 20, 2014 12:43:45 PM IST +UPDATE AD_Tab SET IsReadOnly='N', IsInsertRecord='Y',Updated=TO_TIMESTAMP('2014-04-20 12:43:45','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=53134 +; + +-- Apr 20, 2014 12:43:57 PM IST +UPDATE AD_Field SET IsReadOnly='Y',Updated=TO_TIMESTAMP('2014-04-20 12:43:57','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=55368 +; + +-- Apr 20, 2014 12:44:24 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,IsDisplayedGrid,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',36,'N','N',60903,60,'Y',202873,'N','M_InventoryLineMA_UU','56f2de3d-9fa1-4e67-bcd5-cdbfc3199071','N','N',100,0,TO_TIMESTAMP('2014-04-20 12:44:22','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-04-20 12:44:22','YYYY-MM-DD HH24:MI:SS'),'Y','N',0,2,'D',53134) +; + +-- Apr 20, 2014 12:44:25 PM IST +INSERT INTO AD_Field (IsEncrypted,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,AD_Client_ID,ColumnSpan,EntityType,AD_Tab_ID) VALUES ('N',7,'N','N',210653,70,'Y',202874,'N','This field is used to record time used for LIFO and FIFO material policy','Time used for LIFO and FIFO Material Policy','Date Material Policy','0d13babb-408e-43c1-ad73-8b5056ef3f5d','Y','N',100,0,TO_TIMESTAMP('2014-04-20 12:44:24','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-04-20 12:44:24','YYYY-MM-DD HH24:MI:SS'),'Y',0,2,'D',53134) +; + +-- Apr 20, 2014 12:45:00 PM IST +UPDATE AD_Field SET XPosition=4,Updated=TO_TIMESTAMP('2014-04-20 12:45:00','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202874 +; + +-- Apr 20, 2014 12:46:49 PM IST +UPDATE AD_Field SET XPosition=4,Updated=TO_TIMESTAMP('2014-04-20 12:46:49','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=55364 +; + +-- Apr 20, 2014 12:48:30 PM IST +UPDATE AD_Field SET XPosition=1,Updated=TO_TIMESTAMP('2014-04-20 12:48:30','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=55366 +; + +SELECT register_migration_script('201404200408_IDEMPIERE-1770.sql') FROM dual +; diff --git a/migration/i2.0z/postgresql/201405310538_IDEMPIERE-1770.sql b/migration/i2.0z/postgresql/201405310538_IDEMPIERE-1770.sql new file mode 100644 index 0000000000..dd28974c9d --- /dev/null +++ b/migration/i2.0z/postgresql/201405310538_IDEMPIERE-1770.sql @@ -0,0 +1,85 @@ +-- May 29, 2014 10:41:22 PM IST +-- I forgot to set the DICTIONARY_ID_COMMENTS System Configurator +INSERT INTO AD_Element (ColumnName,AD_Element_ID,Help,Name,PrintName,AD_Element_UU,Created,Updated,AD_Org_ID,CreatedBy,UpdatedBy,IsActive,AD_Client_ID,EntityType) VALUES ('IsAutoGenerated',202701,'Record is Auto Generated by System.','Auto Generated','Auto Generated','88bf1864-a7b4-490d-836d-ae2eb3a08a97',TO_TIMESTAMP('2014-05-29 22:41:22','YYYY-MM-DD HH24:MI:SS'),TO_TIMESTAMP('2014-05-29 22:41:22','YYYY-MM-DD HH24:MI:SS'),0,100,100,'Y',0,'D') +; + +-- May 29, 2014 10:41:23 PM IST +INSERT INTO AD_Column (SeqNoSelection,IsSyncDatabase,Version,AD_Column_ID,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsUpdateable,ColumnName,DefaultValue,Help,Name,IsAllowCopy,CreatedBy,Updated,AD_Org_ID,IsActive,Created,UpdatedBy,IsToolbarButton,IsAlwaysUpdateable,AD_Client_ID,EntityType,IsEncrypted,IsSecure,FKConstraintType,AD_Element_ID,AD_Table_ID) VALUES (0,'Y',0,211211,'N','N','N',0,'N',1,'N',20,'N','N','N','5fa29a45-c0e0-44a6-be20-63a8e05bb836','N','IsAutoGenerated','N','Record is Auto Generated by System.','Auto Generated','N',100,TO_TIMESTAMP('2014-05-29 22:41:23','YYYY-MM-DD HH24:MI:SS'),0,'Y',TO_TIMESTAMP('2014-05-29 22:41:23','YYYY-MM-DD HH24:MI:SS'),100,'N','N',0,'D','N','N','N',202701,762) +; + +-- May 29, 2014 10:41:23 PM IST +ALTER TABLE M_InOutLineMA ADD COLUMN IsAutoGenerated CHAR(1) DEFAULT 'N' CHECK (IsAutoGenerated IN ('Y','N')) +; + +-- May 29, 2014 10:41:24 PM IST +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,IsDisplayedGrid,XPosition,IsQuickEntry,AD_Client_ID,ColumnSpan,NumLines,IsAdvancedField,IsDefaultFocus,EntityType) VALUES ('N',751,1,'N','N',211211,70,'Y',202878,'Y','Record is Auto Generated by System.','Auto Generated','d94f1477-cb26-41ec-a677-4162d13f5339','Y','N',100,0,TO_TIMESTAMP('2014-05-29 22:41:24','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-05-29 22:41:24','YYYY-MM-DD HH24:MI:SS'),'Y','Y',2,'N',0,2,1,'N','N','D') +; + +-- May 29, 2014 10:41:24 PM IST +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,IsDisplayedGrid,XPosition,IsQuickEntry,AD_Client_ID,ColumnSpan,NumLines,IsAdvancedField,IsDefaultFocus,EntityType) VALUES ('N',200137,1,'N','N',211211,70,'Y',202879,'Y','Record is Auto Generated by System.','Auto Generated','c50c3d51-cc6a-49a1-919a-2ebd13fbc994','Y','N',100,0,TO_TIMESTAMP('2014-05-29 22:41:24','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-05-29 22:41:24','YYYY-MM-DD HH24:MI:SS'),'Y','Y',2,'N',0,2,1,'N','N','D') +; + +-- May 29, 2014 10:41:25 PM IST +INSERT INTO AD_Column (SeqNoSelection,IsSyncDatabase,Version,AD_Column_ID,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsUpdateable,ColumnName,DefaultValue,Help,Name,IsAllowCopy,CreatedBy,Updated,AD_Org_ID,IsActive,Created,UpdatedBy,IsToolbarButton,IsAlwaysUpdateable,AD_Client_ID,EntityType,IsEncrypted,IsSecure,FKConstraintType,AD_Element_ID,AD_Table_ID) VALUES (0,'Y',0,211212,'N','N','N',0,'N',1,'N',20,'N','N','N','6d814e7b-3f7e-4f51-91f0-f5d6a80a9ec8','N','IsAutoGenerated','N','Record is Auto Generated by System.','Auto Generated','N',100,TO_TIMESTAMP('2014-05-29 22:41:25','YYYY-MM-DD HH24:MI:SS'),0,'Y',TO_TIMESTAMP('2014-05-29 22:41:25','YYYY-MM-DD HH24:MI:SS'),100,'N','N',0,'U','N','N','N',202701,763) +; + +-- May 29, 2014 10:41:25 PM IST +ALTER TABLE M_InventoryLineMA ADD COLUMN IsAutoGenerated CHAR(1) DEFAULT 'N' CHECK (IsAutoGenerated IN ('Y','N')) +; + +-- May 29, 2014 10:41:25 PM IST +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,IsDisplayedGrid,XPosition,IsQuickEntry,AD_Client_ID,ColumnSpan,NumLines,IsAdvancedField,IsDefaultFocus,EntityType) VALUES ('N',749,1,'N','N',211212,70,'Y',202880,'Y','Record is Auto Generated by System.','Auto Generated','040f311d-d321-46ac-a1b8-0650df7b9b8b','Y','N',100,0,TO_TIMESTAMP('2014-05-29 22:41:25','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-05-29 22:41:25','YYYY-MM-DD HH24:MI:SS'),'Y','Y',2,'N',0,2,1,'N','N','U') +; + +-- May 29, 2014 10:41:25 PM IST +INSERT INTO AD_Column (SeqNoSelection,IsSyncDatabase,Version,AD_Column_ID,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsUpdateable,ColumnName,DefaultValue,Help,Name,IsAllowCopy,CreatedBy,Updated,AD_Org_ID,IsActive,Created,UpdatedBy,IsToolbarButton,IsAlwaysUpdateable,AD_Client_ID,EntityType,IsEncrypted,IsSecure,FKConstraintType,AD_Element_ID,AD_Table_ID) VALUES (0,'Y',0,211213,'N','N','N',0,'N',1,'N',20,'N','N','N','b41d414b-71e2-4df9-a8b7-1c30119eebbf','N','IsAutoGenerated','N','Record is Auto Generated by System.','Auto Generated','N',100,TO_TIMESTAMP('2014-05-29 22:41:25','YYYY-MM-DD HH24:MI:SS'),0,'Y',TO_TIMESTAMP('2014-05-29 22:41:25','YYYY-MM-DD HH24:MI:SS'),100,'N','N',0,'U','N','N','N',202701,764) +; + +-- May 29, 2014 10:41:25 PM IST +ALTER TABLE M_MovementLineMA ADD COLUMN IsAutoGenerated CHAR(1) DEFAULT 'N' CHECK (IsAutoGenerated IN ('Y','N')) +; + +-- May 29, 2014 10:41:25 PM IST +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,IsDisplayedGrid,XPosition,IsQuickEntry,AD_Client_ID,ColumnSpan,NumLines,IsAdvancedField,IsDefaultFocus,EntityType) VALUES ('N',750,1,'N','N',211213,70,'Y',202881,'Y','Record is Auto Generated by System.','Auto Generated','9e2cc848-53dc-4ad8-916a-bf58ff5c3184','Y','N',100,0,TO_TIMESTAMP('2014-05-29 22:41:25','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-05-29 22:41:25','YYYY-MM-DD HH24:MI:SS'),'Y','Y',2,'N',0,2,1,'N','N','U') +; + +-- May 29, 2014 10:41:26 PM IST +INSERT INTO AD_Field (IsEncrypted,AD_Tab_ID,DisplayLength,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,UpdatedBy,AD_Org_ID,Created,CreatedBy,Updated,IsActive,IsDisplayedGrid,XPosition,IsQuickEntry,AD_Client_ID,ColumnSpan,NumLines,IsAdvancedField,IsDefaultFocus,EntityType) VALUES ('N',53134,1,'N','N',211212,80,'Y',202882,'Y','Record is Auto Generated by System.','Auto Generated','c597cd68-10ed-46b0-8d80-f50e68d5f89b','Y','N',100,0,TO_TIMESTAMP('2014-05-29 22:41:25','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-05-29 22:41:25','YYYY-MM-DD HH24:MI:SS'),'Y','Y',2,'N',0,2,1,'N','N','U') +; + +-- May 29, 2014 11:01:22 PM IST +-- I forgot to set the DICTIONARY_ID_COMMENTS System Configurator +UPDATE AD_Column SET DefaultValue='1',Updated=TO_TIMESTAMP('2014-05-29 23:01:22','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=13331 +; + +-- May 29, 2014 11:01:27 PM IST +INSERT INTO t_alter_column values('m_inoutlinema','MovementQty','NUMERIC',null,'1') +; + +-- May 29, 2014 11:01:27 PM IST +UPDATE M_InOutLineMA SET MovementQty=1 WHERE MovementQty IS NULL +; + +-- May 29, 2014 11:04:42 PM IST +UPDATE AD_Column SET DefaultValue='1',Updated=TO_TIMESTAMP('2014-05-29 23:04:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=13363 +; + +-- May 29, 2014 11:04:47 PM IST +INSERT INTO t_alter_column values('m_inventorylinema','MovementQty','NUMERIC',null,'1') +; + +-- May 29, 2014 11:04:47 PM IST +UPDATE M_InventoryLineMA SET MovementQty=1 WHERE MovementQty IS NULL +; + +-- May 29, 2014 11:06:10 PM IST +UPDATE AD_Column SET DefaultValue='1',Updated=TO_TIMESTAMP('2014-05-29 23:06:10','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=13311 +; + +-- May 29, 2014 11:06:14 PM IST +INSERT INTO t_alter_column values('m_movementlinema','MovementQty','NUMERIC',null,'1') +; + + +SELECT register_migration_script('201405310538_IDEMPIERE-1770.sql') FROM dual +; \ No newline at end of file diff --git a/org.adempiere.base.process/src/org/compiere/process/InventoryCountCreate.java b/org.adempiere.base.process/src/org/compiere/process/InventoryCountCreate.java index e8347afb66..6ac734b5df 100644 --- a/org.adempiere.base.process/src/org/compiere/process/InventoryCountCreate.java +++ b/org.adempiere.base.process/src/org/compiere/process/InventoryCountCreate.java @@ -315,7 +315,7 @@ public class InventoryCountCreate extends SvrProcess else if (m_line.getM_AttributeSetInstance_ID() != 0) { MInventoryLineMA ma = new MInventoryLineMA (m_line, - m_line.getM_AttributeSetInstance_ID(), m_line.getQtyBook(),oldDateMPolicy); + m_line.getM_AttributeSetInstance_ID(), m_line.getQtyBook(),oldDateMPolicy,true); if (!ma.save()) ; } @@ -326,7 +326,7 @@ public class InventoryCountCreate extends SvrProcess // MInventoryLineMA ma = new MInventoryLineMA (m_line, - M_AttributeSetInstance_ID, QtyOnHand,dateMPolicy); + M_AttributeSetInstance_ID, QtyOnHand,dateMPolicy,true); if (!ma.save()) ; return 0; diff --git a/org.adempiere.base.process/src/org/compiere/process/InventoryCountUpdate.java b/org.adempiere.base.process/src/org/compiere/process/InventoryCountUpdate.java index d85bdbe195..ca3014ce41 100644 --- a/org.adempiere.base.process/src/org/compiere/process/InventoryCountUpdate.java +++ b/org.adempiere.base.process/src/org/compiere/process/InventoryCountUpdate.java @@ -160,7 +160,7 @@ public class InventoryCountUpdate extends SvrProcess continue; // Save ASI ma = new MInventoryLineMA (il, - storage.getM_AttributeSetInstance_ID(), storage.getQtyOnHand(),storage.getDateMaterialPolicy()); + storage.getM_AttributeSetInstance_ID(), storage.getQtyOnHand(),storage.getDateMaterialPolicy(),true); if (!ma.save()) ; } diff --git a/org.adempiere.base/src/org/compiere/model/I_M_InOutLineMA.java b/org.adempiere.base/src/org/compiere/model/I_M_InOutLineMA.java index 286fa349c9..bb7d008da1 100644 --- a/org.adempiere.base/src/org/compiere/model/I_M_InOutLineMA.java +++ b/org.adempiere.base/src/org/compiere/model/I_M_InOutLineMA.java @@ -104,6 +104,15 @@ public interface I_M_InOutLineMA */ public boolean isActive(); + /** Column name IsAutoGenerated */ + public static final String COLUMNNAME_IsAutoGenerated = "IsAutoGenerated"; + + /** Set Auto Generated */ + public void setIsAutoGenerated (boolean IsAutoGenerated); + + /** Get Auto Generated */ + public boolean isAutoGenerated(); + /** Column name M_AttributeSetInstance_ID */ public static final String COLUMNNAME_M_AttributeSetInstance_ID = "M_AttributeSetInstance_ID"; diff --git a/org.adempiere.base/src/org/compiere/model/I_M_InventoryLineMA.java b/org.adempiere.base/src/org/compiere/model/I_M_InventoryLineMA.java index d7a7a1005d..8c5e868d43 100644 --- a/org.adempiere.base/src/org/compiere/model/I_M_InventoryLineMA.java +++ b/org.adempiere.base/src/org/compiere/model/I_M_InventoryLineMA.java @@ -104,6 +104,15 @@ public interface I_M_InventoryLineMA */ public boolean isActive(); + /** Column name IsAutoGenerated */ + public static final String COLUMNNAME_IsAutoGenerated = "IsAutoGenerated"; + + /** Set Auto Generated */ + public void setIsAutoGenerated (boolean IsAutoGenerated); + + /** Get Auto Generated */ + public boolean isAutoGenerated(); + /** Column name M_AttributeSetInstance_ID */ public static final String COLUMNNAME_M_AttributeSetInstance_ID = "M_AttributeSetInstance_ID"; diff --git a/org.adempiere.base/src/org/compiere/model/I_M_MovementLineMA.java b/org.adempiere.base/src/org/compiere/model/I_M_MovementLineMA.java index 0113f5e772..d3b6272d75 100644 --- a/org.adempiere.base/src/org/compiere/model/I_M_MovementLineMA.java +++ b/org.adempiere.base/src/org/compiere/model/I_M_MovementLineMA.java @@ -104,6 +104,15 @@ public interface I_M_MovementLineMA */ public boolean isActive(); + /** Column name IsAutoGenerated */ + public static final String COLUMNNAME_IsAutoGenerated = "IsAutoGenerated"; + + /** Set Auto Generated */ + public void setIsAutoGenerated (boolean IsAutoGenerated); + + /** Get Auto Generated */ + public boolean isAutoGenerated(); + /** Column name M_AttributeSetInstance_ID */ public static final String COLUMNNAME_M_AttributeSetInstance_ID = "M_AttributeSetInstance_ID"; diff --git a/org.adempiere.base/src/org/compiere/model/MInOut.java b/org.adempiere.base/src/org/compiere/model/MInOut.java index 10129c10b7..62ba033abb 100644 --- a/org.adempiere.base/src/org/compiere/model/MInOut.java +++ b/org.adempiere.base/src/org/compiere/model/MInOut.java @@ -1317,7 +1317,17 @@ public class MInOut extends X_M_InOut implements DocAction //Ignore the Material Policy when is Reverse Correction if(!isReversal()) { - checkMaterialPolicy(sLine); + BigDecimal movementQty = sLine.getMovementQty(); + BigDecimal qtyOnLineMA = MInOutLineMA.getManualQty(sLine.getM_InOutLine_ID(), get_TrxName()); + + if(qtyOnLineMA.compareTo(movementQty)>0) + { + // More then line qty on attribute tab for line 10 + m_processMsg = "@Over_Qty_On_Attribute_Tab@ " + sLine.getLine(); + return DOCSTATUS_Invalid; + } + + checkMaterialPolicy(sLine,movementQty.subtract(qtyOnLineMA)); } log.fine("Material Transaction"); @@ -1751,17 +1761,20 @@ public class MInOut extends X_M_InOut implements DocAction * Check Material Policy * Sets line ASI */ - private void checkMaterialPolicy(MInOutLine line) + private void checkMaterialPolicy(MInOutLine line,BigDecimal qty) { + int no = MInOutLineMA.deleteInOutLineMA(line.getM_InOutLine_ID(), get_TrxName()); if (no > 0) if (log.isLoggable(Level.CONFIG)) log.config("Delete old #" + no); - + + if(Env.ZERO.compareTo(qty)==0) + return; + // Incoming Trx String MovementType = getMovementType(); boolean inTrx = MovementType.charAt(1) == '+'; // V+ Vendor Receipt - boolean needSave = false; MProduct product = line.getProduct(); @@ -1784,30 +1797,33 @@ public class MInOut extends X_M_InOut implements DocAction if (getMovementType().compareTo(MInOut.MOVEMENTTYPE_VendorReceipts) == 0 ) { //auto balance negative on hand - BigDecimal qtyToReceive = autoBalanceNegative(line, product); + BigDecimal qtyToReceive = autoBalanceNegative(line, product,qty); //Allocate remaining qty. if (qtyToReceive.compareTo(Env.ZERO)>0) { - MInOutLineMA ma = MInOutLineMA.addOrCreate(line, 0, qtyToReceive, getMovementDate()); + MInOutLineMA ma = MInOutLineMA.addOrCreate(line, 0, qtyToReceive, getMovementDate(),true); ma.saveEx(); } } else if (getMovementType().compareTo(MInOut.MOVEMENTTYPE_CustomerReturns) == 0){ - BigDecimal qtyToReturn = autoBalanceNegative(line, product); + BigDecimal qtyToReturn = autoBalanceNegative(line, product,qty); if (line.getM_RMALine_ID()!=0 && qtyToReturn.compareTo(Env.ZERO)>0){ //Linking to shipment line MRMALine rmaLine = new MRMALine(getCtx(), line.getM_RMALine_ID(), get_TrxName()); if(rmaLine.getM_InOutLine_ID()>0){ - MInOutLineMA shipmentMAS[] = MInOutLineMA.get(getCtx(), rmaLine.getM_InOutLine_ID(), get_TrxName()); + //retrieving ASI which is not already returned + MInOutLineMA shipmentMAS[] = MInOutLineMA.getNonReturned(getCtx(), rmaLine.getM_InOutLine_ID(), get_TrxName()); + for(MInOutLineMA sMA : shipmentMAS){ BigDecimal lineMAQty = qtyToReturn; - if(lineMAQty.compareTo(sMA.getMovementQty())>0){ - lineMAQty = sMA.getMovementQty(); + BigDecimal qtyReturnable = (BigDecimal)sMA.get_Value(MInOutLineMA.COLUMNNAME_ReturnedQty); + if(lineMAQty.compareTo(qtyReturnable)>0){ + lineMAQty = qtyReturnable; } - MInOutLineMA ma = MInOutLineMA.addOrCreate(line, sMA.getM_AttributeSetInstance_ID(), lineMAQty, sMA.getDateMaterialPolicy()); + MInOutLineMA ma = MInOutLineMA.addOrCreate(line, sMA.getM_AttributeSetInstance_ID(), lineMAQty, sMA.getDateMaterialPolicy(),true); ma.saveEx(); qtyToReturn = qtyToReturn.subtract(lineMAQty); @@ -1818,7 +1834,7 @@ public class MInOut extends X_M_InOut implements DocAction } if(qtyToReturn.compareTo(Env.ZERO)>0){ //Use movement data for Material policy if no linkage found to Shipment. - MInOutLineMA ma = MInOutLineMA.addOrCreate(line, 0, qtyToReturn, getMovementDate()); + MInOutLineMA ma = MInOutLineMA.addOrCreate(line, 0, qtyToReturn, getMovementDate(),true); ma.saveEx(); } } @@ -1829,14 +1845,14 @@ public class MInOut extends X_M_InOut implements DocAction Timestamp minGuaranteeDate = getMovementDate(); 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(), true); - BigDecimal qtyToDeliver = line.getMovementQty(); + BigDecimal qtyToDeliver = qty; for (MStorageOnHand storage: storages) { if (storage.getQtyOnHand().compareTo(qtyToDeliver) >= 0) { MInOutLineMA ma = new MInOutLineMA (line, storage.getM_AttributeSetInstance_ID(), - qtyToDeliver,storage.getDateMaterialPolicy()); + qtyToDeliver,storage.getDateMaterialPolicy(),true); ma.saveEx(); qtyToDeliver = Env.ZERO; } @@ -1844,7 +1860,7 @@ public class MInOut extends X_M_InOut implements DocAction { MInOutLineMA ma = new MInOutLineMA (line, storage.getM_AttributeSetInstance_ID(), - storage.getQtyOnHand(),storage.getDateMaterialPolicy()); + storage.getQtyOnHand(),storage.getDateMaterialPolicy(),true); ma.saveEx(); qtyToDeliver = qtyToDeliver.subtract(storage.getQtyOnHand()); if (log.isLoggable(Level.FINE)) log.fine( ma + ", QtyToDeliver=" + qtyToDeliver); @@ -1857,7 +1873,7 @@ public class MInOut extends X_M_InOut implements DocAction if (qtyToDeliver.signum() != 0) { //Over Delivery - MInOutLineMA ma = MInOutLineMA.addOrCreate(line, line.getM_AttributeSetInstance_ID(), qtyToDeliver, getMovementDate()); + MInOutLineMA ma = MInOutLineMA.addOrCreate(line, line.getM_AttributeSetInstance_ID(), qtyToDeliver, getMovementDate(),true); ma.saveEx(); if (log.isLoggable(Level.FINE)) log.fine("##: " + ma); } @@ -1870,12 +1886,11 @@ public class MInOut extends X_M_InOut implements DocAction } } // checkMaterialPolicy - private BigDecimal autoBalanceNegative(MInOutLine line, MProduct product) { + private BigDecimal autoBalanceNegative(MInOutLine line, MProduct product,BigDecimal qtyToReceive) { MStorageOnHand[] storages = MStorageOnHand.getWarehouseNegative(getCtx(), getM_Warehouse_ID(), line.getM_Product_ID(), 0, null, MClient.MMPOLICY_FiFo.equals(product.getMMPolicy()), line.getM_Locator_ID(), get_TrxName(), true); Timestamp dateMPolicy = null; - BigDecimal qtyToReceive = line.getMovementQty(); for (MStorageOnHand storage : storages) { @@ -1887,7 +1902,7 @@ public class MInOut extends X_M_InOut implements DocAction lineMAQty = storage.getQtyOnHand().negate(); //Using ASI from storage record - MInOutLineMA ma = new MInOutLineMA (line, storage.getM_AttributeSetInstance_ID(), lineMAQty,dateMPolicy); + MInOutLineMA ma = new MInOutLineMA (line, storage.getM_AttributeSetInstance_ID(), lineMAQty,dateMPolicy,true); ma.saveEx(); qtyToReceive = qtyToReceive.subtract(lineMAQty); } @@ -2177,7 +2192,7 @@ public class MInOut extends X_M_InOut implements DocAction { MInOutLineMA ma = new MInOutLineMA (rLine, mas[j].getM_AttributeSetInstance_ID(), - mas[j].getMovementQty().negate(),mas[j].getDateMaterialPolicy()); + mas[j].getMovementQty().negate(),mas[j].getDateMaterialPolicy(),true); ma.saveEx(); } } diff --git a/org.adempiere.base/src/org/compiere/model/MInOutLineMA.java b/org.adempiere.base/src/org/compiere/model/MInOutLineMA.java index 9a148d3207..c5f7291883 100644 --- a/org.adempiere.base/src/org/compiere/model/MInOutLineMA.java +++ b/org.adempiere.base/src/org/compiere/model/MInOutLineMA.java @@ -17,11 +17,17 @@ package org.compiere.model; import java.math.BigDecimal; +import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.sql.SQLException; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.List; import java.util.Properties; +import java.util.logging.Level; +import org.adempiere.exceptions.AdempiereException; +import org.compiere.util.CLogger; import org.compiere.util.DB; import org.compiere.util.Env; import org.compiere.util.Util; @@ -39,6 +45,10 @@ public class MInOutLineMA extends X_M_InOutLineMA */ private static final long serialVersionUID = -3229418883339488380L; + /** Log */ + private static CLogger s_log = CLogger.getCLogger (MInOutLineMA.class); + public static String COLUMNNAME_ReturnedQty ="returnedQty"; + /** * Get Material Allocations for Line * @param ctx context @@ -79,7 +89,7 @@ public class MInOutLineMA extends X_M_InOutLineMA */ public static int deleteInOutLineMA (int M_InOutLine_ID, String trxName) { - String sql = "DELETE FROM M_InOutLineMA ma WHERE ma.M_InOutLine_ID=?"; + String sql = "DELETE FROM M_InOutLineMA ma WHERE ma.M_InOutLine_ID=? AND ma.IsAutoGenerated='Y'"; return DB.executeUpdate(sql, M_InOutLine_ID, trxName); } // deleteInOutLineMA @@ -119,6 +129,18 @@ public class MInOutLineMA extends X_M_InOutLineMA * @param DateMaterialPolicy */ public MInOutLineMA (MInOutLine parent, int M_AttributeSetInstance_ID, BigDecimal MovementQty,Timestamp DateMaterialPolicy) + { + this (parent,M_AttributeSetInstance_ID,MovementQty,DateMaterialPolicy,true); + } + + /** + * @param parent + * @param M_AttributeSetInstance_ID + * @param MovementQty + * @param DateMaterialPolicy + * @param isAutoGenerated + */ + public MInOutLineMA (MInOutLine parent, int M_AttributeSetInstance_ID, BigDecimal MovementQty,Timestamp DateMaterialPolicy,boolean isAutoGenerated) { this (parent.getCtx(), 0, parent.get_TrxName()); setClientOrg(parent); @@ -139,6 +161,7 @@ public class MInOutLineMA extends X_M_InOutLineMA } } setDateMaterialPolicy(DateMaterialPolicy); + setIsAutoGenerated(isAutoGenerated); } // MInOutLineMA @Override @@ -162,16 +185,106 @@ public class MInOutLineMA extends X_M_InOutLineMA return sb.toString (); } // toString - public static MInOutLineMA addOrCreate(MInOutLine line, int M_AttributeSetInstance_ID, BigDecimal MovementQty, Timestamp DateMaterialPolicy) + public static MInOutLineMA addOrCreate(MInOutLine line, int M_AttributeSetInstance_ID, BigDecimal MovementQty, Timestamp DateMaterialPolicy){ + return addOrCreate(line,M_AttributeSetInstance_ID,MovementQty,DateMaterialPolicy,true); + } + + public static MInOutLineMA addOrCreate(MInOutLine line, int M_AttributeSetInstance_ID, BigDecimal MovementQty, Timestamp DateMaterialPolicy,boolean isAutoGenerated) { Query query = new Query(Env.getCtx(), I_M_InOutLineMA.Table_Name, "M_InOutLine_ID=? AND M_AttributeSetInstance_ID=? AND DateMaterialPolicy=trunc(cast(? as date))", line.get_TrxName()); MInOutLineMA po = query.setParameters(line.getM_InOutLine_ID(), M_AttributeSetInstance_ID, DateMaterialPolicy).first(); if (po == null) - po = new MInOutLineMA(line, M_AttributeSetInstance_ID, MovementQty, DateMaterialPolicy); + po = new MInOutLineMA(line, M_AttributeSetInstance_ID, MovementQty, DateMaterialPolicy,isAutoGenerated); else po.setMovementQty(po.getMovementQty().add(MovementQty)); return po; } + + /** + * Total qty on LineMA for M_InoutLine + * @param M_InOutLine_ID + * @param trxName + * @return + */ + public static BigDecimal getManualQty (int M_InOutLine_ID, String trxName) + { + String sql = "SELECT SUM(movementqty) FROM M_InOutLineMA ma WHERE ma.M_InOutLine_ID=? AND ma.IsAutoGenerated='N'"; + BigDecimal totalQty = DB.getSQLValueBD(trxName, sql, M_InOutLine_ID); + return totalQty==null?Env.ZERO:totalQty; + } //totalLineQty + + /** + * Get Material Allocations from shipment which is not returned + * @param ctx context + * @param M_InOutLine_ID line + * @param trxName trx + * @return allocations + */ + public static MInOutLineMA[] getNonReturned (Properties ctx, int M_InOutLine_ID, String trxName) + { + String sql = "SELECT * FROM M_InoutLineMA_Returned WHERE (returnedQty<>movementQty or returnedQty is null) and m_inoutline_id=? "; + + PreparedStatement pstmt = null; + ResultSet rs = null; + ArrayList list = new ArrayList(); + try + { + pstmt = DB.prepareStatement(sql, trxName); + pstmt.setInt(1, M_InOutLine_ID); + + rs = pstmt.executeQuery(); + while (rs.next()) + { + MInOutLineMA lineMA = new MInOutLineMA(ctx, rs, trxName); + lineMA.set_Value(COLUMNNAME_ReturnedQty, rs.getBigDecimal(COLUMNNAME_ReturnedQty)); + list.add(lineMA); + } + + }catch (SQLException ex) + { + s_log.log(Level.SEVERE, sql, ex); + throw new AdempiereException(ex.getLocalizedMessage(),ex); + }finally + { + DB.close(rs, pstmt); + rs = null; pstmt = null; + } + + MInOutLineMA[] retValue = new MInOutLineMA[list.size ()]; + list.toArray (retValue); + return retValue; + } // getNonReturned + + /************************************************************************** + * Before Save + * @param newRecord new + * @return save + */ + protected boolean beforeSave (boolean newRecord) + { + //Set DateMaterialPolicy + if(is_ValueChanged(COLUMNNAME_M_AttributeSetInstance_ID)){ + //TODO Require testing for all scenario + I_M_InOutLine line = getM_InOutLine(); + + Timestamp dateMPolicy = null; + if(getM_AttributeSetInstance_ID()>0) + { + dateMPolicy = getM_AttributeSetInstance().getCreated(); + } + + if(dateMPolicy == null) + { + I_M_InOut inout = line.getM_InOut(); + dateMPolicy = inout.getMovementDate(); + } + + setDateMaterialPolicy(dateMPolicy); + } + + return true; + } //beforeSave + } // MInOutLineMA diff --git a/org.adempiere.base/src/org/compiere/model/MInventory.java b/org.adempiere.base/src/org/compiere/model/MInventory.java index 9125c6d5a4..62f44e20cc 100644 --- a/org.adempiere.base/src/org/compiere/model/MInventory.java +++ b/org.adempiere.base/src/org/compiere/model/MInventory.java @@ -433,9 +433,22 @@ public class MInventory extends X_M_Inventory implements DocAction continue; //Ignore the Material Policy when is Reverse Correction - if(!isReversal()) - checkMaterialPolicy(line, qtyDiff); - + if(!isReversal()){ + BigDecimal qtyOnLineMA = MInventoryLineMA.getManualQty(line.getM_InventoryLine_ID(), get_TrxName()); + + if(qtyDiff.signum()<0){ + if(qtyOnLineMA.compareTo(qtyDiff)<0){ + m_processMsg = "@Over_Qty_On_Attribute_Tab@ " + line.getLine(); + return DOCSTATUS_Invalid; + } + }else{ + if(qtyOnLineMA.compareTo(qtyDiff)>0){ + m_processMsg = "@Over_Qty_On_Attribute_Tab@ " + line.getLine(); + return DOCSTATUS_Invalid; + } + } + checkMaterialPolicy(line, qtyDiff.subtract(qtyOnLineMA)); + } // Stock Movement - Counterpart MOrder.reserveStock if (product != null && product.isStocked() ) @@ -594,11 +607,15 @@ public class MInventory extends X_M_Inventory implements DocAction * Check Material Policy. */ private void checkMaterialPolicy(MInventoryLine line, BigDecimal qtyDiff) - { + { + int no = MInventoryLineMA.deleteInventoryLineMA(line.getM_InventoryLine_ID(), get_TrxName()); if (no > 0) - if (log.isLoggable(Level.CONFIG)) log.config("Delete old #" + no); - + if (log.isLoggable(Level.CONFIG)) log.config("Delete old #" + no); + + if(qtyDiff.compareTo(Env.ZERO)==0) + return; + // Check Line boolean needSave = false; // Attribute Set Instance @@ -621,7 +638,7 @@ public class MInventory extends X_M_Inventory implements DocAction } //backward compatibility: -ve in MA is incoming trx, +ve in MA is outgoing trx - MInventoryLineMA lineMA = new MInventoryLineMA(line, storage.getM_AttributeSetInstance_ID(), maQty.negate(), storage.getDateMaterialPolicy()); + MInventoryLineMA lineMA = new MInventoryLineMA(line, storage.getM_AttributeSetInstance_ID(), maQty.negate(), storage.getDateMaterialPolicy(),true); lineMA.saveEx(); qtyDiff = qtyDiff.subtract(maQty); @@ -632,7 +649,7 @@ public class MInventory extends X_M_Inventory implements DocAction if(qtyDiff.compareTo(Env.ZERO)>0) { - MInventoryLineMA lineMA = MInventoryLineMA.addOrCreate(line, 0, qtyDiff.negate(), getMovementDate()); + MInventoryLineMA lineMA = MInventoryLineMA.addOrCreate(line, 0, qtyDiff.negate(), getMovementDate(),true); lineMA.saveEx(); } } @@ -649,7 +666,7 @@ public class MInventory extends X_M_Inventory implements DocAction { MInventoryLineMA ma = new MInventoryLineMA (line, storage.getM_AttributeSetInstance_ID(), - qtyToDeliver,storage.getDateMaterialPolicy()); + qtyToDeliver,storage.getDateMaterialPolicy(),true); ma.saveEx(); qtyToDeliver = Env.ZERO; if (log.isLoggable(Level.FINE)) log.fine( ma + ", QtyToDeliver=" + qtyToDeliver); @@ -658,7 +675,7 @@ public class MInventory extends X_M_Inventory implements DocAction { MInventoryLineMA ma = new MInventoryLineMA (line, storage.getM_AttributeSetInstance_ID(), - storage.getQtyOnHand(),storage.getDateMaterialPolicy()); + storage.getQtyOnHand(),storage.getDateMaterialPolicy(),true); ma.saveEx(); qtyToDeliver = qtyToDeliver.subtract(storage.getQtyOnHand()); if (log.isLoggable(Level.FINE)) log.fine( ma + ", QtyToDeliver=" + qtyToDeliver); @@ -670,7 +687,7 @@ public class MInventory extends X_M_Inventory implements DocAction // No AttributeSetInstance found for remainder if (qtyToDeliver.signum() != 0) { - MInventoryLineMA lineMA = MInventoryLineMA.addOrCreate(line, 0, qtyToDeliver, getMovementDate()); + MInventoryLineMA lineMA = MInventoryLineMA.addOrCreate(line, 0, qtyToDeliver, getMovementDate(),true); lineMA.saveEx(); if (log.isLoggable(Level.FINE)) log.fine("##: " + lineMA); } @@ -859,7 +876,7 @@ public class MInventory extends X_M_Inventory implements DocAction { MInventoryLineMA ma = new MInventoryLineMA (rLine, mas[j].getM_AttributeSetInstance_ID(), - mas[j].getMovementQty().negate(),mas[j].getDateMaterialPolicy()); + mas[j].getMovementQty().negate(),mas[j].getDateMaterialPolicy(),true); ma.saveEx(); } } diff --git a/org.adempiere.base/src/org/compiere/model/MInventoryLineMA.java b/org.adempiere.base/src/org/compiere/model/MInventoryLineMA.java index d4c49c5986..af5d80ec41 100644 --- a/org.adempiere.base/src/org/compiere/model/MInventoryLineMA.java +++ b/org.adempiere.base/src/org/compiere/model/MInventoryLineMA.java @@ -104,7 +104,7 @@ public class MInventoryLineMA extends X_M_InventoryLineMA { StringBuilder sql = new StringBuilder("DELETE FROM M_InventoryLineMA ma WHERE EXISTS ") .append("(SELECT * FROM M_InventoryLine l WHERE l.M_InventoryLine_ID=ma.M_InventoryLine_ID") - .append(" AND M_InventoryLine_ID=").append(M_InventoryLine_ID).append(")"); + .append(" AND M_InventoryLine_ID=").append(M_InventoryLine_ID).append(") AND ma.IsAutoGenerated='Y'"); return DB.executeUpdate(sql.toString(), trxName); } // deleteInventoryMA @@ -144,6 +144,18 @@ public class MInventoryLineMA extends X_M_InventoryLineMA * @param DateMaterialPolicy */ public MInventoryLineMA (MInventoryLine parent, int M_AttributeSetInstance_ID, BigDecimal MovementQty,Timestamp DateMaterialPolicy) + { + this(parent,M_AttributeSetInstance_ID,MovementQty,DateMaterialPolicy,true); + } + + /** + * @param parent + * @param M_AttributeSetInstance_ID + * @param MovementQty + * @param DateMaterialPolicy + * @param isAutoGenerated + */ + public MInventoryLineMA (MInventoryLine parent, int M_AttributeSetInstance_ID, BigDecimal MovementQty,Timestamp DateMaterialPolicy,boolean isAutoGenerated) { this (parent.getCtx(), 0, parent.get_TrxName()); setClientOrg(parent); @@ -164,6 +176,7 @@ public class MInventoryLineMA extends X_M_InventoryLineMA } } setDateMaterialPolicy(DateMaterialPolicy); + setIsAutoGenerated(isAutoGenerated); } // MInventoryLineMA @Override @@ -187,15 +200,62 @@ public class MInventoryLineMA extends X_M_InventoryLineMA return sb.toString (); } // toString - public static MInventoryLineMA addOrCreate(MInventoryLine line, int M_AttributeSetInstance_ID, BigDecimal MovementQty, Timestamp DateMaterialPolicy) + + public static MInventoryLineMA addOrCreate(MInventoryLine line, int M_AttributeSetInstance_ID, BigDecimal MovementQty, Timestamp DateMaterialPolicy){ + return addOrCreate(line, M_AttributeSetInstance_ID, MovementQty,DateMaterialPolicy,true); + } + + public static MInventoryLineMA addOrCreate(MInventoryLine line, int M_AttributeSetInstance_ID, BigDecimal MovementQty, Timestamp DateMaterialPolicy,boolean isAutoGenerated) { Query query = new Query(Env.getCtx(), I_M_InventoryLineMA.Table_Name, "M_InventoryLine_ID=? AND M_AttributeSetInstance_ID=? AND DateMaterialPolicy=trunc(cast(? as date))", line.get_TrxName()); MInventoryLineMA po = query.setParameters(line.getM_InventoryLine_ID(), M_AttributeSetInstance_ID, DateMaterialPolicy).first(); if (po == null) - po = new MInventoryLineMA(line, M_AttributeSetInstance_ID, MovementQty, DateMaterialPolicy); + po = new MInventoryLineMA(line, M_AttributeSetInstance_ID, MovementQty, DateMaterialPolicy,isAutoGenerated); else po.setMovementQty(po.getMovementQty().add(MovementQty)); return po; } + + /** + * + * @param M_MovementLine_ID + * @param trxName + * @return + */ + public static BigDecimal getManualQty (int M_MovementLine_ID, String trxName) + { + String sql = "SELECT SUM(movementqty) FROM M_InventoryLineMA ma WHERE ma.M_InventoryLine_ID=? AND IsAutoGenerated='N'"; + BigDecimal totalQty = DB.getSQLValueBD(trxName, sql, M_MovementLine_ID); + return totalQty==null?Env.ZERO:totalQty.negate(); + } //totalLineQty + + /************************************************************************** + * Before Save + * @param newRecord new + * @return save + */ + protected boolean beforeSave (boolean newRecord) + { + //Set DateMaterialPolicy + if(is_ValueChanged(COLUMNNAME_M_AttributeSetInstance_ID)){ + I_M_InventoryLine line = getM_InventoryLine(); + + Timestamp dateMPolicy = null; + if(getM_AttributeSetInstance_ID()>0) + { + dateMPolicy = getM_AttributeSetInstance().getCreated(); + } + + if(dateMPolicy == null) + { + I_M_Inventory inventory = line.getM_Inventory(); + dateMPolicy = inventory.getMovementDate(); + } + + setDateMaterialPolicy(dateMPolicy); + } + + return true; + } //beforeSave } // MInventoryLineMA diff --git a/org.adempiere.base/src/org/compiere/model/MMovement.java b/org.adempiere.base/src/org/compiere/model/MMovement.java index 96b5333dc3..75f705f3df 100644 --- a/org.adempiere.base/src/org/compiere/model/MMovement.java +++ b/org.adempiere.base/src/org/compiere/model/MMovement.java @@ -389,8 +389,20 @@ public class MMovement extends X_M_Movement implements DocAction && product.isStocked() ) { //Ignore the Material Policy when is Reverse Correction - if(!isReversal()) - checkMaterialPolicy(line); + if(!isReversal()){ + BigDecimal qtyOnLineMA = MMovementLineMA.getManualQty(line.getM_MovementLine_ID(), get_TrxName()); + BigDecimal movementQty = line.getMovementQty(); + + if(qtyOnLineMA.compareTo(movementQty)>0) + { + // More then line qty on attribute tab for line 10 + m_processMsg = "@Over_Qty_On_Attribute_Tab@ " + line.getLine(); + return DOCSTATUS_Invalid; + } + + checkMaterialPolicy(line,movementQty.subtract(qtyOnLineMA)); + } + if (line.getM_AttributeSetInstance_ID() == 0) { @@ -548,23 +560,27 @@ public class MMovement extends X_M_Movement implements DocAction * Check Material Policy * Sets line ASI */ - private void checkMaterialPolicy(MMovementLine line) + private void checkMaterialPolicy(MMovementLine line,BigDecimal qtyToDeliver) { + int no = MMovementLineMA.deleteMovementLineMA(line.getM_MovementLine_ID(), get_TrxName()); if (no > 0) if (log.isLoggable(Level.CONFIG)) log.config("Delete old #" + no); + + if(Env.ZERO.compareTo(qtyToDeliver)==0) + return; boolean needSave = false; // Attribute Set Instance if (line.getM_AttributeSetInstance_ID() == 0) { + MProduct product = MProduct.get(getCtx(), line.getM_Product_ID()); String MMPolicy = product.getMMPolicy(); MStorageOnHand[] storages = MStorageOnHand.getWarehouse(getCtx(), 0, line.getM_Product_ID(), 0, null, MClient.MMPOLICY_FiFo.equals(MMPolicy), true, line.getM_Locator_ID(), get_TrxName()); - BigDecimal qtyToDeliver = line.getMovementQty(); for (MStorageOnHand storage: storages) { @@ -572,7 +588,7 @@ public class MMovement extends X_M_Movement implements DocAction { MMovementLineMA ma = new MMovementLineMA (line, storage.getM_AttributeSetInstance_ID(), - qtyToDeliver,storage.getDateMaterialPolicy()); + qtyToDeliver,storage.getDateMaterialPolicy(),true); ma.saveEx(); qtyToDeliver = Env.ZERO; if (log.isLoggable(Level.FINE)) log.fine( ma + ", QtyToDeliver=" + qtyToDeliver); @@ -581,7 +597,7 @@ public class MMovement extends X_M_Movement implements DocAction { MMovementLineMA ma = new MMovementLineMA (line, storage.getM_AttributeSetInstance_ID(), - storage.getQtyOnHand(),storage.getDateMaterialPolicy()); + storage.getQtyOnHand(),storage.getDateMaterialPolicy(),true); ma.saveEx(); qtyToDeliver = qtyToDeliver.subtract(storage.getQtyOnHand()); if (log.isLoggable(Level.FINE)) log.fine( ma + ", QtyToDeliver=" + qtyToDeliver); @@ -593,7 +609,7 @@ public class MMovement extends X_M_Movement implements DocAction // No AttributeSetInstance found for remainder if (qtyToDeliver.signum() != 0) { - MMovementLineMA ma = MMovementLineMA.addOrCreate(line, 0, qtyToDeliver, getMovementDate()) ; + MMovementLineMA ma = MMovementLineMA.addOrCreate(line, 0, qtyToDeliver, getMovementDate(),true) ; ma.saveEx(); if (log.isLoggable(Level.FINE)) log.fine("##: " + ma); @@ -789,7 +805,7 @@ public class MMovement extends X_M_Movement implements DocAction { MMovementLineMA ma = new MMovementLineMA (rLine, mas[j].getM_AttributeSetInstance_ID(), - mas[j].getMovementQty().negate(),mas[j].getDateMaterialPolicy()); + mas[j].getMovementQty().negate(),mas[j].getDateMaterialPolicy(),true); ma.saveEx(); } } diff --git a/org.adempiere.base/src/org/compiere/model/MMovementLineMA.java b/org.adempiere.base/src/org/compiere/model/MMovementLineMA.java index e5f24cbc79..d839da7912 100644 --- a/org.adempiere.base/src/org/compiere/model/MMovementLineMA.java +++ b/org.adempiere.base/src/org/compiere/model/MMovementLineMA.java @@ -104,8 +104,8 @@ public class MMovementLineMA extends X_M_MovementLineMA */ public static int deleteMovementLineMA (int M_MovementLine_ID, String trxName) { - String sql = "DELETE FROM M_MovementLineMA WHERE M_MovementLine_ID=" + M_MovementLine_ID; - return DB.executeUpdate(sql, trxName); + String sql = "DELETE FROM M_MovementLineMA WHERE M_MovementLine_ID=? AND IsAutoGenerated='Y' "; + return DB.executeUpdate(sql,M_MovementLine_ID ,trxName); } // deleteMovementLineMA /** Logger */ @@ -145,6 +145,18 @@ public class MMovementLineMA extends X_M_MovementLineMA * @param DateMaterialPolicy */ public MMovementLineMA (MMovementLine parent, int M_AttributeSetInstance_ID, BigDecimal MovementQty,Timestamp DateMaterialPolicy) + { + this(parent,M_AttributeSetInstance_ID,MovementQty,DateMaterialPolicy,true); + } + + /** + * @param parent + * @param M_AttributeSetInstance_ID + * @param MovementQty + * @param DateMaterialPolicy + * @param isAutoGenerated + */ + public MMovementLineMA (MMovementLine parent, int M_AttributeSetInstance_ID, BigDecimal MovementQty,Timestamp DateMaterialPolicy,boolean isAutoGenerated) { this (parent.getCtx(), 0, parent.get_TrxName()); setClientOrg(parent); @@ -165,6 +177,7 @@ public class MMovementLineMA extends X_M_MovementLineMA } } setDateMaterialPolicy(DateMaterialPolicy); + setIsAutoGenerated(isAutoGenerated); } // MMovementLineMA @Override @@ -188,15 +201,66 @@ public class MMovementLineMA extends X_M_MovementLineMA return sb.toString (); } // toString + public static MMovementLineMA addOrCreate(MMovementLine line, int M_AttributeSetInstance_ID, BigDecimal MovementQty, Timestamp DateMaterialPolicy) + { + return addOrCreate(line,M_AttributeSetInstance_ID,MovementQty,DateMaterialPolicy,true); + } + + public static MMovementLineMA addOrCreate(MMovementLine line, int M_AttributeSetInstance_ID, BigDecimal MovementQty, Timestamp DateMaterialPolicy,boolean isAutoGenerated) { Query query = new Query(Env.getCtx(), I_M_MovementLineMA.Table_Name, "M_MovementLine_ID=? AND M_AttributeSetInstance_ID=? AND DateMaterialPolicy=trunc(cast(? as date))", line.get_TrxName()); MMovementLineMA po = query.setParameters(line.getM_MovementLine_ID(), M_AttributeSetInstance_ID, DateMaterialPolicy).first(); if (po == null) - po = new MMovementLineMA(line, M_AttributeSetInstance_ID, MovementQty, DateMaterialPolicy); + po = new MMovementLineMA(line, M_AttributeSetInstance_ID, MovementQty, DateMaterialPolicy,isAutoGenerated); else po.setMovementQty(po.getMovementQty().add(MovementQty)); return po; } + + /** + * + * @param M_MovementLine_ID + * @param trxName + * @return + */ + public static BigDecimal getManualQty (int M_MovementLine_ID, String trxName) + { + String sql = "SELECT SUM(movementqty) FROM M_MovementLineMA ma WHERE ma.M_MovementLine_ID=? AND ma.IsAutoGenerated='N'"; + BigDecimal totalQty = DB.getSQLValueBD(trxName, sql, M_MovementLine_ID); + return totalQty==null?Env.ZERO:totalQty; + } //totalLineQty + + + + /************************************************************************** + * Before Save + * @param newRecord new + * @return save + */ + protected boolean beforeSave (boolean newRecord) + { + //Set DateMaterialPolicy + if(is_ValueChanged(COLUMNNAME_M_AttributeSetInstance_ID)){ + I_M_MovementLine line = getM_MovementLine(); + + Timestamp dateMPolicy = null; + if(getM_AttributeSetInstance_ID()>0) + { + dateMPolicy = getM_AttributeSetInstance().getCreated(); + } + + if(dateMPolicy == null) + { + I_M_Movement movement = line.getM_Movement(); + dateMPolicy = movement.getMovementDate(); + } + + setDateMaterialPolicy(dateMPolicy); + } + + return true; + } //beforeSave + } // MMovementLineMA diff --git a/org.adempiere.base/src/org/compiere/model/MStorageOnHand.java b/org.adempiere.base/src/org/compiere/model/MStorageOnHand.java index a9f21f850b..87abc32ea6 100644 --- a/org.adempiere.base/src/org/compiere/model/MStorageOnHand.java +++ b/org.adempiere.base/src/org/compiere/model/MStorageOnHand.java @@ -1008,4 +1008,40 @@ public class MStorageOnHand extends X_M_StorageOnHand return sb.toString(); } // toString + /** + * + * @param M_Product_ID + * @param M_AttributeSetInstance_ID + * @return + */ + public static Timestamp getDateMaterialPolicy(int M_Product_ID, int M_AttributeSetInstance_ID,String trxName){ + + String sql = "SELECT dateMaterialPolicy FROM M_StorageOnHand WHERE M_Product_ID=? and M_AttributeSetInstance_ID=?"; + + PreparedStatement pstmt = null; + ResultSet rs = null; + try + { + pstmt = DB.prepareStatement(sql, trxName); + pstmt.setInt(1, M_Product_ID); + pstmt.setInt(2, M_AttributeSetInstance_ID); + + rs = pstmt.executeQuery(); + if (rs.next()) + { + return rs.getTimestamp(1); + } + }catch (SQLException ex) + { + s_log.log(Level.SEVERE, sql, ex); + + }finally + { + DB.close(rs, pstmt); + rs = null; pstmt = null; + } + + + return null; + } //getDateMaterialPolicy } // MStorageOnHand diff --git a/org.adempiere.base/src/org/compiere/model/X_M_InOutLineMA.java b/org.adempiere.base/src/org/compiere/model/X_M_InOutLineMA.java index b42a080b26..eafc319bec 100644 --- a/org.adempiere.base/src/org/compiere/model/X_M_InOutLineMA.java +++ b/org.adempiere.base/src/org/compiere/model/X_M_InOutLineMA.java @@ -33,7 +33,7 @@ public class X_M_InOutLineMA extends PO implements I_M_InOutLineMA, I_Persistent /** * */ - private static final long serialVersionUID = 20131031L; + private static final long serialVersionUID = 20140508L; /** Standard Constructor */ public X_M_InOutLineMA (Properties ctx, int M_InOutLineMA_ID, String trxName) @@ -92,6 +92,27 @@ public class X_M_InOutLineMA extends PO implements I_M_InOutLineMA, I_Persistent return (Timestamp)get_Value(COLUMNNAME_DateMaterialPolicy); } + /** Set Auto Generated. + @param IsAutoGenerated Auto Generated */ + public void setIsAutoGenerated (boolean IsAutoGenerated) + { + set_ValueNoCheck (COLUMNNAME_IsAutoGenerated, Boolean.valueOf(IsAutoGenerated)); + } + + /** Get Auto Generated. + @return Auto Generated */ + public boolean isAutoGenerated () + { + Object oo = get_Value(COLUMNNAME_IsAutoGenerated); + 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) diff --git a/org.adempiere.base/src/org/compiere/model/X_M_InventoryLineMA.java b/org.adempiere.base/src/org/compiere/model/X_M_InventoryLineMA.java index 287b70d743..54f771c8e0 100644 --- a/org.adempiere.base/src/org/compiere/model/X_M_InventoryLineMA.java +++ b/org.adempiere.base/src/org/compiere/model/X_M_InventoryLineMA.java @@ -33,7 +33,7 @@ public class X_M_InventoryLineMA extends PO implements I_M_InventoryLineMA, I_Pe /** * */ - private static final long serialVersionUID = 20131031L; + private static final long serialVersionUID = 20140508L; /** Standard Constructor */ public X_M_InventoryLineMA (Properties ctx, int M_InventoryLineMA_ID, String trxName) @@ -92,6 +92,27 @@ public class X_M_InventoryLineMA extends PO implements I_M_InventoryLineMA, I_Pe return (Timestamp)get_Value(COLUMNNAME_DateMaterialPolicy); } + /** Set Auto Generated. + @param IsAutoGenerated Auto Generated */ + public void setIsAutoGenerated (boolean IsAutoGenerated) + { + set_ValueNoCheck (COLUMNNAME_IsAutoGenerated, Boolean.valueOf(IsAutoGenerated)); + } + + /** Get Auto Generated. + @return Auto Generated */ + public boolean isAutoGenerated () + { + Object oo = get_Value(COLUMNNAME_IsAutoGenerated); + 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) diff --git a/org.adempiere.base/src/org/compiere/model/X_M_MovementLineMA.java b/org.adempiere.base/src/org/compiere/model/X_M_MovementLineMA.java index 7e2065c30c..15f151190a 100644 --- a/org.adempiere.base/src/org/compiere/model/X_M_MovementLineMA.java +++ b/org.adempiere.base/src/org/compiere/model/X_M_MovementLineMA.java @@ -33,7 +33,7 @@ public class X_M_MovementLineMA extends PO implements I_M_MovementLineMA, I_Pers /** * */ - private static final long serialVersionUID = 20131031L; + private static final long serialVersionUID = 20140508L; /** Standard Constructor */ public X_M_MovementLineMA (Properties ctx, int M_MovementLineMA_ID, String trxName) @@ -91,6 +91,27 @@ public class X_M_MovementLineMA extends PO implements I_M_MovementLineMA, I_Pers return (Timestamp)get_Value(COLUMNNAME_DateMaterialPolicy); } + /** Set Auto Generated. + @param IsAutoGenerated Auto Generated */ + public void setIsAutoGenerated (boolean IsAutoGenerated) + { + set_ValueNoCheck (COLUMNNAME_IsAutoGenerated, Boolean.valueOf(IsAutoGenerated)); + } + + /** Get Auto Generated. + @return Auto Generated */ + public boolean isAutoGenerated () + { + Object oo = get_Value(COLUMNNAME_IsAutoGenerated); + 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)