SELECT csrTmpFile IF GETNEXTMODIFIED(0, "csrTmpFile") # 0 lcAdj_No = THISFORM.GetNextAdj() IF lcAdj_No == "" RETURN "NOAUTO-" ENDIF SELECT csrTmpFile SCAN IF csrTmpFile.AdjQty # 0 UPDATE Stock_Status SET Qty = CURVAL("Qty", "Stock_Status") + csrTmpFile.AdjQty WHERE ; Stock_Status.INo = csrTmpFile.INo AND LocCode == csrTmpFile.LocCode ENDIF ENDSCAN ELSE RETURN "" ENDIF BEGIN TRANSACTION IF NOT llRollBack AND NOT TABLEUPDATE(2, tlForceUpdate, "Stock_Status") llRollBack = .T. ENDIF SELECT csrTmpFile LOCATE SCAN SELECT Stock_Status LOCATE FOR INo == csrTmpFile.INo AND LocCode == csrTmpFile.LocCode IF FOUND() IF AT("2", GETFLDSTATE(-1) ) = 0 INSERT INTO tblAdj_Details (Adj_No, INo, BCode, Qty, NewQty, AdjQty, LocCode, CPU) ; VALUES (lcAdj_No, csrTmpFile.INo, csrTmpFile.BCode, csrTmpFile.Qty, ; csrTmpFile.NewQty, csrTmpFile.AdjQty, csrTmpFile.LocCode, csrTmpFile.CPU) lnCount = lnCount + 1 SELECT csrTmpFile DELETE ENDIF ENDIF ENDSCAN IF lnCount > 0 INSERT INTO tblStock_Adj (Adj_No, dDate, Remark, Operator) ; VALUES (lcAdj_No, tdDate, tcDesc, tcOperator) ENDIF BEGIN TRANSACTION IF NOT llRollBack2 AND NOT TABLEUPDATE(.T., tlForceUpdate, "tblStock_Adj") llRollBack2 = .T. ENDIF IF NOT llRollBack2 AND NOT TABLEUPDATE(.T., tlForceUpdate, "tblAdj_Details") llRollBack2 = .T. ENDIF IF llRollBack2 ROLLBACK ROLLBACK && TRANSACTION 1 TABLEREVERT(.T., "tblStock_Adj") TABLEREVERT(.T., "tblAdj_Details") TABLEREVERT(.T., "Stock_Status") AERROR(laError) RETURN "ERROR-" + laError[2] + "(" + ALLTRIM(STR(laError[1])) + ")" ELSE IF llRollBack AERROR(laError) DO CASE CASE laError[1,1] = 1585 RETURN "CONFLICT-" OTHERWISE RETURN "ERROR-" + laError[2] + "(" + ALLTRIM(STR(laError[1])) + ")" ENDCASE ELSE END TRANSACTION END TRANSACTION && TRANSACTION 1 RETURN "SAVED-" ENDIF ENDIF