def CallUpdateOilNetting(): """Interface Package Description""" interface = { "WellName": str, "CorpID": str, "NettingValue": float, "NettingDate": datetime, "UpdateUser": str } pkg, success, msg = InitializePayload(request, interface) if success: WellName = pkg['WellName'] CorpID = pkg['CorpID'] NettingValue = pkg['NettingValue'] NettingDate = pkg['NettingDate'] UpdateUser = pkg['UpdateUser'] #Check CorpID if Wellname is passed and vice versa WellName, CorpID = iu.GetWellandCorpID(WellName, CorpID) NettingRow = m.GasNettingRow(WellName, CorpID, NettingValue, NettingDate, '') success, msg = NettingRow.Update(UpdateUser, datetime.now()) output = ConfigureOutput('', success, msg) return output
def SOHA_WriteGasNettingFactorsFromDB(Update_User, Update_Date, wellnames=[]): from Model import BPXDatabase as bpx from Model import QueryFile as qf from Model import ModelLayer as m import datetime as datetime Success = True Messages = [] try: config = m.GetConfig() DBObj = bpx.BPXDatabase(config['server'], config['database'], config['UID']) TeamOpsObj = bpx.GetDBEnvironment('OnPrem', 'OVERRIDE') EDWObj = bpx.GetDBEnvironment('ProdEDW', 'OVERRIDE') #Get Well List of required netting values from data that is already in database. query = qf.GetNettingFactorsfromDB(wellnames) res, res_df = TeamOpsObj.Query(query) count = 1 for idx, item in res_df.iterrows(): wellquery = qf.EDWKeyQueryFromWellName([item['WellName']]) res, well_row = EDWObj.Query(wellquery) if not well_row.empty: corpID = well_row['CorpID'].values[0] NettingObj = m.GasNettingRow(item['WellName'], corpID, item['NF'], item['FirstSalesDateInput'], DBObj) Success, Message = NettingObj.Write(Update_User, Update_Date) if not Success: Messages.append(Message) callprogressbar(count, res_df.shape[0]) count = count + 1 except Exception as ex: Success = False Messages.append('Error during write of netting factors to DB. ' + str(ex)) return Success, Messages