Esempio n. 1
0
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
Esempio n. 2
0
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