|
- -----------------------------------------------------------------------------
- --
- -- Logical unit: StockTakingUnit
- --
- -- Purpose:
- --
- -- IFS/Design Template Version 2.2
- --
- -- Date Sign History
- -- ------ ---- -----------------------------------------------------------
- -----------------------------------------------------------------------------
-
- DEFINE MODULE = INCON
- DEFINE LU = StockTakingUnit
- DEFINE TABLE = STOCK_TAKING_UNIT_TAB
- DEFINE VIEW = STOCK_TAKING_UNIT
- DEFINE PKG = STOCK_TAKING_UNIT_API
-
- DEFINE OBJID = rowid
- DEFINE OBJVERSION = "ltrim(lpad(to_char(rowversion,'YYYYMMDDHH24MISS'),2000))"
- DEFINE OBJSTATE = rowstate
- DEFINE OBJEVENTS = substrb(&PKG..Finite_State_Events__(&OBJSTATE),1,253)
- DEFINE STATE = substrb(&PKG..Finite_State_Decode__(&OBJSTATE),1,253)
-
- -----------------------------------------------------------------------------
- -------------------- VIEWS FOR SELECTS --------------------------------------
- -----------------------------------------------------------------------------
-
- PROMPT Creating &VIEW view
-
- CREATE OR REPLACE VIEW &VIEW AS
- SELECT company company,
- stock_taking_unit_id stock_taking_unit_id,
- tgl_stock_taking tgl_stock_taking,
- tgl_start tgl_start,
- tgl_selesai tgl_selesai,
- created_by created_by,
- created_date created_date,
- submit_by submit_by,
- submit_date submit_date,
- approved_by approved_by,
- approved_date approved_date,
- rejected_by rejected_by,
- rejected_date rejected_date,
- cabang_id cabang_id,
- &OBJID objid,
- &OBJVERSION objversion,
- &OBJSTATE objstate,
- &OBJEVENTS objevents,
- &STATE state
- FROM stock_taking_unit_tab
- WITH read only;
-
- COMMENT ON TABLE &VIEW
- IS 'LU=&LU^PROMPT=Stock Taking Unit^MODULE=&MODULE^';
-
- COMMENT ON COLUMN &VIEW..company
- IS 'FLAGS=PMI--^DATATYPE=STRING(50)/UPPERCASE^PROMPT=Company^REF=Perusahaan^';
- COMMENT ON COLUMN &VIEW..stock_taking_unit_id
- IS 'FLAGS=KMI-L^DATATYPE=STRING(50)/UPPERCASE^PROMPT=Stock Taking Unit Id^';
- COMMENT ON COLUMN &VIEW..tgl_stock_taking
- IS 'FLAGS=AMIUL^DATATYPE=DATE^PROMPT=Tgl Stock Taking^';
- COMMENT ON COLUMN &VIEW..tgl_start
- IS 'FLAGS=A-IUL^DATATYPE=DATE^PROMPT=Tgl Start^';
- COMMENT ON COLUMN &VIEW..tgl_selesai
- IS 'FLAGS=A-IUL^DATATYPE=DATE^PROMPT=Tgl Selesai^';
- COMMENT ON COLUMN &VIEW..created_by
- IS 'FLAGS=A-IUL^DATATYPE=STRING(50)^PROMPT=Created By^';
- COMMENT ON COLUMN &VIEW..created_date
- IS 'FLAGS=A-IUL^DATATYPE=DATE^PROMPT=Created Date^';
- COMMENT ON COLUMN &VIEW..submit_by
- IS 'FLAGS=A-IUL^DATATYPE=STRING(50)^PROMPT=Submit By^';
- COMMENT ON COLUMN &VIEW..submit_date
- IS 'FLAGS=A-IUL^DATATYPE=DATE^PROMPT=Submit Date^';
- COMMENT ON COLUMN &VIEW..approved_by
- IS 'FLAGS=A-IUL^DATATYPE=STRING(50)^PROMPT=Approved By^';
- COMMENT ON COLUMN &VIEW..approved_date
- IS 'FLAGS=A-IUL^DATATYPE=DATE^PROMPT=Approved Date^';
- COMMENT ON COLUMN &VIEW..rejected_by
- IS 'FLAGS=A-IUL^DATATYPE=STRING(50)^PROMPT=Rejected By^';
- COMMENT ON COLUMN &VIEW..rejected_date
- IS 'FLAGS=A-IUL^DATATYPE=DATE^PROMPT=Rejected Date^';
- COMMENT ON COLUMN &VIEW..cabang_id
- IS 'FLAGS=A-IU-^DATATYPE=STRING(30)/UPPERCASE^PROMPT=Cabang Id^REF=Cabang(company)^';
-
- -----------------------------------------------------------------------------
- -------------------- PACKAGES FOR METHODS -----------------------------------
- -----------------------------------------------------------------------------
-
- PROMPT Creating &PKG implementation
-
- CREATE OR REPLACE PACKAGE BODY &PKG IS
-
- -----------------------------------------------------------------------------
- -------------------- FINITE STATE DECLARATIONS ------------------------------
- -----------------------------------------------------------------------------
-
- db_state_list_ CONSTANT VARCHAR2(33) := 'Open^Submitted^Approved^Rejected^';
- client_state_list_ CONSTANT VARCHAR2(33) := 'Open^Submitted^Approved^Rejected^';
- active_state_list_ VARCHAR2(132) := Language_SYS.Translate_State_(lu_name_, client_state_list_);
- state_separator_ CONSTANT VARCHAR2(1) := Client_SYS.field_separator_;
-
- -----------------------------------------------------------------------------
- -------------------- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ---------
- -----------------------------------------------------------------------------
-
-
- -----------------------------------------------------------------------------
- -------------------- IMPLEMENTATION BASE METHODS ----------------------------
- -----------------------------------------------------------------------------
- -- Lock_By_Id___
- -- Client-support to lock a specific instance of the logical unit.
- --
- -- Lock_By_Keys___
- -- Server support to lock a specific instance of the logical unit.
- --
- -- Get_Object_By_Id___
- -- Get LU-record from the database with a specified object identity.
- --
- -- Get_Object_By_Keys___
- -- Get LU-record from the database with specified key columns.
- --
- -- Check_Exist___
- -- Check if a specific LU-instance already exist in the database.
- --
- -- Get_Id_Version_By_Keys___
- -- Get the current OBJID and OBJVERSION for a specific LU-instance.
- -----------------------------------------------------------------------------
-
- FUNCTION Lock_By_Id___ (
- objid_ IN VARCHAR2,
- objversion_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
- IS
- row_changed EXCEPTION;
- row_deleted EXCEPTION;
- row_locked EXCEPTION;
- PRAGMA exception_init(row_locked, -0054);
- rec_ &TABLE%ROWTYPE;
- dummy_ NUMBER;
- CURSOR lock_control IS
- SELECT *
- FROM &TABLE
- WHERE &OBJID = objid_
- AND &OBJVERSION = objversion_
- FOR UPDATE NOWAIT;
- CURSOR exist_control IS
- SELECT 1
- FROM &TABLE
- WHERE &OBJID = objid_;
- BEGIN
- OPEN lock_control;
- FETCH lock_control INTO rec_;
- IF (lock_control%FOUND) THEN
- CLOSE lock_control;
- RETURN rec_;
- END IF;
- CLOSE lock_control;
- OPEN exist_control;
- FETCH exist_control INTO dummy_;
- IF (exist_control%FOUND) THEN
- CLOSE exist_control;
- RAISE row_changed;
- ELSE
- CLOSE exist_control;
- RAISE row_deleted;
- END IF;
- EXCEPTION
- WHEN row_locked THEN
- Error_SYS.Record_Locked(lu_name_);
- WHEN row_changed THEN
- Error_SYS.Record_Modified(lu_name_);
- WHEN row_deleted THEN
- Error_SYS.Record_Removed(lu_name_);
- END Lock_By_Id___;
-
- FUNCTION Lock_By_Keys___ (
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
- IS
- row_deleted EXCEPTION;
- rec_ &TABLE%ROWTYPE;
- CURSOR lock_control IS
- SELECT *
- FROM &TABLE
- WHERE company = company_
- AND stock_taking_unit_id = stock_taking_unit_id_
- FOR UPDATE;
- BEGIN
- OPEN lock_control;
- FETCH lock_control INTO rec_;
- IF (lock_control%FOUND) THEN
- CLOSE lock_control;
- RETURN rec_;
- ELSE
- CLOSE lock_control;
- RAISE row_deleted;
- END IF;
- EXCEPTION
- WHEN row_deleted THEN
- Error_SYS.Record_Removed(lu_name_);
- END Lock_By_Keys___;
-
- FUNCTION Get_Object_By_Id___ (
- objid_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
- IS
- lu_rec_ &TABLE%ROWTYPE;
- CURSOR getrec IS
- SELECT *
- FROM &TABLE
- WHERE &OBJID = objid_;
- BEGIN
- OPEN getrec;
- FETCH getrec INTO lu_rec_;
- IF (getrec%NOTFOUND) THEN
- CLOSE getrec;
- Error_SYS.Record_Removed(lu_name_);
- END IF;
- CLOSE getrec;
- RETURN(lu_rec_);
- END Get_Object_By_Id___;
-
-
- FUNCTION Get_Object_By_Keys___ (
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
- IS
- lu_rec_ &TABLE%ROWTYPE;
- CURSOR getrec IS
- SELECT *
- FROM &TABLE
- WHERE company = company_
- AND stock_taking_unit_id = stock_taking_unit_id_;
- BEGIN
- OPEN getrec;
- FETCH getrec INTO lu_rec_;
- CLOSE getrec;
- RETURN(lu_rec_);
- END Get_Object_By_Keys___;
-
- FUNCTION Check_Exist___ (
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2 ) RETURN BOOLEAN
- IS
- dummy_ NUMBER;
- CURSOR exist_control IS
- SELECT 1
- FROM &TABLE
- WHERE company = company_
- AND stock_taking_unit_id = stock_taking_unit_id_;
- BEGIN
- OPEN exist_control;
- FETCH exist_control INTO dummy_;
- IF (exist_control%FOUND) THEN
- CLOSE exist_control;
- RETURN(TRUE);
- END IF;
- CLOSE exist_control;
- RETURN(FALSE);
- END Check_Exist___;
-
- PROCEDURE Get_Id_Version_By_Keys___ (
- objid_ IN OUT VARCHAR2,
- objversion_ IN OUT VARCHAR2,
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2)
- IS
- CURSOR get_version IS
- SELECT &OBJID, &OBJVERSION
- FROM &TABLE
- WHERE company = company_
- AND stock_taking_unit_id = stock_taking_unit_id_;
- BEGIN
- OPEN get_version;
- FETCH get_version INTO objid_, objversion_;
- CLOSE get_version;
- END Get_Id_Version_By_Keys___;
-
- -----------------------------------------------------------------------------
- -------------------- IMPLEMENTATION FINITE STATE MACHINE --------------------
- -----------------------------------------------------------------------------
- -- Finite_State_Set___
- -- Updates the finite state indicator for an existing LU-instance.
- --
- -- Finite_State_Machine___
- -- Processes an event by:
- -- 1. Fetching the current state
- -- 2. Evaluating any conditions for given event at current state
- -- 3. executing any exit code for the old state
- -- 4. Performing any action associated with given event
- -- 5. update the database to the new state
- -- 6. execute any entry code for the new state
- -- 7. Executing a state change to the new state
- --
- -- Finite_State_Add_To_Attr___
- -- Adds the current state and allowed events to the attribute string.
- --
- -- Finite_State_Init___
- -- Sets the initial finite state indicator for an existing LU-instance
- -- and processes any automatic events.
- -----------------------------------------------------------------------------
-
- PROCEDURE Finite_State_Set___ (
- rec_ IN OUT &TABLE%ROWTYPE,
- state_ IN VARCHAR2 )
- IS
- BEGIN
- rec_.rowversion := sysdate;
- UPDATE stock_taking_unit_tab
- SET &OBJSTATE = state_,
- rowversion = rec_.rowversion
- WHERE company = rec_.company
- AND stock_taking_unit_id = rec_.stock_taking_unit_id;
- rec_.rowstate := state_;
- END Finite_State_Set___;
-
-
- PROCEDURE Finite_State_Machine___ (
- rec_ IN OUT &TABLE%ROWTYPE,
- event_ IN VARCHAR2,
- attr_ IN OUT VARCHAR2 )
- IS
- state_ VARCHAR2(30);
- BEGIN
- state_ := rec_.rowstate;
- IF (state_ IS NULL) THEN
- IF (event_ IS NULL) THEN
- rec_.rowstate := 'Open';
- ELSE
- Error_SYS.State_Event_Not_Handled(lu_name_, event_, Finite_State_Decode__(state_));
- END IF;
- ELSIF (state_ = 'Approved') THEN
- IF (event_ = 'CancelApprove') THEN
- Finite_State_Set___(rec_, 'Submitted');
- ELSE
- Error_SYS.State_Event_Not_Handled(lu_name_, event_, Finite_State_Decode__(state_));
- END IF;
- ELSIF (state_ = 'Open') THEN
- IF (event_ = 'Submit') THEN
- Finite_State_Set___(rec_, 'Submitted');
- ELSE
- Error_SYS.State_Event_Not_Handled(lu_name_, event_, Finite_State_Decode__(state_));
- END IF;
- ELSIF (state_ = 'Rejected') THEN
- IF (event_ = 'ReSubmit') THEN
- Finite_State_Set___(rec_, 'Submitted');
- ELSE
- Error_SYS.State_Event_Not_Handled(lu_name_, event_, Finite_State_Decode__(state_));
- END IF;
- ELSIF (state_ = 'Submitted') THEN
- IF (event_ = 'Approve') THEN
- Finite_State_Set___(rec_, 'Approved');
- ELSIF (event_ = 'CancelSubmit') THEN
- Finite_State_Set___(rec_, 'Open');
- ELSIF (event_ = 'Reject') THEN
- Finite_State_Set___(rec_, 'Rejected');
- ELSE
- Error_SYS.State_Event_Not_Handled(lu_name_, event_, Finite_State_Decode__(state_));
- END IF;
- ELSE
- Error_SYS.State_Not_Exist(lu_name_, Finite_State_Decode__(state_));
- END IF;
- END Finite_State_Machine___;
-
-
- PROCEDURE Finite_State_Add_To_Attr___ (
- rec_ IN &TABLE%ROWTYPE,
- attr_ IN OUT VARCHAR2 )
- IS
- state_ VARCHAR2(30);
- BEGIN
- state_ := rec_.rowstate;
- Client_SYS.Add_To_Attr('__OBJSTATE', state_, attr_);
- Client_SYS.Add_To_Attr('__OBJEVENTS', Finite_State_Events__(state_), attr_);
- Client_SYS.Add_To_Attr('STATE', Finite_State_Decode__(state_), attr_);
- END Finite_State_Add_To_Attr___;
-
-
- PROCEDURE Finite_State_Init___ (
- rec_ IN OUT &TABLE%ROWTYPE,
- attr_ IN OUT VARCHAR2 )
- IS
- state_ VARCHAR2(30);
- BEGIN
- Finite_State_Machine___(rec_, NULL, attr_);
- Finite_State_Add_To_Attr___(rec_, attr_);
- END Finite_State_Init___;
-
- -----------------------------------------------------------------------------
- -------------------- PRIVATE FINITE STATE MACHINE ---------------------------
- -----------------------------------------------------------------------------
- -- Finite_State_Decode__
- -- Returns the client equivalent for any database representation of
- -- a state name = objstate.
- --
- -- Enumerate_States__
- -- Returns a list of all possible finite states in client terminology.
- --
- -- Finite_State_Events__
- -- Returns a list of allowed events for a given state
- -- NOTE! Regardless of conditions if not otherwize encoded
- --
- -- Enumerate_Events__
- -- Returns a list of all possible events.
- -----------------------------------------------------------------------------
-
- FUNCTION Finite_State_Decode__ (
- db_state_ IN VARCHAR2 ) RETURN VARCHAR2
- IS
- BEGIN
- RETURN(Domain_SYS.Decode_(active_state_list_, db_state_list_, db_state_));
- END Finite_State_Decode__;
-
-
- PROCEDURE Enumerate_States__ (
- client_values_ OUT VARCHAR2)
- IS
- BEGIN
- client_values_ := Domain_SYS.Enumerate_(active_state_list_);
- END Enumerate_States__;
-
-
- FUNCTION Finite_State_Events__ (
- db_state_ IN VARCHAR2 ) RETURN VARCHAR2
- IS
- BEGIN
- IF (db_state_ IS NULL) THEN
- RETURN NULL;
- ELSIF (db_state_ = 'Approved') THEN
- RETURN 'CancelApprove^';
- ELSIF (db_state_ = 'Open') THEN
- RETURN 'Submit^';
- ELSIF (db_state_ = 'Rejected') THEN
- RETURN 'ReSubmit^';
- ELSIF (db_state_ = 'Submitted') THEN
- RETURN 'CancelSubmit^Approve^Reject^';
- ELSE
- RETURN NULL;
- END IF;
- END Finite_State_Events__;
-
-
- PROCEDURE Enumerate_Events__ (
- db_events_ OUT VARCHAR2 )
- IS
- BEGIN
- db_events_ := 'Submit^CancelSubmit^Approve^Reject^CancelApprove^ReSubmit^';
- END Enumerate_Events__;
-
- -----------------------------------------------------------------------------
- -------------------- IMPLEMENTATION BASE METHODS FOR INSERT -----------------
- -----------------------------------------------------------------------------
- -- Prepare_Insert___
- -- Set all default values for a new instance (ON-NEW-RECORD) of this
- -- logical unit by calling procedure Add_Attr.
- --
- -- Unpack_Check_Insert___
- -- Unpack the attribute list, check all attributes from the client
- -- and generate all default values before creation of the new object.
- --
- -- Insert___
- -- Insert a new LU-instance into the database and return the values
- -- for OBJID and OBJVERSION.
- -----------------------------------------------------------------------------
-
- PROCEDURE Prepare_Insert___ (
- attr_ IN OUT VARCHAR2 )
- IS
- BEGIN
- Client_SYS.Clear_Attr(attr_);
- END Prepare_Insert___;
-
-
- PROCEDURE Unpack_Check_Insert___ (
- attr_ IN OUT VARCHAR2,
- newrec_ IN OUT &TABLE%ROWTYPE )
- IS
- ptr_ NUMBER;
- name_ VARCHAR2(30);
- value_ VARCHAR2(2000);
- BEGIN
- ptr_ := NULL;
- WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
- IF (name_ = 'COMPANY') THEN
- newrec_.company := value_;
- Perusahaan_API.Exist(newrec_.company);
- ELSIF (name_ = 'STOCK_TAKING_UNIT_ID') THEN
- newrec_.stock_taking_unit_id := value_;
- ELSIF (name_ = 'TGL_STOCK_TAKING') THEN
- newrec_.tgl_stock_taking := Client_SYS.Attr_Value_To_Date(value_);
- ELSIF (name_ = 'TGL_START') THEN
- newrec_.tgl_start := Client_SYS.Attr_Value_To_Date(value_);
- ELSIF (name_ = 'TGL_SELESAI') THEN
- newrec_.tgl_selesai := Client_SYS.Attr_Value_To_Date(value_);
- ELSIF (name_ = 'CREATED_BY') THEN
- newrec_.created_by := value_;
- ELSIF (name_ = 'CREATED_DATE') THEN
- newrec_.created_date := Client_SYS.Attr_Value_To_Date(value_);
- ELSIF (name_ = 'SUBMIT_BY') THEN
- newrec_.submit_by := value_;
- ELSIF (name_ = 'SUBMIT_DATE') THEN
- newrec_.submit_date := Client_SYS.Attr_Value_To_Date(value_);
- ELSIF (name_ = 'APPROVED_BY') THEN
- newrec_.approved_by := value_;
- ELSIF (name_ = 'APPROVED_DATE') THEN
- newrec_.approved_date := Client_SYS.Attr_Value_To_Date(value_);
- ELSIF (name_ = 'REJECTED_BY') THEN
- newrec_.rejected_by := value_;
- ELSIF (name_ = 'REJECTED_DATE') THEN
- newrec_.rejected_date := Client_SYS.Attr_Value_To_Date(value_);
- ELSIF (name_ = 'CABANG_ID') THEN
- newrec_.cabang_id := value_;
- IF (value_ IS NOT NULL) THEN
- Cabang_API.Exist(newrec_.company, newrec_.cabang_id);
- END IF;
- ELSE
- Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
- END IF;
- END LOOP;
- Client_SYS.Clear_Attr(attr_);
- Error_SYS.Check_Not_Null(lu_name_, 'COMPANY', newrec_.company);
- Error_SYS.Check_Not_Null(lu_name_, 'STOCK_TAKING_UNIT_ID', newrec_.stock_taking_unit_id);
- Error_SYS.Check_Not_Null(lu_name_, 'TGL_STOCK_TAKING', newrec_.tgl_stock_taking);
- EXCEPTION
- WHEN value_error THEN
- Error_SYS.Item_Format(lu_name_, name_, value_);
- END Unpack_Check_Insert___;
-
-
- PROCEDURE Insert___ (
- objid_ OUT VARCHAR2,
- objversion_ OUT VARCHAR2,
- newrec_ IN OUT &TABLE%ROWTYPE,
- attr_ IN OUT VARCHAR2 )
- IS
- BEGIN
- newrec_.rowversion := sysdate;
- objversion_ := to_char(newrec_.rowversion,'YYYYMMDDHH24MISS');
- INSERT
- INTO stock_taking_unit_tab (
- company,
- stock_taking_unit_id,
- tgl_stock_taking,
- tgl_start,
- tgl_selesai,
- created_by,
- created_date,
- submit_by,
- submit_date,
- approved_by,
- approved_date,
- rejected_by,
- rejected_date,
- cabang_id,
- rowversion,
- rowstate)
- VALUES (
- newrec_.company,
- newrec_.stock_taking_unit_id,
- newrec_.tgl_stock_taking,
- newrec_.tgl_start,
- newrec_.tgl_selesai,
- newrec_.created_by,
- newrec_.created_date,
- newrec_.submit_by,
- newrec_.submit_date,
- newrec_.approved_by,
- newrec_.approved_date,
- newrec_.rejected_by,
- newrec_.rejected_date,
- newrec_.cabang_id,
- newrec_.rowversion,
- 'Open');
- Finite_State_Init___(newrec_, attr_);
- objid_ := DBMS_sql.last_row_id;
- -- SELECT &OBJID
- -- INTO objid_
- -- FROM &TABLE
- -- WHERE company = newrec_.company
- -- AND stock_taking_unit_id = newrec_.stock_taking_unit_id;
-
- EXCEPTION
- WHEN dup_val_on_index THEN
- Error_SYS.Record_Exist(lu_name_);
- END Insert___;
-
- -----------------------------------------------------------------------------
- -------------------- IMPLEMENTATION BASE METHODS FOR UPDATE -----------------
- -----------------------------------------------------------------------------
- -- Unpack_Check_Update___
- -- Unpack the attribute list, check all attributes from the client
- -- and generate all default values before modifying the object.
- --
- -- Update___
- -- Update an existing LU-instance in the database and return the
- -- the new OBJVERSION.
- -----------------------------------------------------------------------------
-
- PROCEDURE Unpack_Check_Update___ (
- attr_ IN OUT VARCHAR2,
- newrec_ IN OUT &TABLE%ROWTYPE,
- objid_ IN VARCHAR2 )
- IS
- ptr_ NUMBER;
- name_ VARCHAR2(30);
- value_ VARCHAR2(2000);
- BEGIN
- ptr_ := NULL;
- WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
- IF (name_ = 'COMPANY') THEN
- Error_SYS.Item_Update(lu_name_, 'COMPANY');
- ELSIF (name_ = 'STOCK_TAKING_UNIT_ID') THEN
- Error_SYS.Item_Update(lu_name_, 'STOCK_TAKING_UNIT_ID');
- ELSIF (name_ = 'TGL_STOCK_TAKING') THEN
- newrec_.tgl_stock_taking := Client_SYS.Attr_Value_To_Date(value_);
- ELSIF (name_ = 'TGL_START') THEN
- newrec_.tgl_start := Client_SYS.Attr_Value_To_Date(value_);
- ELSIF (name_ = 'TGL_SELESAI') THEN
- newrec_.tgl_selesai := Client_SYS.Attr_Value_To_Date(value_);
- ELSIF (name_ = 'CREATED_BY') THEN
- newrec_.created_by := value_;
- ELSIF (name_ = 'CREATED_DATE') THEN
- newrec_.created_date := Client_SYS.Attr_Value_To_Date(value_);
- ELSIF (name_ = 'SUBMIT_BY') THEN
- newrec_.submit_by := value_;
- ELSIF (name_ = 'SUBMIT_DATE') THEN
- newrec_.submit_date := Client_SYS.Attr_Value_To_Date(value_);
- ELSIF (name_ = 'APPROVED_BY') THEN
- newrec_.approved_by := value_;
- ELSIF (name_ = 'APPROVED_DATE') THEN
- newrec_.approved_date := Client_SYS.Attr_Value_To_Date(value_);
- ELSIF (name_ = 'REJECTED_BY') THEN
- newrec_.rejected_by := value_;
- ELSIF (name_ = 'REJECTED_DATE') THEN
- newrec_.rejected_date := Client_SYS.Attr_Value_To_Date(value_);
- ELSIF (name_ = 'CABANG_ID') THEN
- newrec_.cabang_id := value_;
- IF (value_ IS NOT NULL) THEN
- Cabang_API.Exist(newrec_.company, newrec_.cabang_id);
- END IF;
- ELSE
- Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
- END IF;
- END LOOP;
- Client_SYS.Clear_Attr(attr_);
- Error_SYS.Check_Not_Null(lu_name_, 'TGL_STOCK_TAKING', newrec_.tgl_stock_taking);
- EXCEPTION
- WHEN value_error THEN
- Error_SYS.Item_Format(lu_name_, name_, value_);
- END Unpack_Check_Update___;
-
-
- PROCEDURE Update___ (
- objid_ IN VARCHAR2,
- oldrec_ IN &TABLE%ROWTYPE,
- newrec_ IN OUT &TABLE%ROWTYPE,
- attr_ IN OUT VARCHAR2,
- objversion_ IN OUT VARCHAR2,
- by_keys_ IN BOOLEAN DEFAULT FALSE )
- IS
- BEGIN
- newrec_.rowversion := sysdate;
- objversion_ := to_char(newrec_.rowversion,'YYYYMMDDHH24MISS');
- IF by_keys_ THEN
- UPDATE stock_taking_unit_tab
- SET company = newrec_.company,
- stock_taking_unit_id = newrec_.stock_taking_unit_id,
- tgl_stock_taking = newrec_.tgl_stock_taking,
- tgl_start = newrec_.tgl_start,
- tgl_selesai = newrec_.tgl_selesai,
- created_by = newrec_.created_by,
- created_date = newrec_.created_date,
- submit_by = newrec_.submit_by,
- submit_date = newrec_.submit_date,
- approved_by = newrec_.approved_by,
- approved_date = newrec_.approved_date,
- rejected_by = newrec_.rejected_by,
- rejected_date = newrec_.rejected_date,
- cabang_id = newrec_.cabang_id,
- rowversion = newrec_.rowversion
- WHERE company = newrec_.company
- AND stock_taking_unit_id = newrec_.stock_taking_unit_id;
- ELSE
- UPDATE stock_taking_unit_tab
- SET company = newrec_.company,
- stock_taking_unit_id = newrec_.stock_taking_unit_id,
- tgl_stock_taking = newrec_.tgl_stock_taking,
- tgl_start = newrec_.tgl_start,
- tgl_selesai = newrec_.tgl_selesai,
- created_by = newrec_.created_by,
- created_date = newrec_.created_date,
- submit_by = newrec_.submit_by,
- submit_date = newrec_.submit_date,
- approved_by = newrec_.approved_by,
- approved_date = newrec_.approved_date,
- rejected_by = newrec_.rejected_by,
- rejected_date = newrec_.rejected_date,
- cabang_id = newrec_.cabang_id,
- rowversion = newrec_.rowversion
- WHERE &OBJID = objid_;
- END IF;
- EXCEPTION
- WHEN dup_val_on_index THEN
- Error_SYS.Record_Exist(lu_name_);
- END Update___;
-
- -----------------------------------------------------------------------------
- -------------------- IMPLEMENTATION BASE METHODS FOR DELETE -----------------
- -----------------------------------------------------------------------------
- -- Check_Delete___
- -- Checks whether a specific LU-record may be removed or not.
- -- The procedure should check business rules like attribute values
- -- as well as database constraints (defined or not).
- --
- -- Delete___
- -- Deletion of the specific LU-object from the database.
- -----------------------------------------------------------------------------
-
- PROCEDURE Check_Delete___ (
- remrec_ IN &TABLE%ROWTYPE )
- IS
- key_ VARCHAR2(2000);
- BEGIN
- key_ := remrec_.company || '^' || remrec_.stock_taking_unit_id || '^';
- Reference_SYS.Check_Restricted_Delete(lu_name_, key_);
- END Check_Delete___;
-
-
- PROCEDURE Delete___ (
- objid_ IN VARCHAR2,
- remrec_ IN &TABLE%ROWTYPE )
- IS
- key_ VARCHAR2(2000);
- BEGIN
- key_ := remrec_.company || '^' || remrec_.stock_taking_unit_id || '^';
- Reference_SYS.Do_Cascade_Delete(lu_name_, key_);
- DELETE
- FROM stock_taking_unit_tab
- WHERE &OBJID = objid_;
- END Delete___;
-
- -----------------------------------------------------------------------------
- -------------------- PRIVATE BASE METHODS -----------------------------------
- -----------------------------------------------------------------------------
- -- Lock__
- -- Client-support to lock a specific instance of the logical unit.
- --
- -- New__
- -- Client-support interface to create LU instances.
- -- action_ = 'PREPARE'
- -- Default values and handle of information to client.
- -- The default values are set in procedure Prepare_Insert___.
- -- action_ = 'CHECK'
- -- Check all attributes before creating new object and handle of
- -- information to client. The attribute list is unpacked, checked
- -- and prepared (defaults) in procedure Unpack_Check_Insert___.
- -- action_ = 'DO'
- -- Creation of new instances of the logical unit and handle of
- -- information to client. The attribute list is unpacked, checked
- -- and prepared (defaults) in procedure Unpack_Check_Insert___
- -- before calling procedure Insert___.
- --
- -- Modify__
- -- Client-support interface to modify attributes for LU instances.
- -- action_ = 'CHECK'
- -- Check all attributes before modifying an existing object and
- -- handle of information to client. The attribute list is unpacked,
- -- checked and prepared(defaults) in procedure Unpack_Check_Update___.
- -- action_ = 'DO'
- -- Modification of an existing instance of the logical unit. The
- -- procedure unpacks the attributes, checks all values before
- -- procedure Update___ is called.
- --
- -- Remove__
- -- Client-support interface to remove LU instances.
- -- action_ = 'CHECK'
- -- Check whether a specific LU-instance may be removed or not.
- -- The procedure fetches the complete record by calling procedure
- -- Get_Object_By_Id___. Then the check is made by calling procedure
- -- Check_Delete___.
- -- action_ = 'DO'
- -- Remove an existing instance of the logical unit. The procedure
- -- fetches the complete LU-record, checks for a delete and then
- -- deletes the record by calling procedure Delete___.
- -----------------------------------------------------------------------------
-
- PROCEDURE Lock__ (
- info_ OUT VARCHAR2,
- objid_ IN VARCHAR2,
- objversion_ IN VARCHAR2 )
- IS
- dummy_ &TABLE%ROWTYPE;
- BEGIN
- General_SYS.Init_Method(lu_name_, '&PKG', 'Lock__');
- dummy_ := Lock_By_Id___(objid_, objversion_);
- info_ := Client_SYS.Get_All_Info;
- END Lock__;
-
-
- PROCEDURE New__ (
- info_ OUT VARCHAR2,
- objid_ OUT VARCHAR2,
- objversion_ OUT VARCHAR2,
- attr_ IN OUT VARCHAR2,
- action_ IN VARCHAR2 )
- IS
- newrec_ &TABLE%ROWTYPE;
- BEGIN
- General_SYS.Init_Method(lu_name_, '&PKG', 'New__');
- IF (action_ = 'PREPARE') THEN
- Prepare_Insert___(attr_);
- ELSIF (action_ = 'CHECK') THEN
- Unpack_Check_Insert___(attr_, newrec_);
- ELSIF (action_ = 'DO') THEN
- Unpack_Check_Insert___(attr_, newrec_);
- Insert___(objid_, objversion_, newrec_, attr_);
- END IF;
- info_ := Client_SYS.Get_All_Info;
- END New__;
-
-
- PROCEDURE Modify__ (
- info_ OUT VARCHAR2,
- objid_ IN VARCHAR2,
- objversion_ IN OUT VARCHAR2,
- attr_ IN OUT VARCHAR2,
- action_ IN VARCHAR2 )
- IS
- oldrec_ &TABLE%ROWTYPE;
- newrec_ &TABLE%ROWTYPE;
- BEGIN
- General_SYS.Init_Method(lu_name_, '&PKG', 'Modify__');
- IF (action_ = 'CHECK') THEN
- newrec_ := Get_Object_By_Id___(objid_);
- Unpack_Check_Update___(attr_, newrec_, objid_);
- ELSIF (action_ = 'DO') THEN
- oldrec_ := Lock_By_Id___(objid_, objversion_);
- newrec_ := oldrec_;
- Unpack_Check_Update___(attr_, newrec_, objid_);
- Update___(objid_, oldrec_, newrec_, attr_, objversion_);
- END IF;
- info_ := Client_SYS.Get_All_Info;
- END Modify__;
-
-
- PROCEDURE Remove__ (
- info_ OUT VARCHAR2,
- objid_ IN VARCHAR2,
- objversion_ IN VARCHAR2,
- action_ IN VARCHAR2 )
- IS
- remrec_ &TABLE%ROWTYPE;
- BEGIN
- General_SYS.Init_Method(lu_name_, '&PKG', 'Remove__');
- IF (action_ = 'CHECK') THEN
- remrec_ := Get_Object_By_Id___(objid_);
- Check_Delete___(remrec_);
- ELSIF (action_ = 'DO') THEN
- remrec_ := Lock_By_Id___(objid_, objversion_);
- Check_Delete___(remrec_);
- Delete___(objid_, remrec_);
- END IF;
- info_ := Client_SYS.Get_All_Info;
- END Remove__;
-
- -----------------------------------------------------------------------------
- -------------------- PUBLIC BASE METHODS ------------------------------------
- -----------------------------------------------------------------------------
- -- Exist
- -- Checks if given pointer (e.g. primary key) to an instance of this
- -- logical unit exists. If not an exception will be raised.
- -----------------------------------------------------------------------------
-
- PROCEDURE Exist (
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2 )
- IS
- BEGIN
- General_SYS.Init_Method(lu_name_, '&PKG', 'Exist', TRUE);
- IF (NOT Check_Exist___(company_, stock_taking_unit_id_)) THEN
- Error_SYS.Record_Not_Exist(lu_name_);
- END IF;
- END Exist;
-
- -----------------------------------------------------------------------------
- -------------------- PUBLIC TRANSLATION METHODS -----------------------------
- -----------------------------------------------------------------------------
-
- PROCEDURE Language_Refreshed
- IS
- BEGIN
- active_state_list_ := Language_SYS.Translate_State_(lu_name_, client_state_list_);
- END Language_Refreshed;
-
- -----------------------------------------------------------------------------
- -------------------- LU SPECIFIC IMPLEMENTATION METHODS ---------------------
- -----------------------------------------------------------------------------
-
-
- -----------------------------------------------------------------------------
- -------------------- LU SPECIFIC PRIVATE METHODS ----------------------------
- -----------------------------------------------------------------------------
-
- PROCEDURE Submit__ (
- info_ OUT VARCHAR2,
- objid_ IN VARCHAR2,
- objversion_ IN OUT VARCHAR2,
- attr_ IN OUT VARCHAR2,
- action_ IN VARCHAR2 )
- IS
- rec_ &TABLE%ROWTYPE;
- BEGIN
- General_SYS.Init_Method(lu_name_, '&PKG', 'Submit__');
- IF (action_ = 'CHECK') THEN
- NULL;
- ELSIF (action_ = 'DO') THEN
- rec_ := Lock_By_Id___(objid_, objversion_);
- Finite_State_Machine___(rec_, 'Submit', attr_);
- objversion_ := to_char(rec_.rowversion,'YYYYMMDDHH24MISS');
- Finite_State_Add_To_Attr___(rec_, attr_);
- END IF;
- info_ := Client_SYS.Get_All_Info;
- END Submit__;
-
-
- PROCEDURE Cancel_Submit__ (
- info_ OUT VARCHAR2,
- objid_ IN VARCHAR2,
- objversion_ IN OUT VARCHAR2,
- attr_ IN OUT VARCHAR2,
- action_ IN VARCHAR2 )
- IS
- rec_ &TABLE%ROWTYPE;
- BEGIN
- General_SYS.Init_Method(lu_name_, '&PKG', 'Cancel_Submit__');
- IF (action_ = 'CHECK') THEN
- NULL;
- ELSIF (action_ = 'DO') THEN
- rec_ := Lock_By_Id___(objid_, objversion_);
- Finite_State_Machine___(rec_, 'CancelSubmit', attr_);
- objversion_ := to_char(rec_.rowversion,'YYYYMMDDHH24MISS');
- Finite_State_Add_To_Attr___(rec_, attr_);
- END IF;
- info_ := Client_SYS.Get_All_Info;
- END Cancel_Submit__;
-
-
- PROCEDURE Approve__ (
- info_ OUT VARCHAR2,
- objid_ IN VARCHAR2,
- objversion_ IN OUT VARCHAR2,
- attr_ IN OUT VARCHAR2,
- action_ IN VARCHAR2 )
- IS
- rec_ &TABLE%ROWTYPE;
- BEGIN
- General_SYS.Init_Method(lu_name_, '&PKG', 'Approve__');
- IF (action_ = 'CHECK') THEN
- NULL;
- ELSIF (action_ = 'DO') THEN
- rec_ := Lock_By_Id___(objid_, objversion_);
- Finite_State_Machine___(rec_, 'Approve', attr_);
- objversion_ := to_char(rec_.rowversion,'YYYYMMDDHH24MISS');
- Finite_State_Add_To_Attr___(rec_, attr_);
- END IF;
- info_ := Client_SYS.Get_All_Info;
- END Approve__;
-
-
- PROCEDURE Reject__ (
- info_ OUT VARCHAR2,
- objid_ IN VARCHAR2,
- objversion_ IN OUT VARCHAR2,
- attr_ IN OUT VARCHAR2,
- action_ IN VARCHAR2 )
- IS
- rec_ &TABLE%ROWTYPE;
- BEGIN
- General_SYS.Init_Method(lu_name_, '&PKG', 'Reject__');
- IF (action_ = 'CHECK') THEN
- NULL;
- ELSIF (action_ = 'DO') THEN
- rec_ := Lock_By_Id___(objid_, objversion_);
- Finite_State_Machine___(rec_, 'Reject', attr_);
- objversion_ := to_char(rec_.rowversion,'YYYYMMDDHH24MISS');
- Finite_State_Add_To_Attr___(rec_, attr_);
- END IF;
- info_ := Client_SYS.Get_All_Info;
- END Reject__;
-
-
- PROCEDURE Cancel_Approve__ (
- info_ OUT VARCHAR2,
- objid_ IN VARCHAR2,
- objversion_ IN OUT VARCHAR2,
- attr_ IN OUT VARCHAR2,
- action_ IN VARCHAR2 )
- IS
- rec_ &TABLE%ROWTYPE;
- BEGIN
- General_SYS.Init_Method(lu_name_, '&PKG', 'Cancel_Approve__');
- IF (action_ = 'CHECK') THEN
- NULL;
- ELSIF (action_ = 'DO') THEN
- rec_ := Lock_By_Id___(objid_, objversion_);
- Finite_State_Machine___(rec_, 'CancelApprove', attr_);
- objversion_ := to_char(rec_.rowversion,'YYYYMMDDHH24MISS');
- Finite_State_Add_To_Attr___(rec_, attr_);
- END IF;
- info_ := Client_SYS.Get_All_Info;
- END Cancel_Approve__;
-
-
- PROCEDURE Re_Submit__ (
- info_ OUT VARCHAR2,
- objid_ IN VARCHAR2,
- objversion_ IN OUT VARCHAR2,
- attr_ IN OUT VARCHAR2,
- action_ IN VARCHAR2 )
- IS
- rec_ &TABLE%ROWTYPE;
- BEGIN
- General_SYS.Init_Method(lu_name_, '&PKG', 'Re_Submit__');
- IF (action_ = 'CHECK') THEN
- NULL;
- ELSIF (action_ = 'DO') THEN
- rec_ := Lock_By_Id___(objid_, objversion_);
- Finite_State_Machine___(rec_, 'ReSubmit', attr_);
- objversion_ := to_char(rec_.rowversion,'YYYYMMDDHH24MISS');
- Finite_State_Add_To_Attr___(rec_, attr_);
- END IF;
- info_ := Client_SYS.Get_All_Info;
- END Re_Submit__;
-
-
-
- -----------------------------------------------------------------------------
- -------------------- LU SPECIFIC PROTECTED METHODS --------------------------
- -----------------------------------------------------------------------------
-
-
- -----------------------------------------------------------------------------
- -------------------- LU SPECIFIC PUBLIC METHODS -----------------------------
- -----------------------------------------------------------------------------
-
- FUNCTION Get_Tgl_Stock_Taking (
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2 ) RETURN DATE
- IS
- temp_ &TABLE..tgl_stock_taking%TYPE;
- CURSOR get_attr IS
- SELECT tgl_stock_taking
- FROM &TABLE
- WHERE company = company_
- AND stock_taking_unit_id = stock_taking_unit_id_;
- BEGIN
- OPEN get_attr;
- FETCH get_attr INTO temp_;
- CLOSE get_attr;
- RETURN temp_;
- END Get_Tgl_Stock_Taking;
-
-
- FUNCTION Get_Tgl_Start (
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2 ) RETURN DATE
- IS
- temp_ &TABLE..tgl_start%TYPE;
- CURSOR get_attr IS
- SELECT tgl_start
- FROM &TABLE
- WHERE company = company_
- AND stock_taking_unit_id = stock_taking_unit_id_;
- BEGIN
- OPEN get_attr;
- FETCH get_attr INTO temp_;
- CLOSE get_attr;
- RETURN temp_;
- END Get_Tgl_Start;
-
-
- FUNCTION Get_Tgl_Selesai (
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2 ) RETURN DATE
- IS
- temp_ &TABLE..tgl_selesai%TYPE;
- CURSOR get_attr IS
- SELECT tgl_selesai
- FROM &TABLE
- WHERE company = company_
- AND stock_taking_unit_id = stock_taking_unit_id_;
- BEGIN
- OPEN get_attr;
- FETCH get_attr INTO temp_;
- CLOSE get_attr;
- RETURN temp_;
- END Get_Tgl_Selesai;
-
-
- FUNCTION Get_Created_By (
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2 ) RETURN VARCHAR2
- IS
- temp_ &TABLE..created_by%TYPE;
- CURSOR get_attr IS
- SELECT created_by
- FROM &TABLE
- WHERE company = company_
- AND stock_taking_unit_id = stock_taking_unit_id_;
- BEGIN
- OPEN get_attr;
- FETCH get_attr INTO temp_;
- CLOSE get_attr;
- RETURN temp_;
- END Get_Created_By;
-
-
- FUNCTION Get_Created_Date (
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2 ) RETURN DATE
- IS
- temp_ &TABLE..created_date%TYPE;
- CURSOR get_attr IS
- SELECT created_date
- FROM &TABLE
- WHERE company = company_
- AND stock_taking_unit_id = stock_taking_unit_id_;
- BEGIN
- OPEN get_attr;
- FETCH get_attr INTO temp_;
- CLOSE get_attr;
- RETURN temp_;
- END Get_Created_Date;
-
-
- FUNCTION Get_Submit_By (
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2 ) RETURN VARCHAR2
- IS
- temp_ &TABLE..submit_by%TYPE;
- CURSOR get_attr IS
- SELECT submit_by
- FROM &TABLE
- WHERE company = company_
- AND stock_taking_unit_id = stock_taking_unit_id_;
- BEGIN
- OPEN get_attr;
- FETCH get_attr INTO temp_;
- CLOSE get_attr;
- RETURN temp_;
- END Get_Submit_By;
-
-
- FUNCTION Get_Submit_Date (
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2 ) RETURN DATE
- IS
- temp_ &TABLE..submit_date%TYPE;
- CURSOR get_attr IS
- SELECT submit_date
- FROM &TABLE
- WHERE company = company_
- AND stock_taking_unit_id = stock_taking_unit_id_;
- BEGIN
- OPEN get_attr;
- FETCH get_attr INTO temp_;
- CLOSE get_attr;
- RETURN temp_;
- END Get_Submit_Date;
-
-
- FUNCTION Get_Approved_By (
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2 ) RETURN VARCHAR2
- IS
- temp_ &TABLE..approved_by%TYPE;
- CURSOR get_attr IS
- SELECT approved_by
- FROM &TABLE
- WHERE company = company_
- AND stock_taking_unit_id = stock_taking_unit_id_;
- BEGIN
- OPEN get_attr;
- FETCH get_attr INTO temp_;
- CLOSE get_attr;
- RETURN temp_;
- END Get_Approved_By;
-
-
- FUNCTION Get_Approved_Date (
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2 ) RETURN DATE
- IS
- temp_ &TABLE..approved_date%TYPE;
- CURSOR get_attr IS
- SELECT approved_date
- FROM &TABLE
- WHERE company = company_
- AND stock_taking_unit_id = stock_taking_unit_id_;
- BEGIN
- OPEN get_attr;
- FETCH get_attr INTO temp_;
- CLOSE get_attr;
- RETURN temp_;
- END Get_Approved_Date;
-
-
- FUNCTION Get_Rejected_By (
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2 ) RETURN VARCHAR2
- IS
- temp_ &TABLE..rejected_by%TYPE;
- CURSOR get_attr IS
- SELECT rejected_by
- FROM &TABLE
- WHERE company = company_
- AND stock_taking_unit_id = stock_taking_unit_id_;
- BEGIN
- OPEN get_attr;
- FETCH get_attr INTO temp_;
- CLOSE get_attr;
- RETURN temp_;
- END Get_Rejected_By;
-
-
- FUNCTION Get_Rejected_Date (
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2 ) RETURN DATE
- IS
- temp_ &TABLE..rejected_date%TYPE;
- CURSOR get_attr IS
- SELECT rejected_date
- FROM &TABLE
- WHERE company = company_
- AND stock_taking_unit_id = stock_taking_unit_id_;
- BEGIN
- OPEN get_attr;
- FETCH get_attr INTO temp_;
- CLOSE get_attr;
- RETURN temp_;
- END Get_Rejected_Date;
-
-
- FUNCTION Get_Cabang_Id (
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2 ) RETURN VARCHAR2
- IS
- temp_ &TABLE..cabang_id%TYPE;
- CURSOR get_attr IS
- SELECT cabang_id
- FROM &TABLE
- WHERE company = company_
- AND stock_taking_unit_id = stock_taking_unit_id_;
- BEGIN
- OPEN get_attr;
- FETCH get_attr INTO temp_;
- CLOSE get_attr;
- RETURN temp_;
- END Get_Cabang_Id;
-
-
- FUNCTION Get (
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2 ) RETURN Public_Rec
- IS
- temp_ Public_Rec;
- CURSOR get_attr IS
- SELECT tgl_stock_taking, tgl_start, tgl_selesai, created_by, created_date, submit_by, submit_date, approved_by, approved_date, rejected_by, rejected_date, cabang_id
- FROM &TABLE
- WHERE company = company_
- AND stock_taking_unit_id = stock_taking_unit_id_;
- BEGIN
- OPEN get_attr;
- FETCH get_attr INTO temp_;
- CLOSE get_attr;
- RETURN temp_;
- END Get;
-
-
- PROCEDURE Create_Update_Record(
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN OUT VARCHAR2,
- tgl_stock_taking_ IN DATE,
- tgl_start_ IN DATE,
- tgl_selesai_ IN DATE,
- cabang_id_ IN VARCHAR2)
-
- IS
- attr_ VARCHAR2(2000);
- objid_ VARCHAR2(200);
- objversion_ VARCHAR2(2000);
- info_ VARCHAR2(2000);
-
- CURSOR get_id IS
- select NVL(max(TO_NUMBER(stock_taking_unit_id)),0) + 1
- from &VIEW.
- where company = company_;
-
- temp_ NUMBER;
-
- BEGIN
- General_SYS.Init_Method(lu_name_, '&PKG', 'Create_Update_Record');
- Get_Id_Version_By_Keys___ (objid_, objversion_, company_,stock_taking_unit_id_);
-
- IF objid_ IS NULL THEN
- OPEN get_id;
- FETCH get_id into temp_;
- CLOSE get_id;
- stock_taking_unit_id_ := temp_;
-
- Client_SYS.Add_To_Attr('COMPANY', company_, attr_);
- Client_SYS.Add_To_Attr('STOCK_TAKING_UNIT_ID', stock_taking_unit_id_, attr_);
- END IF;
-
- Client_SYS.Add_To_Attr('TGL_STOCK_TAKING', tgl_stock_taking_, attr_);
- Client_SYS.Add_To_Attr('TGL_START', tgl_start_, attr_);
- Client_SYS.Add_To_Attr('TGL_SELESAI', tgl_selesai_, attr_);
- Client_SYS.Add_To_Attr('CABANG_ID', cabang_id_, attr_);
-
- IF objid_ IS NULL THEN
- Client_SYS.Add_To_Attr('CREATED_DATE', sysdate, attr_);
- Client_SYS.Add_To_Attr('CREATED_BY', Utils_API.Get_Fnd_User, attr_);
- New__(info_, objid_, objversion_, attr_, 'DO');
- ELSE
- Modify__(info_,objid_,objversion_,attr_,'DO');
- END IF;
-
- END Create_Update_Record;
-
-
- PROCEDURE Remove_Record(
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2)
-
- IS
- objid_ VARCHAR2(200);
- objversion_ VARCHAR2(2000);
- info_ VARCHAR2(2000);
-
- BEGIN
- Get_Id_Version_By_Keys___ (objid_, objversion_, company_, stock_taking_unit_id_);
- Remove__(info_, objid_, objversion_, 'DO');
-
- END Remove_Record;
-
-
- PROCEDURE Call_Submit(
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2)
-
- IS
- objid_ VARCHAR2(200);
- objversion_ VARCHAR2(2000);
- info_ VARCHAR2(2000);
- attr_ VARCHAR2(2000);
-
- state_ VARCHAR2(100) := Stock_Taking_Unit_API.Get_Status_Stock_Taking(company_,stock_taking_unit_id_);
-
- BEGIN
- Get_Id_Version_By_Keys___ (objid_, objversion_, company_, stock_taking_unit_id_);
- IF(state_ = 'Submitted') THEN
- Error_SYS.Record_General(lu_name_,'This data already submitted');
- ELSE
- Submit__(info_, objid_, objversion_,attr_, 'DO');
- END IF;
-
-
-
- END Call_Submit;
-
-
- PROCEDURE Call_Re_Submit(
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2)
-
- IS
- objid_ VARCHAR2(200);
- objversion_ VARCHAR2(2000);
- info_ VARCHAR2(2000);
- attr_ VARCHAR2(2000);
-
- BEGIN
- Get_Id_Version_By_Keys___ (objid_, objversion_, company_, stock_taking_unit_id_);
- Re_Submit__(info_, objid_, objversion_,attr_, 'DO');
-
- END Call_Re_Submit;
-
-
- PROCEDURE Call_Cancel_Submit(
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2)
-
- IS
- objid_ VARCHAR2(200);
- objversion_ VARCHAR2(2000);
- info_ VARCHAR2(2000);
- attr_ VARCHAR2(2000);
-
- BEGIN
- Get_Id_Version_By_Keys___ (objid_, objversion_, company_, stock_taking_unit_id_);
- Cancel_Submit__(info_, objid_, objversion_,attr_, 'DO');
-
- END Call_Cancel_Submit;
-
-
- PROCEDURE Call_Approve(
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2)
-
- IS
- objid_ VARCHAR2(200);
- objversion_ VARCHAR2(2000);
- info_ VARCHAR2(2000);
- attr_ VARCHAR2(2000);
-
- BEGIN
- Get_Id_Version_By_Keys___ (objid_, objversion_, company_, stock_taking_unit_id_);
- Approve__(info_, objid_, objversion_,attr_, 'DO');
-
- END Call_Approve;
-
-
- PROCEDURE Call_Cancel_Approve(
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2)
-
- IS
- objid_ VARCHAR2(200);
- objversion_ VARCHAR2(2000);
- info_ VARCHAR2(2000);
- attr_ VARCHAR2(2000);
-
- BEGIN
- Get_Id_Version_By_Keys___ (objid_, objversion_, company_, stock_taking_unit_id_);
- Cancel_Approve__(info_, objid_, objversion_,attr_, 'DO');
-
- END Call_Cancel_Approve;
-
-
- PROCEDURE Call_Reject(
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2)
-
- IS
- objid_ VARCHAR2(200);
- objversion_ VARCHAR2(2000);
- info_ VARCHAR2(2000);
- attr_ VARCHAR2(2000);
-
- BEGIN
- Get_Id_Version_By_Keys___ (objid_, objversion_, company_, stock_taking_unit_id_);
- Approve__(info_, objid_, objversion_,attr_, 'DO');
-
- END Call_Reject;
-
-
- PROCEDURE Update_Tgl_Selesai(
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2,
- tgl_selesai_ IN DATE)
-
- IS
- objid_ VARCHAR2(200);
- objversion_ VARCHAR2(2000);
- info_ VARCHAR2(2000);
- attr_ VARCHAR2(2000);
-
- BEGIN
- Get_Id_Version_By_Keys___ (objid_, objversion_, company_, stock_taking_unit_id_);
- Client_SYS.Add_To_Attr('TGL_SELESAI', tgl_selesai_, attr_);
- Modify__(info_,objid_,objversion_,attr_,'DO');
-
-
- END Update_Tgl_Selesai;
-
-
- FUNCTION Get_Status_Stock_Taking(
- company_ IN VARCHAR2,
- stock_taking_unit_id_ IN VARCHAR2) RETURN VARCHAR2
- IS
- CURSOR get_state IS
- select state from &VIEW.
- WHERE company = company_
- AND stock_taking_unit_id = stock_taking_unit_id_;
-
- temp_ VARCHAR2(100);
-
- BEGIN
- OPEN get_state;
- FETCH get_state INTO temp_;
- CLOSE get_state;
-
- RETURN temp_;
- END Get_Status_Stock_Taking;
-
-
- -----------------------------------------------------------------------------
- -------------------- FOUNDATION1 METHODS ------------------------------------
- -----------------------------------------------------------------------------
- -- Init
- -- Dummy procedure that can be called at database startup to ensure that
- -- this package is loaded into memory for performance reasons only.
- -----------------------------------------------------------------------------
-
- PROCEDURE Init
- IS
- BEGIN
- NULL;
- END Init;
-
-
- END &PKG;
- /
- SHOW ERROR
-
- -----------------------------------------------------------------------------
|