Esempio n. 1
0
log = open(base_url + "cronjob/python/Loan/log/importZACCF.txt", "a")
logRun = open(base_url + "cronjob/python/Loan/log/runImportZACCF.txt", "a")
now = datetime.now()
subUserType = 'LO'
collection = common.getSubUser(subUserType, 'ZACCF')

try:
    modelColumns = []
    modelConverters = {}
    modelPosition = {}
    modelFormat = {}
    updateKey = []
    checkNullKey = []

    ftpInfo = mongodb.getOne(MONGO_COLLECTION=common.getSubUser(
        subUserType, 'ftp_config'),
                             WHERE={'collection': collection})
    ftpConfig = config.ftp_config()
    ftpLocalUrl = common.getDownloadFolder() + ftpInfo['filename']

    try:
        sys.argv[1]
        importLogId = str(sys.argv[1])
        importLogInfo = mongodb.getOne(MONGO_COLLECTION=common.getSubUser(
            subUserType, 'Import'),
                                       WHERE={'_id': ObjectId(sys.argv[1])})
    except Exception as SysArgvError:
        # ftp.connect(host=ftpConfig['host'], username=ftpConfig['username'], password=ftpConfig['password'])
        # ftp.downLoadFile(ftpLocalUrl, ftpInfo['filename'])
        # ftp.close()
        MONGO_COLLECTION=common.getSubUser(subUserType, 'Report_off_sys'))
    listHoliday = map(lambda offDateRow: {offDateRow['off_date']},
                      holidayOfMonth)

    if todayTimeStamp in listHoliday:
        sys.exit()

    mongodb.remove_document(MONGO_COLLECTION=collection,
                            WHERE={
                                'createdAt': {
                                    '$gte': todayTimeStamp,
                                    '$lte': endTodayTimeStamp
                                }
                            })

    debtGroup = _mongodb.getOne(MONGO_COLLECTION=jsonData_collection,
                                WHERE={'tags': ['debt', 'group']})
    dueDate = _mongodb.getOne(MONGO_COLLECTION=jsonData_collection,
                              WHERE={'tags': ['debt', 'duedate']})

    for group in debtGroup['data']:
        for duedate in dueDate['data']:
            listDebtGroup.append(group['text'] + duedate['text'])

    listDebtGroup = sorted(listDebtGroup)

    listGroupProductRaw = _mongodb.getOne(
        MONGO_COLLECTION=jsonData_collection,
        WHERE={'tags': ['group', 'debt', 'product']})
    listGroupProduct = listGroupProductRaw['data']

    for debtGroupCell in list(listDebtGroup):
