const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");

class ElectronicContractService extends ServiceBase {
    constructor() {
        super("all", ServiceBase.getDaoName(ElectronicContractService));
    }

    async signPage(params) {
        var currentPage = Number(params.currentPage || 0);
        var pageSize = Number(params.pageSize || 10);

        var where = {};
        if (params.company_name) {
            where.company_name = {
                [this.db.Op.like]: "%" + params.company_name + "%"
            };
        }
        if(params.sign_body){
            where.sign_body = params.sign_body;
        }
        if(params.id_no){
            where.id_no = params.id_no
        }
        this.addWhereTime(where, 'completed_date', params.signBegin, params.signEnd, true);
        var orderby = [
            ["id", 'desc']
        ];
        var attributes = [`id`, `company_name`, `name`, `id_no`, `phone_no`, `bank_no`, `completed_date`, `file_url`, `sign_body`];
        var page = await this.getPageList(currentPage, pageSize, where, orderby, attributes);
        // if (page && page.rows) {
        //     for (var row of page.rows) {
        //         this.handleDate(row, ["begin_time", "invalid_time"]);
        //     }
        // }
        return page;
    }

    async signPageGroup(params) {
        var currentPage = Number(params.currentPage || 0);
        var pageSize = Number(params.pageSize || 10);

        var where = {};
        if (params.company_name) {
            where.company_name = {
                [this.db.Op.like]: "%" + params.company_name + "%"
            };
        }
        if(params.sign_body){
            where.sign_body = params.sign_body;
        }
        this.addWhereTime(where, 'completed_date', params.signBegin, params.signEnd, true);
        var orderby = [
            ["id", 'desc']
        ];
        var attributes = [`id`, `company_name`, `name`, `id_no`, `phone_no`, `bank_no`, `completed_date`, `file_url`, `sign_body`];
        var page = await this.getPageList(currentPage, pageSize, where, orderby, attributes);

        return page;
    }

}

module.exports = ElectronicContractService;