Esempio n. 3
0
                          "%d/%m/%Y %H:%M:%S")))

    startMonth = int(
        time.mktime(
            time.strptime(
                str('01/' + str(month) + '/' + str(year) + " 00:00:00"),
                "%d/%m/%Y %H:%M:%S")))
    endMonth = int(
        time.mktime(
            time.strptime(
                str(
                    str(lastDayOfMonth) + '/' + str(month) + '/' + str(year) +
                    " 23:59:59"), "%d/%m/%Y %H:%M:%S")))

    holidayOfMonth = mongodb.getOne(MONGO_COLLECTION=common.getSubUser(
        subUserType, 'Report_off_sys'),
                                    WHERE={'off_date': todayTimeStamp})
    if holidayOfMonth != None:
        sys.exit()

    mongodb.remove_document(MONGO_COLLECTION=collection,
                            WHERE={
                                'createdAt': {
                                    '$gte': todayTimeStamp,
                                    '$lte': endTodayTimeStamp
                                }
                            })

    aggregate_blockcard = [{
        "$group": {
            "_id": 'null',
Esempio n. 4
0
    total = 0
    complete = 0

    if day == 1:
        mongodb.create_db(DB_NAME=logDbName)
        mongodbresult = Mongodb(logDbName, wff_env)
    else:
        mongodbresult = Mongodb(logDbName, wff_env)

    ftpLocalUrl = common.getDownloadFolder() + fileName

    try:
        sys.argv[1]
        importLogId = str(sys.argv[1])
        importLogInfo = mongodb.getOne(MONGO_COLLECTION=common.getSubUser(
            subUserType, 'Import'),
                                       WHERE={'_id': ObjectId(sys.argv[1])})
    except Exception as SysArgvError:
        # ftp.connect(host=ftpConfig['host'], username=ftpConfig['username'], password=ftpConfig['password'])
        # ftp.downLoadFile(ftpLocalUrl, ftpInfo['filename'])
        # ftp.close()

        if not os.path.isfile(ftpLocalUrl):
            sys.exit()

        importLogInfo = {
            'collection': collection,
            'begin_import': time.time(),
            'file_name': fileName,
            'file_path': ftpLocalUrl,
            'source': 'ftp',
Esempio n. 5
0
ftp = Ftp()
common = Common()
base_url = config.base_url()
log = open(base_url + "cronjob/python/Loan/log/importListOfAccountInCollection.txt","a")
now = datetime.now()
subUserType = 'LO'
collection = common.getSubUser(subUserType, 'List_of_account_in_collection')

try:
    modelColumns = []
    modelConverters = {}
    modelFormat = {}
    insertData = []
    updateData = []

    ftpInfo = mongodb.getOne(MONGO_COLLECTION=common.getSubUser(subUserType, 'ftp_config'), WHERE={'collection': collection})
    ftpConfig = config.ftp_config()
    ftpLocalUrl = base_url + ftpInfo['locallink'] + ftpInfo['filename']

    try:
        sys.argv[1]
        importLogId = str(sys.argv[1])
        importLogInfo = mongodb.getOne(MONGO_COLLECTION=common.getSubUser(subUserType, 'Import'), WHERE={'_id': ObjectId(sys.argv[1])})
    except Exception as SysArgvError:
        ftp.connect(host=ftpConfig['host'], username=ftpConfig['username'], password=ftpConfig['password'])
        ftp.downLoadFile(ftpLocalUrl, ftpInfo['filename'])
        ftp.close()

        importLogInfo = {
            'collection'    : collection, 
            'begin_import'  : time.time(),
Esempio n. 6
0
                          "%d/%m/%Y %H:%M:%S")))

    startMonth = int(
        time.mktime(
            time.strptime(
                str('01/' + str(month) + '/' + str(year) + " 00:00:00"),
                "%d/%m/%Y %H:%M:%S")))
    endMonth = int(
        time.mktime(
            time.strptime(
                str(
                    str(lastDayOfMonth) + '/' + str(month) + '/' + str(year) +
                    " 23:59:59"), "%d/%m/%Y %H:%M:%S")))

    checkDueDateAdd1 = mongodb.getOne(
        MONGO_COLLECTION=report_due_date_collection,
        WHERE={'due_date_add_1': todayTimeStamp})
    if checkDueDateAdd1 == None:
        sys.exit()

    mongodb.remove_document(MONGO_COLLECTION=collection,
                            WHERE={
                                'created_at': {
                                    '$gte': todayTimeStamp,
                                    '$lte': endTodayTimeStamp
                                }
                            })

    debtGroup = _mongodb.getOne(MONGO_COLLECTION=jsonData_collection,
                                WHERE={'tags': ['debt', 'group']})
    dueDate = _mongodb.getOne(MONGO_COLLECTION=jsonData_collection,
base_url = config.base_url()
log = open(base_url + "cronjob/python/Loan/log/importLNJC05F.txt","a")
now = datetime.now()
subUserType = 'LO'
collection = common.getSubUser(subUserType, 'LNJC05')

try:
    modelColumns = []
    modelConverters = {}
    modelPosition = {}
    modelFormat = {}
    updateKey = []
    checkNullKey = []

    ftpConfig = config.ftp_config()
    ftpInfo = mongodb.getOne(MONGO_COLLECTION=common.getSubUser(subUserType, 'ftp_config'), WHERE={'collection': collection})
    ftpLocalUrl = base_url + ftpInfo['locallink'] + ftpInfo['filename']

    # ftp.connect(host=ftpConfig['host'], username=ftpConfig['username'], password=ftpConfig['password'])
    # ftp.downLoadFile(ftpLocalUrl, ftpInfo['filename'])
    # ftp.close()

    importLogInfo = {
        'collection'    : collection,
        'begin_import'  : time.time(),
        'file_name'     : ftpInfo['filename'],
        'file_path'     : ftpLocalUrl,
        'source'        : 'ftp',
        'status'        : 2,
        'command'       : 'python3.6 ' + base_url + "cronjob/python/Loan/importLN3206F.py > /dev/null &",
        'created_by'    : 'system'
Esempio n. 8
0
        MONGO_COLLECTION=common.getSubUser(subUserType, 'Report_off_sys'))
    listHoliday = map(lambda offDateRow: {offDateRow['off_date']},
                      holidayOfMonth)

    if todayTimeStamp in listHoliday:
        sys.exit()

    mongodb.remove_document(MONGO_COLLECTION=collection,
                            WHERE={
                                'createdAt': {
                                    '$gte': todayTimeStamp,
                                    '$lte': endTodayTimeStamp
                                }
                            })

    price = mongodb.getOne(MONGO_COLLECTION=config_collection,
                           SELECT=['conditionDonotCall'])

    # SIBS
    aggregate_acc = [{
        "$lookup": {
            "from": common.getSubUser(subUserType, 'ZACCF_report'),
            "localField": "account_number",
            "foreignField": "account_number",
            "as": "detail"
        }
    }, {
        "$match": {
            "detail.PRODGRP_ID": {
                '$in': ['103', '402', '502', '602', '702', '802', '902']
            },
        }
Esempio n. 9
0
            for idx, row in enumerate(result):
                data.append(row)

    if int(mod) > 0:
        result = mongodb.get(MONGO_COLLECTION=ln3206_collection,
                             SELECT=['account_number', 'amt', 'date'],
                             SORT=([('_id', -1)]),
                             SKIP=int(int(quotient) * 10000),
                             TAKE=int(mod))
        for idx, row in enumerate(result):
            data.append(row)

    for row in data:
        if 'account_number' in row.keys():
            zaccf = mongodb.getOne(
                MONGO_COLLECTION=zaccf_collection,
                WHERE={'account_number': str(row['account_number'])},
                SELECT=['name', 'rpy_prn', 'RPY_INT', 'RPY_FEE', 'PRODGRP_ID'])
            if zaccf != None:
                row['name'] = zaccf['name']
                row['paid_principal'] = zaccf['rpy_prn']
                row['paid_interest'] = zaccf['RPY_INT']
                row['RPY_FEE'] = zaccf['RPY_FEE']
                product = mongodb.getOne(
                    MONGO_COLLECTION=product_collection,
                    WHERE={'code': str(zaccf['PRODGRP_ID'])},
                    SELECT=['name'])
                if product != None:
                    row['product_name'] = product['name']
                else:
                    row['product_name'] = ''
            # else:
cdr_collection = common.getSubUser(subUserType, 'worldfonepbxmanager')
jsonData_collection = common.getSubUser(subUserType, 'Jsondata')
user_collection = common.getSubUser(subUserType, 'User')
wo_collection = common.getSubUser(subUserType, 'WO_monthly')
action_code_collection = common.getSubUser(subUserType, 'Action_code')
# log         = open(base_url + "cronjob/python/Loan/log/DailyAssignment_log.txt","a")

try:
    data = []
    insertData = []
    PaymentData = []
    now = datetime.now()
    # log.write(now.strftime("%d/%m/%Y, %H:%M:%S") + ': Start Import' + '\n')

    lawsuit_fields = _mongodb.getOne(MONGO_COLLECTION=jsonData_collection,
                                     SELECT=['data'],
                                     WHERE={'name': 'lawsuit fields'})
    raa_fields = _mongodb.getOne(MONGO_COLLECTION=jsonData_collection,
                                 SELECT=['data'],
                                 WHERE={'name': 'Raa fields'})
    users = _mongodb.get(MONGO_COLLECTION=user_collection,
                         SELECT=['extension', 'agentname'],
                         WHERE={'active': 'true'})
    i = 1
    # LNJC05
    aggregate_pipeline = [{
        "$lookup": {
            "from": action_code_collection,
            "localField": "account_number",
            "foreignField": "account_number",
            "as": "detail"
    
     {
         "$project":
         {
          #    col field
             "group_id": 1, 
             "account_number": 1,
             "cus_name": 1,
             "overdue_amount_this_month": 1,
             'installment_type': 1,
             'advance_balance': 1,
             'outstanding_principal': 1,
         }
     }
 ]
 price = mongodb.getOne(MONGO_COLLECTION=config_collection, SELECT=['conditionDonotCall']) 
 data = mongodb.aggregate_pipeline(MONGO_COLLECTION=lnjc05_collection,aggregate_pipeline=aggregate_pipeline)
 count = 0
 for row in data:
    if 'account_number' in row.keys():
      condition = row['overdue_amount_this_month'] - row['advance_balance']
      if condition <= price['conditionDonotCall']:
      
          zaccf = mongodb.getOne(MONGO_COLLECTION=zaccf_collection, WHERE={'account_number': str(row['account_number'])},
              SELECT=['PRODGRP_ID'])    
          if zaccf != None:
              if zaccf['PRODGRP_ID'] != "103" and zaccf['PRODGRP_ID'] != "402" and zaccf['PRODGRP_ID'] != "502" and zaccf['PRODGRP_ID'] != "602" and zaccf['PRODGRP_ID'] != "702" and zaccf['PRODGRP_ID'] != "802" and zaccf['PRODGRP_ID'] != "902":
                      count +=1
                      temp = {}
                      if row['installment_type'] =='n' and row['outstanding_principal'] == 0:
                          temp['No'] = count 
Esempio n. 12
0
excel = Excel()
config = Config()
ftp = Ftp()
common = Common()
base_url = config.base_url()
log = open(base_url + "cronjob/python/Telesales/importSCschedule.txt","a")
now = datetime.now()
subUserType = 'TS'
collection = common.getSubUser(subUserType, 'Sibs')

importLogId = sys.argv[1]
sibsColumns = []
sibsConverters = {}

try:
    importLogInfo = mongodb.getOne(MONGO_COLLECTION=common.getSubUser(subUserType, 'Import'), WHERE={'_id': ObjectId(importLogId)})

    modelsSibs = _mongodb.get(MONGO_COLLECTION='Model', WHERE={'collection': collection}, SORT=[('index', 1)], SELECT=['index', 'collection', 'field', 'type'])
    for model in modelsSibs:
        sibsColumns.append(model['field'])
        if(model['type'] == 'string'):
            sibsConverters[model['field']] = str

    zaccfs = excel.getDataCSV(file_path=importLogInfo['file_path'], header=None, names=sibsColumns, usecols=[5, 6, 7, 116, 122], converters=sibsConverters)
    zaccfList = zaccfs.to_dict('records')

    insertData = []
    updateData = []
    errorData = []

    temp = {}
Esempio n. 13
0
                                 'current_balance', 'due_date', 'address',
                                 'officer_name'
                             ],
                             SORT=([('_id', -1)]),
                             SKIP=int(int(quotient) * 10000),
                             TAKE=int(mod))
        for idx, row in enumerate(result):
            data.append(row)

    for row in data:
        if 'account_number' in row.keys():
            zaccf = mongodb.getOne(
                MONGO_COLLECTION=zaccf_collection,
                WHERE={'account_number': str(row['account_number'])},
                SELECT=[
                    'BIR_DT8', 'CUS_ID', 'FRELD8', 'PRODGRP_ID', 'LIC_NO',
                    'APPROV_LMT', 'TERM_ID', 'RPY_PRD', 'F_PDT', 'DT_MAT',
                    'MOBILE_NO', 'WRK_REF', 'WRK_REF1', 'WRK_REF2', 'WRK_REF3',
                    'WRK_REF4', 'WRK_REF5', 'W_ORG', 'INT_RATE', 'OVER_DY'
                ])
            if zaccf != None:
                row['BIR_DT8'] = str(zaccf['BIR_DT8'])
                row['CUS_ID'] = zaccf['CUS_ID']
                row['FRELD8'] = zaccf['FRELD8']
                row['LIC_NO'] = zaccf['LIC_NO']
                row['APPROV_LMT'] = zaccf['APPROV_LMT']
                row['TERM_ID'] = zaccf['TERM_ID']
                row['RPY_PRD'] = zaccf['RPY_PRD']
                row['F_PDT'] = str(zaccf['F_PDT'])
                row['DT_MAT'] = str(zaccf['DT_MAT'])
                row['MOBILE_NO'] = zaccf['MOBILE_NO']
Esempio n. 14
0
_mongodb = Mongodb("_worldfone4xs", WFF_ENV=wff_env)
excel = Excel()
config = Config()
base_url = config.base_url()
subUserType = 'TS'
collection = common.getSubUser(subUserType, 'Telesalelist')
# log         = open(base_url + "cronjob/python/Telesales/importTelesales.txt","a")
now = datetime.now()
# log.write(now.strftime("%d/%m/%Y, %H:%M:%S") + ': Start Import' + '\n')
try:

    try:
        sys.argv[1]
        importLogId = str(sys.argv[1])
        importLogInfo = mongodb.getOne(MONGO_COLLECTION=common.getSubUser(
            subUserType, 'Import'),
                                       WHERE={'_id': ObjectId(importLogId)})
    except Exception as SysArgvError:
        ftpInfo = mongodb.getOne(MONGO_COLLECTION=common.getSubUser(
            subUserType, 'ftp_config'),
                                 WHERE={'collection': collection})
        ftpConfig = config.ftp_config()
        ftpLocalUrl = common.getDownloadFolder() + ftpInfo['filename']

        if path.exists(ftpLocalUrl) == False:
            sys.exit()

        importLogInfo = {
            'collection': 'Telesalelist',
            'begin_import': time.time(),
            'file_name': ftpInfo['filename'],
                                WHERE={
                                    'contract_no': {
                                        '$in': accs
                                    },
                                    'overdue_indicator': 'A',
                                    'kydue': report_day['debt_group']
                                }))
                len(list_acc_info)
                temp_card['no_delays'] = len(list_acc_info)

            # Update thong tin cho thang truoc
            lastMonthDueDate = mongodb.getOne(
                MONGO_COLLECTION=common.getSubUser(subUserType,
                                                   'Tendency_delinquent'),
                WHERE={
                    'for_month': str(lastMonthMonth),
                    'for_year': str(lastMonthYear),
                    'debt_group': 'A' + report_day['debt_group'],
                    'prod_name': 'Bike/PL'
                })

            if lastMonthDueDate != None:
                list_acc_due_date_sibs_temp = list(
                    mongodb.get(
                        MONGO_COLLECTION=common.getSubUser(
                            subUserType, lnjc05_yesterday),
                        WHERE={'group_id': 'A' + report_day['debt_group']},
                        SELECT=['account_number', 'group_id']))
                list_acc_due_date_sibs = list(
                    common.array_column(list_dict=list_acc_due_date_sibs_temp,
                                        value='account_number'))
Esempio n. 16
0
    # LN2306f
    aggregate_pipeline = [{
        "$match": {
            "created_at": {
                '$gte': todayTimeStamp,
                '$lte': endTodayTimeStamp
            },
        }
    }]
    data = mongodb.aggregate_pipeline(MONGO_COLLECTION=ln3206_collection,
                                      aggregate_pipeline=aggregate_pipeline)

    if data != None:
        for row in data:
            lnjc05Data = mongodb.getOne(
                MONGO_COLLECTION=lnjc05_collection,
                WHERE={'account_number': str(row['account_number'])})
            if lnjc05Data != None:
                accountYes.append(row['account_number'])
            else:
                accountNo.append(row['account_number'])

    print(len(accountYes))
    temp['coNoHayKhong'] = 'Y'
    mongodb.batch_update(MONGO_COLLECTION=ln3206_collection,
                         WHERE={
                             'account_number': {
                                 '$in': accountYes
                             },
                             "created_at": {
                                 '$gte': todayTimeStamp,
Esempio n. 17
0
    holidayOfMonth = mongodb.get(MONGO_COLLECTION=common.getSubUser(subUserType, 'Report_off_sys'))
    listHoliday = map(lambda offDateRow: {offDateRow['off_date']}, holidayOfMonth)

    # if todayTimeStamp in listHoliday or (weekday == 5) or weekday == 6:
    #     sys.exit()

    todayString = today.strftime("%d/%m/%Y")
    starttime = int(time.mktime(time.strptime(str(todayString + " 00:00:00"), "%d/%m/%Y %H:%M:%S")))
    endtime = int(time.mktime(time.strptime(str(todayString + " 23:59:59"), "%d/%m/%Y %H:%M:%S")))

    mainProduct = {}
    mainProductRaw = mongodb.get(MONGO_COLLECTION=common.getSubUser(subUserType, 'Product'))
    for prod in mainProductRaw:
        mainProduct[prod['code']] = prod['name']

    debtGroup = _mongodb.getOne(MONGO_COLLECTION=common.getSubUser(subUserType, 'Jsondata'), WHERE={'tags': ['debt', 'group']})
    dueDate = _mongodb.getOne(MONGO_COLLECTION=common.getSubUser(subUserType, 'Jsondata'), WHERE={'tags': ['debt', 'duedate']})

    for group in debtGroup['data']:
        for duedate in dueDate['data']:
            listDebtGroup.append(group['text'] + duedate['text'])

    listDebtGroup = sorted(listDebtGroup)

    listGroupProductRaw = _mongodb.getOne(MONGO_COLLECTION=common.getSubUser(subUserType, 'Jsondata'), WHERE={'tags': ['group', 'debt', 'product']})
    listGroupProduct = listGroupProductRaw['data']

    for debtGroupCell in list(listDebtGroup):
        if debtGroupCell[0:1] is not 'F':
            dueDayOfMonth = mongodb.getOne(MONGO_COLLECTION=common.getSubUser(subUserType, 'Report_due_date'), WHERE={'for_month': str(month), 'debt_group': debtGroupCell[1:3]})
            for groupProduct in list(listGroupProduct):
   accountInfo = mongodb.get(MONGO_COLLECTION=account_collection,WHERE={'account_number': {'$in' : account_number_arr}})
   if accountInfo != None:
      i = 1
      for acc_row in accountInfo:
         temp = {
            'index'           : i,
            'account_number'  : acc_row['account_number'],
            'name'            : acc_row['cus_name'],
            'block'           : 'true',
            'accl'            : '',
            'sibs'            : '',
            'group'           : '',
            'createdBy'       : 'system',
            'createdAt'       : time.time()
         }
         groupInfo = mongodb.getOne(MONGO_COLLECTION=group_collection,WHERE={'account_number': acc_row['account_number']})
         if groupInfo  != None:
            group = groupInfo['group']
            temp['accl'] = group

         insertData.append(temp)
         i += 1


   # lnjc05
   aggregate_lnjc05 = [
      {
          "$match":
          {
              "group_id": {'$in' : ['B01','B02','B03']},
          }
Esempio n. 19
0
 for key in month_in_year:
     worksheet.merge_range('A' + str(row) + ':A' + str(row + 8),
                           month_in_year[key],
                           add_format_cell({'border': 1}))
     count_due_date = 0
     for due_date in due_date_in_month:
         worksheet.merge_range(
             'B' + str(row + count_due_date * 3) + ':B' +
             str(row + count_due_date * 3 + 2), due_date,
             add_format_cell({'border': 1}))
         for product in products:
             data = mongodb.getOne(MONGO_COLLECTION=collection,
                                   WHERE={
                                       'for_month': key,
                                       'for_year': str(year),
                                       'debt_group': due_date,
                                       'request_no': {
                                           '$ne': None
                                       },
                                       'prod_name': product
                                   })
             worksheet.write('D' + str(row), product,
                             add_format_cell({'border': 1}))
             worksheet.write(
                 'E' + str(row), data['request_no']
                 if data != None and 'request_no' in data.keys() else 0,
                 add_format_cell({'align': 'right'}))
             worksheet.write(
                 'F' + str(row), data['no_delays']
                 if data != None and 'no_delays' in data.keys() else 0,
                 add_format_cell({
                     'align': 'right',
                    " 23:59:59"), "%d/%m/%Y %H:%M:%S")))

    mongodb.remove_document(MONGO_COLLECTION=collection,
                            WHERE={
                                'createdAt': {
                                    '$gte': todayTimeStamp,
                                    '$lte': endTodayTimeStamp
                                }
                            })

    i = 1

    last_five_day = todayTimeStamp - (86400 * 5)
    dueDayOfMonth = mongodb.getOne(MONGO_COLLECTION=report_due_date_collection,
                                   WHERE={
                                       'for_month': str(month),
                                       'due_date': last_five_day
                                   })
    if dueDayOfMonth != None:

        due_date = datetime.fromtimestamp(dueDayOfMonth['due_date'])
        d2 = due_date.strftime('%d/%m/%Y')
        due_date = datetime.strptime(d2, "%d/%m/%Y").date()
        day = due_date.day
        if day >= 12 and day <= 15:
            dept_group = '01'
        if day >= 22 and day <= 25:
            dept_group = '02'
        if (day >= 28 and day <= 31) or (day >= 1 and day <= 5):
            dept_group = '03'
        time.mktime(
            time.strptime(str(todayString + " 00:00:00"),
                          "%d/%m/%Y %H:%M:%S")))
    endtime = int(
        time.mktime(
            time.strptime(str(todayString + " 23:59:59"),
                          "%d/%m/%Y %H:%M:%S")))

    mainProduct = {}
    mainProductRaw = mongodb.get(
        MONGO_COLLECTION=common.getSubUser(subUserType, 'Product'))
    for prod in mainProductRaw:
        mainProduct[prod['code']] = prod['name']

    debtGroup = _mongodb.getOne(MONGO_COLLECTION=common.getSubUser(
        subUserType, 'Jsondata'),
                                WHERE={'tags': ['debt', 'group']})
    dueDate = _mongodb.getOne(MONGO_COLLECTION=common.getSubUser(
        subUserType, 'Jsondata'),
                              WHERE={'tags': ['debt', 'duedate']})

    for group in debtGroup['data']:
        for duedate in dueDate['data']:
            listDebtGroup.append(group['text'] + duedate['text'])

    listDebtGroup = sorted(listDebtGroup)

    listGroupProductRaw = _mongodb.getOne(
        MONGO_COLLECTION=common.getSubUser(subUserType, 'Jsondata'),
        WHERE={'tags': ['group', 'debt', 'product']})
    listGroupProduct = listGroupProductRaw['data']
Esempio n. 22
0
                         'collection':
                         common.getSubUser(subUserType, 'Telesalelist'),
                         'sub_type': {
                             '$ne': None
                         }
                     },
                     SORT=[('index', 1)]))
    model_field = list(common.array_column(model, 'field'))
    model_field.insert(0, 'starttime_call')
    model_title = list(common.array_column(model, 'title'))
    model_title.insert(0, 'Nearest Call')
    try:
        sys.argv[1]
        exportLogId = str(sys.argv[1])
        exportLogInfo = mongodb.getOne(MONGO_COLLECTION=common.getSubUser(
            subUserType, 'Export'),
                                       WHERE={'_id': ObjectId(exportLogId)})
        if exportLogInfo['filter'] not in [None, [], "[]"]:
            filter_value = json.loads(exportLogInfo['filter'])
            report_data = list(
                mongodb.get(MONGO_COLLECTION=collection,
                            WHERE=filter_value[0]['$match']))
        else:
            report_data = list(mongodb.get(MONGO_COLLECTION=collection))
    except Exception as SysArgvError:
        report_data = list(mongodb.get(MONGO_COLLECTION=collection))

    workbook = xlsxwriter.Workbook(fileOutput)
    worksheet = workbook.add_worksheet()

    for header_key, header_value in enumerate(model_title):
Esempio n. 23
0
    for targetGroup in targetInfo:
        if targetGroup['show_B_plus_duedate_type'] == False:
            duedate_type = targetGroup['duedate_type']
        else:
            duedate_type = targetGroup['B_plus_duedate_type']
        if duedate_type[1:3] == '03':
            if month == 1:
                lastmonth = 12
            else:
                lastmonth = month - 1
        else:
            lastmonth = month

        dueDayOfMonth = mongodb.getOne(
            MONGO_COLLECTION=report_due_date_collection,
            WHERE={
                'for_month': str(lastmonth),
                'debt_group': duedate_type[1:3]
            })
        temp = {
            'day': day,
            'for_month': month,
            'year': year,
            'type': targetGroup['debt_type'],
            'debt_group': duedate_type,
            'target': targetGroup['target'],
            'start_os_bl': 0,
            'start_no': 0,
            'target_of_col_os_bl': 0,
            'target_of_col_no': 0,
            'daily_os_bl': 0,
            'daily_no': 0,
Esempio n. 24
0
        result = mongodb.get(MONGO_COLLECTION=account_collection,
                             SELECT=[
                                 'phone', 'cus_name', 'overdue_amt',
                                 'current_bal', 'account_number'
                             ],
                             SORT=([('_id', -1)]),
                             SKIP=int(int(quotient) * 10000),
                             TAKE=int(mod))
        for idx, row in enumerate(result):
            PaymentData.append(row)

    for key, row in enumerate(PaymentData):
        temp = {}
        if 'account_number' in row.keys():
            group = mongodb.getOne(
                MONGO_COLLECTION=group_collection,
                WHERE={'account_number': str(row['account_number'])},
                SELECT=['group'])
            temp['type'] = 'card'
            temp['stt'] = key
            temp['account_number'] = row['account_number']
            if group != None:
                temp['group'] = group['group']
            else:
                temp['group'] = ''
            temp['phone'] = row['phone']
            temp['name'] = row['cus_name']
            temp['os'] = row['overdue_amt']
            temp['amount'] = row['current_bal']
            temp['sending_date'] = now.strftime("%d/%m/%Y")
            temp['createdAt'] = time.time()
            insertData.append(temp)
Esempio n. 25
0
try:
   importLogId = sys.argv[1]
   random      = sys.argv[2]
   extensions   = sys.argv[3]
   insertData  = []
   resultData  = []
   errorData   = []

   randoms = random.split(',')
   extensions = extensions.split(',')
   # log.write(str(extensions))
   now         = datetime.now()
   log.write(now.strftime("%d/%m/%Y, %H:%M:%S") + ': Start Log' + '\n')

   mongodb.update(MONGO_COLLECTION='TS_Import', WHERE={'_id': ObjectId(importLogId)}, VALUE={'assign': int(-1)})
   assign_log = mongodb.getOne(MONGO_COLLECTION='TS_Assign_log')
   if assign_log == None:
      users = _mongodb.get(MONGO_COLLECTION='TS_User', WHERE=None, SELECT=['extension', 'agentname'], SORT=([('id', 1)]))
      users = list(users)
      # log.write(str(users))
      arrayCMND = {}
      assign_log = {}
      for user in users:
         arrayCMND[user['extension']] = []
         assign_log[user['extension']] = []
      assign_log['_id'] = mongodb.insert('TS_Assign_log', arrayCMND)
      array_cmnd = []
 
   for u,extension in enumerate(extensions):
      user = _mongodb.getOne(MONGO_COLLECTION='TS_User', WHERE={'extension': str(extension)}, SELECT=['extension', 'agentname'])
      assign_name = user['agentname']
        if yesterdayTimeStamp not in listHoliday and (
                yesterday.weekday() != 5) and yesterday.weekday() != 6:
            checkYesterday = True
        days += 1

    dueDayOfMonth = mongodb.get(MONGO_COLLECTION=common.getSubUser(
        subUserType, 'Report_due_date'),
                                WHERE={'for_month': str(month)})
    listDueDate = {}
    listDueDateAddOne = {}
    for dueDate in dueDayOfMonth:
        listDueDate[dueDate['debt_group']] = dueDate['due_date']
        listDueDateAddOne[dueDate['debt_group']] = dueDate['due_date_add_1']

    debtGroup = _mongodb.getOne(MONGO_COLLECTION=common.getSubUser(
        subUserType, 'Jsondata'),
                                WHERE={'tags': ["debt", "duedate"]})
    debtDueDate = _mongodb.getOne(MONGO_COLLECTION=common.getSubUser(
        subUserType, 'Jsondata'),
                                  WHERE={'tags': ["debt", "group"]})
    for group in debtGroup['data']:
        for dueDate in debtDueDate['data']:
            listDebtGroup.append(dueDate['text'] + group['text'])

    mongodbaggregate.set_collection(
        collection=common.getSubUser(subUserType, 'LNJC05'))
    aggregate_pipeline = [{
        '$match': {
            'createdAt': {
                '$gte': starttime,
                '$lte': endtime
Esempio n. 27
0
   todayString = today.strftime("%d/%m/%Y")
   todayTimeStamp = int(time.mktime(time.strptime(str(todayString + " 00:00:00"), "%d/%m/%Y %H:%M:%S")))
   endTodayTimeStamp = int(time.mktime(time.strptime(str(todayString + " 23:59:59"), "%d/%m/%Y %H:%M:%S")))

   startMonth = int(time.mktime(time.strptime(str('01/' + str(month) + '/' + str(year) + " 00:00:00"), "%d/%m/%Y %H:%M:%S")))
   endMonth = int(time.mktime(time.strptime(str(str(lastDayOfMonth) + '/' + str(month) + '/' + str(year) + " 23:59:59"), "%d/%m/%Y %H:%M:%S")))

   holidayOfMonth = mongodb.get(MONGO_COLLECTION=common.getSubUser(subUserType, 'Report_off_sys'))
   listHoliday = map(lambda offDateRow: {offDateRow['off_date']}, holidayOfMonth)

   if todayTimeStamp in listHoliday:
      sys.exit()


   lawsuit_fields = _mongodb.getOne(MONGO_COLLECTION=jsonData_collection,SELECT=['data'],WHERE={'tags': ['LAWSUIT', 'fields']})
   raa_fields = _mongodb.getOne(MONGO_COLLECTION=jsonData_collection,SELECT=['data'],WHERE={'tags': ['RAA', 'fields']})
   users = _mongodb.get(MONGO_COLLECTION=user_collection,SELECT=['extension','agentname'],WHERE={'active': 'true'})
   i = 1
   # LNJC05

   aggregate_pipeline = [
      {
           "$match":
           {
               "starttime" : {'$gte' : todayTimeStamp,'$lte' : endTodayTimeStamp},
               "direction" : 'outbound',
               # "userextension": '4022'
               
           }
      }
Esempio n. 28
0
    ftpLocalUrl = common.getDownloadFolder() + fileName

    try:
        sys.argv[1]
        importLogId = str(sys.argv[1])
        mongodb.update(MONGO_COLLECTION=common.getSubUser(
            subUserType, 'Import'),
                       WHERE={'_id': ObjectId(sys.argv[1])},
                       VALUE={
                           'command':
                           '/usr/local/bin/python3.6 ' + base_url +
                           "cronjob/python/Loan/importAppointment_cron.py " +
                           importLogId + " > /dev/null &"
                       })
        importLogInfo = mongodb.getOne(MONGO_COLLECTION=common.getSubUser(
            subUserType, 'Import'),
                                       WHERE={'_id': ObjectId(sys.argv[1])})
    except Exception as SysArgvError:
        if not os.path.isfile(ftpLocalUrl):
            sys.exit()

        importLogInfo = {
            'collection': collection,
            'begin_import': time.time(),
            'file_name': fileName,
            'file_path': ftpLocalUrl,
            'source': 'ftp',
            'status': 2,
            'command': '/usr/local/bin/python3.6 ' + base_url +
            "cronjob/python/Telesales/importAppointment_cron.py > /dev/null &",
            'created_by': 'system'
Esempio n. 29
0
    sep = ';'
    logDbName = "LO_Input_result_" + str(year) + str(month)

    if day == 1:
        mongodb.create_db(DB_NAME=logDbName)
        mongodbresult = Mongodb(logDbName, WFF_ENV=wff_env)
    else:
        mongodbresult = Mongodb(logDbName, WFF_ENV=wff_env)

    ftpLocalUrl = common.getDownloadFolder() + fileName

    try:
        sys.argv[1]
        importLogId = str(sys.argv[1])
        importLogInfo = mongodb.getOne(MONGO_COLLECTION=common.getSubUser(
            subUserType, 'Import'),
                                       WHERE={'_id': ObjectId(sys.argv[1])})
    except Exception as SysArgvError:
        if not os.path.isfile(ftpLocalUrl):
            sys.exit()

        importLogInfo = {
            'collection': collection,
            'begin_import': time.time(),
            'file_name': fileName,
            'file_path': ftpLocalUrl,
            'source': 'ftp',
            'status': 2,
            'command': '/usr/local/bin/python3.6 ' + base_url +
            "cronjob/python/Loan/importLawsuit.py > /dev/null &",
            'created_by': 'system'
Esempio n. 30
0
            'ngaytienve_tkkh_dot1': 1,
            'ngaytrutien_dethanhtoanquahan': 1,
            'ngaytienve_tkkh_dotcuoi': 1,
            'ngay_trutien_giamdunogoc': 1,
            'ngayyeucau_itxoabill': 1,
            'sotien_kybill_cuoicung': 1,
            'ngaydenhan_kybill_cuoicung': 1
        }
    }]
    data = mongodb.aggregate_pipeline(MONGO_COLLECTION=action_collection,
                                      aggregate_pipeline=aggregate_pipeline)
    count = 0
    for row in data:
        if 'account_number' in row.keys() and row['action_code'] == "RAA":
            zaccf = mongodb.getOne(
                MONGO_COLLECTION=zaccf_collection,
                WHERE={'account_number': str(row['account_number'])},
                SELECT=['name', 'ODIND_FG', 'PRODGRP_ID'])
            if zaccf != None:
                invest = mongodb.getOne(
                    MONGO_COLLECTION=investigation_collection,
                    WHERE={'contract_no': str(row['account_number'])},
                    SELECT=['brand', 'license_plates_no'])
                product = mongodb.getOne(
                    MONGO_COLLECTION=product_collection,
                    WHERE={'code': str(zaccf['PRODGRP_ID'])},
                    SELECT=['name'])

                if invest != None and product != None:
                    count += 1
                    temp = {}
                    temp['no'] = count